@deck.gl/carto 8.10.0-alpha.2 → 8.10.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 (296) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cartoRasterTile-worker.js +1084 -0
  3. package/dist/cartoSpatialTile-worker.js +1469 -0
  4. package/dist/cartoVectorTile-worker.js +1727 -0
  5. package/dist/dist.dev.js +2137 -1936
  6. package/dist/es5/api/carto-api-error.js +3 -7
  7. package/dist/es5/api/carto-api-error.js.map +1 -1
  8. package/dist/es5/api/layer-map.js +3 -7
  9. package/dist/es5/api/layer-map.js.map +1 -1
  10. package/dist/es5/api/maps-api-common.js +0 -1
  11. package/dist/es5/api/maps-api-common.js.map +1 -1
  12. package/dist/es5/api/maps-v3-client.js +5 -20
  13. package/dist/es5/api/maps-v3-client.js.map +1 -1
  14. package/dist/es5/index.js +74 -6
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/layers/carto-layer.js +196 -200
  17. package/dist/es5/layers/carto-layer.js.map +1 -1
  18. package/dist/es5/layers/h3-tile-layer.js +57 -79
  19. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  20. package/dist/es5/layers/h3-tileset-2d.js +62 -68
  21. package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
  22. package/dist/es5/layers/point-label-layer.js +160 -165
  23. package/dist/es5/layers/point-label-layer.js.map +1 -1
  24. package/dist/es5/layers/quadbin-layer.js +23 -27
  25. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  26. package/dist/es5/layers/quadbin-tile-layer.js +39 -63
  27. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  28. package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
  29. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
  30. package/dist/es5/layers/raster-layer.js +94 -98
  31. package/dist/es5/layers/raster-layer.js.map +1 -1
  32. package/dist/es5/layers/raster-tile-layer.js +37 -58
  33. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  34. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  35. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  36. package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
  37. package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
  38. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  39. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  40. package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
  41. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  42. package/dist/es5/layers/schema/carto-tile.js +161 -196
  43. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  44. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  45. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  46. package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
  47. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  48. package/dist/es5/layers/utils.js +29 -0
  49. package/dist/es5/layers/utils.js.map +1 -0
  50. package/dist/es5/layers/vector-tile-layer.js +163 -0
  51. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  52. package/dist/es5/sources/base-source.js +100 -0
  53. package/dist/es5/sources/base-source.js.map +1 -0
  54. package/dist/es5/sources/common.js +48 -0
  55. package/dist/es5/sources/common.js.map +1 -0
  56. package/dist/es5/sources/h3-query-source.js +58 -0
  57. package/dist/es5/sources/h3-query-source.js.map +1 -0
  58. package/dist/es5/sources/h3-table-source.js +58 -0
  59. package/dist/es5/sources/h3-table-source.js.map +1 -0
  60. package/dist/es5/sources/h3-tileset-source.js +43 -0
  61. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  62. package/dist/es5/sources/index.js +94 -0
  63. package/dist/es5/sources/index.js.map +1 -0
  64. package/dist/es5/sources/quadbin-query-source.js +58 -0
  65. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  66. package/dist/es5/sources/quadbin-table-source.js +58 -0
  67. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  68. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  69. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  70. package/dist/es5/sources/raster-source.js +43 -0
  71. package/dist/es5/sources/raster-source.js.map +1 -0
  72. package/dist/es5/sources/utils.js +136 -0
  73. package/dist/es5/sources/utils.js.map +1 -0
  74. package/dist/es5/sources/vector-query-source.js +52 -0
  75. package/dist/es5/sources/vector-query-source.js.map +1 -0
  76. package/dist/es5/sources/vector-table-source.js +52 -0
  77. package/dist/es5/sources/vector-table-source.js.map +1 -0
  78. package/dist/es5/sources/vector-tileset-source.js +43 -0
  79. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  80. package/dist/es5/utils.js +5 -0
  81. package/dist/es5/utils.js.map +1 -1
  82. package/dist/es5/workers/cartoRasterTile.js +10 -0
  83. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  84. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  85. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  86. package/dist/es5/workers/cartoVectorTile.js +10 -0
  87. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  88. package/dist/esm/api/carto-api-error.js +8 -13
  89. package/dist/esm/api/carto-api-error.js.map +1 -1
  90. package/dist/esm/api/layer-map.js +7 -11
  91. package/dist/esm/api/layer-map.js.map +1 -1
  92. package/dist/esm/api/maps-api-common.js +3 -4
  93. package/dist/esm/api/maps-api-common.js.map +1 -1
  94. package/dist/esm/api/maps-client.js +7 -7
  95. package/dist/esm/api/maps-client.js.map +1 -1
  96. package/dist/esm/api/maps-v3-client.js +14 -24
  97. package/dist/esm/api/maps-v3-client.js.map +1 -1
  98. package/dist/esm/api/parseMap.js +4 -4
  99. package/dist/esm/api/parseMap.js.map +1 -1
  100. package/dist/esm/config.js +3 -3
  101. package/dist/esm/config.js.map +1 -1
  102. package/dist/esm/index.js +5 -4
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/layers/carto-layer.js +12 -15
  105. package/dist/esm/layers/carto-layer.js.map +1 -1
  106. package/dist/esm/layers/h3-tile-layer.js +24 -43
  107. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  108. package/dist/esm/layers/point-label-layer.js +6 -10
  109. package/dist/esm/layers/point-label-layer.js.map +1 -1
  110. package/dist/esm/layers/quadbin-layer.js +2 -5
  111. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  112. package/dist/esm/layers/quadbin-tile-layer.js +21 -44
  113. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  114. package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
  115. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
  116. package/dist/esm/layers/raster-layer.js +4 -8
  117. package/dist/esm/layers/raster-layer.js.map +1 -1
  118. package/dist/esm/layers/raster-tile-layer.js +21 -39
  119. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  120. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  121. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  122. package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
  123. package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
  124. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  125. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  126. package/dist/esm/layers/schema/carto-tile.js +1 -1
  127. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  128. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  129. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  130. package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
  131. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  132. package/dist/esm/layers/utils.js +14 -0
  133. package/dist/esm/layers/utils.js.map +1 -0
  134. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -18
  135. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  136. package/dist/esm/sources/base-source.js +49 -0
  137. package/dist/esm/sources/base-source.js.map +1 -0
  138. package/dist/esm/sources/common.js +26 -0
  139. package/dist/esm/sources/common.js.map +1 -0
  140. package/dist/esm/sources/h3-query-source.js +32 -0
  141. package/dist/esm/sources/h3-query-source.js.map +1 -0
  142. package/dist/esm/sources/h3-table-source.js +32 -0
  143. package/dist/esm/sources/h3-table-source.js.map +1 -0
  144. package/dist/esm/sources/h3-tileset-source.js +14 -0
  145. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  146. package/dist/esm/sources/index.js +12 -0
  147. package/dist/esm/sources/index.js.map +1 -0
  148. package/dist/esm/sources/quadbin-query-source.js +32 -0
  149. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  150. package/dist/esm/sources/quadbin-table-source.js +32 -0
  151. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  152. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  153. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  154. package/dist/esm/sources/raster-source.js +14 -0
  155. package/dist/esm/sources/raster-source.js.map +1 -0
  156. package/dist/esm/sources/utils.js +69 -0
  157. package/dist/esm/sources/utils.js.map +1 -0
  158. package/dist/esm/sources/vector-query-source.js +25 -0
  159. package/dist/esm/sources/vector-query-source.js.map +1 -0
  160. package/dist/esm/sources/vector-table-source.js +25 -0
  161. package/dist/esm/sources/vector-table-source.js.map +1 -0
  162. package/dist/esm/sources/vector-tileset-source.js +14 -0
  163. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  164. package/dist/esm/style/palette.js +2 -2
  165. package/dist/esm/style/palette.js.map +1 -1
  166. package/dist/esm/style/utils.js +1 -1
  167. package/dist/esm/style/utils.js.map +1 -1
  168. package/dist/esm/utils.js +3 -0
  169. package/dist/esm/utils.js.map +1 -1
  170. package/dist/esm/workers/cartoRasterTile.js +4 -0
  171. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  172. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  173. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  174. package/dist/esm/workers/cartoVectorTile.js +4 -0
  175. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  176. package/dist.min.js +45 -24
  177. package/package.json +11 -9
  178. package/src/api/layer-map.ts +4 -8
  179. package/src/api/maps-api-common.ts +0 -1
  180. package/src/api/maps-v3-client.ts +6 -5
  181. package/src/index.ts +34 -5
  182. package/src/layers/h3-tile-layer.ts +22 -35
  183. package/src/layers/quadbin-tile-layer.ts +19 -33
  184. package/src/layers/raster-tile-layer.ts +22 -26
  185. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  186. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  187. package/src/layers/schema/carto-tile.ts +1 -1
  188. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  189. package/src/layers/utils.ts +11 -0
  190. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  191. package/src/sources/base-source.ts +55 -0
  192. package/src/sources/common.ts +132 -0
  193. package/src/sources/h3-query-source.ts +45 -0
  194. package/src/sources/h3-table-source.ts +46 -0
  195. package/src/sources/h3-tileset-source.ts +16 -0
  196. package/src/sources/index.ts +32 -0
  197. package/src/sources/quadbin-query-source.ts +46 -0
  198. package/src/sources/quadbin-table-source.ts +46 -0
  199. package/src/sources/quadbin-tileset-source.ts +16 -0
  200. package/src/sources/raster-source.ts +16 -0
  201. package/src/sources/utils.ts +63 -0
  202. package/src/sources/vector-query-source.ts +23 -0
  203. package/src/sources/vector-table-source.ts +23 -0
  204. package/src/sources/vector-tileset-source.ts +16 -0
  205. package/src/utils.ts +6 -0
  206. package/src/workers/cartoRasterTile.ts +4 -0
  207. package/src/workers/cartoSpatialTile.ts +4 -0
  208. package/src/workers/cartoVectorTile.ts +4 -0
  209. package/typed/api/layer-map.d.ts +2 -3
  210. package/typed/api/layer-map.d.ts.map +1 -1
  211. package/typed/api/maps-api-common.d.ts +0 -1
  212. package/typed/api/maps-api-common.d.ts.map +1 -1
  213. package/typed/api/maps-v3-client.d.ts +0 -3
  214. package/typed/api/maps-v3-client.d.ts.map +1 -1
  215. package/typed/index.d.ts +6 -4
  216. package/typed/index.d.ts.map +1 -1
  217. package/typed/layers/h3-tile-layer.d.ts +5 -8
  218. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  219. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  220. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  221. package/typed/layers/raster-tile-layer.d.ts +6 -10
  222. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  223. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  224. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  225. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  226. package/typed/layers/utils.d.ts +5 -0
  227. package/typed/layers/utils.d.ts.map +1 -0
  228. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  229. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  230. package/typed/sources/base-source.d.ts +4 -0
  231. package/typed/sources/base-source.d.ts.map +1 -0
  232. package/typed/sources/common.d.ts +116 -0
  233. package/typed/sources/common.d.ts.map +1 -0
  234. package/typed/sources/h3-query-source.d.ts +5 -0
  235. package/typed/sources/h3-query-source.d.ts.map +1 -0
  236. package/typed/sources/h3-table-source.d.ts +5 -0
  237. package/typed/sources/h3-table-source.d.ts.map +1 -0
  238. package/typed/sources/h3-tileset-source.d.ts +5 -0
  239. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  240. package/typed/sources/index.d.ts +23 -0
  241. package/typed/sources/index.d.ts.map +1 -0
  242. package/typed/sources/quadbin-query-source.d.ts +5 -0
  243. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  244. package/typed/sources/quadbin-table-source.d.ts +5 -0
  245. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  246. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  247. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  248. package/typed/sources/raster-source.d.ts +5 -0
  249. package/typed/sources/raster-source.d.ts.map +1 -0
  250. package/typed/sources/utils.d.ts +15 -0
  251. package/typed/sources/utils.d.ts.map +1 -0
  252. package/typed/sources/vector-query-source.d.ts +5 -0
  253. package/typed/sources/vector-query-source.d.ts.map +1 -0
  254. package/typed/sources/vector-table-source.d.ts +5 -0
  255. package/typed/sources/vector-table-source.d.ts.map +1 -0
  256. package/typed/sources/vector-tileset-source.d.ts +5 -0
  257. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  258. package/typed/utils.d.ts +1 -0
  259. package/typed/utils.d.ts.map +1 -1
  260. package/typed/workers/cartoRasterTile.d.ts +2 -0
  261. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  262. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  263. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  264. package/typed/workers/cartoVectorTile.d.ts +2 -0
  265. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  266. package/dist/es5/layers/carto-tile-layer.js +0 -145
  267. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  268. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  269. package/typed/api/index.js +0 -3
  270. package/typed/api/layer-map.js +0 -264
  271. package/typed/api/maps-api-common.js +0 -50
  272. package/typed/api/maps-client.js +0 -125
  273. package/typed/api/maps-v3-client.js +0 -304
  274. package/typed/api/parseMap.js +0 -178
  275. package/typed/basemap.js +0 -9
  276. package/typed/config.js +0 -35
  277. package/typed/index.js +0 -10
  278. package/typed/layers/carto-layer.js +0 -173
  279. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  280. package/typed/layers/carto-tile-layer.js +0 -105
  281. package/typed/layers/h3-tile-layer.js +0 -47
  282. package/typed/layers/h3-tileset-2d.js +0 -85
  283. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  284. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  285. package/typed/layers/quadkey-tile-layer.js +0 -42
  286. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  287. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  288. package/typed/layers/quadkey-tileset-2d.js +0 -36
  289. package/typed/layers/schema/carto-tile.js +0 -161
  290. package/typed/layers/spatial-index-tile-layer.js +0 -40
  291. package/typed/style/color-bins-style.js +0 -12
  292. package/typed/style/color-categories-style.js +0 -16
  293. package/typed/style/color-continuous-style.js +0 -12
  294. package/typed/style/palette.js +0 -62
  295. package/typed/style/utils.js +0 -15
  296. package/typed/utils.js +0 -4
