@loaders.gl/core 3.4.0-alpha.3 → 3.4.0-alpha.5

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 (103) hide show
  1. package/dist/dist.min.js +127 -97
  2. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  3. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  4. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  5. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
  6. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
  7. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
  8. package/dist/es5/lib/api/encode.js.map +1 -1
  9. package/dist/es5/lib/api/parse-in-batches.js +15 -14
  10. package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
  11. package/dist/es5/lib/api/parse-sync.js +3 -4
  12. package/dist/es5/lib/api/parse-sync.js.map +1 -1
  13. package/dist/es5/lib/api/parse.js +3 -3
  14. package/dist/es5/lib/api/parse.js.map +1 -1
  15. package/dist/es5/lib/api/register-loaders.js.map +1 -1
  16. package/dist/es5/lib/api/select-loader.js +6 -7
  17. package/dist/es5/lib/api/select-loader.js.map +1 -1
  18. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
  19. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
  20. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
  21. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -1
  22. package/dist/es5/lib/init.js +1 -1
  23. package/dist/es5/lib/init.js.map +1 -1
  24. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
  25. package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
  26. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -1
  27. package/dist/es5/lib/loader-utils/loader-context.js +16 -8
  28. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
  29. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
  30. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  31. package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
  32. package/dist/es5/lib/utils/resource-utils.js +31 -27
  33. package/dist/es5/lib/utils/resource-utils.js.map +1 -1
  34. package/dist/es5/lib/utils/response-utils.js +6 -5
  35. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  36. package/dist/es5/lib/utils/url-utils.js +16 -0
  37. package/dist/es5/lib/utils/url-utils.js.map +1 -0
  38. package/dist/es5/null-loader.js +1 -1
  39. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  40. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  41. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  42. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -1
  43. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -1
  44. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -1
  45. package/dist/esm/lib/api/encode.js.map +1 -1
  46. package/dist/esm/lib/api/parse-in-batches.js +6 -7
  47. package/dist/esm/lib/api/parse-in-batches.js.map +1 -1
  48. package/dist/esm/lib/api/parse-sync.js +4 -6
  49. package/dist/esm/lib/api/parse-sync.js.map +1 -1
  50. package/dist/esm/lib/api/parse.js +3 -5
  51. package/dist/esm/lib/api/parse.js.map +1 -1
  52. package/dist/esm/lib/api/register-loaders.js.map +1 -1
  53. package/dist/esm/lib/api/select-loader.js +7 -10
  54. package/dist/esm/lib/api/select-loader.js.map +1 -1
  55. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -1
  56. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -1
  57. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -1
  58. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -1
  59. package/dist/esm/lib/init.js +1 -1
  60. package/dist/esm/lib/init.js.map +1 -1
  61. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -1
  62. package/dist/esm/lib/loader-utils/get-data.js.map +1 -1
  63. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -1
  64. package/dist/esm/lib/loader-utils/loader-context.js +16 -8
  65. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -1
  66. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -1
  67. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
  68. package/dist/esm/lib/progress/fetch-progress.js.map +1 -1
  69. package/dist/esm/lib/utils/resource-utils.js +29 -26
  70. package/dist/esm/lib/utils/resource-utils.js.map +1 -1
  71. package/dist/esm/lib/utils/response-utils.js +3 -5
  72. package/dist/esm/lib/utils/response-utils.js.map +1 -1
  73. package/dist/esm/lib/utils/url-utils.js +9 -0
  74. package/dist/esm/lib/utils/url-utils.js.map +1 -0
  75. package/dist/esm/null-loader.js +1 -1
  76. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  77. package/dist/lib/api/parse-in-batches.js +4 -7
  78. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  79. package/dist/lib/api/parse-sync.js +3 -3
  80. package/dist/lib/api/parse.js +2 -2
  81. package/dist/lib/api/select-loader.d.ts.map +1 -1
  82. package/dist/lib/api/select-loader.js +6 -3
  83. package/dist/lib/loader-utils/loader-context.d.ts +1 -1
  84. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  85. package/dist/lib/loader-utils/loader-context.js +17 -7
  86. package/dist/lib/utils/resource-utils.d.ts +17 -8
  87. package/dist/lib/utils/resource-utils.d.ts.map +1 -1
  88. package/dist/lib/utils/resource-utils.js +46 -34
  89. package/dist/lib/utils/response-utils.d.ts.map +1 -1
  90. package/dist/lib/utils/response-utils.js +2 -1
  91. package/dist/lib/utils/url-utils.d.ts +3 -0
  92. package/dist/lib/utils/url-utils.d.ts.map +1 -0
  93. package/dist/lib/utils/url-utils.js +14 -0
  94. package/dist/null-worker.js +1 -1
  95. package/package.json +4 -4
  96. package/src/lib/api/parse-in-batches.ts +8 -9
  97. package/src/lib/api/parse-sync.ts +8 -4
  98. package/src/lib/api/parse.ts +3 -3
  99. package/src/lib/api/select-loader.ts +7 -4
  100. package/src/lib/loader-utils/loader-context.ts +19 -8
  101. package/src/lib/utils/resource-utils.ts +54 -34
  102. package/src/lib/utils/response-utils.ts +3 -2
  103. package/src/lib/utils/url-utils.ts +12 -0
package/dist/dist.min.js CHANGED
@@ -879,7 +879,7 @@
879
879
  }
880
880
  });
881
881
 
