@loaders.gl/wkt 4.4.0-alpha.10 → 4.4.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.min.js CHANGED
@@ -5,6 +5,6 @@
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
7
  "use strict";var __exports__=(()=>{var Qe=Object.create;var K=Object.defineProperty;var et=Object.getOwnPropertyDescriptor;var tt=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),it=(e,t)=>{for(var r in t)K(e,r,{get:t[r],enumerable:!0})},k=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of tt(t))!nt.call(e,o)&&o!==r&&K(e,o,{get:()=>t[o],enumerable:!(n=et(t,o))||n.enumerable});return e},U=(e,t,r)=>(k(e,t,"default"),r&&k(r,t,"default")),st=(e,t,r)=>(r=e!=null?Qe(rt(e)):{},k(t||!e||!e.__esModule?K(r,"default",{value:e,enumerable:!0}):r,e)),ct=e=>k(K({},"__esModule",{value:!0}),e);var le=ot((Xt,ue)=>{ue.exports=globalThis.loaders});var G={};it(G,{HexWKBLoader:()=>Ye,TWKBLoader:()=>qe,TWKBWriter:()=>Xe,WKBLoader:()=>J,WKBWorkerLoader:()=>ae,WKBWriter:()=>He,WKTCRSLoader:()=>ve,WKTCRSWriter:()=>_e,WKTLoader:()=>je,WKTWorkerLoader:()=>ce,WKTWriter:()=>$e});U(G,st(le(),1));function ye(e,t,r){switch(e.type){case"Point":return ft(e,t,r);case"LineString":return at(e,t,r);case"Polygon":return pe(e,t,r);default:let n=e;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function pe(e,t=-1/0,r=1/0){let{positions:n}=e,o=e.polygonIndices.value.filter(a=>a>=t&&a<=r),i=e.primitivePolygonIndices.value.filter(a=>a>=t&&a<=r);if(!(o.length>2)){let a=[];for(let u=0;u<i.length-1;u++){let l=i[u],g=i[u+1],d=F(n,l,g);a.push(d)}return{type:"Polygon",coordinates:a}}let c=[];for(let a=0;a<o.length-1;a++){let u=o[a],l=o[a+1],g=pe(e,u,l).coordinates;c.push(g)}return{type:"MultiPolygon",coordinates:c}}function at(e,t=-1/0,r=1/0){let{positions:n}=e,o=e.pathIndices.value.filter(c=>c>=t&&c<=r);if(!(o.length>2))return{type:"LineString",coordinates:F(n,o[0],o[1])};let s=[];for(let c=0;c<o.length-1;c++){let a=F(n,o[c],o[c+1]);s.push(a)}return{type:"MultiLineString",coordinates:s}}function ft(e,t,r){let{positions:n}=e,o=F(n,t,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function F(e,t,r){t=t||0,r=r||e.value.length/e.size;let n=[];for(let o=t;o<r;o++){let i=Array();for(let s=o*e.size;s<(o+1)*e.size;s++)i.push(Number(e.value[s]));n.push(i)}return n}function S(e){let t=0;for(let o=0;o<e.length;++o)t+=e[o].byteLength;let r=new Uint8Array(t),n=0;for(let o=0;o<e.length;++o){let i=new Uint8Array(e[o].buffer);t=i.length;for(let s=0;s<t;++s)r[n++]=i[s]}return r}function me(e,t){let r=e.map(o=>o.positions.value);return{type:"Point",positions:{value:new Float64Array(S(r).buffer),size:t}}}function ge(e,t){let r=e.map(i=>i.positions.value),n=new Float64Array(S(r).buffer),o=r.map(i=>i.length/t).map(de(0));return o.unshift(0),{type:"LineString",positions:{value:n,size:t},pathIndices:{value:new Uint32Array(o),size:1}}}function he(e,t){let r=[],n=[];for(let c of e){let{positions:a,primitivePolygonIndices:u}=c;r.push(a.value),n.push(u.value)}let o=new Float64Array(S(r).buffer),i=r.map(c=>c.length/t).map(de(0));i.unshift(0);let s=[0];for(let c of n)s.push(...c.filter(a=>a>0).map(a=>a+s[s.length-1]));return{type:"Polygon",positions:{value:o,size:t},polygonIndices:{value:new Uint32Array(i),size:1},primitivePolygonIndices:{value:new Uint32Array(s),size:1}}}var de=e=>t=>e+=t;var f;(function(e){e[e.Point=1]="Point",e[e.LineString=2]="LineString",e[e.Polygon=3]="Polygon",e[e.MultiPoint=4]="MultiPoint",e[e.MultiLineString=5]="MultiLineString",e[e.MultiPolygon=6]="MultiPolygon",e[e.GeometryCollection=7]="GeometryCollection"})(f||(f={}));var Y=2147483648,q=1073741824,C=536870912,we=1e4,I=["POINT(","LINESTRING(","POLYGON(","MULTIPOINT(","MULTILINESTRING(","MULTIPOLYGON(","GEOMETRYCOLLECTION("],ut=new TextEncoder,Te=I.map(e=>ut.encode(e));function R(e){return lt(e)!==null}function lt(e){if(typeof e=="string"){let n=I.findIndex(o=>e.startsWith(o));return n>=0?n+1:null}let t=new Uint8Array(e),r=Te.findIndex(n=>n.every((o,i)=>o===t[i]));return r>=0?r+1:null}function X(e){let t=new DataView(e),r=0,o=t.getUint8(r)&15;return!(o<1||o>7)}function Q(e){let t=new DataView(e),r=0,n=t.getUint8(r);if(r+=1,n>1)return!1;let o=n===1,i=t.getUint32(r,o);r+=4;let s=i&7;if(s===0||s>7)return!1;let c=i-s;if(c===0||c===1e3||c===2e3||c===3e3)return!0;if(c&~(Y|q|C))return!1;if(c&C){let a=t.getUint32(r,o);if(r+=4,a>we)return!1}return!0}function be(e,t){let r=Object.assign(t||{},{type:"wkb",variant:"wkb",geometryType:1,dimensions:2,coordinates:"xy",littleEndian:!0,byteOffset:0});if(R(e.buffer))throw new Error("WKB: Cannot parse WKT data");r.littleEndian=e.getUint8(r.byteOffset)===1,r.byteOffset++;let n=e.getUint32(r.byteOffset,r.littleEndian);r.byteOffset+=4,r.geometryType=n&7;let o=(n-r.geometryType)/1e3;switch(o){case 0:break;case 1:r.variant="iso-wkb",r.dimensions=3,r.coordinates="xyz";break;case 2:r.variant="iso-wkb",r.dimensions=3,r.coordinates="xym";break;case 3:r.variant="iso-wkb",r.dimensions=4,r.coordinates="xyzm";break;default:throw new Error(`WKB: Unsupported iso-wkb type: ${o}`)}let i=n&Y,s=n&q,c=n&C;return i&&s?(r.variant="ewkb",r.dimensions=4,r.coordinates="xyzm"):i?(r.variant="ewkb",r.dimensions=3,r.coordinates="xyz"):s&&(r.variant="ewkb",r.dimensions=3,r.coordinates="xym"),c&&(r.variant="ewkb",r.srid=e.getUint32(r.byteOffset,r.littleEndian),r.byteOffset+=4),r}function xe(e){let t=new DataView(e),r=be(t),{geometryType:n,dimensions:o,littleEndian:i}=r,s=r.byteOffset;switch(n){case f.Point:return Be(t,s,o,i).geometry;case f.LineString:return ee(t,s,o,i).geometry;case f.Polygon:return Se(t,s,o,i).geometry;case f.MultiPoint:let l=pt(t,s,o,i);return l.type="Point",l;case f.MultiLineString:let g=mt(t,s,o,i);return g.type="LineString",g;case f.MultiPolygon:let d=gt(t,s,o,i);return d.type="Polygon",d;default:throw new Error(`WKB: Unsupported geometry type: ${n}`)}}function Be(e,t,r,n){let o=new Float64Array(r);for(let i=0;i<r;i++)o[i]=e.getFloat64(t,n),t+=8;return{geometry:{type:"Point",positions:{value:o,size:r}},offset:t}}function ee(e,t,r,n){let o=e.getUint32(t,n);t+=4;let i=new Float64Array(o*r);for(let c=0;c<o*r;c++)i[c]=e.getFloat64(t,n),t+=8;let s=[0];return o>0&&s.push(o),{geometry:{type:"LineString",positions:{value:i,size:r},pathIndices:{value:new Uint32Array(s),size:1}},offset:t}}var yt=e=>t=>e+=t;function Se(e,t,r,n){let o=e.getUint32(t,n);t+=4;let i=[];for(let u=0;u<o;u++){let l=ee(e,t,r,n),{positions:g}=l.geometry;t=l.offset,i.push(g.value)}let s=new Float64Array(S(i).buffer),c=[0];s.length>0&&c.push(s.length/r);let a=i.map(u=>u.length/r).map(yt(0));return a.unshift(0),{geometry:{type:"Polygon",positions:{value:s,size:r},polygonIndices:{value:new Uint32Array(c),size:1},primitivePolygonIndices:{value:new Uint32Array(a),size:1}},offset:t}}function pt(e,t,r,n){let o=e.getUint32(t,n);t+=4;let i=[];for(let s=0;s<o;s++){let c=e.getUint8(t)===1;if(t++,e.getUint32(t,c)%1e3!==1)throw new Error("WKB: Inner geometries of MultiPoint not of type Point");t+=4;let a=Be(e,t,r,c);t=a.offset,i.push(a.geometry)}return me(i,r)}function mt(e,t,r,n){let o=e.getUint32(t,n);t+=4;let i=[];for(let s=0;s<o;s++){let c=e.getUint8(t)===1;if(t++,e.getUint32(t,c)%1e3!==2)throw new Error("WKB: Inner geometries of MultiLineString not of type LineString");t+=4;let a=ee(e,t,r,c);t=a.offset,i.push(a.geometry)}return ge(i,r)}function gt(e,t,r,n){let o=e.getUint32(t,n);t+=4;let i=[];for(let s=0;s<o;s++){let c=e.getUint8(t)===1;if(t++,e.getUint32(t,c)%1e3!==3)throw new Error("WKB: Inner geometries of MultiPolygon not of type Polygon");t+=4;let a=Se(e,t,r,c);t=a.offset,i.push(a.geometry)}return he(i,r)}function E(e){let t=xe(e);return ye(t)}var Ie=/[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/,Pe=new RegExp("^"+Ie.source+"(\\s"+Ie.source+"){1,}");function V(e,t){let r=e.split(";"),n=r.pop(),o=(r.shift()||"").split("=").pop(),s=Le({parts:r,_:n,i:0});return t?.wkt?.crs?ht(s,o):s}function Le(e){return dt(e)||Tt(e)||xt(e)||wt(e)||bt(e)||Bt(e)||St(e)}function ht(e,t){if(e&&t?.match(/\d+/)){let r={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+t}};e.crs=r}return e}function dt(e){if(!y(/^(POINT(\sz)?)/i,e)||(m(e),!y(/^(\()/,e)))return null;let t=Ee(e);return!t||(m(e),!y(/^(\))/,e))?null:{type:"Point",coordinates:t[0]}}function wt(e){if(!y(/^(MULTIPOINT)/i,e))return null;m(e);let t=e._?.substring(e._?.indexOf("(")+1,e._.length-1).replace(/\(/g,"").replace(/\)/g,"");e._="MULTIPOINT ("+t+")";let r=N(e);return r?(m(e),{type:"MultiPoint",coordinates:r}):null}function Tt(e){if(!y(/^(LINESTRING(\sz)?)/i,e)||(m(e),!y(/^(\()/,e)))return null;let t=Ee(e);return!t||!y(/^(\))/,e)?null:{type:"LineString",coordinates:t}}function bt(e){if(!y(/^(MULTILINESTRING)/i,e))return null;m(e);let t=N(e);return t?(m(e),{type:"MultiLineString",coordinates:t}):null}function xt(e){if(!y(/^(POLYGON(\sz)?)/i,e))return null;m(e);let t=N(e);return t?{type:"Polygon",coordinates:t}:null}function Bt(e){if(!y(/^(MULTIPOLYGON)/i,e))return null;m(e);let t=N(e);return t?{type:"MultiPolygon",coordinates:t}:null}function St(e){let t=[],r;if(!y(/^(GEOMETRYCOLLECTION)/i,e)||(m(e),!y(/^(\()/,e)))return null;for(;r=Le(e);)t.push(r),m(e),y(/^(,)/,e),m(e);return y(/^(\))/,e)?{type:"GeometryCollection",geometries:t}:null}function N(e){m(e);let t=0,r=[],n=[r],o=r,i;for(;i=y(/^(\()/,e)||y(/^(\))/,e)||y(/^(,)/,e)||y(Pe,e);){if(i==="(")n.push(o),o=[],n[n.length-1].push(o),t++;else if(i===")"){if(o.length===0||(o=n.pop(),!o))return null;if(t--,t===0)break}else if(i===",")o=[],n[n.length-1].push(o);else if(!i.split(/\s/g).some(isNaN))Array.prototype.push.apply(o,i.split(/\s/g).map(parseFloat));else return null;m(e)}return t!==0?null:r}function Ee(e){let t=[],r,n;for(;n=y(Pe,e)||y(/^(,)/,e);)n===","?(t.push(r),r=[]):n.split(/\s/g).some(isNaN)||(r||(r=[]),Array.prototype.push.apply(r,n.split(/\s/g).map(parseFloat))),m(e);if(r)t.push(r);else return null;return t.length?t:null}function y(e,t){let r=t._?.substring(t.i).match(e);return r?(t.i+=r[0].length,r[0]):null}function m(e){y(/^\s*/,e)}var v=class{arrayBuffer;dataView;byteOffset;littleEndian;constructor(t,r=!1){this.arrayBuffer=t,this.dataView=new DataView(t),this.byteOffset=0,this.littleEndian=!r}readUInt8(){let t=this.dataView.getUint8(this.byteOffset);return this.byteOffset+=1,t}readUInt16(){let t=this.dataView.getUint16(this.byteOffset,this.littleEndian);return this.byteOffset+=2,t}readUInt32(){let t=this.dataView.getUint32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,t}readInt8(){let t=this.dataView.getInt8(this.byteOffset);return this.byteOffset+=1,t}readInt16(){let t=this.dataView.getInt16(this.byteOffset,this.littleEndian);return this.byteOffset+=2,t}readInt32(){let t=this.dataView.getInt32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,t}readFloat(){let t=this.dataView.getFloat32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,t}readDouble(){let t=this.dataView.getFloat64(this.byteOffset,this.littleEndian);return this.byteOffset+=8,t}readVarInt(){let t=0,r=0,n;do n=this.dataView.getUint8(this.byteOffset+r),t+=(n&127)<<7*r,r++;while(n>=128);return this.byteOffset+=r,t}};function z(e){let t=new v(e),r=It(t);if(r.hasSizeAttribute&&t.readVarInt(),r.hasBoundingBox){let n=2;r.hasZ&&n++,r.hasM&&n++;for(let o=0;o<n;o++)t.readVarInt(),t.readVarInt()}return Pt(t,r,r.geometryType)}function It(e){let t=e.readUInt8(),r=e.readUInt8(),n=t&15,o=w(t>>4),i=Boolean(r>>3&1),s=!1,c=!1,a=0,u=1,l=0,g=1;if(i){let d=e.readUInt8();s=(d&1)===1,c=(d&2)===2,a=w((d&28)>>2),u=Math.pow(10,a),l=w((d&224)>>5),g=Math.pow(10,l)}return{geometryType:n,precision:o,precisionFactor:Math.pow(10,o),hasBoundingBox:Boolean(r>>0&1),hasSizeAttribute:Boolean(r>>1&1),hasIdList:Boolean(r>>2&1),hasExtendedPrecision:i,isEmpty:Boolean(r>>4&1),hasZ:s,hasM:c,zPrecision:a,zPrecisionFactor:u,mPrecision:l,mPrecisionFactor:g}}function Pt(e,t,r){switch(r){case f.Point:return Lt(e,t);case f.LineString:return Et(e,t);case f.Polygon:return Wt(e,t);case f.MultiPoint:return At(e,t);case f.MultiLineString:return Ot(e,t);case f.MultiPolygon:return Mt(e,t);case f.GeometryCollection:return Gt(e,t);default:throw new Error(`GeometryType ${r} not supported`)}}function Lt(e,t){return t.isEmpty?{type:"Point",coordinates:[]}:{type:"Point",coordinates:kt(e,t)}}function Et(e,t){if(t.isEmpty)return{type:"LineString",coordinates:[]};let r=e.readVarInt(),n=W(t),o=[];for(let i=0;i<r;i++)o.push(b(e,t,n));return{type:"LineString",coordinates:o}}function Wt(e,t){if(t.isEmpty)return{type:"Polygon",coordinates:[]};let r=e.readVarInt(),n=W(t),o=e.readVarInt(),i=[];for(let c=0;c<o;c++)i.push(b(e,t,n));let s=[i];for(let c=1;c<r;c++){let a=e.readVarInt(),u=[];for(let l=0;l<a;l++)u.push(b(e,t,n));s.push(u)}return{type:"Polygon",coordinates:s}}function At(e,t){if(t.isEmpty)return{type:"MultiPoint",coordinates:[]};let r=W(t),n=e.readVarInt(),o=[];for(let i=0;i<n;i++)o.push(b(e,t,r));return{type:"MultiPoint",coordinates:o}}function Ot(e,t){if(t.isEmpty)return{type:"MultiLineString",coordinates:[]};let r=W(t),n=e.readVarInt(),o=[];for(let i=0;i<n;i++){let s=e.readVarInt(),c=[];for(let a=0;a<s;a++)c.push(b(e,t,r));o.push(c)}return{type:"MultiLineString",coordinates:o}}function Mt(e,t){if(t.isEmpty)return{type:"MultiPolygon",coordinates:[]};let r=W(t),n=e.readVarInt(),o=[];for(let i=0;i<n;i++){let s=e.readVarInt(),c=e.readVarInt(),a=[];for(let l=0;l<c;l++)a.push(b(e,t,r));let u=a?[a]:[];for(let l=1;l<s;l++){let g=[],d=e.readVarInt();for(let fe=0;fe<d;fe++)g.push(b(e,t,r));u.push(g)}o.push(u)}return{type:"MultiPolygon",coordinates:o}}function Gt(e,t){return{type:"GeometryCollection",geometries:[]}}function w(e){return e>>1^-(e&1)}function We(e,t,r,n){return r!==void 0?n!==void 0?[e,t,r,n]:[e,t,r]:[e,t]}function W(e){return We(0,0,e.hasZ?0:void 0,e.hasM?0:void 0)}function kt(e,t){let r=w(e.readVarInt())/t.precisionFactor,n=w(e.readVarInt())/t.precisionFactor,o=t.hasZ?w(e.readVarInt())/t.zPrecisionFactor:void 0,i=t.hasM?w(e.readVarInt())/t.mPrecisionFactor:void 0;return We(r,n,o,i)}function b(e,t,r){return r[0]+=w(e.readVarInt())/t.precisionFactor,r[1]+=w(e.readVarInt())/t.precisionFactor,t.hasZ&&(r[2]+=w(e.readVarInt())/t.zPrecisionFactor),t.hasM&&(r[3]+=w(e.readVarInt())/t.mPrecisionFactor),r.slice()}function A(e){switch(e.type){case"Point":return`POINT ${T(Ae(e.coordinates))}`;case"LineString":return`LINESTRING ${T(te(e.coordinates))}`;case"Polygon":return`POLYGON ${T(re(e.coordinates))}`;case"MultiPoint":return`MULTIPOINT ${T(te(e.coordinates))}`;case"MultiPolygon":return`MULTIPOLYGON ${T(Kt(e.coordinates))}`;case"MultiLineString":return`MULTILINESTRING ${T(re(e.coordinates))}`;case"GeometryCollection":return`GEOMETRYCOLLECTION ${T(e.geometries.map(A).join(", "))}`;default:throw new Error("convertGeometryToWKT requires a valid GeoJSON Geometry (not Feature) as input")}}function Ae(e){return e.join(" ")}function te(e){return e.map(Ae).join(", ")}function re(e){return e.map(te).map(T).join(", ")}function Kt(e){return e.map(re).map(T).join(", ")}function T(e){return`(${e})`}var h=class{arrayBuffer;dataView;byteOffset=0;allowResize=!1;constructor(t,r){this.arrayBuffer=new ArrayBuffer(t),this.dataView=new DataView(this.arrayBuffer),this.byteOffset=0,this.allowResize=r||!1}writeUInt8(t){this._ensureSize(1),this.dataView.setUint8(this.byteOffset,t),this.byteOffset+=1}writeUInt16LE(t){this._ensureSize(2),this.dataView.setUint16(this.byteOffset,t,!0),this.byteOffset+=2}writeUInt16BE(t){this._ensureSize(2),this.dataView.setUint16(this.byteOffset,t,!1),this.byteOffset+=2}writeUInt32LE(t){this._ensureSize(4),this.dataView.setUint32(this.byteOffset,t,!0),this.byteOffset+=4}writeUInt32BE(t){this._ensureSize(4),this.dataView.setUint32(this.byteOffset,t,!1),this.byteOffset+=4}writeInt8(t){this._ensureSize(1),this.dataView.setInt8(this.byteOffset,t),this.byteOffset+=1}writeInt16LE(t){this._ensureSize(2),this.dataView.setInt16(this.byteOffset,t,!0),this.byteOffset+=2}writeInt16BE(t){this._ensureSize(2),this.dataView.setInt16(this.byteOffset,t,!1),this.byteOffset+=2}writeInt32LE(t){this._ensureSize(4),this.dataView.setInt32(this.byteOffset,t,!0),this.byteOffset+=4}writeInt32BE(t){this._ensureSize(4),this.dataView.setInt32(this.byteOffset,t,!1),this.byteOffset+=4}writeFloatLE(t){this._ensureSize(4),this.dataView.setFloat32(this.byteOffset,t,!0),this.byteOffset+=4}writeFloatBE(t){this._ensureSize(4),this.dataView.setFloat32(this.byteOffset,t,!1),this.byteOffset+=4}writeDoubleLE(t){this._ensureSize(8),this.dataView.setFloat64(this.byteOffset,t,!0),this.byteOffset+=8}writeDoubleBE(t){this._ensureSize(8),this.dataView.setFloat64(this.byteOffset,t,!1),this.byteOffset+=8}writeVarInt(t){let r=1;for(;t&4294967168;)this.writeUInt8(t&127|128),t>>>=7,r++;return this.writeUInt8(t&127),r}writeTypedArray(t){this._ensureSize(t.byteLength),new Uint8Array(this.arrayBuffer).set(t,this.byteOffset),this.byteOffset+=t.byteLength}writeBuffer(t){this._ensureSize(t.byteLength),new Uint8Array(this.arrayBuffer).set(new Uint8Array(t),this.byteOffset),this.byteOffset+=t.byteLength}_ensureSize(t){if(this.arrayBuffer.byteLength<this.byteOffset+t)if(this.allowResize){let r=new ArrayBuffer(this.byteOffset+t);new Uint8Array(r).set(new Uint8Array(this.arrayBuffer)),this.arrayBuffer=r}else throw new Error("BinaryWriter overflow")}};function O(e,t={}){switch(e.type==="Feature"&&(e=e.geometry),e.type){case"Point":return Oe(e.coordinates,t);case"LineString":return Ge(e.coordinates,t);case"Polygon":return ke(e.coordinates,t);case"MultiPoint":return Ft(e,t);case"MultiPolygon":return Rt(e,t);case"MultiLineString":return Ct(e,t);case"GeometryCollection":return Vt(e,t);default:let r=e;throw new Error(`Unhandled case: ${r}`)}}function Ut(e,t){switch(e.type){case"Point":return Me(t);case"LineString":return ne(e.coordinates,t);case"Polygon":return oe(e.coordinates,t);case"MultiPoint":return Ke(e,t);case"MultiPolygon":return Fe(e,t);case"MultiLineString":return Ue(e,t);case"GeometryCollection":return Ce(e,t);default:let r=e;throw new Error(`Unhandled case: ${r}`)}}function Oe(e,t){let r=new h(Me(t));return r.writeInt8(1),x(r,f.Point,t),typeof e[0]>"u"&&typeof e[1]>"u"?(r.writeDoubleLE(NaN),r.writeDoubleLE(NaN),t.hasZ&&r.writeDoubleLE(NaN),t.hasM&&r.writeDoubleLE(NaN)):_(r,e,t),r.arrayBuffer}function _(e,t,r){e.writeDoubleLE(t[0]),e.writeDoubleLE(t[1]),r.hasZ&&e.writeDoubleLE(t[2]),r.hasM&&e.writeDoubleLE(t[3])}function Me(e){let t=j(e);return 1+4+t}function Ge(e,t){let r=ne(e,t),n=new h(r);n.writeInt8(1),x(n,f.LineString,t),n.writeUInt32LE(e.length);for(let o of e)_(n,o,t);return n.arrayBuffer}function ne(e,t){let r=j(t);return 1+4+4+e.length*r}function ke(e,t){let r=new h(oe(e,t));r.writeInt8(1),x(r,f.Polygon,t);let[n=[],...o]=e;n.length>0?(r.writeUInt32LE(1+o.length),r.writeUInt32LE(n.length)):r.writeUInt32LE(0);for(let i of n)_(r,i,t);for(let i of o){r.writeUInt32LE(i.length);for(let s of i)_(r,s,t)}return r.arrayBuffer}function oe(e,t){let r=j(t),[n=[],...o]=e,i=1+4+4;n.length>0&&(i+=4+n.length*r);for(let s of o)i+=4+s.length*r;return i}function Ft(e,t){let r=new h(Ke(e,t)),n=e.coordinates;r.writeInt8(1),x(r,f.MultiPoint,t),r.writeUInt32LE(n.length);for(let o of n){let i=Oe(o,t);r.writeBuffer(i)}return r.arrayBuffer}function Ke(e,t){let r=j(t),n=e.coordinates;return r+=5,1+4+4+n.length*r}function Ct(e,t){let r=new h(Ue(e,t)),n=e.coordinates;r.writeInt8(1),x(r,f.MultiLineString,t),r.writeUInt32LE(n.length);for(let o of n){let i=Ge(o,t);r.writeBuffer(i)}return r.arrayBuffer}function Ue(e,t){let r=9,n=e.coordinates;for(let o of n)r+=ne(o,t);return r}function Rt(e,t){let r=new h(Fe(e,t)),n=e.coordinates;r.writeInt8(1),x(r,f.MultiPolygon,t),r.writeUInt32LE(n.length);for(let o of n){let i=ke(o,t);r.writeBuffer(i)}return r.arrayBuffer}function Fe(e,t){let r=9,n=e.coordinates;for(let o of n)r+=oe(o,t);return r}function Vt(e,t){let r=new h(Ce(e,t));r.writeInt8(1),x(r,f.GeometryCollection,t),r.writeUInt32LE(e.geometries.length);for(let n of e.geometries){let o=O(n,t);r.writeBuffer(o)}return r.arrayBuffer}function Ce(e,t){let r=9;for(let n of e.geometries)r+=Ut(n,t);return r}function x(e,t,r){let{hasZ:n,hasM:o,srid:i}=r,s=0;i?(n&&(s|=2147483648),o&&(s|=1073741824)):n&&o?s+=3e3:n?s+=1e3:o&&(s+=2e3),e.writeUInt32LE(s+t>>>0)}function j(e){let t=16;return e.hasZ&&(t+=8),e.hasM&&(t+=8),t}function D(e,t){let r=new h(0,!0),n={...Zt(5,0,0),hasZ:t?.hasZ,hasM:t?.hasM};return Re(r,e,n),r.arrayBuffer}function Re(e,t,r){switch(t.type){case"Point":return Nt(e,r,t);case"LineString":return vt(e,r,t);case"Polygon":return zt(e,r,t);case"MultiPoint":return _t(e,r,t);case"MultiLineString":return jt(e,r,t);case"MultiPolygon":return Dt(e,r,t);case"GeometryCollection":return $t(e,r,t);default:throw new Error("unsupported geometry type")}}function Nt(e,t,r){let n=r.coordinates.length===0||r[0]==="undefined"||r[1]==="undefined";if(B(e,t,f.Point,n),!n){let o=[0,0,0,0];P(e,t,r.coordinates,o)}}function vt(e,t,r){let n=r.coordinates,o=n.length===0;if(B(e,t,f.LineString,o),!o){e.writeVarInt(n.length);let i=[0,0,0,0];for(let s of n)P(e,t,s,i)}return e.arrayBuffer}function zt(e,t,r){let n=r.coordinates,o=n.length===0;if(B(e,t,f.Polygon,o),!o){e.writeVarInt(n.length);let i=[0,0,0,0];for(let s of n){e.writeVarInt(s.length);for(let c of s)P(e,t,i,c)}}return e.arrayBuffer}function _t(e,t,r){let n=r.coordinates,o=n.length===0;if(B(e,t,f.MultiPoint,o),!o){e.writeVarInt(n.length);let i=[0,0,0,0];for(let s=0;s<n.length;s++)P(e,t,i,n[s])}}function jt(e,t,r){let n=r.coordinates,o=n.length===0;if(B(e,t,f.MultiLineString,o),!o){e.writeVarInt(n.length);let i=[0,0,0,0];for(let s of n){e.writeVarInt(s.length);for(let c of s)P(e,t,i,c)}}return e.arrayBuffer}function Dt(e,t,r){let{coordinates:n}=r,o=n.length===0;if(B(e,t,f.MultiPolygon,o),!o){let i=n;e.writeVarInt(i.length);let s=[0,0,0,0];for(let c of i){e.writeVarInt(c.length);for(let a of c){e.writeVarInt(a.length);for(let u of a)P(e,t,s,u)}}}}function $t(e,t,r){let{geometries:n}=r,o=n.length===0;if(B(e,t,f.GeometryCollection,o),n.length>0){e.writeVarInt(n.length);for(let i of n)Re(e,i,t)}}function B(e,t,r,n){let o=(M(t.xy)<<4)+r,i=t.hasZ||t.hasM?1<<3:0;if(i+=n?1<<4:0,e.writeUInt8(o),e.writeUInt8(i),t.hasZ||t.hasM){let s=0;t.hasZ&&(s|=1),t.hasM&&(s|=2),e.writeUInt8(s)}}function P(e,t,r,n){let o=r[0]*t.xyFactor,i=r[1]*t.xyFactor,s=r[2]*t.zFactor,c=r[3]*t.mFactor;e.writeVarInt(M(o-n[0])),e.writeVarInt(M(i-n[1])),t.hasZ&&e.writeVarInt(M(s-n[2])),t.hasM&&e.writeVarInt(M(c-n[3])),n[0]=o,n[1]=i,n[2]=s,n[3]=c}function M(e){return e<<1^e>>31}function Zt(e,t,r){return{xy:e,z:t,m:r,xyFactor:Math.pow(10,e),zFactor:Math.pow(10,t),mFactor:Math.pow(10,r)}}function $(e,t){t?.debug&&console.log(`[wktcrs] parse starting with
8
- `,e),e=e.replace(/[A-Z][A-Z\d_]+\[/gi,i=>`["${i.substr(0,i.length-1)}",`),e=e.replace(/, ?([A-Z][A-Z\d_]+[,\]])/gi,(i,s)=>{let c=s.substr(0,s.length-1);return`,"${t?.raw?"raw:":""}${c}"${s[s.length-1]}`}),t?.raw&&(e=e.replace(/, {0,2}(-?[\.\d]+)(?=,|\])/g,function(i,s){return`,"${t?.raw?"raw:":""}${s}"`})),t?.debug&&console.log(`[wktcrs] json'd wkt: '${e}'`);let r;try{r=JSON.parse(e)}catch(i){throw console.error(`[wktcrs] failed to parse '${e}'`),i}t?.debug&&console.log(`[wktcrs] json parsed: '${e}'`);function n(i,s){let c=i[0];i.forEach(function(u){Array.isArray(u)&&n(u,i)});let a=`MULTIPLE_${c}`;return a in s?s[a].push(i):c in s?(s[a]=[s[c],i],delete s[c]):s[c]=i,s}let o=n(r,[r]);return t?.debug&&console.log("[wktcrs] parse returning",o),t?.sort&&Ve(o,t),o}function Ve(e,t){let r=Object.keys(e).filter(o=>!/\d+/.test(o)),n=t?.keywords||[];if(!t?.keywords){let o={};if(Array.isArray(e)){e.forEach(i=>{if(Array.isArray(i)&&i.length>=2&&typeof i[1]=="string"){let s=i[0];o[s]||(o[s]=0),o[s]++}});for(let i in o)o[i]>0&&n.push(i)}}return r.forEach(o=>{e[o]=Ve(e[o])}),n.forEach(o=>{let i=[],s=[];e.forEach((c,a)=>{Array.isArray(c)&&c[0]===o&&(i.push(a),s.push(c))}),s.sort((c,a)=>(c=c[1].toString(),a=a[1].toString(),c<a?-1:c>a?1:0)),s.forEach((c,a)=>{e[i[a]]=c})}),e}function L(e,t){Array.isArray(e)&&e.length===1&&Array.isArray(e[0])&&(e=e[0]);let[r,...n]=e;return`${r}[${n.map(i=>{if(Array.isArray(i))return L(i,t);if(typeof i=="number")return i.toString();if(typeof i=="string")return i.startsWith("raw:")?i.replace("raw:",""):`"${i}"`;throw new Error(`[wktcrs] unexpected attribute "${i}"`)}).join(",")}]`}var Ne="0123456789abcdef",Ht=[],Z=[];for(let e=0;e<256;e++)Ht[e]=Ne[e>>4&15]+Ne[e&15],e<16&&(e<10?Z[48+e]=e:Z[97-10+e]=e);function ie(e){let t=e.length>>1,r=t<<1,n=new Uint8Array(t),o=0,i=0;for(;i<r;)n[o++]=Z[e.charCodeAt(i++)]<<4|Z[e.charCodeAt(i++)];return n}var p="4.4.0-alpha.10";var ve={dataType:null,batchType:null,name:"WKT CRS (Well-Known Text Coordinate Reference System)",id:"wkt-crs",module:"wkt-crs",version:p,worker:!0,extensions:[],mimeTypes:["text/plain"],category:"json",text:!0,options:{"wkt-crs":{}},parse:async(e,t)=>$(new TextDecoder().decode(e),t?.["wkt-crs"]),parseTextSync:(e,t)=>$(e,t?.["wkt-crs"])};var ze=e=>typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer;function H(e){if(e instanceof ArrayBuffer)return e;if(ze(e))return se(e);let{buffer:t,byteOffset:r,byteLength:n}=e;return t instanceof ArrayBuffer&&r===0&&n===t.byteLength?t:se(t,r,n)}function se(e,t=0,r=e.byteLength-t){let n=new Uint8Array(e,t,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var _e={name:"WKT CRS (Well-Known Text Coordinate Reference System)",id:"wkt-crs",module:"wkt-crs",version:p,worker:!0,extensions:[],mimeTypes:["text/plain"],text:!0,options:{"wkt-crs":{}},encode:async(e,t)=>H(new TextEncoder().encode(L(e,t?.["wkt-crs"]))),encodeSync:(e,t)=>H(new TextEncoder().encode(L(e,t?.["wkt-crs"]))),encodeTextSync:(e,t)=>L(e,t?.["wkt-crs"])};var ce={dataType:null,batchType:null,name:"WKT (Well-Known Text)",id:"wkt",module:"wkt",version:p,worker:!0,extensions:["wkt"],mimeTypes:["text/plain"],category:"geometry",text:!0,tests:I,testText:R,options:{wkt:{shape:"geojson-geometry",crs:!0}}},je={...ce,parse:async(e,t)=>V(new TextDecoder().decode(e),t),parseTextSync:(e,t)=>V(e,t)};var $e={name:"WKT (Well Known Text)",id:"wkt",module:"wkt",version:p,extensions:["wkt"],mimeTypes:["application/wkt","text/plain"],text:!0,encode:async e=>De(e),encodeSync:De,encodeTextSync:A,options:{wkt:{}}};function De(e){let t=A(e);return new TextEncoder().encode(t).buffer}var ae={dataType:null,batchType:null,name:"WKB",id:"wkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["wkb"],mimeTypes:[],tests:[Q],options:{wkb:{shape:"geojson-geometry"}}},J={...ae,parse:async(e,t)=>Ze(e,t?.wkb),parseSync:(e,t)=>Ze(e,t?.wkb)};function Ze(e,t){let r=t?.shape||"geojson-geometry";switch(r){case"geojson-geometry":return E(e);default:throw new Error(r)}}var He={name:"WKB (Well Known Binary)",id:"wkb",module:"wkt",version:p,extensions:["wkb"],mimeTypes:["application/wkb","application/octet-stream"],options:{wkb:{hasZ:!1,hasM:!1}},async encode(e,t){return O(e)},encodeSync(e,t){return O(e)}};var Ye={dataType:null,batchType:null,name:"Hexadecimal WKB",id:"wkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["wkb"],mimeTypes:[],options:J.options,text:!0,testText:Jt,parse:async e=>Je(new TextDecoder().decode(e)),parseTextSync:Je};function Je(e,t){let r=ie(e);return E(r.buffer)}function Jt(e){return!e||e.length<10||e.length%2!==0||!e.startsWith("00")&&!e.startsWith("01")?!1:/^[0-9a-fA-F]+$/.test(e.slice(2))}var Yt={dataType:null,batchType:null,name:"TWKB (Tiny Well-Known Binary)",id:"twkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["twkb"],mimeTypes:[],tests:[X],options:{wkb:{shape:"binary-geometry"}}},qe={...Yt,parse:async e=>z(e),parseSync:z};var Xe={name:"TWKB (Tiny Well Known Binary)",id:"twkb",module:"wkt",version:p,extensions:["twkb"],mimeTypes:["application/text"],encode:async(e,t)=>D(e,t?.twkb),encodeSync:(e,t)=>D(e,t?.twkb),options:{twkb:{hasZ:!1,hasM:!1}}};return ct(G);})();
8
+ `,e),e=e.replace(/[A-Z][A-Z\d_]+\[/gi,i=>`["${i.substr(0,i.length-1)}",`),e=e.replace(/, ?([A-Z][A-Z\d_]+[,\]])/gi,(i,s)=>{let c=s.substr(0,s.length-1);return`,"${t?.raw?"raw:":""}${c}"${s[s.length-1]}`}),t?.raw&&(e=e.replace(/, {0,2}(-?[\.\d]+)(?=,|\])/g,function(i,s){return`,"${t?.raw?"raw:":""}${s}"`})),t?.debug&&console.log(`[wktcrs] json'd wkt: '${e}'`);let r;try{r=JSON.parse(e)}catch(i){throw console.error(`[wktcrs] failed to parse '${e}'`),i}t?.debug&&console.log(`[wktcrs] json parsed: '${e}'`);function n(i,s){let c=i[0];i.forEach(function(u){Array.isArray(u)&&n(u,i)});let a=`MULTIPLE_${c}`;return a in s?s[a].push(i):c in s?(s[a]=[s[c],i],delete s[c]):s[c]=i,s}let o=n(r,[r]);return t?.debug&&console.log("[wktcrs] parse returning",o),t?.sort&&Ve(o,t),o}function Ve(e,t){let r=Object.keys(e).filter(o=>!/\d+/.test(o)),n=t?.keywords||[];if(!t?.keywords){let o={};if(Array.isArray(e)){e.forEach(i=>{if(Array.isArray(i)&&i.length>=2&&typeof i[1]=="string"){let s=i[0];o[s]||(o[s]=0),o[s]++}});for(let i in o)o[i]>0&&n.push(i)}}return r.forEach(o=>{e[o]=Ve(e[o])}),n.forEach(o=>{let i=[],s=[];e.forEach((c,a)=>{Array.isArray(c)&&c[0]===o&&(i.push(a),s.push(c))}),s.sort((c,a)=>(c=c[1].toString(),a=a[1].toString(),c<a?-1:c>a?1:0)),s.forEach((c,a)=>{e[i[a]]=c})}),e}function L(e,t){Array.isArray(e)&&e.length===1&&Array.isArray(e[0])&&(e=e[0]);let[r,...n]=e;return`${r}[${n.map(i=>{if(Array.isArray(i))return L(i,t);if(typeof i=="number")return i.toString();if(typeof i=="string")return i.startsWith("raw:")?i.replace("raw:",""):`"${i}"`;throw new Error(`[wktcrs] unexpected attribute "${i}"`)}).join(",")}]`}var Ne="0123456789abcdef",Ht=[],Z=[];for(let e=0;e<256;e++)Ht[e]=Ne[e>>4&15]+Ne[e&15],e<16&&(e<10?Z[48+e]=e:Z[97-10+e]=e);function ie(e){let t=e.length>>1,r=t<<1,n=new Uint8Array(t),o=0,i=0;for(;i<r;)n[o++]=Z[e.charCodeAt(i++)]<<4|Z[e.charCodeAt(i++)];return n}var p="4.4.0-alpha.12";var ve={dataType:null,batchType:null,name:"WKT CRS (Well-Known Text Coordinate Reference System)",id:"wkt-crs",module:"wkt-crs",version:p,worker:!0,extensions:[],mimeTypes:["text/plain"],category:"json",text:!0,options:{"wkt-crs":{}},parse:async(e,t)=>$(new TextDecoder().decode(e),t?.["wkt-crs"]),parseTextSync:(e,t)=>$(e,t?.["wkt-crs"])};var ze=e=>typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer;function H(e){if(e instanceof ArrayBuffer)return e;if(ze(e))return se(e);let{buffer:t,byteOffset:r,byteLength:n}=e;return t instanceof ArrayBuffer&&r===0&&n===t.byteLength?t:se(t,r,n)}function se(e,t=0,r=e.byteLength-t){let n=new Uint8Array(e,t,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var _e={name:"WKT CRS (Well-Known Text Coordinate Reference System)",id:"wkt-crs",module:"wkt-crs",version:p,worker:!0,extensions:[],mimeTypes:["text/plain"],text:!0,options:{"wkt-crs":{}},encode:async(e,t)=>H(new TextEncoder().encode(L(e,t?.["wkt-crs"]))),encodeSync:(e,t)=>H(new TextEncoder().encode(L(e,t?.["wkt-crs"]))),encodeTextSync:(e,t)=>L(e,t?.["wkt-crs"])};var ce={dataType:null,batchType:null,name:"WKT (Well-Known Text)",id:"wkt",module:"wkt",version:p,worker:!0,extensions:["wkt"],mimeTypes:["text/plain"],category:"geometry",text:!0,tests:I,testText:R,options:{wkt:{shape:"geojson-geometry",crs:!0}}},je={...ce,parse:async(e,t)=>V(new TextDecoder().decode(e),t),parseTextSync:(e,t)=>V(e,t)};var $e={name:"WKT (Well Known Text)",id:"wkt",module:"wkt",version:p,extensions:["wkt"],mimeTypes:["application/wkt","text/plain"],text:!0,encode:async e=>De(e),encodeSync:De,encodeTextSync:A,options:{wkt:{}}};function De(e){let t=A(e);return new TextEncoder().encode(t).buffer}var ae={dataType:null,batchType:null,name:"WKB",id:"wkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["wkb"],mimeTypes:[],tests:[Q],options:{wkb:{shape:"geojson-geometry"}}},J={...ae,parse:async(e,t)=>Ze(e,t?.wkb),parseSync:(e,t)=>Ze(e,t?.wkb)};function Ze(e,t){let r=t?.shape||"geojson-geometry";switch(r){case"geojson-geometry":return E(e);default:throw new Error(r)}}var He={name:"WKB (Well Known Binary)",id:"wkb",module:"wkt",version:p,extensions:["wkb"],mimeTypes:["application/wkb","application/octet-stream"],options:{wkb:{hasZ:!1,hasM:!1}},async encode(e,t){return O(e)},encodeSync(e,t){return O(e)}};var Ye={dataType:null,batchType:null,name:"Hexadecimal WKB",id:"wkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["wkb"],mimeTypes:[],options:J.options,text:!0,testText:Jt,parse:async e=>Je(new TextDecoder().decode(e)),parseTextSync:Je};function Je(e,t){let r=ie(e);return E(r.buffer)}function Jt(e){return!e||e.length<10||e.length%2!==0||!e.startsWith("00")&&!e.startsWith("01")?!1:/^[0-9a-fA-F]+$/.test(e.slice(2))}var Yt={dataType:null,batchType:null,name:"TWKB (Tiny Well-Known Binary)",id:"twkb",module:"wkt",version:p,worker:!0,category:"geometry",extensions:["twkb"],mimeTypes:[],tests:[X],options:{wkb:{shape:"binary-geometry"}}},qe={...Yt,parse:async e=>z(e),parseSync:z};var Xe={name:"TWKB (Tiny Well Known Binary)",id:"twkb",module:"wkt",version:p,extensions:["twkb"],mimeTypes:["application/text"],encode:async(e,t)=>D(e,t?.twkb),encodeSync:(e,t)=>D(e,t?.twkb),options:{twkb:{hasZ:!1,hasM:!1}}};return ct(G);})();
9
9
  return __exports__;
10
10
  });
package/dist/index.cjs CHANGED
@@ -38,7 +38,7 @@ module.exports = __toCommonJS(dist_exports);
38
38
  var import_gis = require("@loaders.gl/gis");
39
39
 
40
40
  // dist/lib/version.js
41
- var VERSION = true ? "4.4.0-alpha.10" : "latest";
41
+ var VERSION = true ? "4.4.0-alpha.12" : "latest";
42
42
 
43
43
  // dist/wkt-crs-loader.js
44
44
  var WKTCRSLoader = {
@@ -4,5 +4,5 @@
4
4
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- export const VERSION = typeof "4.4.0-alpha.10" !== 'undefined' ? "4.4.0-alpha.10" : 'latest';
7
+ export const VERSION = typeof "4.4.0-alpha.12" !== 'undefined' ? "4.4.0-alpha.12" : 'latest';
8
8
  //# sourceMappingURL=version.js.map
@@ -457,7 +457,7 @@
457
457
  }
458
458
 
459
459
  // src/lib/version.ts
460
- var VERSION = true ? "4.4.0-alpha.10" : "latest";
460
+ var VERSION = true ? "4.4.0-alpha.12" : "latest";
461
461
 
462
462
  // src/wkt-loader.ts
463
463
  var WKTWorkerLoader = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/wkt",
3
3
  "description": "Loader and Writer for the WKT (Well Known Text) Format",
4
- "version": "4.4.0-alpha.10",
4
+ "version": "4.4.0-alpha.12",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -47,12 +47,12 @@
47
47
  "fuzzer": "^0.2.1"
48
48
  },
49
49
  "dependencies": {
50
- "@loaders.gl/gis": "4.4.0-alpha.10",
51
- "@loaders.gl/loader-utils": "4.4.0-alpha.10",
52
- "@loaders.gl/schema": "4.4.0-alpha.10"
50
+ "@loaders.gl/gis": "4.4.0-alpha.12",
51
+ "@loaders.gl/loader-utils": "4.4.0-alpha.12",
52
+ "@loaders.gl/schema": "4.4.0-alpha.12"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "@loaders.gl/core": "4.4.0-alpha.1"
56
56
  },
57
- "gitHead": "7b4dc3fdbaed20a2597c70c57efdcda5c404147f"
57
+ "gitHead": "35205e786cbbcf4bd91b74abe210f6c8e378b4cf"
58
58
  }