@loaders.gl/tile-converter 4.0.0-beta.2 → 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 +786 -428
  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 +279 -133
  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,5 +1,5 @@
1
1
  import transform from 'json-map-transform';
2
- import { STORE } from './store';
2
+ import { STORE } from "./store.js";
3
3
  const SPATIAL_REFERENCE = () => ({
4
4
  wkid: {
5
5
  path: 'wkid',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","names":["transform","STORE","SPATIAL_REFERENCE","wkid","path","default","latestWkid","vcsWkid","latestVcsWkid","HEIGHT_MODEL_INFO","heightModel","vertCRS","heightUnit","NODE_PAGES","nodesPerPage","lodSelectionMetricType","FULL_EXTENT","xmin","ymin","xmax","ymax","zmin","zmax","LAYERS","version","val","toUpperCase","id","name","href","layerType","spatialReference","capabilities","store","fullExtent","heightModelInfo","nodePages","materialDefinitions","textureSetDefinitions","geometryDefinitions","attributeStorageInfo","fields","popupInfo"],"sources":["../../../src/i3s-converter/json-templates/layers.ts"],"sourcesContent":["import transform from 'json-map-transform';\nimport {STORE} from './store';\n\nconst SPATIAL_REFERENCE = () => ({\n wkid: {\n path: 'wkid',\n default: 4326\n },\n latestWkid: {\n path: 'latestWkid',\n default: 4326\n },\n vcsWkid: {\n path: 'vcsWkid',\n default: 5773\n },\n latestVcsWkid: {\n path: 'latestVcsWkid',\n default: 5773\n }\n});\n\nconst HEIGHT_MODEL_INFO = () => ({\n heightModel: {\n path: 'heightModel',\n default: 'gravity_related_height'\n },\n vertCRS: {\n path: 'vertCRS',\n default: 'EGM96_Geoid'\n },\n heightUnit: {\n path: 'heightUnit',\n default: 'meter'\n }\n});\n\nconst NODE_PAGES = () => ({\n nodesPerPage: {\n path: 'nodesPerPage'\n },\n lodSelectionMetricType: {\n path: 'lodSelectionMetricType',\n default: 'maxScreenThresholdSQ'\n }\n});\n\nconst FULL_EXTENT = () => ({\n xmin: {\n path: 'xmin'\n },\n ymin: {\n path: 'ymin'\n },\n xmax: {\n path: 'xmax'\n },\n ymax: {\n path: 'ymax'\n },\n zmin: {\n path: 'zmin'\n },\n zmax: {\n path: 'zmax'\n }\n});\n\nexport const LAYERS = () => ({\n version: {\n path: 'version',\n transform: (val) => val.toUpperCase()\n },\n id: {\n path: 'id',\n default: 0\n },\n name: {\n path: 'name'\n },\n href: {\n path: 'href',\n default: './layers/0'\n },\n layerType: {\n path: 'layerType',\n default: 'IntegratedMesh'\n },\n spatialReference: {\n path: 'spatialReference',\n transform: (val) => transform(val, SPATIAL_REFERENCE())\n },\n capabilities: {\n path: 'capabilities',\n default: ['View', 'Query']\n },\n store: {\n path: 'store',\n transform: (val) => transform(val, STORE)\n },\n fullExtent: {\n path: 'fullExtent',\n transform: (val) => transform(val, FULL_EXTENT())\n },\n heightModelInfo: {\n path: 'heightModelInfo',\n transform: (val) => transform(val, HEIGHT_MODEL_INFO())\n },\n nodePages: {\n path: 'nodePages',\n transform: (val) => transform(val, NODE_PAGES())\n },\n materialDefinitions: {\n path: 'materialDefinitions',\n default: []\n },\n textureSetDefinitions: {\n path: 'textureSetDefinitions',\n default: []\n },\n geometryDefinitions: {\n path: 'geometryDefinitions',\n default: []\n },\n attributeStorageInfo: {\n path: 'attributeStorageInfo',\n default: []\n },\n fields: {\n path: 'fields',\n default: []\n },\n popupInfo: {\n path: 'popupInfo',\n default: null\n }\n});\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["METADATA","folderPattern","path","default","archiveCompressionType","resourceCompressionType","I3SVersion","nodeCount"],"sources":["../../../src/i3s-converter/json-templates/metadata.ts"],"sourcesContent":["export const METADATA = () => ({\n folderPattern: {\n path: 'folderPattern',\n default: 'BASIC'\n },\n archiveCompressionType: {\n path: 'archiveCompressionType',\n default: 'STORE'\n },\n resourceCompressionType: {\n path: 'resourceCompressionType',\n default: 'GZIP'\n },\n I3SVersion: {\n path: 'I3SVersion',\n default: '1.8'\n },\n nodeCount: {\n path: 'nodeCount'\n }\n});\n"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,GAAGA,CAAA,MAAO;EAC7BC,aAAa,EAAE;IACbC,IAAI,EAAE,eAAe;IACrBC,OAAO,EAAE;EACX,CAAC;EACDC,sBAAsB,EAAE;IACtBF,IAAI,EAAE,wBAAwB;IAC9BC,OAAO,EAAE;EACX,CAAC;EACDE,uBAAuB,EAAE;IACvBH,IAAI,EAAE,yBAAyB;IAC/BC,OAAO,EAAE;EACX,CAAC;EACDG,UAAU,EAAE;IACVJ,IAAI,EAAE,YAAY;IAClBC,OAAO,EAAE;EACX,CAAC;EACDI,SAAS,EAAE;IACTL,IAAI,EAAE;EACR;AACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","names":["transform","COORDINATES","mbs","path","obb","HREF","href","PARENT_NODE","id","NODE","version","level","lodSelection","default","metricType","maxError","children","neighbors","parentNode","val","sharedResource","featureData","geometryData","textureData","attributeData"],"sources":["../../../src/i3s-converter/json-templates/node.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst COORDINATES = () => ({\n mbs: {\n path: 'mbs'\n },\n obb: {\n path: 'obb'\n }\n});\n\nconst HREF = () => ({\n href: {\n path: 'href'\n }\n});\n\nconst PARENT_NODE = () => ({\n id: {\n path: 'id'\n },\n ...HREF(),\n ...COORDINATES()\n});\n\nexport const NODE = () => ({\n version: {\n path: 'version'\n },\n id: {\n path: 'id'\n },\n path: {\n path: 'path'\n },\n level: {\n path: 'level'\n },\n ...COORDINATES(),\n lodSelection: {\n path: 'lodSelection',\n default: [\n {\n metricType: 'maxScreenThresholdSQ',\n maxError: 196349.54374999998\n },\n {\n metricType: 'maxScreenThreshold',\n maxError: 999.99999999999994\n }\n ]\n },\n children: {\n path: 'children',\n default: null\n },\n neighbors: {\n path: 'neighbors',\n default: null\n },\n parentNode: {\n path: 'parentNode',\n transform: (val) => transform(val, PARENT_NODE()),\n default: null\n },\n sharedResource: {\n path: 'sharedResource',\n default: null\n },\n featureData: {\n path: 'featureData',\n default: null\n },\n geometryData: {\n path: 'geometryData',\n default: null\n },\n textureData: {\n path: 'textureData',\n default: null\n },\n attributeData: {\n path: 'attributeData',\n default: null\n }\n});\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,oBAAoB;AAE1C,MAAMC,WAAW,GAAGA,CAAA,MAAO;EACzBC,GAAG,EAAE;IACHC,IAAI,EAAE;EACR,CAAC;EACDC,GAAG,EAAE;IACHD,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,MAAME,IAAI,GAAGA,CAAA,MAAO;EAClBC,IAAI,EAAE;IACJH,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,MAAMI,WAAW,GAAGA,CAAA,MAAO;EACzBC,EAAE,EAAE;IACFL,IAAI,EAAE;EACR,CAAC;EACD,GAAGE,IAAI,CAAC,CAAC;EACT,GAAGJ,WAAW,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,MAAMQ,IAAI,GAAGA,CAAA,MAAO;EACzBC,OAAO,EAAE;IACPP,IAAI,EAAE;EACR,CAAC;EACDK,EAAE,EAAE;IACFL,IAAI,EAAE;EACR,CAAC;EACDA,IAAI,EAAE;IACJA,IAAI,EAAE;EACR,CAAC;EACDQ,KAAK,EAAE;IACLR,IAAI,EAAE;EACR,CAAC;EACD,GAAGF,WAAW,CAAC,CAAC;EAChBW,YAAY,EAAE;IACZT,IAAI,EAAE,cAAc;IACpBU,OAAO,EAAE,CACP;MACEC,UAAU,EAAE,sBAAsB;MAClCC,QAAQ,EAAE;IACZ,CAAC,EACD;MACED,UAAU,EAAE,oBAAoB;MAChCC,QAAQ,EAAE;IACZ,CAAC;EAEL,CAAC;EACDC,QAAQ,EAAE;IACRb,IAAI,EAAE,UAAU;IAChBU,OAAO,EAAE;EACX,CAAC;EACDI,SAAS,EAAE;IACTd,IAAI,EAAE,WAAW;IACjBU,OAAO,EAAE;EACX,CAAC;EACDK,UAAU,EAAE;IACVf,IAAI,EAAE,YAAY;IAClBH,SAAS,EAAGmB,GAAG,IAAKnB,SAAS,CAACmB,GAAG,EAAEZ,WAAW,CAAC,CAAC,CAAC;IACjDM,OAAO,EAAE;EACX,CAAC;EACDO,cAAc,EAAE;IACdjB,IAAI,EAAE,gBAAgB;IACtBU,OAAO,EAAE;EACX,CAAC;EACDQ,WAAW,EAAE;IACXlB,IAAI,EAAE,aAAa;IACnBU,OAAO,EAAE;EACX,CAAC;EACDS,YAAY,EAAE;IACZnB,IAAI,EAAE,cAAc;IACpBU,OAAO,EAAE;EACX,CAAC;EACDU,WAAW,EAAE;IACXpB,IAAI,EAAE,aAAa;IACnBU,OAAO,EAAE;EACX,CAAC;EACDW,aAAa,EAAE;IACbrB,IAAI,EAAE,eAAe;IACrBU,OAAO,EAAE;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-server.js","names":["SCENE_SERVER","serviceItemId","path","serviceName","name","currentVersion","default","serviceVersion","supportedBindings","layers","transform","layers0"],"sources":["../../../src/i3s-converter/json-templates/scene-server.ts"],"sourcesContent":["export const SCENE_SERVER = () => ({\n serviceItemId: {\n path: 'serviceItemId'\n },\n serviceName: {\n path: 'layerName'\n },\n name: {\n path: 'layerName'\n },\n currentVersion: {\n path: 'currentVersion',\n default: 10.7\n },\n serviceVersion: {\n path: 'serviceVersion',\n default: '1.8'\n },\n supportedBindings: {\n path: 'supportedBindings',\n default: ['REST']\n },\n layers: {\n path: 'layers0',\n transform: (layers0) => [layers0]\n }\n});\n"],"mappings":"AAAA,OAAO,MAAMA,YAAY,GAAGA,CAAA,MAAO;EACjCC,aAAa,EAAE;IACbC,IAAI,EAAE;EACR,CAAC;EACDC,WAAW,EAAE;IACXD,IAAI,EAAE;EACR,CAAC;EACDE,IAAI,EAAE;IACJF,IAAI,EAAE;EACR,CAAC;EACDG,cAAc,EAAE;IACdH,IAAI,EAAE,gBAAgB;IACtBI,OAAO,EAAE;EACX,CAAC;EACDC,cAAc,EAAE;IACdL,IAAI,EAAE,gBAAgB;IACtBI,OAAO,EAAE;EACX,CAAC;EACDE,iBAAiB,EAAE;IACjBN,IAAI,EAAE,mBAAmB;IACzBI,OAAO,EAAE,CAAC,MAAM;EAClB,CAAC;EACDG,MAAM,EAAE;IACNP,IAAI,EAAE,SAAS;IACfQ,SAAS,EAAGC,OAAO,IAAK,CAACA,OAAO;EAClC;AACF,CAAC,CAAC"}
@@ -104,7 +104,7 @@ export const SHARED_RESOURCES = () => ({
104
104
  function transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {
105
105
  const result = {};
106
106
  for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
107
- result["Mat".concat(originalObject.nodePath).concat(index)] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO());
107
+ result[`Mat${originalObject.nodePath}${index}`] = transform(materialDefinitionInfo, MATERIAL_DEFINITION_INFO());
108
108
  }
109
109
  return result;
110
110
  }
@@ -114,7 +114,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
114
114
  }
115
115
  const result = {};
116
116
  for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
117
- const imageIndex = "".concat(originalObject.nodePath).concat(index);
117
+ const imageIndex = `${originalObject.nodePath}${index}`;
118
118
  textureDefinitionInfo.imageIndex = imageIndex;
119
119
  result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
120
120
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-resources.js","names":["transform","MATERIAL_DEFINITION_INFO_PARAMS","renderMode","path","default","shininess","reflectivity","ambient","diffuse","specular","useVertexColorAlpha","vertexRegions","vertexColors","MATERIAL_DEFINITION_INFO","name","type","params","val","thisObject","originalObject","TEXTURE_DEFINITION_IMAGE","id","size","href","length","TEXTURE_DEFINITION_INFO","encoding","wrap","atlas","uvSet","channels","images","map","image","SHARED_RESOURCES","materialDefinitions","transfromMaterialDefinitions","textureDefinitions","transfromTextureDefinitions","materialDefinitionInfos","result","index","materialDefinitionInfo","entries","nodePath","textureDefinitionInfos","textureDefinitionInfo","imageIndex"],"sources":["../../../src/i3s-converter/json-templates/shared-resources.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst MATERIAL_DEFINITION_INFO_PARAMS = () => ({\n renderMode: {\n path: 'renderMode',\n default: 'solid'\n },\n shininess: {\n path: 'shininess',\n default: 1\n },\n reflectivity: {\n path: 'reflectivity',\n default: 0\n },\n ambient: {\n path: 'ambient',\n default: [1, 1, 1]\n },\n diffuse: {\n path: 'diffuse',\n default: [1, 1, 1]\n },\n specular: {\n path: 'specular',\n default: [0, 0, 0]\n },\n useVertexColorAlpha: {\n path: 'useVertexColorAlpha',\n default: false\n },\n vertexRegions: {\n path: 'vertexRegions',\n default: false\n },\n vertexColors: {\n path: 'vertexColors',\n default: true\n }\n});\n\nconst MATERIAL_DEFINITION_INFO = () => ({\n name: {\n path: 'name',\n default: 'standard'\n },\n type: {\n path: 'type',\n default: 'standard'\n },\n params: {\n path: 'params',\n transform: (val, thisObject, originalObject) =>\n transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())\n }\n});\n\nconst TEXTURE_DEFINITION_IMAGE = () => ({\n id: {\n path: 'id'\n },\n size: {\n path: 'size'\n },\n href: {\n path: 'href',\n default: ['../textures/0']\n },\n length: {\n path: 'length'\n }\n});\n\nconst TEXTURE_DEFINITION_INFO = () => ({\n encoding: {\n path: 'encoding'\n },\n wrap: {\n path: 'wrap',\n default: ['none']\n },\n atlas: {\n path: 'atlas',\n default: false\n },\n uvSet: {\n path: 'uvSet',\n default: 'uv0'\n },\n channels: {\n path: 'channels',\n default: 'rgb'\n },\n images: {\n path: 'images',\n transform: (val, thisObject, originalObject) =>\n val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))\n }\n});\n\nexport const SHARED_RESOURCES = () => ({\n materialDefinitions: {\n path: 'materialDefinitionInfos',\n transform: transfromMaterialDefinitions\n },\n textureDefinitions: {\n path: 'textureDefinitionInfos',\n transform: transfromTextureDefinitions\n }\n});\n\nfunction transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {\n const result = {};\n for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {\n result[`Mat${originalObject.nodePath}${index}`] = transform(\n materialDefinitionInfo,\n MATERIAL_DEFINITION_INFO()\n );\n }\n return result;\n}\n\nfunction transfromTextureDefinitions(textureDefinitionInfos, thisObject, originalObject) {\n if (!textureDefinitionInfos) {\n return null;\n }\n const result = {};\n for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {\n const imageIndex = `${originalObject.nodePath}${index}`;\n textureDefinitionInfo.imageIndex = imageIndex;\n result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());\n }\n return result;\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","names":["STORE","id","path","transform","val","toUpperCase","profile","default","version","resourcePattern","rootNode","extent","indexCRS","vertexCRS","normalReferenceFrame","attributeEncoding","textureEncoding","lodType","lodModel","defaultGeometrySchema","geometryType","header","property","type","topology","ordering","vertexAttributes","position","valueType","valuesPerElement","normal","uv0","color","featureAttributeOrder","featureAttributes","faceRange"],"sources":["../../../src/i3s-converter/json-templates/store.ts"],"sourcesContent":["export const STORE = {\n id: {\n path: 'id',\n transform: (val) => val.toUpperCase()\n },\n profile: {\n path: 'profile',\n default: 'meshpyramids'\n },\n version: {\n path: 'version',\n default: '1.8'\n },\n resourcePattern: {\n path: 'resourcePattern',\n default: ['3dNodeIndexDocument', 'Attributes', 'SharedResource', 'Geometry']\n },\n rootNode: {\n path: 'rootNode',\n default: './nodes/root'\n },\n extent: {\n path: 'extent'\n },\n indexCRS: {\n path: 'indexCRS',\n default: 'http://www.opengis.net/def/crs/EPSG/0/4326'\n },\n vertexCRS: {\n path: 'vertexCRS',\n default: 'http://www.opengis.net/def/crs/EPSG/0/4326'\n },\n normalReferenceFrame: {\n path: 'normalReferenceFrame',\n default: 'east-north-up'\n },\n attributeEncoding: {\n path: 'attributeEncoding',\n default: 'application/octet-stream; version=1.6'\n },\n textureEncoding: {\n path: 'textureEncoding',\n default: ['image/jpeg', 'image/ktx2']\n },\n lodType: {\n path: 'lodType',\n default: 'MeshPyramid'\n },\n lodModel: {\n path: 'lodModel',\n default: 'node-switching'\n },\n defaultGeometrySchema: {\n path: 'defaultGeometrySchema',\n default: {\n geometryType: 'triangles',\n header: [\n {\n property: 'vertexCount',\n type: 'UInt32'\n },\n {\n property: 'featureCount',\n type: 'UInt32'\n }\n ],\n topology: 'PerAttributeArray',\n ordering: ['position', 'normal', 'uv0', 'color'],\n vertexAttributes: {\n position: {\n valueType: 'Float32',\n valuesPerElement: 3\n },\n normal: {\n valueType: 'Float32',\n valuesPerElement: 3\n },\n uv0: {\n valueType: 'Float32',\n valuesPerElement: 2\n },\n color: {\n valueType: 'UInt8',\n valuesPerElement: 4\n }\n },\n featureAttributeOrder: ['id', 'faceRange'],\n featureAttributes: {\n id: {\n valueType: 'UInt64',\n valuesPerElement: 1\n },\n faceRange: {\n valueType: 'UInt32',\n valuesPerElement: 2\n }\n }\n }\n }\n};\n"],"mappings":"AAAA,OAAO,MAAMA,KAAK,GAAG;EACnBC,EAAE,EAAE;IACFC,IAAI,EAAE,IAAI;IACVC,SAAS,EAAGC,GAAG,IAAKA,GAAG,CAACC,WAAW,CAAC;EACtC,CAAC;EACDC,OAAO,EAAE;IACPJ,IAAI,EAAE,SAAS;IACfK,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAE;IACPN,IAAI,EAAE,SAAS;IACfK,OAAO,EAAE;EACX,CAAC;EACDE,eAAe,EAAE;IACfP,IAAI,EAAE,iBAAiB;IACvBK,OAAO,EAAE,CAAC,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU;EAC7E,CAAC;EACDG,QAAQ,EAAE;IACRR,IAAI,EAAE,UAAU;IAChBK,OAAO,EAAE;EACX,CAAC;EACDI,MAAM,EAAE;IACNT,IAAI,EAAE;EACR,CAAC;EACDU,QAAQ,EAAE;IACRV,IAAI,EAAE,UAAU;IAChBK,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTX,IAAI,EAAE,WAAW;IACjBK,OAAO,EAAE;EACX,CAAC;EACDO,oBAAoB,EAAE;IACpBZ,IAAI,EAAE,sBAAsB;IAC5BK,OAAO,EAAE;EACX,CAAC;EACDQ,iBAAiB,EAAE;IACjBb,IAAI,EAAE,mBAAmB;IACzBK,OAAO,EAAE;EACX,CAAC;EACDS,eAAe,EAAE;IACfd,IAAI,EAAE,iBAAiB;IACvBK,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY;EACtC,CAAC;EACDU,OAAO,EAAE;IACPf,IAAI,EAAE,SAAS;IACfK,OAAO,EAAE;EACX,CAAC;EACDW,QAAQ,EAAE;IACRhB,IAAI,EAAE,UAAU;IAChBK,OAAO,EAAE;EACX,CAAC;EACDY,qBAAqB,EAAE;IACrBjB,IAAI,EAAE,uBAAuB;IAC7BK,OAAO,EAAE;MACPa,YAAY,EAAE,WAAW;MACzBC,MAAM,EAAE,CACN;QACEC,QAAQ,EAAE,aAAa;QACvBC,IAAI,EAAE;MACR,CAAC,EACD;QACED,QAAQ,EAAE,cAAc;QACxBC,IAAI,EAAE;MACR,CAAC,CACF;MACDC,QAAQ,EAAE,mBAAmB;MAC7BC,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;MAChDC,gBAAgB,EAAE;QAChBC,QAAQ,EAAE;UACRC,SAAS,EAAE,SAAS;UACpBC,gBAAgB,EAAE;QACpB,CAAC;QACDC,MAAM,EAAE;UACNF,SAAS,EAAE,SAAS;UACpBC,gBAAgB,EAAE;QACpB,CAAC;QACDE,GAAG,EAAE;UACHH,SAAS,EAAE,SAAS;UACpBC,gBAAgB,EAAE;QACpB,CAAC;QACDG,KAAK,EAAE;UACLJ,SAAS,EAAE,OAAO;UAClBC,gBAAgB,EAAE;QACpB;MACF,CAAC;MACDI,qBAAqB,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;MAC1CC,iBAAiB,EAAE;QACjBjC,EAAE,EAAE;UACF2B,SAAS,EAAE,QAAQ;UACnBC,gBAAgB,EAAE;QACpB,CAAC;QACDM,SAAS,EAAE;UACTP,SAAS,EAAE,QAAQ;UACnBC,gBAAgB,EAAE;QACpB;MACF;IACF;EACF;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":["GLTFPrimitiveModeString"],"sources":["../../src/i3s-converter/types.ts"],"sourcesContent":["import {GLTFImagePostprocessed, GLTFNodePostprocessed} from '@loaders.gl/gltf';\nimport {\n BoundingVolumes,\n I3SMaterialDefinition,\n MaterialDefinitionInfo,\n TextureDefinitionInfo\n} from '@loaders.gl/i3s';\nimport {Matrix4, Vector3} from '@math.gl/core';\n\n/** Converted resources for specific node */\nexport type I3SConvertedResources = {\n /**\n * Node id\n */\n nodeId?: number;\n /** Non-compressed geometry buffer that have structure met\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md\n * (Geometry buffer)\n */\n geometry: ArrayBuffer | null;\n /**\n * Draco compressed geometry\n */\n compressedGeometry?: Promise<ArrayBuffer> | null;\n /**\n * Texture image content\n */\n texture: any | null;\n /**\n * If the resource has uvRegions geometry attribute\n */\n hasUvRegions: boolean;\n /**\n * Shared resources built from GLTF material\n */\n sharedResources: SharedResourcesArrays | null;\n /**\n * Material definition of the node\n */\n meshMaterial?: I3SMaterialDefinition | null;\n /**\n * Number of vertices in the node\n */\n vertexCount: number | null;\n /**\n * Feature attributes contents\n */\n attributes: ArrayBuffer[] | null;\n /**\n * Number of features in the node\n */\n featureCount: number | null;\n /**\n * MBS and/or OBB bounding volumes of the node\n */\n boundingVolumes: BoundingVolumes | null;\n};\n\n/**\n * Geometry and feature attributes converted from GLTF primitives\n */\nexport type ConvertedAttributes = {\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** Feature indices grouped by ...\n * converted from \"batch ids\" of GLTF\n */\n featureIndicesGroups?: number[][];\n /** Feature indices converted from \"batch ids\" */\n featureIndices: number[];\n /**\n * MBS and/or OBB bounding volumes of the node\n */\n boundingVolumes: null | BoundingVolumes;\n /** merged materials data */\n mergedMaterials: MergedMaterial[];\n};\n\n/** Postprocessed geometry and feature attributes\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md\n */\nexport type GeometryAttributes = {\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** faceRanges attribute value */\n faceRange: Uint32Array;\n /** feature Ids attribute value */\n featureIds: number[];\n /** number of features in the node */\n featureCount: number;\n};\n\n/** Geometry attributes applicable for reordering by featureId */\nexport type GroupedAttributes = {\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n};\n\n/** Geometry attributes specific for the particular feature */\nexport type GroupedByFeatureIdAttributes = GroupedAttributes & {\n /** Feature Id */\n featureId: number;\n};\n\n/** Shared resources made from GLTF material */\nexport type SharedResourcesArrays = {\n /** material definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitionInfo.cmn.md */\n materialDefinitionInfos?: MaterialDefinitionInfo[];\n /** texture definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureDefinitionInfo.cmn.md*/\n textureDefinitionInfos?: TextureDefinitionInfo[];\n /** node id to make unique SharedResource ids */\n nodePath?: string;\n};\n\n/** I3S material definition and texture content taken from GLTF material */\nexport type I3SMaterialWithTexture = {\n /** Material definition https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitions.cmn.md */\n material: I3SMaterialDefinition;\n /** Texture content (image) */\n texture?: GLTFImagePostprocessed;\n /** Metadata of all merged materials */\n mergedMaterials: MergedMaterial[];\n};\n\n/** Metadata of some original texture */\nexport type MergedMaterial = {\n /** Gltf material Id */\n originalMaterialId: string;\n /** Original texture size */\n textureSize?: {\n width: number;\n height: number;\n };\n /** Uint16Array of 4 elements https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md */\n uvRegion?: Uint16Array;\n};\n\nexport type TypedArrayConstructor =\n | Uint8ArrayConstructor\n | Int8ArrayConstructor\n | Uint16ArrayConstructor\n | Int16ArrayConstructor\n | Int32ArrayConstructor\n | Uint32ArrayConstructor\n | Float32ArrayConstructor\n | Float64ArrayConstructor;\n\n/**\n * glTF primitive modes (mesh topology types)\n * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode\n */\nexport enum GLTFPrimitiveModeString {\n POINTS = 'POINTS',\n LINES = 'LINES',\n LINE_LOOP = 'LINE_LOOP',\n LINE_STRIP = 'LINE_STRIP',\n TRIANGLES = 'TRIANGLES',\n TRIANGLE_STRIP = 'TRIANGLE_STRIP',\n TRIANGLE_FAN = 'TRIANGLE_FAN'\n}\n\n/** Preprocessed data gathered from child tiles binary content */\nexport type PreprocessData = {\n /** Mesh topology types used in gltf primitives of the tileset */\n meshTopologyTypes: Set<GLTFPrimitiveModeString>;\n /**\n * Featrue metadata classes found in glTF extensions\n * The tileset might contain multiple metadata classes provided by EXT_feature_metadata and EXT_structural_metadata extensions.\n * Every class is a set of properties. But I3S can consume only one set of properties.\n * On the pre-process we collect all classes from the tileset in order to show the prompt to select one class for conversion to I3S.\n */\n metadataClasses: Set<string>;\n};\n\n/** Texture image properties required for conversion */\nexport type TextureImageProperties = {\n /** Array with image data */\n data: Uint8Array;\n /** Is the texture compressed */\n compressed?: boolean;\n /** Height of the texture's image */\n height?: number;\n /** Width of the texture's image */\n width?: number;\n /** Number of components (3 for RGB, 4 for RGBA) */\n components?: number;\n /** Mime type of the texture's image */\n mimeType?: string;\n};\n\n/** glTF attributes data, prepared for conversion */\nexport type GLTFAttributesData = {\n /** glTF PBR materials (only id is required) */\n gltfMaterials?: {id: string}[];\n /** glTF geometry nodes */\n nodes: GLTFNodePostprocessed[];\n /** glTF texture images (set to null for compressed textures) */\n images: (null | TextureImageProperties)[];\n /** Source tile origin coordinates in cartographic coordinate system */\n cartographicOrigin: Vector3;\n /** Model matrix to convert coordinate system of POSITION and NORMAL attributes from METER_OFFSETS to CARTESIAN */\n cartesianModelMatrix: Matrix4;\n};\n"],"mappings":"AA+KA,WAAYA,uBAAuB,aAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA"}
@@ -2,7 +2,7 @@ import express from 'express';
2
2
  import path from 'path';
