@loaders.gl/shapefile 3.1.0-alpha.4 → 3.1.0-beta.3

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.
Files changed (110) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +7554 -0
  4. package/dist/dbf-loader.d.ts +8 -0
  5. package/dist/dbf-loader.d.ts.map +1 -0
  6. package/dist/dbf-loader.js +32 -0
  7. package/dist/dbf-worker.js +912 -2
  8. package/dist/es5/bundle.js +1 -1
  9. package/dist/es5/bundle.js.map +1 -1
  10. package/dist/es5/dbf-loader.js +5 -40
  11. package/dist/es5/dbf-loader.js.map +1 -1
  12. package/dist/es5/index.js +5 -5
  13. package/dist/es5/lib/parsers/parse-dbf.js +86 -232
  14. package/dist/es5/lib/parsers/parse-dbf.js.map +1 -1
  15. package/dist/es5/lib/parsers/parse-shapefile.js +151 -404
  16. package/dist/es5/lib/parsers/parse-shapefile.js.map +1 -1
  17. package/dist/es5/lib/parsers/parse-shp-geometry.js +49 -96
  18. package/dist/es5/lib/parsers/parse-shp-geometry.js.map +1 -1
  19. package/dist/es5/lib/parsers/parse-shp-header.js +4 -4
  20. package/dist/es5/lib/parsers/parse-shp-header.js.map +1 -1
  21. package/dist/es5/lib/parsers/parse-shp.js +47 -165
  22. package/dist/es5/lib/parsers/parse-shp.js.map +1 -1
  23. package/dist/es5/lib/parsers/parse-shx.js +11 -11
  24. package/dist/es5/lib/parsers/parse-shx.js.map +1 -1
  25. package/dist/es5/lib/streaming/binary-chunk-reader.js +99 -172
  26. package/dist/es5/lib/streaming/binary-chunk-reader.js.map +1 -1
  27. package/dist/es5/lib/streaming/binary-reader.js +24 -35
  28. package/dist/es5/lib/streaming/binary-reader.js.map +1 -1
  29. package/dist/es5/lib/streaming/zip-batch-iterators.js +37 -96
  30. package/dist/es5/lib/streaming/zip-batch-iterators.js.map +1 -1
  31. package/dist/es5/shapefile-loader.js +3 -3
  32. package/dist/es5/shapefile-loader.js.map +1 -1
  33. package/dist/es5/shp-loader.js +6 -41
  34. package/dist/es5/shp-loader.js.map +1 -1
  35. package/dist/es5/workers/dbf-worker.js +7 -3
  36. package/dist/es5/workers/dbf-worker.js.map +1 -0
  37. package/dist/es5/workers/shp-worker.js +7 -3
  38. package/dist/es5/workers/shp-worker.js.map +1 -0
  39. package/dist/esm/dbf-loader.js +1 -1
  40. package/dist/esm/dbf-loader.js.map +1 -1
  41. package/dist/esm/lib/parsers/parse-dbf.js +4 -6
  42. package/dist/esm/lib/parsers/parse-dbf.js.map +1 -1
  43. package/dist/esm/lib/parsers/parse-shapefile.js +1 -1
  44. package/dist/esm/lib/parsers/parse-shapefile.js.map +1 -1
  45. package/dist/esm/lib/parsers/parse-shp-geometry.js +1 -1
  46. package/dist/esm/lib/parsers/parse-shp-geometry.js.map +1 -1
  47. package/dist/esm/lib/parsers/parse-shp-header.js +2 -2
  48. package/dist/esm/lib/parsers/parse-shp-header.js.map +1 -1
  49. package/dist/esm/lib/parsers/parse-shp.js +2 -2
  50. package/dist/esm/lib/parsers/parse-shp.js.map +1 -1
  51. package/dist/esm/shapefile-loader.js +1 -1
  52. package/dist/esm/shapefile-loader.js.map +1 -1
  53. package/dist/esm/shp-loader.js +1 -1
  54. package/dist/esm/shp-loader.js.map +1 -1
  55. package/dist/esm/workers/dbf-worker.js +3 -3
  56. package/dist/esm/workers/dbf-worker.js.map +1 -0
  57. package/dist/esm/workers/shp-worker.js +3 -3
  58. package/dist/esm/workers/shp-worker.js.map +1 -0
  59. package/dist/index.d.ts +4 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +11 -0
  62. package/dist/lib/parsers/parse-dbf.d.ts +28 -0
  63. package/dist/lib/parsers/parse-dbf.d.ts.map +1 -0
  64. package/dist/lib/parsers/parse-dbf.js +335 -0
  65. package/dist/lib/parsers/parse-shapefile.d.ts +54 -0
  66. package/dist/lib/parsers/parse-shapefile.d.ts.map +1 -0
  67. package/dist/lib/parsers/parse-shapefile.js +245 -0
  68. package/dist/lib/parsers/parse-shp-geometry.d.ts +11 -0
  69. package/dist/lib/parsers/parse-shp-geometry.d.ts.map +1 -0
  70. package/dist/lib/parsers/parse-shp-geometry.js +287 -0
  71. package/dist/lib/parsers/parse-shp-header.d.ts +26 -0
  72. package/dist/lib/parsers/parse-shp-header.d.ts.map +1 -0
  73. package/dist/lib/parsers/parse-shp-header.js +43 -0
  74. package/dist/lib/parsers/parse-shp.d.ts +9 -0
  75. package/dist/lib/parsers/parse-shp.d.ts.map +1 -0
  76. package/dist/lib/parsers/parse-shp.js +170 -0
  77. package/dist/lib/parsers/parse-shx.d.ts +10 -0
  78. package/dist/lib/parsers/parse-shx.d.ts.map +1 -0
  79. package/dist/lib/parsers/parse-shx.js +28 -0
  80. package/dist/lib/streaming/binary-chunk-reader.d.ts +59 -0
  81. package/dist/lib/streaming/binary-chunk-reader.d.ts.map +1 -0
  82. package/dist/lib/streaming/binary-chunk-reader.js +161 -0
  83. package/dist/lib/streaming/binary-reader.d.ts +32 -0
  84. package/dist/lib/streaming/binary-reader.d.ts.map +1 -0
  85. package/dist/lib/streaming/binary-reader.js +52 -0
  86. package/dist/lib/streaming/zip-batch-iterators.d.ts +8 -0
  87. package/dist/lib/streaming/zip-batch-iterators.d.ts.map +1 -0
  88. package/dist/lib/streaming/zip-batch-iterators.js +61 -0
  89. package/dist/shapefile-loader.d.ts +26 -0
  90. package/dist/shapefile-loader.d.ts.map +1 -0
  91. package/dist/shapefile-loader.js +31 -0
  92. package/dist/shp-loader.d.ts +9 -0
  93. package/dist/shp-loader.d.ts.map +1 -0
  94. package/dist/shp-loader.js +35 -0
  95. package/dist/shp-worker.js +606 -2
  96. package/dist/workers/dbf-worker.d.ts +2 -0
  97. package/dist/workers/dbf-worker.d.ts.map +1 -0
  98. package/dist/workers/dbf-worker.js +5 -0
  99. package/dist/workers/shp-worker.d.ts +2 -0
  100. package/dist/workers/shp-worker.d.ts.map +1 -0
  101. package/dist/workers/shp-worker.js +5 -0
  102. package/package.json +10 -10
  103. package/src/lib/parsers/parse-dbf.ts +5 -3
  104. package/src/lib/parsers/parse-shp-geometry.ts +1 -1
  105. package/src/workers/{dbf-worker.js → dbf-worker.ts} +0 -0
  106. package/src/workers/{shp-worker.js → shp-worker.ts} +0 -0
  107. package/dist/dbf-worker.js.map +0 -1
  108. package/dist/dist.min.js +0 -2
  109. package/dist/dist.min.js.map +0 -1
  110. package/dist/shp-worker.js.map +0 -1