882
- // ../loader-utils/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
882
+ // ../../node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
883
883
  function getHiResTimestamp() {
884
884
  let timestamp;
885
885
  if (typeof window !== "undefined" && window.performance) {
@@ -893,14 +893,14 @@
893
893
  return timestamp;
894
894
  }
895
895
  var init_hi_res_timestamp = __esm({
896
- "../loader-utils/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js"() {
896
+ "../../node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js"() {
897
897
  }
898
898
  });
899
899
 
900
- // ../loader-utils/node_modules/@probe.gl/stats/dist/lib/stat.js
900
+ // ../../node_modules/@probe.gl/stats/dist/lib/stat.js
901
901
  var Stat;
902
902
  var init_stat = __esm({
903
- "../loader-utils/node_modules/@probe.gl/stats/dist/lib/stat.js"() {
903
+ "../../node_modules/@probe.gl/stats/dist/lib/stat.js"() {
904
904
  init_defineProperty();
905
905
  init_hi_res_timestamp();
906
906
  Stat = class {
@@ -1016,10 +1016,10 @@
1016
1016
  }
1017
1017
  });
1018
1018
 
1019
- // ../loader-utils/node_modules/@probe.gl/stats/dist/lib/stats.js
1019
+ // ../../node_modules/@probe.gl/stats/dist/lib/stats.js
1020
1020
  var Stats;
1021
1021
  var init_stats = __esm({
1022
- "../loader-utils/node_modules/@probe.gl/stats/dist/lib/stats.js"() {
1022
+ "../../node_modules/@probe.gl/stats/dist/lib/stats.js"() {
1023
1023
  init_defineProperty();
1024
1024
  init_stat();
1025
1025
  Stats = class {
@@ -1069,29 +1069,28 @@
1069
1069
  stats.forEach((stat2) => this._getOrCreate(stat2));
1070
1070
  }
1071
1071
  _getOrCreate(stat2) {
1072
- if (!stat2 || !stat2.name) {
1073
- return null;
1074
- }
1075
1072
  const {
1076
1073
  name,
1077
1074
  type
1078
1075
  } = stat2;
1079
- if (!this.stats[name]) {
1076
+ let result = this.stats[name];
1077
+ if (!result) {
1080
1078
  if (stat2 instanceof Stat) {
1081
- this.stats[name] = stat2;
1079
+ result = stat2;
1082
1080
  } else {
1083
- this.stats[name] = new Stat(name, type);
1081
+ result = new Stat(name, type);
1084
1082
  }
1083
+ this.stats[name] = result;
1085
1084
  }
1086
- return this.stats[name] || null;
1085
+ return result;
1087
1086
  }
1088
1087
  };
1089
1088
  }
1090
1089
  });
1091
1090
 
1092
- // ../loader-utils/node_modules/@probe.gl/stats/dist/index.js
1091
+ // ../../node_modules/@probe.gl/stats/dist/index.js
1093
1092
  var init_dist = __esm({
1094
- "../loader-utils/node_modules/@probe.gl/stats/dist/index.js"() {
1093
+ "../../node_modules/@probe.gl/stats/dist/index.js"() {
1095
1094
  init_stats();
1096
1095
  init_stat();
1097
1096
  init_hi_res_timestamp();
@@ -1586,39 +1585,60 @@
1586
1585
  }
1587
1586
  });
1588
1587
 
1588
+ // src/lib/utils/url-utils.ts
1589
+ function extractQueryString(url) {
1590
+ const matches3 = url.match(QUERY_STRING_PATTERN);
1591
+ return matches3 && matches3[0];
1592
+ }
1593
+ function stripQueryString(url) {
1594
+ return url.replace(QUERY_STRING_PATTERN, "");
1595
+ }
1596
+ var QUERY_STRING_PATTERN;
1597
+ var init_url_utils = __esm({
1598
+ "src/lib/utils/url-utils.ts"() {
1599
+ QUERY_STRING_PATTERN = /\?.*/;
1600
+ }
1601
+ });
1602
+
1589
1603
  // src/lib/utils/resource-utils.ts
1590
- function getResourceUrlAndType(resource) {
1604
+ function getResourceUrl(resource) {
1591
1605
  if (isResponse(resource)) {
1592
- const url = stripQueryString(resource.url || "");
1593
- const contentTypeHeader = resource.headers.get("content-type") || "";
1594
- return {
1595
- url,
1596
- type: parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(url)
1597
- };
1606
+ const response = resource;
1607
+ return response.url;
1598
1608
  }
1599
1609
  if (isBlob(resource)) {
1600
- return {
1601
- url: stripQueryString(resource.name || ""),
1602
- type: resource.type || ""
1603
- };
1610
+ const blob = resource;
1611
+ return blob.name || "";
1604
1612
  }
1605
1613
  if (typeof resource === "string") {
1606
- return {
1607
- url: stripQueryString(resource),
1608
- type: parseMIMETypeFromURL(resource)
1609
- };
1614
+ return resource;
1610
1615
  }
1611
- return {
1612
- url: "",
1613
- type: ""
1614
- };
1616
+ return "";
1617
+ }
1618
+ function getResourceMIMEType(resource) {
1619
+ if (isResponse(resource)) {
1620
+ const response = resource;
1621
+ const contentTypeHeader = response.headers.get("content-type") || "";
1622
+ const noQueryUrl = stripQueryString(response.url);
1623
+ return parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(noQueryUrl);
1624
+ }
1625
+ if (isBlob(resource)) {
1626
+ const blob = resource;
1627
+ return blob.type || "";
1628
+ }
1629
+ if (typeof resource === "string") {
1630
+ return parseMIMETypeFromURL(resource);
1631
+ }
1632
+ return "";
1615
1633
  }
1616
1634
  function getResourceContentLength(resource) {
1617
1635
  if (isResponse(resource)) {
1618
- return resource.headers["content-length"] || -1;
1636
+ const response = resource;
1637
+ return response.headers["content-length"] || -1;
1619
1638
  }
1620
1639
  if (isBlob(resource)) {
1621
- return resource.size;
1640
+ const blob = resource;
1641
+ return blob.size;
1622
1642
  }
1623
1643
  if (typeof resource === "string") {
1624
1644
  return resource.length;
@@ -1631,15 +1651,11 @@
1631
1651
  }
1632
1652
  return -1;
1633
1653
  }
1634
- function stripQueryString(url) {
1635
- return url.replace(QUERY_STRING_PATTERN, "");
1636
- }
1637
- var QUERY_STRING_PATTERN;
1638
1654
  var init_resource_utils = __esm({
1639
1655
  "src/lib/utils/resource-utils.ts"() {
1640
1656
  init_is_type();
1641
1657
  init_mime_type_utils();
1642
- QUERY_STRING_PATTERN = /\?.*/;
1658
+ init_url_utils();
1643
1659
  }
1644
1660
  });
1645
1661
 
@@ -1653,7 +1669,8 @@
1653
1669
  if (contentLength >= 0) {
1654
1670
  headers["content-length"] = String(contentLength);
1655
1671
  }
1656
- const { url, type } = getResourceUrlAndType(resource);
1672
+ const url = getResourceUrl(resource);
1673
+ const type = getResourceMIMEType(resource);
1657
1674
  if (type) {
1658
1675
  headers["content-type"] = type;
1659
1676
  }
@@ -1808,7 +1825,7 @@
1808
1825
  }
1809
1826
  });
1810
1827
 
1811
- // node_modules/@probe.gl/env/dist/lib/is-electron.js
1828
+ // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
1812
1829
  function isElectron(mockUserAgent) {
1813
1830
  if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
1814
1831
  return true;
@@ -1824,54 +1841,54 @@
1824
1841
  return false;
1825
1842
  }
1826
1843
  var init_is_electron = __esm({
1827
- "node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
1844
+ "../../node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
1828
1845
  }
1829
1846
  });
1830
1847
 
1831
- // node_modules/@probe.gl/env/dist/lib/is-browser.js
1848
+ // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
1832
1849
  function isBrowser3() {
1833
1850
  const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
1834
1851
  return !isNode || isElectron();
1835
1852
  }
1836
1853
  var init_is_browser = __esm({
1837
- "node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
1854
+ "../../node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
1838
1855
  init_is_electron();
1839
1856
  }
1840
1857
  });
1841
1858
 
1842
- // node_modules/@probe.gl/env/dist/lib/globals.js
1843
- var self2, window2, document2, process2, console2, navigator2;
1859
+ // ../../node_modules/@probe.gl/env/dist/lib/globals.js
1860
+ var self_3, window_3, document_3, process_, console_, navigator_;
1844
1861
  var init_globals3 = __esm({
1845
- "node_modules/@probe.gl/env/dist/lib/globals.js"() {
1846
- self2 = globalThis.self || globalThis.window || globalThis.global;
1847
- window2 = globalThis.window || globalThis.self || globalThis.global;
1848
- document2 = globalThis.document || {};
1849
- process2 = globalThis.process || {};
1850
- console2 = globalThis.console;
1851
- navigator2 = globalThis.navigator || {};
1862
+ "../../node_modules/@probe.gl/env/dist/lib/globals.js"() {
1863
+ self_3 = globalThis.self || globalThis.window || globalThis.global;
1864
+ window_3 = globalThis.window || globalThis.self || globalThis.global;
1865
+ document_3 = globalThis.document || {};
1866
+ process_ = globalThis.process || {};
1867
+ console_ = globalThis.console;
1868
+ navigator_ = globalThis.navigator || {};
1852
1869
  }
1853
1870
  });
1854
1871
 
1855
- // node_modules/@probe.gl/env/dist/utils/globals.js
1872
+ // ../../node_modules/@probe.gl/env/dist/utils/globals.js
1856
1873
  var VERSION4, isBrowser4;
1857
1874
  var init_globals4 = __esm({
1858
- "node_modules/@probe.gl/env/dist/utils/globals.js"() {
1875
+ "../../node_modules/@probe.gl/env/dist/utils/globals.js"() {
1859
1876
  init_is_browser();
1860
1877
  VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1861
1878
  isBrowser4 = isBrowser3();
1862
1879
  }
1863
1880
  });
1864
1881
 
1865
- // node_modules/@probe.gl/env/dist/index.js
1882
+ // ../../node_modules/@probe.gl/env/dist/index.js
1866
1883
  var init_dist2 = __esm({
1867
- "node_modules/@probe.gl/env/dist/index.js"() {
1884
+ "../../node_modules/@probe.gl/env/dist/index.js"() {
1868
1885
  init_globals4();
1869
1886
  init_globals3();
1870
1887
  init_is_browser();
1871
1888
  }
1872
1889
  });
1873
1890
 
1874
- // node_modules/@probe.gl/log/dist/utils/local-storage.js
1891
+ // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
1875
1892
  function getStorage(type) {
1876
1893
  try {
1877
1894
  const storage = window[type];
@@ -1885,7 +1902,7 @@
1885
1902
  }
1886
1903
  var LocalStorage;
1887
1904
  var init_local_storage = __esm({
1888
- "node_modules/@probe.gl/log/dist/utils/local-storage.js"() {
1905
+ "../../node_modules/@probe.gl/log/dist/utils/local-storage.js"() {
1889
1906
  init_defineProperty();
1890
1907
  LocalStorage = class {
1891
1908
  constructor(id, defaultConfig) {
@@ -1921,7 +1938,7 @@
1921
1938
  }
1922
1939
  });
1923
1940
 
1924
- // node_modules/@probe.gl/log/dist/utils/formatters.js
1941
+ // ../../node_modules/@probe.gl/log/dist/utils/formatters.js
1925
1942
  function formatTime(ms) {
1926
1943
  let formatted;
1927
1944
  if (ms < 10) {
@@ -1952,11 +1969,11 @@
1952
1969
  return ["".concat(message, " %c+"), style];
1953
1970
  }
1954
1971
  var init_formatters = __esm({
1955
- "node_modules/@probe.gl/log/dist/utils/formatters.js"() {
1972
+ "../../node_modules/@probe.gl/log/dist/utils/formatters.js"() {
1956
1973
  }
1957
1974
  });
1958
1975
 
1959
- // node_modules/@probe.gl/log/dist/utils/color.js
1976
+ // ../../node_modules/@probe.gl/log/dist/utils/color.js
1960
1977
  function getColor(color) {
1961
1978
  if (typeof color !== "string") {
1962
1979
  return color;
@@ -1979,7 +1996,7 @@
1979
1996
  }
1980
1997
  var COLOR, BACKGROUND_INCREMENT;
1981
1998
  var init_color = __esm({
1982
- "node_modules/@probe.gl/log/dist/utils/color.js"() {
1999
+ "../../node_modules/@probe.gl/log/dist/utils/color.js"() {
1983
2000
  init_dist2();
1984
2001
  (function(COLOR2) {
1985
2002
  COLOR2[COLOR2["BLACK"] = 30] = "BLACK";
@@ -2003,7 +2020,7 @@
2003
2020
  }
2004
2021
  });
2005
2022
 
2006
- // node_modules/@probe.gl/log/dist/utils/autobind.js
2023
+ // ../../node_modules/@probe.gl/log/dist/utils/autobind.js
2007
2024
  function autobind(obj) {
2008
2025
  let predefined = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ["constructor"];
2009
2026
  const proto = Object.getPrototypeOf(obj);
@@ -2019,30 +2036,30 @@
2019
2036
  }
2020
2037
  }
2021
2038
  var init_autobind = __esm({
2022
- "node_modules/@probe.gl/log/dist/utils/autobind.js"() {
2039
+ "../../node_modules/@probe.gl/log/dist/utils/autobind.js"() {
2023
2040
  }
2024
2041
  });
2025
2042
 
2026
- // node_modules/@probe.gl/log/dist/utils/assert.js
2043
+ // ../../node_modules/@probe.gl/log/dist/utils/assert.js
2027
2044
  function assert3(condition, message) {
2028
2045
  if (!condition) {
2029
2046
  throw new Error(message || "Assertion failed");
2030
2047
  }
2031
2048
  }
2032
2049
  var init_assert3 = __esm({
2033
- "node_modules/@probe.gl/log/dist/utils/assert.js"() {
2050
+ "../../node_modules/@probe.gl/log/dist/utils/assert.js"() {
2034
2051
  }
2035
2052
  });
2036
2053
 
2037
- // node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js
2054
+ // ../../node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js
2038
2055
  function getHiResTimestamp2() {
2039
2056
  let timestamp;
2040
- if (isBrowser3() && window2.performance) {
2057
+ if (isBrowser3() && window_3.performance) {
2041
2058
  var _window$performance, _window$performance$n;
2042
- timestamp = window2 === null || window2 === void 0 ? void 0 : (_window$performance = window2.performance) === null || _window$performance === void 0 ? void 0 : (_window$performance$n = _window$performance.now) === null || _window$performance$n === void 0 ? void 0 : _window$performance$n.call(_window$performance);
2043
- } else if ("hrtime" in process2) {
2059
+ timestamp = window_3 === null || window_3 === void 0 ? void 0 : (_window$performance = window_3.performance) === null || _window$performance === void 0 ? void 0 : (_window$performance$n = _window$performance.now) === null || _window$performance$n === void 0 ? void 0 : _window$performance$n.call(_window$performance);
2060
+ } else if ("hrtime" in process_) {
2044
2061
  var _process$hrtime;
2045
- const timeParts = process2 === null || process2 === void 0 ? void 0 : (_process$hrtime = process2.hrtime) === null || _process$hrtime === void 0 ? void 0 : _process$hrtime.call(process2);
2062
+ const timeParts = process_ === null || process_ === void 0 ? void 0 : (_process$hrtime = process_.hrtime) === null || _process$hrtime === void 0 ? void 0 : _process$hrtime.call(process_);
2046
2063
  timestamp = timeParts[0] * 1e3 + timeParts[1] / 1e6;
2047
2064
  } else {
2048
2065
  timestamp = Date.now();
@@ -2050,12 +2067,12 @@
2050
2067
  return timestamp;
2051
2068
  }
2052
2069
  var init_hi_res_timestamp2 = __esm({
2053
- "node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js"() {
2070
+ "../../node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js"() {
2054
2071
  init_dist2();
2055
2072
  }
2056
2073
  });
2057
2074
 
2058
- // node_modules/@probe.gl/log/dist/log.js
2075
+ // ../../node_modules/@probe.gl/log/dist/log.js
2059
2076
  function noop() {
2060
2077
  }
2061
2078
  function normalizeLogLevel(logLevel) {
@@ -2162,7 +2179,7 @@
2162
2179
  }
2163
2180
  var originalConsole, DEFAULT_LOG_CONFIGURATION, cache, ONCE, Log;
2164
2181
  var init_log = __esm({
2165
- "node_modules/@probe.gl/log/dist/log.js"() {
2182
+ "../../node_modules/@probe.gl/log/dist/log.js"() {
2166
2183
  init_defineProperty();
2167
2184
  init_dist2();
2168
2185
  init_local_storage();
@@ -2401,10 +2418,10 @@
2401
2418
  }
2402
2419
  });
2403
2420
 
2404
- // node_modules/@probe.gl/log/dist/index.js
2421
+ // ../../node_modules/@probe.gl/log/dist/index.js
2405
2422
  var dist_default;
2406
2423
  var init_dist3 = __esm({
2407
- "node_modules/@probe.gl/log/dist/index.js"() {
2424
+ "../../node_modules/@probe.gl/log/dist/index.js"() {
2408
2425
  init_log();
2409
2426
  init_log();
2410
2427
  dist_default = new Log({
@@ -2733,8 +2750,9 @@
2733
2750
  return loader;
2734
2751
  }
2735
2752
  function selectLoaderInternal(data, loaders, options, context) {
2736
- const { url, type } = getResourceUrlAndType(data);
2737
- const testUrl = url || context?.url;
2753
+ const url = getResourceUrl(data);
2754
+ const type = getResourceMIMEType(data);
2755
+ const testUrl = stripQueryString(url) || context?.url;
2738
2756
  let loader = null;
2739
2757
  let reason = "";
2740
2758
  if (options?.mimeType) {
@@ -2763,7 +2781,8 @@
2763
2781
  return true;
2764
2782
  }
2765
2783
  function getNoValidLoaderMessage(data) {
2766
- const { url, type } = getResourceUrlAndType(data);
2784
+ const url = getResourceUrl(data);
2785
+ const type = getResourceMIMEType(data);
2767
2786
  let message = "No valid loader found (";
2768
2787
  message += url ? `${path_exports.filename(url)}, ` : "no url provided, ";
2769
2788
  message += `MIME type: ${type ? `"${type}"` : "not provided"}, `;
@@ -2882,6 +2901,7 @@
2882
2901
  init_resource_utils();
2883
2902
  init_register_loaders();
2884
2903
  init_is_type();
2904
+ init_url_utils();
2885
2905
  EXT_PATTERN = /\.([^.]+)$/;
2886
2906
  }
2887
2907
  });
@@ -3131,18 +3151,25 @@
3131
3151
  });
3132
3152
 
3133
3153
  // src/lib/loader-utils/loader-context.ts
3134
- function getLoaderContext(context, options, previousContext = null) {
3135
- if (previousContext) {
3136
- return previousContext;
3154
+ function getLoaderContext(context, options, parentContext) {
3155
+ if (parentContext) {
3156
+ return parentContext;
3137
3157
  }
3138
- const resolvedContext = {
3158
+ const newContext = {
3139
3159
  fetch: getFetchFunction(options, context),
3140
3160
  ...context
3141
3161
  };
3142
- if (!Array.isArray(resolvedContext.loaders)) {
3143
- resolvedContext.loaders = null;
3162
+ if (newContext.url) {
3163
+ const baseUrl = stripQueryString(newContext.url);
3164
+ newContext.baseUrl = baseUrl;
3165
+ newContext.queryString = extractQueryString(newContext.url);
3166
+ newContext.filename = path_exports.filename(baseUrl);
3167
+ newContext.baseUrl = path_exports.dirname(baseUrl);
3168
+ }
3169
+ if (!Array.isArray(newContext.loaders)) {
3170
+ newContext.loaders = null;
3144
3171
  }
3145
- return resolvedContext;
3172
+ return newContext;
3146
3173
  }
3147
3174
  function getLoadersFromContext(loaders, context) {
3148
3175
  if (!context && loaders && !Array.isArray(loaders)) {
@@ -3161,6 +3188,8 @@
3161
3188
  var init_loader_context = __esm({
3162
3189
  "src/lib/loader-utils/loader-context.ts"() {
3163
3190
  init_get_fetch_function();
3191
+ init_url_utils();
3192
+ init_src2();
3164
3193
  }
3165
3194
  });
3166
3195
 
@@ -3174,7 +3203,7 @@
3174
3203
  }
3175
3204
  data = await data;
3176
3205
  options = options || {};
3177
- const { url } = getResourceUrlAndType(data);
3206
+ const url = getResourceUrl(data);
3178
3207
  const typedLoaders = loaders;
3179
3208
  const candidateLoaders = getLoadersFromContext(typedLoaders, context);
3180
3209
  const loader = await selectLoader(data, candidateLoaders, options);
@@ -3182,7 +3211,7 @@
3182
3211
  return null;
3183
3212
  }
3184
3213
  options = normalizeOptions(options, loader, candidateLoaders, url);
3185
- context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context);
3214
+ context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context || null);
3186
3215
  return await parseWithLoader(loader, data, options, context);
3187
3216
  }
3188
3217
  async function parseWithLoader(loader, data, options, context) {
@@ -3240,11 +3269,11 @@
3240
3269
  return null;
3241
3270
  }
3242
3271
  options = normalizeOptions(options, loader, candidateLoaders);
3243
- const { url } = getResourceUrlAndType(data);
3272
+ const url = getResourceUrl(data);
3244
3273
  const parse2 = () => {
3245
- throw new Error("parseSync called parse");
3274
+ throw new Error("parseSync called parse (which is async");
3246
3275
  };
3247
- context = getLoaderContext({ url, parseSync, parse: parse2, loaders }, options);
3276
+ context = getLoaderContext({ url, parseSync, parse: parse2, loaders }, options, context || null);
3248
3277
  return parseWithLoaderSync(loader, data, options, context);
3249
3278
  }
3250
3279
  function parseWithLoaderSync(loader, data, options, context) {
@@ -3272,6 +3301,7 @@
3272
3301
  // src/lib/api/parse-in-batches.ts
3273
3302
  async function parseInBatches(data, loaders, options, context) {
3274
3303
  assert(!context || typeof context === "object");
3304
+ const loaderArray = Array.isArray(loaders) ? loaders : void 0;
3275
3305
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
3276
3306
  context = void 0;
3277
3307
  options = loaders;
@@ -3279,13 +3309,13 @@
3279
3309
  }
3280
3310
  data = await data;
3281
3311
  options = options || {};
3282
- const { url } = getResourceUrlAndType(data);
3312
+ const url = getResourceUrl(data);
3283
3313
  const loader = await selectLoader(data, loaders, options);
3284
3314
  if (!loader) {
3285
3315
  return null;
3286
3316
  }
3287
- options = normalizeOptions(options, loader, loaders, url);
3288
- context = getLoaderContext({ url, parseInBatches, parse, loaders }, options, context);
3317
+ options = normalizeOptions(options, loader, loaderArray, url);
3318
+ context = getLoaderContext({ url, parseInBatches, parse, loaders: loaderArray }, options, context || null);
3289
3319
  return await parseWithLoaderInBatches(loader, data, options, context);
3290
3320
  }
3291
3321
  async function parseWithLoaderInBatches(loader, data, options, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"timed-batch-iterator.js","names":["timedBatchIterator","_x","_x2","_timedBatchIterator","apply","arguments","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","batchIterator","timeout","start","batches","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee$","_context","prev","next","Date","now","_asyncIterator","_awaitAsyncGenerator2","sent","done","value","push","t0","return","finish","stop"],"sources":["../../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"sourcesContent":["/**\n * \"Debounces\" batches and returns them in groups\n */\nexport async function* timedBatchIterator<Batch>(batchIterator: AsyncIterable<Batch>, timeout) {\n let start = Date.now();\n let batches: Batch[] = [];\n for await (const batch of batchIterator) {\n batches.push(batch);\n if (Date.now() - start > timeout) {\n yield batches;\n start = Date.now();\n batches = [];\n }\n }\n\n if (batches) {\n yield batches;\n }\n}\n"],"mappings":";;;;;;;;;;;;SAGuBA,kBAAkBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,oBAAA;EAAAA,mBAAA,OAAAG,oBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAlC,SAAAC,QAA0CC,aAAmC,EAAEC,OAAO;IAAA,IAAAC,KAAA,EAAAC,OAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,KAAA;IAAA,OAAAZ,YAAA,CAAAD,OAAA,CAAAc,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACvFZ,KAAK,GAAGa,IAAI,CAACC,GAAG,EAAE;UAClBb,OAAgB,GAAG,EAAE;UAAAC,yBAAA;UAAAC,iBAAA;UAAAO,QAAA,CAAAC,IAAA;UAAAN,SAAA,GAAAU,cAAA,CACCjB,aAAa;QAAA;UAAAY,QAAA,CAAAE,IAAA;UAAA,WAAAI,qBAAA,CAAAtB,OAAA,EAAAW,SAAA,CAAAO,IAAA;QAAA;UAAA,MAAAV,yBAAA,KAAAI,KAAA,GAAAI,QAAA,CAAAO,IAAA,EAAAC,IAAA;YAAAR,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAtBL,KAAK,GAAAD,KAAA,CAAAa,KAAA;UACpBlB,OAAO,CAACmB,IAAI,CAACb,KAAK,CAAC;UAAC,MAChBM,IAAI,CAACC,GAAG,EAAE,GAAGd,KAAK,GAAGD,OAAO;YAAAW,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAC9B,OAAMX,OAAO;QAAA;UACbD,KAAK,GAAGa,IAAI,CAACC,GAAG,EAAE;UAClBb,OAAO,GAAG,EAAE;QAAC;UAAAC,yBAAA;UAAAQ,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAW,EAAA,GAAAX,QAAA;UAAAP,iBAAA;UAAAC,cAAA,GAAAM,QAAA,CAAAW,EAAA;QAAA;UAAAX,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAC,IAAA;UAAA,MAAAT,yBAAA,IAAAG,SAAA,CAAAiB,MAAA;YAAAZ,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,WAAAI,qBAAA,CAAAtB,OAAA,EAAAW,SAAA,CAAAiB,MAAA;QAAA;UAAAZ,QAAA,CAAAC,IAAA;UAAA,KAAAR,iBAAA;YAAAO,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MAAAR,cAAA;QAAA;UAAA,OAAAM,QAAA,CAAAa,MAAA;QAAA;UAAA,OAAAb,QAAA,CAAAa,MAAA;QAAA;UAAA,KAIbtB,OAAO;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UACT,OAAMX,OAAO;QAAA;QAAA;UAAA,OAAAS,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAA3B,OAAA;EAAA,CAEhB;EAAA,OAAAP,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"timed-batch-iterator.js","names":["timedBatchIterator","_x","_x2","_timedBatchIterator","apply","arguments","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","batchIterator","timeout","start","batches","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","wrap","_callee$","_context","prev","next","Date","now","_asyncIterator","_awaitAsyncGenerator2","sent","done","value","push","t0","return","finish","stop"],"sources":["../../../../src/iterators/batch-iterators/timed-batch-iterator.ts"],"sourcesContent":["/**\n * \"Debounces\" batches and returns them in groups\n */\nexport async function* timedBatchIterator<Batch>(batchIterator: AsyncIterable<Batch>, timeout) {\n let start = Date.now();\n let batches: Batch[] = [];\n for await (const batch of batchIterator) {\n batches.push(batch);\n if (Date.now() - start > timeout) {\n yield batches;\n start = Date.now();\n batches = [];\n }\n }\n\n if (batches) {\n yield batches;\n }\n}\n"],"mappings":";;;;;;;;;;;;SAGuBA,kBAAkBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,oBAAA;EAAAA,mBAAA,OAAAG,oBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAlC,SAAAC,QAA0CC,aAAmC,EAAEC,OAAO;IAAA,IAAAC,KAAA,EAAAC,OAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,KAAA;IAAA,OAAAZ,YAAA,CAAAD,OAAA,CAAAc,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACvFZ,KAAK,GAAGa,IAAI,CAACC,GAAG,CAAC,CAAC;UAClBb,OAAgB,GAAG,EAAE;UAAAC,yBAAA;UAAAC,iBAAA;UAAAO,QAAA,CAAAC,IAAA;UAAAN,SAAA,GAAAU,cAAA,CACCjB,aAAa;QAAA;UAAAY,QAAA,CAAAE,IAAA;UAAA,WAAAI,qBAAA,CAAAtB,OAAA,EAAAW,SAAA,CAAAO,IAAA;QAAA;UAAA,MAAAV,yBAAA,KAAAI,KAAA,GAAAI,QAAA,CAAAO,IAAA,EAAAC,IAAA;YAAAR,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAtBL,KAAK,GAAAD,KAAA,CAAAa,KAAA;UACpBlB,OAAO,CAACmB,IAAI,CAACb,KAAK,CAAC;UAAC,MAChBM,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGd,KAAK,GAAGD,OAAO;YAAAW,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAC9B,OAAMX,OAAO;QAAA;UACbD,KAAK,GAAGa,IAAI,CAACC,GAAG,CAAC,CAAC;UAClBb,OAAO,GAAG,EAAE;QAAC;UAAAC,yBAAA;UAAAQ,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAW,EAAA,GAAAX,QAAA;UAAAP,iBAAA;UAAAC,cAAA,GAAAM,QAAA,CAAAW,EAAA;QAAA;UAAAX,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAC,IAAA;UAAA,MAAAT,yBAAA,IAAAG,SAAA,CAAAiB,MAAA;YAAAZ,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,WAAAI,qBAAA,CAAAtB,OAAA,EAAAW,SAAA,CAAAiB,MAAA;QAAA;UAAAZ,QAAA,CAAAC,IAAA;UAAA,KAAAR,iBAAA;YAAAO,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MAAAR,cAAA;QAAA;UAAA,OAAAM,QAAA,CAAAa,MAAA;QAAA;UAAA,OAAAb,QAAA,CAAAa,MAAA;QAAA;UAAA,KAIbtB,OAAO;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UACT,OAAMX,OAAO;QAAA;QAAA;UAAA,OAAAS,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAA3B,OAAA;EAAA,CAEhB;EAAA,OAAAP,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-blob-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeBlobIterator","_x","_x2","_makeBlobIterator","apply","arguments","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","blob","options","chunkSize","offset","end","chunk","wrap","_callee$","_context","prev","next","size","_awaitAsyncGenerator2","slice","arrayBuffer","sent","stop"],"sources":["../../../../src/iterators/make-iterator/make-blob-iterator.ts"],"sourcesContent":["import type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 1024 * 1024; // 1MB — biggest value that keeps UI responsive\n\n/**\n * Returns an iterator that breaks a big Blob into chunks and yields them one-by-one\n * @param blob Blob or File object\n * @param options\n * @param options.chunkSize\n */\nexport async function* makeBlobIterator(\n blob: Blob,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n while (offset < blob.size) {\n const end = offset + chunkSize;\n\n const chunk = await blob.slice(offset, end).arrayBuffer();\n\n offset = end;\n yield chunk;\n }\n}\n"],"mappings":";;;;;;;;;;AAEA,IAAMA,kBAAkB,GAAG,IAAI,GAAG,IAAI;AAAC,SAQhBC,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,oBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAhC,SAAAC,QACLC,IAAU,EACVC,OAAyB;IAAA,IAAAC,SAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,KAAA;IAAA,OAAAR,YAAA,CAAAD,OAAA,CAAAU,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEnBR,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAId,kBAAkB;UAEtDe,MAAM,GAAG,CAAC;QAAA;UAAA,MACPA,MAAM,GAAGH,IAAI,CAACW,IAAI;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UACjBN,GAAG,GAAGD,MAAM,GAAGD,SAAS;UAAAM,QAAA,CAAAE,IAAA;UAAA,WAAAE,qBAAA,CAAAhB,OAAA,EAEVI,IAAI,CAACa,KAAK,CAACV,MAAM,EAAEC,GAAG,CAAC,CAACU,WAAW,EAAE;QAAA;UAAnDT,KAAK,GAAAG,QAAA,CAAAO,IAAA;UAEXZ,MAAM,GAAGC,GAAG;UAACI,QAAA,CAAAE,IAAA;UACb,OAAML,KAAK;QAAA;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAF,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CAEd;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
1
+ {"version":3,"file":"make-blob-iterator.js","names":["DEFAULT_CHUNK_SIZE","makeBlobIterator","_x","_x2","_makeBlobIterator","apply","arguments","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","blob","options","chunkSize","offset","end","chunk","wrap","_callee$","_context","prev","next","size","_awaitAsyncGenerator2","slice","arrayBuffer","sent","stop"],"sources":["../../../../src/iterators/make-iterator/make-blob-iterator.ts"],"sourcesContent":["import type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 1024 * 1024; // 1MB — biggest value that keeps UI responsive\n\n/**\n * Returns an iterator that breaks a big Blob into chunks and yields them one-by-one\n * @param blob Blob or File object\n * @param options\n * @param options.chunkSize\n */\nexport async function* makeBlobIterator(\n blob: Blob,\n options?: IteratorOptions\n): AsyncIterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n while (offset < blob.size) {\n const end = offset + chunkSize;\n\n const chunk = await blob.slice(offset, end).arrayBuffer();\n\n offset = end;\n yield chunk;\n }\n}\n"],"mappings":";;;;;;;;;;AAEA,IAAMA,kBAAkB,GAAG,IAAI,GAAG,IAAI;AAAC,SAQhBC,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,oBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAhC,SAAAC,QACLC,IAAU,EACVC,OAAyB;IAAA,IAAAC,SAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,KAAA;IAAA,OAAAR,YAAA,CAAAD,OAAA,CAAAU,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEnBR,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAId,kBAAkB;UAEtDe,MAAM,GAAG,CAAC;QAAA;UAAA,MACPA,MAAM,GAAGH,IAAI,CAACW,IAAI;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UACjBN,GAAG,GAAGD,MAAM,GAAGD,SAAS;UAAAM,QAAA,CAAAE,IAAA;UAAA,WAAAE,qBAAA,CAAAhB,OAAA,EAEVI,IAAI,CAACa,KAAK,CAACV,MAAM,EAAEC,GAAG,CAAC,CAACU,WAAW,CAAC,CAAC;QAAA;UAAnDT,KAAK,GAAAG,QAAA,CAAAO,IAAA;UAEXZ,MAAM,GAAGC,GAAG;UAACI,QAAA,CAAAE,IAAA;UACb,OAAML,KAAK;QAAA;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAF,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CAEd;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.js","names":["_loaderUtils","require","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","makeStreamIterator","stream","options","isBrowser","makeBrowserStreamIterator","makeNodeStreamIterator","_x","_x2","_makeBrowserStreamIterator","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","reader","nextBatchPromise","currentBatchPromise","_yield$_awaitAsyncGen","wrap","_callee$","_context","prev","getReader","read","_streamReadAhead","_awaitAsyncGenerator2","sent","abrupt","toArrayBuffer","t0","releaseLock","stop","_x3","_x4","_makeNodeStreamIterator","_callee2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_callee2$","_context2","finish"],"sources":["../../../../src/iterators/make-iterator/make-stream-iterator.ts"],"sourcesContent":["import type {Readable} from 'stream';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\n\nexport type StreamIteratorOptions = {\n _streamReadAhead?: boolean;\n};\n\n/**\n * Returns an async iterable that reads from a stream (works in both Node.js and browsers)\n * @param stream stream to iterator over\n */\nexport function makeStreamIterator(\n stream: ReadableStream | Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n return isBrowser\n ? makeBrowserStreamIterator(stream as ReadableStream, options)\n : makeNodeStreamIterator(stream as Readable, options);\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nasync function* makeBrowserStreamIterator(\n stream: ReadableStream,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // WhatWG: stream is supposed to have a `getIterator` method\n // if (typeof stream.getIterator === 'function') {\n // return stream.getIterator();\n // }\n // if (typeof stream[Symbol.asyncIterator] === 'function') {\n // return makeToArrayBufferIterator(stream);\n // }\n\n // In the browser, we first need to get a lock on the stream\n const reader = stream.getReader();\n\n let nextBatchPromise: Promise<{done?: boolean; value?: Uint8Array}> | undefined;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const currentBatchPromise = nextBatchPromise || reader.read();\n // Issue a read for an additional batch, while we await the next batch\n // Idea is to make fetching happen in parallel with processing / parsing\n if (options?._streamReadAhead) {\n nextBatchPromise = reader.read();\n }\n // Read from the stream\n // value is a Uint8Array\n const {done, value} = await currentBatchPromise;\n // Exit if we're done\n if (done) {\n return;\n }\n // Else yield the chunk\n yield toArrayBuffer(value);\n }\n } catch (error) {\n // TODO - examples makes it look like this should always be called,\n // but that generates exceptions so only call it if we do not reach the end\n reader.releaseLock();\n }\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @note Requires Node.js >= 10\n */\nasync function* makeNodeStreamIterator(\n stream: Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // Hacky test for node version to ensure we don't call bad polyfills\n // NODE 10+: stream is an asyncIterator\n for await (const chunk of stream) {\n yield toArrayBuffer(chunk); // Coerce each chunk to ArrayBuffer\n }\n}\n/* TODO - remove NODE < 10\n * @see https://github.com/bustle/streaming-iterables, MIT license\n *\n if (typeof stream[Symbol.asyncIterator] === 'function') {\n return;\n }\n\n // TODO - check if is this ever used in Node 10+?\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const data = stream.read();\n if (data !== null) {\n yield toArrayBuffer(data);\n // eslint-disable-next-line no-continue\n continue;\n }\n if (stream._readableState?.ended) {\n return;\n }\n await onceReadable(stream);\n }\n\nasync function onceReadable(stream: Readable): Promise<any> {\n return new Promise((resolve) => {\n stream.once('readable', resolve);\n });\n}\n */\n"],"mappings":"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"}
1
+ {"version":3,"file":"make-stream-iterator.js","names":["_loaderUtils","require","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","makeStreamIterator","stream","options","isBrowser","makeBrowserStreamIterator","makeNodeStreamIterator","_x","_x2","_makeBrowserStreamIterator","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","reader","nextBatchPromise","currentBatchPromise","_yield$_awaitAsyncGen","wrap","_callee$","_context","prev","getReader","read","_streamReadAhead","_awaitAsyncGenerator2","sent","abrupt","toArrayBuffer","t0","releaseLock","stop","_x3","_x4","_makeNodeStreamIterator","_callee2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","_callee2$","_context2","finish"],"sources":["../../../../src/iterators/make-iterator/make-stream-iterator.ts"],"sourcesContent":["import type {Readable} from 'stream';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\n\nexport type StreamIteratorOptions = {\n _streamReadAhead?: boolean;\n};\n\n/**\n * Returns an async iterable that reads from a stream (works in both Node.js and browsers)\n * @param stream stream to iterator over\n */\nexport function makeStreamIterator(\n stream: ReadableStream | Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n return isBrowser\n ? makeBrowserStreamIterator(stream as ReadableStream, options)\n : makeNodeStreamIterator(stream as Readable, options);\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nasync function* makeBrowserStreamIterator(\n stream: ReadableStream,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // WhatWG: stream is supposed to have a `getIterator` method\n // if (typeof stream.getIterator === 'function') {\n // return stream.getIterator();\n // }\n // if (typeof stream[Symbol.asyncIterator] === 'function') {\n // return makeToArrayBufferIterator(stream);\n // }\n\n // In the browser, we first need to get a lock on the stream\n const reader = stream.getReader();\n\n let nextBatchPromise: Promise<{done?: boolean; value?: Uint8Array}> | undefined;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const currentBatchPromise = nextBatchPromise || reader.read();\n // Issue a read for an additional batch, while we await the next batch\n // Idea is to make fetching happen in parallel with processing / parsing\n if (options?._streamReadAhead) {\n nextBatchPromise = reader.read();\n }\n // Read from the stream\n // value is a Uint8Array\n const {done, value} = await currentBatchPromise;\n // Exit if we're done\n if (done) {\n return;\n }\n // Else yield the chunk\n yield toArrayBuffer(value);\n }\n } catch (error) {\n // TODO - examples makes it look like this should always be called,\n // but that generates exceptions so only call it if we do not reach the end\n reader.releaseLock();\n }\n}\n\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @note Requires Node.js >= 10\n */\nasync function* makeNodeStreamIterator(\n stream: Readable,\n options?: StreamIteratorOptions\n): AsyncIterable<ArrayBuffer> {\n // Hacky test for node version to ensure we don't call bad polyfills\n // NODE 10+: stream is an asyncIterator\n for await (const chunk of stream) {\n yield toArrayBuffer(chunk); // Coerce each chunk to ArrayBuffer\n }\n}\n/* TODO - remove NODE < 10\n * @see https://github.com/bustle/streaming-iterables, MIT license\n *\n if (typeof stream[Symbol.asyncIterator] === 'function') {\n return;\n }\n\n // TODO - check if is this ever used in Node 10+?\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const data = stream.read();\n if (data !== null) {\n yield toArrayBuffer(data);\n // eslint-disable-next-line no-continue\n continue;\n }\n if (stream._readableState?.ended) {\n return;\n }\n await onceReadable(stream);\n }\n\nasync function onceReadable(stream: Readable): Promise<any> {\n return new Promise((resolve) => {\n stream.once('readable', resolve);\n });\n}\n */\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-string-iterator.js","names":["makeStringIterator","DEFAULT_CHUNK_SIZE","string","options","chunkSize","offset","textEncoder","chunkLength","chunk","_regenerator","default","wrap","makeStringIterator$","_context","prev","next","TextEncoder","length","Math","min","slice","encode","stop","_marked"],"sources":["../../../../src/iterators/make-iterator/make-string-iterator.ts"],"sourcesContent":["import type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big string into chunks and yields them one-by-one as ArrayBuffers\n * @param blob string to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeStringIterator(\n string: string,\n options?: IteratorOptions\n): Iterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n const textEncoder = new TextEncoder();\n while (offset < string.length) {\n // Create a chunk of the right size\n const chunkLength = Math.min(string.length - offset, chunkSize);\n const chunk = string.slice(offset, offset + chunkLength);\n offset += chunkLength;\n\n // yield an ArrayBuffer chunk\n yield textEncoder.encode(chunk);\n }\n}\n"],"mappings":";;;;;;;;wCAUiBA,kBAAkB;AARnC,IAAMC,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQ9B,SAAUD,kBAAkBA,CACjCE,MAAc,EACdC,OAAyB;EAAA,IAAAC,SAAA,EAAAC,MAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,KAAA;EAAA,OAAAC,YAAA,CAAAC,OAAA,CAAAC,IAAA,UAAAC,oBAAAC,QAAA;IAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;MAAA;QAEnBX,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIH,kBAAkB;QAEtDI,MAAM,GAAG,CAAC;QACRC,WAAW,GAAG,IAAIU,WAAW,EAAE;MAAA;QAAA,MAC9BX,MAAM,GAAGH,MAAM,CAACe,MAAM;UAAAJ,QAAA,CAAAE,IAAA;UAAA;QAAA;QAErBR,WAAW,GAAGW,IAAI,CAACC,GAAG,CAACjB,MAAM,CAACe,MAAM,GAAGZ,MAAM,EAAED,SAAS,CAAC;QACzDI,KAAK,GAAGN,MAAM,CAACkB,KAAK,CAACf,MAAM,EAAEA,MAAM,GAAGE,WAAW,CAAC;QACxDF,MAAM,IAAIE,WAAW;QAACM,QAAA,CAAAE,IAAA;QAGtB,OAAMT,WAAW,CAACe,MAAM,CAACb,KAAK,CAAC;MAAA;QAAAK,QAAA,CAAAE,IAAA;QAAA;MAAA;MAAA;QAAA,OAAAF,QAAA,CAAAS,IAAA;IAAA;EAAA,GAAAC,OAAA;AAAA"}
1
+ {"version":3,"file":"make-string-iterator.js","names":["makeStringIterator","DEFAULT_CHUNK_SIZE","string","options","chunkSize","offset","textEncoder","chunkLength","chunk","_regenerator","default","wrap","makeStringIterator$","_context","prev","next","TextEncoder","length","Math","min","slice","encode","stop","_marked"],"sources":["../../../../src/iterators/make-iterator/make-string-iterator.ts"],"sourcesContent":["import type {IteratorOptions} from './make-iterator';\n\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n\n/**\n * Returns an iterator that breaks a big string into chunks and yields them one-by-one as ArrayBuffers\n * @param blob string to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeStringIterator(\n string: string,\n options?: IteratorOptions\n): Iterable<ArrayBuffer> {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n\n let offset = 0;\n const textEncoder = new TextEncoder();\n while (offset < string.length) {\n // Create a chunk of the right size\n const chunkLength = Math.min(string.length - offset, chunkSize);\n const chunk = string.slice(offset, offset + chunkLength);\n offset += chunkLength;\n\n // yield an ArrayBuffer chunk\n yield textEncoder.encode(chunk);\n }\n}\n"],"mappings":";;;;;;;;wCAUiBA,kBAAkB;AARnC,IAAMC,kBAAkB,GAAG,GAAG,GAAG,IAAI;AAQ9B,SAAUD,kBAAkBA,CACjCE,MAAc,EACdC,OAAyB;EAAA,IAAAC,SAAA,EAAAC,MAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,KAAA;EAAA,OAAAC,YAAA,CAAAC,OAAA,CAAAC,IAAA,UAAAC,oBAAAC,QAAA;IAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;MAAA;QAEnBX,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,KAAIH,kBAAkB;QAEtDI,MAAM,GAAG,CAAC;QACRC,WAAW,GAAG,IAAIU,WAAW,CAAC,CAAC;MAAA;QAAA,MAC9BX,MAAM,GAAGH,MAAM,CAACe,MAAM;UAAAJ,QAAA,CAAAE,IAAA;UAAA;QAAA;QAErBR,WAAW,GAAGW,IAAI,CAACC,GAAG,CAACjB,MAAM,CAACe,MAAM,GAAGZ,MAAM,EAAED,SAAS,CAAC;QACzDI,KAAK,GAAGN,MAAM,CAACkB,KAAK,CAACf,MAAM,EAAEA,MAAM,GAAGE,WAAW,CAAC;QACxDF,MAAM,IAAIE,WAAW;QAACM,QAAA,CAAAE,IAAA;QAGtB,OAAMT,WAAW,CAACe,MAAM,CAACb,KAAK,CAAC;MAAA;QAAAK,QAAA,CAAAE,IAAA;QAAA;MAAA;MAAA;QAAA,OAAAF,QAAA,CAAAS,IAAA;IAAA;EAAA,GAAAC,OAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-dom-stream.js","names":["makeStream","source","options","iterator","Symbol","asyncIterator","ReadableStream","type","pull","controller","_asyncToGenerator2","default","_regenerator","mark","_callee","_yield$iterator$next","done","value","wrap","_callee$","_context","prev","next","sent","close","enqueue","Uint8Array","t0","error","stop","cancel","_callee2","_iterator$return","_callee2$","_context2","return","call","_objectSpread","highWaterMark","Math","pow"],"sources":["../../../../src/iterators/make-stream/make-dom-stream.ts"],"sourcesContent":["export type MakeStreamOptions = {\n /** Stream allocates an arrayBuffer. Enables use of a default reader. */\n autoAllocateChunkSize?: number;\n /** Total number of chunks in queue before back pressure is applied */\n highWaterMark?: number;\n};\n\n/**\n * Builds a DOM stream from an iterator\n * This stream is currently used in browsers only,\n * but note that Web stream support is present in Node from Node 16\n * https://nodejs.org/api/webstreams.html#webstreams_web_streams_api\n */\nexport function makeStream<ArrayBuffer>(\n source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,\n options?: MakeStreamOptions\n): ReadableStream {\n const iterator = source[Symbol.asyncIterator]\n ? (source as AsyncIterable<ArrayBuffer>)[Symbol.asyncIterator]()\n : (source as Iterable<ArrayBuffer>)[Symbol.iterator]();\n\n return new ReadableStream<Uint8Array>(\n {\n // Create a byte stream (enables `Response(stream).arrayBuffer()`)\n // Only supported on Chrome\n // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController\n type: 'bytes',\n\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n if (done) {\n controller.close();\n } else {\n // TODO - ignores controller.desiredSize\n // @ts-expect-error Unclear why value is not correctly typed\n controller.enqueue(new Uint8Array(value));\n }\n } catch (error) {\n controller.error(error);\n }\n },\n\n async cancel() {\n await iterator?.return?.();\n }\n },\n // options: QueingStrategy<Uint8Array>\n {\n // This is bytes, not chunks\n highWaterMark: 2 ** 24,\n ...options\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;AAaO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAChB,IAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAM,CAACC,aAAa,CAAC,GACxCJ,MAAM,CAAgCG,MAAM,CAACC,aAAa,CAAC,EAAE,GAC7DJ,MAAM,CAA2BG,MAAM,CAACD,QAAQ,CAAC,EAAE;EAExD,OAAO,IAAIG,cAAc,CACvB;IAIEC,IAAI,EAAE,OAAO;IAEPC,IAAI,WAAAA,KAACC,UAAU,EAAE;MAAA,WAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,UAAAC,QAAA;QAAA,IAAAC,oBAAA,EAAAC,IAAA,EAAAC,KAAA;QAAA,OAAAL,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAESnB,QAAQ,CAACmB,IAAI,EAAE;YAAA;cAAAP,oBAAA,GAAAK,QAAA,CAAAG,IAAA;cAApCP,IAAI,GAAAD,oBAAA,CAAJC,IAAI;cAAEC,KAAK,GAAAF,oBAAA,CAALE,KAAK;cAClB,IAAID,IAAI,EAAE;gBACRP,UAAU,CAACe,KAAK,EAAE;cACpB,CAAC,MAAM;gBAGLf,UAAU,CAACgB,OAAO,CAAC,IAAIC,UAAU,CAACT,KAAK,CAAC,CAAC;cAC3C;cAACG,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAO,EAAA,GAAAP,QAAA;cAEDX,UAAU,CAACmB,KAAK,CAAAR,QAAA,CAAAO,EAAA,CAAO;YAAC;YAAA;cAAA,OAAAP,QAAA,CAAAS,IAAA;UAAA;QAAA,GAAAf,OAAA;MAAA;IAE5B,CAAC;IAEKgB,MAAM,WAAAA,OAAA,EAAG;MAAA,WAAApB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,UAAAkB,SAAA;QAAA,IAAAC,gBAAA;QAAA,OAAApB,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAe,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAb,IAAA,GAAAa,SAAA,CAAAZ,IAAA;YAAA;cAAAY,SAAA,CAAAZ,IAAA;cAAA,OACPnB,QAAQ,aAARA,QAAQ,wBAAA6B,gBAAA,GAAR7B,QAAQ,CAAEgC,MAAM,cAAAH,gBAAA,uBAAhBA,gBAAA,CAAAI,IAAA,CAAAjC,QAAQ,CAAY;YAAA;YAAA;cAAA,OAAA+B,SAAA,CAAAL,IAAA;UAAA;QAAA,GAAAE,QAAA;MAAA;IAC5B;EACF,CAAC,EAAAM,aAAA;IAICC,aAAa,EAAAC,IAAA,CAAAC,GAAA,CAAE,CAAC,EAAI,EAAE;EAAA,GACnBtC,OAAO,EAEb;AACH"}
1
+ {"version":3,"file":"make-dom-stream.js","names":["makeStream","source","options","iterator","Symbol","asyncIterator","ReadableStream","type","pull","controller","_asyncToGenerator2","default","_regenerator","mark","_callee","_yield$iterator$next","done","value","wrap","_callee$","_context","prev","next","sent","close","enqueue","Uint8Array","t0","error","stop","cancel","_callee2","_iterator$return","_callee2$","_context2","return","call","_objectSpread","highWaterMark","Math","pow"],"sources":["../../../../src/iterators/make-stream/make-dom-stream.ts"],"sourcesContent":["export type MakeStreamOptions = {\n /** Stream allocates an arrayBuffer. Enables use of a default reader. */\n autoAllocateChunkSize?: number;\n /** Total number of chunks in queue before back pressure is applied */\n highWaterMark?: number;\n};\n\n/**\n * Builds a DOM stream from an iterator\n * This stream is currently used in browsers only,\n * but note that Web stream support is present in Node from Node 16\n * https://nodejs.org/api/webstreams.html#webstreams_web_streams_api\n */\nexport function makeStream<ArrayBuffer>(\n source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,\n options?: MakeStreamOptions\n): ReadableStream {\n const iterator = source[Symbol.asyncIterator]\n ? (source as AsyncIterable<ArrayBuffer>)[Symbol.asyncIterator]()\n : (source as Iterable<ArrayBuffer>)[Symbol.iterator]();\n\n return new ReadableStream<Uint8Array>(\n {\n // Create a byte stream (enables `Response(stream).arrayBuffer()`)\n // Only supported on Chrome\n // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController\n type: 'bytes',\n\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n if (done) {\n controller.close();\n } else {\n // TODO - ignores controller.desiredSize\n // @ts-expect-error Unclear why value is not correctly typed\n controller.enqueue(new Uint8Array(value));\n }\n } catch (error) {\n controller.error(error);\n }\n },\n\n async cancel() {\n await iterator?.return?.();\n }\n },\n // options: QueingStrategy<Uint8Array>\n {\n // This is bytes, not chunks\n highWaterMark: 2 ** 24,\n ...options\n }\n );\n}\n"],"mappings":";;;;;;;;;;;;AAaO,SAASA,UAAUA,CACxBC,MAA0D,EAC1DC,OAA2B,EACX;EAChB,IAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAM,CAACC,aAAa,CAAC,GACxCJ,MAAM,CAAgCG,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC,GAC7DJ,MAAM,CAA2BG,MAAM,CAACD,QAAQ,CAAC,CAAC,CAAC;EAExD,OAAO,IAAIG,cAAc,CACvB;IAIEC,IAAI,EAAE,OAAO;IAEPC,IAAI,WAAAA,KAACC,UAAU,EAAE;MAAA,WAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,UAAAC,QAAA;QAAA,IAAAC,oBAAA,EAAAC,IAAA,EAAAC,KAAA;QAAA,OAAAL,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAESnB,QAAQ,CAACmB,IAAI,CAAC,CAAC;YAAA;cAAAP,oBAAA,GAAAK,QAAA,CAAAG,IAAA;cAApCP,IAAI,GAAAD,oBAAA,CAAJC,IAAI;cAAEC,KAAK,GAAAF,oBAAA,CAALE,KAAK;cAClB,IAAID,IAAI,EAAE;gBACRP,UAAU,CAACe,KAAK,CAAC,CAAC;cACpB,CAAC,MAAM;gBAGLf,UAAU,CAACgB,OAAO,CAAC,IAAIC,UAAU,CAACT,KAAK,CAAC,CAAC;cAC3C;cAACG,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAO,EAAA,GAAAP,QAAA;cAEDX,UAAU,CAACmB,KAAK,CAAAR,QAAA,CAAAO,EAAM,CAAC;YAAC;YAAA;cAAA,OAAAP,QAAA,CAAAS,IAAA;UAAA;QAAA,GAAAf,OAAA;MAAA;IAE5B,CAAC;IAEKgB,MAAM,WAAAA,OAAA,EAAG;MAAA,WAAApB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,UAAAkB,SAAA;QAAA,IAAAC,gBAAA;QAAA,OAAApB,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAe,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAb,IAAA,GAAAa,SAAA,CAAAZ,IAAA;YAAA;cAAAY,SAAA,CAAAZ,IAAA;cAAA,OACPnB,QAAQ,aAARA,QAAQ,wBAAA6B,gBAAA,GAAR7B,QAAQ,CAAEgC,MAAM,cAAAH,gBAAA,uBAAhBA,gBAAA,CAAAI,IAAA,CAAAjC,QAAmB,CAAC;YAAA;YAAA;cAAA,OAAA+B,SAAA,CAAAL,IAAA;UAAA;QAAA,GAAAE,QAAA;MAAA;IAC5B;EACF,CAAC,EAAAM,aAAA;IAICC,aAAa,EAAAC,IAAA,CAAAC,GAAA,CAAE,CAAC,EAAI,EAAE;EAAA,GACnBtC,OAAO,CAEd,CAAC;AACH"}