@@ -0,0 +1,1727 @@
1
+ "use strict";
2
+ (() => {
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __commonJS = (cb, mod) => function __require() {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // ../../node_modules/earcut/src/earcut.js
26
+ var require_earcut = __commonJS({
27
+ "../../node_modules/earcut/src/earcut.js"(exports, module) {
28
+ "use strict";
29
+ module.exports = earcut2;
30
+ module.exports.default = earcut2;
31
+ function earcut2(data, holeIndices, dim) {
32
+ dim = dim || 2;
33
+ var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];
34
+ if (!outerNode || outerNode.next === outerNode.prev)
35
+ return triangles;
36
+ var minX, minY, maxX, maxY, x, y, invSize;
37
+ if (hasHoles)
38
+ outerNode = eliminateHoles(data, holeIndices, outerNode, dim);
39
+ if (data.length > 80 * dim) {
40
+ minX = maxX = data[0];
41
+ minY = maxY = data[1];
42
+ for (var i = dim; i < outerLen; i += dim) {
43
+ x = data[i];
44
+ y = data[i + 1];
45
+ if (x < minX)
46
+ minX = x;
47
+ if (y < minY)
48
+ minY = y;
49
+ if (x > maxX)
50
+ maxX = x;
51
+ if (y > maxY)
52
+ maxY = y;
53
+ }
54
+ invSize = Math.max(maxX - minX, maxY - minY);
55
+ invSize = invSize !== 0 ? 1 / invSize : 0;
56
+ }
57
+ earcutLinked(outerNode, triangles, dim, minX, minY, invSize);
58
+ return triangles;
59
+ }
60
+ function linkedList(data, start, end, dim, clockwise) {
61
+ var i, last;
62
+ if (clockwise === signedArea(data, start, end, dim) > 0) {
63
+ for (i = start; i < end; i += dim)
64
+ last = insertNode(i, data[i], data[i + 1], last);
65
+ } else {
66
+ for (i = end - dim; i >= start; i -= dim)
67
+ last = insertNode(i, data[i], data[i + 1], last);
68
+ }
69
+ if (last && equals(last, last.next)) {
70
+ removeNode(last);
71
+ last = last.next;
72
+ }
73
+ return last;
74
+ }
75
+ function filterPoints(start, end) {
76
+ if (!start)
77
+ return start;
78
+ if (!end)
79
+ end = start;
80
+ var p = start, again;
81
+ do {
82
+ again = false;
83
+ if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
84
+ removeNode(p);
85
+ p = end = p.prev;
86
+ if (p === p.next)
87
+ break;
88
+ again = true;
89
+ } else {
90
+ p = p.next;
91
+ }
92
+ } while (again || p !== end);
93
+ return end;
94
+ }
95
+ function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {
96
+ if (!ear)
97
+ return;
98
+ if (!pass && invSize)
99
+ indexCurve(ear, minX, minY, invSize);
100
+ var stop = ear, prev, next;
101
+ while (ear.prev !== ear.next) {
102
+ prev = ear.prev;
103
+ next = ear.next;
104
+ if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {
105
+ triangles.push(prev.i / dim);
106
+ triangles.push(ear.i / dim);
107
+ triangles.push(next.i / dim);
108
+ removeNode(ear);
109
+ ear = next.next;
110
+ stop = next.next;
111
+ continue;
112
+ }
113
+ ear = next;
114
+ if (ear === stop) {
115
+ if (!pass) {
116
+ earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);
117
+ } else if (pass === 1) {
118
+ ear = cureLocalIntersections(filterPoints(ear), triangles, dim);
119
+ earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);
120
+ } else if (pass === 2) {
121
+ splitEarcut(ear, triangles, dim, minX, minY, invSize);
122
+ }
123
+ break;
124
+ }
125
+ }
126
+ }
127
+ function isEar(ear) {
128
+ var a = ear.prev, b = ear, c = ear.next;
129
+ if (area(a, b, c) >= 0)
130
+ return false;
131
+ var p = ear.next.next;
132
+ while (p !== ear.prev) {
133
+ if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
134
+ return false;
135
+ p = p.next;
136
+ }
137
+ return true;
138
+ }
139
+ function isEarHashed(ear, minX, minY, invSize) {
140
+ var a = ear.prev, b = ear, c = ear.next;
141
+ if (area(a, b, c) >= 0)
142
+ return false;
143
+ var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;
144
+ var minZ = zOrder(minTX, minTY, minX, minY, invSize), maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);
145
+ var p = ear.prevZ, n = ear.nextZ;
146
+ while (p && p.z >= minZ && n && n.z <= maxZ) {
147
+ if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
148
+ return false;
149
+ p = p.prevZ;
150
+ if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
151
+ return false;
152
+ n = n.nextZ;
153
+ }
154
+ while (p && p.z >= minZ) {
155
+ if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)
156
+ return false;
157
+ p = p.prevZ;
158
+ }
159
+ while (n && n.z <= maxZ) {
160
+ if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0)
161
+ return false;
162
+ n = n.nextZ;
163
+ }
164
+ return true;
165
+ }
166
+ function cureLocalIntersections(start, triangles, dim) {
167
+ var p = start;
168
+ do {
169
+ var a = p.prev, b = p.next.next;
170
+ if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {
171
+ triangles.push(a.i / dim);
172
+ triangles.push(p.i / dim);
173
+ triangles.push(b.i / dim);
174
+ removeNode(p);
175
+ removeNode(p.next);
176
+ p = start = b;
177
+ }
178
+ p = p.next;
179
+ } while (p !== start);
180
+ return filterPoints(p);
181
+ }
182
+ function splitEarcut(start, triangles, dim, minX, minY, invSize) {
183
+ var a = start;
184
+ do {
185
+ var b = a.next.next;
186
+ while (b !== a.prev) {
187
+ if (a.i !== b.i && isValidDiagonal(a, b)) {
188
+ var c = splitPolygon(a, b);
189
+ a = filterPoints(a, a.next);
190
+ c = filterPoints(c, c.next);
191
+ earcutLinked(a, triangles, dim, minX, minY, invSize);
192
+ earcutLinked(c, triangles, dim, minX, minY, invSize);
193
+ return;
194
+ }
195
+ b = b.next;
196
+ }
197
+ a = a.next;
198
+ } while (a !== start);
199
+ }
200
+ function eliminateHoles(data, holeIndices, outerNode, dim) {
201
+ var queue = [], i, len, start, end, list;
202
+ for (i = 0, len = holeIndices.length; i < len; i++) {
203
+ start = holeIndices[i] * dim;
204
+ end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
205
+ list = linkedList(data, start, end, dim, false);
206
+ if (list === list.next)
207
+ list.steiner = true;
208
+ queue.push(getLeftmost(list));
209
+ }
210
+ queue.sort(compareX);
211
+ for (i = 0; i < queue.length; i++) {
212
+ eliminateHole(queue[i], outerNode);
213
+ outerNode = filterPoints(outerNode, outerNode.next);
214
+ }
215
+ return outerNode;
216
+ }
217
+ function compareX(a, b) {
218
+ return a.x - b.x;
219
+ }
220
+ function eliminateHole(hole, outerNode) {
221
+ outerNode = findHoleBridge(hole, outerNode);
222
+ if (outerNode) {
223
+ var b = splitPolygon(outerNode, hole);
224
+ filterPoints(b, b.next);
225
+ }
226
+ }
227
+ function findHoleBridge(hole, outerNode) {
228
+ var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;
229
+ do {
230
+ if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {
231
+ var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);
232
+ if (x <= hx && x > qx) {
233
+ qx = x;
234
+ if (x === hx) {
235
+ if (hy === p.y)
236
+ return p;
237
+ if (hy === p.next.y)
238
+ return p.next;
239
+ }
240
+ m = p.x < p.next.x ? p : p.next;
241
+ }
242
+ }
243
+ p = p.next;
244
+ } while (p !== outerNode);
245
+ if (!m)
246
+ return null;
247
+ if (hx === qx)
248
+ return m;
249
+ var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;
250
+ p = m;
251
+ do {
252
+ if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {
253
+ tan = Math.abs(hy - p.y) / (hx - p.x);
254
+ if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {
255
+ m = p;
256
+ tanMin = tan;
257
+ }
258
+ }
259
+ p = p.next;
260
+ } while (p !== stop);
261
+ return m;
262
+ }
263
+ function sectorContainsSector(m, p) {
264
+ return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;
265
+ }
266
+ function indexCurve(start, minX, minY, invSize) {
267
+ var p = start;
268
+ do {
269
+ if (p.z === null)
270
+ p.z = zOrder(p.x, p.y, minX, minY, invSize);
271
+ p.prevZ = p.prev;
272
+ p.nextZ = p.next;
273
+ p = p.next;
274
+ } while (p !== start);
275
+ p.prevZ.nextZ = null;
276
+ p.prevZ = null;
277
+ sortLinked(p);
278
+ }
279
+ function sortLinked(list) {
280
+ var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;
281
+ do {
282
+ p = list;
283
+ list = null;
284
+ tail = null;
285
+ numMerges = 0;
286
+ while (p) {
287
+ numMerges++;
288
+ q = p;
289
+ pSize = 0;
290
+ for (i = 0; i < inSize; i++) {
291
+ pSize++;
292
+ q = q.nextZ;
293
+ if (!q)
294
+ break;
295
+ }
296
+ qSize = inSize;
297
+ while (pSize > 0 || qSize > 0 && q) {
298
+ if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {
299
+ e = p;
300
+ p = p.nextZ;
301
+ pSize--;
302
+ } else {
303
+ e = q;
304
+ q = q.nextZ;
305
+ qSize--;
306
+ }
307
+ if (tail)
308
+ tail.nextZ = e;
309
+ else
310
+ list = e;
311
+ e.prevZ = tail;
312
+ tail = e;
313
+ }
314
+ p = q;
315
+ }
316
+ tail.nextZ = null;
317
+ inSize *= 2;
318
+ } while (numMerges > 1);
319
+ return list;
320
+ }
321
+ function zOrder(x, y, minX, minY, invSize) {
322
+ x = 32767 * (x - minX) * invSize;
323
+ y = 32767 * (y - minY) * invSize;
324
+ x = (x | x << 8) & 16711935;
325
+ x = (x | x << 4) & 252645135;
326
+ x = (x | x << 2) & 858993459;
327
+ x = (x | x << 1) & 1431655765;
328
+ y = (y | y << 8) & 16711935;
329
+ y = (y | y << 4) & 252645135;
330
+ y = (y | y << 2) & 858993459;
331
+ y = (y | y << 1) & 1431655765;
332
+ return x | y << 1;
333
+ }
334
+ function getLeftmost(start) {
335
+ var p = start, leftmost = start;
336
+ do {
337
+ if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y)
338
+ leftmost = p;
339
+ p = p.next;
340
+ } while (p !== start);
341
+ return leftmost;
342
+ }
343
+ function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
344
+ return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
345
+ }
346
+ function isValidDiagonal(a, b) {
347
+ return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);
348
+ }
349
+ function area(p, q, r) {
350
+ return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
351
+ }
352
+ function equals(p1, p2) {
353
+ return p1.x === p2.x && p1.y === p2.y;
354
+ }
355
+ function intersects(p1, q1, p2, q2) {
356
+ var o1 = sign(area(p1, q1, p2));
357
+ var o2 = sign(area(p1, q1, q2));
358
+ var o3 = sign(area(p2, q2, p1));
359
+ var o4 = sign(area(p2, q2, q1));
360
+ if (o1 !== o2 && o3 !== o4)
361
+ return true;
362
+ if (o1 === 0 && onSegment(p1, p2, q1))
363
+ return true;
364
+ if (o2 === 0 && onSegment(p1, q2, q1))
365
+ return true;
366
+ if (o3 === 0 && onSegment(p2, p1, q2))
367
+ return true;
368
+ if (o4 === 0 && onSegment(p2, q1, q2))
369
+ return true;
370
+ return false;
371
+ }
372
+ function onSegment(p, q, r) {
373
+ return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);
374
+ }
375
+ function sign(num) {
376
+ return num > 0 ? 1 : num < 0 ? -1 : 0;
377
+ }
378
+ function intersectsPolygon(a, b) {
379
+ var p = a;
380
+ do {
381
+ if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b))
382
+ return true;
383
+ p = p.next;
384
+ } while (p !== a);
385
+ return false;
386
+ }
387
+ function locallyInside(a, b) {
388
+ return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
389
+ }
390
+ function middleInside(a, b) {
391
+ var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;
392
+ do {
393
+ if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)
394
+ inside = !inside;
395
+ p = p.next;
396
+ } while (p !== a);
397
+ return inside;
398
+ }
399
+ function splitPolygon(a, b) {
400
+ var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;
401
+ a.next = b;
402
+ b.prev = a;
403
+ a2.next = an;
404
+ an.prev = a2;
405
+ b2.next = a2;
406
+ a2.prev = b2;
407
+ bp.next = b2;
408
+ b2.prev = bp;
409
+ return b2;
410
+ }
411
+ function insertNode(i, x, y, last) {
412
+ var p = new Node(i, x, y);
413
+ if (!last) {
414
+ p.prev = p;
415
+ p.next = p;
416
+ } else {
417
+ p.next = last.next;
418
+ p.prev = last;
419
+ last.next.prev = p;
420
+ last.next = p;
421
+ }
422
+ return p;
423
+ }
424
+ function removeNode(p) {
425
+ p.next.prev = p.prev;
426
+ p.prev.next = p.next;
427
+ if (p.prevZ)
428
+ p.prevZ.nextZ = p.nextZ;
429
+ if (p.nextZ)
430
+ p.nextZ.prevZ = p.prevZ;
431
+ }
432
+ function Node(i, x, y) {
433
+ this.i = i;
434
+ this.x = x;
435
+ this.y = y;
436
+ this.prev = null;
437
+ this.next = null;
438
+ this.z = null;
439
+ this.prevZ = null;
440
+ this.nextZ = null;
441
+ this.steiner = false;
442
+ }
443
+ earcut2.deviation = function(data, holeIndices, dim, triangles) {
444
+ var hasHoles = holeIndices && holeIndices.length;
445
+ var outerLen = hasHoles ? holeIndices[0] * dim : data.length;
446
+ var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
447
+ if (hasHoles) {
448
+ for (var i = 0, len = holeIndices.length; i < len; i++) {
449
+ var start = holeIndices[i] * dim;
450
+ var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
451
+ polygonArea -= Math.abs(signedArea(data, start, end, dim));
452
+ }
453
+ }
454
+ var trianglesArea = 0;
455
+ for (i = 0; i < triangles.length; i += 3) {
456
+ var a = triangles[i] * dim;
457
+ var b = triangles[i + 1] * dim;
458
+ var c = triangles[i + 2] * dim;
459
+ trianglesArea += Math.abs(
460
+ (data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1])
461
+ );
462
+ }
463
+ return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);
464
+ };
465
+ function signedArea(data, start, end, dim) {
466
+ var sum = 0;
467
+ for (var i = start, j = end - dim; i < end; i += dim) {
468
+ sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
469
+ j = i;
470
+ }
471
+ return sum;
472
+ }
473
+ earcut2.flatten = function(data) {
474
+ var dim = data[0][0].length, result = { vertices: [], holes: [], dimensions: dim }, holeIndex = 0;
475
+ for (var i = 0; i < data.length; i++) {
476
+ for (var j = 0; j < data[i].length; j++) {
477
+ for (var d = 0; d < dim; d++)
478
+ result.vertices.push(data[i][j][d]);
479
+ }
480
+ if (i > 0) {
481
+ holeIndex += data[i - 1].length;
482
+ result.holes.push(holeIndex);
483
+ }
484
+ }
485
+ return result;
486
+ };
487
+ }
488
+ });
489
+
490
+ // ../../node_modules/pbf/node_modules/ieee754/index.js
491
+ var require_ieee754 = __commonJS({
492
+ "../../node_modules/pbf/node_modules/ieee754/index.js"(exports) {
493
+ exports.read = function(buffer, offset, isLE, mLen, nBytes) {
494
+ var e, m;
495
+ var eLen = nBytes * 8 - mLen - 1;
496
+ var eMax = (1 << eLen) - 1;
497
+ var eBias = eMax >> 1;
498
+ var nBits = -7;
499
+ var i = isLE ? nBytes - 1 : 0;
500
+ var d = isLE ? -1 : 1;
501
+ var s = buffer[offset + i];
502
+ i += d;
503
+ e = s & (1 << -nBits) - 1;
504
+ s >>= -nBits;
505
+ nBits += eLen;
506
+ for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {
507
+ }
508
+ m = e & (1 << -nBits) - 1;
509
+ e >>= -nBits;
510
+ nBits += mLen;
511
+ for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {
512
+ }
513
+ if (e === 0) {
514
+ e = 1 - eBias;
515
+ } else if (e === eMax) {
516
+ return m ? NaN : (s ? -1 : 1) * Infinity;
517
+ } else {
518
+ m = m + Math.pow(2, mLen);
519
+ e = e - eBias;
520
+ }
521
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
522
+ };
523
+ exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {
524
+ var e, m, c;
525
+ var eLen = nBytes * 8 - mLen - 1;
526
+ var eMax = (1 << eLen) - 1;
527
+ var eBias = eMax >> 1;
528
+ var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
529
+ var i = isLE ? 0 : nBytes - 1;
530
+ var d = isLE ? 1 : -1;
531
+ var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
532
+ value = Math.abs(value);
533
+ if (isNaN(value) || value === Infinity) {
534
+ m = isNaN(value) ? 1 : 0;
535
+ e = eMax;
536
+ } else {
537
+ e = Math.floor(Math.log(value) / Math.LN2);
538
+ if (value * (c = Math.pow(2, -e)) < 1) {
539
+ e--;
540
+ c *= 2;
541
+ }
542
+ if (e + eBias >= 1) {
543
+ value += rt / c;
544
+ } else {
545
+ value += rt * Math.pow(2, 1 - eBias);
546
+ }
547
+ if (value * c >= 2) {
548
+ e++;
549
+ c /= 2;
550
+ }
551
+ if (e + eBias >= eMax) {
552
+ m = 0;
553
+ e = eMax;
554
+ } else if (e + eBias >= 1) {
555
+ m = (value * c - 1) * Math.pow(2, mLen);
556
+ e = e + eBias;
557
+ } else {
558
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
559
+ e = 0;
560
+ }
561
+ }
562
+ for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {
563
+ }
564
+ e = e << mLen | m;
565
+ eLen += mLen;
566
+ for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {
567
+ }
568
+ buffer[offset + i - d] |= s * 128;
569
+ };
570
+ }
571
+ });
572
+
573
+ // ../../node_modules/pbf/index.js
574
+ var require_pbf = __commonJS({
575
+ "../../node_modules/pbf/index.js"(exports, module) {
576
+ "use strict";
577
+ module.exports = Pbf;
578
+ var ieee754 = require_ieee754();
579
+ function Pbf(buf) {
580
+ this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);
581
+ this.pos = 0;
582
+ this.type = 0;
583
+ this.length = this.buf.length;
584
+ }
585
+ Pbf.Varint = 0;
586
+ Pbf.Fixed64 = 1;
587
+ Pbf.Bytes = 2;
588
+ Pbf.Fixed32 = 5;
589
+ var SHIFT_LEFT_32 = (1 << 16) * (1 << 16);
590
+ var SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;
591
+ var TEXT_DECODER_MIN_LENGTH = 12;
592
+ var utf8TextDecoder = typeof TextDecoder === "undefined" ? null : new TextDecoder("utf8");
593
+ Pbf.prototype = {
594
+ destroy: function() {
595
+ this.buf = null;
596
+ },
597
+ readFields: function(readField, result, end) {
598
+ end = end || this.length;
599
+ while (this.pos < end) {
600
+ var val = this.readVarint(), tag = val >> 3, startPos = this.pos;
601
+ this.type = val & 7;
602
+ readField(tag, result, this);
603
+ if (this.pos === startPos)
604
+ this.skip(val);
605
+ }
606
+ return result;
607
+ },
608
+ readMessage: function(readField, result) {
609
+ return this.readFields(readField, result, this.readVarint() + this.pos);
610
+ },
611
+ readFixed32: function() {
612
+ var val = readUInt32(this.buf, this.pos);
613
+ this.pos += 4;
614
+ return val;
615
+ },
616
+ readSFixed32: function() {
617
+ var val = readInt32(this.buf, this.pos);
618
+ this.pos += 4;
619
+ return val;
620
+ },
621
+ readFixed64: function() {
622
+ var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;
623
+ this.pos += 8;
624
+ return val;
625
+ },
626
+ readSFixed64: function() {
627
+ var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;
628
+ this.pos += 8;
629
+ return val;
630
+ },
631
+ readFloat: function() {
632
+ var val = ieee754.read(this.buf, this.pos, true, 23, 4);
633
+ this.pos += 4;
634
+ return val;
635
+ },
636
+ readDouble: function() {
637
+ var val = ieee754.read(this.buf, this.pos, true, 52, 8);
638
+ this.pos += 8;
639
+ return val;
640
+ },
641
+ readVarint: function(isSigned) {
642
+ var buf = this.buf, val, b;
643
+ b = buf[this.pos++];
644
+ val = b & 127;
645
+ if (b < 128)
646
+ return val;
647
+ b = buf[this.pos++];
648
+ val |= (b & 127) << 7;
649
+ if (b < 128)
650
+ return val;
651
+ b = buf[this.pos++];
652
+ val |= (b & 127) << 14;
653
+ if (b < 128)
654
+ return val;
655
+ b = buf[this.pos++];
656
+ val |= (b & 127) << 21;
657
+ if (b < 128)
658
+ return val;
659
+ b = buf[this.pos];
660
+ val |= (b & 15) << 28;
661
+ return readVarintRemainder(val, isSigned, this);
662
+ },
663
+ readVarint64: function() {
664
+ return this.readVarint(true);
665
+ },
666
+ readSVarint: function() {
667
+ var num = this.readVarint();
668
+ return num % 2 === 1 ? (num + 1) / -2 : num / 2;
669
+ },
670
+ readBoolean: function() {
671
+ return Boolean(this.readVarint());
672
+ },
673
+ readString: function() {
674
+ var end = this.readVarint() + this.pos;
675
+ var pos = this.pos;
676
+ this.pos = end;
677
+ if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {
678
+ return readUtf8TextDecoder(this.buf, pos, end);
679
+ }
680
+ return readUtf8(this.buf, pos, end);
681
+ },
682
+ readBytes: function() {
683
+ var end = this.readVarint() + this.pos, buffer = this.buf.subarray(this.pos, end);
684
+ this.pos = end;
685
+ return buffer;
686
+ },
687
+ readPackedVarint: function(arr, isSigned) {
688
+ if (this.type !== Pbf.Bytes)
689
+ return arr.push(this.readVarint(isSigned));
690
+ var end = readPackedEnd(this);
691
+ arr = arr || [];
692
+ while (this.pos < end)
693
+ arr.push(this.readVarint(isSigned));
694
+ return arr;
695
+ },
696
+ readPackedSVarint: function(arr) {
697
+ if (this.type !== Pbf.Bytes)
698
+ return arr.push(this.readSVarint());
699
+ var end = readPackedEnd(this);
700
+ arr = arr || [];
701
+ while (this.pos < end)
702
+ arr.push(this.readSVarint());
703
+ return arr;
704
+ },
705
+ readPackedBoolean: function(arr) {
706
+ if (this.type !== Pbf.Bytes)
707
+ return arr.push(this.readBoolean());
708
+ var end = readPackedEnd(this);
709
+ arr = arr || [];
710
+ while (this.pos < end)
711
+ arr.push(this.readBoolean());
712
+ return arr;
713
+ },
714
+ readPackedFloat: function(arr) {
715
+ if (this.type !== Pbf.Bytes)
716
+ return arr.push(this.readFloat());
717
+ var end = readPackedEnd(this);
718
+ arr = arr || [];
719
+ while (this.pos < end)
720
+ arr.push(this.readFloat());
721
+ return arr;
722
+ },
723
+ readPackedDouble: function(arr) {
724
+ if (this.type !== Pbf.Bytes)
725
+ return arr.push(this.readDouble());
726
+ var end = readPackedEnd(this);
727
+ arr = arr || [];
728
+ while (this.pos < end)
729
+ arr.push(this.readDouble());
730
+ return arr;
731
+ },
732
+ readPackedFixed32: function(arr) {
733
+ if (this.type !== Pbf.Bytes)
734
+ return arr.push(this.readFixed32());
735
+ var end = readPackedEnd(this);
736
+ arr = arr || [];
737
+ while (this.pos < end)
738
+ arr.push(this.readFixed32());
739
+ return arr;
740
+ },
741
+ readPackedSFixed32: function(arr) {
742
+ if (this.type !== Pbf.Bytes)
743
+ return arr.push(this.readSFixed32());
744
+ var end = readPackedEnd(this);
745
+ arr = arr || [];
746
+ while (this.pos < end)
747
+ arr.push(this.readSFixed32());
748
+ return arr;
749
+ },
750
+ readPackedFixed64: function(arr) {
751
+ if (this.type !== Pbf.Bytes)
752
+ return arr.push(this.readFixed64());
753
+ var end = readPackedEnd(this);
754
+ arr = arr || [];
755
+ while (this.pos < end)
756
+ arr.push(this.readFixed64());
757
+ return arr;
758
+ },
759
+ readPackedSFixed64: function(arr) {
760
+ if (this.type !== Pbf.Bytes)
761
+ return arr.push(this.readSFixed64());
762
+ var end = readPackedEnd(this);
763
+ arr = arr || [];
764
+ while (this.pos < end)
765
+ arr.push(this.readSFixed64());
766
+ return arr;
767
+ },
768
+ skip: function(val) {
769
+ var type = val & 7;
770
+ if (type === Pbf.Varint)
771
+ while (this.buf[this.pos++] > 127) {
772
+ }
773
+ else if (type === Pbf.Bytes)
774
+ this.pos = this.readVarint() + this.pos;
775
+ else if (type === Pbf.Fixed32)
776
+ this.pos += 4;
777
+ else if (type === Pbf.Fixed64)
778
+ this.pos += 8;
779
+ else
780
+ throw new Error("Unimplemented type: " + type);
781
+ },
782
+ writeTag: function(tag, type) {
783
+ this.writeVarint(tag << 3 | type);
784
+ },
785
+ realloc: function(min) {
786
+ var length = this.length || 16;
787
+ while (length < this.pos + min)
788
+ length *= 2;
789
+ if (length !== this.length) {
790
+ var buf = new Uint8Array(length);
791
+ buf.set(this.buf);
792
+ this.buf = buf;
793
+ this.length = length;
794
+ }
795
+ },
796
+ finish: function() {
797
+ this.length = this.pos;
798
+ this.pos = 0;
799
+ return this.buf.subarray(0, this.length);
800
+ },
801
+ writeFixed32: function(val) {
802
+ this.realloc(4);
803
+ writeInt32(this.buf, val, this.pos);
804
+ this.pos += 4;
805
+ },
806
+ writeSFixed32: function(val) {
807
+ this.realloc(4);
808
+ writeInt32(this.buf, val, this.pos);
809
+ this.pos += 4;
810
+ },
811
+ writeFixed64: function(val) {
812
+ this.realloc(8);
813
+ writeInt32(this.buf, val & -1, this.pos);
814
+ writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);
815
+ this.pos += 8;
816
+ },
817
+ writeSFixed64: function(val) {
818
+ this.realloc(8);
819
+ writeInt32(this.buf, val & -1, this.pos);
820
+ writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);
821
+ this.pos += 8;
822
+ },
823
+ writeVarint: function(val) {
824
+ val = +val || 0;
825
+ if (val > 268435455 || val < 0) {
826
+ writeBigVarint(val, this);
827
+ return;
828
+ }
829
+ this.realloc(4);
830
+ this.buf[this.pos++] = val & 127 | (val > 127 ? 128 : 0);
831
+ if (val <= 127)
832
+ return;
833
+ this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);
834
+ if (val <= 127)
835
+ return;
836
+ this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);
837
+ if (val <= 127)
838
+ return;
839
+ this.buf[this.pos++] = val >>> 7 & 127;
840
+ },
841
+ writeSVarint: function(val) {
842
+ this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);
843
+ },
844
+ writeBoolean: function(val) {
845
+ this.writeVarint(Boolean(val));
846
+ },
847
+ writeString: function(str) {
848
+ str = String(str);
849
+ this.realloc(str.length * 4);
850
+ this.pos++;
851
+ var startPos = this.pos;
852
+ this.pos = writeUtf8(this.buf, str, this.pos);
853
+ var len = this.pos - startPos;
854
+ if (len >= 128)
855
+ makeRoomForExtraLength(startPos, len, this);
856
+ this.pos = startPos - 1;
857
+ this.writeVarint(len);
858
+ this.pos += len;
859
+ },
860
+ writeFloat: function(val) {
861
+ this.realloc(4);
862
+ ieee754.write(this.buf, val, this.pos, true, 23, 4);
863
+ this.pos += 4;
864
+ },
865
+ writeDouble: function(val) {
866
+ this.realloc(8);
867
+ ieee754.write(this.buf, val, this.pos, true, 52, 8);
868
+ this.pos += 8;
869
+ },
870
+ writeBytes: function(buffer) {
871
+ var len = buffer.length;
872
+ this.writeVarint(len);
873
+ this.realloc(len);
874
+ for (var i = 0; i < len; i++)
875
+ this.buf[this.pos++] = buffer[i];
876
+ },
877
+ writeRawMessage: function(fn, obj) {
878
+ this.pos++;
879
+ var startPos = this.pos;
880
+ fn(obj, this);
881
+ var len = this.pos - startPos;
882
+ if (len >= 128)
883
+ makeRoomForExtraLength(startPos, len, this);
884
+ this.pos = startPos - 1;
885
+ this.writeVarint(len);
886
+ this.pos += len;
887
+ },
888
+ writeMessage: function(tag, fn, obj) {
889
+ this.writeTag(tag, Pbf.Bytes);
890
+ this.writeRawMessage(fn, obj);
891
+ },
892
+ writePackedVarint: function(tag, arr) {
893
+ if (arr.length)
894
+ this.writeMessage(tag, writePackedVarint, arr);
895
+ },
896
+ writePackedSVarint: function(tag, arr) {
897
+ if (arr.length)
898
+ this.writeMessage(tag, writePackedSVarint, arr);
899
+ },
900
+ writePackedBoolean: function(tag, arr) {
901
+ if (arr.length)
902
+ this.writeMessage(tag, writePackedBoolean, arr);
903
+ },
904
+ writePackedFloat: function(tag, arr) {
905
+ if (arr.length)
906
+ this.writeMessage(tag, writePackedFloat, arr);
907
+ },
908
+ writePackedDouble: function(tag, arr) {
909
+ if (arr.length)
910
+ this.writeMessage(tag, writePackedDouble, arr);
911
+ },
912
+ writePackedFixed32: function(tag, arr) {
913
+ if (arr.length)
914
+ this.writeMessage(tag, writePackedFixed32, arr);
915
+ },
916
+ writePackedSFixed32: function(tag, arr) {
917
+ if (arr.length)
918
+ this.writeMessage(tag, writePackedSFixed32, arr);
919
+ },
920
+ writePackedFixed64: function(tag, arr) {
921
+ if (arr.length)
922
+ this.writeMessage(tag, writePackedFixed64, arr);
923
+ },
924
+ writePackedSFixed64: function(tag, arr) {
925
+ if (arr.length)
926
+ this.writeMessage(tag, writePackedSFixed64, arr);
927
+ },
928
+ writeBytesField: function(tag, buffer) {
929
+ this.writeTag(tag, Pbf.Bytes);
930
+ this.writeBytes(buffer);
931
+ },
932
+ writeFixed32Field: function(tag, val) {
933
+ this.writeTag(tag, Pbf.Fixed32);
934
+ this.writeFixed32(val);
935
+ },
936
+ writeSFixed32Field: function(tag, val) {
937
+ this.writeTag(tag, Pbf.Fixed32);
938
+ this.writeSFixed32(val);
939
+ },
940
+ writeFixed64Field: function(tag, val) {
941
+ this.writeTag(tag, Pbf.Fixed64);
942
+ this.writeFixed64(val);
943
+ },
944
+ writeSFixed64Field: function(tag, val) {
945
+ this.writeTag(tag, Pbf.Fixed64);
946
+ this.writeSFixed64(val);
947
+ },
948
+ writeVarintField: function(tag, val) {
949
+ this.writeTag(tag, Pbf.Varint);
950
+ this.writeVarint(val);
951
+ },
952
+ writeSVarintField: function(tag, val) {
953
+ this.writeTag(tag, Pbf.Varint);
954
+ this.writeSVarint(val);
955
+ },
956
+ writeStringField: function(tag, str) {
957
+ this.writeTag(tag, Pbf.Bytes);
958
+ this.writeString(str);
959
+ },
960
+ writeFloatField: function(tag, val) {
961
+ this.writeTag(tag, Pbf.Fixed32);
962
+ this.writeFloat(val);
963
+ },
964
+ writeDoubleField: function(tag, val) {
965
+ this.writeTag(tag, Pbf.Fixed64);
966
+ this.writeDouble(val);
967
+ },
968
+ writeBooleanField: function(tag, val) {
969
+ this.writeVarintField(tag, Boolean(val));
970
+ }
971
+ };
972
+ function readVarintRemainder(l, s, p) {
973
+ var buf = p.buf, h, b;
974
+ b = buf[p.pos++];
975
+ h = (b & 112) >> 4;
976
+ if (b < 128)
977
+ return toNum(l, h, s);
978
+ b = buf[p.pos++];
979
+ h |= (b & 127) << 3;
980
+ if (b < 128)
981
+ return toNum(l, h, s);
982
+ b = buf[p.pos++];
983
+ h |= (b & 127) << 10;
984
+ if (b < 128)
985
+ return toNum(l, h, s);
986
+ b = buf[p.pos++];
987
+ h |= (b & 127) << 17;
988
+ if (b < 128)
989
+ return toNum(l, h, s);
990
+ b = buf[p.pos++];
991
+ h |= (b & 127) << 24;
992
+ if (b < 128)
993
+ return toNum(l, h, s);
994
+ b = buf[p.pos++];
995
+ h |= (b & 1) << 31;
996
+ if (b < 128)
997
+ return toNum(l, h, s);
998
+ throw new Error("Expected varint not more than 10 bytes");
999
+ }
1000
+ function readPackedEnd(pbf) {
1001
+ return pbf.type === Pbf.Bytes ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
1002
+ }
1003
+ function toNum(low, high, isSigned) {
1004
+ if (isSigned) {
1005
+ return high * 4294967296 + (low >>> 0);
1006
+ }
1007
+ return (high >>> 0) * 4294967296 + (low >>> 0);
1008
+ }
1009
+ function writeBigVarint(val, pbf) {
1010
+ var low, high;
1011
+ if (val >= 0) {
1012
+ low = val % 4294967296 | 0;
1013
+ high = val / 4294967296 | 0;
1014
+ } else {
1015
+ low = ~(-val % 4294967296);
1016
+ high = ~(-val / 4294967296);
1017
+ if (low ^ 4294967295) {
1018
+ low = low + 1 | 0;
1019
+ } else {
1020
+ low = 0;
1021
+ high = high + 1 | 0;
1022
+ }
1023
+ }
1024
+ if (val >= 18446744073709552e3 || val < -18446744073709552e3) {
1025
+ throw new Error("Given varint doesn't fit into 10 bytes");
1026
+ }
1027
+ pbf.realloc(10);
1028
+ writeBigVarintLow(low, high, pbf);
1029
+ writeBigVarintHigh(high, pbf);
1030
+ }
1031
+ function writeBigVarintLow(low, high, pbf) {
1032
+ pbf.buf[pbf.pos++] = low & 127 | 128;
1033
+ low >>>= 7;
1034
+ pbf.buf[pbf.pos++] = low & 127 | 128;
1035
+ low >>>= 7;
1036
+ pbf.buf[pbf.pos++] = low & 127 | 128;
1037
+ low >>>= 7;
1038
+ pbf.buf[pbf.pos++] = low & 127 | 128;
1039
+ low >>>= 7;
1040
+ pbf.buf[pbf.pos] = low & 127;
1041
+ }
1042
+ function writeBigVarintHigh(high, pbf) {
1043
+ var lsb = (high & 7) << 4;
1044
+ pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 128 : 0);
1045
+ if (!high)
1046
+ return;
1047
+ pbf.buf[pbf.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);
1048
+ if (!high)
1049
+ return;
1050
+ pbf.buf[pbf.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);
1051
+ if (!high)
1052
+ return;
1053
+ pbf.buf[pbf.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);
1054
+ if (!high)
1055
+ return;
1056
+ pbf.buf[pbf.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);
1057
+ if (!high)
1058
+ return;
1059
+ pbf.buf[pbf.pos++] = high & 127;
1060
+ }
1061
+ function makeRoomForExtraLength(startPos, len, pbf) {
1062
+ var extraLen = len <= 16383 ? 1 : len <= 2097151 ? 2 : len <= 268435455 ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));
1063
+ pbf.realloc(extraLen);
1064
+ for (var i = pbf.pos - 1; i >= startPos; i--)
1065
+ pbf.buf[i + extraLen] = pbf.buf[i];
1066
+ }
1067
+ function writePackedVarint(arr, pbf) {
1068
+ for (var i = 0; i < arr.length; i++)
1069
+ pbf.writeVarint(arr[i]);
1070
+ }
1071
+ function writePackedSVarint(arr, pbf) {
1072
+ for (var i = 0; i < arr.length; i++)
1073
+ pbf.writeSVarint(arr[i]);
1074
+ }
1075
+ function writePackedFloat(arr, pbf) {
1076
+ for (var i = 0; i < arr.length; i++)
1077
+ pbf.writeFloat(arr[i]);
1078
+ }
1079
+ function writePackedDouble(arr, pbf) {
1080
+ for (var i = 0; i < arr.length; i++)
1081
+ pbf.writeDouble(arr[i]);
1082
+ }
1083
+ function writePackedBoolean(arr, pbf) {
1084
+ for (var i = 0; i < arr.length; i++)
1085
+ pbf.writeBoolean(arr[i]);
1086
+ }
1087
+ function writePackedFixed32(arr, pbf) {
1088
+ for (var i = 0; i < arr.length; i++)
1089
+ pbf.writeFixed32(arr[i]);
1090
+ }
1091
+ function writePackedSFixed32(arr, pbf) {
1092
+ for (var i = 0; i < arr.length; i++)
1093
+ pbf.writeSFixed32(arr[i]);
1094
+ }
1095
+ function writePackedFixed64(arr, pbf) {
1096
+ for (var i = 0; i < arr.length; i++)
1097
+ pbf.writeFixed64(arr[i]);
1098
+ }
1099
+ function writePackedSFixed64(arr, pbf) {
1100
+ for (var i = 0; i < arr.length; i++)
1101
+ pbf.writeSFixed64(arr[i]);
1102
+ }
1103
+ function readUInt32(buf, pos) {
1104
+ return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + buf[pos + 3] * 16777216;
1105
+ }
1106
+ function writeInt32(buf, val, pos) {
1107
+ buf[pos] = val;
1108
+ buf[pos + 1] = val >>> 8;
1109
+ buf[pos + 2] = val >>> 16;
1110
+ buf[pos + 3] = val >>> 24;
1111
+ }
1112
+ function readInt32(buf, pos) {
1113
+ return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + (buf[pos + 3] << 24);
1114
+ }
1115
+ function readUtf8(buf, pos, end) {
1116
+ var str = "";
1117
+ var i = pos;
1118
+ while (i < end) {
1119
+ var b0 = buf[i];
1120
+ var c = null;
1121
+ var bytesPerSequence = b0 > 239 ? 4 : b0 > 223 ? 3 : b0 > 191 ? 2 : 1;
1122
+ if (i + bytesPerSequence > end)
1123
+ break;
1124
+ var b1, b2, b3;
1125
+ if (bytesPerSequence === 1) {
1126
+ if (b0 < 128) {
1127
+ c = b0;
1128
+ }
1129
+ } else if (bytesPerSequence === 2) {
1130
+ b1 = buf[i + 1];
1131
+ if ((b1 & 192) === 128) {
1132
+ c = (b0 & 31) << 6 | b1 & 63;
1133
+ if (c <= 127) {
1134
+ c = null;
1135
+ }
1136
+ }
1137
+ } else if (bytesPerSequence === 3) {
1138
+ b1 = buf[i + 1];
1139
+ b2 = buf[i + 2];
1140
+ if ((b1 & 192) === 128 && (b2 & 192) === 128) {
1141
+ c = (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63;
1142
+ if (c <= 2047 || c >= 55296 && c <= 57343) {
1143
+ c = null;
1144
+ }
1145
+ }
1146
+ } else if (bytesPerSequence === 4) {
1147
+ b1 = buf[i + 1];
1148
+ b2 = buf[i + 2];
1149
+ b3 = buf[i + 3];
1150
+ if ((b1 & 192) === 128 && (b2 & 192) === 128 && (b3 & 192) === 128) {
1151
+ c = (b0 & 15) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63;
1152
+ if (c <= 65535 || c >= 1114112) {
1153
+ c = null;
1154
+ }
1155
+ }
1156
+ }
1157
+ if (c === null) {
1158
+ c = 65533;
1159
+ bytesPerSequence = 1;
1160
+ } else if (c > 65535) {
1161
+ c -= 65536;
1162
+ str += String.fromCharCode(c >>> 10 & 1023 | 55296);
1163
+ c = 56320 | c & 1023;
1164
+ }
1165
+ str += String.fromCharCode(c);
1166
+ i += bytesPerSequence;
1167
+ }
1168
+ return str;
1169
+ }
1170
+ function readUtf8TextDecoder(buf, pos, end) {
1171
+ return utf8TextDecoder.decode(buf.subarray(pos, end));
1172
+ }
1173
+ function writeUtf8(buf, str, pos) {
1174
+ for (var i = 0, c, lead; i < str.length; i++) {
1175
+ c = str.charCodeAt(i);
1176
+ if (c > 55295 && c < 57344) {
1177
+ if (lead) {
1178
+ if (c < 56320) {
1179
+ buf[pos++] = 239;
1180
+ buf[pos++] = 191;
1181
+ buf[pos++] = 189;
1182
+ lead = c;
1183
+ continue;
1184
+ } else {
1185
+ c = lead - 55296 << 10 | c - 56320 | 65536;
1186
+ lead = null;
1187
+ }
1188
+ } else {
1189
+ if (c > 56319 || i + 1 === str.length) {
1190
+ buf[pos++] = 239;
1191
+ buf[pos++] = 191;
1192
+ buf[pos++] = 189;
1193
+ } else {
1194
+ lead = c;
1195
+ }
1196
+ continue;
1197
+ }
1198
+ } else if (lead) {
1199
+ buf[pos++] = 239;
1200
+ buf[pos++] = 191;
1201
+ buf[pos++] = 189;
1202
+ lead = null;
1203
+ }
1204
+ if (c < 128) {
1205
+ buf[pos++] = c;
1206
+ } else {
1207
+ if (c < 2048) {
1208
+ buf[pos++] = c >> 6 | 192;
1209
+ } else {
1210
+ if (c < 65536) {
1211
+ buf[pos++] = c >> 12 | 224;
1212
+ } else {
1213
+ buf[pos++] = c >> 18 | 240;
1214
+ buf[pos++] = c >> 12 & 63 | 128;
1215
+ }
1216
+ buf[pos++] = c >> 6 & 63 | 128;
1217
+ }
1218
+ buf[pos++] = c & 63 | 128;
1219
+ }
1220
+ }
1221
+ return pos;
1222
+ }
1223
+ }
1224
+ });
1225
+
1226
+ // ../../node_modules/@loaders.gl/worker-utils/dist/esm/lib/worker-utils/get-transfer-list.js
1227
+ function getTransferList(object) {
1228
+ let recursive = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
1229
+ let transfers = arguments.length > 2 ? arguments[2] : void 0;
1230
+ const transfersSet = transfers || /* @__PURE__ */ new Set();
1231
+ if (!object) {
1232
+ } else if (isTransferable(object)) {
1233
+ transfersSet.add(object);
1234
+ } else if (isTransferable(object.buffer)) {
1235
+ transfersSet.add(object.buffer);
1236
+ } else if (ArrayBuffer.isView(object)) {
1237
+ } else if (recursive && typeof object === "object") {
1238
+ for (const key in object) {
1239
+ getTransferList(object[key], recursive, transfersSet);
1240
+ }
1241
+ }
1242
+ return transfers === void 0 ? Array.from(transfersSet) : [];
1243
+ }
1244
+ function isTransferable(object) {
1245
+ if (!object) {
1246
+ return false;
1247
+ }
1248
+ if (object instanceof ArrayBuffer) {
1249
+ return true;
1250
+ }
1251
+ if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
1252
+ return true;
1253
+ }
1254
+ if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
1255
+ return true;
1256
+ }
1257
+ if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
1258
+ return true;
1259
+ }
1260
+ return false;
1261
+ }
1262
+
1263
+ // ../../node_modules/@loaders.gl/worker-utils/dist/esm/lib/worker-farm/worker-body.js
1264
+ function getParentPort() {
1265
+ let parentPort;
1266
+ try {
1267
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
1268
+ parentPort = globalThis.parentPort;
1269
+ } catch {
1270
+ }
1271
+ return parentPort;
1272
+ }
1273
+ var onMessageWrapperMap = /* @__PURE__ */ new Map();
1274
+ var WorkerBody = class {
1275
+ static inWorkerThread() {
1276
+ return typeof self !== "undefined" || Boolean(getParentPort());
1277
+ }
1278
+ static set onmessage(onMessage) {
1279
+ function handleMessage(message) {
1280
+ const parentPort3 = getParentPort();
1281
+ const {
1282
+ type,
1283
+ payload
1284
+ } = parentPort3 ? message : message.data;
1285
+ onMessage(type, payload);
1286
+ }
1287
+ const parentPort2 = getParentPort();
1288
+ if (parentPort2) {
1289
+ parentPort2.on("message", handleMessage);
1290
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
1291
+ } else {
1292
+ globalThis.onmessage = handleMessage;
1293
+ }
1294
+ }
1295
+ static addEventListener(onMessage) {
1296
+ let onMessageWrapper = onMessageWrapperMap.get(onMessage);
1297
+ if (!onMessageWrapper) {
1298
+ onMessageWrapper = (message) => {
1299
+ if (!isKnownMessage(message)) {
1300
+ return;
1301
+ }
1302
+ const parentPort3 = getParentPort();
1303
+ const {
1304
+ type,
1305
+ payload
1306
+ } = parentPort3 ? message : message.data;
1307
+ onMessage(type, payload);
1308
+ };
1309
+ }
1310
+ const parentPort2 = getParentPort();
1311
+ if (parentPort2) {
1312
+ console.error("not implemented");
1313
+ } else {
1314
+ globalThis.addEventListener("message", onMessageWrapper);
1315
+ }
1316
+ }
1317
+ static removeEventListener(onMessage) {
1318
+ const onMessageWrapper = onMessageWrapperMap.get(onMessage);
1319
+ onMessageWrapperMap.delete(onMessage);
1320
+ const parentPort2 = getParentPort();
1321
+ if (parentPort2) {
1322
+ console.error("not implemented");
1323
+ } else {
1324
+ globalThis.removeEventListener("message", onMessageWrapper);
1325
+ }
1326
+ }
1327
+ static postMessage(type, payload) {
1328
+ const data = {
1329
+ source: "loaders.gl",
1330
+ type,
1331
+ payload
1332
+ };
1333
+ const transferList = getTransferList(payload);
1334
+ const parentPort2 = getParentPort();
1335
+ if (parentPort2) {
1336
+ parentPort2.postMessage(data, transferList);
1337
+ } else {
1338
+ globalThis.postMessage(data, transferList);
1339
+ }
1340
+ }
1341
+ };
1342
+ function isKnownMessage(message) {
1343
+ const {
1344
+ type,
1345
+ data
1346
+ } = message;
1347
+ return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
1348
+ }
1349
+
1350
+ // ../../node_modules/@loaders.gl/loader-utils/dist/esm/lib/worker-loader-utils/create-loader-worker.js
1351
+ var requestId = 0;
1352
+ function createLoaderWorker(loader) {
1353
+ if (!WorkerBody.inWorkerThread()) {
1354
+ return;
1355
+ }
1356
+ WorkerBody.onmessage = async (type, payload) => {
1357
+ switch (type) {
1358
+ case "process":
1359
+ try {
1360
+ const {
1361
+ input,
1362
+ options = {},
1363
+ context = {}
1364
+ } = payload;
1365
+ const result = await parseData({
1366
+ loader,
1367
+ arrayBuffer: input,
1368
+ options,
1369
+ context: {
1370
+ ...context,
1371
+ parse: parseOnMainThread
1372
+ }
1373
+ });
1374
+ WorkerBody.postMessage("done", {
1375
+ result
1376
+ });
1377
+ } catch (error) {
1378
+ const message = error instanceof Error ? error.message : "";
1379
+ WorkerBody.postMessage("error", {
1380
+ error: message
1381
+ });
1382
+ }
1383
+ break;
1384
+ default:
1385
+ }
1386
+ };
1387
+ }
1388
+ function parseOnMainThread(arrayBuffer, options) {
1389
+ return new Promise((resolve, reject) => {
1390
+ const id2 = requestId++;
1391
+ const onMessage = (type, payload2) => {
1392
+ if (payload2.id !== id2) {
1393
+ return;
1394
+ }
1395
+ switch (type) {
1396
+ case "done":
1397
+ WorkerBody.removeEventListener(onMessage);
1398
+ resolve(payload2.result);
1399
+ break;
1400
+ case "error":
1401
+ WorkerBody.removeEventListener(onMessage);
1402
+ reject(payload2.error);
1403
+ break;
1404
+ default:
1405
+ }
1406
+ };
1407
+ WorkerBody.addEventListener(onMessage);
1408
+ const payload = {
1409
+ id: id2,
1410
+ input: arrayBuffer,
1411
+ options
1412
+ };
1413
+ WorkerBody.postMessage("process", payload);
1414
+ });
1415
+ }
1416
+ async function parseData(_ref) {
1417
+ let {
1418
+ loader,
1419
+ arrayBuffer,
1420
+ options,
1421
+ context
1422
+ } = _ref;
1423
+ let data;
1424
+ let parser;
1425
+ if (loader.parseSync || loader.parse) {
1426
+ data = arrayBuffer;
1427
+ parser = loader.parseSync || loader.parse;
1428
+ } else if (loader.parseTextSync) {
1429
+ const textDecoder = new TextDecoder();
1430
+ data = textDecoder.decode(arrayBuffer);
1431
+ parser = loader.parseTextSync;
1432
+ } else {
1433
+ throw new Error("Could not load data with ".concat(loader.name, " loader"));
1434
+ }
1435
+ options = {
1436
+ ...options,
1437
+ modules: loader && loader.options && loader.options.modules || {},
1438
+ worker: false
1439
+ };
1440
+ return await parser(data, {
1441
+ ...options
1442
+ }, context, loader);
1443
+ }
1444
+
1445
+ // src/layers/schema/carto-vector-tile-loader.ts
1446
+ var import_earcut = __toESM(require_earcut());
1447
+
1448
+ // src/layers/schema/fast-pbf.ts
1449
+ function readPackedTypedArray(TypedArray, pbf, obj) {
1450
+ const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
1451
+ obj.value = new TypedArray(pbf.buf.buffer.slice(pbf.pos, end));
1452
+ pbf.pos = end;
1453
+ return obj.value;
1454
+ }
1455
+
1456
+ // src/layers/schema/carto-tile.ts
1457
+ var KeyValueObjectReader = class {
1458
+ static read(pbf, end) {
1459
+ return pbf.readFields(KeyValueObjectReader._readField, { key: "", value: null }, end);
1460
+ }
1461
+ static _readField(tag, obj, pbf) {
1462
+ if (tag === 1)
1463
+ obj.key = pbf.readString();
1464
+ else if (tag === 2)
1465
+ obj.value = pbf.readString();
1466
+ }
1467
+ };
1468
+ var PropertiesReader = class {
1469
+ static read(pbf, end) {
1470
+ return pbf.readFields(PropertiesReader._readField, {}, end);
1471
+ }
1472
+ static _readField(tag, obj, pbf) {
1473
+ if (tag === 1) {
1474
+ const { key, value } = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);
1475
+ obj[key] = value;
1476
+ }
1477
+ }
1478
+ };
1479
+ var DoublesReader = class {
1480
+ static read(pbf, end) {
1481
+ const { value, size } = pbf.readFields(DoublesReader._readField, { value: [], size: 0 }, end);
1482
+ return { value: new Float32Array(value), size };
1483
+ }
1484
+ static _readField(tag, obj, pbf) {
1485
+ if (tag === 1)
1486
+ readPackedTypedArray(Float64Array, pbf, obj);
1487
+ else if (tag === 2)
1488
+ obj.size = pbf.readVarint(true);
1489
+ }
1490
+ };
1491
+ var IntsReader = class {
1492
+ static read(pbf, end) {
1493
+ const { value, size } = pbf.readFields(IntsReader._readField, { value: [], size: 0 }, end);
1494
+ return { value: new Uint32Array(value), size };
1495
+ }
1496
+ static _readField(tag, obj, pbf) {
1497
+ if (tag === 1)
1498
+ pbf.readPackedVarint(obj.value);
1499
+ else if (tag === 2)
1500
+ obj.size = pbf.readVarint(true);
1501
+ }
1502
+ };
1503
+ var FieldsReader = class {
1504
+ static read(pbf, end) {
1505
+ return pbf.readFields(FieldsReader._readField, { id: 0 }, end);
1506
+ }
1507
+ static _readField(tag, obj, pbf) {
1508
+ if (tag === 1)
1509
+ obj.id = pbf.readVarint();
1510
+ }
1511
+ };
1512
+ var NumericPropReader = class {
1513
+ static read(pbf, end) {
1514
+ return pbf.readFields(NumericPropReader._readField, { value: [] }, end);
1515
+ }
1516
+ static _readField(tag, obj, pbf) {
1517
+ if (tag === 1)
1518
+ readPackedTypedArray(Float64Array, pbf, obj);
1519
+ }
1520
+ };
1521
+ var NumericPropKeyValueReader = class {
1522
+ static read(pbf, end) {
1523
+ return pbf.readFields(NumericPropKeyValueReader._readField, { key: "", value: null }, end);
1524
+ }
1525
+ static _readField(tag, obj, pbf) {
1526
+ if (tag === 1)
1527
+ obj.key = pbf.readString();
1528
+ else if (tag === 2)
1529
+ obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);
1530
+ }
1531
+ };
1532
+ var PointsReader = class {
1533
+ static read(pbf, end) {
1534
+ return pbf.readFields(
1535
+ PointsReader._readField,
1536
+ {
1537
+ positions: null,
1538
+ globalFeatureIds: null,
1539
+ featureIds: null,
1540
+ properties: [],
1541
+ numericProps: {},
1542
+ fields: []
1543
+ },
1544
+ end
1545
+ );
1546
+ }
1547
+ static _readField(tag, obj, pbf) {
1548
+ if (tag === 1)
1549
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
1550
+ else if (tag === 2)
1551
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1552
+ else if (tag === 3)
1553
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1554
+ else if (tag === 4)
1555
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
1556
+ else if (tag === 5) {
1557
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
1558
+ obj.numericProps[entry.key] = entry.value;
1559
+ } else if (tag === 6)
1560
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
1561
+ }
1562
+ };
1563
+ var LinesReader = class {
1564
+ static read(pbf, end) {
1565
+ return pbf.readFields(
1566
+ LinesReader._readField,
1567
+ {
1568
+ positions: null,
1569
+ pathIndices: null,
1570
+ globalFeatureIds: null,
1571
+ featureIds: null,
1572
+ properties: [],
1573
+ numericProps: {},
1574
+ fields: []
1575
+ },
1576
+ end
1577
+ );
1578
+ }
1579
+ static _readField(tag, obj, pbf) {
1580
+ if (tag === 1)
1581
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
1582
+ else if (tag === 2)
1583
+ obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1584
+ else if (tag === 3)
1585
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1586
+ else if (tag === 4)
1587
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1588
+ else if (tag === 5)
1589
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
1590
+ else if (tag === 6) {
1591
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
1592
+ obj.numericProps[entry.key] = entry.value;
1593
+ } else if (tag === 7)
1594
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
1595
+ }
1596
+ };
1597
+ var PolygonsReader = class {
1598
+ static read(pbf, end) {
1599
+ return pbf.readFields(
1600
+ PolygonsReader._readField,
1601
+ {
1602
+ positions: null,
1603
+ polygonIndices: null,
1604
+ globalFeatureIds: null,
1605
+ featureIds: null,
1606
+ primitivePolygonIndices: null,
1607
+ triangles: null,
1608
+ properties: [],
1609
+ numericProps: {},
1610
+ fields: []
1611
+ },
1612
+ end
1613
+ );
1614
+ }
1615
+ static _readField(tag, obj, pbf) {
1616
+ if (tag === 1)
1617
+ obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);
1618
+ else if (tag === 2)
1619
+ obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1620
+ else if (tag === 3)
1621
+ obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1622
+ else if (tag === 4)
1623
+ obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1624
+ else if (tag === 5)
1625
+ obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1626
+ else if (tag === 6)
1627
+ obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);
1628
+ else if (tag === 7)
1629
+ obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));
1630
+ else if (tag === 8) {
1631
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
1632
+ obj.numericProps[entry.key] = entry.value;
1633
+ } else if (tag === 9)
1634
+ obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
1635
+ }
1636
+ };
1637
+ var TileReader = class {
1638
+ static read(pbf, end) {
1639
+ return pbf.readFields(TileReader._readField, { points: null, lines: null, polygons: null }, end);
1640
+ }
1641
+ static _readField(tag, obj, pbf) {
1642
+ if (tag === 1)
1643
+ obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);
1644
+ else if (tag === 2)
1645
+ obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);
1646
+ else if (tag === 3)
1647
+ obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);
1648
+ }
1649
+ };
1650
+
1651
+ // src/layers/schema/tile-loader-utils.ts
1652
+ var import_pbf = __toESM(require_pbf());
1653
+ function parsePbf(buffer, TileReader2) {
1654
+ const pbf = new import_pbf.default(buffer);
1655
+ const tile = TileReader2.read(pbf);
1656
+ return tile;
1657
+ }
1658
+
1659
+ // src/utils.ts
1660
+ function getWorkerUrl(id2, version) {
1661
+ return `https://unpkg.com/@deck.gl/carto@${version}/dist/${id2}-worker.js`;
1662
+ }
1663
+
1664
+ // src/layers/schema/carto-vector-tile-loader.ts
1665
+ var VERSION = true ? "8.10.0-alpha.5" : "latest";
1666
+ var id = "cartoVectorTile";
1667
+ var DEFAULT_OPTIONS = {
1668
+ cartoVectorTile: {
1669
+ workerUrl: getWorkerUrl(id, VERSION)
1670
+ }
1671
+ };
1672
+ var CartoVectorTileLoader = {
1673
+ name: "CARTO Vector Tile",
1674
+ version: VERSION,
1675
+ id,
1676
+ module: "carto",
1677
+ extensions: ["pbf"],
1678
+ mimeTypes: ["application/vnd.carto-vector-tile"],
1679
+ category: "geometry",
1680
+ parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
1681
+ parseSync: parseCartoVectorTile,
1682
+ worker: true,
1683
+ options: DEFAULT_OPTIONS
1684
+ };
1685
+ function triangulatePolygon(polygons, target, {
1686
+ startPosition,
1687
+ endPosition,
1688
+ indices
1689
+ }) {
1690
+ const coordLength = polygons.positions.size;
1691
+ const start = startPosition * coordLength;
1692
+ const end = endPosition * coordLength;
1693
+ const polygonPositions = polygons.positions.value.subarray(start, end);
1694
+ const holes = indices.slice(1).map((n) => n - startPosition);
1695
+ const triangles = (0, import_earcut.default)(polygonPositions, holes, coordLength);
1696
+ for (let t = 0, tl = triangles.length; t < tl; ++t) {
1697
+ target.push(startPosition + triangles[t]);
1698
+ }
1699
+ }
1700
+ function triangulate(polygons) {
1701
+ const { polygonIndices, positions, primitivePolygonIndices } = polygons;
1702
+ const triangles = [];
1703
+ let rangeStart = 0;
1704
+ for (let i = 0; i < polygonIndices.value.length - 1; i++) {
1705
+ const startPosition = polygonIndices.value[i];
1706
+ const endPosition = polygonIndices.value[i + 1];
1707
+ const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
1708
+ const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
1709
+ rangeStart = rangeEnd;
1710
+ triangulatePolygon(polygons, triangles, { startPosition, endPosition, indices });
1711
+ }
1712
+ polygons.triangles = { value: new Uint32Array(triangles), size: 1 };
1713
+ }
1714
+ function parseCartoVectorTile(arrayBuffer, options) {
1715
+ if (!arrayBuffer)
1716
+ return null;
1717
+ const tile = parsePbf(arrayBuffer, TileReader);
1718
+ if (tile.polygons && !tile.polygons.triangles) {
1719
+ triangulate(tile.polygons);
1720
+ }
1721
+ return tile;
1722
+ }
1723
+ var carto_vector_tile_loader_default = CartoVectorTileLoader;
1724
+
1725
+ // src/workers/cartoVectorTile.ts
1726
+ createLoaderWorker(carto_vector_tile_loader_default);
1727
+ })();