@itwin/core-common 3.5.0-dev.5 → 3.5.0-dev.8

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 (929) hide show
  1. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  2. package/lib/cjs/AmbientOcclusion.js +55 -55
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  5. package/lib/cjs/AnalysisStyle.js +165 -165
  6. package/lib/cjs/AnalysisStyle.js.map +1 -1
  7. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  8. package/lib/cjs/AuthorizationClient.js +9 -9
  9. package/lib/cjs/AuthorizationClient.js.map +1 -1
  10. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  11. package/lib/cjs/BackgroundMapProvider.js +68 -68
  12. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  13. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  14. package/lib/cjs/BackgroundMapSettings.js +156 -156
  15. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  16. package/lib/cjs/Base64EncodedString.d.ts +30 -30
  17. package/lib/cjs/Base64EncodedString.js +56 -56
  18. package/lib/cjs/Base64EncodedString.js.map +1 -1
  19. package/lib/cjs/BlobReader.d.ts +31 -31
  20. package/lib/cjs/BlobReader.js +84 -84
  21. package/lib/cjs/BlobReader.js.map +1 -1
  22. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  23. package/lib/cjs/BriefcaseTypes.js +95 -95
  24. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  25. package/lib/cjs/Camera.d.ts +42 -42
  26. package/lib/cjs/Camera.js +62 -62
  27. package/lib/cjs/Camera.js.map +1 -1
  28. package/lib/cjs/ChangedElements.d.ts +83 -83
  29. package/lib/cjs/ChangedElements.js +21 -21
  30. package/lib/cjs/ChangedElements.js.map +1 -1
  31. package/lib/cjs/ChangedEntities.d.ts +45 -45
  32. package/lib/cjs/ChangedEntities.js +9 -9
  33. package/lib/cjs/ChangedEntities.js.map +1 -1
  34. package/lib/cjs/ChangesetProps.d.ts +98 -98
  35. package/lib/cjs/ChangesetProps.js +22 -22
  36. package/lib/cjs/ChangesetProps.js.map +1 -1
  37. package/lib/cjs/ClipStyle.d.ts +89 -89
  38. package/lib/cjs/ClipStyle.js +123 -123
  39. package/lib/cjs/ClipStyle.js.map +1 -1
  40. package/lib/cjs/CloudStorage.d.ts +62 -62
  41. package/lib/cjs/CloudStorage.js +113 -113
  42. package/lib/cjs/CloudStorage.js.map +1 -1
  43. package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
  44. package/lib/cjs/CloudStorageTileCache.js +66 -66
  45. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  46. package/lib/cjs/Code.d.ts +256 -256
  47. package/lib/cjs/Code.js +281 -281
  48. package/lib/cjs/Code.js.map +1 -1
  49. package/lib/cjs/ColorByName.d.ts +161 -161
  50. package/lib/cjs/ColorByName.js +169 -169
  51. package/lib/cjs/ColorByName.js.map +1 -1
  52. package/lib/cjs/ColorDef.d.ts +208 -208
  53. package/lib/cjs/ColorDef.js +571 -571
  54. package/lib/cjs/ColorDef.js.map +1 -1
  55. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  56. package/lib/cjs/CommonLoggerCategory.js +26 -26
  57. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  58. package/lib/cjs/ConcurrentQuery.d.ts +241 -241
  59. package/lib/cjs/ConcurrentQuery.js +380 -380
  60. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  61. package/lib/cjs/ContextRealityModel.d.ts +276 -276
  62. package/lib/cjs/ContextRealityModel.js +358 -358
  63. package/lib/cjs/ContextRealityModel.js.map +1 -1
  64. package/lib/cjs/DisplayStyleSettings.d.ts +584 -584
  65. package/lib/cjs/DisplayStyleSettings.js +981 -981
  66. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  67. package/lib/cjs/ECSchemaProps.d.ts +39 -39
  68. package/lib/cjs/ECSchemaProps.js +9 -9
  69. package/lib/cjs/ECSchemaProps.js.map +1 -1
  70. package/lib/cjs/ECSqlReader.d.ts +70 -70
  71. package/lib/cjs/ECSqlReader.js +280 -280
  72. package/lib/cjs/ECSqlReader.js.map +1 -1
  73. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  74. package/lib/cjs/ECSqlTypes.js +189 -189
  75. package/lib/cjs/ECSqlTypes.js.map +1 -1
  76. package/lib/cjs/ElementProps.d.ts +476 -476
  77. package/lib/cjs/ElementProps.js +99 -99
  78. package/lib/cjs/ElementProps.js.map +1 -1
  79. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  80. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  81. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  82. package/lib/cjs/EntityProps.d.ts +176 -176
  83. package/lib/cjs/EntityProps.js +112 -112
  84. package/lib/cjs/EntityProps.js.map +1 -1
  85. package/lib/cjs/Environment.d.ts +61 -61
  86. package/lib/cjs/Environment.js +73 -73
  87. package/lib/cjs/Environment.js.map +1 -1
  88. package/lib/cjs/FeatureGates.d.ts +31 -31
  89. package/lib/cjs/FeatureGates.js +55 -55
  90. package/lib/cjs/FeatureGates.js.map +1 -1
  91. package/lib/cjs/FeatureIndex.d.ts +39 -39
  92. package/lib/cjs/FeatureIndex.js +63 -63
  93. package/lib/cjs/FeatureIndex.js.map +1 -1
  94. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  95. package/lib/cjs/FeatureSymbology.js +614 -614
  96. package/lib/cjs/FeatureSymbology.js.map +1 -1
  97. package/lib/cjs/FeatureTable.d.ts +141 -141
  98. package/lib/cjs/FeatureTable.js +278 -278
  99. package/lib/cjs/FeatureTable.js.map +1 -1
  100. package/lib/cjs/Fonts.d.ts +51 -51
  101. package/lib/cjs/Fonts.js +53 -53
  102. package/lib/cjs/Fonts.js.map +1 -1
  103. package/lib/cjs/Frustum.d.ts +114 -114
  104. package/lib/cjs/Frustum.js +292 -292
  105. package/lib/cjs/Frustum.js.map +1 -1
  106. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  107. package/lib/cjs/GeoCoordinateServices.js +80 -80
  108. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  109. package/lib/cjs/GeometryContainment.d.ts +28 -28
  110. package/lib/cjs/GeometryContainment.js +9 -9
  111. package/lib/cjs/GeometryContainment.js.map +1 -1
  112. package/lib/cjs/GeometryParams.d.ts +130 -130
  113. package/lib/cjs/GeometryParams.js +174 -174
  114. package/lib/cjs/GeometryParams.js.map +1 -1
  115. package/lib/cjs/GeometrySummary.d.ts +45 -45
  116. package/lib/cjs/GeometrySummary.js +23 -23
  117. package/lib/cjs/GeometrySummary.js.map +1 -1
  118. package/lib/cjs/Gradient.d.ts +139 -139
  119. package/lib/cjs/Gradient.js +455 -455
  120. package/lib/cjs/Gradient.js.map +1 -1
  121. package/lib/cjs/GraphicParams.d.ts +58 -58
  122. package/lib/cjs/GraphicParams.js +85 -85
  123. package/lib/cjs/GraphicParams.js.map +1 -1
  124. package/lib/cjs/GroundPlane.d.ts +52 -52
  125. package/lib/cjs/GroundPlane.js +64 -64
  126. package/lib/cjs/GroundPlane.js.map +1 -1
  127. package/lib/cjs/HSLColor.d.ts +20 -20
  128. package/lib/cjs/HSLColor.js +32 -32
  129. package/lib/cjs/HSLColor.js.map +1 -1
  130. package/lib/cjs/HSVColor.d.ts +30 -30
  131. package/lib/cjs/HSVColor.js +59 -59
  132. package/lib/cjs/HSVColor.js.map +1 -1
  133. package/lib/cjs/HiddenLine.d.ts +97 -97
  134. package/lib/cjs/HiddenLine.js +162 -162
  135. package/lib/cjs/HiddenLine.js.map +1 -1
  136. package/lib/cjs/Hilite.d.ts +50 -50
  137. package/lib/cjs/Hilite.js +64 -64
  138. package/lib/cjs/Hilite.js.map +1 -1
  139. package/lib/cjs/IModel.d.ts +359 -359
  140. package/lib/cjs/IModel.js +347 -347
  141. package/lib/cjs/IModel.js.map +1 -1
  142. package/lib/cjs/IModelError.d.ts +36 -36
  143. package/lib/cjs/IModelError.js +72 -72
  144. package/lib/cjs/IModelError.js.map +1 -1
  145. package/lib/cjs/IModelVersion.d.ts +68 -68
  146. package/lib/cjs/IModelVersion.js +79 -79
  147. package/lib/cjs/IModelVersion.js.map +1 -1
  148. package/lib/cjs/Image.d.ts +86 -86
  149. package/lib/cjs/Image.js +128 -128
  150. package/lib/cjs/Image.js.map +1 -1
  151. package/lib/cjs/IpcAppProps.d.ts +124 -124
  152. package/lib/cjs/IpcAppProps.js +18 -18
  153. package/lib/cjs/IpcAppProps.js.map +1 -1
  154. package/lib/cjs/LightSettings.d.ts +224 -224
  155. package/lib/cjs/LightSettings.js +309 -309
  156. package/lib/cjs/LightSettings.js.map +1 -1
  157. package/lib/cjs/LinePixels.d.ts +34 -34
  158. package/lib/cjs/LinePixels.js +42 -42
  159. package/lib/cjs/LinePixels.js.map +1 -1
  160. package/lib/cjs/Localization.d.ts +111 -111
  161. package/lib/cjs/Localization.js +26 -26
  162. package/lib/cjs/Localization.js.map +1 -1
  163. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  164. package/lib/cjs/MapImagerySettings.js +80 -80
  165. package/lib/cjs/MapImagerySettings.js.map +1 -1
  166. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  167. package/lib/cjs/MapLayerSettings.js +411 -411
  168. package/lib/cjs/MapLayerSettings.js.map +1 -1
  169. package/lib/cjs/MassProperties.d.ts +64 -64
  170. package/lib/cjs/MassProperties.js +23 -23
  171. package/lib/cjs/MassProperties.js.map +1 -1
  172. package/lib/cjs/MaterialProps.d.ts +118 -118
  173. package/lib/cjs/MaterialProps.js +23 -23
  174. package/lib/cjs/MaterialProps.js.map +1 -1
  175. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  176. package/lib/cjs/ModelClipGroup.js +98 -98
  177. package/lib/cjs/ModelClipGroup.js.map +1 -1
  178. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  179. package/lib/cjs/ModelGeometryChanges.js +83 -83
  180. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  181. package/lib/cjs/ModelProps.d.ts +66 -66
  182. package/lib/cjs/ModelProps.js +9 -9
  183. package/lib/cjs/ModelProps.js.map +1 -1
  184. package/lib/cjs/NativeAppProps.d.ts +122 -122
  185. package/lib/cjs/NativeAppProps.js +30 -30
  186. package/lib/cjs/NativeAppProps.js.map +1 -1
  187. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  188. package/lib/cjs/OctEncodedNormal.js +98 -98
  189. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  190. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  191. package/lib/cjs/PlanProjectionSettings.js +63 -63
  192. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  193. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  194. package/lib/cjs/PlanarClipMask.js +136 -136
  195. package/lib/cjs/PlanarClipMask.js.map +1 -1
  196. package/lib/cjs/QPoint.d.ts +479 -479
  197. package/lib/cjs/QPoint.js +826 -826
  198. package/lib/cjs/QPoint.js.map +1 -1
  199. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  200. package/lib/cjs/RealityDataAccessProps.js +19 -19
  201. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  202. package/lib/cjs/RealityModelDisplaySettings.d.ts +118 -118
  203. package/lib/cjs/RealityModelDisplaySettings.js +114 -114
  204. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  205. package/lib/cjs/Render.d.ts +89 -89
  206. package/lib/cjs/Render.js +177 -177
  207. package/lib/cjs/Render.js.map +1 -1
  208. package/lib/cjs/RenderMaterial.d.ts +58 -58
  209. package/lib/cjs/RenderMaterial.js +76 -76
  210. package/lib/cjs/RenderMaterial.js.map +1 -1
  211. package/lib/cjs/RenderSchedule.d.ts +540 -540
  212. package/lib/cjs/RenderSchedule.js +1000 -1000
  213. package/lib/cjs/RenderTexture.d.ts +70 -70
  214. package/lib/cjs/RenderTexture.js +59 -59
  215. package/lib/cjs/RenderTexture.js.map +1 -1
  216. package/lib/cjs/RgbColor.d.ts +47 -47
  217. package/lib/cjs/RgbColor.js +77 -77
  218. package/lib/cjs/RgbColor.js.map +1 -1
  219. package/lib/cjs/RpcInterface.d.ts +33 -33
  220. package/lib/cjs/RpcInterface.js +137 -137
  221. package/lib/cjs/RpcInterface.js.map +1 -1
  222. package/lib/cjs/RpcManager.d.ts +40 -40
  223. package/lib/cjs/RpcManager.js +55 -55
  224. package/lib/cjs/RpcManager.js.map +1 -1
  225. package/lib/cjs/SessionProps.d.ts +16 -16
  226. package/lib/cjs/SessionProps.js +9 -9
  227. package/lib/cjs/SessionProps.js.map +1 -1
  228. package/lib/cjs/SkyBox.d.ts +215 -215
  229. package/lib/cjs/SkyBox.js +210 -210
  230. package/lib/cjs/SkyBox.js.map +1 -1
  231. package/lib/cjs/Snapping.d.ts +49 -49
  232. package/lib/cjs/Snapping.js +9 -9
  233. package/lib/cjs/Snapping.js.map +1 -1
  234. package/lib/cjs/SolarCalculate.d.ts +27 -27
  235. package/lib/cjs/SolarCalculate.js +211 -211
  236. package/lib/cjs/SolarCalculate.js.map +1 -1
  237. package/lib/cjs/SolarShadows.d.ts +35 -35
  238. package/lib/cjs/SolarShadows.js +62 -62
  239. package/lib/cjs/SolarShadows.js.map +1 -1
  240. package/lib/cjs/SpatialClassification.d.ts +208 -208
  241. package/lib/cjs/SpatialClassification.js +340 -340
  242. package/lib/cjs/SpatialClassification.js.map +1 -1
  243. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  244. package/lib/cjs/SubCategoryAppearance.js +96 -96
  245. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  246. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  247. package/lib/cjs/SubCategoryOverride.js +104 -104
  248. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  249. package/lib/cjs/TerrainSettings.d.ts +82 -82
  250. package/lib/cjs/TerrainSettings.js +102 -102
  251. package/lib/cjs/TerrainSettings.js.map +1 -1
  252. package/lib/cjs/TextureMapping.d.ts +101 -101
  253. package/lib/cjs/TextureMapping.js +174 -174
  254. package/lib/cjs/TextureMapping.js.map +1 -1
  255. package/lib/cjs/TextureProps.d.ts +65 -65
  256. package/lib/cjs/TextureProps.js +28 -28
  257. package/lib/cjs/TextureProps.js.map +1 -1
  258. package/lib/cjs/ThematicDisplay.d.ts +230 -230
  259. package/lib/cjs/ThematicDisplay.js +344 -344
  260. package/lib/cjs/ThematicDisplay.js.map +1 -1
  261. package/lib/cjs/Thumbnail.d.ts +26 -26
  262. package/lib/cjs/Thumbnail.js +9 -9
  263. package/lib/cjs/Thumbnail.js.map +1 -1
  264. package/lib/cjs/TileProps.d.ts +82 -82
  265. package/lib/cjs/TileProps.js +29 -29
  266. package/lib/cjs/TileProps.js.map +1 -1
  267. package/lib/cjs/Tween.d.ts +191 -191
  268. package/lib/cjs/Tween.js +570 -570
  269. package/lib/cjs/Tween.js.map +1 -1
  270. package/lib/cjs/TxnAction.d.ts +21 -21
  271. package/lib/cjs/TxnAction.js +29 -29
  272. package/lib/cjs/TxnAction.js.map +1 -1
  273. package/lib/cjs/ViewDetails.d.ts +125 -125
  274. package/lib/cjs/ViewDetails.js +158 -158
  275. package/lib/cjs/ViewDetails.js.map +1 -1
  276. package/lib/cjs/ViewFlags.d.ts +291 -291
  277. package/lib/cjs/ViewFlags.js +368 -368
  278. package/lib/cjs/ViewFlags.js.map +1 -1
  279. package/lib/cjs/ViewProps.d.ts +205 -205
  280. package/lib/cjs/ViewProps.js +9 -9
  281. package/lib/cjs/ViewProps.js.map +1 -1
  282. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  283. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  284. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  285. package/lib/cjs/core-common.d.ts +241 -241
  286. package/lib/cjs/core-common.js +257 -257
  287. package/lib/cjs/core-common.js.map +1 -1
  288. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  289. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  290. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  291. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  292. package/lib/cjs/domains/GenericElementProps.js +9 -9
  293. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  294. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  295. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  296. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  297. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  298. package/lib/cjs/geometry/AreaPattern.js +204 -204
  299. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  300. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  301. package/lib/cjs/geometry/BoundingSphere.js +30 -30
  302. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  303. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  304. package/lib/cjs/geometry/Cartographic.js +345 -345
  305. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  306. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  307. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  308. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  309. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  310. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  311. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  312. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  313. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  314. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  315. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  316. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  317. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  318. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  319. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  320. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  321. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  322. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  323. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  324. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  325. package/lib/cjs/geometry/GeometryStream.js +469 -469
  326. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  327. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  328. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  329. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  330. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  331. package/lib/cjs/geometry/LineStyle.js +129 -129
  332. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  333. package/lib/cjs/geometry/Placement.d.ts +95 -95
  334. package/lib/cjs/geometry/Placement.js +131 -131
  335. package/lib/cjs/geometry/Placement.js.map +1 -1
  336. package/lib/cjs/geometry/Projection.d.ts +251 -251
  337. package/lib/cjs/geometry/Projection.js +198 -198
  338. package/lib/cjs/geometry/Projection.js.map +1 -1
  339. package/lib/cjs/geometry/TextString.d.ts +55 -55
  340. package/lib/cjs/geometry/TextString.js +65 -65
  341. package/lib/cjs/geometry/TextString.js.map +1 -1
  342. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  343. package/lib/cjs/ipc/IpcSession.js +27 -27
  344. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  345. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  346. package/lib/cjs/ipc/IpcSocket.js +16 -16
  347. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  348. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
  349. package/lib/cjs/ipc/IpcWebSocket.js +151 -151
  350. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  351. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  352. package/lib/cjs/ipc/IpcWebSocketTransport.js +158 -158
  353. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  354. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  355. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  356. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  357. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +75 -75
  358. package/lib/cjs/rpc/IModelReadRpcInterface.js +115 -115
  359. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  360. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
  361. package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
  362. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  363. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  364. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  365. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  366. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  367. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  368. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  369. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  370. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  371. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  372. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  373. package/lib/cjs/rpc/core/RpcConfiguration.js +192 -192
  374. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  375. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
  376. package/lib/cjs/rpc/core/RpcConstants.js +103 -103
  377. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  378. package/lib/cjs/rpc/core/RpcControl.d.ts +52 -52
  379. package/lib/cjs/rpc/core/RpcControl.js +149 -149
  380. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  381. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  382. package/lib/cjs/rpc/core/RpcInvocation.js +257 -257
  383. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  384. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +36 -36
  385. package/lib/cjs/rpc/core/RpcMarshaling.js +153 -153
  386. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  387. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  388. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  389. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  390. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  391. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  392. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  393. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  394. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  395. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  396. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  397. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  398. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  399. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  400. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  401. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  402. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  403. package/lib/cjs/rpc/core/RpcRequest.js +477 -477
  404. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  405. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  406. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  407. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  408. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  409. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  410. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  411. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  412. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  413. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  414. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  415. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  416. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  417. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  418. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
  419. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  420. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  421. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  422. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  423. package/lib/cjs/rpc/web/RpcMultipart.d.ts +31 -31
  424. package/lib/cjs/rpc/web/RpcMultipart.js +45 -45
  425. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  426. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +17 -17
  427. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  428. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  429. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  430. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
  431. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  432. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +71 -71
  433. package/lib/cjs/rpc/web/WebAppRpcRequest.js +374 -374
  434. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  435. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  436. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +359 -359
  437. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  438. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  439. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  440. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  441. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  442. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  443. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  444. package/lib/cjs/tile/ElementGraphics.d.ts +134 -134
  445. package/lib/cjs/tile/ElementGraphics.js +9 -9
  446. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  447. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  448. package/lib/cjs/tile/GltfTileIO.js +109 -109
  449. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  450. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  451. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  452. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  453. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  454. package/lib/cjs/tile/IModelTileIO.js +95 -95
  455. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  456. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  457. package/lib/cjs/tile/PntsTileIO.js +26 -26
  458. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  459. package/lib/cjs/tile/TileIO.d.ts +66 -66
  460. package/lib/cjs/tile/TileIO.js +118 -118
  461. package/lib/cjs/tile/TileIO.js.map +1 -1
  462. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  463. package/lib/cjs/tile/TileMetadata.js +676 -676
  464. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  465. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  466. package/lib/esm/AmbientOcclusion.js +52 -52
  467. package/lib/esm/AmbientOcclusion.js.map +1 -1
  468. package/lib/esm/AnalysisStyle.d.ts +134 -134
  469. package/lib/esm/AnalysisStyle.js +159 -159
  470. package/lib/esm/AnalysisStyle.js.map +1 -1
  471. package/lib/esm/AuthorizationClient.d.ts +11 -11
  472. package/lib/esm/AuthorizationClient.js +8 -8
  473. package/lib/esm/AuthorizationClient.js.map +1 -1
  474. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  475. package/lib/esm/BackgroundMapProvider.js +64 -64
  476. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  477. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  478. package/lib/esm/BackgroundMapSettings.js +152 -152
  479. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  480. package/lib/esm/Base64EncodedString.d.ts +30 -30
  481. package/lib/esm/Base64EncodedString.js +53 -53
  482. package/lib/esm/Base64EncodedString.js.map +1 -1
  483. package/lib/esm/BlobReader.d.ts +31 -31
  484. package/lib/esm/BlobReader.js +79 -79
  485. package/lib/esm/BlobReader.js.map +1 -1
  486. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  487. package/lib/esm/BriefcaseTypes.js +92 -92
  488. package/lib/esm/BriefcaseTypes.js.map +1 -1
  489. package/lib/esm/Camera.d.ts +42 -42
  490. package/lib/esm/Camera.js +58 -58
  491. package/lib/esm/Camera.js.map +1 -1
  492. package/lib/esm/ChangedElements.d.ts +83 -83
  493. package/lib/esm/ChangedElements.js +18 -18
  494. package/lib/esm/ChangedElements.js.map +1 -1
  495. package/lib/esm/ChangedEntities.d.ts +45 -45
  496. package/lib/esm/ChangedEntities.js +8 -8
  497. package/lib/esm/ChangedEntities.js.map +1 -1
  498. package/lib/esm/ChangesetProps.d.ts +98 -98
  499. package/lib/esm/ChangesetProps.js +19 -19
  500. package/lib/esm/ChangesetProps.js.map +1 -1
  501. package/lib/esm/ClipStyle.d.ts +89 -89
  502. package/lib/esm/ClipStyle.js +118 -118
  503. package/lib/esm/ClipStyle.js.map +1 -1
  504. package/lib/esm/CloudStorage.d.ts +62 -62
  505. package/lib/esm/CloudStorage.js +109 -109
  506. package/lib/esm/CloudStorage.js.map +1 -1
  507. package/lib/esm/CloudStorageTileCache.d.ts +27 -27
  508. package/lib/esm/CloudStorageTileCache.js +62 -62
  509. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  510. package/lib/esm/Code.d.ts +256 -256
  511. package/lib/esm/Code.js +276 -276
  512. package/lib/esm/Code.js.map +1 -1
  513. package/lib/esm/ColorByName.d.ts +161 -161
  514. package/lib/esm/ColorByName.js +166 -166
  515. package/lib/esm/ColorByName.js.map +1 -1
  516. package/lib/esm/ColorDef.d.ts +208 -208
  517. package/lib/esm/ColorDef.js +567 -567
  518. package/lib/esm/ColorDef.js.map +1 -1
  519. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  520. package/lib/esm/CommonLoggerCategory.js +23 -23
  521. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  522. package/lib/esm/ConcurrentQuery.d.ts +241 -241
  523. package/lib/esm/ConcurrentQuery.js +373 -373
  524. package/lib/esm/ConcurrentQuery.js.map +1 -1
  525. package/lib/esm/ContextRealityModel.d.ts +276 -276
  526. package/lib/esm/ContextRealityModel.js +353 -353
  527. package/lib/esm/ContextRealityModel.js.map +1 -1
  528. package/lib/esm/DisplayStyleSettings.d.ts +584 -584
  529. package/lib/esm/DisplayStyleSettings.js +976 -976
  530. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  531. package/lib/esm/ECSchemaProps.d.ts +39 -39
  532. package/lib/esm/ECSchemaProps.js +8 -8
  533. package/lib/esm/ECSchemaProps.js.map +1 -1
  534. package/lib/esm/ECSqlReader.d.ts +70 -70
  535. package/lib/esm/ECSqlReader.js +275 -275
  536. package/lib/esm/ECSqlReader.js.map +1 -1
  537. package/lib/esm/ECSqlTypes.d.ts +128 -128
  538. package/lib/esm/ECSqlTypes.js +185 -185
  539. package/lib/esm/ECSqlTypes.js.map +1 -1
  540. package/lib/esm/ElementProps.d.ts +476 -476
  541. package/lib/esm/ElementProps.js +92 -92
  542. package/lib/esm/ElementProps.js.map +1 -1
  543. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  544. package/lib/esm/EmphasizeElementsProps.js +22 -22
  545. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  546. package/lib/esm/EntityProps.d.ts +176 -176
  547. package/lib/esm/EntityProps.js +107 -107
  548. package/lib/esm/EntityProps.js.map +1 -1
  549. package/lib/esm/Environment.d.ts +61 -61
  550. package/lib/esm/Environment.js +69 -69
  551. package/lib/esm/Environment.js.map +1 -1
  552. package/lib/esm/FeatureGates.d.ts +31 -31
  553. package/lib/esm/FeatureGates.js +51 -51
  554. package/lib/esm/FeatureGates.js.map +1 -1
  555. package/lib/esm/FeatureIndex.d.ts +39 -39
  556. package/lib/esm/FeatureIndex.js +57 -57
  557. package/lib/esm/FeatureIndex.js.map +1 -1
  558. package/lib/esm/FeatureSymbology.d.ts +444 -444
  559. package/lib/esm/FeatureSymbology.js +609 -609
  560. package/lib/esm/FeatureSymbology.js.map +1 -1
  561. package/lib/esm/FeatureTable.d.ts +141 -141
  562. package/lib/esm/FeatureTable.js +272 -272
  563. package/lib/esm/FeatureTable.js.map +1 -1
  564. package/lib/esm/Fonts.d.ts +51 -51
  565. package/lib/esm/Fonts.js +49 -49
  566. package/lib/esm/Fonts.js.map +1 -1
  567. package/lib/esm/Frustum.d.ts +114 -114
  568. package/lib/esm/Frustum.js +288 -288
  569. package/lib/esm/Frustum.js.map +1 -1
  570. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  571. package/lib/esm/GeoCoordinateServices.js +76 -76
  572. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  573. package/lib/esm/GeometryContainment.d.ts +28 -28
  574. package/lib/esm/GeometryContainment.js +8 -8
  575. package/lib/esm/GeometryContainment.js.map +1 -1
  576. package/lib/esm/GeometryParams.d.ts +130 -130
  577. package/lib/esm/GeometryParams.js +170 -170
  578. package/lib/esm/GeometryParams.js.map +1 -1
  579. package/lib/esm/GeometrySummary.d.ts +45 -45
  580. package/lib/esm/GeometrySummary.js +20 -20
  581. package/lib/esm/GeometrySummary.js.map +1 -1
  582. package/lib/esm/Gradient.d.ts +139 -139
  583. package/lib/esm/Gradient.js +452 -452
  584. package/lib/esm/Gradient.js.map +1 -1
  585. package/lib/esm/GraphicParams.d.ts +58 -58
  586. package/lib/esm/GraphicParams.js +81 -81
  587. package/lib/esm/GraphicParams.js.map +1 -1
  588. package/lib/esm/GroundPlane.d.ts +52 -52
  589. package/lib/esm/GroundPlane.js +60 -60
  590. package/lib/esm/GroundPlane.js.map +1 -1
  591. package/lib/esm/HSLColor.d.ts +20 -20
  592. package/lib/esm/HSLColor.js +28 -28
  593. package/lib/esm/HSLColor.js.map +1 -1
  594. package/lib/esm/HSVColor.d.ts +30 -30
  595. package/lib/esm/HSVColor.js +55 -55
  596. package/lib/esm/HSVColor.js.map +1 -1
  597. package/lib/esm/HiddenLine.d.ts +97 -97
  598. package/lib/esm/HiddenLine.js +159 -159
  599. package/lib/esm/HiddenLine.js.map +1 -1
  600. package/lib/esm/Hilite.d.ts +50 -50
  601. package/lib/esm/Hilite.js +61 -61
  602. package/lib/esm/Hilite.js.map +1 -1
  603. package/lib/esm/IModel.d.ts +359 -359
  604. package/lib/esm/IModel.js +342 -342
  605. package/lib/esm/IModel.js.map +1 -1
  606. package/lib/esm/IModelError.d.ts +36 -36
  607. package/lib/esm/IModelError.js +55 -55
  608. package/lib/esm/IModelError.js.map +1 -1
  609. package/lib/esm/IModelVersion.d.ts +68 -68
  610. package/lib/esm/IModelVersion.js +75 -75
  611. package/lib/esm/IModelVersion.js.map +1 -1
  612. package/lib/esm/Image.d.ts +86 -86
  613. package/lib/esm/Image.js +120 -120
  614. package/lib/esm/Image.js.map +1 -1
  615. package/lib/esm/IpcAppProps.d.ts +124 -124
  616. package/lib/esm/IpcAppProps.js +15 -15
  617. package/lib/esm/IpcAppProps.js.map +1 -1
  618. package/lib/esm/LightSettings.d.ts +224 -224
  619. package/lib/esm/LightSettings.js +301 -301
  620. package/lib/esm/LightSettings.js.map +1 -1
  621. package/lib/esm/LinePixels.d.ts +34 -34
  622. package/lib/esm/LinePixels.js +39 -39
  623. package/lib/esm/LinePixels.js.map +1 -1
  624. package/lib/esm/Localization.d.ts +111 -111
  625. package/lib/esm/Localization.js +22 -22
  626. package/lib/esm/Localization.js.map +1 -1
  627. package/lib/esm/MapImagerySettings.d.ts +62 -62
  628. package/lib/esm/MapImagerySettings.js +76 -76
  629. package/lib/esm/MapImagerySettings.js.map +1 -1
  630. package/lib/esm/MapLayerSettings.d.ts +272 -272
  631. package/lib/esm/MapLayerSettings.js +403 -403
  632. package/lib/esm/MapLayerSettings.js.map +1 -1
  633. package/lib/esm/MassProperties.d.ts +64 -64
  634. package/lib/esm/MassProperties.js +20 -20
  635. package/lib/esm/MassProperties.js.map +1 -1
  636. package/lib/esm/MaterialProps.d.ts +118 -118
  637. package/lib/esm/MaterialProps.js +20 -20
  638. package/lib/esm/MaterialProps.js.map +1 -1
  639. package/lib/esm/ModelClipGroup.d.ts +67 -67
  640. package/lib/esm/ModelClipGroup.js +93 -93
  641. package/lib/esm/ModelClipGroup.js.map +1 -1
  642. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  643. package/lib/esm/ModelGeometryChanges.js +80 -80
  644. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  645. package/lib/esm/ModelProps.d.ts +66 -66
  646. package/lib/esm/ModelProps.js +8 -8
  647. package/lib/esm/ModelProps.js.map +1 -1
  648. package/lib/esm/NativeAppProps.d.ts +122 -122
  649. package/lib/esm/NativeAppProps.js +27 -27
  650. package/lib/esm/NativeAppProps.js.map +1 -1
  651. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  652. package/lib/esm/OctEncodedNormal.js +93 -93
  653. package/lib/esm/OctEncodedNormal.js.map +1 -1
  654. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  655. package/lib/esm/PlanProjectionSettings.js +59 -59
  656. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  657. package/lib/esm/PlanarClipMask.d.ts +177 -177
  658. package/lib/esm/PlanarClipMask.js +132 -132
  659. package/lib/esm/PlanarClipMask.js.map +1 -1
  660. package/lib/esm/QPoint.d.ts +479 -479
  661. package/lib/esm/QPoint.js +815 -815
  662. package/lib/esm/QPoint.js.map +1 -1
  663. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  664. package/lib/esm/RealityDataAccessProps.js +16 -16
  665. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  666. package/lib/esm/RealityModelDisplaySettings.d.ts +118 -118
  667. package/lib/esm/RealityModelDisplaySettings.js +109 -109
  668. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  669. package/lib/esm/Render.d.ts +89 -89
  670. package/lib/esm/Render.js +165 -165
  671. package/lib/esm/Render.js.map +1 -1
  672. package/lib/esm/RenderMaterial.d.ts +58 -58
  673. package/lib/esm/RenderMaterial.js +72 -72
  674. package/lib/esm/RenderMaterial.js.map +1 -1
  675. package/lib/esm/RenderSchedule.d.ts +540 -540
  676. package/lib/esm/RenderSchedule.js +997 -997
  677. package/lib/esm/RenderTexture.d.ts +70 -70
  678. package/lib/esm/RenderTexture.js +55 -55
  679. package/lib/esm/RenderTexture.js.map +1 -1
  680. package/lib/esm/RgbColor.d.ts +47 -47
  681. package/lib/esm/RgbColor.js +73 -73
  682. package/lib/esm/RgbColor.js.map +1 -1
  683. package/lib/esm/RpcInterface.d.ts +33 -33
  684. package/lib/esm/RpcInterface.js +133 -133
  685. package/lib/esm/RpcInterface.js.map +1 -1
  686. package/lib/esm/RpcManager.d.ts +40 -40
  687. package/lib/esm/RpcManager.js +51 -51
  688. package/lib/esm/RpcManager.js.map +1 -1
  689. package/lib/esm/SessionProps.d.ts +16 -16
  690. package/lib/esm/SessionProps.js +8 -8
  691. package/lib/esm/SessionProps.js.map +1 -1
  692. package/lib/esm/SkyBox.d.ts +215 -215
  693. package/lib/esm/SkyBox.js +203 -203
  694. package/lib/esm/SkyBox.js.map +1 -1
  695. package/lib/esm/Snapping.d.ts +49 -49
  696. package/lib/esm/Snapping.js +8 -8
  697. package/lib/esm/Snapping.js.map +1 -1
  698. package/lib/esm/SolarCalculate.d.ts +27 -27
  699. package/lib/esm/SolarCalculate.js +204 -204
  700. package/lib/esm/SolarCalculate.js.map +1 -1
  701. package/lib/esm/SolarShadows.d.ts +35 -35
  702. package/lib/esm/SolarShadows.js +58 -58
  703. package/lib/esm/SolarShadows.js.map +1 -1
  704. package/lib/esm/SpatialClassification.d.ts +208 -208
  705. package/lib/esm/SpatialClassification.js +334 -334
  706. package/lib/esm/SpatialClassification.js.map +1 -1
  707. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  708. package/lib/esm/SubCategoryAppearance.js +92 -92
  709. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  710. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  711. package/lib/esm/SubCategoryOverride.js +100 -100
  712. package/lib/esm/SubCategoryOverride.js.map +1 -1
  713. package/lib/esm/TerrainSettings.d.ts +82 -82
  714. package/lib/esm/TerrainSettings.js +98 -98
  715. package/lib/esm/TerrainSettings.js.map +1 -1
  716. package/lib/esm/TextureMapping.d.ts +101 -101
  717. package/lib/esm/TextureMapping.js +170 -170
  718. package/lib/esm/TextureMapping.js.map +1 -1
  719. package/lib/esm/TextureProps.d.ts +65 -65
  720. package/lib/esm/TextureProps.js +25 -25
  721. package/lib/esm/TextureProps.js.map +1 -1
  722. package/lib/esm/ThematicDisplay.d.ts +230 -230
  723. package/lib/esm/ThematicDisplay.js +337 -337
  724. package/lib/esm/ThematicDisplay.js.map +1 -1
  725. package/lib/esm/Thumbnail.d.ts +26 -26
  726. package/lib/esm/Thumbnail.js +8 -8
  727. package/lib/esm/Thumbnail.js.map +1 -1
  728. package/lib/esm/TileProps.d.ts +82 -82
  729. package/lib/esm/TileProps.js +25 -25
  730. package/lib/esm/TileProps.js.map +1 -1
  731. package/lib/esm/Tween.d.ts +191 -191
  732. package/lib/esm/Tween.js +565 -565
  733. package/lib/esm/Tween.js.map +1 -1
  734. package/lib/esm/TxnAction.d.ts +21 -21
  735. package/lib/esm/TxnAction.js +26 -26
  736. package/lib/esm/TxnAction.js.map +1 -1
  737. package/lib/esm/ViewDetails.d.ts +125 -125
  738. package/lib/esm/ViewDetails.js +153 -153
  739. package/lib/esm/ViewDetails.js.map +1 -1
  740. package/lib/esm/ViewFlags.d.ts +291 -291
  741. package/lib/esm/ViewFlags.js +364 -364
  742. package/lib/esm/ViewFlags.js.map +1 -1
  743. package/lib/esm/ViewProps.d.ts +205 -205
  744. package/lib/esm/ViewProps.js +8 -8
  745. package/lib/esm/ViewProps.js.map +1 -1
  746. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  747. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  748. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  749. package/lib/esm/core-common.d.ts +241 -241
  750. package/lib/esm/core-common.js +245 -245
  751. package/lib/esm/core-common.js.map +1 -1
  752. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  753. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  754. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  755. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  756. package/lib/esm/domains/GenericElementProps.js +8 -8
  757. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  758. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  759. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  760. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  761. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  762. package/lib/esm/geometry/AreaPattern.js +201 -201
  763. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  764. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  765. package/lib/esm/geometry/BoundingSphere.js +26 -26
  766. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  767. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  768. package/lib/esm/geometry/Cartographic.js +340 -340
  769. package/lib/esm/geometry/Cartographic.js.map +1 -1
  770. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  771. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  772. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  773. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  774. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  775. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  776. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  777. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  778. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  779. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  780. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  781. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  782. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  783. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  784. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  785. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  786. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  787. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  788. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  789. package/lib/esm/geometry/GeometryStream.js +464 -464
  790. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  791. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  792. package/lib/esm/geometry/ImageGraphic.js +93 -93
  793. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  794. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  795. package/lib/esm/geometry/LineStyle.js +126 -126
  796. package/lib/esm/geometry/LineStyle.js.map +1 -1
  797. package/lib/esm/geometry/Placement.d.ts +95 -95
  798. package/lib/esm/geometry/Placement.js +126 -126
  799. package/lib/esm/geometry/Placement.js.map +1 -1
  800. package/lib/esm/geometry/Projection.d.ts +251 -251
  801. package/lib/esm/geometry/Projection.js +192 -192
  802. package/lib/esm/geometry/Projection.js.map +1 -1
  803. package/lib/esm/geometry/TextString.d.ts +55 -55
  804. package/lib/esm/geometry/TextString.js +61 -61
  805. package/lib/esm/geometry/TextString.js.map +1 -1
  806. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  807. package/lib/esm/ipc/IpcSession.js +23 -23
  808. package/lib/esm/ipc/IpcSession.js.map +1 -1
  809. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  810. package/lib/esm/ipc/IpcSocket.js +12 -12
  811. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  812. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
  813. package/lib/esm/ipc/IpcWebSocket.js +145 -145
  814. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  815. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  816. package/lib/esm/ipc/IpcWebSocketTransport.js +154 -154
  817. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  818. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  819. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  820. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  821. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +75 -75
  822. package/lib/esm/rpc/IModelReadRpcInterface.js +110 -110
  823. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  824. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
  825. package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
  826. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  827. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  828. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  829. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  830. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  831. package/lib/esm/rpc/TestRpcManager.js +35 -35
  832. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  833. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  834. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  835. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  836. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  837. package/lib/esm/rpc/core/RpcConfiguration.js +185 -185
  838. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  839. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
  840. package/lib/esm/rpc/core/RpcConstants.js +100 -100
  841. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  842. package/lib/esm/rpc/core/RpcControl.d.ts +52 -52
  843. package/lib/esm/rpc/core/RpcControl.js +142 -142
  844. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  845. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  846. package/lib/esm/rpc/core/RpcInvocation.js +253 -253
  847. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  848. package/lib/esm/rpc/core/RpcMarshaling.d.ts +36 -36
  849. package/lib/esm/rpc/core/RpcMarshaling.js +149 -149
  850. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  851. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  852. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  853. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  854. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  855. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  856. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  857. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  858. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  859. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  860. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  861. package/lib/esm/rpc/core/RpcPush.js +119 -119
  862. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  863. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  864. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  865. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  866. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  867. package/lib/esm/rpc/core/RpcRequest.js +472 -472
  868. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  869. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  870. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  871. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  872. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  873. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  874. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  875. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  876. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  877. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  878. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  879. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  880. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  881. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  882. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
  883. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  884. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  885. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  886. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  887. package/lib/esm/rpc/web/RpcMultipart.d.ts +31 -31
  888. package/lib/esm/rpc/web/RpcMultipart.js +41 -41
  889. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  890. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +17 -17
  891. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  892. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  893. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  894. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
  895. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  896. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +71 -71
  897. package/lib/esm/rpc/web/WebAppRpcRequest.js +370 -370
  898. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  899. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  900. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +355 -355
  901. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  902. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  903. package/lib/esm/tile/B3dmTileIO.js +62 -62
  904. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  905. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  906. package/lib/esm/tile/CompositeTileIO.js +22 -22
  907. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  908. package/lib/esm/tile/ElementGraphics.d.ts +134 -134
  909. package/lib/esm/tile/ElementGraphics.js +8 -8
  910. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  911. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  912. package/lib/esm/tile/GltfTileIO.js +105 -105
  913. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  914. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  915. package/lib/esm/tile/I3dmTileIO.js +36 -36
  916. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  917. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  918. package/lib/esm/tile/IModelTileIO.js +90 -90
  919. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  920. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  921. package/lib/esm/tile/PntsTileIO.js +22 -22
  922. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  923. package/lib/esm/tile/TileIO.d.ts +66 -66
  924. package/lib/esm/tile/TileIO.js +110 -110
  925. package/lib/esm/tile/TileIO.js.map +1 -1
  926. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  927. package/lib/esm/tile/TileMetadata.js +661 -661
  928. package/lib/esm/tile/TileMetadata.js.map +1 -1
  929. package/package.json +7 -7
