@itwin/core-common 4.0.0-dev.24 → 4.0.0-dev.28

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 (946) hide show
  1. package/CHANGELOG.md +21 -16
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +17 -17
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackendTypes.d.ts +12 -12
  12. package/lib/cjs/BackendTypes.js +9 -9
  13. package/lib/cjs/BackendTypes.js.map +1 -1
  14. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  15. package/lib/cjs/BackgroundMapProvider.js +67 -68
  16. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  17. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  18. package/lib/cjs/BackgroundMapSettings.js +154 -156
  19. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  20. package/lib/cjs/Base64EncodedString.d.ts +32 -32
  21. package/lib/cjs/Base64EncodedString.js +66 -66
  22. package/lib/cjs/Base64EncodedString.js.map +1 -1
  23. package/lib/cjs/BlobReader.d.ts +31 -31
  24. package/lib/cjs/BlobReader.js +84 -84
  25. package/lib/cjs/BlobReader.js.map +1 -1
  26. package/lib/cjs/BriefcaseTypes.d.ts +191 -189
  27. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  28. package/lib/cjs/BriefcaseTypes.js +95 -95
  29. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  30. package/lib/cjs/Camera.d.ts +42 -42
  31. package/lib/cjs/Camera.js +62 -62
  32. package/lib/cjs/Camera.js.map +1 -1
  33. package/lib/cjs/ChangedElements.d.ts +85 -85
  34. package/lib/cjs/ChangedElements.js +23 -23
  35. package/lib/cjs/ChangedElements.js.map +1 -1
  36. package/lib/cjs/ChangedEntities.d.ts +45 -45
  37. package/lib/cjs/ChangedEntities.js +9 -9
  38. package/lib/cjs/ChangedEntities.js.map +1 -1
  39. package/lib/cjs/ChangesetProps.d.ts +98 -98
  40. package/lib/cjs/ChangesetProps.js +22 -22
  41. package/lib/cjs/ChangesetProps.js.map +1 -1
  42. package/lib/cjs/ClipStyle.d.ts +89 -89
  43. package/lib/cjs/ClipStyle.js +121 -123
  44. package/lib/cjs/ClipStyle.js.map +1 -1
  45. package/lib/cjs/CloudStorage.d.ts +62 -62
  46. package/lib/cjs/CloudStorage.js +113 -113
  47. package/lib/cjs/CloudStorage.js.map +1 -1
  48. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  49. package/lib/cjs/CloudStorageTileCache.js +65 -66
  50. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  51. package/lib/cjs/Code.d.ts +277 -277
  52. package/lib/cjs/Code.js +268 -269
  53. package/lib/cjs/Code.js.map +1 -1
  54. package/lib/cjs/ColorByName.d.ts +161 -161
  55. package/lib/cjs/ColorByName.js +169 -169
  56. package/lib/cjs/ColorByName.js.map +1 -1
  57. package/lib/cjs/ColorDef.d.ts +208 -208
  58. package/lib/cjs/ColorDef.js +570 -571
  59. package/lib/cjs/ColorDef.js.map +1 -1
  60. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  61. package/lib/cjs/CommonLoggerCategory.js +26 -26
  62. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  63. package/lib/cjs/ConcurrentQuery.d.ts +421 -421
  64. package/lib/cjs/ConcurrentQuery.js +552 -552
  65. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  66. package/lib/cjs/ContextRealityModel.d.ts +303 -303
  67. package/lib/cjs/ContextRealityModel.js +371 -373
  68. package/lib/cjs/ContextRealityModel.js.map +1 -1
  69. package/lib/cjs/DisplayStyleSettings.d.ts +588 -588
  70. package/lib/cjs/DisplayStyleSettings.js +981 -985
  71. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  72. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  73. package/lib/cjs/ECSchemaProps.js +9 -9
  74. package/lib/cjs/ECSchemaProps.js.map +1 -1
  75. package/lib/cjs/ECSqlReader.d.ts +70 -70
  76. package/lib/cjs/ECSqlReader.js +280 -280
  77. package/lib/cjs/ECSqlReader.js.map +1 -1
  78. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  79. package/lib/cjs/ECSqlTypes.js +189 -189
  80. package/lib/cjs/ECSqlTypes.js.map +1 -1
  81. package/lib/cjs/ElementMesh.d.ts +39 -39
  82. package/lib/cjs/ElementMesh.js +56 -56
  83. package/lib/cjs/ElementMesh.js.map +1 -1
  84. package/lib/cjs/ElementProps.d.ts +483 -483
  85. package/lib/cjs/ElementProps.js +99 -99
  86. package/lib/cjs/ElementProps.js.map +1 -1
  87. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  88. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  89. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  90. package/lib/cjs/EntityProps.d.ts +177 -177
  91. package/lib/cjs/EntityProps.js +113 -113
  92. package/lib/cjs/EntityProps.js.map +1 -1
  93. package/lib/cjs/EntityReference.d.ts +51 -51
  94. package/lib/cjs/EntityReference.js +56 -56
  95. package/lib/cjs/EntityReference.js.map +1 -1
  96. package/lib/cjs/Environment.d.ts +61 -61
  97. package/lib/cjs/Environment.js +70 -73
  98. package/lib/cjs/Environment.js.map +1 -1
  99. package/lib/cjs/FeatureIndex.d.ts +39 -39
  100. package/lib/cjs/FeatureIndex.js +63 -63
  101. package/lib/cjs/FeatureIndex.js.map +1 -1
  102. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  103. package/lib/cjs/FeatureSymbology.js +613 -614
  104. package/lib/cjs/FeatureSymbology.js.map +1 -1
  105. package/lib/cjs/FeatureTable.d.ts +141 -141
  106. package/lib/cjs/FeatureTable.js +278 -278
  107. package/lib/cjs/FeatureTable.js.map +1 -1
  108. package/lib/cjs/Fonts.d.ts +51 -51
  109. package/lib/cjs/Fonts.js +53 -53
  110. package/lib/cjs/Fonts.js.map +1 -1
  111. package/lib/cjs/Frustum.d.ts +114 -114
  112. package/lib/cjs/Frustum.js +292 -292
  113. package/lib/cjs/Frustum.js.map +1 -1
  114. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  115. package/lib/cjs/GeoCoordinateServices.js +80 -80
  116. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  117. package/lib/cjs/GeometryContainment.d.ts +28 -28
  118. package/lib/cjs/GeometryContainment.js +9 -9
  119. package/lib/cjs/GeometryContainment.js.map +1 -1
  120. package/lib/cjs/GeometryParams.d.ts +130 -130
  121. package/lib/cjs/GeometryParams.js +174 -174
  122. package/lib/cjs/GeometryParams.js.map +1 -1
  123. package/lib/cjs/GeometrySummary.d.ts +45 -45
  124. package/lib/cjs/GeometrySummary.js +23 -23
  125. package/lib/cjs/GeometrySummary.js.map +1 -1
  126. package/lib/cjs/Gradient.d.ts +139 -139
  127. package/lib/cjs/Gradient.js +453 -455
  128. package/lib/cjs/Gradient.js.map +1 -1
  129. package/lib/cjs/GraphicParams.d.ts +58 -58
  130. package/lib/cjs/GraphicParams.js +85 -85
  131. package/lib/cjs/GraphicParams.js.map +1 -1
  132. package/lib/cjs/GroundPlane.d.ts +52 -52
  133. package/lib/cjs/GroundPlane.js +63 -64
  134. package/lib/cjs/GroundPlane.js.map +1 -1
  135. package/lib/cjs/HSLColor.d.ts +20 -20
  136. package/lib/cjs/HSLColor.js +32 -32
  137. package/lib/cjs/HSLColor.js.map +1 -1
  138. package/lib/cjs/HSVColor.d.ts +30 -30
  139. package/lib/cjs/HSVColor.js +59 -59
  140. package/lib/cjs/HSVColor.js.map +1 -1
  141. package/lib/cjs/HiddenLine.d.ts +97 -97
  142. package/lib/cjs/HiddenLine.js +160 -162
  143. package/lib/cjs/HiddenLine.js.map +1 -1
  144. package/lib/cjs/Hilite.d.ts +50 -50
  145. package/lib/cjs/Hilite.js +64 -64
  146. package/lib/cjs/Hilite.js.map +1 -1
  147. package/lib/cjs/IModel.d.ts +358 -358
  148. package/lib/cjs/IModel.js +347 -347
  149. package/lib/cjs/IModel.js.map +1 -1
  150. package/lib/cjs/IModelError.d.ts +42 -42
  151. package/lib/cjs/IModelError.js +71 -71
  152. package/lib/cjs/IModelError.js.map +1 -1
  153. package/lib/cjs/IModelVersion.d.ts +68 -68
  154. package/lib/cjs/IModelVersion.js +79 -79
  155. package/lib/cjs/IModelVersion.js.map +1 -1
  156. package/lib/cjs/Image.d.ts +86 -86
  157. package/lib/cjs/Image.js +128 -128
  158. package/lib/cjs/Image.js.map +1 -1
  159. package/lib/cjs/IpcAppProps.d.ts +141 -141
  160. package/lib/cjs/IpcAppProps.js +23 -23
  161. package/lib/cjs/IpcAppProps.js.map +1 -1
  162. package/lib/cjs/LightSettings.d.ts +224 -224
  163. package/lib/cjs/LightSettings.js +304 -309
  164. package/lib/cjs/LightSettings.js.map +1 -1
  165. package/lib/cjs/LinePixels.d.ts +34 -34
  166. package/lib/cjs/LinePixels.js +42 -42
  167. package/lib/cjs/LinePixels.js.map +1 -1
  168. package/lib/cjs/Localization.d.ts +113 -113
  169. package/lib/cjs/Localization.js +33 -33
  170. package/lib/cjs/Localization.js.map +1 -1
  171. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  172. package/lib/cjs/MapImagerySettings.js +80 -80
  173. package/lib/cjs/MapImagerySettings.js.map +1 -1
  174. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  175. package/lib/cjs/MapLayerSettings.js +407 -411
  176. package/lib/cjs/MapLayerSettings.js.map +1 -1
  177. package/lib/cjs/MassProperties.d.ts +64 -64
  178. package/lib/cjs/MassProperties.js +23 -23
  179. package/lib/cjs/MassProperties.js.map +1 -1
  180. package/lib/cjs/MaterialProps.d.ts +153 -153
  181. package/lib/cjs/MaterialProps.js +35 -35
  182. package/lib/cjs/MaterialProps.js.map +1 -1
  183. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  184. package/lib/cjs/ModelClipGroup.js +96 -98
  185. package/lib/cjs/ModelClipGroup.js.map +1 -1
  186. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  187. package/lib/cjs/ModelGeometryChanges.js +83 -83
  188. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  189. package/lib/cjs/ModelProps.d.ts +67 -67
  190. package/lib/cjs/ModelProps.js +9 -9
  191. package/lib/cjs/ModelProps.js.map +1 -1
  192. package/lib/cjs/NativeAppProps.d.ts +122 -122
  193. package/lib/cjs/NativeAppProps.js +30 -30
  194. package/lib/cjs/NativeAppProps.js.map +1 -1
  195. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  196. package/lib/cjs/OctEncodedNormal.js +98 -98
  197. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  198. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  199. package/lib/cjs/PlanProjectionSettings.js +63 -63
  200. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  201. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  202. package/lib/cjs/PlanarClipMask.js +136 -136
  203. package/lib/cjs/PlanarClipMask.js.map +1 -1
  204. package/lib/cjs/QPoint.d.ts +479 -479
  205. package/lib/cjs/QPoint.js +824 -826
  206. package/lib/cjs/QPoint.js.map +1 -1
  207. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  208. package/lib/cjs/RealityDataAccessProps.js +19 -19
  209. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  210. package/lib/cjs/RealityModelDisplaySettings.d.ts +183 -183
  211. package/lib/cjs/RealityModelDisplaySettings.js +141 -142
  212. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  213. package/lib/cjs/Render.d.ts +89 -89
  214. package/lib/cjs/Render.js +177 -177
  215. package/lib/cjs/Render.js.map +1 -1
  216. package/lib/cjs/RenderMaterial.d.ts +58 -58
  217. package/lib/cjs/RenderMaterial.js +75 -76
  218. package/lib/cjs/RenderMaterial.js.map +1 -1
  219. package/lib/cjs/RenderSchedule.d.ts +543 -543
  220. package/lib/cjs/RenderSchedule.js +992 -1002
  221. package/lib/cjs/RenderSchedule.js.map +1 -1
  222. package/lib/cjs/RenderTexture.d.ts +70 -70
  223. package/lib/cjs/RenderTexture.js +59 -59
  224. package/lib/cjs/RenderTexture.js.map +1 -1
  225. package/lib/cjs/RgbColor.d.ts +47 -47
  226. package/lib/cjs/RgbColor.js +77 -77
  227. package/lib/cjs/RgbColor.js.map +1 -1
  228. package/lib/cjs/RpcInterface.d.ts +33 -33
  229. package/lib/cjs/RpcInterface.js +137 -137
  230. package/lib/cjs/RpcInterface.js.map +1 -1
  231. package/lib/cjs/RpcManager.d.ts +40 -40
  232. package/lib/cjs/RpcManager.js +55 -55
  233. package/lib/cjs/RpcManager.js.map +1 -1
  234. package/lib/cjs/SessionProps.d.ts +16 -16
  235. package/lib/cjs/SessionProps.js +9 -9
  236. package/lib/cjs/SessionProps.js.map +1 -1
  237. package/lib/cjs/SkyBox.d.ts +215 -215
  238. package/lib/cjs/SkyBox.js +209 -210
  239. package/lib/cjs/SkyBox.js.map +1 -1
  240. package/lib/cjs/Snapping.d.ts +49 -49
  241. package/lib/cjs/Snapping.js +9 -9
  242. package/lib/cjs/Snapping.js.map +1 -1
  243. package/lib/cjs/SolarCalculate.d.ts +27 -27
  244. package/lib/cjs/SolarCalculate.js +211 -211
  245. package/lib/cjs/SolarCalculate.js.map +1 -1
  246. package/lib/cjs/SolarShadows.d.ts +35 -35
  247. package/lib/cjs/SolarShadows.js +61 -62
  248. package/lib/cjs/SolarShadows.js.map +1 -1
  249. package/lib/cjs/SpatialClassification.d.ts +208 -208
  250. package/lib/cjs/SpatialClassification.js +339 -340
  251. package/lib/cjs/SpatialClassification.js.map +1 -1
  252. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  253. package/lib/cjs/SubCategoryAppearance.js +96 -96
  254. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  255. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  256. package/lib/cjs/SubCategoryOverride.js +104 -104
  257. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  258. package/lib/cjs/TerrainSettings.d.ts +82 -82
  259. package/lib/cjs/TerrainSettings.js +100 -102
  260. package/lib/cjs/TerrainSettings.js.map +1 -1
  261. package/lib/cjs/TextureMapping.d.ts +118 -118
  262. package/lib/cjs/TextureMapping.js +173 -174
  263. package/lib/cjs/TextureMapping.js.map +1 -1
  264. package/lib/cjs/TextureProps.d.ts +65 -65
  265. package/lib/cjs/TextureProps.js +28 -28
  266. package/lib/cjs/TextureProps.js.map +1 -1
  267. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  268. package/lib/cjs/ThematicDisplay.js +343 -344
  269. package/lib/cjs/ThematicDisplay.js.map +1 -1
  270. package/lib/cjs/Thumbnail.d.ts +26 -26
  271. package/lib/cjs/Thumbnail.js +9 -9
  272. package/lib/cjs/Thumbnail.js.map +1 -1
  273. package/lib/cjs/TileProps.d.ts +82 -82
  274. package/lib/cjs/TileProps.js +29 -29
  275. package/lib/cjs/TileProps.js.map +1 -1
  276. package/lib/cjs/Tween.d.ts +191 -191
  277. package/lib/cjs/Tween.js +570 -570
  278. package/lib/cjs/Tween.js.map +1 -1
  279. package/lib/cjs/TxnAction.d.ts +21 -21
  280. package/lib/cjs/TxnAction.js +29 -29
  281. package/lib/cjs/TxnAction.js.map +1 -1
  282. package/lib/cjs/ViewDetails.d.ts +125 -125
  283. package/lib/cjs/ViewDetails.js +166 -166
  284. package/lib/cjs/ViewDetails.js.map +1 -1
  285. package/lib/cjs/ViewFlags.d.ts +287 -287
  286. package/lib/cjs/ViewFlags.js +367 -368
  287. package/lib/cjs/ViewFlags.js.map +1 -1
  288. package/lib/cjs/ViewProps.d.ts +205 -205
  289. package/lib/cjs/ViewProps.js +9 -9
  290. package/lib/cjs/ViewProps.js.map +1 -1
  291. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  292. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  293. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  294. package/lib/cjs/core-common.d.ts +244 -244
  295. package/lib/cjs/core-common.js +260 -260
  296. package/lib/cjs/core-common.js.map +1 -1
  297. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  298. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  299. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  300. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  301. package/lib/cjs/domains/GenericElementProps.js +9 -9
  302. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  303. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  304. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  305. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  306. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  307. package/lib/cjs/geometry/AreaPattern.js +203 -204
  308. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  309. package/lib/cjs/geometry/BoundingSphere.d.ts +27 -27
  310. package/lib/cjs/geometry/BoundingSphere.js +44 -44
  311. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  312. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  313. package/lib/cjs/geometry/Cartographic.js +345 -345
  314. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  315. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  316. package/lib/cjs/geometry/CoordinateReferenceSystem.js +260 -261
  317. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  318. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  319. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  320. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  321. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  322. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  323. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  324. package/lib/cjs/geometry/FrustumPlanes.d.ts +81 -81
  325. package/lib/cjs/geometry/FrustumPlanes.js +189 -189
  326. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  327. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  328. package/lib/cjs/geometry/GeodeticDatum.js +400 -401
  329. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  330. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  331. package/lib/cjs/geometry/GeodeticEllipsoid.js +71 -72
  332. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  333. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  334. package/lib/cjs/geometry/GeometryStream.js +468 -469
  335. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  336. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  337. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  338. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  339. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  340. package/lib/cjs/geometry/LineStyle.js +129 -129
  341. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  342. package/lib/cjs/geometry/Placement.d.ts +95 -95
  343. package/lib/cjs/geometry/Placement.js +131 -131
  344. package/lib/cjs/geometry/Placement.js.map +1 -1
  345. package/lib/cjs/geometry/Projection.d.ts +251 -251
  346. package/lib/cjs/geometry/Projection.js +198 -198
  347. package/lib/cjs/geometry/Projection.js.map +1 -1
  348. package/lib/cjs/geometry/TextString.d.ts +55 -55
  349. package/lib/cjs/geometry/TextString.js +65 -65
  350. package/lib/cjs/geometry/TextString.js.map +1 -1
  351. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  352. package/lib/cjs/ipc/IpcSession.js +27 -27
  353. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  354. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  355. package/lib/cjs/ipc/IpcSocket.js +16 -16
  356. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  357. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  358. package/lib/cjs/ipc/IpcWebSocket.js +150 -151
  359. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  360. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  361. package/lib/cjs/ipc/IpcWebSocketTransport.js +160 -160
  362. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  363. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  364. package/lib/cjs/rpc/DevToolsRpcInterface.js +52 -52
  365. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  366. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +99 -99
  367. package/lib/cjs/rpc/IModelReadRpcInterface.js +122 -122
  368. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  369. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  370. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  371. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  372. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  373. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  374. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  375. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  376. package/lib/cjs/rpc/TestRpcManager.js +40 -40
  377. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  378. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  379. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  380. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  381. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  382. package/lib/cjs/rpc/core/RpcConfiguration.js +191 -191
  383. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  384. package/lib/cjs/rpc/core/RpcConstants.d.ts +90 -90
  385. package/lib/cjs/rpc/core/RpcConstants.js +109 -109
  386. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  387. package/lib/cjs/rpc/core/RpcControl.d.ts +54 -54
  388. package/lib/cjs/rpc/core/RpcControl.js +145 -145
  389. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  390. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  391. package/lib/cjs/rpc/core/RpcInvocation.js +256 -258
  392. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  393. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +35 -35
  394. package/lib/cjs/rpc/core/RpcMarshaling.js +156 -156
  395. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  396. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  397. package/lib/cjs/rpc/core/RpcOperation.js +134 -134
  398. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  399. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  400. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -95
  401. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  402. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  403. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  404. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  405. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  406. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  407. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  408. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  409. package/lib/cjs/rpc/core/RpcRegistry.js +198 -199
  410. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  411. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  412. package/lib/cjs/rpc/core/RpcRequest.js +478 -478
  413. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  414. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  415. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  416. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  417. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  418. package/lib/cjs/rpc/core/RpcRoutingToken.js +24 -24
  419. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  420. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  421. package/lib/cjs/rpc/core/RpcSessionInvocation.js +60 -60
  422. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  423. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  424. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  425. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  426. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  427. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +141 -143
  428. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  429. package/lib/cjs/rpc/web/OpenAPI.d.ts +140 -140
  430. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  431. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  432. package/lib/cjs/rpc/web/RpcMultipart.d.ts +35 -35
  433. package/lib/cjs/rpc/web/RpcMultipart.js +50 -50
  434. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  435. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +28 -28
  436. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  437. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  438. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +89 -89
  439. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  440. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  441. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +67 -67
  442. package/lib/cjs/rpc/web/WebAppRpcRequest.js +239 -239
  443. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  444. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  445. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +373 -373
  446. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  447. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  448. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  449. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  450. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  451. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  452. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  453. package/lib/cjs/tile/ElementGraphics.d.ts +145 -145
  454. package/lib/cjs/tile/ElementGraphics.js +9 -9
  455. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  456. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  457. package/lib/cjs/tile/GltfTileIO.js +109 -109
  458. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  459. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  460. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  461. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  462. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  463. package/lib/cjs/tile/IModelTileIO.js +95 -95
  464. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  465. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  466. package/lib/cjs/tile/PntsTileIO.js +26 -26
  467. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  468. package/lib/cjs/tile/TileIO.d.ts +66 -66
  469. package/lib/cjs/tile/TileIO.js +118 -118
  470. package/lib/cjs/tile/TileIO.js.map +1 -1
  471. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  472. package/lib/cjs/tile/TileMetadata.js +675 -676
  473. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  474. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  475. package/lib/esm/AmbientOcclusion.js +52 -52
  476. package/lib/esm/AmbientOcclusion.js.map +1 -1
  477. package/lib/esm/AnalysisStyle.d.ts +134 -134
  478. package/lib/esm/AnalysisStyle.js +159 -159
  479. package/lib/esm/AnalysisStyle.js.map +1 -1
  480. package/lib/esm/AuthorizationClient.d.ts +17 -17
  481. package/lib/esm/AuthorizationClient.js +8 -8
  482. package/lib/esm/AuthorizationClient.js.map +1 -1
  483. package/lib/esm/BackendTypes.d.ts +12 -12
  484. package/lib/esm/BackendTypes.js +8 -8
  485. package/lib/esm/BackendTypes.js.map +1 -1
  486. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  487. package/lib/esm/BackgroundMapProvider.js +63 -64
  488. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  489. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  490. package/lib/esm/BackgroundMapSettings.js +150 -152
  491. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  492. package/lib/esm/Base64EncodedString.d.ts +32 -32
  493. package/lib/esm/Base64EncodedString.js +63 -63
  494. package/lib/esm/Base64EncodedString.js.map +1 -1
  495. package/lib/esm/BlobReader.d.ts +31 -31
  496. package/lib/esm/BlobReader.js +79 -79
  497. package/lib/esm/BlobReader.js.map +1 -1
  498. package/lib/esm/BriefcaseTypes.d.ts +191 -189
  499. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  500. package/lib/esm/BriefcaseTypes.js +92 -92
  501. package/lib/esm/BriefcaseTypes.js.map +1 -1
  502. package/lib/esm/Camera.d.ts +42 -42
  503. package/lib/esm/Camera.js +58 -58
  504. package/lib/esm/Camera.js.map +1 -1
  505. package/lib/esm/ChangedElements.d.ts +85 -85
  506. package/lib/esm/ChangedElements.js +20 -20
  507. package/lib/esm/ChangedElements.js.map +1 -1
  508. package/lib/esm/ChangedEntities.d.ts +45 -45
  509. package/lib/esm/ChangedEntities.js +8 -8
  510. package/lib/esm/ChangedEntities.js.map +1 -1
  511. package/lib/esm/ChangesetProps.d.ts +98 -98
  512. package/lib/esm/ChangesetProps.js +19 -19
  513. package/lib/esm/ChangesetProps.js.map +1 -1
  514. package/lib/esm/ClipStyle.d.ts +89 -89
  515. package/lib/esm/ClipStyle.js +116 -118
  516. package/lib/esm/ClipStyle.js.map +1 -1
  517. package/lib/esm/CloudStorage.d.ts +62 -62
  518. package/lib/esm/CloudStorage.js +109 -109
  519. package/lib/esm/CloudStorage.js.map +1 -1
  520. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  521. package/lib/esm/CloudStorageTileCache.js +61 -62
  522. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  523. package/lib/esm/Code.d.ts +277 -277
  524. package/lib/esm/Code.js +263 -264
  525. package/lib/esm/Code.js.map +1 -1
  526. package/lib/esm/ColorByName.d.ts +161 -161
  527. package/lib/esm/ColorByName.js +166 -166
  528. package/lib/esm/ColorByName.js.map +1 -1
  529. package/lib/esm/ColorDef.d.ts +208 -208
  530. package/lib/esm/ColorDef.js +566 -567
  531. package/lib/esm/ColorDef.js.map +1 -1
  532. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  533. package/lib/esm/CommonLoggerCategory.js +23 -23
  534. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  535. package/lib/esm/ConcurrentQuery.d.ts +421 -421
  536. package/lib/esm/ConcurrentQuery.js +545 -545
  537. package/lib/esm/ConcurrentQuery.js.map +1 -1
  538. package/lib/esm/ContextRealityModel.d.ts +303 -303
  539. package/lib/esm/ContextRealityModel.js +366 -368
  540. package/lib/esm/ContextRealityModel.js.map +1 -1
  541. package/lib/esm/DisplayStyleSettings.d.ts +588 -588
  542. package/lib/esm/DisplayStyleSettings.js +976 -980
  543. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  544. package/lib/esm/ECSchemaProps.d.ts +39 -39
  545. package/lib/esm/ECSchemaProps.js +8 -8
  546. package/lib/esm/ECSchemaProps.js.map +1 -1
  547. package/lib/esm/ECSqlReader.d.ts +70 -70
  548. package/lib/esm/ECSqlReader.js +275 -275
  549. package/lib/esm/ECSqlReader.js.map +1 -1
  550. package/lib/esm/ECSqlTypes.d.ts +128 -128
  551. package/lib/esm/ECSqlTypes.js +185 -185
  552. package/lib/esm/ECSqlTypes.js.map +1 -1
  553. package/lib/esm/ElementMesh.d.ts +39 -39
  554. package/lib/esm/ElementMesh.js +52 -52
  555. package/lib/esm/ElementMesh.js.map +1 -1
  556. package/lib/esm/ElementProps.d.ts +483 -483
  557. package/lib/esm/ElementProps.js +92 -92
  558. package/lib/esm/ElementProps.js.map +1 -1
  559. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  560. package/lib/esm/EmphasizeElementsProps.js +22 -22
  561. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  562. package/lib/esm/EntityProps.d.ts +177 -177
  563. package/lib/esm/EntityProps.js +108 -108
  564. package/lib/esm/EntityProps.js.map +1 -1
  565. package/lib/esm/EntityReference.d.ts +51 -51
  566. package/lib/esm/EntityReference.js +52 -52
  567. package/lib/esm/EntityReference.js.map +1 -1
  568. package/lib/esm/Environment.d.ts +61 -61
  569. package/lib/esm/Environment.js +66 -69
  570. package/lib/esm/Environment.js.map +1 -1
  571. package/lib/esm/FeatureIndex.d.ts +39 -39
  572. package/lib/esm/FeatureIndex.js +57 -57
  573. package/lib/esm/FeatureIndex.js.map +1 -1
  574. package/lib/esm/FeatureSymbology.d.ts +444 -444
  575. package/lib/esm/FeatureSymbology.js +608 -609
  576. package/lib/esm/FeatureSymbology.js.map +1 -1
  577. package/lib/esm/FeatureTable.d.ts +141 -141
  578. package/lib/esm/FeatureTable.js +272 -272
  579. package/lib/esm/FeatureTable.js.map +1 -1
  580. package/lib/esm/Fonts.d.ts +51 -51
  581. package/lib/esm/Fonts.js +49 -49
  582. package/lib/esm/Fonts.js.map +1 -1
  583. package/lib/esm/Frustum.d.ts +114 -114
  584. package/lib/esm/Frustum.js +288 -288
  585. package/lib/esm/Frustum.js.map +1 -1
  586. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  587. package/lib/esm/GeoCoordinateServices.js +76 -76
  588. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  589. package/lib/esm/GeometryContainment.d.ts +28 -28
  590. package/lib/esm/GeometryContainment.js +8 -8
  591. package/lib/esm/GeometryContainment.js.map +1 -1
  592. package/lib/esm/GeometryParams.d.ts +130 -130
  593. package/lib/esm/GeometryParams.js +170 -170
  594. package/lib/esm/GeometryParams.js.map +1 -1
  595. package/lib/esm/GeometrySummary.d.ts +45 -45
  596. package/lib/esm/GeometrySummary.js +20 -20
  597. package/lib/esm/GeometrySummary.js.map +1 -1
  598. package/lib/esm/Gradient.d.ts +139 -139
  599. package/lib/esm/Gradient.js +450 -452
  600. package/lib/esm/Gradient.js.map +1 -1
  601. package/lib/esm/GraphicParams.d.ts +58 -58
  602. package/lib/esm/GraphicParams.js +81 -81
  603. package/lib/esm/GraphicParams.js.map +1 -1
  604. package/lib/esm/GroundPlane.d.ts +52 -52
  605. package/lib/esm/GroundPlane.js +59 -60
  606. package/lib/esm/GroundPlane.js.map +1 -1
  607. package/lib/esm/HSLColor.d.ts +20 -20
  608. package/lib/esm/HSLColor.js +28 -28
  609. package/lib/esm/HSLColor.js.map +1 -1
  610. package/lib/esm/HSVColor.d.ts +30 -30
  611. package/lib/esm/HSVColor.js +55 -55
  612. package/lib/esm/HSVColor.js.map +1 -1
  613. package/lib/esm/HiddenLine.d.ts +97 -97
  614. package/lib/esm/HiddenLine.js +157 -159
  615. package/lib/esm/HiddenLine.js.map +1 -1
  616. package/lib/esm/Hilite.d.ts +50 -50
  617. package/lib/esm/Hilite.js +61 -61
  618. package/lib/esm/Hilite.js.map +1 -1
  619. package/lib/esm/IModel.d.ts +358 -358
  620. package/lib/esm/IModel.js +342 -342
  621. package/lib/esm/IModel.js.map +1 -1
  622. package/lib/esm/IModelError.d.ts +42 -42
  623. package/lib/esm/IModelError.js +56 -56
  624. package/lib/esm/IModelError.js.map +1 -1
  625. package/lib/esm/IModelVersion.d.ts +68 -68
  626. package/lib/esm/IModelVersion.js +75 -75
  627. package/lib/esm/IModelVersion.js.map +1 -1
  628. package/lib/esm/Image.d.ts +86 -86
  629. package/lib/esm/Image.js +120 -120
  630. package/lib/esm/Image.js.map +1 -1
  631. package/lib/esm/IpcAppProps.d.ts +141 -141
  632. package/lib/esm/IpcAppProps.js +19 -19
  633. package/lib/esm/IpcAppProps.js.map +1 -1
  634. package/lib/esm/LightSettings.d.ts +224 -224
  635. package/lib/esm/LightSettings.js +296 -301
  636. package/lib/esm/LightSettings.js.map +1 -1
  637. package/lib/esm/LinePixels.d.ts +34 -34
  638. package/lib/esm/LinePixels.js +39 -39
  639. package/lib/esm/LinePixels.js.map +1 -1
  640. package/lib/esm/Localization.d.ts +113 -113
  641. package/lib/esm/Localization.js +29 -29
  642. package/lib/esm/Localization.js.map +1 -1
  643. package/lib/esm/MapImagerySettings.d.ts +62 -62
  644. package/lib/esm/MapImagerySettings.js +76 -76
  645. package/lib/esm/MapImagerySettings.js.map +1 -1
  646. package/lib/esm/MapLayerSettings.d.ts +272 -272
  647. package/lib/esm/MapLayerSettings.js +399 -403
  648. package/lib/esm/MapLayerSettings.js.map +1 -1
  649. package/lib/esm/MassProperties.d.ts +64 -64
  650. package/lib/esm/MassProperties.js +20 -20
  651. package/lib/esm/MassProperties.js.map +1 -1
  652. package/lib/esm/MaterialProps.d.ts +153 -153
  653. package/lib/esm/MaterialProps.js +32 -32
  654. package/lib/esm/MaterialProps.js.map +1 -1
  655. package/lib/esm/ModelClipGroup.d.ts +67 -67
  656. package/lib/esm/ModelClipGroup.js +91 -93
  657. package/lib/esm/ModelClipGroup.js.map +1 -1
  658. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  659. package/lib/esm/ModelGeometryChanges.js +80 -80
  660. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  661. package/lib/esm/ModelProps.d.ts +67 -67
  662. package/lib/esm/ModelProps.js +8 -8
  663. package/lib/esm/ModelProps.js.map +1 -1
  664. package/lib/esm/NativeAppProps.d.ts +122 -122
  665. package/lib/esm/NativeAppProps.js +27 -27
  666. package/lib/esm/NativeAppProps.js.map +1 -1
  667. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  668. package/lib/esm/OctEncodedNormal.js +93 -93
  669. package/lib/esm/OctEncodedNormal.js.map +1 -1
  670. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  671. package/lib/esm/PlanProjectionSettings.js +59 -59
  672. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  673. package/lib/esm/PlanarClipMask.d.ts +177 -177
  674. package/lib/esm/PlanarClipMask.js +132 -132
  675. package/lib/esm/PlanarClipMask.js.map +1 -1
  676. package/lib/esm/QPoint.d.ts +479 -479
  677. package/lib/esm/QPoint.js +813 -815
  678. package/lib/esm/QPoint.js.map +1 -1
  679. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  680. package/lib/esm/RealityDataAccessProps.js +16 -16
  681. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  682. package/lib/esm/RealityModelDisplaySettings.d.ts +183 -183
  683. package/lib/esm/RealityModelDisplaySettings.js +136 -137
  684. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  685. package/lib/esm/Render.d.ts +89 -89
  686. package/lib/esm/Render.js +165 -165
  687. package/lib/esm/Render.js.map +1 -1
  688. package/lib/esm/RenderMaterial.d.ts +58 -58
  689. package/lib/esm/RenderMaterial.js +71 -72
  690. package/lib/esm/RenderMaterial.js.map +1 -1
  691. package/lib/esm/RenderSchedule.d.ts +543 -543
  692. package/lib/esm/RenderSchedule.js +989 -999
  693. package/lib/esm/RenderSchedule.js.map +1 -1
  694. package/lib/esm/RenderTexture.d.ts +70 -70
  695. package/lib/esm/RenderTexture.js +55 -55
  696. package/lib/esm/RenderTexture.js.map +1 -1
  697. package/lib/esm/RgbColor.d.ts +47 -47
  698. package/lib/esm/RgbColor.js +73 -73
  699. package/lib/esm/RgbColor.js.map +1 -1
  700. package/lib/esm/RpcInterface.d.ts +33 -33
  701. package/lib/esm/RpcInterface.js +133 -133
  702. package/lib/esm/RpcInterface.js.map +1 -1
  703. package/lib/esm/RpcManager.d.ts +40 -40
  704. package/lib/esm/RpcManager.js +51 -51
  705. package/lib/esm/RpcManager.js.map +1 -1
  706. package/lib/esm/SessionProps.d.ts +16 -16
  707. package/lib/esm/SessionProps.js +8 -8
  708. package/lib/esm/SessionProps.js.map +1 -1
  709. package/lib/esm/SkyBox.d.ts +215 -215
  710. package/lib/esm/SkyBox.js +202 -203
  711. package/lib/esm/SkyBox.js.map +1 -1
  712. package/lib/esm/Snapping.d.ts +49 -49
  713. package/lib/esm/Snapping.js +8 -8
  714. package/lib/esm/Snapping.js.map +1 -1
  715. package/lib/esm/SolarCalculate.d.ts +27 -27
  716. package/lib/esm/SolarCalculate.js +204 -204
  717. package/lib/esm/SolarCalculate.js.map +1 -1
  718. package/lib/esm/SolarShadows.d.ts +35 -35
  719. package/lib/esm/SolarShadows.js +57 -58
  720. package/lib/esm/SolarShadows.js.map +1 -1
  721. package/lib/esm/SpatialClassification.d.ts +208 -208
  722. package/lib/esm/SpatialClassification.js +333 -334
  723. package/lib/esm/SpatialClassification.js.map +1 -1
  724. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  725. package/lib/esm/SubCategoryAppearance.js +92 -92
  726. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  727. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  728. package/lib/esm/SubCategoryOverride.js +100 -100
  729. package/lib/esm/SubCategoryOverride.js.map +1 -1
  730. package/lib/esm/TerrainSettings.d.ts +82 -82
  731. package/lib/esm/TerrainSettings.js +96 -98
  732. package/lib/esm/TerrainSettings.js.map +1 -1
  733. package/lib/esm/TextureMapping.d.ts +118 -118
  734. package/lib/esm/TextureMapping.js +169 -170
  735. package/lib/esm/TextureMapping.js.map +1 -1
  736. package/lib/esm/TextureProps.d.ts +65 -65
  737. package/lib/esm/TextureProps.js +25 -25
  738. package/lib/esm/TextureProps.js.map +1 -1
  739. package/lib/esm/ThematicDisplay.d.ts +230 -230
  740. package/lib/esm/ThematicDisplay.js +336 -337
  741. package/lib/esm/ThematicDisplay.js.map +1 -1
  742. package/lib/esm/Thumbnail.d.ts +26 -26
  743. package/lib/esm/Thumbnail.js +8 -8
  744. package/lib/esm/Thumbnail.js.map +1 -1
  745. package/lib/esm/TileProps.d.ts +82 -82
  746. package/lib/esm/TileProps.js +25 -25
  747. package/lib/esm/TileProps.js.map +1 -1
  748. package/lib/esm/Tween.d.ts +191 -191
  749. package/lib/esm/Tween.js +565 -565
  750. package/lib/esm/Tween.js.map +1 -1
  751. package/lib/esm/TxnAction.d.ts +21 -21
  752. package/lib/esm/TxnAction.js +26 -26
  753. package/lib/esm/TxnAction.js.map +1 -1
  754. package/lib/esm/ViewDetails.d.ts +125 -125
  755. package/lib/esm/ViewDetails.js +161 -161
  756. package/lib/esm/ViewDetails.js.map +1 -1
  757. package/lib/esm/ViewFlags.d.ts +287 -287
  758. package/lib/esm/ViewFlags.js +363 -364
  759. package/lib/esm/ViewFlags.js.map +1 -1
  760. package/lib/esm/ViewProps.d.ts +205 -205
  761. package/lib/esm/ViewProps.js +8 -8
  762. package/lib/esm/ViewProps.js.map +1 -1
  763. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  764. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  765. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  766. package/lib/esm/core-common.d.ts +244 -244
  767. package/lib/esm/core-common.js +248 -248
  768. package/lib/esm/core-common.js.map +1 -1
  769. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  770. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  771. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  772. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  773. package/lib/esm/domains/GenericElementProps.js +8 -8
  774. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  775. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  776. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  777. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  778. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  779. package/lib/esm/geometry/AreaPattern.js +200 -201
  780. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  781. package/lib/esm/geometry/BoundingSphere.d.ts +27 -27
  782. package/lib/esm/geometry/BoundingSphere.js +40 -40
  783. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  784. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  785. package/lib/esm/geometry/Cartographic.js +340 -340
  786. package/lib/esm/geometry/Cartographic.js.map +1 -1
  787. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  788. package/lib/esm/geometry/CoordinateReferenceSystem.js +253 -254
  789. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  790. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  791. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  792. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  793. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  794. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  795. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  796. package/lib/esm/geometry/FrustumPlanes.d.ts +81 -81
  797. package/lib/esm/geometry/FrustumPlanes.js +185 -185
  798. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  799. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  800. package/lib/esm/geometry/GeodeticDatum.js +389 -390
  801. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  802. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  803. package/lib/esm/geometry/GeodeticEllipsoid.js +67 -68
  804. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  805. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  806. package/lib/esm/geometry/GeometryStream.js +463 -464
  807. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  808. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  809. package/lib/esm/geometry/ImageGraphic.js +93 -93
  810. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  811. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  812. package/lib/esm/geometry/LineStyle.js +126 -126
  813. package/lib/esm/geometry/LineStyle.js.map +1 -1
  814. package/lib/esm/geometry/Placement.d.ts +95 -95
  815. package/lib/esm/geometry/Placement.js +126 -126
  816. package/lib/esm/geometry/Placement.js.map +1 -1
  817. package/lib/esm/geometry/Projection.d.ts +251 -251
  818. package/lib/esm/geometry/Projection.js +192 -192
  819. package/lib/esm/geometry/Projection.js.map +1 -1
  820. package/lib/esm/geometry/TextString.d.ts +55 -55
  821. package/lib/esm/geometry/TextString.js +61 -61
  822. package/lib/esm/geometry/TextString.js.map +1 -1
  823. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  824. package/lib/esm/ipc/IpcSession.js +23 -23
  825. package/lib/esm/ipc/IpcSession.js.map +1 -1
  826. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  827. package/lib/esm/ipc/IpcSocket.js +12 -12
  828. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  829. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  830. package/lib/esm/ipc/IpcWebSocket.js +144 -145
  831. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  832. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  833. package/lib/esm/ipc/IpcWebSocketTransport.js +156 -156
  834. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  835. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  836. package/lib/esm/rpc/DevToolsRpcInterface.js +48 -48
  837. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  838. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +99 -99
  839. package/lib/esm/rpc/IModelReadRpcInterface.js +117 -117
  840. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  841. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  842. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  843. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  844. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  845. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  846. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  847. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  848. package/lib/esm/rpc/TestRpcManager.js +36 -36
  849. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  850. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  851. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  852. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  853. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  854. package/lib/esm/rpc/core/RpcConfiguration.js +184 -184
  855. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  856. package/lib/esm/rpc/core/RpcConstants.d.ts +90 -90
  857. package/lib/esm/rpc/core/RpcConstants.js +106 -106
  858. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  859. package/lib/esm/rpc/core/RpcControl.d.ts +54 -54
  860. package/lib/esm/rpc/core/RpcControl.js +138 -138
  861. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  862. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  863. package/lib/esm/rpc/core/RpcInvocation.js +252 -254
  864. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  865. package/lib/esm/rpc/core/RpcMarshaling.d.ts +35 -35
  866. package/lib/esm/rpc/core/RpcMarshaling.js +152 -152
  867. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  868. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  869. package/lib/esm/rpc/core/RpcOperation.js +129 -129
  870. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  871. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  872. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -91
  873. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  874. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  875. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  876. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  877. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  878. package/lib/esm/rpc/core/RpcPush.js +119 -119
  879. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  880. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  881. package/lib/esm/rpc/core/RpcRegistry.js +194 -195
  882. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  883. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  884. package/lib/esm/rpc/core/RpcRequest.js +473 -473
  885. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  886. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  887. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  888. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  889. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  890. package/lib/esm/rpc/core/RpcRoutingToken.js +20 -20
  891. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  892. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  893. package/lib/esm/rpc/core/RpcSessionInvocation.js +56 -56
  894. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  895. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  896. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  897. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  898. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  899. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +137 -139
  900. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  901. package/lib/esm/rpc/web/OpenAPI.d.ts +140 -140
  902. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  903. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  904. package/lib/esm/rpc/web/RpcMultipart.d.ts +35 -35
  905. package/lib/esm/rpc/web/RpcMultipart.js +46 -46
  906. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  907. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +28 -28
  908. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  909. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  910. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +89 -89
  911. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  912. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  913. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +67 -67
  914. package/lib/esm/rpc/web/WebAppRpcRequest.js +235 -235
  915. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  916. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +32 -32
  917. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +369 -369
  918. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  919. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  920. package/lib/esm/tile/B3dmTileIO.js +62 -62
  921. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  922. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  923. package/lib/esm/tile/CompositeTileIO.js +22 -22
  924. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  925. package/lib/esm/tile/ElementGraphics.d.ts +145 -145
  926. package/lib/esm/tile/ElementGraphics.js +8 -8
  927. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  928. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  929. package/lib/esm/tile/GltfTileIO.js +105 -105
  930. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  931. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  932. package/lib/esm/tile/I3dmTileIO.js +36 -36
  933. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  934. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  935. package/lib/esm/tile/IModelTileIO.js +90 -90
  936. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  937. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  938. package/lib/esm/tile/PntsTileIO.js +22 -22
  939. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  940. package/lib/esm/tile/TileIO.d.ts +66 -66
  941. package/lib/esm/tile/TileIO.js +110 -110
  942. package/lib/esm/tile/TileIO.js.map +1 -1
  943. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  944. package/lib/esm/tile/TileMetadata.js +660 -661
  945. package/lib/esm/tile/TileMetadata.js.map +1 -1
  946. package/package.json +7 -7