3
3
  import logger from 'morgan';
4
4
  import cors from 'cors';
5
- import { loadArchive } from './controllers/slpk-controller';
5
+ import { loadArchive } from "./controllers/slpk-controller.js";
6
6
  const I3S_LAYER_PATH = process.env.I3sLayerPath || '';
7
7
  const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);
8
8
  loadArchive(FULL_LAYER_PATH);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","names":["express","path","logger","cors","loadArchive","I3S_LAYER_PATH","process","env","I3sLayerPath","FULL_LAYER_PATH","join","cwd","indexRouter","require","app","use","json","urlencoded","extended","static","__dirname","test","sceneServerRouter","router"],"sources":["../../src/i3s-server/app.ts"],"sourcesContent":["import express from 'express';\nimport path from 'path';\nimport logger from 'morgan';\nimport cors from 'cors';\nimport {loadArchive} from './controllers/slpk-controller';\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef\nconst FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef\nloadArchive(FULL_LAYER_PATH);\n\nconst indexRouter = require('./routes/index');\n\nexport const app = express();\n\napp.use(logger('dev'));\napp.use(express.json());\napp.use(express.urlencoded({extended: false}));\napp.use(express.static(path.join(__dirname, 'public')));\napp.use(cors());\n\nif (/\\.slpk$/.test(I3S_LAYER_PATH)) {\n const {sceneServerRouter, router} = require('./routes/slpk-router');\n app.use('/SceneServer/layers/0', router);\n app.use('/SceneServer', sceneServerRouter);\n} else {\n app.use('/', indexRouter);\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,SAAS;AAC7B,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAOC,IAAI,MAAM,MAAM;AAAC,SAChBC,WAAW;AAEnB,MAAMC,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,EAAE;AACrD,MAAMC,eAAe,GAAGR,IAAI,CAACS,IAAI,CAACJ,OAAO,CAACK,GAAG,CAAC,CAAC,EAAEN,cAAc,CAAC;AAChED,WAAW,CAACK,eAAe,CAAC;AAE5B,MAAMG,WAAW,GAAGC,OAAO,CAAC,gBAAgB,CAAC;AAE7C,OAAO,MAAMC,GAAG,GAAGd,OAAO,CAAC,CAAC;AAE5Bc,GAAG,CAACC,GAAG,CAACb,MAAM,CAAC,KAAK,CAAC,CAAC;AACtBY,GAAG,CAACC,GAAG,CAACf,OAAO,CAACgB,IAAI,CAAC,CAAC,CAAC;AACvBF,GAAG,CAACC,GAAG,CAACf,OAAO,CAACiB,UAAU,CAAC;EAACC,QAAQ,EAAE;AAAK,CAAC,CAAC,CAAC;AAC9CJ,GAAG,CAACC,GAAG,CAACf,OAAO,CAACmB,MAAM,CAAClB,IAAI,CAACS,IAAI,CAACU,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvDN,GAAG,CAACC,GAAG,CAACZ,IAAI,CAAC,CAAC,CAAC;AAEf,IAAI,SAAS,CAACkB,IAAI,CAAChB,cAAc,CAAC,EAAE;EAClC,MAAM;IAACiB,iBAAiB;IAAEC;EAAM,CAAC,GAAGV,OAAO,CAAC,sBAAsB,CAAC;EACnEC,GAAG,CAACC,GAAG,CAAC,uBAAuB,EAAEQ,MAAM,CAAC;EACxCT,GAAG,CAACC,GAAG,CAAC,cAAc,EAAEO,iBAAiB,CAAC;AAC5C,CAAC,MAAM;EACLR,GAAG,CAACC,GAAG,CAAC,GAAG,EAAEH,WAAW,CAAC;AAC3B"}
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
- import { app } from '../app';
2
+ import { app } from "../app.js";
3
3
  import https from 'https';
4
4
  import http from 'http';
5
5
  import fs from 'fs';
6
6
  import path from 'path';
7
- import { formErrorHandler, formListeningHandler, normalizePort } from '../utils/server-utils';
7
+ import { formErrorHandler, formListeningHandler, normalizePort } from "../utils/server-utils.js";
8
8
  const httpPort = normalizePort(process.env.PORT || '80');
9
9
  if (httpPort === false) {
10
- console.error("Incorrect HTTP port");
10
+ console.error(`Incorrect HTTP port`);
11
11
  process.exit(1);
12
12
  }
13
13
  const httpsPort = normalizePort(process.env.HTTPS_PORT || '443');
14
14
  if (httpsPort === false) {
15
- console.error("Incorrect HTTPs port");
15
+ console.error(`Incorrect HTTPs port`);
16
16
  process.exit(1);
17
17
  }
18
18
  const options = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"www.js","names":["app","https","http","fs","path","formErrorHandler","formListeningHandler","normalizePort","httpPort","process","env","PORT","console","error","exit","httpsPort","HTTPS_PORT","options","key","readFileSync","join","__dirname","cert","httpServer","createServer","httpsServer","listen","on"],"sources":["../../../src/i3s-server/bin/www.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport {app} from '../app';\nimport https from 'https';\nimport http from 'http';\nimport fs from 'fs';\nimport path from 'path';\nimport {formErrorHandler, formListeningHandler, normalizePort} from '../utils/server-utils';\n\n/** Get port from environment and store in Express. */\nconst httpPort = normalizePort(process.env.PORT || '80');\nif (httpPort === false) {\n console.error(`Incorrect HTTP port`);\n process.exit(1);\n}\nconst httpsPort = normalizePort(process.env.HTTPS_PORT || '443');\nif (httpsPort === false) {\n console.error(`Incorrect HTTPs port`);\n process.exit(1);\n}\n\n/** Create HTTP server. */\nconst options = {\n key: fs.readFileSync(path.join(__dirname, '../certs/key.pem')),\n cert: fs.readFileSync(path.join(__dirname, '../certs/cert.pem'))\n};\n\nconst httpServer = http.createServer(app);\nconst httpsServer = https.createServer(options, app);\n\n/** Listen on provided port, on all network interfaces. */\nhttpServer.listen(httpPort);\nhttpServer.on('error', formErrorHandler(httpPort));\nhttpServer.on('listening', formListeningHandler(httpServer));\n\nhttpsServer.listen(httpsPort);\nhttpsServer.on('error', formErrorHandler(httpsPort));\nhttpsServer.on('listening', formListeningHandler(httpsServer));\n"],"mappings":"AAAA;AAAmB,SAEXA,GAAG;AACX,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AACnB,OAAOC,IAAI,MAAM,MAAM;AAAC,SAChBC,gBAAgB,EAAEC,oBAAoB,EAAEC,aAAa;AAG7D,MAAMC,QAAQ,GAAGD,aAAa,CAACE,OAAO,CAACC,GAAG,CAACC,IAAI,IAAI,IAAI,CAAC;AACxD,IAAIH,QAAQ,KAAK,KAAK,EAAE;EACtBI,OAAO,CAACC,KAAK,CAAE,qBAAoB,CAAC;EACpCJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;AACjB;AACA,MAAMC,SAAS,GAAGR,aAAa,CAACE,OAAO,CAACC,GAAG,CAACM,UAAU,IAAI,KAAK,CAAC;AAChE,IAAID,SAAS,KAAK,KAAK,EAAE;EACvBH,OAAO,CAACC,KAAK,CAAE,sBAAqB,CAAC;EACrCJ,OAAO,CAACK,IAAI,CAAC,CAAC,CAAC;AACjB;AAGA,MAAMG,OAAO,GAAG;EACdC,GAAG,EAAEf,EAAE,CAACgB,YAAY,CAACf,IAAI,CAACgB,IAAI,CAACC,SAAS,EAAE,kBAAkB,CAAC,CAAC;EAC9DC,IAAI,EAAEnB,EAAE,CAACgB,YAAY,CAACf,IAAI,CAACgB,IAAI,CAACC,SAAS,EAAE,mBAAmB,CAAC;AACjE,CAAC;AAED,MAAME,UAAU,GAAGrB,IAAI,CAACsB,YAAY,CAACxB,GAAG,CAAC;AACzC,MAAMyB,WAAW,GAAGxB,KAAK,CAACuB,YAAY,CAACP,OAAO,EAAEjB,GAAG,CAAC;AAGpDuB,UAAU,CAACG,MAAM,CAAClB,QAAQ,CAAC;AAC3Be,UAAU,CAACI,EAAE,CAAC,OAAO,EAAEtB,gBAAgB,CAACG,QAAQ,CAAC,CAAC;AAClDe,UAAU,CAACI,EAAE,CAAC,WAAW,EAAErB,oBAAoB,CAACiB,UAAU,CAAC,CAAC;AAE5DE,WAAW,CAACC,MAAM,CAACX,SAAS,CAAC;AAC7BU,WAAW,CAACE,EAAE,CAAC,OAAO,EAAEtB,gBAAgB,CAACU,SAAS,CAAC,CAAC;AACpDU,WAAW,CAACE,EAAE,CAAC,WAAW,EAAErB,oBAAoB,CAACmB,WAAW,CAAC,CAAC"}
