@loaders.gl/tile-converter 4.0.0-beta.1 → 4.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/3d-tiles-converter.js +31 -32
  2. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  3. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/b3dm-converter.js +5 -6
  4. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  5. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  6. package/dist/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
  7. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  8. package/dist/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/{esm/converter-cli.js → converter-cli.js} +37 -15
  11. package/dist/converter-cli.js.map +1 -0
  12. package/dist/converter.min.js +496 -328
  13. package/dist/{esm/deps-installer → deps-installer}/deps-installer.js +3 -3
  14. package/dist/deps-installer/deps-installer.js.map +1 -0
  15. package/dist/esm/i3s-server/bin/i3s-server.min.js +789 -431
  16. package/dist/{esm/i3s-converter → i3s-converter}/helpers/batch-ids-extensions.js +2 -2
  17. package/dist/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  18. package/dist/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  19. package/dist/{esm/i3s-converter → i3s-converter}/helpers/create-scene-server-path.js +2 -2
  20. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  21. package/dist/{esm/i3s-converter → i3s-converter}/helpers/feature-attributes.js +1 -1
  22. package/dist/i3s-converter/helpers/feature-attributes.js.map +1 -0
  23. package/dist/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  24. package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-converter.js +11 -11
  25. package/dist/i3s-converter/helpers/geometry-converter.js.map +1 -0
  26. package/dist/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  27. package/dist/{esm/i3s-converter → i3s-converter}/helpers/load-3d-tiles.js +1 -1
  28. package/dist/i3s-converter/helpers/load-3d-tiles.js.map +1 -0
  29. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-debug.js +2 -2
  30. package/dist/i3s-converter/helpers/node-debug.js.map +1 -0
  31. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-index-document.js +14 -15
  32. package/dist/i3s-converter/helpers/node-index-document.js.map +1 -0
  33. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-pages.js +13 -14
  34. package/dist/i3s-converter/helpers/node-pages.js.map +1 -0
  35. package/dist/{esm/i3s-converter → i3s-converter}/helpers/preprocess-3d-tiles.js +1 -1
  36. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -0
  37. package/dist/i3s-converter/helpers/tileset-traversal.js.map +1 -0
  38. package/dist/i3s-converter/i3s-converter.d.ts +6 -0
  39. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  40. package/dist/{esm/i3s-converter → i3s-converter}/i3s-converter.js +120 -111
  41. package/dist/i3s-converter/i3s-converter.js.map +1 -0
  42. package/dist/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  43. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/layers.js +1 -1
  44. package/dist/i3s-converter/json-templates/layers.js.map +1 -0
  45. package/dist/i3s-converter/json-templates/metadata.js.map +1 -0
  46. package/dist/i3s-converter/json-templates/node.js.map +1 -0
  47. package/dist/i3s-converter/json-templates/scene-server.js.map +1 -0
  48. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/shared-resources.js +2 -2
  49. package/dist/i3s-converter/json-templates/shared-resources.js.map +1 -0
  50. package/dist/i3s-converter/json-templates/store.js.map +1 -0
  51. package/dist/i3s-converter/types.js.map +1 -0
  52. package/dist/{esm/i3s-server → i3s-server}/app.js +1 -1
  53. package/dist/i3s-server/app.js.map +1 -0
  54. package/dist/{esm/i3s-server → i3s-server}/bin/www.js +4 -4
  55. package/dist/i3s-server/bin/www.js.map +1 -0
  56. package/dist/{esm/i3s-server → i3s-server}/controllers/index-controller.js +1 -1
  57. package/dist/i3s-server/controllers/index-controller.js.map +1 -0
  58. package/dist/i3s-server/controllers/slpk-controller.d.ts +2 -3
  59. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
  60. package/dist/i3s-server/controllers/slpk-controller.js +19 -0
  61. package/dist/i3s-server/controllers/slpk-controller.js.map +1 -0
  62. package/dist/i3s-server/routes/index.js.map +1 -0
  63. package/dist/{esm/i3s-server → i3s-server}/routes/slpk-router.js +2 -2
  64. package/dist/i3s-server/routes/slpk-router.js.map +1 -0
  65. package/dist/i3s-server/utils/create-scene-server.js.map +1 -0
  66. package/dist/{esm/i3s-server → i3s-server}/utils/server-utils.js +5 -5
  67. package/dist/i3s-server/utils/server-utils.js.map +1 -0
  68. package/dist/index.cjs +5129 -0
  69. package/dist/index.js +3 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/{esm/lib → lib}/utils/cli-utils.js +2 -2
  72. package/dist/lib/utils/cli-utils.js.map +1 -0
  73. package/dist/{esm/lib → lib}/utils/compress-util.js +15 -15
  74. package/dist/lib/utils/compress-util.js.map +1 -0
  75. package/dist/{esm/lib → lib}/utils/file-utils.js +5 -5
  76. package/dist/lib/utils/file-utils.js.map +1 -0
  77. package/dist/lib/utils/geometry-utils.js.map +1 -0
  78. package/dist/lib/utils/lod-conversion-utils.js.map +1 -0
  79. package/dist/lib/utils/queue.js.map +1 -0
  80. package/dist/lib/utils/statistic-utills.d.js +2 -0
  81. package/dist/lib/utils/statistic-utills.d.js.map +1 -0
  82. package/dist/{esm/lib → lib}/utils/statistic-utills.js +6 -6
  83. package/dist/lib/utils/statistic-utills.js.map +1 -0
  84. package/dist/{esm/lib → lib}/utils/write-queue.js +6 -7
  85. package/dist/lib/utils/write-queue.js.map +1 -0
  86. package/dist/{esm/pgm-loader.js → pgm-loader.js} +1 -1
  87. package/dist/pgm-loader.js.map +1 -0
  88. package/dist/{esm/slpk-extractor → slpk-extractor}/slpk-extractor.js +4 -4
  89. package/dist/slpk-extractor/slpk-extractor.js.map +1 -0
  90. package/dist/{esm/slpk-extractor-cli.js → slpk-extractor-cli.js} +6 -6
  91. package/dist/slpk-extractor-cli.js.map +1 -0
  92. package/dist/slpk-extractor.min.js +286 -140
  93. package/package.json +29 -22
  94. package/src/converter-cli.ts +32 -14
  95. package/src/i3s-converter/i3s-converter.ts +44 -30
  96. package/src/i3s-server/controllers/slpk-controller.ts +12 -10
  97. package/src/slpk-extractor/slpk-extractor.ts +1 -1
  98. package/dist/bundle.d.ts +0 -2
  99. package/dist/bundle.d.ts.map +0 -1
  100. package/dist/dist.min.js +0 -64291
  101. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +0 -447
  102. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  103. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +0 -295
  104. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  105. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -18
  106. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  107. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js +0 -63
  108. package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  109. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -33
  110. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  111. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -61
  112. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  113. package/dist/es5/bundle.js +0 -6
  114. package/dist/es5/bundle.js.map +0 -1
  115. package/dist/es5/constants.js +0 -9
  116. package/dist/es5/constants.js.map +0 -1
  117. package/dist/es5/converter-cli.js +0 -249
  118. package/dist/es5/converter-cli.js.map +0 -1
  119. package/dist/es5/deps-installer/deps-installer.js +0 -198
  120. package/dist/es5/deps-installer/deps-installer.js.map +0 -1
  121. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +0 -146
  122. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  123. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -89
  124. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  125. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -41
  126. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  127. package/dist/es5/i3s-converter/helpers/feature-attributes.js +0 -164
  128. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +0 -1
  129. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +0 -253
  130. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  131. package/dist/es5/i3s-converter/helpers/geometry-converter.js +0 -1190
  132. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +0 -1
  133. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +0 -113
  134. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  135. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js +0 -148
  136. package/dist/es5/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  137. package/dist/es5/i3s-converter/helpers/node-debug.js +0 -76
  138. package/dist/es5/i3s-converter/helpers/node-debug.js.map +0 -1
  139. package/dist/es5/i3s-converter/helpers/node-index-document.js +0 -522
  140. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +0 -1
  141. package/dist/es5/i3s-converter/helpers/node-pages.js +0 -519
  142. package/dist/es5/i3s-converter/helpers/node-pages.js.map +0 -1
  143. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +0 -146
  144. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  145. package/dist/es5/i3s-converter/helpers/tileset-traversal.js +0 -82
  146. package/dist/es5/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  147. package/dist/es5/i3s-converter/i3s-converter.js +0 -1554
  148. package/dist/es5/i3s-converter/i3s-converter.js.map +0 -1
  149. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +0 -107
  150. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  151. package/dist/es5/i3s-converter/json-templates/layers.js +0 -163
  152. package/dist/es5/i3s-converter/json-templates/layers.js.map +0 -1
  153. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -31
  154. package/dist/es5/i3s-converter/json-templates/metadata.js.map +0 -1
  155. package/dist/es5/i3s-converter/json-templates/node.js +0 -99
  156. package/dist/es5/i3s-converter/json-templates/node.js.map +0 -1
  157. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -39
  158. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +0 -1
  159. package/dist/es5/i3s-converter/json-templates/shared-resources.js +0 -173
  160. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +0 -1
  161. package/dist/es5/i3s-converter/json-templates/store.js +0 -107
  162. package/dist/es5/i3s-converter/json-templates/store.js.map +0 -1
  163. package/dist/es5/i3s-converter/types.js +0 -18
  164. package/dist/es5/i3s-converter/types.js.map +0 -1
  165. package/dist/es5/i3s-server/app.js +0 -35
  166. package/dist/es5/i3s-server/app.js.map +0 -1
  167. package/dist/es5/i3s-server/bin/www.js +0 -33
  168. package/dist/es5/i3s-server/bin/www.js.map +0 -1
  169. package/dist/es5/i3s-server/controllers/index-controller.js +0 -56
  170. package/dist/es5/i3s-server/controllers/index-controller.js.map +0 -1
  171. package/dist/es5/i3s-server/controllers/slpk-controller.js +0 -81
  172. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +0 -1
  173. package/dist/es5/i3s-server/routes/index.js +0 -37
  174. package/dist/es5/i3s-server/routes/index.js.map +0 -1
  175. package/dist/es5/i3s-server/routes/slpk-router.js +0 -72
  176. package/dist/es5/i3s-server/routes/slpk-router.js.map +0 -1
  177. package/dist/es5/i3s-server/utils/create-scene-server.js +0 -20
  178. package/dist/es5/i3s-server/utils/create-scene-server.js.map +0 -1
  179. package/dist/es5/i3s-server/utils/server-utils.js +0 -49
  180. package/dist/es5/i3s-server/utils/server-utils.js.map +0 -1
  181. package/dist/es5/index.js +0 -21
  182. package/dist/es5/index.js.map +0 -1
  183. package/dist/es5/lib/utils/cli-utils.js +0 -57
  184. package/dist/es5/lib/utils/cli-utils.js.map +0 -1
  185. package/dist/es5/lib/utils/compress-util.js +0 -346
  186. package/dist/es5/lib/utils/compress-util.js.map +0 -1
  187. package/dist/es5/lib/utils/file-utils.js +0 -208
  188. package/dist/es5/lib/utils/file-utils.js.map +0 -1
  189. package/dist/es5/lib/utils/geometry-utils.js +0 -15
  190. package/dist/es5/lib/utils/geometry-utils.js.map +0 -1
  191. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -50
  192. package/dist/es5/lib/utils/lod-conversion-utils.js.map +0 -1
  193. package/dist/es5/lib/utils/queue.js +0 -47
  194. package/dist/es5/lib/utils/queue.js.map +0 -1
  195. package/dist/es5/lib/utils/statistic-utills.d.ts +0 -25
  196. package/dist/es5/lib/utils/statistic-utills.js +0 -147
  197. package/dist/es5/lib/utils/statistic-utills.js.map +0 -1
  198. package/dist/es5/lib/utils/write-queue.js +0 -214
  199. package/dist/es5/lib/utils/write-queue.js.map +0 -1
  200. package/dist/es5/pgm-loader.js +0 -49
  201. package/dist/es5/pgm-loader.js.map +0 -1
  202. package/dist/es5/slpk-extractor/slpk-extractor.js +0 -171
  203. package/dist/es5/slpk-extractor/slpk-extractor.js.map +0 -1
  204. package/dist/es5/slpk-extractor-cli.js +0 -117
  205. package/dist/es5/slpk-extractor-cli.js.map +0 -1
  206. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  207. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  208. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  209. package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  210. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  211. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  212. package/dist/esm/bundle.js +0 -4
  213. package/dist/esm/bundle.js.map +0 -1
  214. package/dist/esm/constants.js.map +0 -1
  215. package/dist/esm/converter-cli.js.map +0 -1
  216. package/dist/esm/deps-installer/deps-installer.js.map +0 -1
  217. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  218. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  219. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  220. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +0 -1
  221. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  222. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +0 -1
  223. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  224. package/dist/esm/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  225. package/dist/esm/i3s-converter/helpers/node-debug.js.map +0 -1
  226. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +0 -1
  227. package/dist/esm/i3s-converter/helpers/node-pages.js.map +0 -1
  228. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  229. package/dist/esm/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  230. package/dist/esm/i3s-converter/i3s-converter.js.map +0 -1
  231. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  232. package/dist/esm/i3s-converter/json-templates/layers.js.map +0 -1
  233. package/dist/esm/i3s-converter/json-templates/metadata.js.map +0 -1
  234. package/dist/esm/i3s-converter/json-templates/node.js.map +0 -1
  235. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +0 -1
  236. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +0 -1
  237. package/dist/esm/i3s-converter/json-templates/store.js.map +0 -1
  238. package/dist/esm/i3s-converter/types.js.map +0 -1
  239. package/dist/esm/i3s-server/README.md +0 -63
  240. package/dist/esm/i3s-server/app.js.map +0 -1
  241. package/dist/esm/i3s-server/bin/www.js.map +0 -1
  242. package/dist/esm/i3s-server/certs/cert.pem +0 -19
  243. package/dist/esm/i3s-server/certs/key.pem +0 -27
  244. package/dist/esm/i3s-server/controllers/index-controller.js.map +0 -1
  245. package/dist/esm/i3s-server/controllers/slpk-controller.js +0 -19
  246. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +0 -1
  247. package/dist/esm/i3s-server/routes/index.js.map +0 -1
  248. package/dist/esm/i3s-server/routes/slpk-router.js.map +0 -1
  249. package/dist/esm/i3s-server/utils/create-scene-server.js.map +0 -1
  250. package/dist/esm/i3s-server/utils/server-utils.js.map +0 -1
  251. package/dist/esm/index.js +0 -3
  252. package/dist/esm/index.js.map +0 -1
  253. package/dist/esm/lib/utils/cli-utils.js.map +0 -1
  254. package/dist/esm/lib/utils/compress-util.js.map +0 -1
  255. package/dist/esm/lib/utils/file-utils.js.map +0 -1
  256. package/dist/esm/lib/utils/geometry-utils.js.map +0 -1
  257. package/dist/esm/lib/utils/lod-conversion-utils.js.map +0 -1
  258. package/dist/esm/lib/utils/queue.js.map +0 -1
  259. package/dist/esm/lib/utils/statistic-utills.d.ts +0 -25
  260. package/dist/esm/lib/utils/statistic-utills.js.map +0 -1
  261. package/dist/esm/lib/utils/write-queue.js.map +0 -1
  262. package/dist/esm/pgm-loader.js.map +0 -1
  263. package/dist/esm/slpk-extractor/slpk-extractor.js.map +0 -1
  264. package/dist/esm/slpk-extractor-cli.js.map +0 -1
  265. package/src/bundle.ts +0 -4
  266. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/i3s-obb-to-3d-tiles-obb.js +0 -0
  267. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/load-i3s.js +0 -0
  268. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/texture-atlas.js +0 -0
  269. /package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/json-templates/tileset.js +0 -0
  270. /package/dist/{esm/constants.js → constants.js} +0 -0
  271. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/coordinate-converter.js +0 -0
  272. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-attributes.js +0 -0
  273. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/gltf-attributes.js +0 -0
  274. /package/dist/{esm/i3s-converter → i3s-converter}/helpers/tileset-traversal.js +0 -0
  275. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/geometry-definitions.js +0 -0
  276. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/metadata.js +0 -0
  277. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/node.js +0 -0
  278. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/scene-server.js +0 -0
  279. /package/dist/{esm/i3s-converter → i3s-converter}/json-templates/store.js +0 -0
  280. /package/dist/{esm/i3s-converter → i3s-converter}/types.js +0 -0
  281. /package/dist/{es5/i3s-server → i3s-server}/README.md +0 -0
  282. /package/dist/{es5/i3s-server → i3s-server}/certs/cert.pem +0 -0
  283. /package/dist/{es5/i3s-server → i3s-server}/certs/key.pem +0 -0
  284. /package/dist/{esm/i3s-server → i3s-server}/routes/index.js +0 -0
  285. /package/dist/{esm/i3s-server → i3s-server}/utils/create-scene-server.js +0 -0
  286. /package/dist/{esm/lib → lib}/utils/geometry-utils.js +0 -0
  287. /package/dist/{esm/lib → lib}/utils/lod-conversion-utils.js +0 -0
  288. /package/dist/{esm/lib → lib}/utils/queue.js +0 -0
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getFileNameByUrl = getFileNameByUrl;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _path = _interopRequireDefault(require("path"));
11
- var _fs = _interopRequireDefault(require("fs"));
12
- var promises = _fs.default.promises;
13
- var I3S_LAYER_PATH = process.env.I3sLayerPath || '';
14
- function getFileNameByUrl(_x) {
15
- return _getFileNameByUrl.apply(this, arguments);
16
- }
17
- function _getFileNameByUrl() {
18
- _getFileNameByUrl = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(url) {
19
- var extensions, FULL_LAYER_PATH, _i, _extensions, ext, fileName;
20
- return _regenerator.default.wrap(function _callee$(_context) {
21
- while (1) switch (_context.prev = _context.next) {
22
- case 0:
23
- extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];
24
- FULL_LAYER_PATH = _path.default.join(process.cwd(), I3S_LAYER_PATH);
25
- _i = 0, _extensions = extensions;
26
- case 3:
27
- if (!(_i < _extensions.length)) {
28
- _context.next = 18;
29
- break;
30
- }
31
- ext = _extensions[_i];
32
- fileName = "".concat(FULL_LAYER_PATH).concat(url, "/index.").concat(ext);
33
- _context.prev = 6;
34
- _context.next = 9;
35
- return promises.access(fileName);
36
- case 9:
37
- return _context.abrupt("return", fileName);
38
- case 12:
39
- _context.prev = 12;
40
- _context.t0 = _context["catch"](6);
41
- return _context.abrupt("continue", 15);
42
- case 15:
43
- _i++;
44
- _context.next = 3;
45
- break;
46
- case 18:
47
- return _context.abrupt("return", null);
48
- case 19:
49
- case "end":
50
- return _context.stop();
51
- }
52
- }, _callee, null, [[6, 12]]);
53
- }));
54
- return _getFileNameByUrl.apply(this, arguments);
55
- }
56
- //# sourceMappingURL=index-controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-controller.js","names":["_path","_interopRequireDefault","require","_fs","promises","fs","I3S_LAYER_PATH","process","env","I3sLayerPath","getFileNameByUrl","_x","_getFileNameByUrl","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","url","extensions","FULL_LAYER_PATH","_i","_extensions","ext","fileName","wrap","_callee$","_context","prev","next","path","join","cwd","length","concat","access","abrupt","t0","stop"],"sources":["../../../../src/i3s-server/controllers/index-controller.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\n\nconst {promises} = fs;\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || '';\n\n/**\n * Get local file name by input HTTP URL\n * @param url - I3S HTTP service url\n * @returns - local file name\n */\nexport async function getFileNameByUrl(url: string): Promise<string | null> {\n const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];\n const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);\n for (const ext of extensions) {\n const fileName = `${FULL_LAYER_PATH}${url}/index.${ext}`;\n try {\n await promises.access(fileName);\n return fileName;\n } catch {\n continue; // eslint-disable-line no-continue\n }\n }\n return null;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAOE,QAAQ,GAAIC,WAAE,CAAdD,QAAQ;AAEf,IAAME,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,EAAE;AAAC,SAOhCC,gBAAgBA,CAAAC,EAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAAC,QAAgCC,GAAW;IAAA,IAAAC,UAAA,EAAAC,eAAA,EAAAC,EAAA,EAAAC,WAAA,EAAAC,GAAA,EAAAC,QAAA;IAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC1CV,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;UACrEC,eAAe,GAAGU,aAAI,CAACC,IAAI,CAAC1B,OAAO,CAAC2B,GAAG,CAAC,CAAC,EAAE5B,cAAc,CAAC;UAAAiB,EAAA,MAAAC,WAAA,GAC9CH,UAAU;QAAA;UAAA,MAAAE,EAAA,GAAAC,WAAA,CAAAW,MAAA;YAAAN,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAjBN,GAAG,GAAAD,WAAA,CAAAD,EAAA;UACNG,QAAQ,MAAAU,MAAA,CAAMd,eAAe,EAAAc,MAAA,CAAGhB,GAAG,aAAAgB,MAAA,CAAUX,GAAG;UAAAI,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAE9C3B,QAAQ,CAACiC,MAAM,CAACX,QAAQ,CAAC;QAAA;UAAA,OAAAG,QAAA,CAAAS,MAAA,WACxBZ,QAAQ;QAAA;UAAAG,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAU,EAAA,GAAAV,QAAA;UAAA,OAAAA,QAAA,CAAAS,MAAA;QAAA;UAAAf,EAAA;UAAAM,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,OAAAF,QAAA,CAAAS,MAAA,WAKZ,IAAI;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAW,IAAA;MAAA;IAAA,GAAArB,OAAA;EAAA,CACZ;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getFileByUrl = getFileByUrl;
8
- exports.loadArchive = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- require("@loaders.gl/polyfills");
12
- var _i3s = require("@loaders.gl/i3s");
13
- var _loaderUtils = require("@loaders.gl/loader-utils");
14
- var slpkArchive;
15
- var loadArchive = function () {
16
- var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fullLayerPath) {
17
- return _regenerator.default.wrap(function _callee$(_context) {
18
- while (1) switch (_context.prev = _context.next) {
19
- case 0:
20
- _context.t0 = _i3s.parseSLPK;
21
- _context.next = 3;
22
- return _loaderUtils.FileHandleFile.from(fullLayerPath);
23
- case 3:
24
- _context.t1 = _context.sent;
25
- _context.t2 = function (msg) {
26
- return console.log(msg);
27
- };
28
- _context.next = 7;
29
- return (0, _context.t0)(_context.t1, _context.t2);
30
- case 7:
31
- slpkArchive = _context.sent;
32
- console.log('The server is ready to use');
33
- case 9:
34
- case "end":
35
- return _context.stop();
36
- }
37
- }, _callee);
38
- }));
39
- return function loadArchive(_x) {
40
- return _ref.apply(this, arguments);
41
- };
42
- }();
43
- exports.loadArchive = loadArchive;
44
- function getFileByUrl(_x2) {
45
- return _getFileByUrl.apply(this, arguments);
46
- }
47
- function _getFileByUrl() {
48
- _getFileByUrl = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(url) {
49
- var trimmedPath, uncompressedFile;
50
- return _regenerator.default.wrap(function _callee2$(_context2) {
51
- while (1) switch (_context2.prev = _context2.next) {
52
- case 0:
53
- trimmedPath = /^\/?(.*)\/?$/.exec(url);
54
- uncompressedFile = null;
55
- if (!trimmedPath) {
56
- _context2.next = 13;
57
- break;
58
- }
59
- _context2.prev = 3;
60
- _context2.t0 = Buffer;
61
- _context2.next = 7;
62
- return slpkArchive.getFile(trimmedPath[1], 'http');
63
- case 7:
64
- _context2.t1 = _context2.sent;
65
- uncompressedFile = _context2.t0.from.call(_context2.t0, _context2.t1);
66
- _context2.next = 13;
67
- break;
68
- case 11:
69
- _context2.prev = 11;
70
- _context2.t2 = _context2["catch"](3);
71
- case 13:
72
- return _context2.abrupt("return", uncompressedFile);
73
- case 14:
74
- case "end":
75
- return _context2.stop();
76
- }
77
- }, _callee2, null, [[3, 11]]);
78
- }));
79
- return _getFileByUrl.apply(this, arguments);
80
- }
81
- //# sourceMappingURL=slpk-controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slpk-controller.js","names":["require","_i3s","_loaderUtils","slpkArchive","loadArchive","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fullLayerPath","wrap","_callee$","_context","prev","next","t0","parseSLPK","FileHandleFile","from","t1","sent","t2","msg","console","log","stop","_x","apply","arguments","exports","getFileByUrl","_x2","_getFileByUrl","_callee2","url","trimmedPath","uncompressedFile","_callee2$","_context2","exec","Buffer","getFile","call","abrupt"],"sources":["../../../../src/i3s-server/controllers/slpk-controller.ts"],"sourcesContent":["import '@loaders.gl/polyfills';\nimport {parseSLPK} from '@loaders.gl/i3s';\nimport {FileHandleFile} from '@loaders.gl/loader-utils';\n\nlet slpkArchive;\n\n/**\n * Open SLPK file for reading and load HASH file\n * @param fullLayerPath - full path to SLPK file\n */\nexport const loadArchive = async (fullLayerPath: string): Promise<void> => {\n slpkArchive = await parseSLPK(await FileHandleFile.from(fullLayerPath), (msg) =>\n console.log(msg)\n );\n console.log('The server is ready to use');\n};\n\n/**\n * Get a file from SLPK\n * @param url - I3S HTTP URL\n * @returns - file content\n */\nexport async function getFileByUrl(url: string) {\n const trimmedPath = /^\\/?(.*)\\/?$/.exec(url);\n let uncompressedFile: Buffer | null = null;\n if (trimmedPath) {\n try {\n uncompressedFile = Buffer.from(await slpkArchive.getFile(trimmedPath[1], 'http'));\n } catch (e) {}\n }\n return uncompressedFile;\n}\n"],"mappings":";;;;;;;;;;AAAAA,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAEA,IAAIG,WAAW;AAMR,IAAMC,WAAW;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QAAOC,aAAqB;IAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAG,EAAA,GACjCC,cAAS;UAAAJ,QAAA,CAAAE,IAAA;UAAA,OAAOG,2BAAc,CAACC,IAAI,CAACT,aAAa,CAAC;QAAA;UAAAG,QAAA,CAAAO,EAAA,GAAAP,QAAA,CAAAQ,IAAA;UAAAR,QAAA,CAAAS,EAAA,GAAE,UAACC,GAAG;YAAA,OAC1EC,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC;UAAA;UAAAV,QAAA,CAAAE,IAAA;UAAA,WAAAF,QAAA,CAAAG,EAAA,EAAAH,QAAA,CAAAO,EAAA,EAAAP,QAAA,CAAAS,EAAA;QAAA;UADlBpB,WAAW,GAAAW,QAAA,CAAAQ,IAAA;UAGXG,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;QAAC;QAAA;UAAA,OAAAZ,QAAA,CAAAa,IAAA;MAAA;IAAA,GAAAjB,OAAA;EAAA,CAC3C;EAAA,gBALYN,WAAWA,CAAAwB,EAAA;IAAA,OAAAvB,IAAA,CAAAwB,KAAA,OAAAC,SAAA;EAAA;AAAA,GAKvB;AAACC,OAAA,CAAA3B,WAAA,GAAAA,WAAA;AAAA,SAOoB4B,YAAYA,CAAAC,GAAA;EAAA,OAAAC,aAAA,CAAAL,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAI,cAAA;EAAAA,aAAA,OAAA5B,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA3B,SAAA0B,SAA4BC,GAAW;IAAA,IAAAC,WAAA,EAAAC,gBAAA;IAAA,OAAA9B,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAA2B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAzB,IAAA,GAAAyB,SAAA,CAAAxB,IAAA;QAAA;UACtCqB,WAAW,GAAG,cAAc,CAACI,IAAI,CAACL,GAAG,CAAC;UACxCE,gBAA+B,GAAG,IAAI;UAAA,KACtCD,WAAW;YAAAG,SAAA,CAAAxB,IAAA;YAAA;UAAA;UAAAwB,SAAA,CAAAzB,IAAA;UAAAyB,SAAA,CAAAvB,EAAA,GAEQyB,MAAM;UAAAF,SAAA,CAAAxB,IAAA;UAAA,OAAYb,WAAW,CAACwC,OAAO,CAACN,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAA;UAAAG,SAAA,CAAAnB,EAAA,GAAAmB,SAAA,CAAAlB,IAAA;UAAhFgB,gBAAgB,GAAAE,SAAA,CAAAvB,EAAA,CAAUG,IAAI,CAAAwB,IAAA,CAAAJ,SAAA,CAAAvB,EAAA,EAAAuB,SAAA,CAAAnB,EAAA;UAAAmB,SAAA,CAAAxB,IAAA;UAAA;QAAA;UAAAwB,SAAA,CAAAzB,IAAA;UAAAyB,SAAA,CAAAjB,EAAA,GAAAiB,SAAA;QAAA;UAAA,OAAAA,SAAA,CAAAK,MAAA,WAG3BP,gBAAgB;QAAA;QAAA;UAAA,OAAAE,SAAA,CAAAb,IAAA;MAAA;IAAA,GAAAQ,QAAA;EAAA,CACxB;EAAA,OAAAD,aAAA,CAAAL,KAAA,OAAAC,SAAA;AAAA"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _express = _interopRequireDefault(require("express"));
7
- var router = _express.default.Router();
8
- var _require = require('../controllers/index-controller'),
9
- getFileNameByUrl = _require.getFileNameByUrl;
10
- router.get('*', function () {
11
- var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(req, res, next) {
12
- var fileName;
13
- return _regenerator.default.wrap(function _callee$(_context) {
14
- while (1) switch (_context.prev = _context.next) {
15
- case 0:
16
- _context.next = 2;
17
- return getFileNameByUrl(req.path);
18
- case 2:
19
- fileName = _context.sent;
20
- if (fileName) {
21
- res.sendFile(fileName);
22
- } else {
23
- res.status(404);
24
- res.send('File not found');
25
- }
26
- case 4:
27
- case "end":
28
- return _context.stop();
29
- }
30
- }, _callee);
31
- }));
32
- return function (_x, _x2, _x3) {
33
- return _ref.apply(this, arguments);
34
- };
35
- }());
36
- module.exports = router;
37
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_express","_interopRequireDefault","require","router","express","Router","_require","getFileNameByUrl","get","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","req","res","next","fileName","wrap","_callee$","_context","prev","path","sent","sendFile","status","send","stop","_x","_x2","_x3","apply","arguments","module","exports"],"sources":["../../../../src/i3s-server/routes/index.ts"],"sourcesContent":["import express from 'express';\n\nconst router = express.Router();\nconst {getFileNameByUrl} = require('../controllers/index-controller');\n\n/* GET home page. */\nrouter.get('*', async function (req, res, next) {\n const fileName = await getFileNameByUrl(req.path);\n if (fileName) {\n res.sendFile(fileName);\n } else {\n res.status(404);\n res.send('File not found');\n }\n});\n\nmodule.exports = router;\n"],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;AAC/B,IAAAC,QAAA,GAA2BJ,OAAO,CAAC,iCAAiC,CAAC;EAA9DK,gBAAgB,GAAAD,QAAA,CAAhBC,gBAAgB;AAGvBJ,MAAM,CAACK,GAAG,CAAC,GAAG;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAgBC,GAAG,EAAEC,GAAG,EAAEC,IAAI;IAAA,IAAAC,QAAA;IAAA,OAAAN,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAJ,IAAA;QAAA;UAAAI,QAAA,CAAAJ,IAAA;UAAA,OACrBV,gBAAgB,CAACQ,GAAG,CAACQ,IAAI,CAAC;QAAA;UAA3CL,QAAQ,GAAAG,QAAA,CAAAG,IAAA;UACd,IAAIN,QAAQ,EAAE;YACZF,GAAG,CAACS,QAAQ,CAACP,QAAQ,CAAC;UACxB,CAAC,MAAM;YACLF,GAAG,CAACU,MAAM,CAAC,GAAG,CAAC;YACfV,GAAG,CAACW,IAAI,CAAC,gBAAgB,CAAC;UAC5B;QAAC;QAAA;UAAA,OAAAN,QAAA,CAAAO,IAAA;MAAA;IAAA,GAAAd,OAAA;EAAA,CACF;EAAA,iBAAAe,EAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAtB,IAAA,CAAAuB,KAAA,OAAAC,SAAA;EAAA;AAAA,IAAC;AAEFC,MAAM,CAACC,OAAO,GAAGhC,MAAM"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.sceneServerRouter = exports.router = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _express = _interopRequireDefault(require("express"));
11
- var _slpkController = require("../controllers/slpk-controller");
12
- var _createSceneServer = require("../utils/create-scene-server");
13
- var sceneServerRouter = _express.default.Router();
14
- exports.sceneServerRouter = sceneServerRouter;
15
- sceneServerRouter.get('*', function () {
16
- var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(req, res, next) {
17
- var file, layer, sceneServerResponse;
18
- return _regenerator.default.wrap(function _callee$(_context) {
19
- while (1) switch (_context.prev = _context.next) {
20
- case 0:
21
- _context.next = 2;
22
- return (0, _slpkController.getFileByUrl)('/');
23
- case 2:
24
- file = _context.sent;
25
- if (file) {
26
- layer = JSON.parse(file.toString());
27
- sceneServerResponse = (0, _createSceneServer.createSceneServer)(layer.name, layer);
28
- res.send(sceneServerResponse);
29
- } else {
30
- res.status(404);
31
- res.send('File not found');
32
- }
33
- case 4:
34
- case "end":
35
- return _context.stop();
36
- }
37
- }, _callee);
38
- }));
39
- return function (_x, _x2, _x3) {
40
- return _ref.apply(this, arguments);
41
- };
42
- }());
43
- var router = _express.default.Router();
44
- exports.router = router;
45
- router.get('*', function () {
46
- var _ref2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(req, res, next) {
47
- var file;
48
- return _regenerator.default.wrap(function _callee2$(_context2) {
49
- while (1) switch (_context2.prev = _context2.next) {
50
- case 0:
51
- console.log(req.path);
52
- _context2.next = 3;
53
- return (0, _slpkController.getFileByUrl)(req.path);
54
- case 3:
55
- file = _context2.sent;
56
- if (file) {
57
- res.send(file);
58
- } else {
59
- res.status(404);
60
- res.send('File not found');
61
- }
62
- case 5:
63
- case "end":
64
- return _context2.stop();
65
- }
66
- }, _callee2);
67
- }));
68
- return function (_x4, _x5, _x6) {
69
- return _ref2.apply(this, arguments);
70
- };
71
- }());
72
- //# sourceMappingURL=slpk-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slpk-router.js","names":["_express","_interopRequireDefault","require","_slpkController","_createSceneServer","sceneServerRouter","express","Router","exports","get","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","req","res","next","file","layer","sceneServerResponse","wrap","_callee$","_context","prev","getFileByUrl","sent","JSON","parse","toString","createSceneServer","name","send","status","stop","_x","_x2","_x3","apply","arguments","router","_ref2","_callee2","_callee2$","_context2","console","log","path","_x4","_x5","_x6"],"sources":["../../../../src/i3s-server/routes/slpk-router.ts"],"sourcesContent":["import express from 'express';\nimport {getFileByUrl} from '../controllers/slpk-controller';\nimport {createSceneServer} from '../utils/create-scene-server';\n\nexport const sceneServerRouter = express.Router();\nsceneServerRouter.get('*', async function (req, res, next) {\n const file = await getFileByUrl('/');\n if (file) {\n const layer = JSON.parse(file.toString());\n const sceneServerResponse = createSceneServer(layer.name, layer);\n res.send(sceneServerResponse);\n } else {\n res.status(404);\n res.send('File not found');\n }\n});\n\nexport const router = express.Router();\nrouter.get('*', async function (req, res, next) {\n console.log(req.path);\n const file = await getFileByUrl(req.path);\n if (file) {\n res.send(file);\n } else {\n res.status(404);\n res.send('File not found');\n }\n});\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAEO,IAAMG,iBAAiB,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;AAACC,OAAA,CAAAH,iBAAA,GAAAA,iBAAA;AAClDA,iBAAiB,CAACI,GAAG,CAAC,GAAG;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAgBC,GAAG,EAAEC,GAAG,EAAEC,IAAI;IAAA,IAAAC,IAAA,EAAAC,KAAA,EAAAC,mBAAA;IAAA,OAAAR,YAAA,CAAAD,OAAA,CAAAU,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAN,IAAA;QAAA;UAAAM,QAAA,CAAAN,IAAA;UAAA,OACpC,IAAAQ,4BAAY,EAAC,GAAG,CAAC;QAAA;UAA9BP,IAAI,GAAAK,QAAA,CAAAG,IAAA;UACV,IAAIR,IAAI,EAAE;YACFC,KAAK,GAAGQ,IAAI,CAACC,KAAK,CAACV,IAAI,CAACW,QAAQ,CAAC,CAAC,CAAC;YACnCT,mBAAmB,GAAG,IAAAU,oCAAiB,EAACX,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAAC;YAChEH,GAAG,CAACgB,IAAI,CAACZ,mBAAmB,CAAC;UAC/B,CAAC,MAAM;YACLJ,GAAG,CAACiB,MAAM,CAAC,GAAG,CAAC;YACfjB,GAAG,CAACgB,IAAI,CAAC,gBAAgB,CAAC;UAC5B;QAAC;QAAA;UAAA,OAAAT,QAAA,CAAAW,IAAA;MAAA;IAAA,GAAApB,OAAA;EAAA,CACF;EAAA,iBAAAqB,EAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAA5B,IAAA,CAAA6B,KAAA,OAAAC,SAAA;EAAA;AAAA,IAAC;AAEK,IAAMC,MAAM,GAAGnC,gBAAO,CAACC,MAAM,CAAC,CAAC;AAACC,OAAA,CAAAiC,MAAA,GAAAA,MAAA;AACvCA,MAAM,CAAChC,GAAG,CAAC,GAAG;EAAA,IAAAiC,KAAA,OAAA/B,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA6B,SAAgB3B,GAAG,EAAEC,GAAG,EAAEC,IAAI;IAAA,IAAAC,IAAA;IAAA,OAAAN,YAAA,CAAAD,OAAA,CAAAU,IAAA,UAAAsB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApB,IAAA,GAAAoB,SAAA,CAAA3B,IAAA;QAAA;UAC5C4B,OAAO,CAACC,GAAG,CAAC/B,GAAG,CAACgC,IAAI,CAAC;UAACH,SAAA,CAAA3B,IAAA;UAAA,OACH,IAAAQ,4BAAY,EAACV,GAAG,CAACgC,IAAI,CAAC;QAAA;UAAnC7B,IAAI,GAAA0B,SAAA,CAAAlB,IAAA;UACV,IAAIR,IAAI,EAAE;YACRF,GAAG,CAACgB,IAAI,CAACd,IAAI,CAAC;UAChB,CAAC,MAAM;YACLF,GAAG,CAACiB,MAAM,CAAC,GAAG,CAAC;YACfjB,GAAG,CAACgB,IAAI,CAAC,gBAAgB,CAAC;UAC5B;QAAC;QAAA;UAAA,OAAAY,SAAA,CAAAV,IAAA;MAAA;IAAA,GAAAQ,QAAA;EAAA,CACF;EAAA,iBAAAM,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAT,KAAA,CAAAH,KAAA,OAAAC,SAAA;EAAA;AAAA,IAAC"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createSceneServer = void 0;
7
- var _uuid = require("uuid");
8
- var createSceneServer = function createSceneServer(name, layer) {
9
- return {
10
- serviceItemId: (0, _uuid.v4)().replace(/-/gi, ''),
11
- serviceName: name,
12
- name: name,
13
- currentVersion: '10.7',
14
- serviceVersion: '1.8',
15
- supportedBindings: ['REST'],
16
- layers: [layer]
17
- };
18
- };
19
- exports.createSceneServer = createSceneServer;
20
- //# sourceMappingURL=create-scene-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-scene-server.js","names":["_uuid","require","createSceneServer","name","layer","serviceItemId","uuidv4","replace","serviceName","currentVersion","serviceVersion","supportedBindings","layers","exports"],"sources":["../../../../src/i3s-server/utils/create-scene-server.ts"],"sourcesContent":["import {SceneLayer3D} from '@loaders.gl/i3s';\nimport {v4 as uuidv4} from 'uuid';\n\n/**\n * Create `/SceneServer` response\n * @param name - service name, custom user-friendly name of the service\n * @param layer - I3S layer JSON\n * @returns reponse JSON for `/SceneServer` route\n */\nexport const createSceneServer = (name: string, layer: SceneLayer3D) => {\n return {\n serviceItemId: uuidv4().replace(/-/gi, ''),\n serviceName: name,\n name,\n currentVersion: '10.7',\n serviceVersion: '1.8',\n supportedBindings: ['REST'],\n layers: [layer]\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAQO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,IAAY,EAAEC,KAAmB,EAAK;EACtE,OAAO;IACLC,aAAa,EAAE,IAAAC,QAAM,EAAC,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1CC,WAAW,EAAEL,IAAI;IACjBA,IAAI,EAAJA,IAAI;IACJM,cAAc,EAAE,MAAM;IACtBC,cAAc,EAAE,KAAK;IACrBC,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3BC,MAAM,EAAE,CAACR,KAAK;EAChB,CAAC;AACH,CAAC;AAACS,OAAA,CAAAX,iBAAA,GAAAA,iBAAA"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.formErrorHandler = formErrorHandler;
8
- exports.formListeningHandler = formListeningHandler;
9
- exports.normalizePort = normalizePort;
10
- var _debug = _interopRequireDefault(require("debug"));
11
- var debug = (0, _debug.default)('i3s-server:server');
12
- function normalizePort(val) {
13
- var chkPort = parseInt(val, 10);
14
- if (Number.isNaN(chkPort)) {
15
- return val;
16
- }
17
- if (chkPort >= 0) {
18
- return chkPort;
19
- }
20
- return false;
21
- }
22
- function formErrorHandler(optionalPort) {
23
- return function onError(error) {
24
- if (error.syscall !== 'listen') {
25
- throw error;
26
- }
27
- var bind = typeof optionalPort === 'string' ? "Pipe ".concat(optionalPort) : "Port ".concat(optionalPort);
28
- switch (error.code) {
29
- case 'EACCES':
30
- console.error("".concat(bind, " requires elevated privileges"));
31
- process.exit(1);
32
- break;
33
- case 'EADDRINUSE':
34
- console.error("".concat(bind, " is already in use"));
35
- process.exit(1);
36
- break;
37
- default:
38
- throw error;
39
- }
40
- };
41
- }
42
- function formListeningHandler(optionalServer) {
43
- return function onListening() {
44
- var addr = optionalServer.address();
45
- var bind = typeof addr === 'string' ? "pipe ".concat(addr) : "port ".concat(addr === null || addr === void 0 ? void 0 : addr.port);
46
- debug("Listening on ".concat(bind));
47
- };
48
- }
49
- //# sourceMappingURL=server-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-utils.js","names":["_debug","_interopRequireDefault","require","debug","debugFactory","normalizePort","val","chkPort","parseInt","Number","isNaN","formErrorHandler","optionalPort","onError","error","syscall","bind","concat","code","console","process","exit","formListeningHandler","optionalServer","onListening","addr","address","port"],"sources":["../../../../src/i3s-server/utils/server-utils.ts"],"sourcesContent":["import type {Server as HttpsServer} from 'https';\nimport type {Server as HttpServer} from 'http';\n\nimport debugFactory from 'debug';\nconst debug = debugFactory('i3s-server:server');\n\n/**\n * Normalize a port into a number, string, or false.\n * @param val - port value from env variables\n * @returns - `number` for port, `string` for a named pipe, or `false` if the port number is not correct\n */\nexport function normalizePort(val: string): number | string | false {\n const chkPort = parseInt(val, 10);\n\n if (Number.isNaN(chkPort)) {\n // named pipe\n return val;\n }\n\n if (chkPort >= 0) {\n // port number\n return chkPort;\n }\n\n return false;\n}\n\n/**\n * Event listener creator for HTTP/HTTPS server \"error\" event.\n * @param optionalPort - the port/named pipe the server is started on\n * @return callback to handle server errors\n */\nexport function formErrorHandler(\n optionalPort: string | number\n): (error: NodeJS.ErrnoException) => void {\n return function onError(error: NodeJS.ErrnoException) {\n if (error.syscall !== 'listen') {\n throw error;\n }\n\n const bind = typeof optionalPort === 'string' ? `Pipe ${optionalPort}` : `Port ${optionalPort}`;\n\n // handle specific listen errors with friendly messages\n switch (error.code) {\n case 'EACCES':\n console.error(`${bind} requires elevated privileges`); // eslint-disable-line no-console, no-undef\n process.exit(1); // eslint-disable-line no-process-exit, no-undef\n break;\n case 'EADDRINUSE':\n console.error(`${bind} is already in use`); // eslint-disable-line no-console, no-undef\n process.exit(1); // eslint-disable-line no-process-exit, no-undef\n break;\n default:\n throw error;\n }\n };\n}\n\n/**\n * Event listener for HTTP/HTTPS server \"listening\" event.\n * @param optionalServer - http or https NodeJS server\n * @return callback that is triggered when the server has started\n */\nexport function formListeningHandler(optionalServer: HttpsServer | HttpServer): () => void {\n return function onListening() {\n const addr = optionalServer.address();\n const bind = typeof addr === 'string' ? `pipe ${addr}` : `port ${addr?.port}`;\n debug(`Listening on ${bind}`);\n };\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAMC,KAAK,GAAG,IAAAC,cAAY,EAAC,mBAAmB,CAAC;AAOxC,SAASC,aAAaA,CAACC,GAAW,EAA2B;EAClE,IAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,EAAE,EAAE,CAAC;EAEjC,IAAIG,MAAM,CAACC,KAAK,CAACH,OAAO,CAAC,EAAE;IAEzB,OAAOD,GAAG;EACZ;EAEA,IAAIC,OAAO,IAAI,CAAC,EAAE;IAEhB,OAAOA,OAAO;EAChB;EAEA,OAAO,KAAK;AACd;AAOO,SAASI,gBAAgBA,CAC9BC,YAA6B,EACW;EACxC,OAAO,SAASC,OAAOA,CAACC,KAA4B,EAAE;IACpD,IAAIA,KAAK,CAACC,OAAO,KAAK,QAAQ,EAAE;MAC9B,MAAMD,KAAK;IACb;IAEA,IAAME,IAAI,GAAG,OAAOJ,YAAY,KAAK,QAAQ,WAAAK,MAAA,CAAWL,YAAY,YAAAK,MAAA,CAAaL,YAAY,CAAE;IAG/F,QAAQE,KAAK,CAACI,IAAI;MAChB,KAAK,QAAQ;QACXC,OAAO,CAACL,KAAK,IAAAG,MAAA,CAAID,IAAI,kCAA+B,CAAC;QACrDI,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;QACf;MACF,KAAK,YAAY;QACfF,OAAO,CAACL,KAAK,IAAAG,MAAA,CAAID,IAAI,uBAAoB,CAAC;QAC1CI,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;QACf;MACF;QACE,MAAMP,KAAK;IACf;EACF,CAAC;AACH;AAOO,SAASQ,oBAAoBA,CAACC,cAAwC,EAAc;EACzF,OAAO,SAASC,WAAWA,CAAA,EAAG;IAC5B,IAAMC,IAAI,GAAGF,cAAc,CAACG,OAAO,CAAC,CAAC;IACrC,IAAMV,IAAI,GAAG,OAAOS,IAAI,KAAK,QAAQ,WAAAR,MAAA,CAAWQ,IAAI,YAAAR,MAAA,CAAaQ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,IAAI,CAAE;IAC7ExB,KAAK,iBAAAc,MAAA,CAAiBD,IAAI,CAAE,CAAC;EAC/B,CAAC;AACH"}
package/dist/es5/index.js DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "I3SConverter", {
8
- enumerable: true,
9
- get: function get() {
10
- return _i3sConverter.default;
11
- }
12
- });
13
- Object.defineProperty(exports, "Tiles3DConverter", {
14
- enumerable: true,
15
- get: function get() {
16
- return _dTilesConverter.default;
17
- }
18
- });
19
- var _i3sConverter = _interopRequireDefault(require("./i3s-converter/i3s-converter"));
20
- var _dTilesConverter = _interopRequireDefault(require("./3d-tiles-converter/3d-tiles-converter"));
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_i3sConverter","_interopRequireDefault","require","_dTilesConverter"],"sources":["../../src/index.ts"],"sourcesContent":["export {default as I3SConverter} from './i3s-converter/i3s-converter';\nexport {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getBooleanValue = getBooleanValue;
7
- exports.getIntegerValue = getIntegerValue;
8
- exports.getStringValue = getStringValue;
9
- exports.getURLValue = getURLValue;
10
- exports.validateOptionsWithEqual = validateOptionsWithEqual;
11
- function getStringValue(index, args) {
12
- if (index + 1 >= args.length) {
13
- return '';
14
- }
15
- var value = args[index + 1];
16
- if (value.indexOf('--') === 0) {
17
- return '';
18
- }
19
- return value;
20
- }
21
- function getURLValue(index, args) {
22
- var value = getStringValue(index, args);
23
- console.log("Input tileset value: ".concat(value));
24
- console.log("Modified tileset value: ".concat(value.replace(/\\/g, '/')));
25
- return value.replace(/\\/g, '/');
26
- }
27
- function validateOptionsWithEqual(args) {
28
- return args.reduce(function (acc, curr) {
29
- var equalSignIndex = curr.indexOf('=');
30
- var beforeEqual = curr.slice(0, equalSignIndex);
31
- var afterEqual = curr.slice(equalSignIndex + 1, curr.length);
32
- var condition = curr.includes('=') && curr.startsWith('--') && afterEqual;
33
- if (condition) {
34
- return acc.concat(beforeEqual, afterEqual);
35
- }
36
- return acc.concat(curr);
37
- }, []);
38
- }
39
- function getIntegerValue(index, args) {
40
- var stringValue = getStringValue(index, args);
41
- var result = Number.parseInt(stringValue);
42
- if (isFinite(result)) {
43
- return result;
44
- }
45
- return NaN;
46
- }
47
- function getBooleanValue(index, args) {
48
- var stringValue = getStringValue(index, args).toLowerCase().trim();
49
- if (['--no-draco', '--split-nodes'].includes(args[index]) && !stringValue) {
50
- return false;
51
- }
52
- if (!stringValue || stringValue === 'true') {
53
- return true;
54
- }
55
- return false;
56
- }
57
- //# sourceMappingURL=cli-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-utils.js","names":["getStringValue","index","args","length","value","indexOf","getURLValue","console","log","concat","replace","validateOptionsWithEqual","reduce","acc","curr","equalSignIndex","beforeEqual","slice","afterEqual","condition","includes","startsWith","getIntegerValue","stringValue","result","Number","parseInt","isFinite","NaN","getBooleanValue","toLowerCase","trim"],"sources":["../../../../src/lib/utils/cli-utils.ts"],"sourcesContent":["/**\n * Get string option value from cli arguments\n * @param index - option's name index in the argument's array.\n * The value of the option should be next to name of the option.\n * @param args - cli arguments array\n * @returns - string value of the option\n */\nexport function getStringValue(index: number, args: string[]): string {\n if (index + 1 >= args.length) {\n return '';\n }\n const value = args[index + 1];\n if (value.indexOf('--') === 0) {\n return '';\n }\n return value;\n}\n\n/**\n * Modyfy URL path to be compatible with fetch\n * @param index - option's name index in the argument's array.\n * The value of the option should be next to name of the option.\n * @param args - cli arguments array\n * @returns - string value of the option\n */\nexport function getURLValue(index: number, args: string[]): string {\n const value = getStringValue(index, args);\n console.log(`Input tileset value: ${value}`);\n console.log(`Modified tileset value: ${value.replace(/\\\\/g, '/')}`);\n return value.replace(/\\\\/g, '/');\n}\n\nexport function validateOptionsWithEqual(args: string[]): string[] {\n return args.reduce((acc: string[], curr) => {\n const equalSignIndex = curr.indexOf('=');\n const beforeEqual = curr.slice(0, equalSignIndex);\n const afterEqual = curr.slice(equalSignIndex + 1, curr.length);\n const condition = curr.includes('=') && curr.startsWith('--') && afterEqual;\n if (condition) {\n return acc.concat(beforeEqual, afterEqual);\n }\n return acc.concat(curr);\n }, []);\n}\n\n/**\n * Get integer option value from cli arguments\n * @param index - option's name index in the argument's array\n * The value of the option should be next to name of the option.\n * @param args - cli arguments array\n * @returns - number value of the option\n */\nexport function getIntegerValue(index: number, args: string[]): number {\n const stringValue: string = getStringValue(index, args);\n const result: number = Number.parseInt(stringValue);\n if (isFinite(result)) {\n return result;\n }\n return NaN;\n}\n\n/**\n * Get boolean option value from cli arguments\n * @param index - option's name index in the argument's array\n * The value of the option should be next to name of the option.\n * @param args - cli arguments array\n * @returns - boolean value of the option\n */\nexport function getBooleanValue(index: number, args: string[]): boolean {\n const stringValue: string = getStringValue(index, args).toLowerCase().trim();\n if (['--no-draco', '--split-nodes'].includes(args[index]) && !stringValue) {\n return false;\n }\n if (!stringValue || stringValue === 'true') {\n return true;\n }\n return false;\n}\n"],"mappings":";;;;;;;;;;AAOO,SAASA,cAAcA,CAACC,KAAa,EAAEC,IAAc,EAAU;EACpE,IAAID,KAAK,GAAG,CAAC,IAAIC,IAAI,CAACC,MAAM,EAAE;IAC5B,OAAO,EAAE;EACX;EACA,IAAMC,KAAK,GAAGF,IAAI,CAACD,KAAK,GAAG,CAAC,CAAC;EAC7B,IAAIG,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAC7B,OAAO,EAAE;EACX;EACA,OAAOD,KAAK;AACd;AASO,SAASE,WAAWA,CAACL,KAAa,EAAEC,IAAc,EAAU;EACjE,IAAME,KAAK,GAAGJ,cAAc,CAACC,KAAK,EAAEC,IAAI,CAAC;EACzCK,OAAO,CAACC,GAAG,yBAAAC,MAAA,CAAyBL,KAAK,CAAE,CAAC;EAC5CG,OAAO,CAACC,GAAG,4BAAAC,MAAA,CAA4BL,KAAK,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAC;EACnE,OAAON,KAAK,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAClC;AAEO,SAASC,wBAAwBA,CAACT,IAAc,EAAY;EACjE,OAAOA,IAAI,CAACU,MAAM,CAAC,UAACC,GAAa,EAAEC,IAAI,EAAK;IAC1C,IAAMC,cAAc,GAAGD,IAAI,CAACT,OAAO,CAAC,GAAG,CAAC;IACxC,IAAMW,WAAW,GAAGF,IAAI,CAACG,KAAK,CAAC,CAAC,EAAEF,cAAc,CAAC;IACjD,IAAMG,UAAU,GAAGJ,IAAI,CAACG,KAAK,CAACF,cAAc,GAAG,CAAC,EAAED,IAAI,CAACX,MAAM,CAAC;IAC9D,IAAMgB,SAAS,GAAGL,IAAI,CAACM,QAAQ,CAAC,GAAG,CAAC,IAAIN,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,IAAIH,UAAU;IAC3E,IAAIC,SAAS,EAAE;MACb,OAAON,GAAG,CAACJ,MAAM,CAACO,WAAW,EAAEE,UAAU,CAAC;IAC5C;IACA,OAAOL,GAAG,CAACJ,MAAM,CAACK,IAAI,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;AACR;AASO,SAASQ,eAAeA,CAACrB,KAAa,EAAEC,IAAc,EAAU;EACrE,IAAMqB,WAAmB,GAAGvB,cAAc,CAACC,KAAK,EAAEC,IAAI,CAAC;EACvD,IAAMsB,MAAc,GAAGC,MAAM,CAACC,QAAQ,CAACH,WAAW,CAAC;EACnD,IAAII,QAAQ,CAACH,MAAM,CAAC,EAAE;IACpB,OAAOA,MAAM;EACf;EACA,OAAOI,GAAG;AACZ;AASO,SAASC,eAAeA,CAAC5B,KAAa,EAAEC,IAAc,EAAW;EACtE,IAAMqB,WAAmB,GAAGvB,cAAc,CAACC,KAAK,EAAEC,IAAI,CAAC,CAAC4B,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;EAC5E,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAACX,QAAQ,CAAClB,IAAI,CAACD,KAAK,CAAC,CAAC,IAAI,CAACsB,WAAW,EAAE;IACzE,OAAO,KAAK;EACd;EACA,IAAI,CAACA,WAAW,IAAIA,WAAW,KAAK,MAAM,EAAE;IAC1C,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd"}