@@ -1,258 +1,258 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module RpcInterface
8
- */
9
- var _a;
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.RpcInvocation = void 0;
12
- const core_bentley_1 = require("@itwin/core-bentley");
13
- const CommonLoggerCategory_1 = require("../../CommonLoggerCategory");
14
- const IModelError_1 = require("../../IModelError");
15
- const RpcInterface_1 = require("../../RpcInterface");
16
- const RpcConfiguration_1 = require("./RpcConfiguration");
17
- const RpcConstants_1 = require("./RpcConstants");
18
- const RpcControl_1 = require("./RpcControl");
19
- const RpcMarshaling_1 = require("./RpcMarshaling");
20
- const RpcOperation_1 = require("./RpcOperation");
21
- const RpcProtocol_1 = require("./RpcProtocol");
22
- const RpcRegistry_1 = require("./RpcRegistry");
23
- /** An RPC operation invocation in response to a request.
24
- * @internal
25
- */
26
- class RpcInvocation {
27
- /** Constructs an invocation. */
28
- constructor(protocol, request) {
29
- this._threw = false;
30
- this._pending = false;
31
- this._notFound = false;
32
- this._noContent = false;
33
- this._timeIn = 0;
34
- this._timeOut = 0;
35
- /** The operation of the request. */
36
- this.operation = undefined;
37
- this._timeIn = new Date().getTime();
38
- this.protocol = protocol;
39
- this.request = request;
40
- try {
41
- try {
42
- this.operation = RpcOperation_1.RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);
43
- const backend = this.operation.interfaceVersion;
44
- const frontend = this.request.operation.interfaceVersion;
45
- if (!RpcInterface_1.RpcInterface.isVersionCompatible(backend, frontend)) {
46
- throw new IModelError_1.IModelError(core_bentley_1.RpcInterfaceStatus.IncompatibleVersion, `Backend version ${backend} does not match frontend version ${frontend} for RPC interface ${this.operation.operationName}.`);
47
- }
48
- }
49
- catch (error) {
50
- if (this.handleUnknownOperation(error)) {
51
- this.operation = RpcOperation_1.RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);
52
- }
53
- else {
54
- throw error;
55
- }
56
- }
57
- this.result = this.resolve();
58
- }
59
- catch (error) {
60
- this.result = this.reject(error);
61
- }
62
- this.fulfillment = this.result.then(async (value) => this._threw ? this.fulfillRejected(value) : this.fulfillResolved(value), async (reason) => this.fulfillRejected(reason));
63
- }
64
- /** The status for this request. */
65
- get status() {
66
- return this._threw ? RpcConstants_1.RpcRequestStatus.Rejected :
67
- this._pending ? RpcConstants_1.RpcRequestStatus.Pending :
68
- this._notFound ? RpcConstants_1.RpcRequestStatus.NotFound :
69
- this._noContent ? RpcConstants_1.RpcRequestStatus.NoContent :
70
- RpcConstants_1.RpcRequestStatus.Resolved;
71
- }
72
- /** The elapsed time for this invocation. */
73
- get elapsed() {
74
- return this._timeOut - this._timeIn;
75
- }
76
- /**
77
- * The invocation for the current RPC operation.
78
- * @note The return value of this function is only reliable in an RPC impl class member function where program control was received from the RpcInvocation constructor function.
79
- */
80
- static current(rpcImpl) {
81
- return rpcImpl[RpcRegistry_1.CURRENT_INVOCATION];
82
- }
83
- handleUnknownOperation(error) {
84
- return this.protocol.configuration.controlChannel.handleUnknownOperation(this, error);
85
- }
86
- static sanitizeForLog(activity) {
87
- /* eslint-disable @typescript-eslint/naming-convention */
88
- return activity ? {
89
- ActivityId: activity.activityId, SessionId: activity.sessionId, ApplicationId: activity.applicationId, ApplicationVersion: activity.applicationVersion, rpcMethod: activity.rpcMethod,
90
- } : undefined;
91
- /* eslint-enable @typescript-eslint/naming-convention */
92
- }
93
- async resolve() {
94
- const request = this.request;
95
- const activity = {
96
- activityId: request.id,
97
- applicationId: request.applicationId,
98
- applicationVersion: request.applicationVersion,
99
- sessionId: request.sessionId,
100
- accessToken: request.authorization,
101
- rpcMethod: request.operation.operationName,
102
- };
103
- try {
104
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.RequestReceived, this);
105
- const parameters = request.parametersOverride || RpcMarshaling_1.RpcMarshaling.deserialize(this.protocol, request.parameters);
106
- this.applyPolicies(parameters);
107
- const impl = RpcRegistry_1.RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);
108
- impl[RpcRegistry_1.CURRENT_INVOCATION] = this;
109
- const op = this.lookupOperationFunction(impl);
110
- return await RpcInvocation.runActivity(activity, async () => op.call(impl, ...parameters)
111
- .catch(async (error) => {
112
- // this catch block is intentionally placed inside `runActivity` to attach the right logging metadata and use the correct openTelemetry span.
113
- if (!(error instanceof RpcControl_1.RpcPendingResponse)) {
114
- core_bentley_1.Logger.logError(CommonLoggerCategory_1.CommonLoggerCategory.RpcInterfaceBackend, "Error in RPC operation", { error: core_bentley_1.BentleyError.getErrorProps(error) });
115
- core_bentley_1.Tracing.setAttributes({ error: true });
116
- }
117
- throw error;
118
- }));
119
- }
120
- catch (error) {
121
- return this.reject(error);
122
- }
123
- }
124
- applyPolicies(parameters) {
125
- if (!parameters || !Array.isArray(parameters))
126
- return;
127
- for (let i = 0; i !== parameters.length; ++i) {
128
- const parameter = parameters[i];
129
- const isToken = typeof (parameter) === "object" && parameter !== null && parameter.hasOwnProperty("iModelId") && parameter.hasOwnProperty("iTwinId");
130
- if (isToken && this.protocol.checkToken && !this.operation.policy.allowTokenMismatch) {
131
- const inflated = this.protocol.inflateToken(parameter, this.request);
132
- parameters[i] = inflated;
133
- if (!RpcInvocation.compareTokens(parameter, inflated)) {
134
- if (RpcConfiguration_1.RpcConfiguration.throwOnTokenMismatch) {
135
- throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, "IModelRpcProps mismatch detected for this request.");
136
- }
137
- else {
138
- core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.CommonLoggerCategory.RpcInterfaceBackend, "IModelRpcProps mismatch detected for this request.");
139
- }
140
- }
141
- }
142
- }
143
- }
144
- static compareTokens(a, b) {
145
- var _b;
146
- return a.key === b.key &&
147
- a.iTwinId === b.iTwinId &&
148
- a.iModelId === b.iModelId &&
149
- (undefined === a.changeset || (a.changeset.id === ((_b = b.changeset) === null || _b === void 0 ? void 0 : _b.id)));
150
- }
151
- async reject(error) {
152
- this._threw = true;
153
- return error;
154
- }
155
- async fulfillResolved(value) {
156
- this._timeOut = new Date().getTime();
157
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendResponseCreated, this);
158
- const result = await RpcMarshaling_1.RpcMarshaling.serialize(this.protocol, value);
159
- return this.fulfill(result, value);
160
- }
161
- async fulfillRejected(reason) {
162
- this._timeOut = new Date().getTime();
163
- if (!RpcConfiguration_1.RpcConfiguration.developmentMode)
164
- reason.stack = undefined;
165
- const result = await RpcMarshaling_1.RpcMarshaling.serialize(this.protocol, reason);
166
- if (reason instanceof RpcControl_1.RpcPendingResponse) {
167
- this._pending = true;
168
- this._threw = false;
169
- result.objects = reason.message;
170
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedPending, this);
171
- }
172
- else if (this.supportsNoContent() && (reason === null || reason === void 0 ? void 0 : reason.errorNumber) === core_bentley_1.IModelStatus.NoContent) {
173
- this._noContent = true;
174
- this._threw = false;
175
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedNoContent, this);
176
- }
177
- else if (reason instanceof RpcControl_1.RpcNotFoundResponse) {
178
- this._notFound = true;
179
- this._threw = false;
180
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedNotFound, this);
181
- }
182
- else {
183
- this._threw = true;
184
- this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendErrorOccurred, this);
185
- }
186
- return this.fulfill(result, reason);
187
- }
188
- supportsNoContent() {
189
- if (!this.request.protocolVersion) {
190
- return false;
191
- }
192
- return RpcProtocol_1.RpcProtocol.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedNoContent && this.request.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedNoContent;
193
- }
194
- supportsStatusCategory() {
195
- if (!this.request.protocolVersion) {
196
- return false;
197
- }
198
- if (!this.protocol.supportsStatusCategory) {
199
- return false;
200
- }
201
- return RpcProtocol_1.RpcProtocol.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedStatusCategory && this.request.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedStatusCategory;
202
- }
203
- fulfill(result, rawResult) {
204
- var _b;
205
- const fulfillment = {
206
- result,
207
- rawResult,
208
- status: this.protocol.getCode(this.status),
209
- id: this.request.id,
210
- interfaceName: (typeof (this.operation) === "undefined") ? "" : this.operation.interfaceDefinition.interfaceName,
211
- allowCompression: ((_b = this.operation) === null || _b === void 0 ? void 0 : _b.policy.allowResponseCompression) || false,
212
- };
213
- this.transformResponseStatus(fulfillment, rawResult);
214
- try {
215
- const impl = RpcRegistry_1.RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);
216
- if (impl[RpcRegistry_1.CURRENT_INVOCATION] === this) {
217
- impl[RpcRegistry_1.CURRENT_INVOCATION] = undefined;
218
- }
219
- }
220
- catch (_err) { }
221
- return fulfillment;
222
- }
223
- lookupOperationFunction(implementation) {
224
- const func = implementation[this.operation.operationName];
225
- if (!func || typeof (func) !== "function")
226
- throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, `RPC interface class "${implementation.constructor.name}" does not implement operation "${this.operation.operationName}".`);
227
- return func;
228
- }
229
- transformResponseStatus(fulfillment, rawResult) {
230
- if (!this.supportsStatusCategory()) {
231
- return;
232
- }
233
- let managedStatus;
234
- if (this._pending) {
235
- managedStatus = "pending";
236
- }
237
- else if (this._notFound) {
238
- managedStatus = "notFound";
239
- }
240
- else if (this._noContent) {
241
- managedStatus = "noContent";
242
- }
243
- if (managedStatus) {
244
- const responseValue = fulfillment.result.objects;
245
- const status = { iTwinRpcCoreResponse: true, managedStatus, responseValue };
246
- fulfillment.result.objects = JSON.stringify(status);
247
- status.responseValue = rawResult; // for ipc case
248
- fulfillment.rawResult = status;
249
- }
250
- if (rawResult instanceof core_bentley_1.BentleyError) {
251
- fulfillment.status = core_bentley_1.StatusCategory.for(rawResult).code;
252
- }
253
- }
254
- }
255
- exports.RpcInvocation = RpcInvocation;
256
- _a = RpcInvocation;
257
- RpcInvocation.runActivity = async (_activity, fn) => fn();
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module RpcInterface
8
+ */
9
+ var _a;
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.RpcInvocation = void 0;
12
+ const core_bentley_1 = require("@itwin/core-bentley");
13
+ const CommonLoggerCategory_1 = require("../../CommonLoggerCategory");
14
+ const IModelError_1 = require("../../IModelError");
15
+ const RpcInterface_1 = require("../../RpcInterface");
16
+ const RpcConfiguration_1 = require("./RpcConfiguration");
17
+ const RpcConstants_1 = require("./RpcConstants");
18
+ const RpcControl_1 = require("./RpcControl");
19
+ const RpcMarshaling_1 = require("./RpcMarshaling");
20
+ const RpcOperation_1 = require("./RpcOperation");
21
+ const RpcProtocol_1 = require("./RpcProtocol");
22
+ const RpcRegistry_1 = require("./RpcRegistry");
23
+ /** An RPC operation invocation in response to a request.
24
+ * @internal
25
+ */
26
+ class RpcInvocation {
27
+ /** Constructs an invocation. */
28
+ constructor(protocol, request) {
29
+ this._threw = false;
30
+ this._pending = false;
31
+ this._notFound = false;
32
+ this._noContent = false;
33
+ this._timeIn = 0;
34
+ this._timeOut = 0;
35
+ /** The operation of the request. */
36
+ this.operation = undefined;
37
+ this._timeIn = new Date().getTime();
38
+ this.protocol = protocol;
39
+ this.request = request;
40
+ try {
41
+ try {
42
+ this.operation = RpcOperation_1.RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);
43
+ const backend = this.operation.interfaceVersion;
44
+ const frontend = this.request.operation.interfaceVersion;
45
+ if (!RpcInterface_1.RpcInterface.isVersionCompatible(backend, frontend)) {
46
+ throw new IModelError_1.IModelError(core_bentley_1.RpcInterfaceStatus.IncompatibleVersion, `Backend version ${backend} does not match frontend version ${frontend} for RPC interface ${this.operation.operationName}.`);
47
+ }
48
+ }
49
+ catch (error) {
50
+ if (this.handleUnknownOperation(error)) {
51
+ this.operation = RpcOperation_1.RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);
52
+ }
53
+ else {
54
+ throw error;
55
+ }
56
+ }
57
+ this.result = this.resolve();
58
+ }
59
+ catch (error) {
60
+ this.result = this.reject(error);
61
+ }
62
+ this.fulfillment = this.result.then(async (value) => this._threw ? this.fulfillRejected(value) : this.fulfillResolved(value), async (reason) => this.fulfillRejected(reason));
63
+ }
64
+ /** The status for this request. */
65
+ get status() {
66
+ return this._threw ? RpcConstants_1.RpcRequestStatus.Rejected :
67
+ this._pending ? RpcConstants_1.RpcRequestStatus.Pending :
68
+ this._notFound ? RpcConstants_1.RpcRequestStatus.NotFound :
69
+ this._noContent ? RpcConstants_1.RpcRequestStatus.NoContent :
70
+ RpcConstants_1.RpcRequestStatus.Resolved;
71
+ }
72
+ /** The elapsed time for this invocation. */
73
+ get elapsed() {
74
+ return this._timeOut - this._timeIn;
75
+ }
76
+ /**
77
+ * The invocation for the current RPC operation.
78
+ * @note The return value of this function is only reliable in an RPC impl class member function where program control was received from the RpcInvocation constructor function.
79
+ */
80
+ static current(rpcImpl) {
81
+ return rpcImpl[RpcRegistry_1.CURRENT_INVOCATION];
82
+ }
83
+ handleUnknownOperation(error) {
84
+ return this.protocol.configuration.controlChannel.handleUnknownOperation(this, error);
85
+ }
86
+ static sanitizeForLog(activity) {
87
+ /* eslint-disable @typescript-eslint/naming-convention */
88
+ return activity ? {
89
+ ActivityId: activity.activityId, SessionId: activity.sessionId, ApplicationId: activity.applicationId, ApplicationVersion: activity.applicationVersion, rpcMethod: activity.rpcMethod,
90
+ } : undefined;
91
+ /* eslint-enable @typescript-eslint/naming-convention */
92
+ }
93
+ async resolve() {
94
+ const request = this.request;
95
+ const activity = {
96
+ activityId: request.id,
97
+ applicationId: request.applicationId,
98
+ applicationVersion: request.applicationVersion,
99
+ sessionId: request.sessionId,
100
+ accessToken: request.authorization,
101
+ rpcMethod: request.operation.operationName,
102
+ };
103
+ try {
104
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.RequestReceived, this);
105
+ const parameters = request.parametersOverride || RpcMarshaling_1.RpcMarshaling.deserialize(this.protocol, request.parameters);
106
+ this.applyPolicies(parameters);
107
+ const impl = RpcRegistry_1.RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);
108
+ impl[RpcRegistry_1.CURRENT_INVOCATION] = this;
109
+ const op = this.lookupOperationFunction(impl);
110
+ return await RpcInvocation.runActivity(activity, async () => op.call(impl, ...parameters)
111
+ .catch(async (error) => {
112
+ // this catch block is intentionally placed inside `runActivity` to attach the right logging metadata and use the correct openTelemetry span.
113
+ if (!(error instanceof RpcControl_1.RpcPendingResponse)) {
114
+ core_bentley_1.Logger.logError(CommonLoggerCategory_1.CommonLoggerCategory.RpcInterfaceBackend, "Error in RPC operation", { error: core_bentley_1.BentleyError.getErrorProps(error) });
115
+ core_bentley_1.Tracing.setAttributes({ error: true });
116
+ }
117
+ throw error;
118
+ }));
119
+ }
120
+ catch (error) {
121
+ return this.reject(error);
122
+ }
123
+ }
124
+ applyPolicies(parameters) {
125
+ if (!parameters || !Array.isArray(parameters))
126
+ return;
127
+ for (let i = 0; i !== parameters.length; ++i) {
128
+ const parameter = parameters[i];
129
+ const isToken = typeof (parameter) === "object" && parameter !== null && parameter.hasOwnProperty("iModelId") && parameter.hasOwnProperty("iTwinId");
130
+ if (isToken && this.protocol.checkToken && !this.operation.policy.allowTokenMismatch) {
131
+ const inflated = this.protocol.inflateToken(parameter, this.request);
132
+ parameters[i] = inflated;
133
+ if (!RpcInvocation.compareTokens(parameter, inflated)) {
134
+ if (RpcConfiguration_1.RpcConfiguration.throwOnTokenMismatch) {
135
+ throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, "IModelRpcProps mismatch detected for this request.");
136
+ }
137
+ else {
138
+ core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.CommonLoggerCategory.RpcInterfaceBackend, "IModelRpcProps mismatch detected for this request.");
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ static compareTokens(a, b) {
145
+ var _b;
146
+ return a.key === b.key &&
147
+ a.iTwinId === b.iTwinId &&
148
+ a.iModelId === b.iModelId &&
149
+ (undefined === a.changeset || (a.changeset.id === ((_b = b.changeset) === null || _b === void 0 ? void 0 : _b.id)));
150
+ }
151
+ async reject(error) {
152
+ this._threw = true;
153
+ return error;
154
+ }
155
+ async fulfillResolved(value) {
156
+ this._timeOut = new Date().getTime();
157
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendResponseCreated, this);
158
+ const result = await RpcMarshaling_1.RpcMarshaling.serialize(this.protocol, value);
159
+ return this.fulfill(result, value);
160
+ }
161
+ async fulfillRejected(reason) {
162
+ this._timeOut = new Date().getTime();
163
+ if (!RpcConfiguration_1.RpcConfiguration.developmentMode)
164
+ reason.stack = undefined;
165
+ const result = await RpcMarshaling_1.RpcMarshaling.serialize(this.protocol, reason);
166
+ if (reason instanceof RpcControl_1.RpcPendingResponse) {
167
+ this._pending = true;
168
+ this._threw = false;
169
+ result.objects = reason.message;
170
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedPending, this);
171
+ }
172
+ else if (this.supportsNoContent() && (reason === null || reason === void 0 ? void 0 : reason.errorNumber) === core_bentley_1.IModelStatus.NoContent) {
173
+ this._noContent = true;
174
+ this._threw = false;
175
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedNoContent, this);
176
+ }
177
+ else if (reason instanceof RpcControl_1.RpcNotFoundResponse) {
178
+ this._notFound = true;
179
+ this._threw = false;
180
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendReportedNotFound, this);
181
+ }
182
+ else {
183
+ this._threw = true;
184
+ this.protocol.events.raiseEvent(RpcConstants_1.RpcProtocolEvent.BackendErrorOccurred, this);
185
+ }
186
+ return this.fulfill(result, reason);
187
+ }
188
+ supportsNoContent() {
189
+ if (!this.request.protocolVersion) {
190
+ return false;
191
+ }
192
+ return RpcProtocol_1.RpcProtocol.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedNoContent && this.request.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedNoContent;
193
+ }
194
+ supportsStatusCategory() {
195
+ if (!this.request.protocolVersion) {
196
+ return false;
197
+ }
198
+ if (!this.protocol.supportsStatusCategory) {
199
+ return false;
200
+ }
201
+ return RpcProtocol_1.RpcProtocol.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedStatusCategory && this.request.protocolVersion >= RpcProtocol_1.RpcProtocolVersion.IntroducedStatusCategory;
202
+ }
203
+ fulfill(result, rawResult) {
204
+ var _b;
205
+ const fulfillment = {
206
+ result,
207
+ rawResult,
208
+ status: this.protocol.getCode(this.status),
209
+ id: this.request.id,
210
+ interfaceName: (typeof (this.operation) === "undefined") ? "" : this.operation.interfaceDefinition.interfaceName,
211
+ allowCompression: ((_b = this.operation) === null || _b === void 0 ? void 0 : _b.policy.allowResponseCompression) || false,
212
+ };
213
+ this.transformResponseStatus(fulfillment, rawResult);
214
+ try {
215
+ const impl = RpcRegistry_1.RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);
216
+ if (impl[RpcRegistry_1.CURRENT_INVOCATION] === this) {
217
+ impl[RpcRegistry_1.CURRENT_INVOCATION] = undefined;
218
+ }
219
+ }
220
+ catch (_err) { }
221
+ return fulfillment;
222
+ }
223
+ lookupOperationFunction(implementation) {
224
+ const func = implementation[this.operation.operationName];
225
+ if (!func || typeof (func) !== "function")
226
+ throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, `RPC interface class "${implementation.constructor.name}" does not implement operation "${this.operation.operationName}".`);
227
+ return func;
228
+ }
229
+ transformResponseStatus(fulfillment, rawResult) {
230
+ if (!this.supportsStatusCategory()) {
231
+ return;
232
+ }
233
+ let managedStatus;
234
+ if (this._pending) {
235
+ managedStatus = "pending";
236
+ }
237
+ else if (this._notFound) {
238
+ managedStatus = "notFound";
239
+ }
240
+ else if (this._noContent) {
241
+ managedStatus = "noContent";
242
+ }
243
+ if (managedStatus) {
244
+ const responseValue = fulfillment.result.objects;
245
+ const status = { iTwinRpcCoreResponse: true, managedStatus, responseValue };
246
+ fulfillment.result.objects = JSON.stringify(status);
247
+ status.responseValue = rawResult; // for ipc case
248
+ fulfillment.rawResult = status;
249
+ }
250
+ if (rawResult instanceof core_bentley_1.BentleyError) {
251
+ fulfillment.status = core_bentley_1.StatusCategory.for(rawResult).code;
252
+ }
253
+ }
254
+ }
255
+ exports.RpcInvocation = RpcInvocation;
256
+ _a = RpcInvocation;
257
+ RpcInvocation.runActivity = async (_activity, fn) => fn();
258
258
  //# sourceMappingURL=RpcInvocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RpcInvocation.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcInvocation.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 RpcInterface\n */\n\nimport { AccessToken, BentleyError, BentleyStatus, GuidString, IModelStatus, Logger, RpcInterfaceStatus, StatusCategory, Tracing } from \"@itwin/core-bentley\";\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\nimport { IModelRpcProps } from \"../../IModel\";\nimport { IModelError } from \"../../IModelError\";\nimport { RpcInterface } from \"../../RpcInterface\";\nimport { SessionProps } from \"../../SessionProps\";\nimport { RpcConfiguration } from \"./RpcConfiguration\";\nimport { RpcProtocolEvent, RpcRequestStatus } from \"./RpcConstants\";\nimport { RpcNotFoundResponse, RpcPendingResponse } from \"./RpcControl\";\nimport { RpcMarshaling, RpcSerializedValue } from \"./RpcMarshaling\";\nimport { RpcOperation } from \"./RpcOperation\";\nimport { RpcManagedStatus, RpcProtocol, RpcProtocolVersion, RpcRequestFulfillment, SerializedRpcRequest } from \"./RpcProtocol\";\nimport { CURRENT_INVOCATION, RpcRegistry } from \"./RpcRegistry\";\n\n/** The properties of an RpcActivity.\n * @public\n * @extensions\n */\nexport interface RpcActivity extends SessionProps {\n /** Used for logging to correlate an Rpc activity between frontend and backend */\n readonly activityId: GuidString;\n\n /** access token for authorization */\n readonly accessToken: AccessToken;\n\n /** the name of the current rpc method */\n readonly rpcMethod?: string;\n}\n\n/** Serialized format for sending the request across the RPC layer\n * @public\n */\nexport interface SerializedRpcActivity {\n id: string;\n applicationId: string;\n applicationVersion: string;\n sessionId: string;\n authorization: string;\n csrfToken?: { headerName: string, headerValue: string };\n}\n\n/** @internal */\nexport type RpcActivityRun = (activity: RpcActivity, fn: () => Promise<any>) => Promise<any>;\n\n/** An RPC operation invocation in response to a request.\n * @internal\n */\nexport class RpcInvocation {\n public static runActivity: RpcActivityRun = async (_activity, fn) => fn();\n private _threw: boolean = false;\n private _pending: boolean = false;\n private _notFound: boolean = false;\n private _noContent: boolean = false;\n private _timeIn: number = 0;\n private _timeOut: number = 0;\n\n /** The protocol for this invocation. */\n public readonly protocol: RpcProtocol;\n\n /** The received request. */\n public readonly request: SerializedRpcRequest;\n\n /** The operation of the request. */\n public readonly operation: RpcOperation = undefined as any;\n\n /** The implementation response. */\n public readonly result: Promise<any>;\n\n /** The fulfillment for this request. */\n public readonly fulfillment: Promise<RpcRequestFulfillment>;\n\n /** The status for this request. */\n public get status(): RpcRequestStatus {\n return this._threw ? RpcRequestStatus.Rejected :\n this._pending ? RpcRequestStatus.Pending :\n this._notFound ? RpcRequestStatus.NotFound :\n this._noContent ? RpcRequestStatus.NoContent :\n RpcRequestStatus.Resolved;\n }\n\n /** The elapsed time for this invocation. */\n public get elapsed(): number {\n return this._timeOut - this._timeIn;\n }\n\n /**\n * The invocation for the current RPC operation.\n * @note The return value of this function is only reliable in an RPC impl class member function where program control was received from the RpcInvocation constructor function.\n */\n public static current(rpcImpl: RpcInterface): RpcInvocation {\n return (rpcImpl as any)[CURRENT_INVOCATION];\n }\n\n /** Constructs an invocation. */\n public constructor(protocol: RpcProtocol, request: SerializedRpcRequest) {\n this._timeIn = new Date().getTime();\n this.protocol = protocol;\n this.request = request;\n\n try {\n try {\n this.operation = RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);\n\n const backend = this.operation.interfaceVersion;\n const frontend = this.request.operation.interfaceVersion;\n if (!RpcInterface.isVersionCompatible(backend, frontend)) {\n throw new IModelError(RpcInterfaceStatus.IncompatibleVersion, `Backend version ${backend} does not match frontend version ${frontend} for RPC interface ${this.operation.operationName}.`);\n }\n } catch (error) {\n if (this.handleUnknownOperation(error)) {\n this.operation = RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);\n } else {\n throw error;\n }\n }\n\n this.result = this.resolve();\n } catch (error) {\n this.result = this.reject(error);\n }\n\n this.fulfillment = this.result.then(async (value) => this._threw ? this.fulfillRejected(value) : this.fulfillResolved(value), async (reason) => this.fulfillRejected(reason));\n }\n\n private handleUnknownOperation(error: any): boolean {\n return this.protocol.configuration.controlChannel.handleUnknownOperation(this, error);\n }\n\n public static sanitizeForLog(activity?: RpcActivity) {\n /* eslint-disable @typescript-eslint/naming-convention */\n return activity ? {\n ActivityId: activity.activityId, SessionId: activity.sessionId, ApplicationId: activity.applicationId, ApplicationVersion: activity.applicationVersion, rpcMethod: activity.rpcMethod,\n } : undefined;\n /* eslint-enable @typescript-eslint/naming-convention */\n }\n\n private async resolve(): Promise<any> {\n const request = this.request;\n const activity: RpcActivity = {\n activityId: request.id,\n applicationId: request.applicationId,\n applicationVersion: request.applicationVersion,\n sessionId: request.sessionId,\n accessToken: request.authorization,\n rpcMethod: request.operation.operationName,\n };\n\n try {\n this.protocol.events.raiseEvent(RpcProtocolEvent.RequestReceived, this);\n\n const parameters = request.parametersOverride || RpcMarshaling.deserialize(this.protocol, request.parameters);\n this.applyPolicies(parameters);\n const impl = RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);\n (impl as any)[CURRENT_INVOCATION] = this;\n const op = this.lookupOperationFunction(impl);\n\n return await RpcInvocation.runActivity(activity, async () => op.call(impl, ...parameters)\n .catch(async (error) => {\n // this catch block is intentionally placed inside `runActivity` to attach the right logging metadata and use the correct openTelemetry span.\n if (!(error instanceof RpcPendingResponse)) {\n Logger.logError(CommonLoggerCategory.RpcInterfaceBackend, \"Error in RPC operation\", { error: BentleyError.getErrorProps(error) });\n Tracing.setAttributes({ error: true });\n }\n throw error;\n }));\n } catch (error: unknown) {\n return this.reject(error);\n }\n }\n\n private applyPolicies(parameters: any) {\n if (!parameters || !Array.isArray(parameters))\n return;\n\n for (let i = 0; i !== parameters.length; ++i) {\n const parameter = parameters[i];\n const isToken = typeof (parameter) === \"object\" && parameter !== null && parameter.hasOwnProperty(\"iModelId\") && parameter.hasOwnProperty(\"iTwinId\");\n if (isToken && this.protocol.checkToken && !this.operation.policy.allowTokenMismatch) {\n const inflated = this.protocol.inflateToken(parameter, this.request);\n parameters[i] = inflated;\n\n if (!RpcInvocation.compareTokens(parameter, inflated)) {\n if (RpcConfiguration.throwOnTokenMismatch) {\n throw new IModelError(BentleyStatus.ERROR, \"IModelRpcProps mismatch detected for this request.\");\n } else {\n Logger.logWarning(CommonLoggerCategory.RpcInterfaceBackend, \"IModelRpcProps mismatch detected for this request.\");\n }\n }\n }\n }\n }\n\n private static compareTokens(a: IModelRpcProps, b: IModelRpcProps): boolean {\n return a.key === b.key &&\n a.iTwinId === b.iTwinId &&\n a.iModelId === b.iModelId &&\n (undefined === a.changeset || (a.changeset.id === b.changeset?.id));\n }\n\n private async reject(error: any): Promise<any> {\n this._threw = true;\n return error;\n }\n\n private async fulfillResolved(value: any): Promise<RpcRequestFulfillment> {\n this._timeOut = new Date().getTime();\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendResponseCreated, this);\n const result = await RpcMarshaling.serialize(this.protocol, value);\n return this.fulfill(result, value);\n }\n\n private async fulfillRejected(reason: any): Promise<RpcRequestFulfillment> {\n this._timeOut = new Date().getTime();\n if (!RpcConfiguration.developmentMode)\n reason.stack = undefined;\n\n const result = await RpcMarshaling.serialize(this.protocol, reason);\n\n if (reason instanceof RpcPendingResponse) {\n this._pending = true;\n this._threw = false;\n result.objects = reason.message;\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedPending, this);\n } else if (this.supportsNoContent() && reason?.errorNumber === IModelStatus.NoContent) {\n this._noContent = true;\n this._threw = false;\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedNoContent, this);\n } else if (reason instanceof RpcNotFoundResponse) {\n this._notFound = true;\n this._threw = false;\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedNotFound, this);\n } else {\n this._threw = true;\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendErrorOccurred, this);\n }\n\n return this.fulfill(result, reason);\n }\n\n private supportsNoContent() {\n if (!this.request.protocolVersion) {\n return false;\n }\n\n return RpcProtocol.protocolVersion >= RpcProtocolVersion.IntroducedNoContent && this.request.protocolVersion >= RpcProtocolVersion.IntroducedNoContent;\n }\n\n private supportsStatusCategory() {\n if (!this.request.protocolVersion) {\n return false;\n }\n\n if (!this.protocol.supportsStatusCategory) {\n return false;\n }\n\n return RpcProtocol.protocolVersion >= RpcProtocolVersion.IntroducedStatusCategory && this.request.protocolVersion >= RpcProtocolVersion.IntroducedStatusCategory;\n }\n\n private fulfill(result: RpcSerializedValue, rawResult: any): RpcRequestFulfillment {\n const fulfillment: RpcRequestFulfillment = {\n result,\n rawResult,\n status: this.protocol.getCode(this.status),\n id: this.request.id,\n interfaceName: (typeof (this.operation) === \"undefined\") ? \"\" : this.operation.interfaceDefinition.interfaceName,\n allowCompression: this.operation?.policy.allowResponseCompression || false,\n };\n\n this.transformResponseStatus(fulfillment, rawResult);\n\n try {\n const impl = RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition) as any;\n if (impl[CURRENT_INVOCATION] === this) {\n impl[CURRENT_INVOCATION] = undefined;\n }\n } catch (_err) { }\n\n return fulfillment;\n }\n\n private lookupOperationFunction(implementation: RpcInterface): (...args: any[]) => Promise<any> {\n const func = (implementation as any)[this.operation.operationName];\n if (!func || typeof (func) !== \"function\")\n throw new IModelError(BentleyStatus.ERROR, `RPC interface class \"${implementation.constructor.name}\" does not implement operation \"${this.operation.operationName}\".`);\n\n return func;\n }\n\n private transformResponseStatus(fulfillment: RpcRequestFulfillment, rawResult: any) {\n if (!this.supportsStatusCategory()) {\n return;\n }\n\n let managedStatus: \"notFound\" | \"pending\" | \"noContent\" | undefined;\n if (this._pending) {\n managedStatus = \"pending\";\n } else if (this._notFound) {\n managedStatus = \"notFound\";\n } else if (this._noContent) {\n managedStatus = \"noContent\";\n }\n\n if (managedStatus) {\n const responseValue = fulfillment.result.objects;\n const status: RpcManagedStatus = { iTwinRpcCoreResponse: true, managedStatus, responseValue };\n fulfillment.result.objects = JSON.stringify(status);\n status.responseValue = rawResult; // for ipc case\n fulfillment.rawResult = status;\n }\n\n if (rawResult instanceof BentleyError) {\n fulfillment.status = StatusCategory.for(rawResult).code;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"RpcInvocation.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcInvocation.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 RpcInterface\r\n */\r\n\r\nimport { AccessToken, BentleyError, BentleyStatus, GuidString, IModelStatus, Logger, RpcInterfaceStatus, StatusCategory, Tracing } from \"@itwin/core-bentley\";\r\nimport { CommonLoggerCategory } from \"../../CommonLoggerCategory\";\r\nimport { IModelRpcProps } from \"../../IModel\";\r\nimport { IModelError } from \"../../IModelError\";\r\nimport { RpcInterface } from \"../../RpcInterface\";\r\nimport { SessionProps } from \"../../SessionProps\";\r\nimport { RpcConfiguration } from \"./RpcConfiguration\";\r\nimport { RpcProtocolEvent, RpcRequestStatus } from \"./RpcConstants\";\r\nimport { RpcNotFoundResponse, RpcPendingResponse } from \"./RpcControl\";\r\nimport { RpcMarshaling, RpcSerializedValue } from \"./RpcMarshaling\";\r\nimport { RpcOperation } from \"./RpcOperation\";\r\nimport { RpcManagedStatus, RpcProtocol, RpcProtocolVersion, RpcRequestFulfillment, SerializedRpcRequest } from \"./RpcProtocol\";\r\nimport { CURRENT_INVOCATION, RpcRegistry } from \"./RpcRegistry\";\r\n\r\n/** The properties of an RpcActivity.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface RpcActivity extends SessionProps {\r\n /** Used for logging to correlate an Rpc activity between frontend and backend */\r\n readonly activityId: GuidString;\r\n\r\n /** access token for authorization */\r\n readonly accessToken: AccessToken;\r\n\r\n /** the name of the current rpc method */\r\n readonly rpcMethod?: string;\r\n}\r\n\r\n/** Serialized format for sending the request across the RPC layer\r\n * @public\r\n */\r\nexport interface SerializedRpcActivity {\r\n id: string;\r\n applicationId: string;\r\n applicationVersion: string;\r\n sessionId: string;\r\n authorization: string;\r\n csrfToken?: { headerName: string, headerValue: string };\r\n}\r\n\r\n/** @internal */\r\nexport type RpcActivityRun = (activity: RpcActivity, fn: () => Promise<any>) => Promise<any>;\r\n\r\n/** An RPC operation invocation in response to a request.\r\n * @internal\r\n */\r\nexport class RpcInvocation {\r\n public static runActivity: RpcActivityRun = async (_activity, fn) => fn();\r\n private _threw: boolean = false;\r\n private _pending: boolean = false;\r\n private _notFound: boolean = false;\r\n private _noContent: boolean = false;\r\n private _timeIn: number = 0;\r\n private _timeOut: number = 0;\r\n\r\n /** The protocol for this invocation. */\r\n public readonly protocol: RpcProtocol;\r\n\r\n /** The received request. */\r\n public readonly request: SerializedRpcRequest;\r\n\r\n /** The operation of the request. */\r\n public readonly operation: RpcOperation = undefined as any;\r\n\r\n /** The implementation response. */\r\n public readonly result: Promise<any>;\r\n\r\n /** The fulfillment for this request. */\r\n public readonly fulfillment: Promise<RpcRequestFulfillment>;\r\n\r\n /** The status for this request. */\r\n public get status(): RpcRequestStatus {\r\n return this._threw ? RpcRequestStatus.Rejected :\r\n this._pending ? RpcRequestStatus.Pending :\r\n this._notFound ? RpcRequestStatus.NotFound :\r\n this._noContent ? RpcRequestStatus.NoContent :\r\n RpcRequestStatus.Resolved;\r\n }\r\n\r\n /** The elapsed time for this invocation. */\r\n public get elapsed(): number {\r\n return this._timeOut - this._timeIn;\r\n }\r\n\r\n /**\r\n * The invocation for the current RPC operation.\r\n * @note The return value of this function is only reliable in an RPC impl class member function where program control was received from the RpcInvocation constructor function.\r\n */\r\n public static current(rpcImpl: RpcInterface): RpcInvocation {\r\n return (rpcImpl as any)[CURRENT_INVOCATION];\r\n }\r\n\r\n /** Constructs an invocation. */\r\n public constructor(protocol: RpcProtocol, request: SerializedRpcRequest) {\r\n this._timeIn = new Date().getTime();\r\n this.protocol = protocol;\r\n this.request = request;\r\n\r\n try {\r\n try {\r\n this.operation = RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);\r\n\r\n const backend = this.operation.interfaceVersion;\r\n const frontend = this.request.operation.interfaceVersion;\r\n if (!RpcInterface.isVersionCompatible(backend, frontend)) {\r\n throw new IModelError(RpcInterfaceStatus.IncompatibleVersion, `Backend version ${backend} does not match frontend version ${frontend} for RPC interface ${this.operation.operationName}.`);\r\n }\r\n } catch (error) {\r\n if (this.handleUnknownOperation(error)) {\r\n this.operation = RpcOperation.lookup(this.request.operation.interfaceDefinition, this.request.operation.operationName);\r\n } else {\r\n throw error;\r\n }\r\n }\r\n\r\n this.result = this.resolve();\r\n } catch (error) {\r\n this.result = this.reject(error);\r\n }\r\n\r\n this.fulfillment = this.result.then(async (value) => this._threw ? this.fulfillRejected(value) : this.fulfillResolved(value), async (reason) => this.fulfillRejected(reason));\r\n }\r\n\r\n private handleUnknownOperation(error: any): boolean {\r\n return this.protocol.configuration.controlChannel.handleUnknownOperation(this, error);\r\n }\r\n\r\n public static sanitizeForLog(activity?: RpcActivity) {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n return activity ? {\r\n ActivityId: activity.activityId, SessionId: activity.sessionId, ApplicationId: activity.applicationId, ApplicationVersion: activity.applicationVersion, rpcMethod: activity.rpcMethod,\r\n } : undefined;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n }\r\n\r\n private async resolve(): Promise<any> {\r\n const request = this.request;\r\n const activity: RpcActivity = {\r\n activityId: request.id,\r\n applicationId: request.applicationId,\r\n applicationVersion: request.applicationVersion,\r\n sessionId: request.sessionId,\r\n accessToken: request.authorization,\r\n rpcMethod: request.operation.operationName,\r\n };\r\n\r\n try {\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.RequestReceived, this);\r\n\r\n const parameters = request.parametersOverride || RpcMarshaling.deserialize(this.protocol, request.parameters);\r\n this.applyPolicies(parameters);\r\n const impl = RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition);\r\n (impl as any)[CURRENT_INVOCATION] = this;\r\n const op = this.lookupOperationFunction(impl);\r\n\r\n return await RpcInvocation.runActivity(activity, async () => op.call(impl, ...parameters)\r\n .catch(async (error) => {\r\n // this catch block is intentionally placed inside `runActivity` to attach the right logging metadata and use the correct openTelemetry span.\r\n if (!(error instanceof RpcPendingResponse)) {\r\n Logger.logError(CommonLoggerCategory.RpcInterfaceBackend, \"Error in RPC operation\", { error: BentleyError.getErrorProps(error) });\r\n Tracing.setAttributes({ error: true });\r\n }\r\n throw error;\r\n }));\r\n } catch (error: unknown) {\r\n return this.reject(error);\r\n }\r\n }\r\n\r\n private applyPolicies(parameters: any) {\r\n if (!parameters || !Array.isArray(parameters))\r\n return;\r\n\r\n for (let i = 0; i !== parameters.length; ++i) {\r\n const parameter = parameters[i];\r\n const isToken = typeof (parameter) === \"object\" && parameter !== null && parameter.hasOwnProperty(\"iModelId\") && parameter.hasOwnProperty(\"iTwinId\");\r\n if (isToken && this.protocol.checkToken && !this.operation.policy.allowTokenMismatch) {\r\n const inflated = this.protocol.inflateToken(parameter, this.request);\r\n parameters[i] = inflated;\r\n\r\n if (!RpcInvocation.compareTokens(parameter, inflated)) {\r\n if (RpcConfiguration.throwOnTokenMismatch) {\r\n throw new IModelError(BentleyStatus.ERROR, \"IModelRpcProps mismatch detected for this request.\");\r\n } else {\r\n Logger.logWarning(CommonLoggerCategory.RpcInterfaceBackend, \"IModelRpcProps mismatch detected for this request.\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private static compareTokens(a: IModelRpcProps, b: IModelRpcProps): boolean {\r\n return a.key === b.key &&\r\n a.iTwinId === b.iTwinId &&\r\n a.iModelId === b.iModelId &&\r\n (undefined === a.changeset || (a.changeset.id === b.changeset?.id));\r\n }\r\n\r\n private async reject(error: any): Promise<any> {\r\n this._threw = true;\r\n return error;\r\n }\r\n\r\n private async fulfillResolved(value: any): Promise<RpcRequestFulfillment> {\r\n this._timeOut = new Date().getTime();\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendResponseCreated, this);\r\n const result = await RpcMarshaling.serialize(this.protocol, value);\r\n return this.fulfill(result, value);\r\n }\r\n\r\n private async fulfillRejected(reason: any): Promise<RpcRequestFulfillment> {\r\n this._timeOut = new Date().getTime();\r\n if (!RpcConfiguration.developmentMode)\r\n reason.stack = undefined;\r\n\r\n const result = await RpcMarshaling.serialize(this.protocol, reason);\r\n\r\n if (reason instanceof RpcPendingResponse) {\r\n this._pending = true;\r\n this._threw = false;\r\n result.objects = reason.message;\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedPending, this);\r\n } else if (this.supportsNoContent() && reason?.errorNumber === IModelStatus.NoContent) {\r\n this._noContent = true;\r\n this._threw = false;\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedNoContent, this);\r\n } else if (reason instanceof RpcNotFoundResponse) {\r\n this._notFound = true;\r\n this._threw = false;\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendReportedNotFound, this);\r\n } else {\r\n this._threw = true;\r\n this.protocol.events.raiseEvent(RpcProtocolEvent.BackendErrorOccurred, this);\r\n }\r\n\r\n return this.fulfill(result, reason);\r\n }\r\n\r\n private supportsNoContent() {\r\n if (!this.request.protocolVersion) {\r\n return false;\r\n }\r\n\r\n return RpcProtocol.protocolVersion >= RpcProtocolVersion.IntroducedNoContent && this.request.protocolVersion >= RpcProtocolVersion.IntroducedNoContent;\r\n }\r\n\r\n private supportsStatusCategory() {\r\n if (!this.request.protocolVersion) {\r\n return false;\r\n }\r\n\r\n if (!this.protocol.supportsStatusCategory) {\r\n return false;\r\n }\r\n\r\n return RpcProtocol.protocolVersion >= RpcProtocolVersion.IntroducedStatusCategory && this.request.protocolVersion >= RpcProtocolVersion.IntroducedStatusCategory;\r\n }\r\n\r\n private fulfill(result: RpcSerializedValue, rawResult: any): RpcRequestFulfillment {\r\n const fulfillment: RpcRequestFulfillment = {\r\n result,\r\n rawResult,\r\n status: this.protocol.getCode(this.status),\r\n id: this.request.id,\r\n interfaceName: (typeof (this.operation) === \"undefined\") ? \"\" : this.operation.interfaceDefinition.interfaceName,\r\n allowCompression: this.operation?.policy.allowResponseCompression || false,\r\n };\r\n\r\n this.transformResponseStatus(fulfillment, rawResult);\r\n\r\n try {\r\n const impl = RpcRegistry.instance.getImplForInterface(this.operation.interfaceDefinition) as any;\r\n if (impl[CURRENT_INVOCATION] === this) {\r\n impl[CURRENT_INVOCATION] = undefined;\r\n }\r\n } catch (_err) { }\r\n\r\n return fulfillment;\r\n }\r\n\r\n private lookupOperationFunction(implementation: RpcInterface): (...args: any[]) => Promise<any> {\r\n const func = (implementation as any)[this.operation.operationName];\r\n if (!func || typeof (func) !== \"function\")\r\n throw new IModelError(BentleyStatus.ERROR, `RPC interface class \"${implementation.constructor.name}\" does not implement operation \"${this.operation.operationName}\".`);\r\n\r\n return func;\r\n }\r\n\r\n private transformResponseStatus(fulfillment: RpcRequestFulfillment, rawResult: any) {\r\n if (!this.supportsStatusCategory()) {\r\n return;\r\n }\r\n\r\n let managedStatus: \"notFound\" | \"pending\" | \"noContent\" | undefined;\r\n if (this._pending) {\r\n managedStatus = \"pending\";\r\n } else if (this._notFound) {\r\n managedStatus = \"notFound\";\r\n } else if (this._noContent) {\r\n managedStatus = \"noContent\";\r\n }\r\n\r\n if (managedStatus) {\r\n const responseValue = fulfillment.result.objects;\r\n const status: RpcManagedStatus = { iTwinRpcCoreResponse: true, managedStatus, responseValue };\r\n fulfillment.result.objects = JSON.stringify(status);\r\n status.responseValue = rawResult; // for ipc case\r\n fulfillment.rawResult = status;\r\n }\r\n\r\n if (rawResult instanceof BentleyError) {\r\n fulfillment.status = StatusCategory.for(rawResult).code;\r\n }\r\n }\r\n}\r\n"]}