@@ -8,7 +8,7 @@ export async function getFileNameByUrl(url) {
8
8
  const extensions = ['json', 'bin', 'jpg', 'jpeg', 'png', 'bin.dds', 'ktx2'];
9
9
  const FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH);
10
10
  for (const ext of extensions) {
11
- const fileName = "".concat(FULL_LAYER_PATH).concat(url, "/index.").concat(ext);
11
+ const fileName = `${FULL_LAYER_PATH}${url}/index.${ext}`;
12
12
  try {
13
13
  await promises.access(fileName);
14
14
  return fileName;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-controller.js","names":["path","fs","promises","I3S_LAYER_PATH","process","env","I3sLayerPath","getFileNameByUrl","url","extensions","FULL_LAYER_PATH","join","cwd","ext","fileName","access"],"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,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AAEnB,MAAM;EAACC;AAAQ,CAAC,GAAGD,EAAE;AAErB,MAAME,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,EAAE;AAOrD,OAAO,eAAeC,gBAAgBA,CAACC,GAAW,EAA0B;EAC1E,MAAMC,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;EAC3E,MAAMC,eAAe,GAAGV,IAAI,CAACW,IAAI,CAACP,OAAO,CAACQ,GAAG,CAAC,CAAC,EAAET,cAAc,CAAC;EAChE,KAAK,MAAMU,GAAG,IAAIJ,UAAU,EAAE;IAC5B,MAAMK,QAAQ,GAAI,GAAEJ,eAAgB,GAAEF,GAAI,UAASK,GAAI,EAAC;IACxD,IAAI;MACF,MAAMX,QAAQ,CAACa,MAAM,CAACD,QAAQ,CAAC;MAC/B,OAAOA,QAAQ;IACjB,CAAC,CAAC,MAAM;MACN;IACF;EACF;EACA,OAAO,IAAI;AACb"}
@@ -1,14 +1,13 @@
1
- /// <reference types="node" />
2
1
  import '@loaders.gl/polyfills';
3
2
  /**
4
3
  * Open SLPK file for reading and load HASH file
5
4
  * @param fullLayerPath - full path to SLPK file
6
5
  */
7
- export declare const loadArchive: (fullLayerPath: string) => Promise<void>;
6
+ export declare function loadArchive(fullLayerPath: string): Promise<void>;
8
7
  /**
9
8
  * Get a file from SLPK
10
9
  * @param url - I3S HTTP URL
11
10
  * @returns - file content
12
11
  */
13
- export declare function getFileByUrl(url: string): Promise<Buffer | null>;
12
+ export declare function getFileByUrl(url: string): Promise<ArrayBuffer | null>;
14
13
  //# sourceMappingURL=slpk-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slpk-controller.d.ts","sourceRoot":"","sources":["../../../src/i3s-server/controllers/slpk-controller.ts"],"names":[],"mappings":";AAAA,OAAO,uBAAuB,CAAC;AAM/B;;;GAGG;AACH,eAAO,MAAM,WAAW,kBAAyB,MAAM,KAAG,QAAQ,IAAI,CAKrE,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,0BAS7C"}
1
+ {"version":3,"file":"slpk-controller.d.ts","sourceRoot":"","sources":["../../../src/i3s-server/controllers/slpk-controller.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAM/B;;;GAGG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW3E"}
@@ -0,0 +1,19 @@
1
+ import '@loaders.gl/polyfills';
2
+ import { parseSLPKArchive } from '@loaders.gl/i3s';
3
+ import { FileHandleFile } from '@loaders.gl/loader-utils';
4
+ let slpkArchive;
5
+ export async function loadArchive(fullLayerPath) {
6
+ slpkArchive = await parseSLPKArchive(new FileHandleFile(fullLayerPath), msg => console.log(msg));
7
+ console.log('The server is ready to use');
8
+ }
9
+ export async function getFileByUrl(url) {
10
+ const trimmedPath = /^\/?(.*)\/?$/.exec(url);
11
+ if (trimmedPath) {
12
+ try {
13
+ const uncompressedFile = await slpkArchive.getFile(trimmedPath[1], 'http');
14
+ return uncompressedFile;
15
+ } catch {}
16
+ }
17
+ return null;
18
+ }
19
+ //# sourceMappingURL=slpk-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slpk-controller.js","names":["parseSLPKArchive","FileHandleFile","slpkArchive","loadArchive","fullLayerPath","msg","console","log","getFileByUrl","url","trimmedPath","exec","uncompressedFile","getFile"],"sources":["../../../src/i3s-server/controllers/slpk-controller.ts"],"sourcesContent":["import '@loaders.gl/polyfills';\nimport {parseSLPKArchive, SLPKArchive} from '@loaders.gl/i3s';\nimport {FileHandleFile} from '@loaders.gl/loader-utils';\n\nlet slpkArchive: SLPKArchive;\n\n/**\n * Open SLPK file for reading and load HASH file\n * @param fullLayerPath - full path to SLPK file\n */\nexport async function loadArchive(fullLayerPath: string): Promise<void> {\n slpkArchive = await parseSLPKArchive(new FileHandleFile(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): Promise<ArrayBuffer | null> {\n const trimmedPath = /^\\/?(.*)\\/?$/.exec(url);\n if (trimmedPath) {\n try {\n const uncompressedFile = await slpkArchive.getFile(trimmedPath[1], 'http');\n return uncompressedFile;\n } catch {\n // TODO - log error?\n }\n }\n return null;\n}\n"],"mappings":"AAAA,OAAO,uBAAuB;AAC9B,SAAQA,gBAAgB,QAAoB,iBAAiB;AAC7D,SAAQC,cAAc,QAAO,0BAA0B;AAEvD,IAAIC,WAAwB;AAM5B,OAAO,eAAeC,WAAWA,CAACC,aAAqB,EAAiB;EACtEF,WAAW,GAAG,MAAMF,gBAAgB,CAAC,IAAIC,cAAc,CAACG,aAAa,CAAC,EAAGC,GAAG,IAC1EC,OAAO,CAACC,GAAG,CAACF,GAAG,CACjB,CAAC;EACDC,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAC3C;AAOA,OAAO,eAAeC,YAAYA,CAACC,GAAW,EAA+B;EAC3E,MAAMC,WAAW,GAAG,cAAc,CAACC,IAAI,CAACF,GAAG,CAAC;EAC5C,IAAIC,WAAW,EAAE;IACf,IAAI;MACF,MAAME,gBAAgB,GAAG,MAAMV,WAAW,CAACW,OAAO,CAACH,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;MAC1E,OAAOE,gBAAgB;IACzB,CAAC,CAAC,MAAM,CAER;EACF;EACA,OAAO,IAAI;AACb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["express","router","Router","getFileNameByUrl","require","get","req","res","next","fileName","path","sendFile","status","send","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,OAAOA,OAAO,MAAM,SAAS;AAE7B,MAAMC,MAAM,GAAGD,OAAO,CAACE,MAAM,CAAC,CAAC;AAC/B,MAAM;EAACC;AAAgB,CAAC,GAAGC,OAAO,CAAC,iCAAiC,CAAC;AAGrEH,MAAM,CAACI,GAAG,CAAC,GAAG,EAAE,gBAAgBC,GAAG,EAAEC,GAAG,EAAEC,IAAI,EAAE;EAC9C,MAAMC,QAAQ,GAAG,MAAMN,gBAAgB,CAACG,GAAG,CAACI,IAAI,CAAC;EACjD,IAAID,QAAQ,EAAE;IACZF,GAAG,CAACI,QAAQ,CAACF,QAAQ,CAAC;EACxB,CAAC,MAAM;IACLF,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC;IACfL,GAAG,CAACM,IAAI,CAAC,gBAAgB,CAAC;EAC5B;AACF,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,GAAGd,MAAM"}
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
- import { getFileByUrl } from '../controllers/slpk-controller';
3
- import { createSceneServer } from '../utils/create-scene-server';
2
+ import { getFileByUrl } from "../controllers/slpk-controller.js";
3
+ import { createSceneServer } from "../utils/create-scene-server.js";
4
4
  export const sceneServerRouter = express.Router();
5
5
  sceneServerRouter.get('*', async function (req, res, next) {
6
6
  const file = await getFileByUrl('/');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slpk-router.js","names":["express","getFileByUrl","createSceneServer","sceneServerRouter","Router","get","req","res","next","file","layer","JSON","parse","toString","sceneServerResponse","name","send","status","router","console","log","path"],"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,OAAOA,OAAO,MAAM,SAAS;AAAC,SACtBC,YAAY;AAAA,SACZC,iBAAiB;AAEzB,OAAO,MAAMC,iBAAiB,GAAGH,OAAO,CAACI,MAAM,CAAC,CAAC;AACjDD,iBAAiB,CAACE,GAAG,CAAC,GAAG,EAAE,gBAAgBC,GAAG,EAAEC,GAAG,EAAEC,IAAI,EAAE;EACzD,MAAMC,IAAI,GAAG,MAAMR,YAAY,CAAC,GAAG,CAAC;EACpC,IAAIQ,IAAI,EAAE;IACR,MAAMC,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAACI,QAAQ,CAAC,CAAC,CAAC;IACzC,MAAMC,mBAAmB,GAAGZ,iBAAiB,CAACQ,KAAK,CAACK,IAAI,EAAEL,KAAK,CAAC;IAChEH,GAAG,CAACS,IAAI,CAACF,mBAAmB,CAAC;EAC/B,CAAC,MAAM;IACLP,GAAG,CAACU,MAAM,CAAC,GAAG,CAAC;IACfV,GAAG,CAACS,IAAI,CAAC,gBAAgB,CAAC;EAC5B;AACF,CAAC,CAAC;AAEF,OAAO,MAAME,MAAM,GAAGlB,OAAO,CAACI,MAAM,CAAC,CAAC;AACtCc,MAAM,CAACb,GAAG,CAAC,GAAG,EAAE,gBAAgBC,GAAG,EAAEC,GAAG,EAAEC,IAAI,EAAE;EAC9CW,OAAO,CAACC,GAAG,CAACd,GAAG,CAACe,IAAI,CAAC;EACrB,MAAMZ,IAAI,GAAG,MAAMR,YAAY,CAACK,GAAG,CAACe,IAAI,CAAC;EACzC,IAAIZ,IAAI,EAAE;IACRF,GAAG,CAACS,IAAI,CAACP,IAAI,CAAC;EAChB,CAAC,MAAM;IACLF,GAAG,CAACU,MAAM,CAAC,GAAG,CAAC;IACfV,GAAG,CAACS,IAAI,CAAC,gBAAgB,CAAC;EAC5B;AACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-scene-server.js","names":["v4","uuidv4","createSceneServer","name","layer","serviceItemId","replace","serviceName","currentVersion","serviceVersion","supportedBindings","layers"],"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,SAAQA,EAAE,IAAIC,MAAM,QAAO,MAAM;AAQjC,OAAO,MAAMC,iBAAiB,GAAGA,CAACC,IAAY,EAAEC,KAAmB,KAAK;EACtE,OAAO;IACLC,aAAa,EAAEJ,MAAM,CAAC,CAAC,CAACK,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1CC,WAAW,EAAEJ,IAAI;IACjBA,IAAI;IACJK,cAAc,EAAE,MAAM;IACtBC,cAAc,EAAE,KAAK;IACrBC,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3BC,MAAM,EAAE,CAACP,KAAK;EAChB,CAAC;AACH,CAAC"}
@@ -15,14 +15,14 @@ export function formErrorHandler(optionalPort) {
15
15
  if (error.syscall !== 'listen') {
16
16
  throw error;
17
17
  }
18
- const bind = typeof optionalPort === 'string' ? "Pipe ".concat(optionalPort) : "Port ".concat(optionalPort);
18
+ const bind = typeof optionalPort === 'string' ? `Pipe ${optionalPort}` : `Port ${optionalPort}`;
19
19
  switch (error.code) {
20
20
  case 'EACCES':
21
- console.error("".concat(bind, " requires elevated privileges"));
21
+ console.error(`${bind} requires elevated privileges`);
22
22
  process.exit(1);
23
23
  break;
24
24
  case 'EADDRINUSE':
25
- console.error("".concat(bind, " is already in use"));
25
+ console.error(`${bind} is already in use`);
26
26
  process.exit(1);
27
27
  break;
28
28
  default:
@@ -33,8 +33,8 @@ export function formErrorHandler(optionalPort) {
33
33
  export function formListeningHandler(optionalServer) {
34
34
  return function onListening() {
35
35
  const addr = optionalServer.address();
36
- const bind = typeof addr === 'string' ? "pipe ".concat(addr) : "port ".concat(addr === null || addr === void 0 ? void 0 : addr.port);
37
- debug("Listening on ".concat(bind));
36
+ const bind = typeof addr === 'string' ? `pipe ${addr}` : `port ${addr === null || addr === void 0 ? void 0 : addr.port}`;
37
+ debug(`Listening on ${bind}`);
38
38
  };
39
39
  }
40
40
  //# sourceMappingURL=server-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-utils.js","names":["debugFactory","debug","normalizePort","val","chkPort","parseInt","Number","isNaN","formErrorHandler","optionalPort","onError","error","syscall","bind","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,OAAOA,YAAY,MAAM,OAAO;AAChC,MAAMC,KAAK,GAAGD,YAAY,CAAC,mBAAmB,CAAC;AAO/C,OAAO,SAASE,aAAaA,CAACC,GAAW,EAA2B;EAClE,MAAMC,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;AAOA,OAAO,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,MAAME,IAAI,GAAG,OAAOJ,YAAY,KAAK,QAAQ,GAAI,QAAOA,YAAa,EAAC,GAAI,QAAOA,YAAa,EAAC;IAG/F,QAAQE,KAAK,CAACG,IAAI;MAChB,KAAK,QAAQ;QACXC,OAAO,CAACJ,KAAK,CAAE,GAAEE,IAAK,+BAA8B,CAAC;QACrDG,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;QACf;MACF,KAAK,YAAY;QACfF,OAAO,CAACJ,KAAK,CAAE,GAAEE,IAAK,oBAAmB,CAAC;QAC1CG,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;QACf;MACF;QACE,MAAMN,KAAK;IACf;EACF,CAAC;AACH;AAOA,OAAO,SAASO,oBAAoBA,CAACC,cAAwC,EAAc;EACzF,OAAO,SAASC,WAAWA,CAAA,EAAG;IAC5B,MAAMC,IAAI,GAAGF,cAAc,CAACG,OAAO,CAAC,CAAC;IACrC,MAAMT,IAAI,GAAG,OAAOQ,IAAI,KAAK,QAAQ,GAAI,QAAOA,IAAK,EAAC,GAAI,QAAOA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,IAAK,EAAC;IAC7EtB,KAAK,CAAE,gBAAeY,IAAK,EAAC,CAAC;EAC/B,CAAC;AACH"}