@@ -1,276 +1,276 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module iModels
7
- */
8
- import { Base64EncodedString } from "./Base64EncodedString";
9
- import { DbQueryError, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptionsBuilder, QueryRowFormat, } from "./ConcurrentQuery";
10
- /** @beta */
11
- export class PropertyMetaDataMap {
12
- constructor(properties) {
13
- this.properties = properties;
14
- this._byPropName = new Map();
15
- this._byJsonName = new Map();
16
- this._byNoCase = new Map();
17
- for (const property of this.properties) {
18
- this._byPropName.set(property.name, property.index);
19
- this._byJsonName.set(property.jsonName, property.index);
20
- this._byNoCase.set(property.name.toLowerCase(), property.index);
21
- this._byNoCase.set(property.jsonName.toLowerCase(), property.index);
22
- }
23
- }
24
- get length() { return this.properties.length; }
25
- [Symbol.iterator]() {
26
- return this.properties[Symbol.iterator]();
27
- }
28
- findByName(name) {
29
- const index = this._byPropName.get(name);
30
- if (typeof index === "number") {
31
- return this.properties[index];
32
- }
33
- return undefined;
34
- }
35
- findByJsonName(name) {
36
- const index = this._byJsonName.get(name);
37
- if (typeof index === "number") {
38
- return this.properties[index];
39
- }
40
- return undefined;
41
- }
42
- findByNoCase(name) {
43
- const index = this._byNoCase.get(name.toLowerCase());
44
- if (typeof index === "number") {
45
- return this.properties[index];
46
- }
47
- return undefined;
48
- }
49
- }
50
- /** @beta */
51
- export class ECSqlReader {
52
- /** @internal */
53
- constructor(_executor, query, param, options) {
54
- this._executor = _executor;
55
- this.query = query;
56
- this._localRows = [];
57
- this._localOffset = 0;
58
- this._globalOffset = -1;
59
- this._globalCount = -1;
60
- this._done = false;
61
- this._globalDone = false;
62
- this._props = new PropertyMetaDataMap([]);
63
- this._param = new QueryBinder().serialize();
64
- this._lockArgs = false;
65
- this._stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };
66
- this._rowProxy = new Proxy(this, {
67
- get: (target, key) => {
68
- if (typeof key === "string") {
69
- const idx = Number.parseInt(key, 10);
70
- if (!Number.isNaN(idx)) {
71
- return target.getRowInternal()[idx];
72
- }
73
- const prop = target._props.findByNoCase(key);
74
- if (prop) {
75
- return target.getRowInternal()[prop.index];
76
- }
77
- if (key === "getMetaData") {
78
- return () => target._props.properties;
79
- }
80
- if (key === "toRow") {
81
- return () => target.formatCurrentRow(true);
82
- }
83
- if (key === "getArray" || key === "toJSON") {
84
- return () => this.getRowInternal();
85
- }
86
- }
87
- return undefined;
88
- },
89
- has: (target, p) => {
90
- return !target._props.findByNoCase(p);
91
- },
92
- ownKeys: (target) => {
93
- const keys = [];
94
- for (const prop of target._props) {
95
- keys.push(prop.name);
96
- }
97
- return keys;
98
- },
99
- });
100
- this._options = new QueryOptionsBuilder().getOptions();
101
- if (query.trim().length === 0) {
102
- throw new Error("expecting non-empty ecsql statement");
103
- }
104
- if (param) {
105
- this._param = param.serialize();
106
- }
107
- this.reset(options);
108
- }
109
- static replaceBase64WithUint8Array(row) {
110
- for (const key of Object.keys(row)) {
111
- const val = row[key];
112
- if (typeof val === "string") {
113
- if (Base64EncodedString.hasPrefix(val)) {
114
- row[key] = Base64EncodedString.toUint8Array(val);
115
- }
116
- }
117
- else if (typeof val === "object" && val !== null) {
118
- this.replaceBase64WithUint8Array(val);
119
- }
120
- }
121
- }
122
- setParams(param) {
123
- if (this._lockArgs) {
124
- throw new Error("call resetBindings() before setting or changing parameters");
125
- }
126
- this._param = param.serialize();
127
- }
128
- reset(options) {
129
- if (options) {
130
- this._options = options;
131
- }
132
- this._props = new PropertyMetaDataMap([]);
133
- this._localRows = [];
134
- this._globalDone = false;
135
- this._globalOffset = 0;
136
- this._globalCount = -1;
137
- if (typeof this._options.rowFormat === "undefined")
138
- this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;
139
- if (this._options.limit) {
140
- if (typeof this._options.limit.offset === "number" && this._options.limit.offset > 0)
141
- this._globalOffset = this._options.limit.offset;
142
- if (typeof this._options.limit.count === "number" && this._options.limit.count > 0)
143
- this._globalCount = this._options.limit.count;
144
- }
145
- this._done = false;
146
- }
147
- get current() { return this._rowProxy; }
148
- // clear all bindings
149
- resetBindings() {
150
- this._param = new QueryBinder().serialize();
151
- this._lockArgs = false;
152
- }
153
- // return if there is any more rows available
154
- get done() { return this._done; }
155
- getRowInternal() {
156
- if (this._localRows.length <= this._localOffset)
157
- throw new Error("no current row");
158
- return this._localRows[this._localOffset];
159
- }
160
- // return performance related statistics for current query.
161
- get stats() { return this._stats; }
162
- async readRows() {
163
- if (this._globalDone) {
164
- return [];
165
- }
166
- this._lockArgs = true;
167
- this._globalOffset += this._localRows.length;
168
- this._globalCount -= this._localRows.length;
169
- if (this._globalCount === 0) {
170
- return [];
171
- }
172
- const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? DbValueFormat.JsNames : DbValueFormat.ECSqlNames;
173
- const request = {
174
- ...this._options,
175
- kind: DbRequestKind.ECSql,
176
- valueFormat,
177
- query: this.query,
178
- args: this._param,
179
- };
180
- request.includeMetaData = this._props.length > 0 ? false : true;
181
- request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };
182
- const resp = await this.runWithRetry(request);
183
- this._globalDone = resp.status === DbResponseStatus.Done;
184
- if (this._props.length === 0 && resp.meta.length > 0) {
185
- this._props = new PropertyMetaDataMap(resp.meta);
186
- }
187
- for (const row of resp.data) {
188
- ECSqlReader.replaceBase64WithUint8Array(row);
189
- }
190
- return resp.data;
191
- }
192
- async runWithRetry(request) {
193
- const needRetry = (rs) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);
194
- const updateStats = (rs) => {
195
- this._stats.backendCpuTime += rs.stats.cpuTime;
196
- this._stats.backendTotalTime += rs.stats.totalTime;
197
- this._stats.backendMemUsed += rs.stats.memUsed;
198
- this._stats.backendRowsReturned += rs.data.length;
199
- };
200
- const execQuery = async (req) => {
201
- const startTime = Date.now();
202
- const rs = await this._executor.execute(req);
203
- this.stats.totalTime += (Date.now() - startTime);
204
- return rs;
205
- };
206
- let retry = ECSqlReader._maxRetryCount;
207
- let resp = await execQuery(request);
208
- DbQueryError.throwIfError(resp, request);
209
- while (--retry > 0 && needRetry(resp)) {
210
- resp = await execQuery(request);
211
- this._stats.retryCount += 1;
212
- if (needRetry(resp)) {
213
- updateStats(resp);
214
- }
215
- }
216
- if (retry === 0 && needRetry(resp)) {
217
- throw new Error("query too long to execute or server is too busy");
218
- }
219
- updateStats(resp);
220
- return resp;
221
- }
222
- formatCurrentRow(onlyReturnObject = false) {
223
- if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {
224
- return this.getRowInternal();
225
- }
226
- const formattedRow = {};
227
- for (const prop of this._props) {
228
- const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;
229
- const val = this.getRowInternal()[prop.index];
230
- if (typeof val !== "undefined" && val !== null) {
231
- Object.defineProperty(formattedRow, propName, {
232
- value: val,
233
- enumerable: true,
234
- });
235
- }
236
- }
237
- return formattedRow;
238
- }
239
- async getMetaData() {
240
- if (this._props.length === 0) {
241
- await this.fetchRows();
242
- }
243
- return this._props.properties;
244
- }
245
- async fetchRows() {
246
- this._localOffset = -1;
247
- this._localRows = await this.readRows();
248
- if (this._localRows.length === 0) {
249
- this._done = true;
250
- }
251
- }
252
- async step() {
253
- if (this._done) {
254
- return false;
255
- }
256
- const cachedRows = this._localRows.length;
257
- if (this._localOffset < cachedRows - 1) {
258
- ++this._localOffset;
259
- }
260
- else {
261
- await this.fetchRows();
262
- this._localOffset = 0;
263
- return !this._done;
264
- }
265
- return true;
266
- }
267
- async toArray() {
268
- const rows = [];
269
- while (await this.step()) {
270
- rows.push(this.formatCurrentRow());
271
- }
272
- return rows;
273
- }
274
- }
275
- ECSqlReader._maxRetryCount = 10;
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module iModels
7
+ */
8
+ import { Base64EncodedString } from "./Base64EncodedString";
9
+ import { DbQueryError, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptionsBuilder, QueryRowFormat, } from "./ConcurrentQuery";
10
+ /** @beta */
11
+ export class PropertyMetaDataMap {
12
+ constructor(properties) {
13
+ this.properties = properties;
14
+ this._byPropName = new Map();
15
+ this._byJsonName = new Map();
16
+ this._byNoCase = new Map();
17
+ for (const property of this.properties) {
18
+ this._byPropName.set(property.name, property.index);
19
+ this._byJsonName.set(property.jsonName, property.index);
20
+ this._byNoCase.set(property.name.toLowerCase(), property.index);
21
+ this._byNoCase.set(property.jsonName.toLowerCase(), property.index);
22
+ }
23
+ }
24
+ get length() { return this.properties.length; }
25
+ [Symbol.iterator]() {
26
+ return this.properties[Symbol.iterator]();
27
+ }
28
+ findByName(name) {
29
+ const index = this._byPropName.get(name);
30
+ if (typeof index === "number") {
31
+ return this.properties[index];
32
+ }
33
+ return undefined;
34
+ }
35
+ findByJsonName(name) {
36
+ const index = this._byJsonName.get(name);
37
+ if (typeof index === "number") {
38
+ return this.properties[index];
39
+ }
40
+ return undefined;
41
+ }
42
+ findByNoCase(name) {
43
+ const index = this._byNoCase.get(name.toLowerCase());
44
+ if (typeof index === "number") {
45
+ return this.properties[index];
46
+ }
47
+ return undefined;
48
+ }
49
+ }
50
+ /** @beta */
51
+ export class ECSqlReader {
52
+ /** @internal */
53
+ constructor(_executor, query, param, options) {
54
+ this._executor = _executor;
55
+ this.query = query;
56
+ this._localRows = [];
57
+ this._localOffset = 0;
58
+ this._globalOffset = -1;
59
+ this._globalCount = -1;
60
+ this._done = false;
61
+ this._globalDone = false;
62
+ this._props = new PropertyMetaDataMap([]);
63
+ this._param = new QueryBinder().serialize();
64
+ this._lockArgs = false;
65
+ this._stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };
66
+ this._rowProxy = new Proxy(this, {
67
+ get: (target, key) => {
68
+ if (typeof key === "string") {
69
+ const idx = Number.parseInt(key, 10);
70
+ if (!Number.isNaN(idx)) {
71
+ return target.getRowInternal()[idx];
72
+ }
73
+ const prop = target._props.findByNoCase(key);
74
+ if (prop) {
75
+ return target.getRowInternal()[prop.index];
76
+ }
77
+ if (key === "getMetaData") {
78
+ return () => target._props.properties;
79
+ }
80
+ if (key === "toRow") {
81
+ return () => target.formatCurrentRow(true);
82
+ }
83
+ if (key === "getArray" || key === "toJSON") {
84
+ return () => this.getRowInternal();
85
+ }
86
+ }
87
+ return undefined;
88
+ },
89
+ has: (target, p) => {
90
+ return !target._props.findByNoCase(p);
91
+ },
92
+ ownKeys: (target) => {
93
+ const keys = [];
94
+ for (const prop of target._props) {
95
+ keys.push(prop.name);
96
+ }
97
+ return keys;
98
+ },
99
+ });
100
+ this._options = new QueryOptionsBuilder().getOptions();
101
+ if (query.trim().length === 0) {
102
+ throw new Error("expecting non-empty ecsql statement");
103
+ }
104
+ if (param) {
105
+ this._param = param.serialize();
106
+ }
107
+ this.reset(options);
108
+ }
109
+ static replaceBase64WithUint8Array(row) {
110
+ for (const key of Object.keys(row)) {
111
+ const val = row[key];
112
+ if (typeof val === "string") {
113
+ if (Base64EncodedString.hasPrefix(val)) {
114
+ row[key] = Base64EncodedString.toUint8Array(val);
115
+ }
116
+ }
117
+ else if (typeof val === "object" && val !== null) {
118
+ this.replaceBase64WithUint8Array(val);
119
+ }
120
+ }
121
+ }
122
+ setParams(param) {
123
+ if (this._lockArgs) {
124
+ throw new Error("call resetBindings() before setting or changing parameters");
125
+ }
126
+ this._param = param.serialize();
127
+ }
128
+ reset(options) {
129
+ if (options) {
130
+ this._options = options;
131
+ }
132
+ this._props = new PropertyMetaDataMap([]);
133
+ this._localRows = [];
134
+ this._globalDone = false;
135
+ this._globalOffset = 0;
136
+ this._globalCount = -1;
137
+ if (typeof this._options.rowFormat === "undefined")
138
+ this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;
139
+ if (this._options.limit) {
140
+ if (typeof this._options.limit.offset === "number" && this._options.limit.offset > 0)
141
+ this._globalOffset = this._options.limit.offset;
142
+ if (typeof this._options.limit.count === "number" && this._options.limit.count > 0)
143
+ this._globalCount = this._options.limit.count;
144
+ }
145
+ this._done = false;
146
+ }
147
+ get current() { return this._rowProxy; }
148
+ // clear all bindings
149
+ resetBindings() {
150
+ this._param = new QueryBinder().serialize();
151
+ this._lockArgs = false;
152
+ }
153
+ // return if there is any more rows available
154
+ get done() { return this._done; }
155
+ getRowInternal() {
156
+ if (this._localRows.length <= this._localOffset)
157
+ throw new Error("no current row");
158
+ return this._localRows[this._localOffset];
159
+ }
160
+ // return performance related statistics for current query.
161
+ get stats() { return this._stats; }
162
+ async readRows() {
163
+ if (this._globalDone) {
164
+ return [];
165
+ }
166
+ this._lockArgs = true;
167
+ this._globalOffset += this._localRows.length;
168
+ this._globalCount -= this._localRows.length;
169
+ if (this._globalCount === 0) {
170
+ return [];
171
+ }
172
+ const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? DbValueFormat.JsNames : DbValueFormat.ECSqlNames;
173
+ const request = {
174
+ ...this._options,
175
+ kind: DbRequestKind.ECSql,
176
+ valueFormat,
177
+ query: this.query,
178
+ args: this._param,
179
+ };
180
+ request.includeMetaData = this._props.length > 0 ? false : true;
181
+ request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };
182
+ const resp = await this.runWithRetry(request);
183
+ this._globalDone = resp.status === DbResponseStatus.Done;
184
+ if (this._props.length === 0 && resp.meta.length > 0) {
185
+ this._props = new PropertyMetaDataMap(resp.meta);
186
+ }
187
+ for (const row of resp.data) {
188
+ ECSqlReader.replaceBase64WithUint8Array(row);
189
+ }
190
+ return resp.data;
191
+ }
192
+ async runWithRetry(request) {
193
+ const needRetry = (rs) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);
194
+ const updateStats = (rs) => {
195
+ this._stats.backendCpuTime += rs.stats.cpuTime;
196
+ this._stats.backendTotalTime += rs.stats.totalTime;
197
+ this._stats.backendMemUsed += rs.stats.memUsed;
198
+ this._stats.backendRowsReturned += rs.data.length;
199
+ };
200
+ const execQuery = async (req) => {
201
+ const startTime = Date.now();
202
+ const rs = await this._executor.execute(req);
203
+ this.stats.totalTime += (Date.now() - startTime);
204
+ return rs;
205
+ };
206
+ let retry = ECSqlReader._maxRetryCount;
207
+ let resp = await execQuery(request);
208
+ DbQueryError.throwIfError(resp, request);
209
+ while (--retry > 0 && needRetry(resp)) {
210
+ resp = await execQuery(request);
211
+ this._stats.retryCount += 1;
212
+ if (needRetry(resp)) {
213
+ updateStats(resp);
214
+ }
215
+ }
216
+ if (retry === 0 && needRetry(resp)) {
217
+ throw new Error("query too long to execute or server is too busy");
218
+ }
219
+ updateStats(resp);
220
+ return resp;
221
+ }
222
+ formatCurrentRow(onlyReturnObject = false) {
223
+ if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {
224
+ return this.getRowInternal();
225
+ }
226
+ const formattedRow = {};
227
+ for (const prop of this._props) {
228
+ const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;
229
+ const val = this.getRowInternal()[prop.index];
230
+ if (typeof val !== "undefined" && val !== null) {
231
+ Object.defineProperty(formattedRow, propName, {
232
+ value: val,
233
+ enumerable: true,
234
+ });
235
+ }
236
+ }
237
+ return formattedRow;
238
+ }
239
+ async getMetaData() {
240
+ if (this._props.length === 0) {
241
+ await this.fetchRows();
242
+ }
243
+ return this._props.properties;
244
+ }
245
+ async fetchRows() {
246
+ this._localOffset = -1;
247
+ this._localRows = await this.readRows();
248
+ if (this._localRows.length === 0) {
249
+ this._done = true;
250
+ }
251
+ }
252
+ async step() {
253
+ if (this._done) {
254
+ return false;
255
+ }
256
+ const cachedRows = this._localRows.length;
257
+ if (this._localOffset < cachedRows - 1) {
258
+ ++this._localOffset;
259
+ }
260
+ else {
261
+ await this.fetchRows();
262
+ this._localOffset = 0;
263
+ return !this._done;
264
+ }
265
+ return true;
266
+ }
267
+ async toArray() {
268
+ const rows = [];
269
+ while (await this.step()) {
270
+ rows.push(this.formatCurrentRow());
271
+ }
272
+ return rows;
273
+ }
274
+ }
275
+ ECSqlReader._maxRetryCount = 10;
276
276
  //# sourceMappingURL=ECSqlReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlReader.js","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\nimport { Base64EncodedString } from \"./Base64EncodedString\";\r\nimport {\r\n DbQueryError, DbQueryRequest, DbQueryResponse, DbRequestExecutor, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptions, QueryOptionsBuilder,\r\n QueryPropertyMetaData, QueryRowFormat,\r\n} from \"./ConcurrentQuery\";\r\n\r\n/** @beta */\r\nexport class PropertyMetaDataMap implements Iterable<QueryPropertyMetaData> {\r\n private _byPropName = new Map<string, number>();\r\n private _byJsonName = new Map<string, number>();\r\n private _byNoCase = new Map<string, number>();\r\n public constructor(public readonly properties: QueryPropertyMetaData[]) {\r\n for (const property of this.properties) {\r\n this._byPropName.set(property.name, property.index);\r\n this._byJsonName.set(property.jsonName, property.index);\r\n this._byNoCase.set(property.name.toLowerCase(), property.index);\r\n this._byNoCase.set(property.jsonName.toLowerCase(), property.index);\r\n }\r\n }\r\n public get length(): number { return this.properties.length; }\r\n\r\n public [Symbol.iterator](): Iterator<QueryPropertyMetaData, any, undefined> {\r\n return this.properties[Symbol.iterator]();\r\n }\r\n public findByName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byPropName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByJsonName(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byJsonName.get(name);\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n public findByNoCase(name: string): QueryPropertyMetaData | undefined {\r\n const index = this._byNoCase.get(name.toLowerCase());\r\n if (typeof index === \"number\") {\r\n return this.properties[index];\r\n }\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * @beta\r\n*/\r\nexport type QueryValueType = any;\r\n\r\n/** @beta */\r\nexport interface QueryRowProxy {\r\n toRow(): any;\r\n toArray(): QueryValueType[];\r\n getMetaData(): QueryPropertyMetaData[];\r\n [propertyName: string]: QueryValueType;\r\n [propertyIndex: number]: QueryValueType;\r\n}\r\n\r\n/** @beta */\r\nexport interface QueryStats {\r\n backendCpuTime: number; // Time spent running the query. It exclude query time in queue. Time is in microseconds.\r\n backendTotalTime: number; // backend total time spent running the query. Time is in milliseconds.\r\n backendMemUsed: number; // Estimated m emory used for query. Time is in milliseconds.\r\n backendRowsReturned: number; // Total rows returned by backend.\r\n totalTime: number; // Round trip time from client perspective.Time is in milliseconds.\r\n retryCount: number;\r\n}\r\n\r\n/** @beta */\r\nexport class ECSqlReader {\r\n private static readonly _maxRetryCount = 10;\r\n private _localRows: any[] = [];\r\n private _localOffset: number = 0;\r\n private _globalOffset: number = -1;\r\n private _globalCount: number = -1;\r\n private _done: boolean = false;\r\n private _globalDone: boolean = false;\r\n private _props = new PropertyMetaDataMap([]);\r\n private _param = new QueryBinder().serialize();\r\n private _lockArgs: boolean = false;\r\n private _stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };\r\n private _rowProxy = new Proxy<ECSqlReader>(this, {\r\n get: (target: ECSqlReader, key: string | Symbol) => {\r\n if (typeof key === \"string\") {\r\n const idx = Number.parseInt(key, 10);\r\n if (!Number.isNaN(idx)) {\r\n return target.getRowInternal()[idx];\r\n }\r\n const prop = target._props.findByNoCase(key);\r\n if (prop) {\r\n return target.getRowInternal()[prop.index];\r\n }\r\n if (key === \"getMetaData\") {\r\n return () => target._props.properties;\r\n }\r\n if (key === \"toRow\") {\r\n return () => target.formatCurrentRow(true);\r\n }\r\n if (key === \"getArray\" || key === \"toJSON\") {\r\n return () => this.getRowInternal();\r\n }\r\n }\r\n return undefined;\r\n },\r\n has: (target: ECSqlReader, p: string | symbol) => {\r\n return !target._props.findByNoCase(p as string);\r\n },\r\n ownKeys: (target: ECSqlReader) => {\r\n const keys = [];\r\n for (const prop of target._props) {\r\n keys.push(prop.name);\r\n }\r\n return keys;\r\n },\r\n });\r\n private _options: QueryOptions = new QueryOptionsBuilder().getOptions();\r\n /** @internal */\r\n public constructor(private _executor: DbRequestExecutor<DbQueryRequest, DbQueryResponse>, public readonly query: string, param?: QueryBinder, options?: QueryOptions) {\r\n if (query.trim().length === 0) {\r\n throw new Error(\"expecting non-empty ecsql statement\");\r\n }\r\n if (param) {\r\n this._param = param.serialize();\r\n }\r\n this.reset(options);\r\n }\r\n private static replaceBase64WithUint8Array(row: any) {\r\n for (const key of Object.keys(row)) {\r\n const val = row[key];\r\n if (typeof val === \"string\") {\r\n if (Base64EncodedString.hasPrefix(val)) {\r\n row[key] = Base64EncodedString.toUint8Array(val);\r\n }\r\n } else if (typeof val === \"object\" && val !== null) {\r\n this.replaceBase64WithUint8Array(val);\r\n }\r\n }\r\n }\r\n public setParams(param: QueryBinder) {\r\n if (this._lockArgs) {\r\n throw new Error(\"call resetBindings() before setting or changing parameters\");\r\n }\r\n this._param = param.serialize();\r\n }\r\n public reset(options?: QueryOptions) {\r\n if (options) {\r\n this._options = options;\r\n }\r\n this._props = new PropertyMetaDataMap([]);\r\n this._localRows = [];\r\n this._globalDone = false;\r\n this._globalOffset = 0;\r\n this._globalCount = -1;\r\n if (typeof this._options.rowFormat === \"undefined\")\r\n this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;\r\n if (this._options.limit) {\r\n if (typeof this._options.limit.offset === \"number\" && this._options.limit.offset > 0)\r\n this._globalOffset = this._options.limit.offset;\r\n if (typeof this._options.limit.count === \"number\" && this._options.limit.count > 0)\r\n this._globalCount = this._options.limit.count;\r\n }\r\n this._done = false;\r\n }\r\n public get current(): QueryRowProxy { return (this._rowProxy as any); }\r\n // clear all bindings\r\n public resetBindings() {\r\n this._param = new QueryBinder().serialize();\r\n this._lockArgs = false;\r\n }\r\n // return if there is any more rows available\r\n public get done(): boolean { return this._done; }\r\n public getRowInternal(): any[] {\r\n if (this._localRows.length <= this._localOffset)\r\n throw new Error(\"no current row\");\r\n return this._localRows[this._localOffset] as any[];\r\n }\r\n // return performance related statistics for current query.\r\n public get stats(): QueryStats { return this._stats; }\r\n private async readRows(): Promise<any[]> {\r\n if (this._globalDone) {\r\n return [];\r\n }\r\n this._lockArgs = true;\r\n this._globalOffset += this._localRows.length;\r\n this._globalCount -= this._localRows.length;\r\n if (this._globalCount === 0) {\r\n return [];\r\n }\r\n const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames? DbValueFormat.JsNames :DbValueFormat.ECSqlNames;\r\n const request: DbQueryRequest = {\r\n ... this._options,\r\n kind: DbRequestKind.ECSql,\r\n valueFormat,\r\n query: this.query,\r\n args: this._param,\r\n };\r\n request.includeMetaData = this._props.length > 0 ? false : true;\r\n request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };\r\n const resp = await this.runWithRetry(request);\r\n this._globalDone = resp.status === DbResponseStatus.Done;\r\n if (this._props.length === 0 && resp.meta.length > 0) {\r\n this._props = new PropertyMetaDataMap(resp.meta);\r\n }\r\n for (const row of resp.data) {\r\n ECSqlReader.replaceBase64WithUint8Array(row);\r\n }\r\n return resp.data;\r\n }\r\n private async runWithRetry(request: DbQueryRequest) {\r\n const needRetry = (rs: DbQueryResponse) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);\r\n const updateStats = (rs: DbQueryResponse) => {\r\n this._stats.backendCpuTime += rs.stats.cpuTime;\r\n this._stats.backendTotalTime += rs.stats.totalTime;\r\n this._stats.backendMemUsed += rs.stats.memUsed;\r\n this._stats.backendRowsReturned += rs.data.length;\r\n };\r\n const execQuery = async (req: DbQueryRequest) => {\r\n const startTime = Date.now();\r\n const rs = await this._executor.execute(req);\r\n this.stats.totalTime += (Date.now() - startTime);\r\n return rs;\r\n };\r\n let retry = ECSqlReader._maxRetryCount;\r\n let resp = await execQuery(request);\r\n DbQueryError.throwIfError(resp, request);\r\n while (--retry > 0 && needRetry(resp)) {\r\n resp = await execQuery(request);\r\n this._stats.retryCount += 1;\r\n if (needRetry(resp)) {\r\n updateStats(resp);\r\n }\r\n }\r\n if (retry === 0 && needRetry(resp)) {\r\n throw new Error(\"query too long to execute or server is too busy\");\r\n }\r\n updateStats(resp);\r\n return resp;\r\n }\r\n public formatCurrentRow(onlyReturnObject: boolean = false): any[] | object {\r\n if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {\r\n return this.getRowInternal();\r\n }\r\n const formattedRow = {};\r\n for (const prop of this._props) {\r\n const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;\r\n const val = this.getRowInternal()[prop.index];\r\n if (typeof val !== \"undefined\" && val !== null) {\r\n Object.defineProperty(formattedRow, propName, {\r\n value: val,\r\n enumerable: true,\r\n });\r\n }\r\n }\r\n return formattedRow;\r\n }\r\n public async getMetaData(): Promise<QueryPropertyMetaData[]> {\r\n if (this._props.length === 0) {\r\n await this.fetchRows();\r\n }\r\n return this._props.properties;\r\n }\r\n private async fetchRows() {\r\n this._localOffset = -1;\r\n this._localRows = await this.readRows();\r\n if (this._localRows.length === 0) {\r\n this._done = true;\r\n }\r\n }\r\n public async step(): Promise<boolean> {\r\n if (this._done) {\r\n return false;\r\n }\r\n const cachedRows = this._localRows.length;\r\n if (this._localOffset < cachedRows - 1) {\r\n ++this._localOffset;\r\n } else {\r\n await this.fetchRows();\r\n this._localOffset = 0;\r\n return !this._done;\r\n }\r\n return true;\r\n }\r\n public async toArray(): Promise<any[]> {\r\n const rows = [];\r\n while (await this.step()) {\r\n rows.push(this.formatCurrentRow());\r\n }\r\n return rows;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"ECSqlReader.js","sourceRoot":"","sources":["../../src/ECSqlReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module iModels\n */\nimport { Base64EncodedString } from \"./Base64EncodedString\";\nimport {\n DbQueryError, DbQueryRequest, DbQueryResponse, DbRequestExecutor, DbRequestKind, DbResponseStatus, DbValueFormat, QueryBinder, QueryOptions, QueryOptionsBuilder,\n QueryPropertyMetaData, QueryRowFormat,\n} from \"./ConcurrentQuery\";\n\n/** @beta */\nexport class PropertyMetaDataMap implements Iterable<QueryPropertyMetaData> {\n private _byPropName = new Map<string, number>();\n private _byJsonName = new Map<string, number>();\n private _byNoCase = new Map<string, number>();\n public constructor(public readonly properties: QueryPropertyMetaData[]) {\n for (const property of this.properties) {\n this._byPropName.set(property.name, property.index);\n this._byJsonName.set(property.jsonName, property.index);\n this._byNoCase.set(property.name.toLowerCase(), property.index);\n this._byNoCase.set(property.jsonName.toLowerCase(), property.index);\n }\n }\n public get length(): number { return this.properties.length; }\n\n public [Symbol.iterator](): Iterator<QueryPropertyMetaData, any, undefined> {\n return this.properties[Symbol.iterator]();\n }\n public findByName(name: string): QueryPropertyMetaData | undefined {\n const index = this._byPropName.get(name);\n if (typeof index === \"number\") {\n return this.properties[index];\n }\n return undefined;\n }\n public findByJsonName(name: string): QueryPropertyMetaData | undefined {\n const index = this._byJsonName.get(name);\n if (typeof index === \"number\") {\n return this.properties[index];\n }\n return undefined;\n }\n public findByNoCase(name: string): QueryPropertyMetaData | undefined {\n const index = this._byNoCase.get(name.toLowerCase());\n if (typeof index === \"number\") {\n return this.properties[index];\n }\n return undefined;\n }\n}\n/**\n * @beta\n*/\nexport type QueryValueType = any;\n\n/** @beta */\nexport interface QueryRowProxy {\n toRow(): any;\n toArray(): QueryValueType[];\n getMetaData(): QueryPropertyMetaData[];\n [propertyName: string]: QueryValueType;\n [propertyIndex: number]: QueryValueType;\n}\n\n/** @beta */\nexport interface QueryStats {\n backendCpuTime: number; // Time spent running the query. It exclude query time in queue. Time is in microseconds.\n backendTotalTime: number; // backend total time spent running the query. Time is in milliseconds.\n backendMemUsed: number; // Estimated m emory used for query. Time is in milliseconds.\n backendRowsReturned: number; // Total rows returned by backend.\n totalTime: number; // Round trip time from client perspective.Time is in milliseconds.\n retryCount: number;\n}\n\n/** @beta */\nexport class ECSqlReader {\n private static readonly _maxRetryCount = 10;\n private _localRows: any[] = [];\n private _localOffset: number = 0;\n private _globalOffset: number = -1;\n private _globalCount: number = -1;\n private _done: boolean = false;\n private _globalDone: boolean = false;\n private _props = new PropertyMetaDataMap([]);\n private _param = new QueryBinder().serialize();\n private _lockArgs: boolean = false;\n private _stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };\n private _rowProxy = new Proxy<ECSqlReader>(this, {\n get: (target: ECSqlReader, key: string | Symbol) => {\n if (typeof key === \"string\") {\n const idx = Number.parseInt(key, 10);\n if (!Number.isNaN(idx)) {\n return target.getRowInternal()[idx];\n }\n const prop = target._props.findByNoCase(key);\n if (prop) {\n return target.getRowInternal()[prop.index];\n }\n if (key === \"getMetaData\") {\n return () => target._props.properties;\n }\n if (key === \"toRow\") {\n return () => target.formatCurrentRow(true);\n }\n if (key === \"getArray\" || key === \"toJSON\") {\n return () => this.getRowInternal();\n }\n }\n return undefined;\n },\n has: (target: ECSqlReader, p: string | symbol) => {\n return !target._props.findByNoCase(p as string);\n },\n ownKeys: (target: ECSqlReader) => {\n const keys = [];\n for (const prop of target._props) {\n keys.push(prop.name);\n }\n return keys;\n },\n });\n private _options: QueryOptions = new QueryOptionsBuilder().getOptions();\n /** @internal */\n public constructor(private _executor: DbRequestExecutor<DbQueryRequest, DbQueryResponse>, public readonly query: string, param?: QueryBinder, options?: QueryOptions) {\n if (query.trim().length === 0) {\n throw new Error(\"expecting non-empty ecsql statement\");\n }\n if (param) {\n this._param = param.serialize();\n }\n this.reset(options);\n }\n private static replaceBase64WithUint8Array(row: any) {\n for (const key of Object.keys(row)) {\n const val = row[key];\n if (typeof val === \"string\") {\n if (Base64EncodedString.hasPrefix(val)) {\n row[key] = Base64EncodedString.toUint8Array(val);\n }\n } else if (typeof val === \"object\" && val !== null) {\n this.replaceBase64WithUint8Array(val);\n }\n }\n }\n public setParams(param: QueryBinder) {\n if (this._lockArgs) {\n throw new Error(\"call resetBindings() before setting or changing parameters\");\n }\n this._param = param.serialize();\n }\n public reset(options?: QueryOptions) {\n if (options) {\n this._options = options;\n }\n this._props = new PropertyMetaDataMap([]);\n this._localRows = [];\n this._globalDone = false;\n this._globalOffset = 0;\n this._globalCount = -1;\n if (typeof this._options.rowFormat === \"undefined\")\n this._options.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;\n if (this._options.limit) {\n if (typeof this._options.limit.offset === \"number\" && this._options.limit.offset > 0)\n this._globalOffset = this._options.limit.offset;\n if (typeof this._options.limit.count === \"number\" && this._options.limit.count > 0)\n this._globalCount = this._options.limit.count;\n }\n this._done = false;\n }\n public get current(): QueryRowProxy { return (this._rowProxy as any); }\n // clear all bindings\n public resetBindings() {\n this._param = new QueryBinder().serialize();\n this._lockArgs = false;\n }\n // return if there is any more rows available\n public get done(): boolean { return this._done; }\n public getRowInternal(): any[] {\n if (this._localRows.length <= this._localOffset)\n throw new Error(\"no current row\");\n return this._localRows[this._localOffset] as any[];\n }\n // return performance related statistics for current query.\n public get stats(): QueryStats { return this._stats; }\n private async readRows(): Promise<any[]> {\n if (this._globalDone) {\n return [];\n }\n this._lockArgs = true;\n this._globalOffset += this._localRows.length;\n this._globalCount -= this._localRows.length;\n if (this._globalCount === 0) {\n return [];\n }\n const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames? DbValueFormat.JsNames :DbValueFormat.ECSqlNames;\n const request: DbQueryRequest = {\n ... this._options,\n kind: DbRequestKind.ECSql,\n valueFormat,\n query: this.query,\n args: this._param,\n };\n request.includeMetaData = this._props.length > 0 ? false : true;\n request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };\n const resp = await this.runWithRetry(request);\n this._globalDone = resp.status === DbResponseStatus.Done;\n if (this._props.length === 0 && resp.meta.length > 0) {\n this._props = new PropertyMetaDataMap(resp.meta);\n }\n for (const row of resp.data) {\n ECSqlReader.replaceBase64WithUint8Array(row);\n }\n return resp.data;\n }\n private async runWithRetry(request: DbQueryRequest) {\n const needRetry = (rs: DbQueryResponse) => (rs.status === DbResponseStatus.Partial || rs.status === DbResponseStatus.QueueFull || rs.status === DbResponseStatus.Timeout) && (rs.data.length === 0);\n const updateStats = (rs: DbQueryResponse) => {\n this._stats.backendCpuTime += rs.stats.cpuTime;\n this._stats.backendTotalTime += rs.stats.totalTime;\n this._stats.backendMemUsed += rs.stats.memUsed;\n this._stats.backendRowsReturned += rs.data.length;\n };\n const execQuery = async (req: DbQueryRequest) => {\n const startTime = Date.now();\n const rs = await this._executor.execute(req);\n this.stats.totalTime += (Date.now() - startTime);\n return rs;\n };\n let retry = ECSqlReader._maxRetryCount;\n let resp = await execQuery(request);\n DbQueryError.throwIfError(resp, request);\n while (--retry > 0 && needRetry(resp)) {\n resp = await execQuery(request);\n this._stats.retryCount += 1;\n if (needRetry(resp)) {\n updateStats(resp);\n }\n }\n if (retry === 0 && needRetry(resp)) {\n throw new Error(\"query too long to execute or server is too busy\");\n }\n updateStats(resp);\n return resp;\n }\n public formatCurrentRow(onlyReturnObject: boolean = false): any[] | object {\n if (!onlyReturnObject && this._options.rowFormat === QueryRowFormat.UseECSqlPropertyIndexes) {\n return this.getRowInternal();\n }\n const formattedRow = {};\n for (const prop of this._props) {\n const propName = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? prop.jsonName : prop.name;\n const val = this.getRowInternal()[prop.index];\n if (typeof val !== \"undefined\" && val !== null) {\n Object.defineProperty(formattedRow, propName, {\n value: val,\n enumerable: true,\n });\n }\n }\n return formattedRow;\n }\n public async getMetaData(): Promise<QueryPropertyMetaData[]> {\n if (this._props.length === 0) {\n await this.fetchRows();\n }\n return this._props.properties;\n }\n private async fetchRows() {\n this._localOffset = -1;\n this._localRows = await this.readRows();\n if (this._localRows.length === 0) {\n this._done = true;\n }\n }\n public async step(): Promise<boolean> {\n if (this._done) {\n return false;\n }\n const cachedRows = this._localRows.length;\n if (this._localOffset < cachedRows - 1) {\n ++this._localOffset;\n } else {\n await this.fetchRows();\n this._localOffset = 0;\n return !this._done;\n }\n return true;\n }\n public async toArray(): Promise<any[]> {\n const rows = [];\n while (await this.step()) {\n rows.push(this.formatCurrentRow());\n }\n return rows;\n }\n}\n\n"]}