@synnaxlabs/x 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +12 -12
- package/dist/compare.cjs +1 -1
- package/dist/compare.js +1 -1
- package/dist/deep.cjs +1 -1
- package/dist/deep.js +1 -1
- package/dist/{index-DCwgKLH_.js → index-DPWtMAJa.js} +12 -8
- package/dist/index-DYgqYo6X.cjs +1 -0
- package/dist/index.cjs +2 -2
- package/dist/index.js +172 -158
- package/dist/path-577Fmn5N.cjs +1 -0
- package/dist/path-B-1-i3qC.js +72 -0
- package/dist/{series-DMUGN3Sl.js → series-DIZdmPCa.js} +1 -1
- package/dist/{series-BVB6n18P.cjs → series-DMsaUp_n.cjs} +1 -1
- package/dist/src/compare/compare.d.ts +5 -0
- package/dist/src/compare/compare.d.ts.map +1 -1
- package/dist/src/deep/path.d.ts +2 -1
- package/dist/src/deep/path.d.ts.map +1 -1
- package/dist/src/migrate/migrate.d.ts +34 -4
- package/dist/src/migrate/migrate.d.ts.map +1 -1
- package/dist/telem.cjs +1 -1
- package/dist/telem.js +1 -1
- package/dist/zodutil.cjs +1 -1
- package/dist/zodutil.js +1 -1
- package/package.json +2 -2
- package/src/compare/compare.ts +6 -0
- package/src/deep/path.ts +8 -5
- package/src/migrate/migrate.spec.ts +78 -0
- package/src/migrate/migrate.ts +69 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/index-CvHP07Bs.cjs +0 -1
- package/dist/path-DLggFlTl.cjs +0 -1
- package/dist/path-DsFnOSKR.js +0 -71
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const c = (l, e, t = ".") => {
|
|
2
|
+
const r = l.split(t);
|
|
3
|
+
return r.map((s, o) => {
|
|
4
|
+
const a = e(s, o, r);
|
|
5
|
+
return a == null ? null : typeof a == "string" ? a : a.join(t);
|
|
6
|
+
}).filter((s) => s != null).join(t);
|
|
7
|
+
}, u = (l, e, t = { optional: !1, separator: "." }) => {
|
|
8
|
+
t.separator ?? (t.separator = ".");
|
|
9
|
+
const { optional: r, getter: n = (a, i) => a[i] } = t, s = e.split(t.separator);
|
|
10
|
+
if (s.length === 1 && s[0] === "") return l;
|
|
11
|
+
let o = l;
|
|
12
|
+
for (const a of s) {
|
|
13
|
+
const i = n(o, a);
|
|
14
|
+
if (i == null) {
|
|
15
|
+
if (r) return null;
|
|
16
|
+
throw new Error(`Path ${e} does not exist. ${a} is null`);
|
|
17
|
+
}
|
|
18
|
+
o = i;
|
|
19
|
+
}
|
|
20
|
+
return o;
|
|
21
|
+
}, f = (l, e, t) => {
|
|
22
|
+
const r = e.split(".");
|
|
23
|
+
let n = l;
|
|
24
|
+
for (let s = 0; s < r.length - 1; s++) {
|
|
25
|
+
const o = r[s];
|
|
26
|
+
n[o] == null && (n[o] = {}), n = n[o];
|
|
27
|
+
}
|
|
28
|
+
n[r[r.length - 1]] = t;
|
|
29
|
+
}, p = (l, e) => {
|
|
30
|
+
const t = e.split(".");
|
|
31
|
+
let r = l;
|
|
32
|
+
for (let n = 0; n < t.length - 1; n++) {
|
|
33
|
+
const s = t[n];
|
|
34
|
+
if (r[s] == null) return;
|
|
35
|
+
r = r[s];
|
|
36
|
+
}
|
|
37
|
+
if (Array.isArray(r)) {
|
|
38
|
+
const n = parseInt(t[t.length - 1], 10);
|
|
39
|
+
if (isNaN(n)) return;
|
|
40
|
+
r.splice(n, 1);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
delete r[t[t.length - 1]];
|
|
44
|
+
}, h = (l, e) => {
|
|
45
|
+
const t = l.split(".");
|
|
46
|
+
return e < 0 ? t[t.length + e] : t[e];
|
|
47
|
+
}, g = (l, e) => {
|
|
48
|
+
try {
|
|
49
|
+
return u(l, e), !0;
|
|
50
|
+
} catch {
|
|
51
|
+
return !1;
|
|
52
|
+
}
|
|
53
|
+
}, m = (l, e) => {
|
|
54
|
+
if (e.length === 0) return !0;
|
|
55
|
+
const t = l.split("."), r = e.split(".");
|
|
56
|
+
if (r.length > t.length) return !1;
|
|
57
|
+
for (let n = 0; n < r.length; n++) {
|
|
58
|
+
const s = t[n], o = r[n];
|
|
59
|
+
if (o !== "*" && s !== o)
|
|
60
|
+
return !1;
|
|
61
|
+
}
|
|
62
|
+
return !0;
|
|
63
|
+
};
|
|
64
|
+
export {
|
|
65
|
+
h as e,
|
|
66
|
+
u as g,
|
|
67
|
+
g as h,
|
|
68
|
+
m as p,
|
|
69
|
+
p as r,
|
|
70
|
+
f as s,
|
|
71
|
+
c as t
|
|
72
|
+
};
|
|
@@ -3,7 +3,7 @@ var K = (f, t, e) => t in f ? W(f, t, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var s = (f, t, e) => K(f, typeof t != "symbol" ? t + "" : t, e);
|
|
4
4
|
import { J as L } from "./index-CzjnpuXF.js";
|
|
5
5
|
import { s as j } from "./index-C9i674Sf.js";
|
|
6
|
-
import { n as H } from "./index-
|
|
6
|
+
import { n as H } from "./index-DPWtMAJa.js";
|
|
7
7
|
import { c as D } from "./bounds-CpboA0q6.js";
|
|
8
8
|
import "./box-B5SaODGu.js";
|
|
9
9
|
import "./dimensions-D-1PnJVI.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var K=Object.defineProperty;var j=(f,t,e)=>t in f?K(f,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):f[t]=e;var s=(f,t,e)=>j(f,typeof t!="symbol"?t+"":t,e);const L=require("./index-tYmAULd8.cjs"),H=require("./index-BGz7XJIe.cjs"),X=require("./index-CvHP07Bs.cjs"),z=require("./bounds-ZZc1c-_Z.cjs");require("./box-C6r0YnKB.cjs");require("./dimensions-zMcb9pMk.cjs");require("./base-B48bPNx5.cjs");require("./location-55G2uRZN.cjs");require("./scale-COuYv97b.cjs");require("./xy-cP-FXJtR.cjs");const c=require("zod");let Q=(f,t=21)=>(e=t)=>{let r="",u=e;for(;u--;)r+=f[Math.random()*f.length|0];return r};const _="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Z=Q(_,11),tt=Object.freeze(Object.defineProperty({__proto__:null,id:Z},Symbol.toStringTag,{value:"Module"})),k=(f,t)=>{const e=new y(t);if(![m.DAY,m.HOUR,m.MINUTE,m.SECOND,m.MILLISECOND,m.MICROSECOND,m.NANOSECOND].some(u=>u.equals(e)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const r=f.valueOf()%e.valueOf();return f instanceof y?new y(r):new m(r)},i=class i{constructor(t,e="UTC"){s(this,"value");s(this,"encodeValue",!0);if(t==null)this.value=i.now().valueOf();else if(t instanceof Date)this.value=BigInt(t.getTime())*i.MILLISECOND.valueOf();else if(typeof t=="string")this.value=i.parseDateTimeString(t,e).valueOf();else if(Array.isArray(t))this.value=i.parseDate(t);else{let r=BigInt(0);t instanceof Number&&(t=t.valueOf()),e==="local"&&(r=i.utcOffset.valueOf()),typeof t=="number"&&(isFinite(t)?t=Math.trunc(t):(isNaN(t)&&(t=0),t===1/0?t=i.MAX:t=i.MIN)),this.value=BigInt(t.valueOf())+r}}static parseDate([t=1970,e=1,r=1]){const u=new Date(t,e-1,r,0,0,0,0);return new i(BigInt(u.getTime())*i.MILLISECOND.valueOf()).truncate(i.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(t,e="UTC"){const[r,u,d]=t.split(":");let g="00",S="00";d!=null&&([g,S]=d.split("."));let O=i.hours(parseInt(r??"00",10)).add(i.minutes(parseInt(u??"00",10))).add(i.seconds(parseInt(g??"00",10))).add(i.milliseconds(parseInt(S??"00",10)));return e==="local"&&(O=O.add(i.utcOffset)),O.valueOf()}static parseDateTimeString(t,e="UTC"){if(!t.includes("/")&&!t.includes("-"))return i.parseTimeString(t,e);const r=new Date(t);return t.includes(":")||r.setUTCHours(0,0,0,0),new i(BigInt(r.getTime())*i.MILLISECOND.valueOf(),e).valueOf()}fString(t="ISO",e="UTC"){switch(t){case"ISODate":return this.toISOString(e).slice(0,10);case"ISOTime":return this.toISOString(e).slice(11,23);case"time":return this.timeString(!1,e);case"preciseTime":return this.timeString(!0,e);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,e)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,e)}`;default:return this.toISOString(e)}}toISOString(t="UTC"){return t==="UTC"?this.date().toISOString():this.sub(i.utcOffset).date().toISOString()}timeString(t=!1,e="UTC"){const r=this.toISOString(e);return t?r.slice(11,23):r.slice(11,19)}dateString(){const t=this.date(),e=t.toLocaleString("default",{month:"short"}),r=t.toLocaleString("default",{day:"numeric"});return`${e} ${r}`}static get utcOffset(){return new m(BigInt(new Date().getTimezoneOffset())*i.MINUTE.valueOf())}static since(t){return new i().span(t)}date(){return new Date(this.milliseconds())}equals(t){return this.valueOf()===new i(t).valueOf()}span(t){return this.range(t).span}range(t){return new M(this,t).makeValid()}spanRange(t){return this.range(this.add(t)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(t){return this.valueOf()>new i(t).valueOf()}afterEq(t){return this.valueOf()>=new i(t).valueOf()}before(t){return this.valueOf()<new i(t).valueOf()}beforeEq(t){return this.valueOf()<=new i(t).valueOf()}add(t){return new i(this.valueOf()+BigInt(t.valueOf()))}sub(t){return new i(this.valueOf()-BigInt(t.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(i.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(t){return k(this,t)}get isToday(){return this.truncate(m.DAY).equals(i.now().truncate(m.DAY))}truncate(t){return this.sub(this.remainder(t))}static now(){return new i(new Date)}static max(...t){let e=i.MIN;for(const r of t){const u=new i(r);u.after(e)&&(e=u)}return e}static min(...t){let e=i.MAX;for(const r of t){const u=new i(r);u.before(e)&&(e=u)}return e}static nanoseconds(t){return new i(t)}static microseconds(t){return i.nanoseconds(t*1e3)}static milliseconds(t){return i.microseconds(t*1e3)}static seconds(t){return i.milliseconds(t*1e3)}static minutes(t){return i.seconds(t*60)}static hours(t){return i.minutes(t*60)}static days(t){return i.hours(t*24)}};s(i,"NANOSECOND",i.nanoseconds(1)),s(i,"MICROSECOND",i.microseconds(1)),s(i,"MILLISECOND",i.milliseconds(1)),s(i,"SECOND",i.seconds(1)),s(i,"MINUTE",i.minutes(1)),s(i,"HOUR",i.hours(1)),s(i,"DAY",i.days(1)),s(i,"MAX",new i((1n<<63n)-1n)),s(i,"MIN",new i(0)),s(i,"ZERO",new i(0)),s(i,"z",c.z.union([c.z.object({value:c.z.bigint()}).transform(t=>new i(t.value)),c.z.string().transform(t=>new i(BigInt(t))),c.z.instanceof(Number).transform(t=>new i(t)),c.z.number().transform(t=>new i(t)),c.z.instanceof(i)]));let y=i;const a=class a{constructor(t){s(this,"value");s(this,"encodeValue",!0);typeof t=="number"&&(t=Math.trunc(t.valueOf())),this.value=BigInt(t.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(t){return this.valueOf()<new a(t).valueOf()}greaterThan(t){return this.valueOf()>new a(t).valueOf()}lessThanOrEqual(t){return this.valueOf()<=new a(t).valueOf()}greaterThanOrEqual(t){return this.valueOf()>=new a(t).valueOf()}remainder(t){return k(this,t)}truncate(t){return new a(BigInt(Math.trunc(Number(this.valueOf()/t.valueOf())))*t.valueOf())}toString(){const t=this.truncate(a.DAY),e=this.truncate(a.HOUR),r=this.truncate(a.MINUTE),u=this.truncate(a.SECOND),d=this.truncate(a.MILLISECOND),g=this.truncate(a.MICROSECOND),S=this.truncate(a.NANOSECOND),O=t,N=e.sub(t),p=r.sub(e),o=u.sub(r),B=d.sub(u),U=g.sub(d),q=S.sub(g);let A="";return O.isZero||(A+=`${O.days}d `),N.isZero||(A+=`${N.hours}h `),p.isZero||(A+=`${p.minutes}m `),o.isZero||(A+=`${o.seconds}s `),B.isZero||(A+=`${B.milliseconds}ms `),U.isZero||(A+=`${U.microseconds}µs `),q.isZero||(A+=`${q.nanoseconds}ns`),A.trim()}get days(){return Number(this.valueOf())/Number(a.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(a.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(a.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(a.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(a.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(a.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(t){return this.valueOf()===new a(t).valueOf()}add(t){return new a(this.valueOf()+new a(t).valueOf())}sub(t){return new a(this.valueOf()-new a(t).valueOf())}static nanoseconds(t=1){return new a(t)}static microseconds(t=1){return a.nanoseconds(t*1e3)}static milliseconds(t=1){return a.microseconds(t*1e3)}static seconds(t=1){return a.milliseconds(t*1e3)}static minutes(t){return a.seconds(t.valueOf()*60)}static hours(t){return a.minutes(t*60)}static days(t){return a.hours(t*24)}};s(a,"NANOSECOND",a.nanoseconds(1)),s(a,"MICROSECOND",a.microseconds(1)),s(a,"MILLISECOND",a.milliseconds(1)),s(a,"SECOND",a.seconds(1)),s(a,"MINUTE",a.minutes(1)),s(a,"HOUR",a.hours(1)),s(a,"DAY",a.days(1)),s(a,"MAX",new a((1n<<63n)-1n)),s(a,"MIN",new a(0)),s(a,"ZERO",new a(0)),s(a,"z",c.z.union([c.z.object({value:c.z.bigint()}).transform(t=>new a(t.value)),c.z.string().transform(t=>new a(BigInt(t))),c.z.instanceof(Number).transform(t=>new a(t)),c.z.number().transform(t=>new a(t)),c.z.instanceof(a)]));let m=a;const v=class v extends Number{constructor(t){t instanceof Number?super(t.valueOf()):super(t)}toString(){return`${this.valueOf()} Hz`}equals(t){return this.valueOf()===new v(t).valueOf()}get period(){return m.seconds(1/this.valueOf())}sampleCount(t){return new m(t).seconds*this.valueOf()}byteCount(t,e){return this.sampleCount(t)*new I(e).valueOf()}span(t){return m.seconds(t/this.valueOf())}byteSpan(t,e){return this.span(t.valueOf()/e.valueOf())}static hz(t){return new v(t)}static khz(t){return v.hz(t*1e3)}};s(v,"z",c.z.union([c.z.number().transform(t=>new v(t)),c.z.instanceof(Number).transform(t=>new v(t)),c.z.instanceof(v)]));let x=v;const w=class w extends Number{constructor(t){t instanceof Number?super(t.valueOf()):super(t)}length(t){return t.valueOf()/this.valueOf()}size(t){return new C(t*this.valueOf())}};s(w,"UNKNOWN",new w(0)),s(w,"BIT128",new w(16)),s(w,"BIT64",new w(8)),s(w,"BIT32",new w(4)),s(w,"BIT16",new w(2)),s(w,"BIT8",new w(1)),s(w,"z",c.z.union([c.z.number().transform(t=>new w(t)),c.z.instanceof(Number).transform(t=>new w(t)),c.z.instanceof(w)]));let I=w;const b=class b{constructor(t,e){s(this,"start");s(this,"end");typeof t=="object"&&"start"in t?(this.start=new y(t.start),this.end=new y(t.end)):(this.start=new y(t),this.end=new y(e))}get span(){return new m(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new b(this.end,this.start)}equals(t){return this.start.equals(t.start)&&this.end.equals(t.end)}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(t,e=m.ZERO){t=t.makeValid();const r=this.makeValid();if(this.equals(t))return!0;if(t.end.equals(r.start)||r.end.equals(t.start))return!1;const u=y.max(r.start,t.start),d=y.min(r.end,t.end);return d.before(u)?!1:new m(d.sub(u)).greaterThanOrEqual(e)}roughlyEquals(t,e){let r=this.start.sub(t.start).valueOf(),u=this.end.sub(t.end).valueOf();return r<0&&(r=-r),u<0&&(u=-u),r<=e.valueOf()&&u<=e.valueOf()}contains(t){return t instanceof b?this.contains(t.start)&&this.contains(t.end):this.start.beforeEq(t)&&this.end.after(t)}boundBy(t){const e=new b(this.start,this.end);return t.start.after(this.start)&&(e.start=t.start),t.start.after(this.end)&&(e.end=t.start),t.end.before(this.end)&&(e.end=t.end),t.end.before(this.start)&&(e.start=t.end),e}};s(b,"MAX",new b(y.MIN,y.MAX)),s(b,"MIN",new b(y.MAX,y.MIN)),s(b,"ZERO",new b(y.ZERO,y.ZERO)),s(b,"z",c.z.union([c.z.object({start:y.z,end:y.z}).transform(t=>new b(t.start,t.end)),c.z.instanceof(b)]));let M=b;const n=class n extends String{constructor(t){if(t instanceof n||typeof t=="string"||typeof t.valueOf()=="string"){super(t.valueOf());return}else{const e=n.ARRAY_CONSTRUCTOR_DATA_TYPES.get(t.constructor.name);if(e!=null){super(e.valueOf());return}}throw super(n.UNKNOWN.valueOf()),new Error(`unable to find data type for ${t.toString()}`)}get Array(){const t=n.ARRAY_CONSTRUCTORS.get(this.toString());if(t==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return t}equals(t){return this.valueOf()===t.valueOf()}matches(...t){return t.some(e=>this.equals(e))}toString(){return this.valueOf()}get isVariable(){return this.equals(n.JSON)||this.equals(n.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(n.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const t=n.DENSITIES.get(this.toString());if(t==null)throw new Error(`unable to find density for ${this.valueOf()}`);return t}canSafelyCastTo(t){return this.equals(t)?!0:this.isVariable&&!t.isVariable||!this.isVariable&&t.isVariable?!1:this.isFloat&&t.isInteger||this.isInteger&&t.isFloat?this.density.valueOf()<t.density.valueOf():this.isFloat&&t.isFloat||this.isInteger&&t.isInteger?this.density.valueOf()<=t.density.valueOf():!1}canCastTo(t){return this.isNumeric&&t.isNumeric?!0:this.equals(t)}checkArray(t){return t.constructor===this.Array}toJSON(){return this.toString()}get usesBigInt(){return n.BIG_INT_TYPES.some(t=>t.equals(this))}};s(n,"UNKNOWN",new n("unknown")),s(n,"FLOAT64",new n("float64")),s(n,"FLOAT32",new n("float32")),s(n,"INT64",new n("int64")),s(n,"INT32",new n("int32")),s(n,"INT16",new n("int16")),s(n,"INT8",new n("int8")),s(n,"UINT64",new n("uint64")),s(n,"UINT32",new n("uint32")),s(n,"UINT16",new n("uint16")),s(n,"UINT8",new n("uint8")),s(n,"BOOLEAN",n.UINT8),s(n,"TIMESTAMP",new n("timestamp")),s(n,"UUID",new n("uuid")),s(n,"STRING",new n("string")),s(n,"JSON",new n("json")),s(n,"ARRAY_CONSTRUCTORS",new Map([[n.UINT8.toString(),Uint8Array],[n.UINT16.toString(),Uint16Array],[n.UINT32.toString(),Uint32Array],[n.UINT64.toString(),BigUint64Array],[n.FLOAT32.toString(),Float32Array],[n.FLOAT64.toString(),Float64Array],[n.INT8.toString(),Int8Array],[n.INT16.toString(),Int16Array],[n.INT32.toString(),Int32Array],[n.INT64.toString(),BigInt64Array],[n.TIMESTAMP.toString(),BigInt64Array],[n.STRING.toString(),Uint8Array],[n.JSON.toString(),Uint8Array],[n.UUID.toString(),Uint8Array]])),s(n,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,n.UINT8],[Uint16Array.name,n.UINT16],[Uint32Array.name,n.UINT32],[BigUint64Array.name,n.UINT64],[Float32Array.name,n.FLOAT32],[Float64Array.name,n.FLOAT64],[Int8Array.name,n.INT8],[Int16Array.name,n.INT16],[Int32Array.name,n.INT32],[BigInt64Array.name,n.INT64]])),s(n,"DENSITIES",new Map([[n.UINT8.toString(),I.BIT8],[n.UINT16.toString(),I.BIT16],[n.UINT32.toString(),I.BIT32],[n.UINT64.toString(),I.BIT64],[n.FLOAT32.toString(),I.BIT32],[n.FLOAT64.toString(),I.BIT64],[n.INT8.toString(),I.BIT8],[n.INT16.toString(),I.BIT16],[n.INT32.toString(),I.BIT32],[n.INT64.toString(),I.BIT64],[n.TIMESTAMP.toString(),I.BIT64],[n.STRING.toString(),I.UNKNOWN],[n.JSON.toString(),I.UNKNOWN],[n.UUID.toString(),I.BIT128]])),s(n,"ALL",[n.UNKNOWN,n.FLOAT64,n.FLOAT32,n.INT64,n.INT32,n.INT16,n.INT8,n.UINT64,n.UINT32,n.UINT16,n.UINT8,n.TIMESTAMP,n.UUID,n.STRING,n.JSON]),s(n,"BIG_INT_TYPES",[n.INT64,n.UINT64,n.TIMESTAMP]),s(n,"z",c.z.union([c.z.string().transform(t=>new n(t)),c.z.instanceof(n)]));let h=n;const l=class l extends Number{constructor(t){super(t.valueOf())}largerThan(t){return this.valueOf()>t.valueOf()}smallerThan(t){return this.valueOf()<t.valueOf()}add(t){return l.bytes(this.valueOf()+t.valueOf())}sub(t){return l.bytes(this.valueOf()-t.valueOf())}truncate(t){return new l(Math.trunc(this.valueOf()/t.valueOf())*t.valueOf())}remainder(t){return l.bytes(this.valueOf()%t.valueOf())}get gigabytes(){return this.valueOf()/l.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/l.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/l.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/l.TERABYTE.valueOf()}toString(){const t=this.truncate(l.TERABYTE),e=this.truncate(l.GIGABYTE),r=this.truncate(l.MEGABYTE),u=this.truncate(l.KILOBYTE),d=this.truncate(l.BYTE),g=t,S=e.sub(t),O=r.sub(e),N=u.sub(r),p=d.sub(u);let o="";return g.isZero||(o+=`${g.terabytes}TB `),S.isZero||(o+=`${S.gigabytes}GB `),O.isZero||(o+=`${O.megabytes}MB `),N.isZero||(o+=`${N.kilobytes}KB `),(!p.isZero||o==="")&&(o+=`${p.valueOf()}B`),o.trim()}static bytes(t=1){return new l(t)}static kilobytes(t=1){return l.bytes(t.valueOf()*1e3)}static megabytes(t=1){return l.kilobytes(t.valueOf()*1e3)}static gigabytes(t=1){return l.megabytes(t.valueOf()*1e3)}static terabytes(t){return l.gigabytes(t.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};s(l,"BYTE",new l(1)),s(l,"KILOBYTE",l.kilobytes(1)),s(l,"MEGABYTE",l.megabytes(1)),s(l,"GIGABYTE",l.gigabytes(1)),s(l,"TERABYTE",l.terabytes(1)),s(l,"ZERO",new l(0)),s(l,"z",c.z.union([c.z.number().transform(t=>new l(t)),c.z.instanceof(l)]));let C=l;const et=c.z.union([c.z.instanceof(Uint8Array),c.z.instanceof(Uint16Array),c.z.instanceof(Uint32Array),c.z.instanceof(BigUint64Array),c.z.instanceof(Float32Array),c.z.instanceof(Float64Array),c.z.instanceof(Int8Array),c.z.instanceof(Int16Array),c.z.instanceof(Int32Array),c.z.instanceof(BigInt64Array)]),D=f=>{const t=typeof f;return t==="string"||t==="number"||t==="boolean"||t==="bigint"||f instanceof y||f instanceof m||f instanceof Date},J=(f,t,e,r=0)=>f.usesBigInt&&!t.usesBigInt?Number(e)-Number(r):!f.usesBigInt&&t.usesBigInt?BigInt(e)-BigInt(r):R(e,-r),W=f=>f==null?!1:Array.isArray(f)||f instanceof ArrayBuffer||ArrayBuffer.isView(f)&&!(f instanceof DataView)||f instanceof T?!0:D(f),E=-1;class T{constructor(t){s(this,"key","");s(this,"isSynnaxSeries",!0);s(this,"dataType");s(this,"sampleOffset");s(this,"gl");s(this,"_data");s(this,"_timeRange");s(this,"alignment",0n);s(this,"_cachedMin");s(this,"_cachedMax");s(this,"writePos",E);s(this,"_refCount",0);s(this,"_cachedLength");W(t)&&(t={data:t});const{dataType:e,timeRange:r,sampleOffset:u=0,glBufferUsage:d="static",alignment:g=0n,key:S=Z()}=t,{data:O}=t;if(O instanceof T||typeof O=="object"&&"isSynnaxSeries"in O&&O.isSynnaxSeries===!0){const o=O;this.key=o.key,this.dataType=o.dataType,this.sampleOffset=o.sampleOffset,this.gl=o.gl,this._data=o._data,this._timeRange=o._timeRange,this.alignment=o.alignment,this._cachedMin=o._cachedMin,this._cachedMax=o._cachedMax,this.writePos=o.writePos,this._refCount=o._refCount,this._cachedLength=o._cachedLength;return}const N=D(O),p=Array.isArray(O);if(e!=null)this.dataType=new h(e);else{if(O instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(p||N){let o=O;if(!N){if(O.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");o=O[0]}if(typeof o=="string")this.dataType=h.STRING;else if(typeof o=="number")this.dataType=h.FLOAT64;else if(typeof o=="bigint")this.dataType=h.INT64;else if(typeof o=="boolean")this.dataType=h.BOOLEAN;else if(o instanceof y||o instanceof Date||o instanceof y)this.dataType=h.TIMESTAMP;else if(typeof o=="object")this.dataType=h.JSON;else throw new Error(`cannot infer data type of ${typeof o} when constructing a Series from a JS array`)}else this.dataType=new h(O)}if(!p&&!N)this._data=O;else{let o=N?[O]:O;const B=o[0];(B instanceof y||B instanceof Date||B instanceof m)&&(o=o.map(U=>new y(U).valueOf())),this.dataType.equals(h.STRING)?(this._cachedLength=o.length,this._data=new TextEncoder().encode(o.join(`
|
|
1
|
+
"use strict";var K=Object.defineProperty;var j=(f,t,e)=>t in f?K(f,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):f[t]=e;var s=(f,t,e)=>j(f,typeof t!="symbol"?t+"":t,e);const L=require("./index-tYmAULd8.cjs"),H=require("./index-BGz7XJIe.cjs"),X=require("./index-DYgqYo6X.cjs"),z=require("./bounds-ZZc1c-_Z.cjs");require("./box-C6r0YnKB.cjs");require("./dimensions-zMcb9pMk.cjs");require("./base-B48bPNx5.cjs");require("./location-55G2uRZN.cjs");require("./scale-COuYv97b.cjs");require("./xy-cP-FXJtR.cjs");const c=require("zod");let Q=(f,t=21)=>(e=t)=>{let r="",u=e;for(;u--;)r+=f[Math.random()*f.length|0];return r};const _="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Z=Q(_,11),tt=Object.freeze(Object.defineProperty({__proto__:null,id:Z},Symbol.toStringTag,{value:"Module"})),k=(f,t)=>{const e=new y(t);if(![m.DAY,m.HOUR,m.MINUTE,m.SECOND,m.MILLISECOND,m.MICROSECOND,m.NANOSECOND].some(u=>u.equals(e)))throw new Error("Invalid argument for remainder. Must be an even TimeSpan or Timestamp");const r=f.valueOf()%e.valueOf();return f instanceof y?new y(r):new m(r)},i=class i{constructor(t,e="UTC"){s(this,"value");s(this,"encodeValue",!0);if(t==null)this.value=i.now().valueOf();else if(t instanceof Date)this.value=BigInt(t.getTime())*i.MILLISECOND.valueOf();else if(typeof t=="string")this.value=i.parseDateTimeString(t,e).valueOf();else if(Array.isArray(t))this.value=i.parseDate(t);else{let r=BigInt(0);t instanceof Number&&(t=t.valueOf()),e==="local"&&(r=i.utcOffset.valueOf()),typeof t=="number"&&(isFinite(t)?t=Math.trunc(t):(isNaN(t)&&(t=0),t===1/0?t=i.MAX:t=i.MIN)),this.value=BigInt(t.valueOf())+r}}static parseDate([t=1970,e=1,r=1]){const u=new Date(t,e-1,r,0,0,0,0);return new i(BigInt(u.getTime())*i.MILLISECOND.valueOf()).truncate(i.DAY).valueOf()}encode(){return this.value.toString()}valueOf(){return this.value}static parseTimeString(t,e="UTC"){const[r,u,d]=t.split(":");let g="00",S="00";d!=null&&([g,S]=d.split("."));let O=i.hours(parseInt(r??"00",10)).add(i.minutes(parseInt(u??"00",10))).add(i.seconds(parseInt(g??"00",10))).add(i.milliseconds(parseInt(S??"00",10)));return e==="local"&&(O=O.add(i.utcOffset)),O.valueOf()}static parseDateTimeString(t,e="UTC"){if(!t.includes("/")&&!t.includes("-"))return i.parseTimeString(t,e);const r=new Date(t);return t.includes(":")||r.setUTCHours(0,0,0,0),new i(BigInt(r.getTime())*i.MILLISECOND.valueOf(),e).valueOf()}fString(t="ISO",e="UTC"){switch(t){case"ISODate":return this.toISOString(e).slice(0,10);case"ISOTime":return this.toISOString(e).slice(11,23);case"time":return this.timeString(!1,e);case"preciseTime":return this.timeString(!0,e);case"date":return this.dateString();case"preciseDate":return`${this.dateString()} ${this.timeString(!0,e)}`;case"dateTime":return`${this.dateString()} ${this.timeString(!1,e)}`;default:return this.toISOString(e)}}toISOString(t="UTC"){return t==="UTC"?this.date().toISOString():this.sub(i.utcOffset).date().toISOString()}timeString(t=!1,e="UTC"){const r=this.toISOString(e);return t?r.slice(11,23):r.slice(11,19)}dateString(){const t=this.date(),e=t.toLocaleString("default",{month:"short"}),r=t.toLocaleString("default",{day:"numeric"});return`${e} ${r}`}static get utcOffset(){return new m(BigInt(new Date().getTimezoneOffset())*i.MINUTE.valueOf())}static since(t){return new i().span(t)}date(){return new Date(this.milliseconds())}equals(t){return this.valueOf()===new i(t).valueOf()}span(t){return this.range(t).span}range(t){return new M(this,t).makeValid()}spanRange(t){return this.range(this.add(t)).makeValid()}get isZero(){return this.valueOf()===BigInt(0)}after(t){return this.valueOf()>new i(t).valueOf()}afterEq(t){return this.valueOf()>=new i(t).valueOf()}before(t){return this.valueOf()<new i(t).valueOf()}beforeEq(t){return this.valueOf()<=new i(t).valueOf()}add(t){return new i(this.valueOf()+BigInt(t.valueOf()))}sub(t){return new i(this.valueOf()-BigInt(t.valueOf()))}milliseconds(){return Number(this.valueOf())/Number(i.MILLISECOND.valueOf())}toString(){return this.date().toISOString()}remainder(t){return k(this,t)}get isToday(){return this.truncate(m.DAY).equals(i.now().truncate(m.DAY))}truncate(t){return this.sub(this.remainder(t))}static now(){return new i(new Date)}static max(...t){let e=i.MIN;for(const r of t){const u=new i(r);u.after(e)&&(e=u)}return e}static min(...t){let e=i.MAX;for(const r of t){const u=new i(r);u.before(e)&&(e=u)}return e}static nanoseconds(t){return new i(t)}static microseconds(t){return i.nanoseconds(t*1e3)}static milliseconds(t){return i.microseconds(t*1e3)}static seconds(t){return i.milliseconds(t*1e3)}static minutes(t){return i.seconds(t*60)}static hours(t){return i.minutes(t*60)}static days(t){return i.hours(t*24)}};s(i,"NANOSECOND",i.nanoseconds(1)),s(i,"MICROSECOND",i.microseconds(1)),s(i,"MILLISECOND",i.milliseconds(1)),s(i,"SECOND",i.seconds(1)),s(i,"MINUTE",i.minutes(1)),s(i,"HOUR",i.hours(1)),s(i,"DAY",i.days(1)),s(i,"MAX",new i((1n<<63n)-1n)),s(i,"MIN",new i(0)),s(i,"ZERO",new i(0)),s(i,"z",c.z.union([c.z.object({value:c.z.bigint()}).transform(t=>new i(t.value)),c.z.string().transform(t=>new i(BigInt(t))),c.z.instanceof(Number).transform(t=>new i(t)),c.z.number().transform(t=>new i(t)),c.z.instanceof(i)]));let y=i;const a=class a{constructor(t){s(this,"value");s(this,"encodeValue",!0);typeof t=="number"&&(t=Math.trunc(t.valueOf())),this.value=BigInt(t.valueOf())}encode(){return this.value.toString()}valueOf(){return this.value}lessThan(t){return this.valueOf()<new a(t).valueOf()}greaterThan(t){return this.valueOf()>new a(t).valueOf()}lessThanOrEqual(t){return this.valueOf()<=new a(t).valueOf()}greaterThanOrEqual(t){return this.valueOf()>=new a(t).valueOf()}remainder(t){return k(this,t)}truncate(t){return new a(BigInt(Math.trunc(Number(this.valueOf()/t.valueOf())))*t.valueOf())}toString(){const t=this.truncate(a.DAY),e=this.truncate(a.HOUR),r=this.truncate(a.MINUTE),u=this.truncate(a.SECOND),d=this.truncate(a.MILLISECOND),g=this.truncate(a.MICROSECOND),S=this.truncate(a.NANOSECOND),O=t,N=e.sub(t),p=r.sub(e),o=u.sub(r),B=d.sub(u),U=g.sub(d),q=S.sub(g);let A="";return O.isZero||(A+=`${O.days}d `),N.isZero||(A+=`${N.hours}h `),p.isZero||(A+=`${p.minutes}m `),o.isZero||(A+=`${o.seconds}s `),B.isZero||(A+=`${B.milliseconds}ms `),U.isZero||(A+=`${U.microseconds}µs `),q.isZero||(A+=`${q.nanoseconds}ns`),A.trim()}get days(){return Number(this.valueOf())/Number(a.DAY.valueOf())}get hours(){return Number(this.valueOf())/Number(a.HOUR.valueOf())}get minutes(){return Number(this.valueOf())/Number(a.MINUTE.valueOf())}get seconds(){return Number(this.valueOf())/Number(a.SECOND.valueOf())}get milliseconds(){return Number(this.valueOf())/Number(a.MILLISECOND.valueOf())}get microseconds(){return Number(this.valueOf())/Number(a.MICROSECOND.valueOf())}get nanoseconds(){return Number(this.valueOf())}get isZero(){return this.valueOf()===BigInt(0)}equals(t){return this.valueOf()===new a(t).valueOf()}add(t){return new a(this.valueOf()+new a(t).valueOf())}sub(t){return new a(this.valueOf()-new a(t).valueOf())}static nanoseconds(t=1){return new a(t)}static microseconds(t=1){return a.nanoseconds(t*1e3)}static milliseconds(t=1){return a.microseconds(t*1e3)}static seconds(t=1){return a.milliseconds(t*1e3)}static minutes(t){return a.seconds(t.valueOf()*60)}static hours(t){return a.minutes(t*60)}static days(t){return a.hours(t*24)}};s(a,"NANOSECOND",a.nanoseconds(1)),s(a,"MICROSECOND",a.microseconds(1)),s(a,"MILLISECOND",a.milliseconds(1)),s(a,"SECOND",a.seconds(1)),s(a,"MINUTE",a.minutes(1)),s(a,"HOUR",a.hours(1)),s(a,"DAY",a.days(1)),s(a,"MAX",new a((1n<<63n)-1n)),s(a,"MIN",new a(0)),s(a,"ZERO",new a(0)),s(a,"z",c.z.union([c.z.object({value:c.z.bigint()}).transform(t=>new a(t.value)),c.z.string().transform(t=>new a(BigInt(t))),c.z.instanceof(Number).transform(t=>new a(t)),c.z.number().transform(t=>new a(t)),c.z.instanceof(a)]));let m=a;const v=class v extends Number{constructor(t){t instanceof Number?super(t.valueOf()):super(t)}toString(){return`${this.valueOf()} Hz`}equals(t){return this.valueOf()===new v(t).valueOf()}get period(){return m.seconds(1/this.valueOf())}sampleCount(t){return new m(t).seconds*this.valueOf()}byteCount(t,e){return this.sampleCount(t)*new I(e).valueOf()}span(t){return m.seconds(t/this.valueOf())}byteSpan(t,e){return this.span(t.valueOf()/e.valueOf())}static hz(t){return new v(t)}static khz(t){return v.hz(t*1e3)}};s(v,"z",c.z.union([c.z.number().transform(t=>new v(t)),c.z.instanceof(Number).transform(t=>new v(t)),c.z.instanceof(v)]));let x=v;const w=class w extends Number{constructor(t){t instanceof Number?super(t.valueOf()):super(t)}length(t){return t.valueOf()/this.valueOf()}size(t){return new C(t*this.valueOf())}};s(w,"UNKNOWN",new w(0)),s(w,"BIT128",new w(16)),s(w,"BIT64",new w(8)),s(w,"BIT32",new w(4)),s(w,"BIT16",new w(2)),s(w,"BIT8",new w(1)),s(w,"z",c.z.union([c.z.number().transform(t=>new w(t)),c.z.instanceof(Number).transform(t=>new w(t)),c.z.instanceof(w)]));let I=w;const b=class b{constructor(t,e){s(this,"start");s(this,"end");typeof t=="object"&&"start"in t?(this.start=new y(t.start),this.end=new y(t.end)):(this.start=new y(t),this.end=new y(e))}get span(){return new m(this.end.valueOf()-this.start.valueOf())}get isValid(){return this.start.valueOf()<=this.end.valueOf()}makeValid(){return this.isValid?this:this.swap()}get isZero(){return this.span.isZero}get numeric(){return{start:Number(this.start.valueOf()),end:Number(this.end.valueOf())}}swap(){return new b(this.end,this.start)}equals(t){return this.start.equals(t.start)&&this.end.equals(t.end)}toString(){return`${this.start.toString()} - ${this.end.toString()}`}toPrettyString(){return`${this.start.fString("preciseDate")} - ${this.span.toString()}`}overlapsWith(t,e=m.ZERO){t=t.makeValid();const r=this.makeValid();if(this.equals(t))return!0;if(t.end.equals(r.start)||r.end.equals(t.start))return!1;const u=y.max(r.start,t.start),d=y.min(r.end,t.end);return d.before(u)?!1:new m(d.sub(u)).greaterThanOrEqual(e)}roughlyEquals(t,e){let r=this.start.sub(t.start).valueOf(),u=this.end.sub(t.end).valueOf();return r<0&&(r=-r),u<0&&(u=-u),r<=e.valueOf()&&u<=e.valueOf()}contains(t){return t instanceof b?this.contains(t.start)&&this.contains(t.end):this.start.beforeEq(t)&&this.end.after(t)}boundBy(t){const e=new b(this.start,this.end);return t.start.after(this.start)&&(e.start=t.start),t.start.after(this.end)&&(e.end=t.start),t.end.before(this.end)&&(e.end=t.end),t.end.before(this.start)&&(e.start=t.end),e}};s(b,"MAX",new b(y.MIN,y.MAX)),s(b,"MIN",new b(y.MAX,y.MIN)),s(b,"ZERO",new b(y.ZERO,y.ZERO)),s(b,"z",c.z.union([c.z.object({start:y.z,end:y.z}).transform(t=>new b(t.start,t.end)),c.z.instanceof(b)]));let M=b;const n=class n extends String{constructor(t){if(t instanceof n||typeof t=="string"||typeof t.valueOf()=="string"){super(t.valueOf());return}else{const e=n.ARRAY_CONSTRUCTOR_DATA_TYPES.get(t.constructor.name);if(e!=null){super(e.valueOf());return}}throw super(n.UNKNOWN.valueOf()),new Error(`unable to find data type for ${t.toString()}`)}get Array(){const t=n.ARRAY_CONSTRUCTORS.get(this.toString());if(t==null)throw new Error(`unable to find array constructor for ${this.valueOf()}`);return t}equals(t){return this.valueOf()===t.valueOf()}matches(...t){return t.some(e=>this.equals(e))}toString(){return this.valueOf()}get isVariable(){return this.equals(n.JSON)||this.equals(n.STRING)}get isNumeric(){return!this.isVariable&&!this.equals(n.UUID)}get isInteger(){return this.toString().startsWith("int")}get isFloat(){return this.toString().startsWith("float")}get density(){const t=n.DENSITIES.get(this.toString());if(t==null)throw new Error(`unable to find density for ${this.valueOf()}`);return t}canSafelyCastTo(t){return this.equals(t)?!0:this.isVariable&&!t.isVariable||!this.isVariable&&t.isVariable?!1:this.isFloat&&t.isInteger||this.isInteger&&t.isFloat?this.density.valueOf()<t.density.valueOf():this.isFloat&&t.isFloat||this.isInteger&&t.isInteger?this.density.valueOf()<=t.density.valueOf():!1}canCastTo(t){return this.isNumeric&&t.isNumeric?!0:this.equals(t)}checkArray(t){return t.constructor===this.Array}toJSON(){return this.toString()}get usesBigInt(){return n.BIG_INT_TYPES.some(t=>t.equals(this))}};s(n,"UNKNOWN",new n("unknown")),s(n,"FLOAT64",new n("float64")),s(n,"FLOAT32",new n("float32")),s(n,"INT64",new n("int64")),s(n,"INT32",new n("int32")),s(n,"INT16",new n("int16")),s(n,"INT8",new n("int8")),s(n,"UINT64",new n("uint64")),s(n,"UINT32",new n("uint32")),s(n,"UINT16",new n("uint16")),s(n,"UINT8",new n("uint8")),s(n,"BOOLEAN",n.UINT8),s(n,"TIMESTAMP",new n("timestamp")),s(n,"UUID",new n("uuid")),s(n,"STRING",new n("string")),s(n,"JSON",new n("json")),s(n,"ARRAY_CONSTRUCTORS",new Map([[n.UINT8.toString(),Uint8Array],[n.UINT16.toString(),Uint16Array],[n.UINT32.toString(),Uint32Array],[n.UINT64.toString(),BigUint64Array],[n.FLOAT32.toString(),Float32Array],[n.FLOAT64.toString(),Float64Array],[n.INT8.toString(),Int8Array],[n.INT16.toString(),Int16Array],[n.INT32.toString(),Int32Array],[n.INT64.toString(),BigInt64Array],[n.TIMESTAMP.toString(),BigInt64Array],[n.STRING.toString(),Uint8Array],[n.JSON.toString(),Uint8Array],[n.UUID.toString(),Uint8Array]])),s(n,"ARRAY_CONSTRUCTOR_DATA_TYPES",new Map([[Uint8Array.name,n.UINT8],[Uint16Array.name,n.UINT16],[Uint32Array.name,n.UINT32],[BigUint64Array.name,n.UINT64],[Float32Array.name,n.FLOAT32],[Float64Array.name,n.FLOAT64],[Int8Array.name,n.INT8],[Int16Array.name,n.INT16],[Int32Array.name,n.INT32],[BigInt64Array.name,n.INT64]])),s(n,"DENSITIES",new Map([[n.UINT8.toString(),I.BIT8],[n.UINT16.toString(),I.BIT16],[n.UINT32.toString(),I.BIT32],[n.UINT64.toString(),I.BIT64],[n.FLOAT32.toString(),I.BIT32],[n.FLOAT64.toString(),I.BIT64],[n.INT8.toString(),I.BIT8],[n.INT16.toString(),I.BIT16],[n.INT32.toString(),I.BIT32],[n.INT64.toString(),I.BIT64],[n.TIMESTAMP.toString(),I.BIT64],[n.STRING.toString(),I.UNKNOWN],[n.JSON.toString(),I.UNKNOWN],[n.UUID.toString(),I.BIT128]])),s(n,"ALL",[n.UNKNOWN,n.FLOAT64,n.FLOAT32,n.INT64,n.INT32,n.INT16,n.INT8,n.UINT64,n.UINT32,n.UINT16,n.UINT8,n.TIMESTAMP,n.UUID,n.STRING,n.JSON]),s(n,"BIG_INT_TYPES",[n.INT64,n.UINT64,n.TIMESTAMP]),s(n,"z",c.z.union([c.z.string().transform(t=>new n(t)),c.z.instanceof(n)]));let h=n;const l=class l extends Number{constructor(t){super(t.valueOf())}largerThan(t){return this.valueOf()>t.valueOf()}smallerThan(t){return this.valueOf()<t.valueOf()}add(t){return l.bytes(this.valueOf()+t.valueOf())}sub(t){return l.bytes(this.valueOf()-t.valueOf())}truncate(t){return new l(Math.trunc(this.valueOf()/t.valueOf())*t.valueOf())}remainder(t){return l.bytes(this.valueOf()%t.valueOf())}get gigabytes(){return this.valueOf()/l.GIGABYTE.valueOf()}get megabytes(){return this.valueOf()/l.MEGABYTE.valueOf()}get kilobytes(){return this.valueOf()/l.KILOBYTE.valueOf()}get terabytes(){return this.valueOf()/l.TERABYTE.valueOf()}toString(){const t=this.truncate(l.TERABYTE),e=this.truncate(l.GIGABYTE),r=this.truncate(l.MEGABYTE),u=this.truncate(l.KILOBYTE),d=this.truncate(l.BYTE),g=t,S=e.sub(t),O=r.sub(e),N=u.sub(r),p=d.sub(u);let o="";return g.isZero||(o+=`${g.terabytes}TB `),S.isZero||(o+=`${S.gigabytes}GB `),O.isZero||(o+=`${O.megabytes}MB `),N.isZero||(o+=`${N.kilobytes}KB `),(!p.isZero||o==="")&&(o+=`${p.valueOf()}B`),o.trim()}static bytes(t=1){return new l(t)}static kilobytes(t=1){return l.bytes(t.valueOf()*1e3)}static megabytes(t=1){return l.kilobytes(t.valueOf()*1e3)}static gigabytes(t=1){return l.megabytes(t.valueOf()*1e3)}static terabytes(t){return l.gigabytes(t.valueOf()*1e3)}get isZero(){return this.valueOf()===0}};s(l,"BYTE",new l(1)),s(l,"KILOBYTE",l.kilobytes(1)),s(l,"MEGABYTE",l.megabytes(1)),s(l,"GIGABYTE",l.gigabytes(1)),s(l,"TERABYTE",l.terabytes(1)),s(l,"ZERO",new l(0)),s(l,"z",c.z.union([c.z.number().transform(t=>new l(t)),c.z.instanceof(l)]));let C=l;const et=c.z.union([c.z.instanceof(Uint8Array),c.z.instanceof(Uint16Array),c.z.instanceof(Uint32Array),c.z.instanceof(BigUint64Array),c.z.instanceof(Float32Array),c.z.instanceof(Float64Array),c.z.instanceof(Int8Array),c.z.instanceof(Int16Array),c.z.instanceof(Int32Array),c.z.instanceof(BigInt64Array)]),D=f=>{const t=typeof f;return t==="string"||t==="number"||t==="boolean"||t==="bigint"||f instanceof y||f instanceof m||f instanceof Date},J=(f,t,e,r=0)=>f.usesBigInt&&!t.usesBigInt?Number(e)-Number(r):!f.usesBigInt&&t.usesBigInt?BigInt(e)-BigInt(r):R(e,-r),W=f=>f==null?!1:Array.isArray(f)||f instanceof ArrayBuffer||ArrayBuffer.isView(f)&&!(f instanceof DataView)||f instanceof T?!0:D(f),E=-1;class T{constructor(t){s(this,"key","");s(this,"isSynnaxSeries",!0);s(this,"dataType");s(this,"sampleOffset");s(this,"gl");s(this,"_data");s(this,"_timeRange");s(this,"alignment",0n);s(this,"_cachedMin");s(this,"_cachedMax");s(this,"writePos",E);s(this,"_refCount",0);s(this,"_cachedLength");W(t)&&(t={data:t});const{dataType:e,timeRange:r,sampleOffset:u=0,glBufferUsage:d="static",alignment:g=0n,key:S=Z()}=t,{data:O}=t;if(O instanceof T||typeof O=="object"&&"isSynnaxSeries"in O&&O.isSynnaxSeries===!0){const o=O;this.key=o.key,this.dataType=o.dataType,this.sampleOffset=o.sampleOffset,this.gl=o.gl,this._data=o._data,this._timeRange=o._timeRange,this.alignment=o.alignment,this._cachedMin=o._cachedMin,this._cachedMax=o._cachedMax,this.writePos=o.writePos,this._refCount=o._refCount,this._cachedLength=o._cachedLength;return}const N=D(O),p=Array.isArray(O);if(e!=null)this.dataType=new h(e);else{if(O instanceof ArrayBuffer)throw new Error("cannot infer data type from an ArrayBuffer instance when constructing a Series. Please provide a data type.");if(p||N){let o=O;if(!N){if(O.length===0)throw new Error("cannot infer data type from a zero length JS array when constructing a Series. Please provide a data type.");o=O[0]}if(typeof o=="string")this.dataType=h.STRING;else if(typeof o=="number")this.dataType=h.FLOAT64;else if(typeof o=="bigint")this.dataType=h.INT64;else if(typeof o=="boolean")this.dataType=h.BOOLEAN;else if(o instanceof y||o instanceof Date||o instanceof y)this.dataType=h.TIMESTAMP;else if(typeof o=="object")this.dataType=h.JSON;else throw new Error(`cannot infer data type of ${typeof o} when constructing a Series from a JS array`)}else this.dataType=new h(O)}if(!p&&!N)this._data=O;else{let o=N?[O]:O;const B=o[0];(B instanceof y||B instanceof Date||B instanceof m)&&(o=o.map(U=>new y(U).valueOf())),this.dataType.equals(h.STRING)?(this._cachedLength=o.length,this._data=new TextEncoder().encode(o.join(`
|
|
2
2
|
`)+`
|
|
3
3
|
`)):this.dataType.equals(h.JSON)?(this._cachedLength=o.length,this._data=new TextEncoder().encode(o.map(U=>L.JSON_CODEC.encodeString(U)).join(`
|
|
4
4
|
`)+`
|
|
@@ -37,8 +37,13 @@ export declare const EQUAL = 0;
|
|
|
37
37
|
export declare const LESS_THAN = -1;
|
|
38
38
|
/** The greater than return value of a compare function. */
|
|
39
39
|
export declare const GREATER_THAN = 1;
|
|
40
|
+
/** @returns true if the result of the comparison is less than 0. */
|
|
40
41
|
export declare const isLessThan: (n: number) => boolean;
|
|
42
|
+
/** @returns true if the result of the comparison is greater than 0. */
|
|
41
43
|
export declare const isGreaterThan: (n: number) => boolean;
|
|
44
|
+
/** @returns true if the result of the comparison is equal to 0. */
|
|
42
45
|
export declare const isGreaterThanEqual: (n: number) => boolean;
|
|
46
|
+
/** @returns true if the result of the comparison is equal to 0. */
|
|
47
|
+
export declare const isEqualTo: (n: number) => boolean;
|
|
43
48
|
export declare const stringsWithNumbers: (a: string, b: string) => number;
|
|
44
49
|
//# sourceMappingURL=compare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/compare/compare.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,KAAK,CAAC,YAAW,OAAO,KAAW,QAAQ,CAAC,CAAC,CA4BlE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,OACpB,MAAM,CAAC,SACL,CAAC,YACE,OAAO,KAChB,QAAQ,CAAC,CAAC,CAGZ,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,SAAS,KAC9C,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KAClB,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KACpB,MAGF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,SAAS,KACvD,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KAClB,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KACpB,MAOF,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,KAAG,MAI1D,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,GAClB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAC,CAEtB,CAAC;AAEZ,oDAAoD;AACpD,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB,wDAAwD;AACxD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,2DAA2D;AAC3D,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,OAAoB,CAAC;AAE5D,eAAO,MAAM,aAAa,MAAO,MAAM,KAAG,OAAoB,CAAC;AAE/D,eAAO,MAAM,kBAAkB,MAAO,MAAM,KAAG,OAAqB,CAAC;AAErE,eAAO,MAAM,kBAAkB,MAAO,MAAM,KAAK,MAAM,KAAG,MAyBzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/compare/compare.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,KAAK,CAAC,YAAW,OAAO,KAAW,QAAQ,CAAC,CAAC,CA4BlE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,OACpB,MAAM,CAAC,SACL,CAAC,YACE,OAAO,KAChB,QAAQ,CAAC,CAAC,CAGZ,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,SAAS,KAC9C,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KAClB,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KACpB,MAGF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,SAAS,KACvD,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KAClB,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,KACpB,MAOF,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,KAAG,MAI1D,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,GAClB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAC,CAEtB,CAAC;AAEZ,oDAAoD;AACpD,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB,wDAAwD;AACxD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,2DAA2D;AAC3D,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,oEAAoE;AACpE,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,OAAoB,CAAC;AAE5D,uEAAuE;AACvE,eAAO,MAAM,aAAa,MAAO,MAAM,KAAG,OAAoB,CAAC;AAE/D,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,MAAO,MAAM,KAAG,OAAqB,CAAC;AAErE,mEAAmE;AACnE,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,OAAsB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,MAAO,MAAM,KAAK,MAAM,KAAG,MAyBzD,CAAC"}
|
package/dist/src/deep/path.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export type Key<T, D extends number = 5> = [D] extends [never] ? never : T exten
|
|
|
36
36
|
export interface GetOptions<O extends boolean | undefined = boolean | undefined> {
|
|
37
37
|
optional: O;
|
|
38
38
|
getter?: (obj: UnknownRecord, key: string) => unknown;
|
|
39
|
+
separator?: string;
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* A function that gets the value at the given path on the object. If the path does not exist
|
|
@@ -65,7 +66,7 @@ export interface TypedGet<V = unknown, T = UnknownRecord> {
|
|
|
65
66
|
* the part will be removed from the path.
|
|
66
67
|
* @returns the transformed path.
|
|
67
68
|
*/
|
|
68
|
-
export declare const transformPath: (path: string, replacer: (part: string, index: number, parts: string[]) => string | string[] | undefined) => string;
|
|
69
|
+
export declare const transformPath: (path: string, replacer: (part: string, index: number, parts: string[]) => string | string[] | undefined, separator?: string) => string;
|
|
69
70
|
/**
|
|
70
71
|
* Gets the value at the given path on the object. If the path does not exist
|
|
71
72
|
* and the optional flag is set to true, null will be returned. If the path does
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/deep/path.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,KAAK,IAAI,GAAG;IACV,KAAK;IACL,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,GAAG,KAAK,CAAC,CAAC,CAAC;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC1D,KAAK,GACL,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GACvC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GACpC,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACV,EAAE,CAAC;AAET,oCAAoC;AACpC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAC7E,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/deep/path.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,KAAK,IAAI,GAAG;IACV,KAAK;IACL,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,EAAE;IACF,GAAG,KAAK,CAAC,CAAC,CAAC;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC1D,KAAK,GACL,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GACvC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GACpC,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACV,EAAE,CAAC;AAET,oCAAoC;AACpC,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAC7E,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,GAAG;IAClB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,aAAa,EAC7B,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAC1B,CAAC,CAAC;IACL,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,aAAa,EAC7B,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,GACxC,CAAC,GAAG,IAAI,CAAC;CACb;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,aAAa;IACtD,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CAC7E;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,SAClB,MAAM,YACF,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,KACZ,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,yBAEjC,MAWF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,EAmBC,GAAG,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,OAAO,CAAC,QAAQ,MAAM,SAAS,OAAO,KAAG,IAS7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,OAAO,CAAC,QAAQ,MAAM,KAAG,IAgBhD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,SAAU,MAAM,SAAS,MAAM,KAAG,MAIrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,QAAQ,MAAM,KAAG,OAO1E,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,WAAW,MAAM,KAAG,OAY1D,CAAC"}
|
|
@@ -1,29 +1,59 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { compare } from '../compare';
|
|
3
2
|
export declare const semVerZ: z.ZodString;
|
|
4
3
|
export type SemVer = z.infer<typeof semVerZ>;
|
|
4
|
+
export interface CompareSemVerOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Whether to validate that major versions are equal.
|
|
7
|
+
* @default true
|
|
8
|
+
*/
|
|
9
|
+
checkMajor?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to validate that minor versions are equal.
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
checkMinor?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to validate that patch versions are equal.
|
|
17
|
+
* @default true
|
|
18
|
+
*/
|
|
19
|
+
checkPatch?: boolean;
|
|
20
|
+
}
|
|
5
21
|
/**
|
|
6
22
|
* Compares the two semantic versions.
|
|
7
23
|
*
|
|
8
24
|
* @param a The first semantic version.
|
|
9
25
|
* @param b The second semantic version.
|
|
26
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
27
|
+
* (major, minor, patch).
|
|
10
28
|
* @returns a number, where the the number is compare.LESS_THAN (negative) if a is OLDER
|
|
11
29
|
* than B, compare.EQUAL (0) if a is the same as b, and compare.GREATER_THAN (positive)
|
|
12
30
|
* if a is NEWER than b.
|
|
13
31
|
*/
|
|
14
|
-
export declare const compareSemVer:
|
|
32
|
+
export declare const compareSemVer: (a: SemVer, b: SemVer, opts?: CompareSemVerOptions) => 1 | 0 | -1;
|
|
33
|
+
/**
|
|
34
|
+
* @returns true if the two semantic versions are equal.
|
|
35
|
+
* @param a - The first semantic version.
|
|
36
|
+
* @param b - The second semantic version.
|
|
37
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
38
|
+
* (major, minor, patch).
|
|
39
|
+
*/
|
|
40
|
+
export declare const versionsEqual: (a: SemVer, b: SemVer, opts?: CompareSemVerOptions) => boolean;
|
|
15
41
|
/**
|
|
16
42
|
* @returns true if the first semantic version is newer than the second.
|
|
17
43
|
* @param a The first semantic version.
|
|
18
44
|
* @param b The second semantic version.
|
|
45
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
46
|
+
* (major, minor, patch).
|
|
19
47
|
*/
|
|
20
|
-
export declare const semVerNewer: (a: SemVer, b: SemVer) => boolean;
|
|
48
|
+
export declare const semVerNewer: (a: SemVer, b: SemVer, opts?: CompareSemVerOptions) => boolean;
|
|
21
49
|
/**
|
|
22
50
|
* @returns true if the first semantic version is older than the second.
|
|
23
51
|
* @param a The first semantic version.
|
|
24
52
|
* @param b The second semantic version.
|
|
53
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
54
|
+
* (major, minor, patch).
|
|
25
55
|
*/
|
|
26
|
-
export declare const semVerOlder: (a: SemVer, b: SemVer) => boolean;
|
|
56
|
+
export declare const semVerOlder: (a: SemVer, b: SemVer, opts?: CompareSemVerOptions) => boolean;
|
|
27
57
|
export type Migratable<V extends string = string> = {
|
|
28
58
|
version: V;
|
|
29
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/migrate/migrate.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/migrate/migrate.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,OAAO,aAAsC,CAAC;AAE3D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,MACrB,MAAM,KACN,MAAM,SACH,oBAAoB,eAsBS,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,MACrB,MAAM,KACN,MAAM,SACH,oBAAoB,KACzB,OAAuD,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,MACnB,MAAM,KACN,MAAM,SACH,oBAAoB,KACzB,OAA2D,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,MACnB,MAAM,KACN,MAAM,SACH,oBAAoB,KACzB,OAAwD,CAAC;AAE5D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAEpF,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,EACpB,EAAE,SAAS,CAAC,CAAC,UAAU,EACvB,EAAE,SAAS,CAAC,CAAC,UAAU;IAEvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1B;AAED,eAAO,MAAM,eAAe,GAExB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,EACpB,EAAE,SAAS,CAAC,CAAC,UAAU,iBACvB,EAAE,SAAS,CAAC,CAAC,UAAU,qCAItB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAW/C,CAAC;AAEJ;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7D,UAAU,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC;IACP,YAAY,CAAC,EAAE,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,GACnB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,UAAU,EACpB,EAAE,SAAS,CAAC,CAAC,UAAU,2DAMtB,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,KAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAuDrC,CAAC"}
|
package/dist/telem.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./series-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./series-DMsaUp_n.cjs");exports.DataType=e.DataType;exports.Density=e.Density;exports.MultiSeries=e.MultiSeries;exports.Rate=e.Rate;exports.Series=e.Series;exports.Size=e.Size;exports.TimeRange=e.TimeRange;exports.TimeSpan=e.TimeSpan;exports.TimeStamp=e.TimeStamp;exports.addSamples=e.addSamples;exports.convertDataType=e.convertDataType;exports.isCrudeSeries=e.isCrudeSeries;exports.isTelemValue=e.isTelemValue;exports.typedArrayZ=e.typedArrayZ;
|
package/dist/telem.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as s, D as i, M as t, R as r, S, e as m, c as p, b as T, T as d, a as y, g as l, i as n, f as D, t as o } from "./series-
|
|
1
|
+
import { d as s, D as i, M as t, R as r, S, e as m, c as p, b as T, T as d, a as y, g as l, i as n, f as D, t as o } from "./series-DIZdmPCa.js";
|
|
2
2
|
export {
|
|
3
3
|
s as DataType,
|
|
4
4
|
i as Density,
|
package/dist/zodutil.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./path-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./path-577Fmn5N.cjs"),c=e=>o.transformPath(e,(t,r,n)=>{const u=r===n.length-1,i=!isNaN(parseInt(t)),l=!isNaN(parseInt(n[r+1]));return i&&(t="element"),u||l?t:[t,"shape"]}),s=(e,t)=>{if(e==null)return null;const r=e[t];return r==null&&typeof e=="object"&&"sourceType"in e?e.sourceType()[t]:r},a=(e,t,r)=>o.get(s(e,"shape"),c(t),{...r,getter:s}),p=Object.freeze(Object.defineProperty({__proto__:null,getFieldSchema:a,getFieldSchemaPath:c},Symbol.toStringTag,{value:"Module"}));exports.zodutil=p;
|
package/dist/zodutil.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as l, g as a } from "./path-
|
|
1
|
+
import { t as l, g as a } from "./path-B-1-i3qC.js";
|
|
2
2
|
const o = (e) => l(e, (t, r, n) => {
|
|
3
3
|
const c = r === n.length - 1, u = !isNaN(parseInt(t)), i = !isNaN(parseInt(n[r + 1]));
|
|
4
4
|
return u && (t = "element"), c || i ? t : [t, "shape"];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synnaxlabs/x",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Common Utilities for Synnax Labs",
|
|
6
6
|
"repository": "https://github.com/synnaxlabs/synnax/tree/main/x/go",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"typescript": "^5.5.3",
|
|
24
24
|
"vite": "5.3.3",
|
|
25
25
|
"vitest": "^1.6.0",
|
|
26
|
-
"@synnaxlabs/vite-plugin": "0.0.1",
|
|
27
26
|
"@synnaxlabs/tsconfig": "0.0.2",
|
|
27
|
+
"@synnaxlabs/vite-plugin": "0.0.1",
|
|
28
28
|
"eslint-config-synnaxlabs": "0.0.1"
|
|
29
29
|
},
|
|
30
30
|
"main": "./dist/index.cjs",
|
package/src/compare/compare.ts
CHANGED
|
@@ -115,12 +115,18 @@ export const LESS_THAN = -1;
|
|
|
115
115
|
/** The greater than return value of a compare function. */
|
|
116
116
|
export const GREATER_THAN = 1;
|
|
117
117
|
|
|
118
|
+
/** @returns true if the result of the comparison is less than 0. */
|
|
118
119
|
export const isLessThan = (n: number): boolean => n < EQUAL;
|
|
119
120
|
|
|
121
|
+
/** @returns true if the result of the comparison is greater than 0. */
|
|
120
122
|
export const isGreaterThan = (n: number): boolean => n > EQUAL;
|
|
121
123
|
|
|
124
|
+
/** @returns true if the result of the comparison is equal to 0. */
|
|
122
125
|
export const isGreaterThanEqual = (n: number): boolean => n >= EQUAL;
|
|
123
126
|
|
|
127
|
+
/** @returns true if the result of the comparison is equal to 0. */
|
|
128
|
+
export const isEqualTo = (n: number): boolean => n === EQUAL;
|
|
129
|
+
|
|
124
130
|
export const stringsWithNumbers = (a: string, b: string): number => {
|
|
125
131
|
const alphaNumericRegex = /([a-zA-Z]+)|(\d+)/g;
|
|
126
132
|
|
package/src/deep/path.ts
CHANGED
|
@@ -54,6 +54,7 @@ export type Key<T, D extends number = 5> = [D] extends [never]
|
|
|
54
54
|
export interface GetOptions<O extends boolean | undefined = boolean | undefined> {
|
|
55
55
|
optional: O;
|
|
56
56
|
getter?: (obj: UnknownRecord, key: string) => unknown;
|
|
57
|
+
separator?: string;
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
/**
|
|
@@ -101,17 +102,18 @@ export const transformPath = (
|
|
|
101
102
|
index: number,
|
|
102
103
|
parts: string[],
|
|
103
104
|
) => string | string[] | undefined,
|
|
105
|
+
separator = ".",
|
|
104
106
|
): string => {
|
|
105
|
-
const parts = path.split(
|
|
107
|
+
const parts = path.split(separator);
|
|
106
108
|
const result = parts
|
|
107
109
|
.map((part, index) => {
|
|
108
110
|
const r = replacer(part, index, parts);
|
|
109
111
|
if (r == null) return null;
|
|
110
112
|
if (typeof r === "string") return r;
|
|
111
|
-
return r.join(
|
|
113
|
+
return r.join(separator);
|
|
112
114
|
})
|
|
113
115
|
.filter((part) => part != null) as string[];
|
|
114
|
-
return result.join(
|
|
116
|
+
return result.join(separator);
|
|
115
117
|
};
|
|
116
118
|
|
|
117
119
|
/**
|
|
@@ -128,10 +130,11 @@ export const transformPath = (
|
|
|
128
130
|
export const get = (<V = unknown, T = UnknownRecord>(
|
|
129
131
|
obj: T,
|
|
130
132
|
path: string,
|
|
131
|
-
opts: GetOptions = { optional: false },
|
|
133
|
+
opts: GetOptions = { optional: false, separator: "." },
|
|
132
134
|
): V | null => {
|
|
135
|
+
opts.separator ??= ".";
|
|
133
136
|
const { optional, getter = (obj, key) => (obj as UnknownRecord)[key] } = opts;
|
|
134
|
-
const parts = path.split(
|
|
137
|
+
const parts = path.split(opts.separator);
|
|
135
138
|
if (parts.length === 1 && parts[0] === "") return obj as unknown as V;
|
|
136
139
|
let result: UnknownRecord = obj as UnknownRecord;
|
|
137
140
|
for (const part of parts) {
|
|
@@ -61,6 +61,84 @@ describe("compareSemVer", () => {
|
|
|
61
61
|
expect(migrate.compareSemVer("1.0.0", "0.0.0")).toBeGreaterThan(0);
|
|
62
62
|
expect(migrate.semVerNewer("3.0.0", "0.3.0")).toBeTruthy();
|
|
63
63
|
});
|
|
64
|
+
describe("only check major", () => {
|
|
65
|
+
it("should return equal when the major versions are equal but the minor and patch are different", () => {
|
|
66
|
+
expect(
|
|
67
|
+
migrate.compareSemVer("1.0.0", "1.1.0", {
|
|
68
|
+
checkMinor: false,
|
|
69
|
+
checkPatch: false,
|
|
70
|
+
}),
|
|
71
|
+
).toBe(0);
|
|
72
|
+
});
|
|
73
|
+
it("should return greater than when the major version is higher", () => {
|
|
74
|
+
expect(
|
|
75
|
+
migrate.compareSemVer("2.0.0", "1.1.0", {
|
|
76
|
+
checkMinor: false,
|
|
77
|
+
checkPatch: false,
|
|
78
|
+
}),
|
|
79
|
+
).toBeGreaterThan(0);
|
|
80
|
+
});
|
|
81
|
+
it("should return less than when the major version is lower", () => {
|
|
82
|
+
expect(
|
|
83
|
+
migrate.compareSemVer("1.0.0", "2.1.0", {
|
|
84
|
+
checkMinor: false,
|
|
85
|
+
checkPatch: false,
|
|
86
|
+
}),
|
|
87
|
+
).toBeLessThan(0);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe("only check minor", () => {
|
|
91
|
+
it("should return equal when the minor versions are equal but the major and patch are different", () => {
|
|
92
|
+
expect(
|
|
93
|
+
migrate.compareSemVer("1.0.0", "2.0.0", {
|
|
94
|
+
checkMajor: false,
|
|
95
|
+
checkPatch: false,
|
|
96
|
+
}),
|
|
97
|
+
).toBe(0);
|
|
98
|
+
});
|
|
99
|
+
it("should return greater than when the minor version is higher", () => {
|
|
100
|
+
expect(
|
|
101
|
+
migrate.compareSemVer("1.2.0", "1.1.0", {
|
|
102
|
+
checkMajor: false,
|
|
103
|
+
checkPatch: false,
|
|
104
|
+
}),
|
|
105
|
+
).toBeGreaterThan(0);
|
|
106
|
+
});
|
|
107
|
+
it("should return less than when the minor version is lower", () => {
|
|
108
|
+
expect(
|
|
109
|
+
migrate.compareSemVer("1.0.0", "1.1.0", {
|
|
110
|
+
checkMajor: false,
|
|
111
|
+
checkPatch: false,
|
|
112
|
+
}),
|
|
113
|
+
).toBeLessThan(0);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe("only check patch", () => {
|
|
117
|
+
it("should return equal when the patch versions are equal but the major and minor are different", () => {
|
|
118
|
+
expect(
|
|
119
|
+
migrate.compareSemVer("2.1.1", "2.2.1", {
|
|
120
|
+
checkMajor: false,
|
|
121
|
+
checkMinor: false,
|
|
122
|
+
}),
|
|
123
|
+
).toBe(0);
|
|
124
|
+
});
|
|
125
|
+
it("should return greater than when the patch version is higher", () => {
|
|
126
|
+
expect(
|
|
127
|
+
migrate.compareSemVer("1.4.2", "1.9.1", {
|
|
128
|
+
checkMajor: false,
|
|
129
|
+
checkMinor: false,
|
|
130
|
+
}),
|
|
131
|
+
).toBeGreaterThan(0);
|
|
132
|
+
});
|
|
133
|
+
it("should return less than when the patch version is lower", () => {
|
|
134
|
+
expect(
|
|
135
|
+
migrate.compareSemVer("10000.2.0", "95.6.1", {
|
|
136
|
+
checkMajor: false,
|
|
137
|
+
checkMinor: false,
|
|
138
|
+
}),
|
|
139
|
+
).toBeLessThan(0);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
64
142
|
});
|
|
65
143
|
|
|
66
144
|
describe("migrator", () => {
|
package/src/migrate/migrate.ts
CHANGED
|
@@ -15,40 +15,100 @@ export const semVerZ = z.string().regex(/^\d+\.\d+\.\d+$/);
|
|
|
15
15
|
|
|
16
16
|
export type SemVer = z.infer<typeof semVerZ>;
|
|
17
17
|
|
|
18
|
+
export interface CompareSemVerOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Whether to validate that major versions are equal.
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
checkMajor?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to validate that minor versions are equal.
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
checkMinor?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to validate that patch versions are equal.
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
checkPatch?: boolean;
|
|
34
|
+
}
|
|
35
|
+
|
|
18
36
|
/**
|
|
19
37
|
* Compares the two semantic versions.
|
|
20
38
|
*
|
|
21
39
|
* @param a The first semantic version.
|
|
22
40
|
* @param b The second semantic version.
|
|
41
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
42
|
+
* (major, minor, patch).
|
|
23
43
|
* @returns a number, where the the number is compare.LESS_THAN (negative) if a is OLDER
|
|
24
44
|
* than B, compare.EQUAL (0) if a is the same as b, and compare.GREATER_THAN (positive)
|
|
25
45
|
* if a is NEWER than b.
|
|
26
46
|
*/
|
|
27
|
-
export const compareSemVer
|
|
47
|
+
export const compareSemVer = ((
|
|
48
|
+
a: SemVer,
|
|
49
|
+
b: SemVer,
|
|
50
|
+
opts: CompareSemVerOptions = {},
|
|
51
|
+
) => {
|
|
52
|
+
opts.checkMajor ??= true;
|
|
53
|
+
opts.checkMinor ??= true;
|
|
54
|
+
opts.checkPatch ??= true;
|
|
28
55
|
const semA = semVerZ.parse(a);
|
|
29
56
|
const semB = semVerZ.parse(b);
|
|
30
57
|
const [aMajor, aMinor, aPatch] = semA.split(".").map(Number);
|
|
31
58
|
const [bMajor, bMinor, bPatch] = semB.split(".").map(Number);
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
59
|
+
if (opts.checkMajor) {
|
|
60
|
+
if (aMajor < bMajor) return compare.LESS_THAN;
|
|
61
|
+
if (aMajor > bMajor) return compare.GREATER_THAN;
|
|
62
|
+
}
|
|
63
|
+
if (opts.checkMinor) {
|
|
64
|
+
if (aMinor < bMinor) return compare.LESS_THAN;
|
|
65
|
+
if (aMinor > bMinor) return compare.GREATER_THAN;
|
|
66
|
+
}
|
|
67
|
+
if (opts.checkPatch) {
|
|
68
|
+
if (aPatch < bPatch) return compare.LESS_THAN;
|
|
69
|
+
if (aPatch > bPatch) return compare.GREATER_THAN;
|
|
70
|
+
}
|
|
71
|
+
return compare.EQUAL;
|
|
72
|
+
}) satisfies compare.CompareF<SemVer>;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @returns true if the two semantic versions are equal.
|
|
76
|
+
* @param a - The first semantic version.
|
|
77
|
+
* @param b - The second semantic version.
|
|
78
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
79
|
+
* (major, minor, patch).
|
|
80
|
+
*/
|
|
81
|
+
export const versionsEqual = (
|
|
82
|
+
a: SemVer,
|
|
83
|
+
b: SemVer,
|
|
84
|
+
opts: CompareSemVerOptions = {},
|
|
85
|
+
): boolean => compare.isEqualTo(compareSemVer(a, b, opts));
|
|
36
86
|
|
|
37
87
|
/**
|
|
38
88
|
* @returns true if the first semantic version is newer than the second.
|
|
39
89
|
* @param a The first semantic version.
|
|
40
90
|
* @param b The second semantic version.
|
|
91
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
92
|
+
* (major, minor, patch).
|
|
41
93
|
*/
|
|
42
|
-
export const semVerNewer = (
|
|
43
|
-
|
|
94
|
+
export const semVerNewer = (
|
|
95
|
+
a: SemVer,
|
|
96
|
+
b: SemVer,
|
|
97
|
+
opts: CompareSemVerOptions = {},
|
|
98
|
+
): boolean => compare.isGreaterThan(compareSemVer(a, b, opts));
|
|
44
99
|
|
|
45
100
|
/**
|
|
46
101
|
* @returns true if the first semantic version is older than the second.
|
|
47
102
|
* @param a The first semantic version.
|
|
48
103
|
* @param b The second semantic version.
|
|
104
|
+
* @param opts - Optional object to disable checking specific version parts
|
|
105
|
+
* (major, minor, patch).
|
|
49
106
|
*/
|
|
50
|
-
export const semVerOlder = (
|
|
51
|
-
|
|
107
|
+
export const semVerOlder = (
|
|
108
|
+
a: SemVer,
|
|
109
|
+
b: SemVer,
|
|
110
|
+
opts: CompareSemVerOptions = {},
|
|
111
|
+
): boolean => compare.isLessThan(compareSemVer(a, b, opts));
|
|
52
112
|
|
|
53
113
|
export type Migratable<V extends string = string> = { version: V };
|
|
54
114
|
|