@itwin/core-common 3.4.0-dev.8 → 3.5.0-dev.4

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 (992) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/lib/cjs/AmbientOcclusion.d.ts +49 -49
  3. package/lib/cjs/AmbientOcclusion.js +55 -55
  4. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  5. package/lib/cjs/AnalysisStyle.d.ts +134 -134
  6. package/lib/cjs/AnalysisStyle.js +165 -165
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/AuthorizationClient.d.ts +11 -11
  9. package/lib/cjs/AuthorizationClient.js +9 -9
  10. package/lib/cjs/AuthorizationClient.js.map +1 -1
  11. package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
  12. package/lib/cjs/BackgroundMapProvider.js +68 -68
  13. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  14. package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
  15. package/lib/cjs/BackgroundMapSettings.js +156 -156
  16. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  17. package/lib/cjs/Base64EncodedString.d.ts +30 -30
  18. package/lib/cjs/Base64EncodedString.js +56 -56
  19. package/lib/cjs/Base64EncodedString.js.map +1 -1
  20. package/lib/cjs/BlobReader.d.ts +31 -31
  21. package/lib/cjs/BlobReader.js +84 -84
  22. package/lib/cjs/BlobReader.js.map +1 -1
  23. package/lib/cjs/BriefcaseTypes.d.ts +189 -189
  24. package/lib/cjs/BriefcaseTypes.js +95 -95
  25. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  26. package/lib/cjs/Camera.d.ts +42 -42
  27. package/lib/cjs/Camera.d.ts.map +1 -1
  28. package/lib/cjs/Camera.js +62 -58
  29. package/lib/cjs/Camera.js.map +1 -1
  30. package/lib/cjs/ChangedElements.d.ts +83 -83
  31. package/lib/cjs/ChangedElements.js +21 -21
  32. package/lib/cjs/ChangedElements.js.map +1 -1
  33. package/lib/cjs/ChangedEntities.d.ts +45 -45
  34. package/lib/cjs/ChangedEntities.js +9 -9
  35. package/lib/cjs/ChangedEntities.js.map +1 -1
  36. package/lib/cjs/ChangesetProps.d.ts +98 -98
  37. package/lib/cjs/ChangesetProps.js +22 -22
  38. package/lib/cjs/ChangesetProps.js.map +1 -1
  39. package/lib/cjs/ClipStyle.d.ts +89 -89
  40. package/lib/cjs/ClipStyle.js +123 -123
  41. package/lib/cjs/ClipStyle.js.map +1 -1
  42. package/lib/cjs/CloudStorage.d.ts +62 -47
  43. package/lib/cjs/CloudStorage.d.ts.map +1 -1
  44. package/lib/cjs/CloudStorage.js +113 -103
  45. package/lib/cjs/CloudStorage.js.map +1 -1
  46. package/lib/cjs/CloudStorageTileCache.d.ts +27 -24
  47. package/lib/cjs/CloudStorageTileCache.d.ts.map +1 -1
  48. package/lib/cjs/CloudStorageTileCache.js +66 -62
  49. package/lib/cjs/CloudStorageTileCache.js.map +1 -1
  50. package/lib/cjs/Code.d.ts +256 -250
  51. package/lib/cjs/Code.d.ts.map +1 -1
  52. package/lib/cjs/Code.js +281 -277
  53. package/lib/cjs/Code.js.map +1 -1
  54. package/lib/cjs/ColorByName.d.ts +161 -161
  55. package/lib/cjs/ColorByName.js +169 -169
  56. package/lib/cjs/ColorByName.js.map +1 -1
  57. package/lib/cjs/ColorDef.d.ts +208 -208
  58. package/lib/cjs/ColorDef.d.ts.map +1 -1
  59. package/lib/cjs/ColorDef.js +571 -569
  60. package/lib/cjs/ColorDef.js.map +1 -1
  61. package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
  62. package/lib/cjs/CommonLoggerCategory.js +26 -26
  63. package/lib/cjs/CommonLoggerCategory.js.map +1 -1
  64. package/lib/cjs/ConcurrentQuery.d.ts +241 -241
  65. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  66. package/lib/cjs/ConcurrentQuery.js +380 -338
  67. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  68. package/lib/cjs/ContextRealityModel.d.ts +255 -255
  69. package/lib/cjs/ContextRealityModel.js +325 -325
  70. package/lib/cjs/ContextRealityModel.js.map +1 -1
  71. package/lib/cjs/DisplayStyleSettings.d.ts +552 -552
  72. package/lib/cjs/DisplayStyleSettings.js +951 -951
  73. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  74. package/lib/cjs/ECSchemaProps.d.ts +40 -0
  75. package/lib/cjs/ECSchemaProps.d.ts.map +1 -0
  76. package/lib/cjs/ECSchemaProps.js +10 -0
  77. package/lib/cjs/ECSchemaProps.js.map +1 -0
  78. package/lib/cjs/ECSqlReader.d.ts +70 -70
  79. package/lib/cjs/ECSqlReader.js +280 -280
  80. package/lib/cjs/ECSqlReader.js.map +1 -1
  81. package/lib/cjs/ECSqlTypes.d.ts +128 -128
  82. package/lib/cjs/ECSqlTypes.js +189 -189
  83. package/lib/cjs/ECSqlTypes.js.map +1 -1
  84. package/lib/cjs/ElementProps.d.ts +476 -470
  85. package/lib/cjs/ElementProps.d.ts.map +1 -1
  86. package/lib/cjs/ElementProps.js +99 -99
  87. package/lib/cjs/ElementProps.js.map +1 -1
  88. package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
  89. package/lib/cjs/EmphasizeElementsProps.js +25 -25
  90. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  91. package/lib/cjs/EntityProps.d.ts +176 -176
  92. package/lib/cjs/EntityProps.js +112 -112
  93. package/lib/cjs/EntityProps.js.map +1 -1
  94. package/lib/cjs/Environment.d.ts +61 -61
  95. package/lib/cjs/Environment.js +73 -73
  96. package/lib/cjs/Environment.js.map +1 -1
  97. package/lib/cjs/FeatureGates.d.ts +31 -31
  98. package/lib/cjs/FeatureGates.d.ts.map +1 -1
  99. package/lib/cjs/FeatureGates.js +55 -51
  100. package/lib/cjs/FeatureGates.js.map +1 -1
  101. package/lib/cjs/FeatureIndex.d.ts +39 -39
  102. package/lib/cjs/FeatureIndex.d.ts.map +1 -1
  103. package/lib/cjs/FeatureIndex.js +63 -59
  104. package/lib/cjs/FeatureIndex.js.map +1 -1
  105. package/lib/cjs/FeatureSymbology.d.ts +444 -444
  106. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  107. package/lib/cjs/FeatureSymbology.js +614 -614
  108. package/lib/cjs/FeatureSymbology.js.map +1 -1
  109. package/lib/cjs/FeatureTable.d.ts +141 -141
  110. package/lib/cjs/FeatureTable.js +278 -278
  111. package/lib/cjs/FeatureTable.js.map +1 -1
  112. package/lib/cjs/Fonts.d.ts +51 -51
  113. package/lib/cjs/Fonts.d.ts.map +1 -1
  114. package/lib/cjs/Fonts.js +53 -53
  115. package/lib/cjs/Fonts.js.map +1 -1
  116. package/lib/cjs/Frustum.d.ts +114 -114
  117. package/lib/cjs/Frustum.d.ts.map +1 -1
  118. package/lib/cjs/Frustum.js +292 -258
  119. package/lib/cjs/Frustum.js.map +1 -1
  120. package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
  121. package/lib/cjs/GeoCoordinateServices.js +80 -80
  122. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  123. package/lib/cjs/GeometryContainment.d.ts +28 -28
  124. package/lib/cjs/GeometryContainment.js +9 -9
  125. package/lib/cjs/GeometryContainment.js.map +1 -1
  126. package/lib/cjs/GeometryParams.d.ts +130 -130
  127. package/lib/cjs/GeometryParams.js +174 -174
  128. package/lib/cjs/GeometryParams.js.map +1 -1
  129. package/lib/cjs/GeometrySummary.d.ts +45 -45
  130. package/lib/cjs/GeometrySummary.js +23 -23
  131. package/lib/cjs/GeometrySummary.js.map +1 -1
  132. package/lib/cjs/Gradient.d.ts +139 -123
  133. package/lib/cjs/Gradient.d.ts.map +1 -1
  134. package/lib/cjs/Gradient.js +455 -444
  135. package/lib/cjs/Gradient.js.map +1 -1
  136. package/lib/cjs/GraphicParams.d.ts +58 -58
  137. package/lib/cjs/GraphicParams.js +85 -85
  138. package/lib/cjs/GraphicParams.js.map +1 -1
  139. package/lib/cjs/GroundPlane.d.ts +52 -52
  140. package/lib/cjs/GroundPlane.js +64 -64
  141. package/lib/cjs/GroundPlane.js.map +1 -1
  142. package/lib/cjs/HSLColor.d.ts +20 -20
  143. package/lib/cjs/HSLColor.js +32 -32
  144. package/lib/cjs/HSLColor.js.map +1 -1
  145. package/lib/cjs/HSVColor.d.ts +30 -30
  146. package/lib/cjs/HSVColor.js +59 -59
  147. package/lib/cjs/HSVColor.js.map +1 -1
  148. package/lib/cjs/HiddenLine.d.ts +97 -97
  149. package/lib/cjs/HiddenLine.js +162 -162
  150. package/lib/cjs/HiddenLine.js.map +1 -1
  151. package/lib/cjs/Hilite.d.ts +50 -50
  152. package/lib/cjs/Hilite.js +64 -64
  153. package/lib/cjs/Hilite.js.map +1 -1
  154. package/lib/cjs/IModel.d.ts +355 -355
  155. package/lib/cjs/IModel.js +340 -340
  156. package/lib/cjs/IModel.js.map +1 -1
  157. package/lib/cjs/IModelError.d.ts +36 -36
  158. package/lib/cjs/IModelError.js +72 -72
  159. package/lib/cjs/IModelError.js.map +1 -1
  160. package/lib/cjs/IModelVersion.d.ts +68 -68
  161. package/lib/cjs/IModelVersion.js +79 -79
  162. package/lib/cjs/IModelVersion.js.map +1 -1
  163. package/lib/cjs/Image.d.ts +86 -86
  164. package/lib/cjs/Image.d.ts.map +1 -1
  165. package/lib/cjs/Image.js +128 -126
  166. package/lib/cjs/Image.js.map +1 -1
  167. package/lib/cjs/IpcAppProps.d.ts +124 -124
  168. package/lib/cjs/IpcAppProps.js +18 -18
  169. package/lib/cjs/IpcAppProps.js.map +1 -1
  170. package/lib/cjs/LightSettings.d.ts +224 -224
  171. package/lib/cjs/LightSettings.js +309 -309
  172. package/lib/cjs/LightSettings.js.map +1 -1
  173. package/lib/cjs/LinePixels.d.ts +34 -34
  174. package/lib/cjs/LinePixels.js +42 -42
  175. package/lib/cjs/LinePixels.js.map +1 -1
  176. package/lib/cjs/Localization.d.ts +111 -112
  177. package/lib/cjs/Localization.d.ts.map +1 -1
  178. package/lib/cjs/Localization.js +26 -26
  179. package/lib/cjs/Localization.js.map +1 -1
  180. package/lib/cjs/MapImagerySettings.d.ts +62 -62
  181. package/lib/cjs/MapImagerySettings.js +80 -80
  182. package/lib/cjs/MapImagerySettings.js.map +1 -1
  183. package/lib/cjs/MapLayerSettings.d.ts +272 -272
  184. package/lib/cjs/MapLayerSettings.js +411 -411
  185. package/lib/cjs/MapLayerSettings.js.map +1 -1
  186. package/lib/cjs/MassProperties.d.ts +64 -64
  187. package/lib/cjs/MassProperties.js +23 -23
  188. package/lib/cjs/MassProperties.js.map +1 -1
  189. package/lib/cjs/MaterialProps.d.ts +118 -118
  190. package/lib/cjs/MaterialProps.js +23 -23
  191. package/lib/cjs/MaterialProps.js.map +1 -1
  192. package/lib/cjs/ModelClipGroup.d.ts +67 -67
  193. package/lib/cjs/ModelClipGroup.js +98 -98
  194. package/lib/cjs/ModelClipGroup.js.map +1 -1
  195. package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
  196. package/lib/cjs/ModelGeometryChanges.js +83 -83
  197. package/lib/cjs/ModelGeometryChanges.js.map +1 -1
  198. package/lib/cjs/ModelProps.d.ts +66 -66
  199. package/lib/cjs/ModelProps.js +9 -9
  200. package/lib/cjs/ModelProps.js.map +1 -1
  201. package/lib/cjs/NativeAppProps.d.ts +122 -122
  202. package/lib/cjs/NativeAppProps.js +30 -30
  203. package/lib/cjs/NativeAppProps.js.map +1 -1
  204. package/lib/cjs/OctEncodedNormal.d.ts +33 -33
  205. package/lib/cjs/OctEncodedNormal.js +98 -98
  206. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  207. package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
  208. package/lib/cjs/PlanProjectionSettings.js +63 -63
  209. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  210. package/lib/cjs/PlanarClipMask.d.ts +177 -177
  211. package/lib/cjs/PlanarClipMask.js +136 -136
  212. package/lib/cjs/PlanarClipMask.js.map +1 -1
  213. package/lib/cjs/QPoint.d.ts +479 -299
  214. package/lib/cjs/QPoint.d.ts.map +1 -1
  215. package/lib/cjs/QPoint.js +826 -626
  216. package/lib/cjs/QPoint.js.map +1 -1
  217. package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
  218. package/lib/cjs/RealityDataAccessProps.js +19 -19
  219. package/lib/cjs/RealityDataAccessProps.js.map +1 -1
  220. package/lib/cjs/Render.d.ts +89 -89
  221. package/lib/cjs/Render.d.ts.map +1 -1
  222. package/lib/cjs/Render.js +177 -169
  223. package/lib/cjs/Render.js.map +1 -1
  224. package/lib/cjs/RenderMaterial.d.ts +58 -58
  225. package/lib/cjs/RenderMaterial.js +76 -76
  226. package/lib/cjs/RenderMaterial.js.map +1 -1
  227. package/lib/cjs/RenderSchedule.d.ts +540 -540
  228. package/lib/cjs/RenderSchedule.js +1000 -1000
  229. package/lib/cjs/RenderTexture.d.ts +70 -70
  230. package/lib/cjs/RenderTexture.js +59 -59
  231. package/lib/cjs/RenderTexture.js.map +1 -1
  232. package/lib/cjs/RgbColor.d.ts +39 -39
  233. package/lib/cjs/RgbColor.js +67 -67
  234. package/lib/cjs/RgbColor.js.map +1 -1
  235. package/lib/cjs/RpcInterface.d.ts +33 -33
  236. package/lib/cjs/RpcInterface.js +137 -137
  237. package/lib/cjs/RpcInterface.js.map +1 -1
  238. package/lib/cjs/RpcManager.d.ts +40 -40
  239. package/lib/cjs/RpcManager.js +55 -55
  240. package/lib/cjs/RpcManager.js.map +1 -1
  241. package/lib/cjs/SessionProps.d.ts +16 -16
  242. package/lib/cjs/SessionProps.js +9 -9
  243. package/lib/cjs/SessionProps.js.map +1 -1
  244. package/lib/cjs/SkyBox.d.ts +215 -215
  245. package/lib/cjs/SkyBox.js +210 -210
  246. package/lib/cjs/SkyBox.js.map +1 -1
  247. package/lib/cjs/Snapping.d.ts +49 -49
  248. package/lib/cjs/Snapping.js +9 -9
  249. package/lib/cjs/Snapping.js.map +1 -1
  250. package/lib/cjs/SolarCalculate.d.ts +27 -27
  251. package/lib/cjs/SolarCalculate.js +211 -211
  252. package/lib/cjs/SolarCalculate.js.map +1 -1
  253. package/lib/cjs/SolarShadows.d.ts +35 -35
  254. package/lib/cjs/SolarShadows.js +62 -62
  255. package/lib/cjs/SolarShadows.js.map +1 -1
  256. package/lib/cjs/SpatialClassification.d.ts +208 -208
  257. package/lib/cjs/SpatialClassification.js +340 -340
  258. package/lib/cjs/SpatialClassification.js.map +1 -1
  259. package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
  260. package/lib/cjs/SubCategoryAppearance.js +96 -96
  261. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  262. package/lib/cjs/SubCategoryOverride.d.ts +46 -46
  263. package/lib/cjs/SubCategoryOverride.d.ts.map +1 -1
  264. package/lib/cjs/SubCategoryOverride.js +104 -104
  265. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  266. package/lib/cjs/TerrainSettings.d.ts +82 -77
  267. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  268. package/lib/cjs/TerrainSettings.js +102 -101
  269. package/lib/cjs/TerrainSettings.js.map +1 -1
  270. package/lib/cjs/TextureMapping.d.ts +101 -101
  271. package/lib/cjs/TextureMapping.js +174 -174
  272. package/lib/cjs/TextureMapping.js.map +1 -1
  273. package/lib/cjs/TextureProps.d.ts +65 -65
  274. package/lib/cjs/TextureProps.js +28 -28
  275. package/lib/cjs/TextureProps.js.map +1 -1
  276. package/lib/cjs/ThematicDisplay.d.ts +230 -234
  277. package/lib/cjs/ThematicDisplay.d.ts.map +1 -1
  278. package/lib/cjs/ThematicDisplay.js +344 -344
  279. package/lib/cjs/ThematicDisplay.js.map +1 -1
  280. package/lib/cjs/Thumbnail.d.ts +26 -26
  281. package/lib/cjs/Thumbnail.js +9 -9
  282. package/lib/cjs/Thumbnail.js.map +1 -1
  283. package/lib/cjs/TileProps.d.ts +82 -77
  284. package/lib/cjs/TileProps.d.ts.map +1 -1
  285. package/lib/cjs/TileProps.js +29 -18
  286. package/lib/cjs/TileProps.js.map +1 -1
  287. package/lib/cjs/Tween.d.ts +191 -191
  288. package/lib/cjs/Tween.js +570 -570
  289. package/lib/cjs/Tween.js.map +1 -1
  290. package/lib/cjs/TxnAction.d.ts +21 -21
  291. package/lib/cjs/TxnAction.js +29 -29
  292. package/lib/cjs/TxnAction.js.map +1 -1
  293. package/lib/cjs/ViewDetails.d.ts +125 -125
  294. package/lib/cjs/ViewDetails.js +158 -158
  295. package/lib/cjs/ViewDetails.js.map +1 -1
  296. package/lib/cjs/ViewFlags.d.ts +291 -291
  297. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  298. package/lib/cjs/ViewFlags.js +368 -368
  299. package/lib/cjs/ViewFlags.js.map +1 -1
  300. package/lib/cjs/ViewProps.d.ts +205 -205
  301. package/lib/cjs/ViewProps.js +9 -9
  302. package/lib/cjs/ViewProps.js.map +1 -1
  303. package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
  304. package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
  305. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  306. package/lib/cjs/core-common.d.ts +240 -239
  307. package/lib/cjs/core-common.d.ts.map +1 -1
  308. package/lib/cjs/core-common.js +256 -255
  309. package/lib/cjs/core-common.js.map +1 -1
  310. package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
  311. package/lib/cjs/domains/FunctionalElementProps.js +9 -9
  312. package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
  313. package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
  314. package/lib/cjs/domains/GenericElementProps.js +9 -9
  315. package/lib/cjs/domains/GenericElementProps.js.map +1 -1
  316. package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
  317. package/lib/cjs/geometry/AdditionalTransform.js +85 -85
  318. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  319. package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
  320. package/lib/cjs/geometry/AreaPattern.js +204 -204
  321. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  322. package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
  323. package/lib/cjs/geometry/BoundingSphere.d.ts.map +1 -1
  324. package/lib/cjs/geometry/BoundingSphere.js +30 -24
  325. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  326. package/lib/cjs/geometry/Cartographic.d.ts +137 -137
  327. package/lib/cjs/geometry/Cartographic.js +345 -345
  328. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  329. package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
  330. package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
  331. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  332. package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
  333. package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
  334. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  335. package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
  336. package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
  337. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  338. package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
  339. package/lib/cjs/geometry/FrustumPlanes.js +132 -132
  340. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  341. package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
  342. package/lib/cjs/geometry/GeodeticDatum.js +401 -401
  343. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  344. package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
  345. package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
  346. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  347. package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
  348. package/lib/cjs/geometry/GeometryStream.js +469 -469
  349. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  350. package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
  351. package/lib/cjs/geometry/ImageGraphic.js +98 -98
  352. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  353. package/lib/cjs/geometry/LineStyle.d.ts +71 -71
  354. package/lib/cjs/geometry/LineStyle.js +129 -129
  355. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  356. package/lib/cjs/geometry/Placement.d.ts +95 -95
  357. package/lib/cjs/geometry/Placement.js +131 -131
  358. package/lib/cjs/geometry/Placement.js.map +1 -1
  359. package/lib/cjs/geometry/Projection.d.ts +251 -251
  360. package/lib/cjs/geometry/Projection.js +198 -198
  361. package/lib/cjs/geometry/Projection.js.map +1 -1
  362. package/lib/cjs/geometry/TextString.d.ts +55 -55
  363. package/lib/cjs/geometry/TextString.d.ts.map +1 -1
  364. package/lib/cjs/geometry/TextString.js +65 -65
  365. package/lib/cjs/geometry/TextString.js.map +1 -1
  366. package/lib/cjs/ipc/IpcSession.d.ts +23 -23
  367. package/lib/cjs/ipc/IpcSession.js +27 -27
  368. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  369. package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
  370. package/lib/cjs/ipc/IpcSocket.js +16 -16
  371. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  372. package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -58
  373. package/lib/cjs/ipc/IpcWebSocket.d.ts.map +1 -1
  374. package/lib/cjs/ipc/IpcWebSocket.js +151 -137
  375. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  376. package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
  377. package/lib/cjs/ipc/IpcWebSocketTransport.js +158 -151
  378. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  379. package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
  380. package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
  381. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  382. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +75 -75
  383. package/lib/cjs/rpc/IModelReadRpcInterface.js +115 -115
  384. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  385. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -53
  386. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  387. package/lib/cjs/rpc/IModelTileRpcInterface.js +95 -86
  388. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  389. package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  390. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
  391. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  392. package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
  393. package/lib/cjs/rpc/TestRpcManager.js +39 -39
  394. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  395. package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
  396. package/lib/cjs/rpc/WipRpcInterface.js +40 -40
  397. package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
  398. package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
  399. package/lib/cjs/rpc/core/RpcConfiguration.js +192 -192
  400. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  401. package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -83
  402. package/lib/cjs/rpc/core/RpcConstants.d.ts.map +1 -1
  403. package/lib/cjs/rpc/core/RpcConstants.js +103 -100
  404. package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
  405. package/lib/cjs/rpc/core/RpcControl.d.ts +52 -52
  406. package/lib/cjs/rpc/core/RpcControl.js +149 -149
  407. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  408. package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
  409. package/lib/cjs/rpc/core/RpcInvocation.js +257 -257
  410. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  411. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +36 -36
  412. package/lib/cjs/rpc/core/RpcMarshaling.js +153 -153
  413. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  414. package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
  415. package/lib/cjs/rpc/core/RpcOperation.js +133 -133
  416. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  417. package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
  418. package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
  419. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  420. package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
  421. package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
  422. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  423. package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
  424. package/lib/cjs/rpc/core/RpcPush.js +127 -127
  425. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  426. package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
  427. package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
  428. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  429. package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
  430. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  431. package/lib/cjs/rpc/core/RpcRequest.js +477 -471
  432. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  433. package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
  434. package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
  435. package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
  436. package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
  437. package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
  438. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  439. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
  440. package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
  441. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  442. package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  443. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
  444. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  445. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  446. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  447. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -139
  448. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  449. package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
  450. package/lib/cjs/rpc/web/OpenAPI.js +60 -60
  451. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  452. package/lib/cjs/rpc/web/RpcMultipart.d.ts +31 -31
  453. package/lib/cjs/rpc/web/RpcMultipart.js +45 -45
  454. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  455. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +17 -17
  456. package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
  457. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  458. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  459. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  460. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -100
  461. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  462. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +71 -71
  463. package/lib/cjs/rpc/web/WebAppRpcRequest.js +374 -374
  464. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  465. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  466. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  467. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +359 -359
  468. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  469. package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
  470. package/lib/cjs/tile/B3dmTileIO.js +66 -66
  471. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  472. package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
  473. package/lib/cjs/tile/CompositeTileIO.js +26 -26
  474. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  475. package/lib/cjs/tile/ElementGraphics.d.ts +134 -134
  476. package/lib/cjs/tile/ElementGraphics.js +9 -9
  477. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  478. package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
  479. package/lib/cjs/tile/GltfTileIO.js +109 -109
  480. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  481. package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
  482. package/lib/cjs/tile/I3dmTileIO.d.ts.map +1 -1
  483. package/lib/cjs/tile/I3dmTileIO.js +40 -40
  484. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  485. package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
  486. package/lib/cjs/tile/IModelTileIO.js +95 -95
  487. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  488. package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
  489. package/lib/cjs/tile/PntsTileIO.js +26 -26
  490. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  491. package/lib/cjs/tile/TileIO.d.ts +66 -66
  492. package/lib/cjs/tile/TileIO.js +118 -118
  493. package/lib/cjs/tile/TileIO.js.map +1 -1
  494. package/lib/cjs/tile/TileMetadata.d.ts +228 -228
  495. package/lib/cjs/tile/TileMetadata.js +676 -676
  496. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  497. package/lib/esm/AmbientOcclusion.d.ts +49 -49
  498. package/lib/esm/AmbientOcclusion.js +52 -52
  499. package/lib/esm/AmbientOcclusion.js.map +1 -1
  500. package/lib/esm/AnalysisStyle.d.ts +134 -134
  501. package/lib/esm/AnalysisStyle.js +159 -159
  502. package/lib/esm/AnalysisStyle.js.map +1 -1
  503. package/lib/esm/AuthorizationClient.d.ts +11 -11
  504. package/lib/esm/AuthorizationClient.js +8 -8
  505. package/lib/esm/AuthorizationClient.js.map +1 -1
  506. package/lib/esm/BackgroundMapProvider.d.ts +51 -51
  507. package/lib/esm/BackgroundMapProvider.js +64 -64
  508. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  509. package/lib/esm/BackgroundMapSettings.d.ts +136 -136
  510. package/lib/esm/BackgroundMapSettings.js +152 -152
  511. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  512. package/lib/esm/Base64EncodedString.d.ts +30 -30
  513. package/lib/esm/Base64EncodedString.js +53 -53
  514. package/lib/esm/Base64EncodedString.js.map +1 -1
  515. package/lib/esm/BlobReader.d.ts +31 -31
  516. package/lib/esm/BlobReader.js +79 -79
  517. package/lib/esm/BlobReader.js.map +1 -1
  518. package/lib/esm/BriefcaseTypes.d.ts +189 -189
  519. package/lib/esm/BriefcaseTypes.js +92 -92
  520. package/lib/esm/BriefcaseTypes.js.map +1 -1
  521. package/lib/esm/Camera.d.ts +42 -42
  522. package/lib/esm/Camera.d.ts.map +1 -1
  523. package/lib/esm/Camera.js +58 -54
  524. package/lib/esm/Camera.js.map +1 -1
  525. package/lib/esm/ChangedElements.d.ts +83 -83
  526. package/lib/esm/ChangedElements.js +18 -18
  527. package/lib/esm/ChangedElements.js.map +1 -1
  528. package/lib/esm/ChangedEntities.d.ts +45 -45
  529. package/lib/esm/ChangedEntities.js +8 -8
  530. package/lib/esm/ChangedEntities.js.map +1 -1
  531. package/lib/esm/ChangesetProps.d.ts +98 -98
  532. package/lib/esm/ChangesetProps.js +19 -19
  533. package/lib/esm/ChangesetProps.js.map +1 -1
  534. package/lib/esm/ClipStyle.d.ts +89 -89
  535. package/lib/esm/ClipStyle.js +118 -118
  536. package/lib/esm/ClipStyle.js.map +1 -1
  537. package/lib/esm/CloudStorage.d.ts +62 -47
  538. package/lib/esm/CloudStorage.d.ts.map +1 -1
  539. package/lib/esm/CloudStorage.js +109 -99
  540. package/lib/esm/CloudStorage.js.map +1 -1
  541. package/lib/esm/CloudStorageTileCache.d.ts +27 -24
  542. package/lib/esm/CloudStorageTileCache.d.ts.map +1 -1
  543. package/lib/esm/CloudStorageTileCache.js +62 -58
  544. package/lib/esm/CloudStorageTileCache.js.map +1 -1
  545. package/lib/esm/Code.d.ts +256 -250
  546. package/lib/esm/Code.d.ts.map +1 -1
  547. package/lib/esm/Code.js +276 -272
  548. package/lib/esm/Code.js.map +1 -1
  549. package/lib/esm/ColorByName.d.ts +161 -161
  550. package/lib/esm/ColorByName.js +166 -166
  551. package/lib/esm/ColorByName.js.map +1 -1
  552. package/lib/esm/ColorDef.d.ts +208 -208
  553. package/lib/esm/ColorDef.d.ts.map +1 -1
  554. package/lib/esm/ColorDef.js +567 -565
  555. package/lib/esm/ColorDef.js.map +1 -1
  556. package/lib/esm/CommonLoggerCategory.d.ts +18 -18
  557. package/lib/esm/CommonLoggerCategory.js +23 -23
  558. package/lib/esm/CommonLoggerCategory.js.map +1 -1
  559. package/lib/esm/ConcurrentQuery.d.ts +241 -241
  560. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  561. package/lib/esm/ConcurrentQuery.js +373 -331
  562. package/lib/esm/ConcurrentQuery.js.map +1 -1
  563. package/lib/esm/ContextRealityModel.d.ts +255 -255
  564. package/lib/esm/ContextRealityModel.js +320 -320
  565. package/lib/esm/ContextRealityModel.js.map +1 -1
  566. package/lib/esm/DisplayStyleSettings.d.ts +552 -552
  567. package/lib/esm/DisplayStyleSettings.js +946 -946
  568. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  569. package/lib/esm/ECSchemaProps.d.ts +40 -0
  570. package/lib/esm/ECSchemaProps.d.ts.map +1 -0
  571. package/lib/esm/ECSchemaProps.js +9 -0
  572. package/lib/esm/ECSchemaProps.js.map +1 -0
  573. package/lib/esm/ECSqlReader.d.ts +70 -70
  574. package/lib/esm/ECSqlReader.js +275 -275
  575. package/lib/esm/ECSqlReader.js.map +1 -1
  576. package/lib/esm/ECSqlTypes.d.ts +128 -128
  577. package/lib/esm/ECSqlTypes.js +185 -185
  578. package/lib/esm/ECSqlTypes.js.map +1 -1
  579. package/lib/esm/ElementProps.d.ts +476 -470
  580. package/lib/esm/ElementProps.d.ts.map +1 -1
  581. package/lib/esm/ElementProps.js +92 -92
  582. package/lib/esm/ElementProps.js.map +1 -1
  583. package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
  584. package/lib/esm/EmphasizeElementsProps.js +22 -22
  585. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  586. package/lib/esm/EntityProps.d.ts +176 -176
  587. package/lib/esm/EntityProps.js +107 -107
  588. package/lib/esm/EntityProps.js.map +1 -1
  589. package/lib/esm/Environment.d.ts +61 -61
  590. package/lib/esm/Environment.js +69 -69
  591. package/lib/esm/Environment.js.map +1 -1
  592. package/lib/esm/FeatureGates.d.ts +31 -31
  593. package/lib/esm/FeatureGates.d.ts.map +1 -1
  594. package/lib/esm/FeatureGates.js +51 -47
  595. package/lib/esm/FeatureGates.js.map +1 -1
  596. package/lib/esm/FeatureIndex.d.ts +39 -39
  597. package/lib/esm/FeatureIndex.d.ts.map +1 -1
  598. package/lib/esm/FeatureIndex.js +57 -53
  599. package/lib/esm/FeatureIndex.js.map +1 -1
  600. package/lib/esm/FeatureSymbology.d.ts +444 -444
  601. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  602. package/lib/esm/FeatureSymbology.js +609 -609
  603. package/lib/esm/FeatureSymbology.js.map +1 -1
  604. package/lib/esm/FeatureTable.d.ts +141 -141
  605. package/lib/esm/FeatureTable.js +272 -272
  606. package/lib/esm/FeatureTable.js.map +1 -1
  607. package/lib/esm/Fonts.d.ts +51 -51
  608. package/lib/esm/Fonts.d.ts.map +1 -1
  609. package/lib/esm/Fonts.js +49 -49
  610. package/lib/esm/Fonts.js.map +1 -1
  611. package/lib/esm/Frustum.d.ts +114 -114
  612. package/lib/esm/Frustum.d.ts.map +1 -1
  613. package/lib/esm/Frustum.js +288 -254
  614. package/lib/esm/Frustum.js.map +1 -1
  615. package/lib/esm/GeoCoordinateServices.d.ts +119 -119
  616. package/lib/esm/GeoCoordinateServices.js +76 -76
  617. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  618. package/lib/esm/GeometryContainment.d.ts +28 -28
  619. package/lib/esm/GeometryContainment.js +8 -8
  620. package/lib/esm/GeometryContainment.js.map +1 -1
  621. package/lib/esm/GeometryParams.d.ts +130 -130
  622. package/lib/esm/GeometryParams.js +170 -170
  623. package/lib/esm/GeometryParams.js.map +1 -1
  624. package/lib/esm/GeometrySummary.d.ts +45 -45
  625. package/lib/esm/GeometrySummary.js +20 -20
  626. package/lib/esm/GeometrySummary.js.map +1 -1
  627. package/lib/esm/Gradient.d.ts +139 -123
  628. package/lib/esm/Gradient.d.ts.map +1 -1
  629. package/lib/esm/Gradient.js +452 -441
  630. package/lib/esm/Gradient.js.map +1 -1
  631. package/lib/esm/GraphicParams.d.ts +58 -58
  632. package/lib/esm/GraphicParams.js +81 -81
  633. package/lib/esm/GraphicParams.js.map +1 -1
  634. package/lib/esm/GroundPlane.d.ts +52 -52
  635. package/lib/esm/GroundPlane.js +60 -60
  636. package/lib/esm/GroundPlane.js.map +1 -1
  637. package/lib/esm/HSLColor.d.ts +20 -20
  638. package/lib/esm/HSLColor.js +28 -28
  639. package/lib/esm/HSLColor.js.map +1 -1
  640. package/lib/esm/HSVColor.d.ts +30 -30
  641. package/lib/esm/HSVColor.js +55 -55
  642. package/lib/esm/HSVColor.js.map +1 -1
  643. package/lib/esm/HiddenLine.d.ts +97 -97
  644. package/lib/esm/HiddenLine.js +159 -159
  645. package/lib/esm/HiddenLine.js.map +1 -1
  646. package/lib/esm/Hilite.d.ts +50 -50
  647. package/lib/esm/Hilite.js +61 -61
  648. package/lib/esm/Hilite.js.map +1 -1
  649. package/lib/esm/IModel.d.ts +355 -355
  650. package/lib/esm/IModel.js +335 -335
  651. package/lib/esm/IModel.js.map +1 -1
  652. package/lib/esm/IModelError.d.ts +36 -36
  653. package/lib/esm/IModelError.js +55 -55
  654. package/lib/esm/IModelError.js.map +1 -1
  655. package/lib/esm/IModelVersion.d.ts +68 -68
  656. package/lib/esm/IModelVersion.js +75 -75
  657. package/lib/esm/IModelVersion.js.map +1 -1
  658. package/lib/esm/Image.d.ts +86 -86
  659. package/lib/esm/Image.d.ts.map +1 -1
  660. package/lib/esm/Image.js +120 -118
  661. package/lib/esm/Image.js.map +1 -1
  662. package/lib/esm/IpcAppProps.d.ts +124 -124
  663. package/lib/esm/IpcAppProps.js +15 -15
  664. package/lib/esm/IpcAppProps.js.map +1 -1
  665. package/lib/esm/LightSettings.d.ts +224 -224
  666. package/lib/esm/LightSettings.js +301 -301
  667. package/lib/esm/LightSettings.js.map +1 -1
  668. package/lib/esm/LinePixels.d.ts +34 -34
  669. package/lib/esm/LinePixels.js +39 -39
  670. package/lib/esm/LinePixels.js.map +1 -1
  671. package/lib/esm/Localization.d.ts +111 -112
  672. package/lib/esm/Localization.d.ts.map +1 -1
  673. package/lib/esm/Localization.js +22 -22
  674. package/lib/esm/Localization.js.map +1 -1
  675. package/lib/esm/MapImagerySettings.d.ts +62 -62
  676. package/lib/esm/MapImagerySettings.js +76 -76
  677. package/lib/esm/MapImagerySettings.js.map +1 -1
  678. package/lib/esm/MapLayerSettings.d.ts +272 -272
  679. package/lib/esm/MapLayerSettings.js +403 -403
  680. package/lib/esm/MapLayerSettings.js.map +1 -1
  681. package/lib/esm/MassProperties.d.ts +64 -64
  682. package/lib/esm/MassProperties.js +20 -20
  683. package/lib/esm/MassProperties.js.map +1 -1
  684. package/lib/esm/MaterialProps.d.ts +118 -118
  685. package/lib/esm/MaterialProps.js +20 -20
  686. package/lib/esm/MaterialProps.js.map +1 -1
  687. package/lib/esm/ModelClipGroup.d.ts +67 -67
  688. package/lib/esm/ModelClipGroup.js +93 -93
  689. package/lib/esm/ModelClipGroup.js.map +1 -1
  690. package/lib/esm/ModelGeometryChanges.d.ts +107 -107
  691. package/lib/esm/ModelGeometryChanges.js +80 -80
  692. package/lib/esm/ModelGeometryChanges.js.map +1 -1
  693. package/lib/esm/ModelProps.d.ts +66 -66
  694. package/lib/esm/ModelProps.js +8 -8
  695. package/lib/esm/ModelProps.js.map +1 -1
  696. package/lib/esm/NativeAppProps.d.ts +122 -122
  697. package/lib/esm/NativeAppProps.js +27 -27
  698. package/lib/esm/NativeAppProps.js.map +1 -1
  699. package/lib/esm/OctEncodedNormal.d.ts +33 -33
  700. package/lib/esm/OctEncodedNormal.js +93 -93
  701. package/lib/esm/OctEncodedNormal.js.map +1 -1
  702. package/lib/esm/PlanProjectionSettings.d.ts +47 -47
  703. package/lib/esm/PlanProjectionSettings.js +59 -59
  704. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  705. package/lib/esm/PlanarClipMask.d.ts +177 -177
  706. package/lib/esm/PlanarClipMask.js +132 -132
  707. package/lib/esm/PlanarClipMask.js.map +1 -1
  708. package/lib/esm/QPoint.d.ts +479 -299
  709. package/lib/esm/QPoint.d.ts.map +1 -1
  710. package/lib/esm/QPoint.js +815 -617
  711. package/lib/esm/QPoint.js.map +1 -1
  712. package/lib/esm/RealityDataAccessProps.d.ts +41 -41
  713. package/lib/esm/RealityDataAccessProps.js +16 -16
  714. package/lib/esm/RealityDataAccessProps.js.map +1 -1
  715. package/lib/esm/Render.d.ts +89 -89
  716. package/lib/esm/Render.d.ts.map +1 -1
  717. package/lib/esm/Render.js +165 -157
  718. package/lib/esm/Render.js.map +1 -1
  719. package/lib/esm/RenderMaterial.d.ts +58 -58
  720. package/lib/esm/RenderMaterial.js +72 -72
  721. package/lib/esm/RenderMaterial.js.map +1 -1
  722. package/lib/esm/RenderSchedule.d.ts +540 -540
  723. package/lib/esm/RenderSchedule.js +997 -997
  724. package/lib/esm/RenderTexture.d.ts +70 -70
  725. package/lib/esm/RenderTexture.js +55 -55
  726. package/lib/esm/RenderTexture.js.map +1 -1
  727. package/lib/esm/RgbColor.d.ts +39 -39
  728. package/lib/esm/RgbColor.js +63 -63
  729. package/lib/esm/RgbColor.js.map +1 -1
  730. package/lib/esm/RpcInterface.d.ts +33 -33
  731. package/lib/esm/RpcInterface.js +133 -133
  732. package/lib/esm/RpcInterface.js.map +1 -1
  733. package/lib/esm/RpcManager.d.ts +40 -40
  734. package/lib/esm/RpcManager.js +51 -51
  735. package/lib/esm/RpcManager.js.map +1 -1
  736. package/lib/esm/SessionProps.d.ts +16 -16
  737. package/lib/esm/SessionProps.js +8 -8
  738. package/lib/esm/SessionProps.js.map +1 -1
  739. package/lib/esm/SkyBox.d.ts +215 -215
  740. package/lib/esm/SkyBox.js +203 -203
  741. package/lib/esm/SkyBox.js.map +1 -1
  742. package/lib/esm/Snapping.d.ts +49 -49
  743. package/lib/esm/Snapping.js +8 -8
  744. package/lib/esm/Snapping.js.map +1 -1
  745. package/lib/esm/SolarCalculate.d.ts +27 -27
  746. package/lib/esm/SolarCalculate.js +204 -204
  747. package/lib/esm/SolarCalculate.js.map +1 -1
  748. package/lib/esm/SolarShadows.d.ts +35 -35
  749. package/lib/esm/SolarShadows.js +58 -58
  750. package/lib/esm/SolarShadows.js.map +1 -1
  751. package/lib/esm/SpatialClassification.d.ts +208 -208
  752. package/lib/esm/SpatialClassification.js +334 -334
  753. package/lib/esm/SpatialClassification.js.map +1 -1
  754. package/lib/esm/SubCategoryAppearance.d.ts +91 -91
  755. package/lib/esm/SubCategoryAppearance.js +92 -92
  756. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  757. package/lib/esm/SubCategoryOverride.d.ts +46 -46
  758. package/lib/esm/SubCategoryOverride.d.ts.map +1 -1
  759. package/lib/esm/SubCategoryOverride.js +100 -100
  760. package/lib/esm/SubCategoryOverride.js.map +1 -1
  761. package/lib/esm/TerrainSettings.d.ts +82 -77
  762. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  763. package/lib/esm/TerrainSettings.js +98 -97
  764. package/lib/esm/TerrainSettings.js.map +1 -1
  765. package/lib/esm/TextureMapping.d.ts +101 -101
  766. package/lib/esm/TextureMapping.js +170 -170
  767. package/lib/esm/TextureMapping.js.map +1 -1
  768. package/lib/esm/TextureProps.d.ts +65 -65
  769. package/lib/esm/TextureProps.js +25 -25
  770. package/lib/esm/TextureProps.js.map +1 -1
  771. package/lib/esm/ThematicDisplay.d.ts +230 -234
  772. package/lib/esm/ThematicDisplay.d.ts.map +1 -1
  773. package/lib/esm/ThematicDisplay.js +337 -337
  774. package/lib/esm/ThematicDisplay.js.map +1 -1
  775. package/lib/esm/Thumbnail.d.ts +26 -26
  776. package/lib/esm/Thumbnail.js +8 -8
  777. package/lib/esm/Thumbnail.js.map +1 -1
  778. package/lib/esm/TileProps.d.ts +82 -77
  779. package/lib/esm/TileProps.d.ts.map +1 -1
  780. package/lib/esm/TileProps.js +25 -15
  781. package/lib/esm/TileProps.js.map +1 -1
  782. package/lib/esm/Tween.d.ts +191 -191
  783. package/lib/esm/Tween.js +565 -565
  784. package/lib/esm/Tween.js.map +1 -1
  785. package/lib/esm/TxnAction.d.ts +21 -21
  786. package/lib/esm/TxnAction.js +26 -26
  787. package/lib/esm/TxnAction.js.map +1 -1
  788. package/lib/esm/ViewDetails.d.ts +125 -125
  789. package/lib/esm/ViewDetails.js +153 -153
  790. package/lib/esm/ViewDetails.js.map +1 -1
  791. package/lib/esm/ViewFlags.d.ts +291 -291
  792. package/lib/esm/ViewFlags.d.ts.map +1 -1
  793. package/lib/esm/ViewFlags.js +364 -364
  794. package/lib/esm/ViewFlags.js.map +1 -1
  795. package/lib/esm/ViewProps.d.ts +205 -205
  796. package/lib/esm/ViewProps.js +8 -8
  797. package/lib/esm/ViewProps.js.map +1 -1
  798. package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
  799. package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
  800. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  801. package/lib/esm/core-common.d.ts +240 -239
  802. package/lib/esm/core-common.d.ts.map +1 -1
  803. package/lib/esm/core-common.js +244 -243
  804. package/lib/esm/core-common.js.map +1 -1
  805. package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
  806. package/lib/esm/domains/FunctionalElementProps.js +8 -8
  807. package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
  808. package/lib/esm/domains/GenericElementProps.d.ts +18 -18
  809. package/lib/esm/domains/GenericElementProps.js +8 -8
  810. package/lib/esm/domains/GenericElementProps.js.map +1 -1
  811. package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
  812. package/lib/esm/geometry/AdditionalTransform.js +80 -80
  813. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  814. package/lib/esm/geometry/AreaPattern.d.ts +82 -82
  815. package/lib/esm/geometry/AreaPattern.js +201 -201
  816. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  817. package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
  818. package/lib/esm/geometry/BoundingSphere.d.ts.map +1 -1
  819. package/lib/esm/geometry/BoundingSphere.js +26 -20
  820. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  821. package/lib/esm/geometry/Cartographic.d.ts +137 -137
  822. package/lib/esm/geometry/Cartographic.js +340 -340
  823. package/lib/esm/geometry/Cartographic.js.map +1 -1
  824. package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
  825. package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
  826. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  827. package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
  828. package/lib/esm/geometry/ElementGeometry.js +1716 -1716
  829. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  830. package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
  831. package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
  832. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  833. package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
  834. package/lib/esm/geometry/FrustumPlanes.js +128 -128
  835. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  836. package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
  837. package/lib/esm/geometry/GeodeticDatum.js +390 -390
  838. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  839. package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
  840. package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
  841. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  842. package/lib/esm/geometry/GeometryStream.d.ts +347 -347
  843. package/lib/esm/geometry/GeometryStream.js +464 -464
  844. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  845. package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
  846. package/lib/esm/geometry/ImageGraphic.js +93 -93
  847. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  848. package/lib/esm/geometry/LineStyle.d.ts +71 -71
  849. package/lib/esm/geometry/LineStyle.js +126 -126
  850. package/lib/esm/geometry/LineStyle.js.map +1 -1
  851. package/lib/esm/geometry/Placement.d.ts +95 -95
  852. package/lib/esm/geometry/Placement.js +126 -126
  853. package/lib/esm/geometry/Placement.js.map +1 -1
  854. package/lib/esm/geometry/Projection.d.ts +251 -251
  855. package/lib/esm/geometry/Projection.js +192 -192
  856. package/lib/esm/geometry/Projection.js.map +1 -1
  857. package/lib/esm/geometry/TextString.d.ts +55 -55
  858. package/lib/esm/geometry/TextString.d.ts.map +1 -1
  859. package/lib/esm/geometry/TextString.js +61 -61
  860. package/lib/esm/geometry/TextString.js.map +1 -1
  861. package/lib/esm/ipc/IpcSession.d.ts +23 -23
  862. package/lib/esm/ipc/IpcSession.js +23 -23
  863. package/lib/esm/ipc/IpcSession.js.map +1 -1
  864. package/lib/esm/ipc/IpcSocket.d.ts +96 -96
  865. package/lib/esm/ipc/IpcSocket.js +12 -12
  866. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  867. package/lib/esm/ipc/IpcWebSocket.d.ts +61 -58
  868. package/lib/esm/ipc/IpcWebSocket.d.ts.map +1 -1
  869. package/lib/esm/ipc/IpcWebSocket.js +145 -131
  870. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  871. package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
  872. package/lib/esm/ipc/IpcWebSocketTransport.js +154 -147
  873. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  874. package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
  875. package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
  876. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  877. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +75 -75
  878. package/lib/esm/rpc/IModelReadRpcInterface.js +110 -110
  879. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  880. package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -53
  881. package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  882. package/lib/esm/rpc/IModelTileRpcInterface.js +91 -82
  883. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  884. package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
  885. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
  886. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  887. package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
  888. package/lib/esm/rpc/TestRpcManager.js +35 -35
  889. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  890. package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
  891. package/lib/esm/rpc/WipRpcInterface.js +36 -36
  892. package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
  893. package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
  894. package/lib/esm/rpc/core/RpcConfiguration.js +185 -185
  895. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  896. package/lib/esm/rpc/core/RpcConstants.d.ts +85 -83
  897. package/lib/esm/rpc/core/RpcConstants.d.ts.map +1 -1
  898. package/lib/esm/rpc/core/RpcConstants.js +100 -97
  899. package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
  900. package/lib/esm/rpc/core/RpcControl.d.ts +52 -52
  901. package/lib/esm/rpc/core/RpcControl.js +142 -142
  902. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  903. package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
  904. package/lib/esm/rpc/core/RpcInvocation.js +253 -253
  905. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  906. package/lib/esm/rpc/core/RpcMarshaling.d.ts +36 -36
  907. package/lib/esm/rpc/core/RpcMarshaling.js +149 -149
  908. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  909. package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
  910. package/lib/esm/rpc/core/RpcOperation.js +128 -128
  911. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  912. package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
  913. package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
  914. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  915. package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
  916. package/lib/esm/rpc/core/RpcProtocol.js +123 -123
  917. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  918. package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
  919. package/lib/esm/rpc/core/RpcPush.js +119 -119
  920. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  921. package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
  922. package/lib/esm/rpc/core/RpcRegistry.js +194 -194
  923. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  924. package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
  925. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  926. package/lib/esm/rpc/core/RpcRequest.js +472 -466
  927. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  928. package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
  929. package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
  930. package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
  931. package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
  932. package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
  933. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  934. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
  935. package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
  936. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  937. package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
  938. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
  939. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  940. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
  941. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts.map +1 -1
  942. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -135
  943. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  944. package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
  945. package/lib/esm/rpc/web/OpenAPI.js +56 -56
  946. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  947. package/lib/esm/rpc/web/RpcMultipart.d.ts +31 -31
  948. package/lib/esm/rpc/web/RpcMultipart.js +41 -41
  949. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  950. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +17 -17
  951. package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
  952. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  953. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +86 -86
  954. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  955. package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -96
  956. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  957. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +71 -71
  958. package/lib/esm/rpc/web/WebAppRpcRequest.js +370 -370
  959. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  960. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
  961. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  962. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +355 -355
  963. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  964. package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
  965. package/lib/esm/tile/B3dmTileIO.js +62 -62
  966. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  967. package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
  968. package/lib/esm/tile/CompositeTileIO.js +22 -22
  969. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  970. package/lib/esm/tile/ElementGraphics.d.ts +134 -134
  971. package/lib/esm/tile/ElementGraphics.js +8 -8
  972. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  973. package/lib/esm/tile/GltfTileIO.d.ts +45 -45
  974. package/lib/esm/tile/GltfTileIO.js +105 -105
  975. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  976. package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
  977. package/lib/esm/tile/I3dmTileIO.d.ts.map +1 -1
  978. package/lib/esm/tile/I3dmTileIO.js +36 -36
  979. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  980. package/lib/esm/tile/IModelTileIO.d.ts +75 -75
  981. package/lib/esm/tile/IModelTileIO.js +90 -90
  982. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  983. package/lib/esm/tile/PntsTileIO.d.ts +17 -17
  984. package/lib/esm/tile/PntsTileIO.js +22 -22
  985. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  986. package/lib/esm/tile/TileIO.d.ts +66 -66
  987. package/lib/esm/tile/TileIO.js +110 -110
  988. package/lib/esm/tile/TileIO.js.map +1 -1
  989. package/lib/esm/tile/TileMetadata.d.ts +228 -228
  990. package/lib/esm/tile/TileMetadata.js +661 -661
  991. package/lib/esm/tile/TileMetadata.js.map +1 -1
  992. package/package.json +10 -9
