@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.
@@ -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-DCwgKLH_.js";
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/deep/path.ts"],"names":[],"mappings":"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"}
@@ -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: compare.CompareF<string>;
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;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,OAAO,aAAsC,CAAC;AAE3D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAQlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,MAAO,MAAM,KAAK,MAAM,KAAG,OACP,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,WAAW,MAAO,MAAM,KAAK,MAAM,KAAG,OACV,CAAC;AAE1C,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"}
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-BVB6n18P.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;
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-DMUGN3Sl.js";
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-DLggFlTl.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;
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-DsFnOSKR.js";
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.27.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",
@@ -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", () => {
@@ -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: compare.CompareF<string> = (a, b) => {
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 (aMajor !== bMajor) return aMajor - bMajor;
33
- if (aMinor !== bMinor) return aMinor - bMinor;
34
- return aPatch - bPatch;
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 = (a: SemVer, b: SemVer): boolean =>
43
- compare.isGreaterThan(compareSemVer(a, b));
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 = (a: SemVer, b: SemVer): boolean =>
51
- compare.isLessThan(compareSemVer(a, b));
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