@math.gl/wkb 5.0.0-alpha.2

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,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/types.ts", "../src/wkb-reader.ts", "../src/wkb.ts", "../src/wkb-builder.ts", "../src/wkt.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;ACwBM,SAAU,0BAA0B,WAA6B;AACrE,UAAQ,WAAW;IACjB,KAAK;AACH,aAAO;IACT,KAAK;IACL,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;EACX;AACF;AAGM,SAAU,gCAAgC,UAA2B;AACzE,QAAM,OAAO,yBAAyB,QAAQ;AAC9C,SAAO,QAAQ,IAAI,SAAS,SAAS,IAAI,QAAQ;AACnD;AAEA,SAAS,yBAAyB,UAA2B;AAC3D,MAAI,SAAS,SAAS,sBAAsB;AAC1C,WAAO,KAAK,IAAI,GAAG,GAAG,SAAS,WAAW,IAAI,wBAAwB,CAAC;EACzE;AACA,SAAO,uBAAuB,SAAS,WAAW;AACpD;AAEA,SAAS,uBAAuB,OAAyB;AACvD,MAAI,MAAM,WAAW;AAAG,WAAO;AAC/B,MAAI,OAAO,MAAM,CAAC,MAAM;AAAU,WAAO,MAAM;AAC/C,SAAO,KAAK,IAAI,GAAG,GAAG,MAAM,IAAI,WAAS,uBAAuB,KAA2B,CAAC,CAAC;AAC/F;;;ACmDA,IAAM,iBAA6C;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;;AAII,SAAU,iBACd,OACA,aAAa,GAAC;AAEd,SAAO,qBAAqB,YAAY,KAAK,GAAG,UAAU;AAC5D;AAMM,SAAU,SACd,OACA,SACA,UAA+B,CAAA,GAAE;AAEjC,QAAM,OAAO,YAAY,KAAK;AAC9B,QAAM,QAAwB;IAC5B,cAAc,cAAc,QAAQ,cAAc,IAAI,cAAc;IACpE,iBAAiB,cAAc,QAAQ,iBAAiB,KAAa,iBAAiB;IACtF,cAAc;IACd;;AAEF,QAAM,aAAa,cAAc,MAAM,GAAG,OAAO,CAAC,EAAE;AACpD,MAAI,eAAe,KAAK;AAAY,UAAM,IAAI,MAAM,6BAA6B;AACjF,SAAO;AACT;AAGM,SAAU,QACd,OACA,UAA+B,CAAA,GAAE;AAEjC,QAAM,SAAS,iBAAiB,KAAK;AACrC,QAAM,iBAAkD;IACtD,OAAO;IACP,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,oBAAoB;;AAEtB,QAAM,gBAAgB,oBAAI,IAAG;AAC7B,QAAM,SAAwB,CAAA;AAC9B,MAAI,kBAAkB;AACtB,MAAI,YAAY;AAChB,MAAI,gBAAgB;AACpB,MAAI,eAAe;AAEnB,QAAM,aAAa,SACjB,OACA;IACE,UAAU,CAAC,gBAAgB,QAAQ,UAAS;AAC1C,qBAAe,eAAe,YAAY;AAC1C,oBAAc,IAAI,eAAe,YAAY;AAC7C;AACA,qBAAe,KAAK,IAAI,cAAc,KAAK;IAC7C;IACA,MAAM,MAAM;IACZ,YAAY,CAAC,GAAG,GAAG,GAAG,MAAK;AACzB;AACA,mBAAa,QAAQ,KAAK,CAAC;AAC3B,mBAAa,QAAQ,KAAK,CAAC;AAC3B,UAAI,MAAM;AAAW,qBAAa,QAAQ,KAAK,CAAC;AAChD,UAAI,MAAM;AAAW,qBAAa,QAAQ,KAAK,CAAC;IAClD;KAEF,OAAO;AAGT,QAAM,iBAAiB,WAAW,MAAM;AACxC,SAAO;IACL;IACA;IACA;IACA;IACA;IACA;IACA,eAAe,eAAe,OAAO,UAAQ,cAAc,IAAI,IAAI,CAAC;IACpE;IACA,GAAI,iBAAiB,EAAC,QAAQ,eAAc,IAAI,CAAA;;AAEpD;AAEA,SAAS,cACP,MACA,YACA,OACA,OACA,cAA8B;AA7MhC;AA+ME,MAAI,QAAQ,MAAM;AAAc,UAAM,IAAI,MAAM,2CAA2C;AAC3F,QAAM,SAAS,qBAAqB,MAAM,UAAU;AACpD,MAAI,gBAAgB,OAAO,iBAAiB,cAAc;AACxD,UAAM,IAAI,MAAM,OAAO,YAAY,0BAA0B,OAAO,YAAY,QAAQ;EAC1F;AACA,eAAa,OAAO;AAEpB,UAAQ,OAAO,cAAc;IAC3B,KAAK;AACH,wBAAM,SAAQ,aAAd,4BAAyB,QAAQ,QAAW;AAC5C,mBAAa,gBAAgB,MAAM,YAAY,QAAQ,MAAM,SAAS,KAAK;AAC3E;IACF,KAAK,cAAc;AACjB,YAAM,aAAa,UAAU,MAAM,YAAY,OAAO,cAAc,KAAK;AACzE,oBAAc;AACd,wBAAM,SAAQ,aAAd,4BAAyB,QAAQ,YAAY;AAC7C,mBAAa,wBAAwB,MAAM,YAAY,YAAY,QAAQ,OAAO,KAAK;AACvF;IACF;IACA,KAAK,WAAW;AACd,YAAM,YAAY,UAAU,MAAM,YAAY,OAAO,cAAc,KAAK;AACxE,oBAAc;AACd,wBAAM,SAAQ,aAAd,4BAAyB,QAAQ,WAAW;AAC5C,eAAS,YAAY,GAAG,YAAY,WAAW,aAAa;AAC1D,cAAM,aAAa,UAAU,MAAM,YAAY,OAAO,cAAc,KAAK;AACzE,sBAAc;AACd,0BAAM,SAAQ,SAAd,4BAAqB,YAAY,WAAW;AAC5C,qBAAa,wBAAwB,MAAM,YAAY,YAAY,QAAQ,OAAO,KAAK;MACzF;AACA;IACF;IACA,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK,sBAAsB;AACzB,YAAM,aAAa,UAAU,MAAM,YAAY,OAAO,cAAc,KAAK;AACzE,oBAAc;AACd,wBAAM,SAAQ,aAAd,4BAAyB,QAAQ,YAAY;AAC7C,YAAM,YACJ,OAAO,iBAAiB,eACpB,UACA,OAAO,iBAAiB,oBACtB,eACA,OAAO,iBAAiB,iBACtB,YACA;AACV,eAAS,aAAa,GAAG,aAAa,YAAY,cAAc;AAC9D,qBAAa,cAAc,MAAM,YAAY,OAAO,QAAQ,GAAG,SAAS,EAAE;MAC5E;AACA;IACF;EACF;AACA,SAAO,EAAC,YAAY,OAAM;AAC5B;AAEA,SAAS,wBACP,MACA,YACA,YACA,QACA,OACA,OAAa;AAEb,WAAS,aAAa,GAAG,aAAa,YAAY,cAAc;AAC9D,iBAAa,gBAAgB,MAAM,YAAY,QAAQ,MAAM,SAAS,KAAK;EAC7E;AACA,SAAO;AACT;AAEA,SAAS,gBACP,MACA,YACA,QACA,SACA,OAAa;AAzRf;AA2RE,QAAM,uBAAuB,0BAA0B,OAAO,SAAS,IAAI;AAC3E,kBAAgB,MAAM,YAAY,oBAAoB;AACtD,QAAM,IAAI,KAAK,WAAW,YAAY,OAAO,YAAY;AACzD,QAAM,IAAI,KAAK,WAAW,aAAa,GAAG,OAAO,YAAY;AAC7D,QAAM,QACJ,OAAO,cAAc,OAAO,SAAY,KAAK,WAAW,aAAa,IAAI,OAAO,YAAY;AAC9F,QAAM,SACJ,OAAO,cAAc,SAAS,KAAK,WAAW,aAAa,IAAI,OAAO,YAAY,IAAI;AACxF,QAAM,IAAI,OAAO,cAAc,SAAS,OAAO,cAAc,SAAS,QAAQ;AAC9E,QAAM,IAAI,OAAO,cAAc,QAAQ,QAAQ;AAC/C,gBAAQ,eAAR,iCAAqB,GAAG,GAAG,GAAG,GAAG,OAAO,WAAW,YAAY;AAC/D,SAAO,aAAa;AACtB;AAEA,SAAS,qBAAqB,MAAgB,YAAkB;AAC9D,QAAM,kBAAkB;AACxB,kBAAgB,MAAM,YAAY,CAAC;AACnC,QAAM,YAAY,KAAK,SAAS,YAAY;AAC5C,MAAI,cAAc,KAAK,cAAc;AAAG,UAAM,IAAI,MAAM,wBAAwB;AAChF,QAAM,eAAe,cAAc;AACnC,QAAM,WAAW,KAAK,UAAU,YAAY,YAAY;AACxD,gBAAc;AAEd,QAAM,OAAO,QAAQ,WAAW,UAAU;AAC1C,QAAM,OAAO,QAAQ,WAAW,UAAU;AAC1C,QAAM,UAAU,QAAQ,WAAW,SAAU;AAC7C,MAAI,eAAe,WAAW;AAC9B,MAAI;AACJ,MAAI,gBAAgB,OAAQ,eAAe,KAAM;AAC/C,gBAAY;AACZ,oBAAgB;EAClB,WAAW,gBAAgB,OAAQ,eAAe,KAAM;AACtD,gBAAY;AACZ,oBAAgB;EAClB,WAAW,gBAAgB,OAAQ,eAAe,KAAM;AACtD,gBAAY;AACZ,oBAAgB;EAClB,OAAO;AACL,gBAAY,QAAQ,OAAO,SAAS,OAAO,QAAQ,OAAO,QAAQ;EACpE;AACA,QAAM,eAAe,eAAe,eAAe,CAAC;AACpD,MAAI,CAAC;AAAc,UAAM,IAAI,MAAM,iCAAiC,YAAY,EAAE;AAElF,MAAI;AACJ,MAAI,SAAS;AACX,oBAAgB,MAAM,YAAY,CAAC;AACnC,WAAO,KAAK,UAAU,YAAY,YAAY;AAC9C,kBAAc;EAChB;AACA,QAAM,UACJ,QAAQ,QAAQ,UAAU,SAAS,cAAc,OAAO,QAAQ;AAClE,SAAO;IACL;IACA;IACA;IACA;IACA,YAAY;IACZ,gBAAgB;IAChB,YAAY,aAAa;IACzB,GAAI,SAAS,SAAY,CAAA,IAAK,EAAC,KAAI;;AAEvC;AAEA,SAAS,UACP,MACA,YACA,cACA,OAAqB;AAErB,kBAAgB,MAAM,YAAY,CAAC;AACnC,QAAM,QAAQ,KAAK,UAAU,YAAY,YAAY;AACrD,QAAM,gBAAgB;AACtB,MAAI,MAAM,eAAe,MAAM,iBAAiB;AAC9C,UAAM,IAAI,MAAM,2CAA2C;EAC7D;AACA,SAAO;AACT;AAEA,SAAS,aAAa,QAAuB,MAA6B,OAAa;AACrF,MAAI,CAAC,OAAO,SAAS,KAAK;AAAG;AAC7B,QAAM,UAAU,GAAG,IAAI;AACvB,QAAM,UAAU,GAAG,IAAI;AACvB,SAAO,OAAO,IAAI,OAAO,OAAO,MAAM,SAAY,QAAQ,KAAK,IAAI,OAAO,OAAO,GAAI,KAAK;AAC1F,SAAO,OAAO,IAAI,OAAO,OAAO,MAAM,SAAY,QAAQ,KAAK,IAAI,OAAO,OAAO,GAAI,KAAK;AAC5F;AAEA,SAAS,WAAW,QAAqB;AACvC,MACE,OAAO,SAAS,UAChB,OAAO,SAAS,UAChB,OAAO,SAAS,UAChB,OAAO,SAAS,QAChB;AACA,WAAO;EACT;AACA,SAAO;AACT;AAEA,SAAS,YAAY,OAAwC;AAC3D,SAAO,YAAY,OAAO,KAAK,IAC3B,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU,IAC7D,IAAI,SAAS,KAAK;AACxB;AAEA,SAAS,gBAAgB,MAAgB,YAAoB,YAAkB;AAC7E,MAAI,aAAa,KAAK,aAAa,aAAa,KAAK,YAAY;AAC/D,UAAM,IAAI,MAAM,uBAAuB;EACzC;AACF;AAEA,SAAS,cAAc,OAA2B,UAAkB,MAAY;AAC9E,QAAM,QAAQ,SAAS;AACvB,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,UAAM,IAAI,MAAM,GAAG,IAAI,sCAAsC;EAC/D;AACA,SAAO;AACT;;;ACxWM,SAAU,SAAS,OAAmB,UAA2B,CAAA,GAAE;AACvE,QAAM,QAAsB;IAC1B,cAAcA,eAAc,QAAQ,cAAc,IAAI,cAAc;IACpE,iBAAiBA,eAAc,QAAQ,iBAAiB,KAAa,iBAAiB;IACtF,cAAc;;AAEhB,QAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AAC1E,QAAM,SAAS,gBAAgB,MAAM,GAAG,OAAO,CAAC;AAChD,MAAI,OAAO,WAAW,MAAM;AAAY,UAAM,IAAI,MAAM,6BAA6B;AACrF,SAAO;IACL,UAAU,OAAO;IACjB,YAAY,OAAO;IACnB,WAAW,OAAO;IAClB,GAAI,OAAO,SAAS,SAAY,CAAA,IAAK,EAAC,MAAM,OAAO,KAAI;;AAE3D;AAGM,SAAU,SACd,UACA,YAAgC,gCAAgC,QAAQ,GAAC;AAEzE,QAAM,QAAkB,CAAA;AACxB,mBAAiB,OAAO,UAAU,SAAS;AAC3C,SAAO,WAAW,KAAK,KAAK;AAC9B;AAEA,SAAS,gBACP,MACA,aACA,OACA,OAAa;AAEb,MAAI,QAAQ,MAAM;AAAc,UAAM,IAAI,MAAM,2CAA2C;AAC3F,QAAM,SAAS,iBAAiB,MAAM,WAAW;AACjD,MAAI,SAAS,OAAO;AACpB,QAAM,EAAC,WAAW,cAAc,cAAc,KAAI,IAAI;AACtD,QAAM,aAAa,0BAA0B,SAAS;AACtD,QAAM,iBAAiB,MAAe;AACpC,IAAAC,iBAAgB,MAAM,QAAQ,aAAa,CAAC;AAC5C,UAAM,aAAa,IAAI,MAAc,UAAU;AAC/C,aAAS,QAAQ,GAAG,QAAQ,YAAY,SAAS;AAC/C,iBAAW,KAAK,IAAI,KAAK,WAAW,QAAQ,YAAY;AACxD,gBAAU;IACZ;AACA,WAAO;EACT;AACA,QAAMC,aAAY,MAAa;AAC7B,IAAAD,iBAAgB,MAAM,QAAQ,CAAC;AAC/B,UAAM,QAAQ,KAAK,UAAU,QAAQ,YAAY;AACjD,cAAU;AACV,UAAM,gBAAgB;AACtB,QAAI,MAAM,eAAe,MAAM,iBAAiB;AAC9C,YAAM,IAAI,MAAM,2CAA2C;IAC7D;AACA,WAAO;EACT;AACA,QAAM,kBAAkB,MAAiB;AACvC,UAAM,QAAQC,WAAS;AACvB,WAAO,MAAM,KAAK,EAAC,QAAQ,MAAK,GAAG,cAAc;EACnD;AAEA,MAAI;AACJ,UAAQ,cAAc;IACpB,KAAK;AACH,iBAAW,EAAC,MAAM,SAAS,aAAa,eAAc,EAAE;AACxD;IACF,KAAK;AACH,iBAAW,EAAC,MAAM,cAAc,aAAa,gBAAe,EAAE;AAC9D;IACF,KAAK;AACH,iBAAW,EAAC,MAAM,WAAW,aAAa,MAAM,KAAK,EAAC,QAAQA,WAAS,EAAE,GAAG,eAAe,EAAC;AAC5F;IACF,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK,sBAAsB;AACzB,YAAM,WAAgC,CAAA;AACtC,eAAS,QAAQ,GAAG,QAAQA,WAAS,GAAI,QAAQ,OAAO,SAAS;AAC/D,cAAM,QAAQ,gBAAgB,MAAM,QAAQ,OAAO,QAAQ,CAAC;AAC5D,iBAAS,KAAK,MAAM,QAAQ;AAC5B,iBAAS,MAAM;MACjB;AACA,UAAI,iBAAiB,cAAc;AACjC,mBAAW;UACT,MAAM;UACN,aAAa,SAAS,IAAI,WAAW,EAAE,IAAI,WAAS,MAAM,WAAW;;MAEzE,WAAW,iBAAiB,mBAAmB;AAC7C,mBAAW;UACT,MAAM;UACN,aAAa,SAAS,IAAI,gBAAgB,EAAE,IAAI,UAAQ,KAAK,WAAW;;MAE5E,WAAW,iBAAiB,gBAAgB;AAC1C,mBAAW;UACT,MAAM;UACN,aAAa,SAAS,IAAI,aAAa,EAAE,IAAI,aAAW,QAAQ,WAAW;;MAE/E,OAAO;AACL,mBAAW,EAAC,MAAM,sBAAsB,YAAY,SAAQ;MAC9D;AACA;IACF;EACF;AACA,SAAO,EAAC,UAAU,QAAQ,WAAW,GAAI,SAAS,SAAY,CAAA,IAAK,EAAC,KAAI,EAAE;AAC5E;AAEA,SAAS,iBACP,OACA,UACA,WAA6B;AAE7B,QAAM,KAAK,CAAC;AACZ,QAAM,OAAO,0BAA0B,SAAS;AAChD,QAAM,kBACJ,cAAc,QAAQ,MAAO,cAAc,QAAQ,MAAO,cAAc,SAAS,MAAO;AAC1F,cAAY,OAAO,WAAW,SAAS,IAAI,IAAI,eAAe;AAC9D,QAAM,kBAAkB,CAAC,eAAuC;AAC9D,aAAS,QAAQ,GAAG,QAAQ,MAAM;AAAS,mBAAa,OAAO,WAAW,KAAK,KAAK,CAAC;EACvF;AACA,QAAM,mBAAmB,CAAC,gBAAqD;AAC7E,gBAAY,OAAO,YAAY,MAAM;AACrC,eAAW,cAAc;AAAa,sBAAgB,UAAU;EAClE;AACA,UAAQ,SAAS,MAAM;IACrB,KAAK;AACH,sBAAgB,SAAS,WAAW;AACpC;IACF,KAAK;AACH,uBAAiB,SAAS,WAAW;AACrC;IACF,KAAK;AACH,kBAAY,OAAO,SAAS,YAAY,MAAM;AAC9C,iBAAW,QAAQ,SAAS;AAAa,yBAAiB,IAAI;AAC9D;IACF,KAAK;AACH,kBAAY,OAAO,SAAS,YAAY,MAAM;AAC9C,iBAAW,cAAc,SAAS,aAAa;AAC7C,yBAAiB,OAAO,EAAC,MAAM,SAAS,aAAa,WAAU,GAAG,SAAS;MAC7E;AACA;IACF,KAAK;AACH,kBAAY,OAAO,SAAS,YAAY,MAAM;AAC9C,iBAAW,eAAe,SAAS,aAAa;AAC9C,yBAAiB,OAAO,EAAC,MAAM,cAAc,YAAW,GAAG,SAAS;MACtE;AACA;IACF,KAAK;AACH,kBAAY,OAAO,SAAS,YAAY,MAAM;AAC9C,iBAAW,eAAe,SAAS,aAAa;AAC9C,yBAAiB,OAAO,EAAC,MAAM,WAAW,YAAW,GAAG,SAAS;MACnE;AACA;IACF,KAAK;AACH,kBAAY,OAAO,SAAS,WAAW,MAAM;AAC7C,iBAAW,SAAS,SAAS;AAAY,yBAAiB,OAAO,OAAO,SAAS;AACjF;EACJ;AACF;AAEA,SAAS,WAAW,MAA+B;AACjD,SACE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,IAAI;AAEtB;AAEA,SAAS,YAAY,OAAiB,OAAa;AACjD,QAAM,KAAK,QAAQ,KAAM,UAAU,IAAK,KAAM,UAAU,KAAM,KAAM,UAAU,KAAM,GAAG;AACzF;AAEA,SAAS,aAAa,OAAiB,OAAa;AAClD,QAAM,SAAS,IAAI,YAAY,CAAC;AAChC,MAAI,SAAS,MAAM,EAAE,WAAW,GAAG,OAAO,IAAI;AAC9C,QAAM,KAAK,GAAG,IAAI,WAAW,MAAM,CAAC;AACtC;AAEA,SAASD,iBAAgB,MAAgB,QAAgB,QAAc;AACrE,MAAI,SAAS,SAAS,KAAK;AAAY,UAAM,IAAI,MAAM,uBAAuB;AAChF;AAEA,SAAS,YAAY,OAAwB;AAC3C,MAAI,MAAM,SAAS;AAAS,UAAM,IAAI,MAAM,2CAA2C;AACvF,SAAO;AACT;AAEA,SAAS,iBACP,OAAwB;AAExB,MAAI,MAAM,SAAS,cAAc;AAC/B,UAAM,IAAI,MAAM,qDAAqD;EACvE;AACA,SAAO;AACT;AAEA,SAAS,cAAc,OAAwB;AAC7C,MAAI,MAAM,SAAS;AAAW,UAAM,IAAI,MAAM,+CAA+C;AAC7F,SAAO;AACT;AAEA,SAASD,eAAc,OAA2B,UAAkB,MAAY;AAC9E,QAAM,QAAQ,SAAS;AACvB,MAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,UAAM,IAAI,MAAM,GAAG,IAAI,sCAAsC;EAC/D;AACA,SAAO;AACT;;;ACzMA,IAAM,sBAAiE;EACrE,OAAO;EACP,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,iBAAiB;EACjB,cAAc;EACd,oBAAoB;;AAShB,IAAO,aAAP,MAAO,YAAU;EAYrB,YAAY,SAA0B;AACpC,SAAK,OAAO,QAAQ;AACpB,SAAK,YAAY,QAAQ,aAAa;AACtC,SAAK,eAAe,QAAQ,cAAc;AAC1C,SAAK,OAAO,QAAQ;AACpB,SAAK,YAAY,QAAQ;AACzB,iBAAa,KAAK,IAAI;AAEtB,QAAI,QAAQ,SAAS,SAAS;AAC5B,YAAM,WAAW,kBAAkB,QAAQ,MAAM;AACjD,YAAM,aAAa,QAAQ,cAAc;AACzC,UAAI,CAAC,OAAO,cAAc,UAAU,KAAK,aAAa,KAAK,aAAa,SAAS,YAAY;AAC3F,cAAM,IAAI,MAAM,6CAA6C;MAC/D;AACA,WAAK,WAAW;AAChB,WAAK,kBAAkB;AACvB,WAAK,gBAAgB,SAAS;AAC9B,WAAK,aAAa;IACpB,OAAO;AACL,WAAK,WAAW;AAChB,WAAK,kBAAkB;AACvB,WAAK,gBAAgB,OAAO;AAC5B,WAAK,aAAa;IACpB;EACF;;EAGA,cAAc,MAAuB,OAAc;AACjD,YAAQ,MAAM;MACZ,KAAK;AACH,aAAK,WAAU;AACf;MACF,KAAK;AACH,aAAK,gBAAgB,SAAS,CAAC;AAC/B;MACF,KAAK;AACH,aAAK,aAAa,SAAS,CAAC;AAC5B;MACF,KAAK;AACH,aAAK,gBAAgB,SAAS,CAAC;AAC/B;MACF,KAAK;AACH,aAAK,qBAAqB,SAAS,CAAC;AACpC;MACF,KAAK;AACH,aAAK,kBAAkB,SAAS,CAAC;AACjC;MACF,KAAK;AACH,aAAK,YAAY,oBAAoB;AACrC,aAAK,YAAY,SAAS,CAAC;AAC3B;IACJ;EACF;;EAGA,aAAU;AACR,SAAK,YAAY,OAAO;EAC1B;;EAGA,gBAAgB,YAAkB;AAChC,SAAK,YAAY,YAAY;AAC7B,SAAK,YAAY,UAAU;EAC7B;;EAGA,aAAa,WAAiB;AAC5B,SAAK,YAAY,SAAS;AAC1B,SAAK,YAAY,SAAS;EAC5B;;EAGA,gBAAgB,YAAkB;AAChC,SAAK,YAAY,UAAU;EAC7B;;EAGA,gBAAgB,YAAkB;AAChC,SAAK,YAAY,YAAY;AAC7B,SAAK,YAAY,UAAU;EAC7B;;EAGA,qBAAqB,WAAiB;AACpC,SAAK,YAAY,iBAAiB;AAClC,SAAK,YAAY,SAAS;EAC5B;;EAGA,kBAAkB,cAAoB;AACpC,SAAK,YAAY,cAAc;AAC/B,SAAK,YAAY,YAAY;EAC/B;;EAGA,gBAAgB,GAAW,GAAW,GAAY,GAAU;AAC1D,QAAI,aAAa,eAAe,KAAK,WAAW,GAAG,GAAG,GAAG,CAAC;AAC1D,QAAI,KAAK;AAAW,mBAAa,KAAK,UAAU,YAAY,KAAK,SAAS;AAC1E,UAAM,iBAAiB,iBAAiB,KAAK,SAAS;AACtD,aAAS,QAAQ,GAAG,QAAQ,gBAAgB,SAAS;AACnD,WAAK,aAAa,WAAW,KAAK,KAAK,OAAO,GAAG;IACnD;EACF;;EAGA,iBAAc;AACZ,WAAO,KAAK,aAAa,KAAK;EAChC;;EAGA,OAAO,qBACL,iBACA,UAAiC,CAAA,GAAE;AAEnC,UAAM,eAAe,IAAI,WAAW,gBAAgB,SAAS,CAAC;AAC9D,aAAS,gBAAgB,GAAG,gBAAgB,gBAAgB,QAAQ,iBAAiB;AACnF,YAAM,iBAAiB,gBAAgB,aAAa;AACpD,YAAM,aAAa,iBAAiB,gBAAgB,gBAAgB,OAAO,IAAI;AAC/E,YAAM,aAAa,aAAa,aAAa,IAAI;AACjD,UAAI,aAAa;AAAY,cAAM,IAAI,MAAM,0CAA0C;AACvF,mBAAa,gBAAgB,CAAC,IAAI;IACpC;AACA,WAAO;EACT;;EAGA,OAAO,mBACL,iBACA,cACA,QACA,UAAiC,CAAA,GAAE;AAEnC,QAAI,aAAa,WAAW,gBAAgB,SAAS,GAAG;AACtD,YAAM,IAAI,MAAM,4DAA4D;IAC9E;AACA,QAAI,aAAa,aAAa,SAAS,CAAC,IAAI,OAAO,YAAY;AAC7D,YAAM,IAAI,MAAM,oDAAoD;IACtE;AACA,aAAS,gBAAgB,GAAG,gBAAgB,gBAAgB,QAAQ,iBAAiB;AACnF,YAAM,iBAAiB,gBAAgB,aAAa;AACpD,UAAI,CAAC;AAAgB;AACrB,YAAM,UAAU,IAAI,YAAW;QAC7B,MAAM;QACN,QAAQ;QACR,YAAY,aAAa,aAAa;QACtC,GAAG;OACJ;AACD,qBAAe,OAAO;AACtB,YAAM,aAAa,QAAQ,eAAc;AACzC,UAAI,aAAa,aAAa,IAAI,eAAe,aAAa,gBAAgB,CAAC,GAAG;AAChF,cAAM,IAAI,MAAM,8DAA8D;MAChF;IACF;AACA,WAAO;EACT;;EAGA,OAAO,mBACL,iBACA,UAAiC,CAAA,GAAE;AAEnC,UAAM,eAAe,YAAW,qBAAqB,iBAAiB,OAAO;AAC7E,UAAM,SAAS,IAAI,WAAW,aAAa,aAAa,SAAS,CAAC,CAAC;AACnE,gBAAW,mBAAmB,iBAAiB,cAAc,QAAQ,OAAO;AAC5E,UAAM,EAAC,YAAY,UAAS,IAAI,eAAe,eAAe;AAC9D,WAAO;MACL;MACA;MACA,GAAI,YAAY,IAAI,EAAC,WAAU,IAAI,CAAA;MACnC;;EAEJ;EAEQ,YAAY,cAA6B;AAC/C,SAAK,WAAW,KAAK,eAAe,IAAI,CAAC;AACzC,SAAK,YAAY,eAAe,cAAc,KAAK,WAAW,KAAK,SAAS,MAAS,CAAC;AACtF,QAAI,KAAK,SAAS;AAAW,WAAK,YAAY,KAAK,IAAI;EACzD;EAEQ,WAAW,OAAa;AAlQlC;AAmQI,SAAK,WAAW,CAAC;AACjB,eAAK,aAAL,mBAAe,SAAS,KAAK,YAAY;AACzC,SAAK;EACP;EAEQ,YAAY,OAAa;AAxQnC;AAyQI,QAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,KAAK,QAAQ,YAAY;AACnE,YAAM,IAAI,MAAM,8CAA8C;IAChE;AACA,SAAK,WAAW,CAAC;AACjB,eAAK,aAAL,mBAAe,UAAU,KAAK,YAAY,OAAO,KAAK;AACtD,SAAK,cAAc;EACrB;EAEQ,aAAa,OAAa;AAjRpC;AAkRI,SAAK,WAAW,CAAC;AACjB,eAAK,aAAL,mBAAe,WAAW,KAAK,YAAY,OAAO,KAAK;AACvD,SAAK,cAAc;EACrB;EAEQ,WAAW,YAAkB;AACnC,QAAI,KAAK,aAAa,aAAa,KAAK,eAAe;AACrD,YAAM,IAAI,MAAM,mCAAmC;IACrD;EACF;;AAGF,SAAS,gBACP,gBACA,SAA8B;AAE9B,QAAM,UAAU,IAAI,WAAW,EAAC,MAAM,WAAW,GAAG,QAAO,CAAC;AAC5D,iBAAe,OAAO;AACtB,SAAO,QAAQ,eAAc;AAC/B;AAEA,SAAS,kBAAkB,QAAyC;AAClE,SAAO,YAAY,OAAO,MAAM,IAC5B,IAAI,SAAS,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU,IAChE,IAAI,SAAS,MAAM;AACzB;AAEA,SAAS,eACP,cACA,WACA,SAAgB;AAEhB,QAAM,eAAe,oBAAoB,YAAY;AACrD,MAAI,SAAS;AACX,UAAM,iBACJ,cAAc,QACV,aACA,cAAc,QACZ,aACA,cAAc,SACZ,aACA;AACV,YAAQ,eAAe,iBAAiB,eAAgB;EAC1D;AACA,QAAM,kBACJ,cAAc,QAAQ,MAAO,cAAc,QAAQ,MAAO,cAAc,SAAS,MAAO;AAC1F,SAAO,eAAe;AACxB;AAEA,SAAS,eACP,WACA,GACA,GACA,GACA,GAAU;AAEV,UAAQ,WAAW;IACjB,KAAK;AACH,aAAO,CAAC,GAAG,CAAC;IACd,KAAK;AACH,aAAO,CAAC,GAAG,GAAG,KAAK,OAAO,GAAG;IAC/B,KAAK;AACH,aAAO,CAAC,GAAG,GAAG,KAAK,OAAO,GAAG;IAC/B,KAAK;AACH,aAAO,CAAC,GAAG,GAAG,KAAK,OAAO,KAAK,KAAK,OAAO,GAAG;EAClD;AACF;AAEA,SAAS,iBAAiB,WAA6B;AACrD,SAAO,cAAc,OAAO,IAAI,cAAc,SAAS,IAAI;AAC7D;AAEA,SAAS,aAAa,MAAwB;AAC5C,MAAI,SAAS,WAAc,CAAC,OAAO,cAAc,IAAI,KAAK,OAAO,KAAK,OAAO,aAAa;AACxF,UAAM,IAAI,MAAM,oDAAoD;EACtE;AACF;AAEA,SAAS,eAAe,iBAAkE;AAIxF,QAAM,aAAa,IAAI,WAAW,KAAK,KAAK,gBAAgB,SAAS,CAAC,CAAC;AACvE,MAAI,YAAY;AAChB,WAAS,gBAAgB,GAAG,gBAAgB,gBAAgB,QAAQ,iBAAiB;AACnF,QAAI,gBAAgB,aAAa,GAAG;AAClC,iBAAW,iBAAiB,CAAC,KAAK,MAAM,gBAAgB;IAC1D,OAAO;AACL;IACF;EACF;AACA,SAAO,EAAC,YAAY,UAAS;AAC/B;;;ACtWM,SAAU,SAAS,MAAY;AACnC,QAAM,SAAS,IAAI,UAAU,IAAI;AACjC,QAAM,WAAW,OAAO,cAAc,CAAC;AACvC,SAAO,eAAc;AACrB,SAAO;AACT;AAGM,SAAU,UACd,UACA,YAAgC,gCAAgC,QAAQ,GAAC;AAEzE,QAAM,iBAAiB,cAAc,OAAO,KAAK,IAAI,UAAU,MAAM,CAAC,EAAE,YAAW,CAAE;AACrF,MAAI,SAAS,SAAS,sBAAsB;AAC1C,QAAI,SAAS,WAAW,WAAW;AAAG,aAAO,qBAAqB,cAAc;AAChF,WAAO,qBAAqB,cAAc,KAAK,SAAS,WAAW,IAAI,WAAS,UAAU,OAAO,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC;EACzH;AACA,QAAM,OAAO,SAAS,KAAK,YAAW;AACtC,MAAI,mBAAmB,SAAS,WAAW;AAAG,WAAO,GAAG,IAAI,GAAG,cAAc;AAC7E,SAAO,GAAG,IAAI,GAAG,cAAc,IAAI,wBAAwB,SAAS,aAAa,iBAAiB,SAAS,IAAI,CAAC,CAAC;AACnH;AAEA,IAAM,YAAN,MAAe;EAIb,YAAY,MAAY;AAFhB,SAAA,QAAQ;AAGd,SAAK,SAAS,YAAY,IAAI;EAChC;EAEA,cAAc,wBAA8B;AAC1C,UAAM,OAAO,KAAK,SAAQ,EAAG,YAAW;AACxC,QAAI,gBAAgB;AACpB,QAAI,CAAC,KAAK,KAAK,IAAI,EAAE,SAAS,KAAK,KAAI,EAAG,YAAW,CAAE,GAAG;AACxD,YAAM,YAAY,KAAK,KAAI,EAAG,YAAW;AACzC,sBAAgB,cAAc,OAAO,IAAI;IAC3C;AACA,QAAI,KAAK,KAAI,EAAG,YAAW,MAAO,SAAS;AACzC,WAAK,KAAI;AACT,aAAO,kBAAkB,MAAM,aAAa;IAC9C;AACA,QAAI,SAAS,sBAAsB;AACjC,WAAK,OAAO,GAAG;AACf,YAAM,aAAkC,CAAA;AACxC,UAAI,KAAK,KAAI,MAAO,KAAK;AACvB;AAAG,qBAAW,KAAK,KAAK,cAAc,aAAa,CAAC;eAC7C,KAAK,OAAO,GAAG;MACxB;AACA,WAAK,OAAO,GAAG;AACf,aAAO,EAAC,MAAM,sBAAsB,WAAU;IAChD;AACA,UAAM,cAAc,KAAK,uBAAuB,YAAY,IAAI,GAAG,aAAa;AAChF,WAAO,aAAa,MAAM,WAAW;EACvC;EAEA,iBAAc;AACZ,QAAI,KAAK,UAAU,KAAK,OAAO;AAAQ,YAAM,IAAI,MAAM,wBAAwB,KAAK,KAAI,CAAE,EAAE;EAC9F;EAEQ,uBAAuB,OAAe,eAAqB;AACjE,SAAK,OAAO,GAAG;AACf,QAAI,UAAU,GAAG;AACf,YAAM,aAAa,KAAK,eAAe,aAAa;AACpD,WAAK,OAAO,GAAG;AACf,aAAO;IACT;AACA,UAAM,SAAoB,CAAA;AAC1B,QAAI,KAAK,KAAI,MAAO,KAAK;AACvB,SAAG;AACD,YAAI,UAAU,KAAK,KAAK,KAAI,MAAO,KAAK;AACtC,iBAAO,KAAK,KAAK,eAAe,aAAa,CAAC;QAChD,OAAO;AACL,iBAAO,KAAK,KAAK,uBAAuB,QAAQ,GAAG,aAAa,CAAC;QACnE;MACF,SAAS,KAAK,OAAO,GAAG;IAC1B;AACA,SAAK,OAAO,GAAG;AACf,WAAO;EACT;EAEQ,eAAe,eAAqB;AAC1C,UAAM,SAAmB,CAAA;AACzB,WAAO,OAAO,SAAS,iBAAiB,cAAc,KAAK,KAAI,CAAE,GAAG;AAClE,aAAO,KAAK,OAAO,KAAK,KAAI,CAAE,CAAC;IACjC;AACA,QAAI,OAAO,SAAS;AAAG,YAAM,IAAI,MAAM,8CAA8C;AACrF,WAAO;EACT;EAEQ,OAAI;AACV,WAAO,KAAK,OAAO,KAAK,KAAK,KAAK;EACpC;EAEQ,OAAI;AACV,QAAI,KAAK,SAAS,KAAK,OAAO;AAAQ,YAAM,IAAI,MAAM,uBAAuB;AAC7E,WAAO,KAAK,OAAO,KAAK,OAAO;EACjC;EAEQ,WAAQ;AACd,UAAM,QAAQ,KAAK,KAAI;AACvB,QAAI,CAAC,eAAe,KAAK,KAAK;AAAG,YAAM,IAAI,MAAM,qCAAqC,KAAK,EAAE;AAC7F,WAAO;EACT;EAEQ,OAAO,OAAa;AAC1B,QAAI,KAAK,KAAI,MAAO;AAAO,aAAO;AAClC,SAAK;AACL,WAAO;EACT;EAEQ,OAAO,OAAa;AAC1B,UAAM,SAAS,KAAK,KAAI;AACxB,QAAI,WAAW;AAAO,YAAM,IAAI,MAAM,sBAAsB,KAAK,WAAW,MAAM,EAAE;EACtF;;AAGF,SAAS,YAAY,MAAY;AAC/B,QAAM,SAAmB,CAAA;AACzB,QAAM,eAAe;AACrB,MAAI,QAAQ;AACZ,SAAO,QAAQ,KAAK,QAAQ;AAC1B,WAAO,QAAQ,KAAK,UAAU,KAAK,KAAK,KAAK,KAAK,CAAC;AAAG;AACtD,QAAI,UAAU,KAAK;AAAQ;AAC3B,iBAAa,YAAY;AACzB,UAAM,QAAQ,aAAa,KAAK,IAAI;AACpC,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,4BAA4B,KAAK,UAAU,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,EAAE;IACvF;AACA,WAAO,KAAK,MAAM,CAAC,CAAC;AACpB,YAAQ,aAAa;EACvB;AACA,SAAO;AACT;AAEA,SAAS,wBAAwB,OAA2B,OAAa;AACvE,MAAI,UAAU;AAAG,WAAO,IAAK,MAA4B,IAAI,YAAY,EAAE,KAAK,GAAG,CAAC;AACpF,SAAO,IAAI,MACR,IAAI,WAAQ;AACX,QAAI,UAAU;AAAG,aAAQ,MAA4B,IAAI,YAAY,EAAE,KAAK,GAAG;AAC/E,WAAO,wBAAwB,OAA6B,QAAQ,CAAC;EACvE,CAAC,EACA,KAAK,IAAI,CAAC;AACf;AAEA,SAAS,aAAa,OAAa;AACjC,MAAI,CAAC,OAAO,SAAS,KAAK;AAAG,WAAO;AACpC,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,iBAAiB,MAA8D;AACtF,UAAQ,MAAM;IACZ,KAAK;AACH,aAAO;IACT,KAAK;IACL,KAAK;AACH,aAAO;IACT,KAAK;IACL,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;EACX;AACF;AAEA,SAAS,YAAY,MAAY;AAC/B,UAAQ,MAAM;IACZ,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT;AACE,YAAM,IAAI,MAAM,iCAAiC,IAAI,EAAE;EAC3D;AACF;AAEA,SAAS,aAAa,MAAc,aAAoB;AACtD,QAAM,YAAY,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,YAAW;AACrD,QAAM,QAAmD;IACvD,OAAO;IACP,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,iBAAiB;IACjB,cAAc;;AAEhB,QAAM,eAAe,MAAM,SAAS;AACpC,MAAI,CAAC;AAAc,UAAM,IAAI,MAAM,iCAAiC,IAAI,EAAE;AAC1E,SAAO,EAAC,MAAM,cAAc,YAAW;AACzC;AAEA,SAAS,kBAAkB,MAAc,eAAqB;AAC5D,MAAI,SAAS;AAAsB,WAAO,EAAC,MAAM,sBAAsB,YAAY,CAAA,EAAE;AACrF,MAAI,SAAS,SAAS;AACpB,WAAO;MACL,MAAM;MACN,aAAa,IAAI,MAAM,sBAAsB,aAAa,CAAC,EAAE,KAAK,OAAO,GAAG;;EAEhF;AACA,SAAO,aAAa,MAAM,CAAA,CAAE;AAC9B;AAEA,SAAS,sBAAsB,MAAY;AACzC,MAAI,SAAS,KAAK,SAAS,KAAK,SAAS;AAAG,WAAO;AACnD,SAAO,0BAA0B,IAAI;AACvC;AAEA,SAAS,mBAAmB,OAAyB;AACnD,MAAI,MAAM,WAAW;AAAG,WAAO;AAC/B,MAAI,OAAO,MAAM,CAAC,MAAM,UAAU;AAChC,WAAQ,MAA4B,MAAM,eAAa,CAAC,OAAO,SAAS,SAAS,CAAC;EACpF;AACA,SAAO,MAAM,MAAM,WAAS,mBAAmB,KAA2B,CAAC;AAC7E;AAEA,SAAS,cAAc,OAAa;AAClC,SAAO,UAAU,MAAM,OAAO,SAAS,OAAO,KAAK,CAAC;AACtD;",
5
+ "names": ["validateLimit", "assertRemaining", "readCount"]
6
+ }
@@ -0,0 +1,10 @@
1
+ export type { WellKnownDimension, WellKnownGeometry } from "./types.js";
2
+ export { getWellKnownDimensionSize, inferWellKnownGeometryDimension } from "./types.js";
3
+ export type { WKBParseOptions, WKBParseResult } from "./wkb.js";
4
+ export { parseWKB, writeWKB } from "./wkb.js";
5
+ export type { WKBBounds, WKBDialect, WKBGeometryCounts, WKBGeometryType, WKBHeader, WKBScanResult, WKBTraversalOptions, WKBVisitor } from "./wkb-reader.js";
6
+ export { inspectWKBHeader, scanWKB, visitWKB } from "./wkb-reader.js";
7
+ export type { WKBBuilderBaseOptions, WKBBuilderMeasureOptions, WKBBuilderOptions, WKBBuilderWriteOptions, WKBCoordinateTransform, WKBGeometryArray, WKBGeometryWriter } from "./wkb-builder.js";
8
+ export { WKBBuilder } from "./wkb-builder.js";
9
+ export { formatWKT, parseWKT } from "./wkt.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,mBAAgB;AACnE,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,mBAAgB;AAEjB,YAAY,EAAC,eAAe,EAAE,cAAc,EAAC,iBAAc;AAC3D,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,iBAAc;AAEzC,YAAY,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,UAAU,EACX,wBAAqB;AACtB,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAC,wBAAqB;AAEjE,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EAClB,yBAAsB;AACvB,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAEzC,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,iBAAc"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { getWellKnownDimensionSize, inferWellKnownGeometryDimension } from "./types.js";
5
+ export { parseWKB, writeWKB } from "./wkb.js";
6
+ export { inspectWKBHeader, scanWKB, visitWKB } from "./wkb-reader.js";
7
+ export { WKBBuilder } from "./wkb-builder.js";
8
+ export { formatWKT, parseWKT } from "./wkt.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAChC,mBAAgB;AAGjB,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,iBAAc;AAYzC,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAC,wBAAqB;AAWjE,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAEzC,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,iBAAc"}
@@ -0,0 +1,30 @@
1
+ /** Semantic coordinate dimensions used by WKB and WKT. M is distinct from Z. */
2
+ export type WellKnownDimension = 'xy' | 'xyz' | 'xym' | 'xyzm';
3
+ /** Immutable, format-neutral geometry value shared by the WKB and WKT codecs. */
4
+ export type WellKnownGeometry = Readonly<{
5
+ type: 'Point';
6
+ coordinates: readonly number[];
7
+ }> | Readonly<{
8
+ type: 'LineString';
9
+ coordinates: readonly (readonly number[])[];
10
+ }> | Readonly<{
11
+ type: 'Polygon';
12
+ coordinates: readonly (readonly (readonly number[])[])[];
13
+ }> | Readonly<{
14
+ type: 'MultiPoint';
15
+ coordinates: readonly (readonly number[])[];
16
+ }> | Readonly<{
17
+ type: 'MultiLineString';
18
+ coordinates: readonly (readonly (readonly number[])[])[];
19
+ }> | Readonly<{
20
+ type: 'MultiPolygon';
21
+ coordinates: readonly (readonly (readonly (readonly number[])[])[])[];
22
+ }> | Readonly<{
23
+ type: 'GeometryCollection';
24
+ geometries: readonly WellKnownGeometry[];
25
+ }>;
26
+ /** Returns the number of coordinate components in a semantic dimension. */
27
+ export declare function getWellKnownDimensionSize(dimension: WellKnownDimension): 2 | 3 | 4;
28
+ /** Infers tuple width from the deepest non-empty geometry coordinate. Three values mean XYZ. */
29
+ export declare function inferWellKnownGeometryDimension(geometry: WellKnownGeometry): WellKnownDimension;
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAE/D,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GACzB,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CAAC,CAAC,GACzD,QAAQ,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;CAAC,CAAC,GAC3E,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;CAAC,CAAC,GACrF,QAAQ,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;CAAC,CAAC,GAC3E,QAAQ,CAAC;IACP,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CAC1D,CAAC,GACF,QAAQ,CAAC;IACP,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACvE,CAAC,GACF,QAAQ,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAC,CAAC,CAAC;AAErF,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAUlF;AAED,gGAAgG;AAChG,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB,CAG/F"}
package/dist/types.js ADDED
@@ -0,0 +1,34 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Returns the number of coordinate components in a semantic dimension. */
5
+ export function getWellKnownDimensionSize(dimension) {
6
+ switch (dimension) {
7
+ case 'xy':
8
+ return 2;
9
+ case 'xyz':
10
+ case 'xym':
11
+ return 3;
12
+ case 'xyzm':
13
+ return 4;
14
+ }
15
+ }
16
+ /** Infers tuple width from the deepest non-empty geometry coordinate. Three values mean XYZ. */
17
+ export function inferWellKnownGeometryDimension(geometry) {
18
+ const size = getGeometryDimensionSize(geometry);
19
+ return size >= 4 ? 'xyzm' : size === 3 ? 'xyz' : 'xy';
20
+ }
21
+ function getGeometryDimensionSize(geometry) {
22
+ if (geometry.type === 'GeometryCollection') {
23
+ return Math.max(2, ...geometry.geometries.map(getGeometryDimensionSize));
24
+ }
25
+ return getCoordinateDimension(geometry.coordinates);
26
+ }
27
+ function getCoordinateDimension(value) {
28
+ if (value.length === 0)
29
+ return 2;
30
+ if (typeof value[0] === 'number')
31
+ return value.length;
32
+ return Math.max(2, ...value.map(child => getCoordinateDimension(child)));
33
+ }
34
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAqBpC,2EAA2E;AAC3E,MAAM,UAAU,yBAAyB,CAAC,SAA6B;IACrE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,CAAC,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO,CAAC,CAAC;QACX,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,+BAA+B,CAAC,QAA2B;IACzE,MAAM,IAAI,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA2B;IAC3D,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAA2B,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { WellKnownDimension } from "./types.js";
2
+ import type { WKBGeometryType } from "./wkb-reader.js";
3
+ /** Function that writes one WKB geometry into a builder. */
4
+ export type WKBGeometryWriter = (builder: WKBBuilder) => void;
5
+ /** Transforms one complete coordinate before it is written. */
6
+ export type WKBCoordinateTransform = (coordinate: readonly number[], dimension: WellKnownDimension) => readonly number[];
7
+ /** Options shared by WKB measuring and writing modes. */
8
+ export type WKBBuilderBaseOptions = Readonly<{
9
+ /** Coordinate dimension written by every geometry header. Defaults to `xy`. */
10
+ dimension?: WellKnownDimension;
11
+ /** Byte order written by every geometry header. Defaults to little endian. */
12
+ byteOrder?: 'little-endian' | 'big-endian';
13
+ /** Optional EWKB spatial reference identifier. */
14
+ srid?: number;
15
+ /** Optional coordinate transform applied during writing and measurement. */
16
+ transform?: WKBCoordinateTransform;
17
+ }>;
18
+ /** Options for a builder that only measures byte length. */
19
+ export type WKBBuilderMeasureOptions = WKBBuilderBaseOptions & Readonly<{
20
+ mode: 'measure';
21
+ }>;
22
+ /** Options for a builder that writes into caller-owned storage. */
23
+ export type WKBBuilderWriteOptions = WKBBuilderBaseOptions & Readonly<{
24
+ mode: 'write';
25
+ target: ArrayBufferLike | ArrayBufferView;
26
+ /** Starting byte offset within `target`. Defaults to zero. */
27
+ byteOffset?: number;
28
+ }>;
29
+ /** Constructor options for {@link WKBBuilder}. */
30
+ export type WKBBuilderOptions = WKBBuilderMeasureOptions | WKBBuilderWriteOptions;
31
+ /** Plain offset, value, and validity buffers suitable for Arrow Binary adapters. */
32
+ export type WKBGeometryArray = Readonly<{
33
+ valueOffsets: Int32Array;
34
+ values: Uint8Array;
35
+ nullBitmap?: Uint8Array;
36
+ nullCount: number;
37
+ }>;
38
+ /**
39
+ * Incremental WKB writer with matching measure and caller-buffer write modes.
40
+ *
41
+ * Callers run the same event sequence once in `measure` mode and once in `write`
42
+ * mode. No Arrow or GeoJSON objects are created by the builder.
43
+ */
44
+ export declare class WKBBuilder {
45
+ readonly mode: 'measure' | 'write';
46
+ readonly dimension: WellKnownDimension;
47
+ readonly littleEndian: boolean;
48
+ readonly srid?: number;
49
+ readonly transform?: WKBCoordinateTransform;
50
+ private readonly dataView;
51
+ private readonly startByteOffset;
52
+ private readonly endByteOffset;
53
+ private byteOffset;
54
+ constructor(options: WKBBuilderOptions);
55
+ /** Begins a geometry and writes its count field when required. */
56
+ beginGeometry(type: WKBGeometryType, count?: number): void;
57
+ /** Begins one point geometry. */
58
+ beginPoint(): void;
59
+ /** Begins one linestring geometry. */
60
+ beginLineString(pointCount: number): void;
61
+ /** Begins one polygon geometry. */
62
+ beginPolygon(ringCount: number): void;
63
+ /** Begins one linear ring inside a polygon. */
64
+ beginLinearRing(pointCount: number): void;
65
+ /** Begins one multipoint geometry. */
66
+ beginMultiPoint(pointCount: number): void;
67
+ /** Begins one multilinestring geometry. */
68
+ beginMultiLineString(lineCount: number): void;
69
+ /** Begins one multipolygon geometry. */
70
+ beginMultiPolygon(polygonCount: number): void;
71
+ /** Writes one coordinate using the builder's semantic dimension. */
72
+ writeCoordinate(x: number, y: number, z?: number, m?: number): void;
73
+ /** Returns the number of bytes measured or written. */
74
+ finishGeometry(): number;
75
+ /** Measures geometry callbacks and returns contiguous Binary offsets. */
76
+ static measureGeometryArray(geometryWriters: readonly (WKBGeometryWriter | null | undefined)[], options?: WKBBuilderBaseOptions): Int32Array;
77
+ /** Writes geometry callbacks into an existing contiguous values buffer. */
78
+ static writeGeometryArray(geometryWriters: readonly (WKBGeometryWriter | null | undefined)[], valueOffsets: Int32Array, values: Uint8Array, options?: WKBBuilderBaseOptions): Uint8Array;
79
+ /** Builds plain offsets, values, and validity buffers in two passes. */
80
+ static buildGeometryArray(geometryWriters: readonly (WKBGeometryWriter | null | undefined)[], options?: WKBBuilderBaseOptions): WKBGeometryArray;
81
+ private writeHeader;
82
+ private writeUint8;
83
+ private writeUint32;
84
+ private writeFloat64;
85
+ private ensureSize;
86
+ }
87
+ //# sourceMappingURL=wkb-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wkb-builder.d.ts","sourceRoot":"","sources":["../src/wkb-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const GEOMETRY_TYPE_CODES = {
5
+ Point: 1,
6
+ LineString: 2,
7
+ Polygon: 3,
8
+ MultiPoint: 4,
9
+ MultiLineString: 5,
10
+ MultiPolygon: 6,
11
+ GeometryCollection: 7
12
+ };
13
+ /**
14
+ * Incremental WKB writer with matching measure and caller-buffer write modes.
15
+ *
16
+ * Callers run the same event sequence once in `measure` mode and once in `write`
17
+ * mode. No Arrow or GeoJSON objects are created by the builder.
18
+ */
19
+ export class WKBBuilder {
20
+ constructor(options) {
21
+ this.mode = options.mode;
22
+ this.dimension = options.dimension ?? 'xy';
23
+ this.littleEndian = options.byteOrder !== 'big-endian';
24
+ this.srid = options.srid;
25
+ this.transform = options.transform;
26
+ validateSrid(this.srid);
27
+ if (options.mode === 'write') {
28
+ const dataView = getTargetDataView(options.target);
29
+ const byteOffset = options.byteOffset ?? 0;
30
+ if (!Number.isSafeInteger(byteOffset) || byteOffset < 0 || byteOffset > dataView.byteLength) {
31
+ throw new Error('WKBBuilder byteOffset is outside the target');
32
+ }
33
+ this.dataView = dataView;
34
+ this.startByteOffset = byteOffset;
35
+ this.endByteOffset = dataView.byteLength;
36
+ this.byteOffset = byteOffset;
37
+ }
38
+ else {
39
+ this.dataView = null;
40
+ this.startByteOffset = 0;
41
+ this.endByteOffset = Number.POSITIVE_INFINITY;
42
+ this.byteOffset = 0;
43
+ }
44
+ }
45
+ /** Begins a geometry and writes its count field when required. */
46
+ beginGeometry(type, count) {
47
+ switch (type) {
48
+ case 'Point':
49
+ this.beginPoint();
50
+ break;
51
+ case 'LineString':
52
+ this.beginLineString(count ?? 0);
53
+ break;
54
+ case 'Polygon':
55
+ this.beginPolygon(count ?? 0);
56
+ break;
57
+ case 'MultiPoint':
58
+ this.beginMultiPoint(count ?? 0);
59
+ break;
60
+ case 'MultiLineString':
61
+ this.beginMultiLineString(count ?? 0);
62
+ break;
63
+ case 'MultiPolygon':
64
+ this.beginMultiPolygon(count ?? 0);
65
+ break;
66
+ case 'GeometryCollection':
67
+ this.writeHeader('GeometryCollection');
68
+ this.writeUint32(count ?? 0);
69
+ break;
70
+ }
71
+ }
72
+ /** Begins one point geometry. */
73
+ beginPoint() {
74
+ this.writeHeader('Point');
75
+ }
76
+ /** Begins one linestring geometry. */
77
+ beginLineString(pointCount) {
78
+ this.writeHeader('LineString');
79
+ this.writeUint32(pointCount);
80
+ }
81
+ /** Begins one polygon geometry. */
82
+ beginPolygon(ringCount) {
83
+ this.writeHeader('Polygon');
84
+ this.writeUint32(ringCount);
85
+ }
86
+ /** Begins one linear ring inside a polygon. */
87
+ beginLinearRing(pointCount) {
88
+ this.writeUint32(pointCount);
89
+ }
90
+ /** Begins one multipoint geometry. */
91
+ beginMultiPoint(pointCount) {
92
+ this.writeHeader('MultiPoint');
93
+ this.writeUint32(pointCount);
94
+ }
95
+ /** Begins one multilinestring geometry. */
96
+ beginMultiLineString(lineCount) {
97
+ this.writeHeader('MultiLineString');
98
+ this.writeUint32(lineCount);
99
+ }
100
+ /** Begins one multipolygon geometry. */
101
+ beginMultiPolygon(polygonCount) {
102
+ this.writeHeader('MultiPolygon');
103
+ this.writeUint32(polygonCount);
104
+ }
105
+ /** Writes one coordinate using the builder's semantic dimension. */
106
+ writeCoordinate(x, y, z, m) {
107
+ let coordinate = makeCoordinate(this.dimension, x, y, z, m);
108
+ if (this.transform)
109
+ coordinate = this.transform(coordinate, this.dimension);
110
+ const coordinateSize = getDimensionSize(this.dimension);
111
+ for (let index = 0; index < coordinateSize; index++) {
112
+ this.writeFloat64(coordinate[index] ?? Number.NaN);
113
+ }
114
+ }
115
+ /** Returns the number of bytes measured or written. */
116
+ finishGeometry() {
117
+ return this.byteOffset - this.startByteOffset;
118
+ }
119
+ /** Measures geometry callbacks and returns contiguous Binary offsets. */
120
+ static measureGeometryArray(geometryWriters, options = {}) {
121
+ const valueOffsets = new Int32Array(geometryWriters.length + 1);
122
+ for (let geometryIndex = 0; geometryIndex < geometryWriters.length; geometryIndex++) {
123
+ const geometryWriter = geometryWriters[geometryIndex];
124
+ const byteLength = geometryWriter ? measureGeometry(geometryWriter, options) : 0;
125
+ const nextOffset = valueOffsets[geometryIndex] + byteLength;
126
+ if (nextOffset > 0x7fffffff)
127
+ throw new Error('WKB geometry array exceeds Int32 offsets');
128
+ valueOffsets[geometryIndex + 1] = nextOffset;
129
+ }
130
+ return valueOffsets;
131
+ }
132
+ /** Writes geometry callbacks into an existing contiguous values buffer. */
133
+ static writeGeometryArray(geometryWriters, valueOffsets, values, options = {}) {
134
+ if (valueOffsets.length !== geometryWriters.length + 1) {
135
+ throw new Error('WKB valueOffsets length must equal geometry count plus one');
136
+ }
137
+ if (valueOffsets[valueOffsets.length - 1] > values.byteLength) {
138
+ throw new Error('WKB values buffer is smaller than its final offset');
139
+ }
140
+ for (let geometryIndex = 0; geometryIndex < geometryWriters.length; geometryIndex++) {
141
+ const geometryWriter = geometryWriters[geometryIndex];
142
+ if (!geometryWriter)
143
+ continue;
144
+ const builder = new WKBBuilder({
145
+ mode: 'write',
146
+ target: values,
147
+ byteOffset: valueOffsets[geometryIndex],
148
+ ...options
149
+ });
150
+ geometryWriter(builder);
151
+ const byteLength = builder.finishGeometry();
152
+ if (valueOffsets[geometryIndex] + byteLength !== valueOffsets[geometryIndex + 1]) {
153
+ throw new Error('WKB measure and write passes produced different byte lengths');
154
+ }
155
+ }
156
+ return values;
157
+ }
158
+ /** Builds plain offsets, values, and validity buffers in two passes. */
159
+ static buildGeometryArray(geometryWriters, options = {}) {
160
+ const valueOffsets = WKBBuilder.measureGeometryArray(geometryWriters, options);
161
+ const values = new Uint8Array(valueOffsets[valueOffsets.length - 1]);
162
+ WKBBuilder.writeGeometryArray(geometryWriters, valueOffsets, values, options);
163
+ const { nullBitmap, nullCount } = makeNullBitmap(geometryWriters);
164
+ return {
165
+ valueOffsets,
166
+ values,
167
+ ...(nullCount > 0 ? { nullBitmap } : {}),
168
+ nullCount
169
+ };
170
+ }
171
+ writeHeader(geometryType) {
172
+ this.writeUint8(this.littleEndian ? 1 : 0);
173
+ this.writeUint32(getWKBTypeCode(geometryType, this.dimension, this.srid !== undefined));
174
+ if (this.srid !== undefined)
175
+ this.writeUint32(this.srid);
176
+ }
177
+ writeUint8(value) {
178
+ this.ensureSize(1);
179
+ this.dataView?.setUint8(this.byteOffset, value);
180
+ this.byteOffset++;
181
+ }
182
+ writeUint32(value) {
183
+ if (!Number.isSafeInteger(value) || value < 0 || value > 0xffffffff) {
184
+ throw new Error('WKB count must be an unsigned 32-bit integer');
185
+ }
186
+ this.ensureSize(4);
187
+ this.dataView?.setUint32(this.byteOffset, value, this.littleEndian);
188
+ this.byteOffset += 4;
189
+ }
190
+ writeFloat64(value) {
191
+ this.ensureSize(8);
192
+ this.dataView?.setFloat64(this.byteOffset, value, this.littleEndian);
193
+ this.byteOffset += 8;
194
+ }
195
+ ensureSize(byteLength) {
196
+ if (this.byteOffset + byteLength > this.endByteOffset) {
197
+ throw new Error('WKBBuilder target buffer overflow');
198
+ }
199
+ }
200
+ }
201
+ function measureGeometry(geometryWriter, options) {
202
+ const builder = new WKBBuilder({ mode: 'measure', ...options });
203
+ geometryWriter(builder);
204
+ return builder.finishGeometry();
205
+ }
206
+ function getTargetDataView(target) {
207
+ return ArrayBuffer.isView(target)
208
+ ? new DataView(target.buffer, target.byteOffset, target.byteLength)
209
+ : new DataView(target);
210
+ }
211
+ function getWKBTypeCode(geometryType, dimension, hasSrid) {
212
+ const geometryCode = GEOMETRY_TYPE_CODES[geometryType];
213
+ if (hasSrid) {
214
+ const dimensionFlags = dimension === 'xyz'
215
+ ? 0x80000000
216
+ : dimension === 'xym'
217
+ ? 0x40000000
218
+ : dimension === 'xyzm'
219
+ ? 0xc0000000
220
+ : 0;
221
+ return (geometryCode | dimensionFlags | 0x20000000) >>> 0;
222
+ }
223
+ const dimensionOffset = dimension === 'xyz' ? 1000 : dimension === 'xym' ? 2000 : dimension === 'xyzm' ? 3000 : 0;
224
+ return geometryCode + dimensionOffset;
225
+ }
226
+ function makeCoordinate(dimension, x, y, z, m) {
227
+ switch (dimension) {
228
+ case 'xy':
229
+ return [x, y];
230
+ case 'xyz':
231
+ return [x, y, z ?? Number.NaN];
232
+ case 'xym':
233
+ return [x, y, m ?? Number.NaN];
234
+ case 'xyzm':
235
+ return [x, y, z ?? Number.NaN, m ?? Number.NaN];
236
+ }
237
+ }
238
+ function getDimensionSize(dimension) {
239
+ return dimension === 'xy' ? 2 : dimension === 'xyzm' ? 4 : 3;
240
+ }
241
+ function validateSrid(srid) {
242
+ if (srid !== undefined && (!Number.isSafeInteger(srid) || srid < 0 || srid > 0xffffffff)) {
243
+ throw new Error('WKBBuilder srid must be an unsigned 32-bit integer');
244
+ }
245
+ }
246
+ function makeNullBitmap(geometryWriters) {
247
+ const nullBitmap = new Uint8Array(Math.ceil(geometryWriters.length / 8));
248
+ let nullCount = 0;
249
+ for (let geometryIndex = 0; geometryIndex < geometryWriters.length; geometryIndex++) {
250
+ if (geometryWriters[geometryIndex]) {
251
+ nullBitmap[geometryIndex >> 3] |= 1 << (geometryIndex & 7);
252
+ }
253
+ else {
254
+ nullCount++;
255
+ }
256
+ }
257
+ return { nullBitmap, nullCount };
258
+ }
259
+ //# sourceMappingURL=wkb-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wkb-builder.js","sourceRoot":"","sources":["../src/wkb-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { WellKnownDimension, WellKnownGeometry } from "./types.js";
2
+ /** Geometry family encoded by a WKB header. */
3
+ export type WKBGeometryType = WellKnownGeometry['type'];
4
+ /** WKB dialect identified from one geometry header. */
5
+ export type WKBDialect = 'wkb' | 'iso-wkb' | 'ewkb';
6
+ /** Immutable facts decoded from one WKB geometry header. */
7
+ export type WKBHeader = Readonly<{
8
+ geometryType: WKBGeometryType;
9
+ dimension: WellKnownDimension;
10
+ dialect: WKBDialect;
11
+ littleEndian: boolean;
12
+ /** Offset of the endian byte, relative to the supplied input view. */
13
+ byteOffset: number;
14
+ /** Offset of the geometry body, relative to the supplied input view. */
15
+ bodyByteOffset: number;
16
+ /** Number of bytes occupied by the header. */
17
+ byteLength: number;
18
+ /** EWKB spatial reference identifier, when present. */
19
+ srid?: number;
20
+ }>;
21
+ /** Defensive limits shared by WKB traversal and scanning. */
22
+ export type WKBTraversalOptions = Readonly<{
23
+ /** Maximum recursive geometry nesting. Defaults to 64. */
24
+ maximumDepth?: number;
25
+ /** Maximum total declared list elements. Defaults to 100 million. */
26
+ maximumElements?: number;
27
+ }>;
28
+ /** Direct callbacks invoked while traversing WKB bytes without materializing geometry rows. */
29
+ export type WKBVisitor = Readonly<{
30
+ /** Called at the start of each geometry. `count` is points, rings, or child geometries. */
31
+ geometry?: (header: WKBHeader, count: number | undefined, depth: number) => void;
32
+ /** Called at the start of each polygon ring. */
33
+ ring?: (pointCount: number, ringIndex: number, depth: number) => void;
34
+ /**
35
+ * Called for each coordinate without allocating a coordinate array.
36
+ * Missing Z or M ordinates are passed as `undefined`.
37
+ */
38
+ coordinate?: (x: number, y: number, z: number | undefined, m: number | undefined, dimension: WellKnownDimension, byteOffset: number, depth: number) => void;
39
+ }>;
40
+ /** Finite coordinate bounds collected by {@link scanWKB}. */
41
+ export type WKBBounds = Readonly<{
42
+ xmin: number;
43
+ ymin: number;
44
+ xmax: number;
45
+ ymax: number;
46
+ zmin?: number;
47
+ zmax?: number;
48
+ mmin?: number;
49
+ mmax?: number;
50
+ }>;
51
+ /** Per-family geometry counts collected by {@link scanWKB}. */
52
+ export type WKBGeometryCounts = Readonly<Record<WKBGeometryType, number>>;
53
+ /** Structural statistics collected without materializing geometry rows. */
54
+ export type WKBScanResult = Readonly<{
55
+ header: WKBHeader;
56
+ byteLength: number;
57
+ coordinateCount: number;
58
+ ringCount: number;
59
+ geometryCount: number;
60
+ maximumDepth: number;
61
+ geometryTypes: readonly WKBGeometryType[];
62
+ geometryCounts: WKBGeometryCounts;
63
+ bounds?: WKBBounds;
64
+ }>;
65
+ /** Inspects one WKB/ISO WKB/EWKB header without reading its coordinate payload. */
66
+ export declare function inspectWKBHeader(input: ArrayBufferLike | ArrayBufferView, byteOffset?: number): WKBHeader;
67
+ /**
68
+ * Traverses exactly one WKB geometry without constructing coordinate or geometry objects.
69
+ * Returns the number of bytes consumed.
70
+ */
71
+ export declare function visitWKB(input: ArrayBufferLike | ArrayBufferView, visitor: WKBVisitor, options?: WKBTraversalOptions): number;
72
+ /** Collects geometry counts and XYZM bounds without materializing geometry rows. */
73
+ export declare function scanWKB(input: ArrayBufferLike | ArrayBufferView, options?: WKBTraversalOptions): WKBScanResult;
74
+ //# sourceMappingURL=wkb-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wkb-reader.d.ts","sourceRoot":"","sources":["../src/wkb-reader.ts"],"names":[],"mappings":"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"}