@@ -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":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;AAEH,sDAA8J;AAC9J,qEAAkE;AAElE,mDAAgD;AAChD,qDAAkD;AAElD,yDAAsD;AACtD,iDAAoE;AACpE,6CAAuE;AACvE,mDAAoE;AACpE,iDAA8C;AAC9C,+CAA+H;AAC/H,+CAAgE;AAgChE;;GAEG;AACH,MAAa,aAAa;IA8CxB,gCAAgC;IAChC,YAAmB,QAAqB,EAAE,OAA6B;QA7C/D,WAAM,GAAY,KAAK,CAAC;QACxB,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAC3B,eAAU,GAAY,KAAK,CAAC;QAC5B,YAAO,GAAW,CAAC,CAAC;QACpB,aAAQ,GAAW,CAAC,CAAC;QAQ7B,oCAAoC;QACpB,cAAS,GAAiB,SAAgB,CAAC;QAgCzD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI;YACF,IAAI;gBACF,IAAI,CAAC,SAAS,GAAG,2BAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAEvH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACzD,IAAI,CAAC,2BAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBACxD,MAAM,IAAI,yBAAW,CAAC,iCAAkB,CAAC,mBAAmB,EAAE,mBAAmB,OAAO,oCAAoC,QAAQ,sBAAsB,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;iBAC5L;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;oBACtC,IAAI,CAAC,SAAS,GAAG,2BAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACxH;qBAAM;oBACL,MAAM,KAAK,CAAC;iBACb;aACF;YAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC9B;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChL,CAAC;IAnDD,mCAAmC;IACnC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAgB,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAAgB,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,+BAAgB,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,+BAAgB,CAAC,SAAS,CAAC,CAAC;wBAC5C,+BAAgB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,4CAA4C;IAC5C,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,CAAC,OAAqB;QACzC,OAAQ,OAAe,CAAC,gCAAkB,CAAC,CAAC;IAC9C,CAAC;IAiCO,sBAAsB,CAAC,KAAU;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,QAAsB;QACjD,yDAAyD;QACzD,OAAO,QAAQ,CAAC,CAAC,CAAC;YAChB,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;SACtL,CAAC,CAAC,CAAC,SAAS,CAAC;QACd,wDAAwD;IAC1D,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAgB;YAC5B,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,aAAa;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa;SAC3C,CAAC;QAEF,IAAI;YACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAExE,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,IAAI,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9G,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,yBAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YACzF,IAAY,CAAC,gCAAkB,CAAC,GAAG,IAAI,CAAC;YACzC,MAAM,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAE9C,OAAO,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC;iBACtF,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,6IAA6I;gBAC7I,IAAI,CAAC,CAAC,KAAK,YAAY,+BAAkB,CAAC,EAAE;oBAC1C,qBAAM,CAAC,QAAQ,CAAC,2CAAoB,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,2BAAY,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClI,sBAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC,CAAC;SACP;QAAC,OAAO,KAAc,EAAE;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;IACH,CAAC;IAEO,aAAa,CAAC,UAAe;QACnC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,OAAO;QAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACrJ,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrE,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;gBAEzB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;oBACrD,IAAI,mCAAgB,CAAC,oBAAoB,EAAE;wBACzC,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,oDAAoD,CAAC,CAAC;qBAClG;yBAAM;wBACL,qBAAM,CAAC,UAAU,CAAC,2CAAoB,CAAC,mBAAmB,EAAE,oDAAoD,CAAC,CAAC;qBACnH;iBACF;aACF;SACF;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,CAAiB,EAAE,CAAiB;;QAC/D,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;YACpB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;YACvB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;YACzB,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAK,MAAA,CAAC,CAAC,SAAS,0CAAE,EAAE,CAAA,CAAC,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,KAAU;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,6BAAa,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAW;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,mCAAgB,CAAC,eAAe;YACnC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,6BAAa,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEpE,IAAI,MAAM,YAAY,+BAAkB,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;SAChF;aAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,MAAK,2BAAY,CAAC,SAAS,EAAE;YACrF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;SAClF;aAAM,IAAI,MAAM,YAAY,gCAAmB,EAAE;YAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;SACjF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,+BAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;SAC9E;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,yBAAW,CAAC,eAAe,IAAI,gCAAkB,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,gCAAkB,CAAC,mBAAmB,CAAC;IACzJ,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,yBAAW,CAAC,eAAe,IAAI,gCAAkB,CAAC,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,gCAAkB,CAAC,wBAAwB,CAAC;IACnK,CAAC;IAEO,OAAO,CAAC,MAA0B,EAAE,SAAc;;QACxD,MAAM,WAAW,GAA0B;YACzC,MAAM;YACN,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1C,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YACnB,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa;YAChH,gBAAgB,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,CAAC,wBAAwB,KAAI,KAAK;SAC3E,CAAC;QAEF,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAErD,IAAI;YACF,MAAM,IAAI,GAAG,yBAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAQ,CAAC;YACjG,IAAI,IAAI,CAAC,gCAAkB,CAAC,KAAK,IAAI,EAAE;gBACrC,IAAI,CAAC,gCAAkB,CAAC,GAAG,SAAS,CAAC;aACtC;SACF;QAAC,OAAO,IAAI,EAAE,GAAG;QAElB,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,uBAAuB,CAAC,cAA4B;QAC1D,MAAM,IAAI,GAAI,cAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU;YACvC,MAAM,IAAI,yBAAW,CAAC,4BAAa,CAAC,KAAK,EAAE,wBAAwB,cAAc,CAAC,WAAW,CAAC,IAAI,mCAAmC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC;QAEzK,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uBAAuB,CAAC,WAAkC,EAAE,SAAc;QAChF,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAClC,OAAO;SACR;QAED,IAAI,aAA+D,CAAC;QACpE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,aAAa,GAAG,SAAS,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,aAAa,GAAG,UAAU,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE;YAC1B,aAAa,GAAG,WAAW,CAAC;SAC7B;QAED,IAAI,aAAa,EAAE;YACjB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;YACjD,MAAM,MAAM,GAAqB,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;YAC9F,WAAW,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,eAAe;YACjD,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC;SAChC;QAED,IAAI,SAAS,YAAY,2BAAY,EAAE;YACrC,WAAW,CAAC,MAAM,GAAG,6BAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;SACzD;IACH,CAAC;;AA3QH,sCA4QC;;AA3Qe,yBAAW,GAAmB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAG,CAAA","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"]}
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"]}