@@ -1,2 +1,606 @@
1
- !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=18)}([function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){var n=r(13),o=r(14),a=r(15),i=r(17);e.exports=function(e,t){return n(e)||o(e,t)||a(e,t)||i()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){e.exports=r(11)},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function r(e,t,r,n,o,a,i){try{var s=e[a](i),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,u,"next",e)}function u(e){r(i,o,a,s,u,"throw",e)}s(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){var n=r(7);e.exports=function(e){return new n(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){this.wrapped=e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function r(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=r=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),r(t)}e.exports=r,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){var n=r(12);e.exports=function(e){return function(){return new n(e.apply(this,arguments))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){var t;if("undefined"!=typeof Symbol&&(Symbol.asyncIterator&&(t=e[Symbol.asyncIterator]),null==t&&Symbol.iterator&&(t=e[Symbol.iterator])),null==t&&(t=e["@@asyncIterator"]),null==t&&(t=e["@@iterator"]),null==t)throw new TypeError("Object is not async iterable");return t.call(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){var n=function(e){"use strict";var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var o=t&&t.prototype instanceof l?t:l,a=Object.create(o.prototype),i=new _(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=x(i,r);if(s){if(s===f)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===f)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,i),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function l(){}function p(){}function h(){}var y={};y[o]=function(){return this};var d=Object.getPrototypeOf,v=d&&d(d(O([])));v&&v!==t&&r.call(v,o)&&(y=v);var g=h.prototype=l.prototype=Object.create(y);function m(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(o,a,i,s){var u=c(e[o],e,a);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(l).then((function(e){f.value=e,i(f)}),(function(e){return n("throw",e,i,s)}))}s(u.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function x(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,f;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=g.constructor=h,h.constructor=p,p.displayName=s(h,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,s(e,i,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},m(b.prototype),b.prototype[a]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new b(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},m(g),s(g,i,"Generator"),g[o]=function(){return this},g.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=O,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:O(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},e}(e.exports);try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}},function(e,t,r){var n=r(7);function o(e){var t,r;function o(t,r){try{var i=e[t](r),s=i.value,u=s instanceof n;Promise.resolve(u?s.wrapped:s).then((function(e){u?o("return"===t?"return":"next",e):a(i.done?"return":"normal",e)}),(function(e){o("throw",e)}))}catch(e){a("throw",e)}}function a(e,n){switch(e){case"return":t.resolve({value:n,done:!0});break;case"throw":t.reject(n);break;default:t.resolve({value:n,done:!1})}(t=t.next)?o(t.key,t.arg):r=null}this._invoke=function(e,n){return new Promise((function(a,i){var s={key:e,arg:n,resolve:a,reject:i,next:null};r?r=r.next=s:(t=r=s,o(e,n))}))},"function"!=typeof e.return&&(this.return=void 0)}o.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},o.prototype.next=function(e){return this._invoke("next",e)},o.prototype.throw=function(e){return this._invoke("throw",e)},o.prototype.return=function(e){return this._invoke("return",e)},e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var r=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=r){var n,o,a=[],i=!0,s=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(s)throw o}}return a}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){var n=r(16);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){"use strict";r.r(t);var n=r(5),o=r.n(n),a=r(0),i=r.n(a),s=r(2),u=r.n(s),c=r(3),f=r.n(c),l=r(4),p=r.n(l),h=r(6),y=r.n(h),d=r(9),v=r.n(d),g=r(10),m=r.n(g),b=r(1),x=r.n(b);function w(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return E(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return E(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var _=function(){function e(t){f()(this,e),i()(this,"offset",void 0),i()(this,"arrayBuffers",void 0),i()(this,"ended",void 0),i()(this,"maxRewindBytes",void 0);var r=(t||{}).maxRewindBytes,n=void 0===r?0:r;this.offset=0,this.arrayBuffers=[],this.ended=!1,this.maxRewindBytes=n}return p()(e,[{key:"write",value:function(e){this.arrayBuffers.push(e)}},{key:"end",value:function(){this.arrayBuffers=[],this.ended=!0}},{key:"hasAvailableBytes",value:function(e){var t,r=-this.offset,n=w(this.arrayBuffers);try{for(n.s();!(t=n.n()).done;){if((r+=t.value.byteLength)>=e)return!0}}catch(e){n.e(e)}finally{n.f()}return!1}},{key:"findBufferOffsets",value:function(e){for(var t=-this.offset,r=[],n=0;n<this.arrayBuffers.length;n++){var o=this.arrayBuffers[n];if(t+o.byteLength<=0)t+=o.byteLength;else{var a=t<=0?Math.abs(t):0,i=void 0;if(a+e<=o.byteLength)return i=a+e,r.push([n,[a,i]]),r;i=o.byteLength,r.push([n,[a,i]]),e-=o.byteLength-a,t+=o.byteLength}}return null}},{key:"getDataView",value:function(e){var t=this.findBufferOffsets(e);if(!t&&this.ended)throw new Error("binary data exhausted");if(!t)return null;if(1===t.length){var r=x()(t[0],2),n=r[0],o=x()(r[1],2),a=o[0],i=o[1],s=this.arrayBuffers[n],u=new DataView(s,a,i-a);return this.offset+=e,this.disposeBuffers(),u}var c=new DataView(this._combineArrayBuffers(t));return this.offset+=e,this.disposeBuffers(),c}},{key:"disposeBuffers",value:function(){for(;this.arrayBuffers.length>0&&this.offset-this.maxRewindBytes>=this.arrayBuffers[0].byteLength;)this.offset-=this.arrayBuffers[0].byteLength,this.arrayBuffers.shift()}},{key:"_combineArrayBuffers",value:function(e){var t,r=0,n=w(e);try{for(n.s();!(t=n.n()).done;){var o=t.value,a=x()(o[1],2),i=a[0];r+=a[1]-i}}catch(e){n.e(e)}finally{n.f()}var s,u=new Uint8Array(r),c=0,f=w(e);try{for(f.s();!(s=f.n()).done;){var l=s.value,p=x()(l,2),h=p[0],y=x()(p[1],2),d=y[0],v=y[1],g=new Uint8Array(this.arrayBuffers[h]);u.set(g.subarray(d,v),c),c+=v-d}}catch(e){f.e(e)}finally{f.f()}return u.buffer}},{key:"skip",value:function(e){this.offset+=e}},{key:"rewind",value:function(e){this.offset-=e}}]),e}();function O(e,t){var r=((null==t?void 0:t.shp)||{})._maxDimensions,n=0,o=e.getInt32(n,!0);switch(n+=Int32Array.BYTES_PER_ELEMENT,o){case 0:return null;case 1:return S(e,n,Math.min(2,r));case 3:return M(e,n,Math.min(2,r),"LineString");case 5:return M(e,n,Math.min(2,r),"Polygon");case 8:return L(e,n,Math.min(2,r));case 11:return S(e,n,Math.min(4,r));case 13:return M(e,n,Math.min(4,r),"LineString");case 15:return M(e,n,Math.min(4,r),"Polygon");case 18:return L(e,n,Math.min(4,r));case 21:return S(e,n,Math.min(3,r));case 23:return M(e,n,Math.min(3,r),"LineString");case 25:return M(e,n,Math.min(3,r),"Polygon");case 28:return L(e,n,Math.min(3,r));default:throw new Error("unsupported shape type: ".concat(o))}}function S(e,t,r){var n,o=P(e,t,1,r),a=x()(o,2);return n=a[0],t=a[1],{positions:{value:n,size:r},type:"Point"}}function L(e,t,r){t+=4*Float64Array.BYTES_PER_ELEMENT;var n,o=e.getInt32(t,!0),a=null,i=null,s=P(e,t+=Int32Array.BYTES_PER_ELEMENT,o,2),u=x()(s,2);if(n=u[0],t=u[1],4===r){var c=P(e,t+=2*Float64Array.BYTES_PER_ELEMENT,o,1),f=x()(c,2);i=f[0],t=f[1]}if(r>=3){var l=P(e,t+=2*Float64Array.BYTES_PER_ELEMENT,o,1),p=x()(l,2);a=p[0],t=p[1]}return{positions:{value:k(n,a,i),size:r},type:"Point"}}function M(e,t,r,n){t+=4*Float64Array.BYTES_PER_ELEMENT;var o=e.getInt32(t,!0);t+=Int32Array.BYTES_PER_ELEMENT;var a=e.getInt32(t,!0);t+=Int32Array.BYTES_PER_ELEMENT;var i=e.byteOffset+t,s=o*Int32Array.BYTES_PER_ELEMENT,u=new Int32Array(o+1);u.set(new Int32Array(e.buffer.slice(i,i+s))),u[o]=a;var c=null,f=null,l=null,p=P(e,t+=o*Int32Array.BYTES_PER_ELEMENT,a,2),h=x()(p,2);if(c=h[0],t=h[1],4===r){var y=P(e,t+=2*Float64Array.BYTES_PER_ELEMENT,a,1),d=x()(y,2);l=d[0],t=d[1]}if(r>=3){var v=P(e,t+=2*Float64Array.BYTES_PER_ELEMENT,a,1),g=x()(v,2);f=g[0],t=g[1]}var m=k(c,f,l);if("LineString"===n)return{type:n,positions:{value:m,size:r},pathIndices:{value:u,size:1}};for(var b=[],w=1;w<u.length;w++){var E=u[w-1],_=u[w];j(c.subarray(2*E,2*_))>0&&b.push(E)}return b.push(a),{type:n,positions:{value:m,size:r},primitivePolygonIndices:{value:u,size:1},polygonIndices:{value:new Uint32Array(b),size:1}}}function P(e,t,r,n){var o=e.byteOffset+t,a=r*n*Float64Array.BYTES_PER_ELEMENT;return[new Float64Array(e.buffer.slice(o,o+a)),t+a]}function k(e,t,r){if(!t&&!r)return e;var n=e.length,o=2;r&&r.length&&(n+=r.length,o++),t&&t.length&&(n+=t.length,o++);for(var a=new Float64Array(n),i=0;i<e.length/2;i++)a[o*i]=e[2*i],a[o*i+1]=e[2*i+1];if(r&&r.length)for(var s=0;s<r.length;s++)a[o*s+2]=r[s];if(t&&t.length)for(var u=0;u<t.length;u++)a[o*u+(o-1)]=t[u];return a}function j(e){return Math.sign(function(e){for(var t=0,r=e.length/2-1,n=0;n<r;n++)t+=(e[2*n]+e[2*(n+1)])*(e[2*n+1]-e[2*(n+1)+1]);return t/2}(e))}var B=0,A=1,I=2,T=3,R=function(){function e(t){f()(this,e),i()(this,"options",{}),i()(this,"binaryReader",new _({maxRewindBytes:12})),i()(this,"state",B),i()(this,"result",{geometries:[]}),this.options=t}return p()(e,[{key:"write",value:function(e){this.binaryReader.write(e),this.state=D(this.state,this.result,this.binaryReader,this.options)}},{key:"end",value:function(){this.binaryReader.end(),this.state=D(this.state,this.result,this.binaryReader,this.options),this.state!==I&&(this.state=T,this.result.error="SHP incomplete file")}}]),e}();function F(e,t){var r=new R(t);return r.write(e),r.end(),r.result}function N(){return(N=v()(u.a.mark((function e(t,r){var n,o,a,i,s,c,f,l,p;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new R(r),o=!1,a=!0,i=!1,e.prev=4,c=m()(t);case 6:return e.next=8,y()(c.next());case 8:return f=e.sent,a=f.done,e.next=12,y()(f.value);case 12:if(l=e.sent,a){e.next=27;break}if(p=l,n.write(p),o||!n.result.header){e.next=20;break}return o=!0,e.next=20,n.result.header;case 20:if(!(n.result.geometries.length>0)){e.next=24;break}return e.next=23,n.result.geometries;case 23:n.result.geometries=[];case 24:a=!0,e.next=6;break;case 27:e.next=33;break;case 29:e.prev=29,e.t0=e.catch(4),i=!0,s=e.t0;case 33:if(e.prev=33,e.prev=34,a||null==c.return){e.next=38;break}return e.next=38,y()(c.return());case 38:if(e.prev=38,!i){e.next=41;break}throw s;case 41:return e.finish(38);case 42:return e.finish(33);case 43:if(n.end(),!(n.result.geometries.length>0)){e.next=47;break}return e.next=47,n.result.geometries;case 47:return e.abrupt("return");case 48:case"end":return e.stop()}}),e,null,[[4,29,33,43],[34,,38,42]])})))).apply(this,arguments)}function D(e,t,r,n){for(;;)try{switch(e){case T:case I:return e;case B:var o=r.getDataView(100);if(!o)return e;t.header=(c=void 0,9994!==(c={magic:(u=o).getInt32(0,!1),length:2*u.getInt32(24,!1),version:u.getInt32(28,!0),type:u.getInt32(32,!0),bbox:{minX:u.getFloat64(36,!0),minY:u.getFloat64(44,!0),minZ:u.getFloat64(68,!0),minM:u.getFloat64(84,!0),maxX:u.getFloat64(52,!0),maxY:u.getFloat64(60,!0),maxZ:u.getFloat64(76,!0),maxM:u.getFloat64(92,!0)}}).magic&&console.error("SHP file: bad magic number ".concat(c.magic)),1e3!==c.version&&console.error("SHP file: bad version ".concat(c.version)),c),t.progress={bytesUsed:0,bytesTotal:t.header.length,rows:0},t.currentIndex=1,e=A;break;case A:for(;r.hasAvailableBytes(12);){var a=r.getDataView(12),i={recordNumber:a.getInt32(0,!1),byteLength:2*a.getInt32(4,!1),type:a.getInt32(8,!0)};if(!r.hasAvailableBytes(i.byteLength-4))return r.rewind(12),e;if(i.byteLength<4||i.type!==t.header.type||i.recordNumber!==t.currentIndex)r.rewind(8);else{r.rewind(4);var s=O(r.getDataView(i.byteLength),n);t.geometries.push(s),t.currentIndex++,t.progress.rows=t.currentIndex-1}}return r.ended&&(e=I),e;default:return e=T,t.error="illegal parser state ".concat(e),e}}catch(r){return e=T,t.error="SHP parsing failed: ".concat(null==r?void 0:r.message),e}var u,c}function Y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function G(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(r),!0).forEach((function(t){i()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var z,U=G(G({},{name:"SHP",id:"shp",module:"shapefile",version:"3.1.0-alpha.4",worker:!0,category:"geometry",extensions:["shp"],mimeTypes:["application/octet-stream"],tests:[new Uint8Array([0,0,39,10]).buffer],options:{shp:{_maxDimensions:4}}}),{},{parse:(z=o()(u.a.mark((function e(t,r){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",F(t,r));case 1:case"end":return e.stop()}}),e)}))),function(e,t){return z.apply(this,arguments)}),parseSync:F,parseInBatches:function(e,t){return N.apply(this,arguments)}}),V=r(8),C=r.n(V);function H(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}var X=new Map,Z=function(){function e(){f()(this,e)}return p()(e,null,[{key:"onmessage",set:function(e){self.onmessage=function(t){if($(t)){var r=t.data,n=r.type,o=r.payload;e(n,o)}}}},{key:"addEventListener",value:function(e){var t=X.get(e);t||(t=function(t){if($(t)){var r=t.data,n=r.type,o=r.payload;e(n,o)}}),self.addEventListener("message",t)}},{key:"removeEventListener",value:function(e){var t=X.get(e);X.delete(e),self.removeEventListener("message",t)}},{key:"postMessage",value:function(e,t){if(self){var r={source:"loaders.gl",type:e,payload:t},n=function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,o=n||new Set;if(t){if(H(t))o.add(t);else if(H(t.buffer))o.add(t.buffer);else if(ArrayBuffer.isView(t));else if(r&&"object"===C()(t))for(var a in t)e(t[a],r,o)}else;return void 0===n?Array.from(o):[]}(t);self.postMessage(r,n)}}}]),e}();function $(e){var t=e.type,r=e.data;return"message"===t&&r&&"string"==typeof r.source&&r.source.startsWith("loaders.gl")}function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?W(Object(r),!0).forEach((function(t){i()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):W(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var J,K=0;function Q(e,t){return new Promise((function(r,n){var o=K++;Z.addEventListener((function e(t,a){if(a.id===o)switch(t){case"done":Z.removeEventListener(e),r(a.result);break;case"error":Z.removeEventListener(e),n(a.error)}}));var a={id:o,input:e,options:t};Z.postMessage("process",a)}))}function ee(e){return te.apply(this,arguments)}function te(){return(te=o()(u.a.mark((function e(t){var r,n,o,a,i,s,c;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.loader,n=t.arrayBuffer,o=t.options,a=t.context,!r.parseSync&&!r.parse){e.next=6;break}i=n,s=r.parseSync||r.parse,e.next=13;break;case 6:if(!r.parseTextSync){e.next=12;break}c=new TextDecoder,i=c.decode(n),s=r.parseTextSync,e.next=13;break;case 12:throw new Error("Could not load data with ".concat(r.name," loader"));case 13:return o=q(q({},o),{},{modules:r&&r.options&&r.options.modules||{},worker:!1}),e.next=16,s(i,q({},o),a,r);case 16:return e.abrupt("return",e.sent);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}J=U,"undefined"!=typeof self&&(Z.onmessage=function(){var e=o()(u.a.mark((function e(t,r){var n,o,a,i,s;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t,e.next="process"===e.t0?3:16;break;case 3:return e.prev=3,n=r.input,o=r.options,a=void 0===o?{}:o,e.next=7,ee({loader:J,arrayBuffer:n,options:a,context:{parse:Q}});case 7:i=e.sent,Z.postMessage("done",{result:i}),e.next=15;break;case 11:e.prev=11,e.t1=e.catch(3),s=e.t1 instanceof Error?e.t1.message:"",Z.postMessage("error",{error:s});case 15:return e.abrupt("break",16);case 16:case"end":return e.stop()}}),e,null,[[3,11]])})));return function(t,r){return e.apply(this,arguments)}}())}]);
2
- //# sourceMappingURL=shp-worker.js.map
1
+ (() => {
2
+ // src/lib/streaming/binary-chunk-reader.ts
3
+ var BinaryChunkReader = class {
4
+ constructor(options) {
5
+ const { maxRewindBytes = 0 } = options || {};
6
+ this.offset = 0;
7
+ this.arrayBuffers = [];
8
+ this.ended = false;
9
+ this.maxRewindBytes = maxRewindBytes;
10
+ }
11
+ write(arrayBuffer) {
12
+ this.arrayBuffers.push(arrayBuffer);
13
+ }
14
+ end() {
15
+ this.arrayBuffers = [];
16
+ this.ended = true;
17
+ }
18
+ hasAvailableBytes(bytes) {
19
+ let bytesAvailable = -this.offset;
20
+ for (const arrayBuffer of this.arrayBuffers) {
21
+ bytesAvailable += arrayBuffer.byteLength;
22
+ if (bytesAvailable >= bytes) {
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+ findBufferOffsets(bytes) {
29
+ let offset = -this.offset;
30
+ const selectedBuffers = [];
31
+ for (let i = 0; i < this.arrayBuffers.length; i++) {
32
+ const buf = this.arrayBuffers[i];
33
+ if (offset + buf.byteLength <= 0) {
34
+ offset += buf.byteLength;
35
+ continue;
36
+ }
37
+ const start = offset <= 0 ? Math.abs(offset) : 0;
38
+ let end;
39
+ if (start + bytes <= buf.byteLength) {
40
+ end = start + bytes;
41
+ selectedBuffers.push([i, [start, end]]);
42
+ return selectedBuffers;
43
+ }
44
+ end = buf.byteLength;
45
+ selectedBuffers.push([i, [start, end]]);
46
+ bytes -= buf.byteLength - start;
47
+ offset += buf.byteLength;
48
+ }
49
+ return null;
50
+ }
51
+ getDataView(bytes) {
52
+ const bufferOffsets = this.findBufferOffsets(bytes);
53
+ if (!bufferOffsets && this.ended) {
54
+ throw new Error("binary data exhausted");
55
+ }
56
+ if (!bufferOffsets) {
57
+ return null;
58
+ }
59
+ if (bufferOffsets.length === 1) {
60
+ const [bufferIndex, [start, end]] = bufferOffsets[0];
61
+ const arrayBuffer = this.arrayBuffers[bufferIndex];
62
+ const view2 = new DataView(arrayBuffer, start, end - start);
63
+ this.offset += bytes;
64
+ this.disposeBuffers();
65
+ return view2;
66
+ }
67
+ const view = new DataView(this._combineArrayBuffers(bufferOffsets));
68
+ this.offset += bytes;
69
+ this.disposeBuffers();
70
+ return view;
71
+ }
72
+ disposeBuffers() {
73
+ while (this.arrayBuffers.length > 0 && this.offset - this.maxRewindBytes >= this.arrayBuffers[0].byteLength) {
74
+ this.offset -= this.arrayBuffers[0].byteLength;
75
+ this.arrayBuffers.shift();
76
+ }
77
+ }
78
+ _combineArrayBuffers(bufferOffsets) {
79
+ let byteLength = 0;
80
+ for (const bufferOffset of bufferOffsets) {
81
+ const [start, end] = bufferOffset[1];
82
+ byteLength += end - start;
83
+ }
84
+ const result = new Uint8Array(byteLength);
85
+ let resultOffset = 0;
86
+ for (const bufferOffset of bufferOffsets) {
87
+ const [bufferIndex, [start, end]] = bufferOffset;
88
+ const sourceArray = new Uint8Array(this.arrayBuffers[bufferIndex]);
89
+ result.set(sourceArray.subarray(start, end), resultOffset);
90
+ resultOffset += end - start;
91
+ }
92
+ return result.buffer;
93
+ }
94
+ skip(bytes) {
95
+ this.offset += bytes;
96
+ }
97
+ rewind(bytes) {
98
+ this.offset -= bytes;
99
+ }
100
+ };
101
+
102
+ // src/lib/parsers/parse-shp-header.ts
103
+ var LITTLE_ENDIAN = true;
104
+ var BIG_ENDIAN = false;
105
+ var SHP_MAGIC_NUMBER = 9994;
106
+ function parseSHPHeader(headerView) {
107
+ const header = {
108
+ magic: headerView.getInt32(0, BIG_ENDIAN),
109
+ length: headerView.getInt32(24, BIG_ENDIAN) * 2,
110
+ version: headerView.getInt32(28, LITTLE_ENDIAN),
111
+ type: headerView.getInt32(32, LITTLE_ENDIAN),
112
+ bbox: {
113
+ minX: headerView.getFloat64(36, LITTLE_ENDIAN),
114
+ minY: headerView.getFloat64(44, LITTLE_ENDIAN),
115
+ minZ: headerView.getFloat64(68, LITTLE_ENDIAN),
116
+ minM: headerView.getFloat64(84, LITTLE_ENDIAN),
117
+ maxX: headerView.getFloat64(52, LITTLE_ENDIAN),
118
+ maxY: headerView.getFloat64(60, LITTLE_ENDIAN),
119
+ maxZ: headerView.getFloat64(76, LITTLE_ENDIAN),
120
+ maxM: headerView.getFloat64(92, LITTLE_ENDIAN)
121
+ }
122
+ };
123
+ if (header.magic !== SHP_MAGIC_NUMBER) {
124
+ console.error(`SHP file: bad magic number ${header.magic}`);
125
+ }
126
+ if (header.version !== 1e3) {
127
+ console.error(`SHP file: bad version ${header.version}`);
128
+ }
129
+ return header;
130
+ }
131
+
132
+ // src/lib/parsers/parse-shp-geometry.ts
133
+ var LITTLE_ENDIAN2 = true;
134
+ function parseRecord(view, options) {
135
+ const { _maxDimensions } = options?.shp || {};
136
+ let offset = 0;
137
+ const type = view.getInt32(offset, LITTLE_ENDIAN2);
138
+ offset += Int32Array.BYTES_PER_ELEMENT;
139
+ switch (type) {
140
+ case 0:
141
+ return parseNull();
142
+ case 1:
143
+ return parsePoint(view, offset, Math.min(2, _maxDimensions));
144
+ case 3:
145
+ return parsePoly(view, offset, Math.min(2, _maxDimensions), "LineString");
146
+ case 5:
147
+ return parsePoly(view, offset, Math.min(2, _maxDimensions), "Polygon");
148
+ case 8:
149
+ return parseMultiPoint(view, offset, Math.min(2, _maxDimensions));
150
+ case 11:
151
+ return parsePoint(view, offset, Math.min(4, _maxDimensions));
152
+ case 13:
153
+ return parsePoly(view, offset, Math.min(4, _maxDimensions), "LineString");
154
+ case 15:
155
+ return parsePoly(view, offset, Math.min(4, _maxDimensions), "Polygon");
156
+ case 18:
157
+ return parseMultiPoint(view, offset, Math.min(4, _maxDimensions));
158
+ case 21:
159
+ return parsePoint(view, offset, Math.min(3, _maxDimensions));
160
+ case 23:
161
+ return parsePoly(view, offset, Math.min(3, _maxDimensions), "LineString");
162
+ case 25:
163
+ return parsePoly(view, offset, Math.min(3, _maxDimensions), "Polygon");
164
+ case 28:
165
+ return parseMultiPoint(view, offset, Math.min(3, _maxDimensions));
166
+ default:
167
+ throw new Error(`unsupported shape type: ${type}`);
168
+ }
169
+ }
170
+ function parseNull() {
171
+ return null;
172
+ }
173
+ function parsePoint(view, offset, dim) {
174
+ let positions;
175
+ [positions, offset] = parsePositions(view, offset, 1, dim);
176
+ return {
177
+ positions: { value: positions, size: dim },
178
+ type: "Point"
179
+ };
180
+ }
181
+ function parseMultiPoint(view, offset, dim) {
182
+ offset += 4 * Float64Array.BYTES_PER_ELEMENT;
183
+ const nPoints = view.getInt32(offset, LITTLE_ENDIAN2);
184
+ offset += Int32Array.BYTES_PER_ELEMENT;
185
+ let xyPositions = null;
186
+ let mPositions = null;
187
+ let zPositions = null;
188
+ [xyPositions, offset] = parsePositions(view, offset, nPoints, 2);
189
+ if (dim === 4) {
190
+ offset += 2 * Float64Array.BYTES_PER_ELEMENT;
191
+ [zPositions, offset] = parsePositions(view, offset, nPoints, 1);
192
+ }
193
+ if (dim >= 3) {
194
+ offset += 2 * Float64Array.BYTES_PER_ELEMENT;
195
+ [mPositions, offset] = parsePositions(view, offset, nPoints, 1);
196
+ }
197
+ const positions = concatPositions(xyPositions, mPositions, zPositions);
198
+ return {
199
+ positions: { value: positions, size: dim },
200
+ type: "Point"
201
+ };
202
+ }
203
+ function parsePoly(view, offset, dim, type) {
204
+ offset += 4 * Float64Array.BYTES_PER_ELEMENT;
205
+ const nParts = view.getInt32(offset, LITTLE_ENDIAN2);
206
+ offset += Int32Array.BYTES_PER_ELEMENT;
207
+ const nPoints = view.getInt32(offset, LITTLE_ENDIAN2);
208
+ offset += Int32Array.BYTES_PER_ELEMENT;
209
+ const bufferOffset = view.byteOffset + offset;
210
+ const bufferLength = nParts * Int32Array.BYTES_PER_ELEMENT;
211
+ const ringIndices = new Int32Array(nParts + 1);
212
+ ringIndices.set(new Int32Array(view.buffer.slice(bufferOffset, bufferOffset + bufferLength)));
213
+ ringIndices[nParts] = nPoints;
214
+ offset += nParts * Int32Array.BYTES_PER_ELEMENT;
215
+ let xyPositions = null;
216
+ let mPositions = null;
217
+ let zPositions = null;
218
+ [xyPositions, offset] = parsePositions(view, offset, nPoints, 2);
219
+ if (dim === 4) {
220
+ offset += 2 * Float64Array.BYTES_PER_ELEMENT;
221
+ [zPositions, offset] = parsePositions(view, offset, nPoints, 1);
222
+ }
223
+ if (dim >= 3) {
224
+ offset += 2 * Float64Array.BYTES_PER_ELEMENT;
225
+ [mPositions, offset] = parsePositions(view, offset, nPoints, 1);
226
+ }
227
+ const positions = concatPositions(xyPositions, mPositions, zPositions);
228
+ if (type === "LineString") {
229
+ return {
230
+ type,
231
+ positions: { value: positions, size: dim },
232
+ pathIndices: { value: ringIndices, size: 1 }
233
+ };
234
+ }
235
+ const polygonIndices = [];
236
+ for (let i = 1; i < ringIndices.length; i++) {
237
+ const startRingIndex = ringIndices[i - 1];
238
+ const endRingIndex = ringIndices[i];
239
+ const ring = xyPositions.subarray(startRingIndex * 2, endRingIndex * 2);
240
+ const sign = getWindingDirection(ring);
241
+ if (sign > 0) {
242
+ polygonIndices.push(startRingIndex);
243
+ }
244
+ }
245
+ polygonIndices.push(nPoints);
246
+ return {
247
+ type,
248
+ positions: { value: positions, size: dim },
249
+ primitivePolygonIndices: { value: ringIndices, size: 1 },
250
+ polygonIndices: { value: new Uint32Array(polygonIndices), size: 1 }
251
+ };
252
+ }
253
+ function parsePositions(view, offset, nPoints, dim) {
254
+ const bufferOffset = view.byteOffset + offset;
255
+ const bufferLength = nPoints * dim * Float64Array.BYTES_PER_ELEMENT;
256
+ return [
257
+ new Float64Array(view.buffer.slice(bufferOffset, bufferOffset + bufferLength)),
258
+ offset + bufferLength
259
+ ];
260
+ }
261
+ function concatPositions(xyPositions, mPositions, zPositions) {
262
+ if (!(mPositions || zPositions)) {
263
+ return xyPositions;
264
+ }
265
+ let arrayLength = xyPositions.length;
266
+ let nDim = 2;
267
+ if (zPositions && zPositions.length) {
268
+ arrayLength += zPositions.length;
269
+ nDim++;
270
+ }
271
+ if (mPositions && mPositions.length) {
272
+ arrayLength += mPositions.length;
273
+ nDim++;
274
+ }
275
+ const positions = new Float64Array(arrayLength);
276
+ for (let i = 0; i < xyPositions.length / 2; i++) {
277
+ positions[nDim * i] = xyPositions[i * 2];
278
+ positions[nDim * i + 1] = xyPositions[i * 2 + 1];
279
+ }
280
+ if (zPositions && zPositions.length) {
281
+ for (let i = 0; i < zPositions.length; i++) {
282
+ positions[nDim * i + 2] = zPositions[i];
283
+ }
284
+ }
285
+ if (mPositions && mPositions.length) {
286
+ for (let i = 0; i < mPositions.length; i++) {
287
+ positions[nDim * i + (nDim - 1)] = mPositions[i];
288
+ }
289
+ }
290
+ return positions;
291
+ }
292
+ function getWindingDirection(positions) {
293
+ return Math.sign(getSignedArea(positions));
294
+ }
295
+ function getSignedArea(positions) {
296
+ let area = 0;
297
+ const nCoords = positions.length / 2 - 1;
298
+ for (let i = 0; i < nCoords; i++) {
299
+ area += (positions[i * 2] + positions[(i + 1) * 2]) * (positions[i * 2 + 1] - positions[(i + 1) * 2 + 1]);
300
+ }
301
+ return area / 2;
302
+ }
303
+
304
+ // src/lib/parsers/parse-shp.ts
305
+ var LITTLE_ENDIAN3 = true;
306
+ var BIG_ENDIAN2 = false;
307
+ var SHP_HEADER_SIZE = 100;
308
+ var SHP_RECORD_HEADER_SIZE = 12;
309
+ var STATE = {
310
+ EXPECTING_HEADER: 0,
311
+ EXPECTING_RECORD: 1,
312
+ END: 2,
313
+ ERROR: 3
314
+ };
315
+ var SHPParser = class {
316
+ constructor(options) {
317
+ this.options = {};
318
+ this.binaryReader = new BinaryChunkReader({ maxRewindBytes: SHP_RECORD_HEADER_SIZE });
319
+ this.state = STATE.EXPECTING_HEADER;
320
+ this.result = {
321
+ geometries: []
322
+ };
323
+ this.options = options;
324
+ }
325
+ write(arrayBuffer) {
326
+ this.binaryReader.write(arrayBuffer);
327
+ this.state = parseState(this.state, this.result, this.binaryReader, this.options);
328
+ }
329
+ end() {
330
+ this.binaryReader.end();
331
+ this.state = parseState(this.state, this.result, this.binaryReader, this.options);
332
+ if (this.state !== STATE.END) {
333
+ this.state = STATE.ERROR;
334
+ this.result.error = "SHP incomplete file";
335
+ }
336
+ }
337
+ };
338
+ function parseSHP(arrayBuffer, options) {
339
+ const shpParser = new SHPParser(options);
340
+ shpParser.write(arrayBuffer);
341
+ shpParser.end();
342
+ return shpParser.result;
343
+ }
344
+ async function* parseSHPInBatches(asyncIterator, options) {
345
+ const parser = new SHPParser(options);
346
+ let headerReturned = false;
347
+ for await (const arrayBuffer of asyncIterator) {
348
+ parser.write(arrayBuffer);
349
+ if (!headerReturned && parser.result.header) {
350
+ headerReturned = true;
351
+ yield parser.result.header;
352
+ }
353
+ if (parser.result.geometries.length > 0) {
354
+ yield parser.result.geometries;
355
+ parser.result.geometries = [];
356
+ }
357
+ }
358
+ parser.end();
359
+ if (parser.result.geometries.length > 0) {
360
+ yield parser.result.geometries;
361
+ }
362
+ return;
363
+ }
364
+ function parseState(state, result, binaryReader, options) {
365
+ while (true) {
366
+ try {
367
+ switch (state) {
368
+ case STATE.ERROR:
369
+ case STATE.END:
370
+ return state;
371
+ case STATE.EXPECTING_HEADER:
372
+ const dataView = binaryReader.getDataView(SHP_HEADER_SIZE);
373
+ if (!dataView) {
374
+ return state;
375
+ }
376
+ result.header = parseSHPHeader(dataView);
377
+ result.progress = {
378
+ bytesUsed: 0,
379
+ bytesTotal: result.header.length,
380
+ rows: 0
381
+ };
382
+ result.currentIndex = 1;
383
+ state = STATE.EXPECTING_RECORD;
384
+ break;
385
+ case STATE.EXPECTING_RECORD:
386
+ while (binaryReader.hasAvailableBytes(SHP_RECORD_HEADER_SIZE)) {
387
+ const recordHeaderView = binaryReader.getDataView(SHP_RECORD_HEADER_SIZE);
388
+ const recordHeader = {
389
+ recordNumber: recordHeaderView.getInt32(0, BIG_ENDIAN2),
390
+ byteLength: recordHeaderView.getInt32(4, BIG_ENDIAN2) * 2,
391
+ type: recordHeaderView.getInt32(8, LITTLE_ENDIAN3)
392
+ };
393
+ if (!binaryReader.hasAvailableBytes(recordHeader.byteLength - 4)) {
394
+ binaryReader.rewind(SHP_RECORD_HEADER_SIZE);
395
+ return state;
396
+ }
397
+ const invalidRecord = recordHeader.byteLength < 4 || recordHeader.type !== result.header.type || recordHeader.recordNumber !== result.currentIndex;
398
+ if (invalidRecord) {
399
+ binaryReader.rewind(SHP_RECORD_HEADER_SIZE - 4);
400
+ } else {
401
+ binaryReader.rewind(4);
402
+ const recordView = binaryReader.getDataView(recordHeader.byteLength);
403
+ const geometry = parseRecord(recordView, options);
404
+ result.geometries.push(geometry);
405
+ result.currentIndex++;
406
+ result.progress.rows = result.currentIndex - 1;
407
+ }
408
+ }
409
+ if (binaryReader.ended) {
410
+ state = STATE.END;
411
+ }
412
+ return state;
413
+ default:
414
+ state = STATE.ERROR;
415
+ result.error = `illegal parser state ${state}`;
416
+ return state;
417
+ }
418
+ } catch (error) {
419
+ state = STATE.ERROR;
420
+ result.error = `SHP parsing failed: ${error?.message}`;
421
+ return state;
422
+ }
423
+ }
424
+ }
425
+
426
+ // src/shp-loader.ts
427
+ var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
428
+ var SHP_MAGIC_NUMBER2 = [0, 0, 39, 10];
429
+ var SHPWorkerLoader = {
430
+ name: "SHP",
431
+ id: "shp",
432
+ module: "shapefile",
433
+ version: VERSION,
434
+ worker: true,
435
+ category: "geometry",
436
+ extensions: ["shp"],
437
+ mimeTypes: ["application/octet-stream"],
438
+ tests: [new Uint8Array(SHP_MAGIC_NUMBER2).buffer],
439
+ options: {
440
+ shp: {
441
+ _maxDimensions: 4
442
+ }
443
+ }
444
+ };
445
+ var SHPLoader = {
446
+ ...SHPWorkerLoader,
447
+ parse: async (arrayBuffer, options) => parseSHP(arrayBuffer, options),
448
+ parseSync: parseSHP,
449
+ parseInBatches: parseSHPInBatches
450
+ };
451
+
452
+ // ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
453
+ function getTransferList(object, recursive = true, transfers) {
454
+ const transfersSet = transfers || new Set();
455
+ if (!object) {
456
+ } else if (isTransferable(object)) {
457
+ transfersSet.add(object);
458
+ } else if (isTransferable(object.buffer)) {
459
+ transfersSet.add(object.buffer);
460
+ } else if (ArrayBuffer.isView(object)) {
461
+ } else if (recursive && typeof object === "object") {
462
+ for (const key in object) {
463
+ getTransferList(object[key], recursive, transfersSet);
464
+ }
465
+ }
466
+ return transfers === void 0 ? Array.from(transfersSet) : [];
467
+ }
468
+ function isTransferable(object) {
469
+ if (!object) {
470
+ return false;
471
+ }
472
+ if (object instanceof ArrayBuffer) {
473
+ return true;
474
+ }
475
+ if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
476
+ return true;
477
+ }
478
+ if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
479
+ return true;
480
+ }
481
+ if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
482
+ return true;
483
+ }
484
+ return false;
485
+ }
486
+
487
+ // ../worker-utils/src/lib/worker-farm/worker-body.ts
488
+ var onMessageWrapperMap = new Map();
489
+ var WorkerBody = class {
490
+ static set onmessage(onMessage) {
491
+ self.onmessage = (message) => {
492
+ if (!isKnownMessage(message)) {
493
+ return;
494
+ }
495
+ const { type, payload } = message.data;
496
+ onMessage(type, payload);
497
+ };
498
+ }
499
+ static addEventListener(onMessage) {
500
+ let onMessageWrapper = onMessageWrapperMap.get(onMessage);
501
+ if (!onMessageWrapper) {
502
+ onMessageWrapper = (message) => {
503
+ if (!isKnownMessage(message)) {
504
+ return;
505
+ }
506
+ const { type, payload } = message.data;
507
+ onMessage(type, payload);
508
+ };
509
+ }
510
+ self.addEventListener("message", onMessageWrapper);
511
+ }
512
+ static removeEventListener(onMessage) {
513
+ const onMessageWrapper = onMessageWrapperMap.get(onMessage);
514
+ onMessageWrapperMap.delete(onMessage);
515
+ self.removeEventListener("message", onMessageWrapper);
516
+ }
517
+ static postMessage(type, payload) {
518
+ if (self) {
519
+ const data = { source: "loaders.gl", type, payload };
520
+ const transferList = getTransferList(payload);
521
+ self.postMessage(data, transferList);
522
+ }
523
+ }
524
+ };
525
+ function isKnownMessage(message) {
526
+ const { type, data } = message;
527
+ return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
528
+ }
529
+
530
+ // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
531
+ var requestId = 0;
532
+ function createLoaderWorker(loader) {
533
+ if (typeof self === "undefined") {
534
+ return;
535
+ }
536
+ WorkerBody.onmessage = async (type, payload) => {
537
+ switch (type) {
538
+ case "process":
539
+ try {
540
+ const { input, options = {} } = payload;
541
+ const result = await parseData({
542
+ loader,
543
+ arrayBuffer: input,
544
+ options,
545
+ context: {
546
+ parse: parseOnMainThread
547
+ }
548
+ });
549
+ WorkerBody.postMessage("done", { result });
550
+ } catch (error) {
551
+ const message = error instanceof Error ? error.message : "";
552
+ WorkerBody.postMessage("error", { error: message });
553
+ }
554
+ break;
555
+ default:
556
+ }
557
+ };
558
+ }
559
+ function parseOnMainThread(arrayBuffer, options) {
560
+ return new Promise((resolve, reject) => {
561
+ const id = requestId++;
562
+ const onMessage = (type, payload2) => {
563
+ if (payload2.id !== id) {
564
+ return;
565
+ }
566
+ switch (type) {
567
+ case "done":
568
+ WorkerBody.removeEventListener(onMessage);
569
+ resolve(payload2.result);
570
+ break;
571
+ case "error":
572
+ WorkerBody.removeEventListener(onMessage);
573
+ reject(payload2.error);
574
+ break;
575
+ default:
576
+ }
577
+ };
578
+ WorkerBody.addEventListener(onMessage);
579
+ const payload = { id, input: arrayBuffer, options };
580
+ WorkerBody.postMessage("process", payload);
581
+ });
582
+ }
583
+ async function parseData({ loader, arrayBuffer, options, context }) {
584
+ let data;
585
+ let parser;
586
+ if (loader.parseSync || loader.parse) {
587
+ data = arrayBuffer;
588
+ parser = loader.parseSync || loader.parse;
589
+ } else if (loader.parseTextSync) {
590
+ const textDecoder = new TextDecoder();
591
+ data = textDecoder.decode(arrayBuffer);
592
+ parser = loader.parseTextSync;
593
+ } else {
594
+ throw new Error(`Could not load data with ${loader.name} loader`);
595
+ }
596
+ options = {
597
+ ...options,
598
+ modules: loader && loader.options && loader.options.modules || {},
599
+ worker: false
600
+ };
601
+ return await parser(data, { ...options }, context, loader);
602
+ }
603
+
604
+ // src/workers/shp-worker.ts
605
+ createLoaderWorker(SHPLoader);
606
+ })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dbf-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbf-worker.d.ts","sourceRoot":"","sources":["../../src/workers/dbf-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dbf_loader_1 = require("../dbf-loader");
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ (0, loader_utils_1.createLoaderWorker)(dbf_loader_1.DBFLoader);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shp-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shp-worker.d.ts","sourceRoot":"","sources":["../../src/workers/shp-worker.ts"],"names":[],"mappings":""}