@loaders.gl/tile-converter 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (368) hide show
  1. package/bin/converter.js +1 -1
  2. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  3. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  4. package/dist/3d-tiles-attributes-worker.js +3 -0
  5. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +13 -1
  7. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  8. package/dist/3d-tiles-converter/3d-tiles-converter.js +274 -233
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +9 -16
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  11. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +256 -246
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +22 -9
  13. package/dist/3d-tiles-converter/helpers/texture-atlas.js +47 -28
  14. package/dist/3d-tiles-converter/json-templates/tileset.js +38 -35
  15. package/dist/bundle.js +2 -2
  16. package/dist/constants.d.ts +2 -0
  17. package/dist/constants.d.ts.map +1 -0
  18. package/dist/constants.js +4 -0
  19. package/dist/converter-cli.d.ts +2 -0
  20. package/dist/converter-cli.d.ts.map +1 -0
  21. package/dist/converter-cli.js +280 -0
  22. package/dist/converter.min.js +185 -190
  23. package/dist/deps-installer/deps-installer.d.ts +11 -3
  24. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  25. package/dist/deps-installer/deps-installer.js +59 -18
  26. package/dist/dist.min.js +15153 -37895
  27. package/dist/es5/3d-tiles-attributes-worker.js +25 -0
  28. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  29. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +467 -0
  30. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  31. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +293 -0
  32. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  33. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +18 -0
  34. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  35. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +33 -0
  36. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  37. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +61 -0
  38. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  39. package/dist/es5/bundle.js +6 -0
  40. package/dist/es5/bundle.js.map +1 -0
  41. package/dist/es5/constants.js +9 -0
  42. package/dist/es5/constants.js.map +1 -0
  43. package/dist/es5/converter-cli.js +289 -0
  44. package/dist/es5/converter-cli.js.map +1 -0
  45. package/dist/es5/deps-installer/deps-installer.js +123 -0
  46. package/dist/es5/deps-installer/deps-installer.js.map +1 -0
  47. package/dist/es5/i3s-attributes-worker.js +25 -0
  48. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  49. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +116 -0
  50. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  51. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +90 -0
  52. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  53. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +41 -0
  54. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  55. package/dist/es5/i3s-converter/helpers/feature-attributes.js +174 -0
  56. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -0
  57. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +213 -0
  58. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  59. package/dist/es5/i3s-converter/helpers/geometry-converter.js +1181 -0
  60. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -0
  61. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +80 -0
  62. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  63. package/dist/es5/i3s-converter/helpers/node-debug.js +76 -0
  64. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -0
  65. package/dist/es5/i3s-converter/helpers/node-index-document.js +492 -0
  66. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
  67. package/dist/es5/i3s-converter/helpers/node-pages.js +519 -0
  68. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -0
  69. package/dist/es5/i3s-converter/i3s-converter.js +1512 -0
  70. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -0
  71. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
  72. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  73. package/dist/es5/i3s-converter/json-templates/layers.js +163 -0
  74. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -0
  75. package/dist/es5/i3s-converter/json-templates/metadata.js +31 -0
  76. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -0
  77. package/dist/es5/i3s-converter/json-templates/node.js +99 -0
  78. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -0
  79. package/dist/es5/i3s-converter/json-templates/scene-server.js +39 -0
  80. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -0
  81. package/dist/es5/i3s-converter/json-templates/shared-resources.js +173 -0
  82. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -0
  83. package/dist/es5/i3s-converter/json-templates/store.js +107 -0
  84. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -0
  85. package/dist/es5/i3s-converter/types.js +2 -0
  86. package/dist/es5/i3s-converter/types.js.map +1 -0
  87. package/dist/es5/i3s-server/app.js +18 -0
  88. package/dist/es5/i3s-server/app.js.map +1 -0
  89. package/dist/es5/i3s-server/controllers/index-controller.js +55 -0
  90. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -0
  91. package/dist/es5/i3s-server/routes/index.js +37 -0
  92. package/dist/es5/i3s-server/routes/index.js.map +1 -0
  93. package/dist/es5/index.js +21 -0
  94. package/dist/es5/index.js.map +1 -0
  95. package/dist/es5/lib/utils/compress-util.js +346 -0
  96. package/dist/es5/lib/utils/compress-util.js.map +1 -0
  97. package/dist/es5/lib/utils/file-utils.js +208 -0
  98. package/dist/es5/lib/utils/file-utils.js.map +1 -0
  99. package/dist/es5/lib/utils/geometry-utils.js +15 -0
  100. package/dist/es5/lib/utils/geometry-utils.js.map +1 -0
  101. package/dist/es5/lib/utils/lod-conversion-utils.js +44 -0
  102. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -0
  103. package/dist/es5/lib/utils/queue.js +47 -0
  104. package/dist/es5/lib/utils/queue.js.map +1 -0
  105. package/dist/es5/lib/utils/statistic-utills.d.ts +25 -0
  106. package/dist/es5/lib/utils/statistic-utills.js +147 -0
  107. package/dist/es5/lib/utils/statistic-utills.js.map +1 -0
  108. package/dist/es5/lib/utils/write-queue.js +214 -0
  109. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  110. package/dist/es5/pgm-loader.js +41 -0
  111. package/dist/es5/pgm-loader.js.map +1 -0
  112. package/dist/es5/workers/3d-tiles-attributes-worker.js +28 -0
  113. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  114. package/dist/es5/workers/i3s-attributes-worker.js +30 -0
  115. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  116. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  117. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  118. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +245 -0
  119. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  120. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +218 -0
  121. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  122. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +10 -0
  123. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  124. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +27 -0
  125. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  126. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +37 -0
  127. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  128. package/dist/esm/bundle.js +4 -0
  129. package/dist/esm/bundle.js.map +1 -0
  130. package/dist/esm/constants.js +2 -0
  131. package/dist/esm/constants.js.map +1 -0
  132. package/dist/esm/converter-cli.js +232 -0
  133. package/dist/esm/converter-cli.js.map +1 -0
  134. package/dist/esm/deps-installer/deps-installer.js +44 -0
  135. package/dist/esm/deps-installer/deps-installer.js.map +1 -0
  136. package/dist/esm/i3s-attributes-worker.js +16 -0
  137. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  138. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +105 -0
  139. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -0
  140. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +80 -0
  141. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  142. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +16 -0
  143. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  144. package/dist/esm/i3s-converter/helpers/feature-attributes.js +147 -0
  145. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -0
  146. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +190 -0
  147. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  148. package/dist/esm/i3s-converter/helpers/geometry-converter.js +895 -0
  149. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -0
  150. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +73 -0
  151. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  152. package/dist/esm/i3s-converter/helpers/node-debug.js +72 -0
  153. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -0
  154. package/dist/esm/i3s-converter/helpers/node-index-document.js +188 -0
  155. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
  156. package/dist/esm/i3s-converter/helpers/node-pages.js +206 -0
  157. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -0
  158. package/dist/esm/i3s-converter/i3s-converter.js +764 -0
  159. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -0
  160. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
  161. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
  162. package/dist/esm/i3s-converter/json-templates/layers.js +133 -0
  163. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -0
  164. package/dist/esm/i3s-converter/json-templates/metadata.js +22 -0
  165. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -0
  166. package/dist/esm/i3s-converter/json-templates/node.js +80 -0
  167. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -0
  168. package/dist/esm/i3s-converter/json-templates/scene-server.js +28 -0
  169. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -0
  170. package/dist/esm/i3s-converter/json-templates/shared-resources.js +123 -0
  171. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -0
  172. package/dist/esm/i3s-converter/json-templates/store.js +98 -0
  173. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -0
  174. package/dist/esm/i3s-converter/types.js +2 -0
  175. package/dist/esm/i3s-converter/types.js.map +1 -0
  176. package/dist/esm/i3s-server/app.js +16 -0
  177. package/dist/esm/i3s-server/app.js.map +1 -0
  178. package/dist/esm/i3s-server/bin/www +102 -0
  179. package/dist/esm/i3s-server/certs/cert.pem +19 -0
  180. package/dist/esm/i3s-server/certs/key.pem +27 -0
  181. package/dist/esm/i3s-server/controllers/index-controller.js +24 -0
  182. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -0
  183. package/dist/esm/i3s-server/routes/index.js +16 -0
  184. package/dist/esm/i3s-server/routes/index.js.map +1 -0
  185. package/dist/esm/index.js +3 -0
  186. package/dist/esm/index.js.map +1 -0
  187. package/dist/esm/lib/utils/compress-util.js +168 -0
  188. package/dist/esm/lib/utils/compress-util.js.map +1 -0
  189. package/dist/esm/lib/utils/file-utils.js +87 -0
  190. package/dist/esm/lib/utils/file-utils.js.map +1 -0
  191. package/dist/esm/lib/utils/geometry-utils.js +8 -0
  192. package/dist/esm/lib/utils/geometry-utils.js.map +1 -0
  193. package/dist/esm/lib/utils/lod-conversion-utils.js +37 -0
  194. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -0
  195. package/dist/esm/lib/utils/queue.js +15 -0
  196. package/dist/esm/lib/utils/queue.js.map +1 -0
  197. package/dist/esm/lib/utils/statistic-utills.d.ts +25 -0
  198. package/dist/esm/lib/utils/statistic-utills.js +62 -0
  199. package/dist/esm/lib/utils/statistic-utills.js.map +1 -0
  200. package/dist/esm/lib/utils/write-queue.js +85 -0
  201. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  202. package/dist/esm/pgm-loader.js +15 -0
  203. package/dist/esm/pgm-loader.js.map +1 -0
  204. package/dist/esm/workers/3d-tiles-attributes-worker.js +8 -0
  205. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  206. package/dist/esm/workers/i3s-attributes-worker.js +7 -0
  207. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  208. package/dist/i3s-attributes-worker.d.ts +45 -0
  209. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  210. package/dist/i3s-attributes-worker.js +9 -0
  211. package/dist/i3s-attributes-worker.js.map +7 -0
  212. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +13 -0
  213. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -0
  214. package/dist/i3s-converter/helpers/batch-ids-extensions.js +141 -0
  215. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +9 -9
  216. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -1
  217. package/dist/i3s-converter/helpers/coordinate-converter.js +118 -72
  218. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +5 -5
  219. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -1
  220. package/dist/i3s-converter/helpers/create-scene-server-path.js +27 -15
  221. package/dist/i3s-converter/helpers/feature-attributes.d.ts +56 -0
  222. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -0
  223. package/dist/i3s-converter/helpers/feature-attributes.js +216 -0
  224. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +4 -19
  225. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  226. package/dist/i3s-converter/helpers/geometry-attributes.js +188 -185
  227. package/dist/i3s-converter/helpers/geometry-converter.d.ts +36 -39
  228. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  229. package/dist/i3s-converter/helpers/geometry-converter.js +1150 -689
  230. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  231. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  232. package/dist/i3s-converter/helpers/gltf-attributes.js +85 -0
  233. package/dist/i3s-converter/helpers/node-debug.d.ts +7 -1
  234. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -1
  235. package/dist/i3s-converter/helpers/node-debug.js +106 -72
  236. package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
  237. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
  238. package/dist/i3s-converter/helpers/node-index-document.js +250 -0
  239. package/dist/i3s-converter/helpers/node-pages.d.ts +81 -41
  240. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  241. package/dist/i3s-converter/helpers/node-pages.js +313 -144
  242. package/dist/i3s-converter/i3s-converter.d.ts +60 -113
  243. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  244. package/dist/i3s-converter/i3s-converter.js +858 -951
  245. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
  246. package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
  247. package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
  248. package/dist/i3s-converter/json-templates/layers.d.ts +5 -30
  249. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
  250. package/dist/i3s-converter/json-templates/layers.js +132 -194
  251. package/dist/i3s-converter/json-templates/metadata.js +24 -21
  252. package/dist/i3s-converter/json-templates/node.js +82 -77
  253. package/dist/i3s-converter/json-templates/scene-server.js +30 -27
  254. package/dist/i3s-converter/json-templates/shared-resources.js +116 -122
  255. package/dist/i3s-converter/json-templates/store.js +100 -95
  256. package/dist/i3s-converter/types.d.ts +137 -6
  257. package/dist/i3s-converter/types.d.ts.map +1 -1
  258. package/dist/i3s-converter/types.js +2 -2
  259. package/dist/i3s-server/app.js +2 -9
  260. package/dist/i3s-server/controllers/index-controller.js +16 -24
  261. package/dist/i3s-server/routes/index.js +11 -15
  262. package/dist/index.d.ts +0 -2
  263. package/dist/index.d.ts.map +1 -1
  264. package/dist/index.js +10 -5
  265. package/dist/lib/utils/compress-util.d.ts +12 -20
  266. package/dist/lib/utils/compress-util.d.ts.map +1 -1
  267. package/dist/lib/utils/compress-util.js +238 -160
  268. package/dist/lib/utils/file-utils.d.ts +22 -14
  269. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  270. package/dist/lib/utils/file-utils.js +133 -36
  271. package/dist/lib/utils/geometry-utils.d.ts +9 -0
  272. package/dist/lib/utils/geometry-utils.d.ts.map +1 -0
  273. package/dist/lib/utils/geometry-utils.js +18 -0
  274. package/dist/lib/utils/lod-conversion-utils.d.ts +21 -12
  275. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
  276. package/dist/lib/utils/lod-conversion-utils.js +72 -39
  277. package/dist/lib/utils/queue.d.ts +7 -0
  278. package/dist/lib/utils/queue.d.ts.map +1 -0
  279. package/dist/lib/utils/queue.js +18 -0
  280. package/dist/lib/utils/statistic-utills.d.ts +3 -25
  281. package/dist/lib/utils/statistic-utills.d.ts.map +1 -1
  282. package/dist/lib/utils/statistic-utills.js +58 -67
  283. package/dist/lib/utils/write-queue.d.ts +39 -0
  284. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  285. package/dist/lib/utils/write-queue.js +80 -0
  286. package/dist/pgm-loader.d.ts.map +1 -1
  287. package/dist/pgm-loader.js +23 -14
  288. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  289. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  290. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  291. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  292. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  293. package/dist/workers/i3s-attributes-worker.js +5 -0
  294. package/package.json +32 -24
  295. package/src/3d-tiles-attributes-worker.ts +43 -0
  296. package/src/3d-tiles-converter/3d-tiles-converter.ts +102 -40
  297. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +39 -44
  298. package/src/constants.ts +2 -0
  299. package/src/converter-cli.ts +370 -0
  300. package/src/deps-installer/deps-installer.ts +71 -0
  301. package/src/i3s-attributes-worker.ts +59 -0
  302. package/src/i3s-converter/helpers/batch-ids-extensions.ts +205 -0
  303. package/src/i3s-converter/helpers/coordinate-converter.ts +33 -26
  304. package/src/i3s-converter/helpers/create-scene-server-path.ts +9 -5
  305. package/src/i3s-converter/helpers/feature-attributes.ts +247 -0
  306. package/src/i3s-converter/helpers/geometry-attributes.ts +98 -47
  307. package/src/i3s-converter/helpers/geometry-converter.ts +1635 -0
  308. package/src/i3s-converter/helpers/gltf-attributes.ts +100 -0
  309. package/src/i3s-converter/helpers/node-debug.ts +68 -16
  310. package/src/i3s-converter/helpers/node-index-document.ts +315 -0
  311. package/src/i3s-converter/helpers/node-pages.ts +222 -101
  312. package/src/i3s-converter/i3s-converter.ts +408 -555
  313. package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
  314. package/src/i3s-converter/json-templates/layers.ts +27 -91
  315. package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
  316. package/src/i3s-converter/types.ts +156 -5
  317. package/src/index.ts +0 -4
  318. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  319. package/src/lib/utils/file-utils.ts +139 -0
  320. package/src/lib/utils/geometry-utils.ts +14 -0
  321. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  322. package/src/lib/utils/queue.ts +17 -0
  323. package/src/lib/utils/write-queue.ts +110 -0
  324. package/src/pgm-loader.ts +2 -2
  325. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  326. package/src/workers/i3s-attributes-worker.ts +7 -0
  327. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  328. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  329. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  330. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  331. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  332. package/dist/bundle.js.map +0 -1
  333. package/dist/deps-installer/deps-installer.js.map +0 -1
  334. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  335. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  336. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  337. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  338. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  339. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  340. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  341. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  342. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  343. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  344. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  345. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  346. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  347. package/dist/i3s-converter/types.js.map +0 -1
  348. package/dist/i3s-server/app.js.map +0 -1
  349. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  350. package/dist/i3s-server/routes/index.js.map +0 -1
  351. package/dist/index.js.map +0 -1
  352. package/dist/lib/utils/compress-util.js.map +0 -1
  353. package/dist/lib/utils/file-utils.js.map +0 -1
  354. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  355. package/dist/lib/utils/statistic-utills.js.map +0 -1
  356. package/dist/pgm-loader.js.map +0 -1
  357. package/src/deps-installer/deps-installer.d.ts +0 -10
  358. package/src/deps-installer/deps-installer.js +0 -22
  359. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  360. package/src/i3s-converter/helpers/geometry-converter.js +0 -992
  361. package/src/lib/utils/compress-util.d.ts +0 -53
  362. package/src/lib/utils/file-utils.d.ts +0 -43
  363. package/src/lib/utils/file-utils.js +0 -38
  364. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
  365. /package/dist/{i3s-server → es5/i3s-server}/bin/www +0 -0
  366. /package/dist/{i3s-server → es5/i3s-server}/certs/cert.pem +0 -0
  367. /package/dist/{i3s-server → es5/i3s-server}/certs/key.pem +0 -0
  368. /package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-converter.js","names":["_core","require","_tiles","_dTiles","_path","_uuid","_process","_interopRequireDefault","_jsonMapTransform","_md","_nodePages","_fileUtils","_compressUtil","_statisticUtills","_geometryConverter","_interopRequireWildcard","_coordinateConverter","_createSceneServerPath","_lodConversionUtils","_pgmLoader","_layers","_geometryDefinitions","_sharedResources","_nodeDebug","_textures","_images","_workerUtils","_draco","_writeQueue","_i3sAttributesWorker","_constants","_featureAttributes","_nodeIndexDocument","_process$env","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ION_DEFAULT_TOKEN","process","env","IonToken","HARDCODED_NODES_PER_PAGE","_3D_TILES","_3D_OBJECT_LAYER_TYPE","REFRESH_TOKEN_TIMEOUT","CESIUM_DATASET_PREFIX","I3SConverter","_classCallCheck2","Tiles3DLoader","WriteQueue","nodePages","NodePages","writeFile","options","layers0Path","materialMap","Map","materialDefinitions","geometryMap","geometryConfigs","vertexCounter","layers0","featuresHashArray","refinementCounter","tilesCount","tilesWithAddRefineCount","validate","generateTextures","generateBoundingVolumes","layersHasTexture","compressList","_createClass2","_convert","_asyncToGenerator2","_regenerator","mark","_callee","tilesetName","slpk","egmFilePath","inputUrl","outputPath","_options$draco","draco","sevenZipExe","maxDepth","token","_options$instantNodeW","instantNodeWriting","_options$mergeMateria","mergeMaterials","_sourceTilesetJson$ro","_sourceTilesetJson$ro2","preloadOptions","tilesetOptions","sourceTilesetJson","workerFarm","wrap","_callee$","_context","prev","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","conversionStartTime","hrtime","Boolean","Loader","indexOf","CesiumIonLoader","writeQueue","startListening","load","PGMLoader","geoidHeightModel","sent","useWriteFunction","writeFileForSlpk","loadWorkers","_fetchPreloadOptions","loadOptions","_nodeWorkers","reuseWorkers","basis","format","headers","fetch","assign","sourceTileset","Tileset3D","_createAndSaveTileset","root","boundingVolume","region","_finishConversion","t0","WorkerFarm","getWorkerFarm","destroy","finish","stop","convert","_x","_createAndSaveTileset2","_callee2","boundingVolumeRegion","_this","tilesetPath","sourceRootTile","boundingVolumes","rootNode","_iterator","_step","filePath","_callee2$","_context2","join","concat","removeDir","_formLayers0","createBoundingVolumes","index","lodThreshold","obb","children","NodeIndexDocument","createRootNode","_convertNodesTree","geometryDefinitions","transform","map","config","geometryConfig","geometryDefinitionTemlate","store","defaultGeometrySchema","ordering","attribute","_writeLayers0","createSceneServerPath","compressFileWithGzip","removeFile","t1","save","finalize","_createSlpk","_x2","_x3","_x4","_this$sourceTileset","_this$sourceTileset2","_this$sourceTileset2$","fullExtent","convertBoundingVolumeToI3SFullExtent","zmin","zmax","extent","xmin","ymin","xmax","ymax","layers0data","version","uuidv4","toUpperCase","id","href","nodesPerPage","compressGeometry","layersTemplate","_convertNodesTree2","_callee3","childNodes","_iterator2","_step2","childNode","_callee3$","_context3","_loadTile","isContentSupported","_createNode","addChildren","_addChildrenWithNeighborsAndWriteFile","parentNode","sourceTiles","level","unloadContent","_x5","_x6","_writeLayers","_callee4","_this2","_callee4$","_context4","enqueue","archiveKey","writePromise","JSON","stringify","_createSlpk2","_callee5","slpkTilesetPath","slpkFileName","_callee5$","_context5","compressWithChildProcess","_x7","_addChildrenWithNeighborsAndWriteFile2","_callee6","data","_callee6$","_context6","_addChildren","addNeighbors","_x8","_convertNestedTileset","_callee7","_ref","sourceTile","_callee7$","_context7","convertNestedTileset","_x9","_convertNode","_callee8","_ref2","_callee8$","_context8","convertNode","_x10","_addChildren2","_callee9","_iterator3","_step3","_callee9$","_context9","type","_x11","_createNode2","_callee10","_this$layers","_this$layers$attribut","propertyTable","resourcesData","nodes","nodeIds","nodesInPage","emptyResources","_iterator4","_step4","resources","lodSelection","maxScreenThresholdSQ","nodeInPage","nodeData","node","_console","_callee10$","_context10","_checkAddRefinementTypeForTile","_updateTilesetOptions","getPropertyTable","content","attributeStorageInfo","_convertPropertyTableToNodeAttributes","_convertResources","inPageId","geometry","compressedGeometry","texture","hasUvRegions","sharedResources","meshMaterial","vertexCount","attributes","featureCount","convertGeometricErrorToScreenThreshold","find","val","metricType","maxError","_updateNodeInNodePages","createNodeIndexDocument","addData","mesh","_writeResources","boundingVolumeWarnings","validateNodeBoundingVolumes","warn","_toConsumableArray2","_x12","_x13","_x14","_convertResources2","_callee12","parentId","_this3","_this$layers2","draftObb","_callee12$","_context12","center","halfSize","quaternion","convertB3dmToI3sGeometry","_callee11","_callee11$","_context11","workerSource","_x15","_x16","_x17","_updateNodeInNodePages2","_callee13","nodeId","texelCountHint","_callee13$","_context13","definition","findOrCreateGeometryDefinition","resource","material","getNodeById","updateAll","updateMaterialByNodeId","_findOrCreateMaterial","image","height","width","updateTexelCountHintByNodeId","updateVertexCountByNodeId","updateNodeAttributeByNodeId","updateFeatureCountByNodeId","saveNode","_x18","_x19","_x20","_x21","_x22","_writeResources2","_callee14","nodePath","geometryBuffer","childPath","slpkChildPath","_callee14$","_context14","_writeGeometries","_writeShared","_writeTexture","_writeAttributes","_x23","_x24","_writeGeometries2","_callee15","slpkGeometryPath","geometryPath","slpkCompressedGeometryPath","compressedGeometryPath","_callee15$","_context15","_x25","_x26","_x27","_x28","_writeShared2","_callee16","sharedData","sharedDataStr","slpkSharedPath","sharedPath","_callee16$","_context16","sharedResourcesTemplate","_x29","_x30","_x31","_x32","_writeTexture2","_callee17","formats","textureData","copyArrayBuffer","arrayToEncode","ktx2TextureData","decodedFromKTX2TextureData","_callee17$","_context17","_getFormatByMimeType","mimeType","bufferView","writeTextureFile","subarray","Uint8Array","encode","KTX2BasisWriterWorker","ktx2","ImageWriter","textureSetDefinitions","atlas","_x33","_x34","_x35","_writeTextureFile","_callee18","slpkTexturePath","compress","texturePath","_callee18$","_context18","_x36","_x37","_x38","_x39","_x40","_writeAttributes2","_callee19","_this$layers3","_this$layers3$attribu","_this4","_loop","_args20","_callee19$","_context20","undefined","folderName","fileBuffer","slpkAttributesPath","attributesPath","_loop$","_context19","delegateYield","hash","md5","newMaterialId","hasTexture","newGeometryId","attributeIndex","propertyTableWithObjectId","OBJECTID","firstAttribute","attributeType","getAttributeType","storageAttribute","createdStorageAttribute","fieldAttributeType","getFieldAttributeType","fieldAttribute","createFieldAttribute","popupInfo","createPopupInfo","fields","layerType","_finishConversion2","_callee20","params","_this$refinementCount","addRefinementPercentage","filesSize","diff","conversionTime","_callee20$","_context21","calculateFilesSize","timeConverter","_x41","_fetchPreloadOptions2","_callee21","_callee21$","_context22","preload","accessToken","refreshTokenTime","_updateTilesetOptions2","_callee22","_callee22$","_context23","tile","ADD_TILE_REFINEMENT","refine","_sourceRootTile$conte","includes","_loadWorkers","_callee23","url","_sourceResponse","_source","_url","_sourceResponse2","_source2","i3sAttributesWorkerUrl","sourceResponse","_callee23$","_context24","getWorkerURL","DracoWriterWorker","getLoaderOptions","fetchFile","text","I3SAttributesWorker","I3SAttributes","exports"],"sources":["../../../src/i3s-converter/i3s-converter.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Tileset3DProps} from '@loaders.gl/tiles';\nimport type {FeatureTableJson} from '@loaders.gl/3d-tiles';\nimport type {WriteQueueItem} from '../lib/utils/write-queue';\nimport type {\n SceneLayer3D,\n BoundingVolumes,\n MaxScreenThresholdSQ,\n NodeInPage\n} from '@loaders.gl/i3s';\nimport {load, encode, fetchFile, getLoaderOptions, isBrowser} from '@loaders.gl/core';\nimport {Tileset3D} from '@loaders.gl/tiles';\nimport {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';\nimport {Geoid} from '@math.gl/geoid';\nimport {join} from 'path';\nimport {v4 as uuidv4} from 'uuid';\nimport process from 'process';\nimport transform from 'json-map-transform';\nimport md5 from 'md5';\n\nimport NodePages from './helpers/node-pages';\nimport {writeFile, removeDir, writeFileForSlpk, removeFile} from '../lib/utils/file-utils';\nimport {\n compressFileWithGzip,\n compressWithChildProcess\n // generateHash128FromZip,\n // addFileToZip\n} from '../lib/utils/compress-util';\nimport {calculateFilesSize, timeConverter} from '../lib/utils/statistic-utills';\nimport convertB3dmToI3sGeometry, {getPropertyTable} from './helpers/geometry-converter';\nimport {\n createBoundingVolumes,\n convertBoundingVolumeToI3SFullExtent\n} from './helpers/coordinate-converter';\nimport {createSceneServerPath} from './helpers/create-scene-server-path';\nimport {convertGeometricErrorToScreenThreshold} from '../lib/utils/lod-conversion-utils';\nimport {PGMLoader} from '../pgm-loader';\n\nimport {LAYERS as layersTemplate} from './json-templates/layers';\nimport {GEOMETRY_DEFINITION as geometryDefinitionTemlate} from './json-templates/geometry-definitions';\nimport {SHARED_RESOURCES as sharedResourcesTemplate} from './json-templates/shared-resources';\nimport {validateNodeBoundingVolumes} from './helpers/node-debug';\n// loaders.gl, MIT license\n\nimport {Tile3D} from '@loaders.gl/tiles';\nimport {KTX2BasisWriterWorker} from '@loaders.gl/textures';\nimport {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {I3SMaterialDefinition, TextureSetDefinitionFormats} from '@loaders.gl/i3s/src/types';\nimport {ImageWriter} from '@loaders.gl/images';\nimport {GLTFImagePostprocessed} from '@loaders.gl/gltf';\nimport {I3SConvertedResources, SharedResourcesArrays} from './types';\nimport {getWorkerURL, WorkerFarm} from '@loaders.gl/worker-utils';\nimport {DracoWriterWorker} from '@loaders.gl/draco';\nimport WriteQueue from '../lib/utils/write-queue';\nimport {I3SAttributesWorker} from '../i3s-attributes-worker';\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {\n createdStorageAttribute,\n createFieldAttribute,\n createPopupInfo,\n getAttributeType,\n getFieldAttributeType\n} from './helpers/feature-attributes';\nimport {NodeIndexDocument} from './helpers/node-index-document';\n\nconst ION_DEFAULT_TOKEN =\n process.env?.IonToken || // eslint-disable-line\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line\nconst HARDCODED_NODES_PER_PAGE = 64;\nconst _3D_TILES = '3DTILES';\nconst _3D_OBJECT_LAYER_TYPE = '3DObject';\nconst REFRESH_TOKEN_TIMEOUT = 1800; // 30 minutes in seconds\nconst CESIUM_DATASET_PREFIX = 'https://';\n// const FS_FILE_TOO_LARGE = 'ERR_FS_FILE_TOO_LARGE';\n\n/**\n * Converter from 3d-tiles tileset to i3s layer\n */\nexport default class I3SConverter {\n nodePages: NodePages;\n options: any;\n layers0Path: string;\n materialMap: Map<string, number>;\n materialDefinitions: I3SMaterialDefinition[];\n geometryMap: Map<string, number>;\n geometryConfigs: {hasTexture: boolean; hasUvRegions: boolean}[];\n vertexCounter: number;\n layers0: SceneLayer3D | null;\n featuresHashArray: string[];\n refinementCounter: {\n tilesCount: number;\n tilesWithAddRefineCount: number;\n };\n validate: boolean;\n boundingVolumeWarnings?: string[] = [];\n conversionStartTime: [number, number] = [0, 0];\n refreshTokenTime: [number, number] = [0, 0];\n sourceTileset: Tileset3D | null = null;\n geoidHeightModel: Geoid | null = null;\n Loader: LoaderWithParser = Tiles3DLoader;\n generateTextures: boolean;\n generateBoundingVolumes: boolean;\n layersHasTexture: boolean;\n workerSource: {[key: string]: string} = {};\n writeQueue: WriteQueue<WriteQueueItem> = new WriteQueue();\n compressList: string[] | null = null;\n\n constructor() {\n this.nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE, this);\n this.options = {};\n this.layers0Path = '';\n this.materialMap = new Map();\n this.materialDefinitions = [];\n this.geometryMap = new Map();\n this.geometryConfigs = [];\n this.vertexCounter = 0;\n this.layers0 = null;\n this.featuresHashArray = [];\n this.refinementCounter = {\n tilesCount: 0,\n tilesWithAddRefineCount: 0\n };\n this.validate = false;\n this.generateTextures = false;\n this.generateBoundingVolumes = false;\n this.layersHasTexture = false;\n this.compressList = null;\n }\n\n /**\n * Convert a 3d tileset\n * @param options\n * @param options.inputUrl the url to read the tileset from\n * @param options.outputPath the output filename\n * @param options.tilesetName the output name of the tileset\n * @param options.maxDepth The max tree depth of conversion\n * @param options.slpk Generate slpk (Scene Layer Packages) output file\n * @param options.sevenZipExe Location of 7z.exe archiver to create slpk on Windows\n * @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format\n * @param options.token Token for Cesium ION tilesets authentication\n * @param options.draco Generate I3S 1.7 draco compressed geometries\n * @param options.validate -enable validation\n * @param options.generateTextures - generate alternative type of textures (to have non-compressed jpeg/png and compressed ktx2)\n * @param options.generateBoundingVolumes - generate bounding volumes from vertices coordinates instead of source tiles bounding volumes\n * @param options.instantNodeWriting - Keep created 3DNodeIndexDocument files on disk instead of memory. This option reduce memory usage but decelerates conversion speed\n */\n async convert(options: {\n inputUrl: string;\n outputPath: string;\n tilesetName: string;\n sevenZipExe: string;\n egmFilePath: string;\n maxDepth?: number;\n slpk?: boolean;\n token?: string;\n draco?: boolean;\n mergeMaterials?: boolean;\n validate?: boolean;\n generateTextures?: boolean;\n generateBoundingVolumes?: boolean;\n instantNodeWriting?: boolean;\n }): Promise<any> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n this.conversionStartTime = process.hrtime();\n const {\n tilesetName,\n slpk,\n egmFilePath,\n inputUrl,\n validate,\n outputPath,\n draco = true,\n sevenZipExe,\n maxDepth,\n token,\n generateTextures,\n generateBoundingVolumes,\n instantNodeWriting = false,\n mergeMaterials = true\n } = options;\n this.options = {\n maxDepth,\n slpk,\n sevenZipExe,\n egmFilePath,\n draco,\n token,\n inputUrl,\n instantNodeWriting,\n mergeMaterials\n };\n this.compressList = (this.options.instantNodeWriting && []) || null;\n this.validate = Boolean(validate);\n this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;\n this.generateTextures = Boolean(generateTextures);\n this.generateBoundingVolumes = Boolean(generateBoundingVolumes);\n\n this.writeQueue = new WriteQueue();\n this.writeQueue.startListening();\n\n console.log('Loading egm file...'); // eslint-disable-line\n this.geoidHeightModel = await load(egmFilePath, PGMLoader);\n console.log('Loading egm file completed!'); // eslint-disable-line\n\n if (slpk) {\n this.nodePages.useWriteFunction(writeFileForSlpk);\n }\n\n await this.loadWorkers();\n\n try {\n const preloadOptions = await this._fetchPreloadOptions();\n const tilesetOptions: Tileset3DProps = {\n loadOptions: {\n _nodeWorkers: true,\n reuseWorkers: true,\n basis: {format: 'rgba32'}\n // TODO - should no longer be needed with new Node workers\n // 'basis-nodejs': {\n // format: 'rgba32',\n // workerUrl: './modules/textures/dist/basis-worker-node.js'\n // },\n // 'draco-nodejs': {workerUrl: './modules/draco/dist/draco-worker-node.js'}\n }\n };\n if (preloadOptions.headers) {\n tilesetOptions.loadOptions!.fetch = {headers: preloadOptions.headers};\n }\n Object.assign(tilesetOptions, preloadOptions);\n const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);\n // console.log(tilesetJson); // eslint-disable-line\n this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);\n\n await this._createAndSaveTileset(\n outputPath,\n tilesetName,\n sourceTilesetJson?.root?.boundingVolume?.region\n );\n await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});\n return sourceTilesetJson;\n } catch (error) {\n throw error;\n } finally {\n // Clean up worker pools\n const workerFarm = WorkerFarm.getWorkerFarm({});\n workerFarm.destroy();\n }\n }\n\n /**\n * Convert and save the layer and embedded tiles\n * @param outputPath - path to save output data\n * @param tilesetName - new tileset path\n */\n private async _createAndSaveTileset(\n outputPath: string,\n tilesetName: string,\n boundingVolumeRegion?: number[]\n ): Promise<void> {\n const tilesetPath = join(`${outputPath}`, `${tilesetName}`);\n // Removing the tilesetPath needed to exclude erroneous files after conversion\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n\n this.layers0Path = join(tilesetPath, 'SceneServer', 'layers', '0');\n\n this._formLayers0(tilesetName, boundingVolumeRegion);\n\n this.materialDefinitions = [];\n this.materialMap = new Map();\n\n const sourceRootTile: Tile3D = this.sourceTileset!.root!;\n const boundingVolumes = createBoundingVolumes(sourceRootTile, this.geoidHeightModel!);\n await this.nodePages.push({\n index: 0,\n lodThreshold: 0,\n obb: boundingVolumes.obb,\n children: []\n });\n\n const rootNode = await NodeIndexDocument.createRootNode(boundingVolumes, this);\n await this._convertNodesTree(rootNode, sourceRootTile);\n\n this.layers0!.materialDefinitions = this.materialDefinitions;\n // @ts-ignore\n this.layers0.geometryDefinitions = transform(\n this.geometryConfigs.map((config) => ({\n geometryConfig: {...config, draco: this.options.draco}\n })),\n geometryDefinitionTemlate()\n );\n\n if (this.layersHasTexture === false) {\n this.layers0!.store.defaultGeometrySchema.ordering =\n this.layers0!.store.defaultGeometrySchema.ordering.filter(\n (attribute) => attribute !== 'uv0'\n );\n }\n\n await this._writeLayers0();\n createSceneServerPath(tilesetName, this.layers0!, tilesetPath);\n for (const filePath of this.compressList || []) {\n await compressFileWithGzip(filePath);\n await removeFile(filePath);\n }\n await this.nodePages.save();\n await this.writeQueue.finalize();\n await this._createSlpk(tilesetPath);\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param tilesetName - Name of layer\n */\n private _formLayers0(tilesetName: string, boundingVolumeRegion?: number[]): void {\n const fullExtent = convertBoundingVolumeToI3SFullExtent(\n this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume\n );\n if (boundingVolumeRegion) {\n fullExtent.zmin = boundingVolumeRegion[4];\n fullExtent.zmax = boundingVolumeRegion[5];\n }\n const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];\n const layers0data = {\n version: `{${uuidv4().toUpperCase()}}`,\n id: 0,\n name: tilesetName,\n href: './layers/0',\n store: {\n id: `{${uuidv4().toUpperCase()}}`,\n extent\n },\n nodePages: {\n nodesPerPage: HARDCODED_NODES_PER_PAGE\n },\n compressGeometry: this.options.draco,\n fullExtent\n };\n this.layers0 = transform(layers0data, layersTemplate());\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param rootNode - 3DNodeIndexDocument of root node https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md\n * @param sourceRootTile - Source (3DTile) tile data\n */\n private async _convertNodesTree(\n rootNode: NodeIndexDocument,\n sourceRootTile: Tile3D\n ): Promise<void> {\n await this.sourceTileset!._loadTile(sourceRootTile);\n if (this.isContentSupported(sourceRootTile)) {\n const childNodes = await this._createNode(rootNode, sourceRootTile, 0);\n for (const childNode of childNodes) {\n await childNode.save();\n }\n await rootNode.addChildren(childNodes);\n } else {\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: rootNode,\n sourceTiles: sourceRootTile.children,\n level: 1\n });\n }\n await sourceRootTile.unloadContent();\n await rootNode.save();\n }\n\n /**\n * Write 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md in file\n */\n private async _writeLayers0(): Promise<void> {\n if (this.options.slpk) {\n await this.writeQueue.enqueue({\n archiveKey: '3dSceneLayer.json.gz',\n writePromise: () =>\n writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')\n });\n } else {\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(this.layers0Path, JSON.stringify(this.layers0))\n });\n }\n }\n\n /**\n * Pack files into *.slpk archive\n * @param tilesetPath - Path to save file\n */\n private async _createSlpk(tilesetPath: string): Promise<void> {\n if (this.options.slpk) {\n const slpkTilesetPath = join(tilesetPath, 'SceneServer', 'layers', '0');\n const slpkFileName = `${tilesetPath}.slpk`;\n await compressWithChildProcess(\n slpkTilesetPath,\n slpkFileName,\n 0,\n '.',\n this.options.sevenZipExe\n );\n\n // TODO: `addFileToZip` corrupts archive so it can't be validated with windows i3s_converter.exe\n // const fileHash128Path = `${tilesetPath}/@specialIndexFileHASH128@`;\n // try {\n // await generateHash128FromZip(slpkFileName, fileHash128Path);\n // await addFileToZip(\n // tilesetPath,\n // '@specialIndexFileHASH128@',\n // slpkFileName,\n // this.options.sevenZipExe\n // );\n // } catch (error) {\n // if (error.code === FS_FILE_TOO_LARGE) {\n // console.warn(`${slpkFileName} file is too big to generate a hash`); // eslint-disable-line\n // } else {\n // console.error(error); // eslint-disable-line\n // }\n // }\n // All converted files are contained in slpk now they can be deleted\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n }\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param data - arguments\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param data.sourceTiles - array of source child nodes\n * @param data.level - level of node (distanse to root node in the tree)\n */\n private async _addChildrenWithNeighborsAndWriteFile(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n await this._addChildren(data);\n await data.parentNode.addNeighbors();\n }\n\n /**\n * Convert nested subtree of 3DTiles dataset\n * @param param0\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNestedTileset({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n await this.sourceTileset!._loadTile(sourceTile);\n await this._addChildren({\n parentNode,\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n await sourceTile.unloadContent();\n }\n\n /**\n * Convert 3DTiles tile to I3S node\n * @param param0\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNode({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n const childNodes = await this._createNode(parentNode, sourceTile, level);\n await parentNode.addChildren(childNodes);\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param param0 - arguments\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async _addChildren(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n const {sourceTiles, parentNode, level} = data;\n if (this.options.maxDepth && level > this.options.maxDepth) {\n return;\n }\n for (const sourceTile of sourceTiles) {\n if (sourceTile.type === 'json') {\n await this.convertNestedTileset({parentNode, sourceTile, level});\n } else {\n await this.convertNode({parentNode, sourceTile, level});\n }\n if (sourceTile.id) {\n console.log(sourceTile.id); // eslint-disable-line\n }\n }\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param parentNode - 3DNodeIndexDocument of parent node\n * @param sourceTile - source 3DTile data\n * @param level - tree level\n */\n private async _createNode(\n parentNode: NodeIndexDocument,\n sourceTile: Tile3D,\n level: number\n ): Promise<NodeIndexDocument[]> {\n this._checkAddRefinementTypeForTile(sourceTile);\n\n await this._updateTilesetOptions();\n await this.sourceTileset!._loadTile(sourceTile);\n\n let boundingVolumes = createBoundingVolumes(sourceTile, this.geoidHeightModel!);\n\n const propertyTable = getPropertyTable(sourceTile.content);\n\n if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {\n this._convertPropertyTableToNodeAttributes(propertyTable);\n }\n\n const resourcesData = await this._convertResources(\n sourceTile,\n parentNode.inPageId,\n propertyTable\n );\n\n const nodes: NodeIndexDocument[] = [];\n const nodeIds: number[] = [];\n const nodesInPage: NodeInPage[] = [];\n const emptyResources = {\n geometry: null,\n compressedGeometry: null,\n texture: null,\n hasUvRegions: false,\n sharedResources: null,\n meshMaterial: null,\n vertexCount: null,\n attributes: null,\n featureCount: null,\n boundingVolumes: null\n };\n\n for (const resources of resourcesData || [emptyResources]) {\n this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);\n\n if (this.generateBoundingVolumes && resources.boundingVolumes) {\n boundingVolumes = resources.boundingVolumes;\n }\n\n const lodSelection = convertGeometricErrorToScreenThreshold(sourceTile, boundingVolumes);\n const maxScreenThresholdSQ = lodSelection.find(\n (val) => val.metricType === 'maxScreenThresholdSQ'\n ) || {maxError: 0};\n\n const nodeInPage = await this._updateNodeInNodePages(\n maxScreenThresholdSQ,\n boundingVolumes,\n sourceTile,\n parentNode.inPageId,\n resources\n );\n\n const nodeData = await NodeIndexDocument.createNodeIndexDocument(\n parentNode,\n boundingVolumes,\n lodSelection,\n nodeInPage,\n resources\n );\n const node = await new NodeIndexDocument(nodeInPage.index, this).addData(nodeData);\n nodes.push(node);\n\n if (nodeInPage.mesh) {\n await this._writeResources(resources, node.id);\n }\n\n if (this.validate) {\n this.boundingVolumeWarnings = validateNodeBoundingVolumes(nodeData);\n\n if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {\n console.warn('Bounding Volume Warnings: ', ...this.boundingVolumeWarnings); //eslint-disable-line\n }\n }\n\n nodeIds.push(nodeInPage.index);\n nodesInPage.push(nodeInPage);\n }\n\n sourceTile.unloadContent();\n\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: nodes[0],\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n return nodes;\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA\n * @returns - converted node resources\n */\n private async _convertResources(\n sourceTile: Tile3D,\n parentId: number,\n propertyTable: FeatureTableJson | null\n ): Promise<I3SConvertedResources[] | null> {\n if (!this.isContentSupported(sourceTile)) {\n return null;\n }\n const draftObb = {\n center: [],\n halfSize: [],\n quaternion: []\n };\n const resourcesData = await convertB3dmToI3sGeometry(\n sourceTile.content,\n async () => (await this.nodePages.push({index: 0, obb: draftObb}, parentId)).index,\n propertyTable,\n this.featuresHashArray,\n this.layers0?.attributeStorageInfo,\n this.options.draco,\n this.generateBoundingVolumes,\n this.options.mergeMaterials,\n this.geoidHeightModel!,\n this.workerSource\n );\n return resourcesData;\n }\n\n /**\n * Update node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)\n * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)\n * @param maxScreenThresholdSQ - Level of Details (LOD) metric\n * @param boundingVolumes - Bounding volumes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param resources - the node resources data\n * @param resources.meshMaterial - PBR-like material object\n * @param resources.texture - texture image\n * @param resources.vertexCount - number of vertices in geometry\n * @param resources.featureCount - number of features\n * @param resources.geometry - Uint8Array with geometry attributes\n * @return the node object in node pages\n */\n private async _updateNodeInNodePages(\n maxScreenThresholdSQ: MaxScreenThresholdSQ,\n boundingVolumes: BoundingVolumes,\n sourceTile: Tile3D,\n parentId: number,\n resources: I3SConvertedResources\n ): Promise<NodeInPage> {\n const {meshMaterial, texture, vertexCount, featureCount, geometry, hasUvRegions} = resources;\n const nodeInPage: NodeInPage = {\n index: 0,\n lodThreshold: maxScreenThresholdSQ.maxError,\n obb: boundingVolumes.obb,\n children: []\n };\n if (geometry && this.isContentSupported(sourceTile)) {\n nodeInPage.mesh = {\n geometry: {\n definition: this.findOrCreateGeometryDefinition(Boolean(texture), hasUvRegions),\n resource: 0\n },\n attribute: {\n resource: 0\n },\n material: {\n definition: 0\n }\n };\n }\n\n let nodeId = resources.nodeId;\n let node;\n if (!nodeId) {\n node = await this.nodePages.push(nodeInPage, parentId);\n } else {\n node = await this.nodePages.getNodeById(nodeId);\n }\n\n NodePages.updateAll(node, nodeInPage);\n if (meshMaterial) {\n NodePages.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));\n }\n if (texture) {\n const texelCountHint = texture.image.height * texture.image.width;\n NodePages.updateTexelCountHintByNodeId(node, texelCountHint);\n }\n if (vertexCount) {\n this.vertexCounter += vertexCount;\n NodePages.updateVertexCountByNodeId(node, vertexCount);\n }\n NodePages.updateNodeAttributeByNodeId(node);\n if (featureCount) {\n NodePages.updateFeatureCountByNodeId(node, featureCount);\n }\n\n this.nodePages.saveNode(node);\n\n return node;\n }\n\n /**\n * Write node resources in files\n * @param resources - source tile (3DTile)\n * @param resources.geometry - Uint8Array with geometry attributes\n * @param resources.compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param resources.texture - texture image\n * @param resources.sharedResources - shared resource data object\n * @param resources.attributes - feature attributes\n * @return {Promise<void>}\n */\n private async _writeResources(resources: I3SConvertedResources, nodePath: string): Promise<void> {\n const {\n geometry: geometryBuffer,\n compressedGeometry,\n texture,\n sharedResources,\n attributes\n } = resources;\n const childPath = join(this.layers0Path, 'nodes', nodePath);\n const slpkChildPath = join('nodes', nodePath);\n\n await this._writeGeometries(geometryBuffer!, compressedGeometry!, childPath, slpkChildPath);\n await this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);\n await this._writeTexture(texture, childPath, slpkChildPath);\n await this._writeAttributes(attributes, childPath, slpkChildPath);\n }\n\n /**\n * Write non-compressed and compressed geometries in files\n * @param geometryBuffer - Uint8Array with geometry attributes\n * @param compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n */\n private async _writeGeometries(\n geometryBuffer: ArrayBuffer,\n compressedGeometry: Promise<ArrayBuffer>,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkGeometryPath, geometryBuffer, '0.bin')\n });\n } else {\n const geometryPath = join(childPath, 'geometries/0/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(geometryPath, geometryBuffer, 'index.bin')\n });\n }\n\n if (this.options.draco) {\n if (this.options.slpk) {\n const slpkCompressedGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,\n writePromise: () =>\n writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, '1.bin')\n });\n } else {\n const compressedGeometryPath = join(childPath, 'geometries/1/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(compressedGeometryPath, compressedGeometry, 'index.bin')\n });\n }\n }\n }\n\n /**\n * Write shared resources in a file\n * @param sharedResources - shared resource data object\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n * @param nodePath - a node path\n */\n private async _writeShared(\n sharedResources: SharedResourcesArrays | null,\n childPath: string,\n slpkChildPath: string,\n nodePath: string\n ): Promise<void> {\n if (!sharedResources) {\n return;\n }\n sharedResources.nodePath = nodePath;\n const sharedData = transform(sharedResources, sharedResourcesTemplate());\n const sharedDataStr = JSON.stringify(sharedData);\n if (this.options.slpk) {\n const slpkSharedPath = join(childPath, 'shared');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,\n writePromise: () => writeFileForSlpk(slpkSharedPath, sharedDataStr, 'sharedResource.json')\n });\n } else {\n const sharedPath = join(childPath, 'shared/');\n await this.writeQueue.enqueue({writePromise: () => writeFile(sharedPath, sharedDataStr)});\n }\n }\n\n /**\n * Generates textures based on texture mime type and fill in textureSetDefinitions data.\n * @param texture - the texture image\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeTexture(\n texture: GLTFImagePostprocessed,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (texture) {\n const format = this._getFormatByMimeType(texture?.mimeType);\n const formats: TextureSetDefinitionFormats = [];\n const textureData = texture.bufferView!.data;\n\n switch (format) {\n case 'jpg':\n case 'png': {\n formats.push({name: '0', format});\n await this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '1', format: 'ktx2'});\n // For Node.js texture.image.data is type of Buffer\n const copyArrayBuffer = texture.image.data.subarray();\n const arrayToEncode = new Uint8Array(copyArrayBuffer);\n const ktx2TextureData = encode(\n {...texture.image, data: arrayToEncode},\n KTX2BasisWriterWorker,\n {\n ...KTX2BasisWriterWorker.options,\n source: this.workerSource.ktx2,\n reuseWorkers: true,\n _nodeWorkers: true\n }\n );\n\n await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);\n }\n\n break;\n }\n\n case 'ktx2': {\n formats.push({name: '1', format});\n await this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '0', format: 'jpg'});\n const decodedFromKTX2TextureData = encode(texture.image!.data[0], ImageWriter);\n await this.writeTextureFile(\n decodedFromKTX2TextureData,\n '0',\n 'jpg',\n childPath,\n slpkChildPath\n );\n }\n }\n }\n\n if (!this.layers0!.textureSetDefinitions!.length) {\n this.layers0!.textureSetDefinitions!.push({formats});\n this.layers0!.textureSetDefinitions!.push({formats, atlas: true});\n }\n }\n }\n\n /**\n * Write the texture image in a file\n * @param textureData\n * @param name\n * @param format\n * @param childPath\n * @param slpkChildPath\n */\n private async writeTextureFile(\n textureData: Uint8Array | Promise<ArrayBuffer>,\n name: string,\n format: 'jpg' | 'png' | 'ktx2',\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkTexturePath = join(childPath, 'textures');\n const compress = false;\n\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/textures/${name}.${format}`,\n writePromise: () =>\n writeFileForSlpk(slpkTexturePath, textureData, `${name}.${format}`, compress)\n });\n } else {\n const texturePath = join(childPath, `textures/${name}/`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(texturePath, textureData, `index.${format}`)\n });\n }\n }\n\n /**\n * Write feature attributes in files\n * @param attributes - feature attributes\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeAttributes(\n attributes: ArrayBuffer[] | null = [],\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (attributes?.length && this.layers0?.attributeStorageInfo?.length) {\n for (let index = 0; index < attributes.length; index++) {\n const folderName = this.layers0.attributeStorageInfo[index].key;\n const fileBuffer = new Uint8Array(attributes[index]);\n\n if (this.options.slpk) {\n const slpkAttributesPath = join(childPath, 'attributes', folderName);\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkAttributesPath, fileBuffer, '0.bin')\n });\n } else {\n const attributesPath = join(childPath, `attributes/${folderName}/0`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(attributesPath, fileBuffer, 'index.bin')\n });\n }\n }\n }\n }\n\n /**\n * Return file format by its MIME type\n * @param mimeType - feature attributes\n */\n private _getFormatByMimeType(mimeType: string | undefined): 'jpg' | 'png' | 'ktx2' {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg';\n case 'image/png':\n return 'png';\n case 'image/ktx2':\n return 'ktx2';\n default:\n return 'jpg';\n }\n }\n\n /**\n * Find or create material in materialDefinitions array\n * @param material - end-to-end index of the node\n * @return material id\n */\n private _findOrCreateMaterial(material: I3SMaterialDefinition): number {\n const hash = md5(JSON.stringify(material));\n if (this.materialMap.has(hash)) {\n return this.materialMap.get(hash) || 0;\n }\n const newMaterialId = this.materialDefinitions.push(material) - 1;\n this.materialMap.set(hash, newMaterialId);\n return newMaterialId;\n }\n\n /**\n * Get unique geometry configuration index\n * In the end of conversion configurations will be transformed to geometryDefinitions array\n * @param hasTexture\n * @param hasUvRegions\n * @returns\n */\n private findOrCreateGeometryDefinition(hasTexture: boolean, hasUvRegions: boolean): number {\n const geometryConfig = {hasTexture, hasUvRegions};\n const hash = md5(JSON.stringify(geometryConfig));\n if (this.geometryMap.has(hash)) {\n return this.geometryMap.get(hash) || 0;\n }\n const newGeometryId = this.geometryConfigs.push(geometryConfig) - 1;\n this.geometryMap.set(hash, newGeometryId);\n return newGeometryId;\n }\n\n /**\n * Do conversion of 3DTiles property table to I3s node attributes.\n * @param propertyTable - Table with layer meta data.\n */\n private _convertPropertyTableToNodeAttributes(propertyTable: FeatureTableJson): void {\n let attributeIndex = 0;\n const propertyTableWithObjectId = {\n OBJECTID: [0],\n ...propertyTable\n };\n\n for (const key in propertyTableWithObjectId) {\n const firstAttribute = propertyTableWithObjectId[key][0];\n const attributeType = getAttributeType(key, firstAttribute);\n\n const storageAttribute = createdStorageAttribute(attributeIndex, key, attributeType);\n const fieldAttributeType = getFieldAttributeType(attributeType);\n const fieldAttribute = createFieldAttribute(key, fieldAttributeType);\n const popupInfo = createPopupInfo(propertyTableWithObjectId);\n\n this.layers0!.attributeStorageInfo!.push(storageAttribute);\n this.layers0!.fields!.push(fieldAttribute);\n this.layers0!.popupInfo = popupInfo;\n this.layers0!.layerType = _3D_OBJECT_LAYER_TYPE;\n\n attributeIndex += 1;\n }\n }\n\n /**\n * Print statistics in the end of conversion\n * @param params - output files data\n */\n private async _finishConversion(params: {\n slpk: boolean;\n outputPath: string;\n tilesetName: string;\n }): Promise<void> {\n const {tilesCount, tilesWithAddRefineCount} = this.refinementCounter;\n const addRefinementPercentage = tilesWithAddRefineCount\n ? (tilesWithAddRefineCount / tilesCount) * 100\n : 0;\n const filesSize = await calculateFilesSize(params);\n const diff = process.hrtime(this.conversionStartTime);\n const conversionTime = timeConverter(diff);\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n console.log(`Finishing conversion of ${_3D_TILES}`); // eslint-disable-line no-undef, no-console\n console.log(`Total conversion time: ${conversionTime}`); // eslint-disable-line no-undef, no-console\n console.log(`Vertex count: `, this.vertexCounter); // eslint-disable-line no-undef, no-console\n console.log(`File(s) size: `, filesSize, ' bytes'); // eslint-disable-line no-undef, no-console\n console.log(`Percentage of tiles with \"ADD\" refinement type:`, addRefinementPercentage, '%'); // eslint-disable-line no-undef, no-console\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n }\n\n /**\n * Fetch preload options for ION tileset\n */\n private async _fetchPreloadOptions(): Promise<any> {\n if (!this.Loader.preload) {\n return {};\n }\n const options = {\n 'cesium-ion': {accessToken: this.options.token || ION_DEFAULT_TOKEN}\n };\n const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);\n this.refreshTokenTime = process.hrtime();\n return {...options, ...preloadOptions};\n }\n\n /**\n * Update options of source tileset\n */\n private async _updateTilesetOptions(): Promise<void> {\n const diff = process.hrtime(this.refreshTokenTime);\n if (diff[0] < REFRESH_TOKEN_TIMEOUT) {\n return;\n }\n this.refreshTokenTime = process.hrtime();\n\n const preloadOptions = await this._fetchPreloadOptions();\n this.sourceTileset!.options = {...this.sourceTileset!.options, ...preloadOptions};\n if (preloadOptions.headers) {\n this.sourceTileset!.loadOptions.fetch = {\n ...this.sourceTileset!.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n console.log('Authorization Bearer token has been updated'); // eslint-disable-line no-undef, no-console\n }\n }\n\n /** Do calculations of all tiles and tiles with \"ADD\" type of refinement.\n * @param tile\n */\n private _checkAddRefinementTypeForTile(tile: Tile3D): void {\n const ADD_TILE_REFINEMENT = 1;\n\n if (tile.refine === ADD_TILE_REFINEMENT) {\n this.refinementCounter.tilesWithAddRefineCount += 1;\n console.warn('This tile uses \"ADD\" type of refinement'); // eslint-disable-line\n }\n\n this.refinementCounter.tilesCount += 1;\n }\n /**\n * Check if the tile's content format is supported by the converter\n * @param sourceRootTile\n * @returns\n */\n private isContentSupported(sourceRootTile: Tile3D): boolean {\n return ['b3dm', 'glTF'].includes(sourceRootTile?.content?.type);\n }\n\n private async loadWorkers(): Promise<void> {\n console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console\n if (this.options.draco) {\n const url = getWorkerURL(DracoWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.draco = source;\n }\n\n if (this.generateTextures) {\n const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.ktx2 = source;\n }\n\n const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);\n const source = await sourceResponse.text();\n this.workerSource.I3SAttributes = source;\n console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GEOMETRY_DEFINITION = void 0;
8
+ var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
9
+ var PLAIN_GEOMETRY_DEFINITION = function PLAIN_GEOMETRY_DEFINITION() {
10
+ return {
11
+ offset: {
12
+ default: 8
13
+ },
14
+ position: {
15
+ default: {
16
+ type: 'Float32',
17
+ component: 3
18
+ }
19
+ },
20
+ normal: {
21
+ default: {
22
+ type: 'Float32',
23
+ component: 3
24
+ }
25
+ },
26
+ uv0: {
27
+ path: 'hasTexture',
28
+ transform: function transform(val) {
29
+ return val && {
30
+ type: 'Float32',
31
+ component: 2
32
+ } || false;
33
+ },
34
+ omitValues: [false]
35
+ },
36
+ color: {
37
+ default: {
38
+ type: 'UInt8',
39
+ component: 4
40
+ }
41
+ },
42
+ uvRegion: {
43
+ path: 'hasUvRegions',
44
+ transform: function transform(val) {
45
+ return val && {
46
+ type: 'UInt16',
47
+ component: 4
48
+ } || false;
49
+ },
50
+ omitValues: [false]
51
+ },
52
+ featureId: {
53
+ default: {
54
+ binding: 'per-feature',
55
+ type: 'UInt64',
56
+ component: 1
57
+ }
58
+ },
59
+ faceRange: {
60
+ default: {
61
+ binding: 'per-feature',
62
+ type: 'UInt32',
63
+ component: 2
64
+ }
65
+ }
66
+ };
67
+ };
68
+ var COMPRESSED_GEOMETRY_DEFINITION = function COMPRESSED_GEOMETRY_DEFINITION() {
69
+ return {
70
+ 'compressedAttributes.encoding': {
71
+ default: 'draco'
72
+ },
73
+ 'compressedAttributes.attributes': {
74
+ path: 'geometryConfig',
75
+ transform: function transform(val) {
76
+ var result = ['position', 'normal'];
77
+ if (val.hasTexture) {
78
+ result.push('uv0');
79
+ }
80
+ result.push('color');
81
+ if (val.hasUvRegions) {
82
+ result.push('uv-region');
83
+ }
84
+ result.push('feature-index');
85
+ return result;
86
+ }
87
+ }
88
+ };
89
+ };
90
+ var GEOMETRY_DEFINITION = function GEOMETRY_DEFINITION() {
91
+ return {
92
+ geometryBuffers: {
93
+ path: 'geometryConfig',
94
+ transform: function transform(val) {
95
+ var result = [(0, _jsonMapTransform.default)(val, PLAIN_GEOMETRY_DEFINITION())];
96
+ if (val.draco) {
97
+ result.push((0, _jsonMapTransform.default)({
98
+ geometryConfig: val
99
+ }, COMPRESSED_GEOMETRY_DEFINITION()));
100
+ }
101
+ return result;
102
+ }
103
+ }
104
+ };
105
+ };
106
+ exports.GEOMETRY_DEFINITION = GEOMETRY_DEFINITION;
107
+ //# sourceMappingURL=geometry-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-definitions.js","names":["_jsonMapTransform","_interopRequireDefault","require","PLAIN_GEOMETRY_DEFINITION","offset","default","position","type","component","normal","uv0","path","transform","val","omitValues","color","uvRegion","featureId","binding","faceRange","COMPRESSED_GEOMETRY_DEFINITION","result","hasTexture","push","hasUvRegions","GEOMETRY_DEFINITION","geometryBuffers","draco","geometryConfig","exports"],"sources":["../../../../src/i3s-converter/json-templates/geometry-definitions.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst PLAIN_GEOMETRY_DEFINITION = () => ({\n offset: {\n default: 8\n },\n position: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n normal: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n uv0: {\n path: 'hasTexture',\n transform: (val) => (val && {type: 'Float32', component: 2}) || false,\n omitValues: [false]\n },\n color: {\n default: {\n type: 'UInt8',\n component: 4\n }\n },\n uvRegion: {\n path: 'hasUvRegions',\n transform: (val) => (val && {type: 'UInt16', component: 4}) || false,\n omitValues: [false]\n },\n featureId: {\n default: {\n binding: 'per-feature',\n type: 'UInt64',\n component: 1\n }\n },\n faceRange: {\n default: {\n binding: 'per-feature',\n type: 'UInt32',\n component: 2\n }\n }\n});\n\nconst COMPRESSED_GEOMETRY_DEFINITION = () => ({\n 'compressedAttributes.encoding': {\n default: 'draco'\n },\n 'compressedAttributes.attributes': {\n path: 'geometryConfig',\n transform: (val) => {\n const result = ['position', 'normal'];\n if (val.hasTexture) {\n result.push('uv0');\n }\n result.push('color');\n if (val.hasUvRegions) {\n result.push('uv-region');\n }\n result.push('feature-index');\n return result;\n }\n }\n});\n\nexport const GEOMETRY_DEFINITION = () => ({\n geometryBuffers: {\n path: 'geometryConfig',\n transform: (val) => {\n const result = [transform(val, PLAIN_GEOMETRY_DEFINITION())];\n if (val.draco) {\n result.push(transform({geometryConfig: val}, COMPRESSED_GEOMETRY_DEFINITION()));\n }\n return result;\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA;EAAA,OAAU;IACvCC,MAAM,EAAE;MACNC,OAAO,EAAE;IACX,CAAC;IACDC,QAAQ,EAAE;MACRD,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDC,MAAM,EAAE;MACNJ,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDE,GAAG,EAAE;MACHC,IAAI,EAAE,YAAY;MAClBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,SAAS;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACrEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDC,KAAK,EAAE;MACLV,OAAO,EAAE;QACPE,IAAI,EAAE,OAAO;QACbC,SAAS,EAAE;MACb;IACF,CAAC;IACDQ,QAAQ,EAAE;MACRL,IAAI,EAAE,cAAc;MACpBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,QAAQ;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACpEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDG,SAAS,EAAE;MACTZ,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF,CAAC;IACDW,SAAS,EAAE;MACTd,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF;EACF,CAAC;AAAA,CAAC;AAEF,IAAMY,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAA;EAAA,OAAU;IAC5C,+BAA+B,EAAE;MAC/Bf,OAAO,EAAE;IACX,CAAC;IACD,iCAAiC,EAAE;MACjCM,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QACrC,IAAIR,GAAG,CAACS,UAAU,EAAE;UAClBD,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC;QACpB;QACAF,MAAM,CAACE,IAAI,CAAC,OAAO,CAAC;QACpB,IAAIV,GAAG,CAACW,YAAY,EAAE;UACpBH,MAAM,CAACE,IAAI,CAAC,WAAW,CAAC;QAC1B;QACAF,MAAM,CAACE,IAAI,CAAC,eAAe,CAAC;QAC5B,OAAOF,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAEK,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA;EAAA,OAAU;IACxCC,eAAe,EAAE;MACff,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,IAAAT,yBAAS,EAACC,GAAG,EAAEV,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAIU,GAAG,CAACc,KAAK,EAAE;UACbN,MAAM,CAACE,IAAI,CAAC,IAAAX,yBAAS,EAAC;YAACgB,cAAc,EAAEf;UAAG,CAAC,EAAEO,8BAA8B,CAAC,CAAC,CAAC,CAAC;QACjF;QACA,OAAOC,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAACQ,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LAYERS = void 0;
8
+ var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
9
+ var _store = require("./store");
10
+ var SPATIAL_REFERENCE = function SPATIAL_REFERENCE() {
11
+ return {
12
+ wkid: {
13
+ path: 'wkid',
14
+ default: 4326
15
+ },
16
+ latestWkid: {
17
+ path: 'latestWkid',
18
+ default: 4326
19
+ },
20
+ vcsWkid: {
21
+ path: 'vcsWkid',
22
+ default: 5773
23
+ },
24
+ latestVcsWkid: {
25
+ path: 'latestVcsWkid',
26
+ default: 5773
27
+ }
28
+ };
29
+ };
30
+ var HEIGHT_MODEL_INFO = function HEIGHT_MODEL_INFO() {
31
+ return {
32
+ heightModel: {
33
+ path: 'heightModel',
34
+ default: 'gravity_related_height'
35
+ },
36
+ vertCRS: {
37
+ path: 'vertCRS',
38
+ default: 'EGM96_Geoid'
39
+ },
40
+ heightUnit: {
41
+ path: 'heightUnit',
42
+ default: 'meter'
43
+ }
44
+ };
45
+ };
46
+ var NODE_PAGES = function NODE_PAGES() {
47
+ return {
48
+ nodesPerPage: {
49
+ path: 'nodesPerPage'
50
+ },
51
+ lodSelectionMetricType: {
52
+ path: 'lodSelectionMetricType',
53
+ default: 'maxScreenThresholdSQ'
54
+ }
55
+ };
56
+ };
57
+ var FULL_EXTENT = function FULL_EXTENT() {
58
+ return {
59
+ xmin: {
60
+ path: 'xmin'
61
+ },
62
+ ymin: {
63
+ path: 'ymin'
64
+ },
65
+ xmax: {
66
+ path: 'xmax'
67
+ },
68
+ ymax: {
69
+ path: 'ymax'
70
+ },
71
+ zmin: {
72
+ path: 'zmin'
73
+ },
74
+ zmax: {
75
+ path: 'zmax'
76
+ }
77
+ };
78
+ };
79
+ var LAYERS = function LAYERS() {
80
+ return {
81
+ version: {
82
+ path: 'version',
83
+ transform: function transform(val) {
84
+ return val.toUpperCase();
85
+ }
86
+ },
87
+ id: {
88
+ path: 'id',
89
+ default: 0
90
+ },
91
+ name: {
92
+ path: 'name'
93
+ },
94
+ href: {
95
+ path: 'href',
96
+ default: './layers/0'
97
+ },
98
+ layerType: {
99
+ path: 'layerType',
100
+ default: 'IntegratedMesh'
101
+ },
102
+ spatialReference: {
103
+ path: 'spatialReference',
104
+ transform: function transform(val) {
105
+ return (0, _jsonMapTransform.default)(val, SPATIAL_REFERENCE());
106
+ }
107
+ },
108
+ capabilities: {
109
+ path: 'capabilities',
110
+ default: ['View', 'Query']
111
+ },
112
+ store: {
113
+ path: 'store',
114
+ transform: function transform(val) {
115
+ return (0, _jsonMapTransform.default)(val, _store.STORE);
116
+ }
117
+ },
118
+ fullExtent: {
119
+ path: 'fullExtent',
120
+ transform: function transform(val) {
121
+ return (0, _jsonMapTransform.default)(val, FULL_EXTENT());
122
+ }
123
+ },
124
+ heightModelInfo: {
125
+ path: 'heightModelInfo',
126
+ transform: function transform(val) {
127
+ return (0, _jsonMapTransform.default)(val, HEIGHT_MODEL_INFO());
128
+ }
129
+ },
130
+ nodePages: {
131
+ path: 'nodePages',
132
+ transform: function transform(val) {
133
+ return (0, _jsonMapTransform.default)(val, NODE_PAGES());
134
+ }
135
+ },
136
+ materialDefinitions: {
137
+ path: 'materialDefinitions',
138
+ default: []
139
+ },
140
+ textureSetDefinitions: {
141
+ path: 'textureSetDefinitions',
142
+ default: []
143
+ },
144
+ geometryDefinitions: {
145
+ path: 'geometryDefinitions',
146
+ default: []
147
+ },
148
+ attributeStorageInfo: {
149
+ path: 'attributeStorageInfo',
150
+ default: []
151
+ },
152
+ fields: {
153
+ path: 'fields',
154
+ default: []
155
+ },
156
+ popupInfo: {
157
+ path: 'popupInfo',
158
+ default: null
159
+ }
160
+ };
161
+ };
162
+ exports.LAYERS = LAYERS;
163
+ //# sourceMappingURL=layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","names":["_jsonMapTransform","_interopRequireDefault","require","_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","transform","val","toUpperCase","id","name","href","layerType","spatialReference","capabilities","store","STORE","fullExtent","heightModelInfo","nodePages","materialDefinitions","textureSetDefinitions","geometryDefinitions","attributeStorageInfo","fields","popupInfo","exports"],"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,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.METADATA = void 0;
7
+ var METADATA = function METADATA() {
8
+ return {
9
+ folderPattern: {
10
+ path: 'folderPattern',
11
+ default: 'BASIC'
12
+ },
13
+ archiveCompressionType: {
14
+ path: 'archiveCompressionType',
15
+ default: 'STORE'
16
+ },
17
+ resourceCompressionType: {
18
+ path: 'resourceCompressionType',
19
+ default: 'GZIP'
20
+ },
21
+ I3SVersion: {
22
+ path: 'I3SVersion',
23
+ default: '1.8'
24
+ },
25
+ nodeCount: {
26
+ path: 'nodeCount'
27
+ }
28
+ };
29
+ };
30
+ exports.METADATA = METADATA;
31
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":["METADATA","folderPattern","path","default","archiveCompressionType","resourceCompressionType","I3SVersion","nodeCount","exports"],"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":";;;;;;AAAO,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,OAAU;IAC7BC,aAAa,EAAE;MACbC,IAAI,EAAE,eAAe;MACrBC,OAAO,EAAE;IACX,CAAC;IACDC,sBAAsB,EAAE;MACtBF,IAAI,EAAE,wBAAwB;MAC9BC,OAAO,EAAE;IACX,CAAC;IACDE,uBAAuB,EAAE;MACvBH,IAAI,EAAE,yBAAyB;MAC/BC,OAAO,EAAE;IACX,CAAC;IACDG,UAAU,EAAE;MACVJ,IAAI,EAAE,YAAY;MAClBC,OAAO,EAAE;IACX,CAAC;IACDI,SAAS,EAAE;MACTL,IAAI,EAAE;IACR;EACF,CAAC;AAAA,CAAC;AAACM,OAAA,CAAAR,QAAA,GAAAA,QAAA"}