@itwin/core-common 3.6.0-dev.51 → 3.6.0-dev.53

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