@itwin/core-common 5.0.0-dev.8 → 5.0.0-dev.82

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 (724) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/AmbientOcclusion.js +17 -9
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +0 -3
  5. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  6. package/lib/cjs/AnalysisStyle.js +20 -4
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/Atmosphere.js +39 -21
  9. package/lib/cjs/Atmosphere.js.map +1 -1
  10. package/lib/cjs/BackgroundMapProvider.js +4 -0
  11. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  12. package/lib/cjs/BackgroundMapSettings.js +19 -0
  13. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  14. package/lib/cjs/BlobReader.js +8 -6
  15. package/lib/cjs/BlobReader.js.map +1 -1
  16. package/lib/cjs/BriefcaseTypes.d.ts +2 -2
  17. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  19. package/lib/cjs/Camera.js +3 -0
  20. package/lib/cjs/Camera.js.map +1 -1
  21. package/lib/cjs/ChangesetProps.d.ts +1 -1
  22. package/lib/cjs/ChangesetProps.js.map +1 -1
  23. package/lib/cjs/ClipStyle.js +31 -5
  24. package/lib/cjs/ClipStyle.js.map +1 -1
  25. package/lib/cjs/Code.d.ts +0 -5
  26. package/lib/cjs/Code.d.ts.map +1 -1
  27. package/lib/cjs/Code.js +16 -11
  28. package/lib/cjs/Code.js.map +1 -1
  29. package/lib/cjs/ColorDef.js +11 -10
  30. package/lib/cjs/ColorDef.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.d.ts +37 -1
  32. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.js +16 -3
  34. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  35. package/lib/cjs/ContextRealityModel.js +53 -27
  36. package/lib/cjs/ContextRealityModel.js.map +1 -1
  37. package/lib/cjs/ContourDisplay.js +40 -5
  38. package/lib/cjs/ContourDisplay.js.map +1 -1
  39. package/lib/cjs/DisplayStyleSettings.js +95 -63
  40. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  41. package/lib/cjs/ECSqlReader.d.ts +2 -0
  42. package/lib/cjs/ECSqlReader.d.ts.map +1 -1
  43. package/lib/cjs/ECSqlReader.js +56 -50
  44. package/lib/cjs/ECSqlReader.js.map +1 -1
  45. package/lib/cjs/ElementProps.d.ts.map +1 -1
  46. package/lib/cjs/ElementProps.js +7 -3
  47. package/lib/cjs/ElementProps.js.map +1 -1
  48. package/lib/cjs/EntityProps.js +31 -0
  49. package/lib/cjs/EntityProps.js.map +1 -1
  50. package/lib/cjs/Environment.js +25 -2
  51. package/lib/cjs/Environment.js.map +1 -1
  52. package/lib/cjs/FeatureIndex.js +15 -6
  53. package/lib/cjs/FeatureIndex.js.map +1 -1
  54. package/lib/cjs/FeatureSymbology.d.ts +25 -73
  55. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  56. package/lib/cjs/FeatureSymbology.js +88 -103
  57. package/lib/cjs/FeatureSymbology.js.map +1 -1
  58. package/lib/cjs/FeatureTable.d.ts +6 -108
  59. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  60. package/lib/cjs/FeatureTable.js +13 -329
  61. package/lib/cjs/FeatureTable.js.map +1 -1
  62. package/lib/cjs/Fonts.d.ts +68 -10
  63. package/lib/cjs/Fonts.d.ts.map +1 -1
  64. package/lib/cjs/Fonts.js +19 -4
  65. package/lib/cjs/Fonts.js.map +1 -1
  66. package/lib/cjs/Frustum.js +2 -2
  67. package/lib/cjs/Frustum.js.map +1 -1
  68. package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
  69. package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
  70. package/lib/cjs/GeoCoordinateServices.js +2 -1
  71. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  72. package/lib/cjs/GeometryParams.js +58 -0
  73. package/lib/cjs/GeometryParams.js.map +1 -1
  74. package/lib/cjs/Gradient.d.ts +3 -4
  75. package/lib/cjs/Gradient.d.ts.map +1 -1
  76. package/lib/cjs/Gradient.js +21 -19
  77. package/lib/cjs/Gradient.js.map +1 -1
  78. package/lib/cjs/GraphicParams.js +14 -12
  79. package/lib/cjs/GraphicParams.js.map +1 -1
  80. package/lib/cjs/GroundPlane.js +8 -2
  81. package/lib/cjs/GroundPlane.js.map +1 -1
  82. package/lib/cjs/HSLColor.js +6 -0
  83. package/lib/cjs/HSLColor.js.map +1 -1
  84. package/lib/cjs/HSVColor.js +6 -0
  85. package/lib/cjs/HSVColor.js.map +1 -1
  86. package/lib/cjs/HiddenLine.d.ts +17 -18
  87. package/lib/cjs/HiddenLine.d.ts.map +1 -1
  88. package/lib/cjs/HiddenLine.js +24 -5
  89. package/lib/cjs/HiddenLine.js.map +1 -1
  90. package/lib/cjs/Hilite.js +10 -0
  91. package/lib/cjs/Hilite.js.map +1 -1
  92. package/lib/cjs/IModel.d.ts +3 -12
  93. package/lib/cjs/IModel.d.ts.map +1 -1
  94. package/lib/cjs/IModel.js +47 -23
  95. package/lib/cjs/IModel.js.map +1 -1
  96. package/lib/cjs/IModelError.d.ts +0 -2
  97. package/lib/cjs/IModelError.d.ts.map +1 -1
  98. package/lib/cjs/IModelError.js +3 -8
  99. package/lib/cjs/IModelError.js.map +1 -1
  100. package/lib/cjs/IModelVersion.js +4 -0
  101. package/lib/cjs/IModelVersion.js.map +1 -1
  102. package/lib/cjs/ITwinError.d.ts +1 -1
  103. package/lib/cjs/ITwinError.d.ts.map +1 -1
  104. package/lib/cjs/ITwinError.js +1 -1
  105. package/lib/cjs/ITwinError.js.map +1 -1
  106. package/lib/cjs/Image.d.ts +22 -8
  107. package/lib/cjs/Image.d.ts.map +1 -1
  108. package/lib/cjs/Image.js +20 -4
  109. package/lib/cjs/Image.js.map +1 -1
  110. package/lib/cjs/IpcAppProps.d.ts +2 -0
  111. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  112. package/lib/cjs/IpcAppProps.js.map +1 -1
  113. package/lib/cjs/LightSettings.js +39 -1
  114. package/lib/cjs/LightSettings.js.map +1 -1
  115. package/lib/cjs/Localization.d.ts +0 -10
  116. package/lib/cjs/Localization.d.ts.map +1 -1
  117. package/lib/cjs/Localization.js +0 -1
  118. package/lib/cjs/Localization.js.map +1 -1
  119. package/lib/cjs/MapImagerySettings.js +3 -2
  120. package/lib/cjs/MapImagerySettings.js.map +1 -1
  121. package/lib/cjs/MapLayerSettings.d.ts +20 -0
  122. package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
  123. package/lib/cjs/MapLayerSettings.js +50 -1
  124. package/lib/cjs/MapLayerSettings.js.map +1 -1
  125. package/lib/cjs/MassProperties.d.ts +2 -0
  126. package/lib/cjs/MassProperties.d.ts.map +1 -1
  127. package/lib/cjs/MassProperties.js.map +1 -1
  128. package/lib/cjs/ModelClipGroup.js +6 -0
  129. package/lib/cjs/ModelClipGroup.js.map +1 -1
  130. package/lib/cjs/OctEncodedNormal.js +4 -0
  131. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  132. package/lib/cjs/PlanProjectionSettings.d.ts +1 -2
  133. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  134. package/lib/cjs/PlanProjectionSettings.js +8 -1
  135. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  136. package/lib/cjs/PlanarClipMask.d.ts +0 -12
  137. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  138. package/lib/cjs/PlanarClipMask.js +24 -2
  139. package/lib/cjs/PlanarClipMask.js.map +1 -1
  140. package/lib/cjs/QPoint.d.ts +5 -5
  141. package/lib/cjs/QPoint.d.ts.map +1 -1
  142. package/lib/cjs/QPoint.js +37 -29
  143. package/lib/cjs/QPoint.js.map +1 -1
  144. package/lib/cjs/RealityModelDisplaySettings.js +81 -4
  145. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  146. package/lib/cjs/RenderMaterial.d.ts +0 -43
  147. package/lib/cjs/RenderMaterial.d.ts.map +1 -1
  148. package/lib/cjs/RenderMaterial.js +6 -51
  149. package/lib/cjs/RenderMaterial.js.map +1 -1
  150. package/lib/cjs/RenderPolyline.d.ts +36 -0
  151. package/lib/cjs/RenderPolyline.d.ts.map +1 -0
  152. package/lib/cjs/RenderPolyline.js +26 -0
  153. package/lib/cjs/RenderPolyline.js.map +1 -0
  154. package/lib/cjs/RenderSchedule.d.ts +1 -2
  155. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  156. package/lib/cjs/RenderSchedule.js +138 -11
  157. package/lib/cjs/RenderSchedule.js.map +1 -1
  158. package/lib/cjs/RenderTexture.d.ts +5 -23
  159. package/lib/cjs/RenderTexture.d.ts.map +1 -1
  160. package/lib/cjs/RenderTexture.js +13 -16
  161. package/lib/cjs/RenderTexture.js.map +1 -1
  162. package/lib/cjs/RgbColor.js +3 -0
  163. package/lib/cjs/RgbColor.js.map +1 -1
  164. package/lib/cjs/RpcInterface.d.ts.map +1 -1
  165. package/lib/cjs/RpcInterface.js +7 -1
  166. package/lib/cjs/RpcInterface.js.map +1 -1
  167. package/lib/cjs/SkyBox.js +17 -4
  168. package/lib/cjs/SkyBox.js.map +1 -1
  169. package/lib/cjs/SolarShadows.js +5 -1
  170. package/lib/cjs/SolarShadows.js.map +1 -1
  171. package/lib/cjs/SpatialClassification.js +19 -1
  172. package/lib/cjs/SpatialClassification.js.map +1 -1
  173. package/lib/cjs/SubCategoryAppearance.js +35 -1
  174. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  175. package/lib/cjs/SubCategoryOverride.js +16 -2
  176. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  177. package/lib/cjs/TerrainSettings.d.ts +0 -7
  178. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  179. package/lib/cjs/TerrainSettings.js +19 -0
  180. package/lib/cjs/TerrainSettings.js.map +1 -1
  181. package/lib/cjs/TextureMapping.d.ts +17 -14
  182. package/lib/cjs/TextureMapping.d.ts.map +1 -1
  183. package/lib/cjs/TextureMapping.js +47 -19
  184. package/lib/cjs/TextureMapping.js.map +1 -1
  185. package/lib/cjs/ThematicDisplay.js +53 -2
  186. package/lib/cjs/ThematicDisplay.js.map +1 -1
  187. package/lib/cjs/Thumbnail.d.ts +1 -1
  188. package/lib/cjs/Thumbnail.js.map +1 -1
  189. package/lib/cjs/Tween.js +28 -19
  190. package/lib/cjs/Tween.js.map +1 -1
  191. package/lib/cjs/ViewDetails.js +10 -6
  192. package/lib/cjs/ViewDetails.js.map +1 -1
  193. package/lib/cjs/ViewFlags.d.ts +1 -3
  194. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  195. package/lib/cjs/ViewFlags.js +86 -5
  196. package/lib/cjs/ViewFlags.js.map +1 -1
  197. package/lib/cjs/ViewProps.d.ts +0 -4
  198. package/lib/cjs/ViewProps.d.ts.map +1 -1
  199. package/lib/cjs/ViewProps.js.map +1 -1
  200. package/lib/cjs/WhiteOnWhiteReversalSettings.js +7 -2
  201. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  202. package/lib/cjs/annotation/TextAnnotation.js +10 -0
  203. package/lib/cjs/annotation/TextAnnotation.js.map +1 -1
  204. package/lib/cjs/annotation/TextBlock.js +27 -6
  205. package/lib/cjs/annotation/TextBlock.js.map +1 -1
  206. package/lib/cjs/annotation/TextStyle.js +65 -19
  207. package/lib/cjs/annotation/TextStyle.js.map +1 -1
  208. package/lib/cjs/core-common.d.ts +1 -2
  209. package/lib/cjs/core-common.d.ts.map +1 -1
  210. package/lib/cjs/core-common.js +1 -2
  211. package/lib/cjs/core-common.js.map +1 -1
  212. package/lib/cjs/geometry/AdditionalTransform.js +12 -0
  213. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  214. package/lib/cjs/geometry/AreaPattern.js +17 -0
  215. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  216. package/lib/cjs/geometry/BoundingSphere.js +4 -0
  217. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  218. package/lib/cjs/geometry/Cartographic.js +23 -20
  219. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  220. package/lib/cjs/geometry/CoordinateReferenceSystem.js +62 -0
  221. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  222. package/lib/cjs/geometry/ElementGeometry.js +26 -8
  223. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  224. package/lib/cjs/geometry/ElementGeometryFB.js +54 -108
  225. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  226. package/lib/cjs/geometry/FrustumPlanes.js +1 -0
  227. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  228. package/lib/cjs/geometry/GeodeticDatum.js +100 -0
  229. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  230. package/lib/cjs/geometry/GeodeticEllipsoid.js +16 -0
  231. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  232. package/lib/cjs/geometry/GeometryStream.js +19 -6
  233. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  234. package/lib/cjs/geometry/ImageGraphic.js +10 -0
  235. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  236. package/lib/cjs/geometry/LineStyle.js +14 -0
  237. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  238. package/lib/cjs/geometry/Placement.js +6 -0
  239. package/lib/cjs/geometry/Placement.js.map +1 -1
  240. package/lib/cjs/geometry/Projection.js +75 -0
  241. package/lib/cjs/geometry/Projection.js.map +1 -1
  242. package/lib/cjs/geometry/TextString.js +18 -0
  243. package/lib/cjs/geometry/TextString.js.map +1 -1
  244. package/lib/cjs/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  245. package/lib/cjs/internal/BackendTypes.d.ts.map +1 -0
  246. package/lib/cjs/internal/BackendTypes.js.map +1 -0
  247. package/lib/cjs/internal/PackedFeatureTable.d.ts +111 -0
  248. package/lib/cjs/internal/PackedFeatureTable.d.ts.map +1 -0
  249. package/lib/cjs/internal/PackedFeatureTable.js +359 -0
  250. package/lib/cjs/internal/PackedFeatureTable.js.map +1 -0
  251. package/lib/cjs/internal/RenderMaterialParams.d.ts +47 -0
  252. package/lib/cjs/internal/RenderMaterialParams.d.ts.map +1 -0
  253. package/lib/cjs/internal/RenderMaterialParams.js +68 -0
  254. package/lib/cjs/internal/RenderMaterialParams.js.map +1 -0
  255. package/lib/cjs/internal/RenderMesh.d.ts +52 -0
  256. package/lib/cjs/internal/RenderMesh.d.ts.map +1 -0
  257. package/lib/cjs/{Render.js → internal/RenderMesh.js} +12 -31
  258. package/lib/cjs/internal/RenderMesh.js.map +1 -0
  259. package/lib/cjs/internal/RenderTextureParams.d.ts +25 -0
  260. package/lib/cjs/internal/RenderTextureParams.d.ts.map +1 -0
  261. package/lib/cjs/internal/RenderTextureParams.js +37 -0
  262. package/lib/cjs/internal/RenderTextureParams.js.map +1 -0
  263. package/lib/cjs/internal/cross-package.d.ts +5 -0
  264. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  265. package/lib/cjs/internal/cross-package.js +16 -0
  266. package/lib/cjs/internal/cross-package.js.map +1 -1
  267. package/lib/cjs/ipc/IpcSession.js +1 -0
  268. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  269. package/lib/cjs/ipc/IpcSocket.d.ts +2 -0
  270. package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
  271. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  272. package/lib/cjs/ipc/IpcWebSocket.js +7 -6
  273. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  274. package/lib/cjs/ipc/IpcWebSocketTransport.js +8 -7
  275. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  276. package/lib/cjs/rpc/DevToolsRpcInterface.js +6 -6
  277. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  278. package/lib/cjs/rpc/IModelReadRpcInterface.js +8 -11
  279. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  280. package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -4
  281. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  282. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +4 -4
  283. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  284. package/lib/cjs/rpc/TestRpcManager.js +1 -4
  285. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  286. package/lib/cjs/rpc/core/RpcConfiguration.js +51 -64
  287. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  288. package/lib/cjs/rpc/core/RpcControl.js +29 -38
  289. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  290. package/lib/cjs/rpc/core/RpcInvocation.js +19 -13
  291. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  292. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +1 -4
  293. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  294. package/lib/cjs/rpc/core/RpcMarshaling.js +5 -4
  295. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  296. package/lib/cjs/rpc/core/RpcOperation.js +29 -31
  297. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  298. package/lib/cjs/rpc/core/RpcPendingQueue.js +17 -16
  299. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  300. package/lib/cjs/rpc/core/RpcProtocol.js +32 -30
  301. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  302. package/lib/cjs/rpc/core/RpcPush.js +15 -8
  303. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  304. package/lib/cjs/rpc/core/RpcRegistry.d.ts.map +1 -1
  305. package/lib/cjs/rpc/core/RpcRegistry.js +10 -9
  306. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  307. package/lib/cjs/rpc/core/RpcRequest.d.ts +2 -2
  308. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  309. package/lib/cjs/rpc/core/RpcRequest.js +51 -29
  310. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  311. package/lib/cjs/rpc/core/RpcRoutingToken.js +4 -2
  312. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  313. package/lib/cjs/rpc/core/RpcSessionInvocation.js +5 -10
  314. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  315. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +11 -17
  316. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  317. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  318. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  319. package/lib/cjs/rpc/web/OpenAPI.js +2 -0
  320. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  321. package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -1
  322. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  323. package/lib/cjs/rpc/web/RpcMultipart.js +13 -12
  324. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  325. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +3 -0
  326. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  327. package/lib/cjs/rpc/web/WebAppRpcLogging.js +1 -6
  328. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  329. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  330. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  331. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +6 -6
  332. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  333. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  334. package/lib/cjs/rpc/web/WebAppRpcRequest.js +27 -27
  335. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  336. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  337. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  338. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +14 -8
  339. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  340. package/lib/cjs/tile/B3dmTileIO.js +7 -0
  341. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  342. package/lib/cjs/tile/CompositeTileIO.js +3 -0
  343. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  344. package/lib/cjs/tile/GltfTileIO.js +4 -3
  345. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  346. package/lib/cjs/tile/I3dmTileIO.js +8 -0
  347. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  348. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  349. package/lib/cjs/tile/IModelTileIO.js +26 -3
  350. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  351. package/lib/cjs/tile/PntsTileIO.js +5 -0
  352. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  353. package/lib/cjs/tile/TileIO.js +2 -0
  354. package/lib/cjs/tile/TileIO.js.map +1 -1
  355. package/lib/cjs/tile/TileMetadata.js +9 -1
  356. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  357. package/lib/esm/AmbientOcclusion.js +17 -9
  358. package/lib/esm/AmbientOcclusion.js.map +1 -1
  359. package/lib/esm/AnalysisStyle.d.ts +0 -3
  360. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  361. package/lib/esm/AnalysisStyle.js +20 -4
  362. package/lib/esm/AnalysisStyle.js.map +1 -1
  363. package/lib/esm/Atmosphere.js +39 -21
  364. package/lib/esm/Atmosphere.js.map +1 -1
  365. package/lib/esm/BackgroundMapProvider.js +4 -0
  366. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  367. package/lib/esm/BackgroundMapSettings.js +19 -0
  368. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  369. package/lib/esm/BlobReader.js +8 -6
  370. package/lib/esm/BlobReader.js.map +1 -1
  371. package/lib/esm/BriefcaseTypes.d.ts +2 -2
  372. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  373. package/lib/esm/BriefcaseTypes.js.map +1 -1
  374. package/lib/esm/Camera.js +3 -0
  375. package/lib/esm/Camera.js.map +1 -1
  376. package/lib/esm/ChangesetProps.d.ts +1 -1
  377. package/lib/esm/ChangesetProps.js.map +1 -1
  378. package/lib/esm/ClipStyle.js +31 -5
  379. package/lib/esm/ClipStyle.js.map +1 -1
  380. package/lib/esm/Code.d.ts +0 -5
  381. package/lib/esm/Code.d.ts.map +1 -1
  382. package/lib/esm/Code.js +16 -11
  383. package/lib/esm/Code.js.map +1 -1
  384. package/lib/esm/ColorDef.js +11 -10
  385. package/lib/esm/ColorDef.js.map +1 -1
  386. package/lib/esm/ConcurrentQuery.d.ts +37 -1
  387. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  388. package/lib/esm/ConcurrentQuery.js +16 -3
  389. package/lib/esm/ConcurrentQuery.js.map +1 -1
  390. package/lib/esm/ContextRealityModel.js +53 -27
  391. package/lib/esm/ContextRealityModel.js.map +1 -1
  392. package/lib/esm/ContourDisplay.js +40 -5
  393. package/lib/esm/ContourDisplay.js.map +1 -1
  394. package/lib/esm/DisplayStyleSettings.js +95 -63
  395. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  396. package/lib/esm/ECSqlReader.d.ts +2 -0
  397. package/lib/esm/ECSqlReader.d.ts.map +1 -1
  398. package/lib/esm/ECSqlReader.js +56 -50
  399. package/lib/esm/ECSqlReader.js.map +1 -1
  400. package/lib/esm/ElementProps.d.ts.map +1 -1
  401. package/lib/esm/ElementProps.js +8 -4
  402. package/lib/esm/ElementProps.js.map +1 -1
  403. package/lib/esm/EntityProps.js +31 -0
  404. package/lib/esm/EntityProps.js.map +1 -1
  405. package/lib/esm/Environment.js +25 -2
  406. package/lib/esm/Environment.js.map +1 -1
  407. package/lib/esm/FeatureIndex.js +15 -6
  408. package/lib/esm/FeatureIndex.js.map +1 -1
  409. package/lib/esm/FeatureSymbology.d.ts +25 -73
  410. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  411. package/lib/esm/FeatureSymbology.js +88 -103
  412. package/lib/esm/FeatureSymbology.js.map +1 -1
  413. package/lib/esm/FeatureTable.d.ts +6 -108
  414. package/lib/esm/FeatureTable.d.ts.map +1 -1
  415. package/lib/esm/FeatureTable.js +11 -324
  416. package/lib/esm/FeatureTable.js.map +1 -1
  417. package/lib/esm/Fonts.d.ts +68 -10
  418. package/lib/esm/Fonts.d.ts.map +1 -1
  419. package/lib/esm/Fonts.js +19 -4
  420. package/lib/esm/Fonts.js.map +1 -1
  421. package/lib/esm/Frustum.js +2 -2
  422. package/lib/esm/Frustum.js.map +1 -1
  423. package/lib/esm/GeoCoordinateServices.d.ts +1 -0
  424. package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
  425. package/lib/esm/GeoCoordinateServices.js +2 -1
  426. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  427. package/lib/esm/GeometryParams.js +58 -0
  428. package/lib/esm/GeometryParams.js.map +1 -1
  429. package/lib/esm/Gradient.d.ts +3 -4
  430. package/lib/esm/Gradient.d.ts.map +1 -1
  431. package/lib/esm/Gradient.js +21 -19
  432. package/lib/esm/Gradient.js.map +1 -1
  433. package/lib/esm/GraphicParams.js +14 -12
  434. package/lib/esm/GraphicParams.js.map +1 -1
  435. package/lib/esm/GroundPlane.js +8 -2
  436. package/lib/esm/GroundPlane.js.map +1 -1
  437. package/lib/esm/HSLColor.js +6 -0
  438. package/lib/esm/HSLColor.js.map +1 -1
  439. package/lib/esm/HSVColor.js +6 -0
  440. package/lib/esm/HSVColor.js.map +1 -1
  441. package/lib/esm/HiddenLine.d.ts +17 -18
  442. package/lib/esm/HiddenLine.d.ts.map +1 -1
  443. package/lib/esm/HiddenLine.js +24 -5
  444. package/lib/esm/HiddenLine.js.map +1 -1
  445. package/lib/esm/Hilite.js +10 -0
  446. package/lib/esm/Hilite.js.map +1 -1
  447. package/lib/esm/IModel.d.ts +3 -12
  448. package/lib/esm/IModel.d.ts.map +1 -1
  449. package/lib/esm/IModel.js +47 -23
  450. package/lib/esm/IModel.js.map +1 -1
  451. package/lib/esm/IModelError.d.ts +0 -2
  452. package/lib/esm/IModelError.d.ts.map +1 -1
  453. package/lib/esm/IModelError.js +2 -1
  454. package/lib/esm/IModelError.js.map +1 -1
  455. package/lib/esm/IModelVersion.js +4 -0
  456. package/lib/esm/IModelVersion.js.map +1 -1
  457. package/lib/esm/ITwinError.d.ts +1 -1
  458. package/lib/esm/ITwinError.d.ts.map +1 -1
  459. package/lib/esm/ITwinError.js +1 -1
  460. package/lib/esm/ITwinError.js.map +1 -1
  461. package/lib/esm/Image.d.ts +22 -8
  462. package/lib/esm/Image.d.ts.map +1 -1
  463. package/lib/esm/Image.js +19 -4
  464. package/lib/esm/Image.js.map +1 -1
  465. package/lib/esm/IpcAppProps.d.ts +2 -0
  466. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  467. package/lib/esm/IpcAppProps.js.map +1 -1
  468. package/lib/esm/LightSettings.js +39 -1
  469. package/lib/esm/LightSettings.js.map +1 -1
  470. package/lib/esm/Localization.d.ts +0 -10
  471. package/lib/esm/Localization.d.ts.map +1 -1
  472. package/lib/esm/Localization.js +0 -1
  473. package/lib/esm/Localization.js.map +1 -1
  474. package/lib/esm/MapImagerySettings.js +3 -2
  475. package/lib/esm/MapImagerySettings.js.map +1 -1
  476. package/lib/esm/MapLayerSettings.d.ts +20 -0
  477. package/lib/esm/MapLayerSettings.d.ts.map +1 -1
  478. package/lib/esm/MapLayerSettings.js +50 -1
  479. package/lib/esm/MapLayerSettings.js.map +1 -1
  480. package/lib/esm/MassProperties.d.ts +2 -0
  481. package/lib/esm/MassProperties.d.ts.map +1 -1
  482. package/lib/esm/MassProperties.js.map +1 -1
  483. package/lib/esm/ModelClipGroup.js +6 -0
  484. package/lib/esm/ModelClipGroup.js.map +1 -1
  485. package/lib/esm/OctEncodedNormal.js +4 -0
  486. package/lib/esm/OctEncodedNormal.js.map +1 -1
  487. package/lib/esm/PlanProjectionSettings.d.ts +1 -2
  488. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  489. package/lib/esm/PlanProjectionSettings.js +8 -1
  490. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  491. package/lib/esm/PlanarClipMask.d.ts +0 -12
  492. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  493. package/lib/esm/PlanarClipMask.js +24 -2
  494. package/lib/esm/PlanarClipMask.js.map +1 -1
  495. package/lib/esm/QPoint.d.ts +5 -5
  496. package/lib/esm/QPoint.d.ts.map +1 -1
  497. package/lib/esm/QPoint.js +37 -29
  498. package/lib/esm/QPoint.js.map +1 -1
  499. package/lib/esm/RealityModelDisplaySettings.js +81 -4
  500. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  501. package/lib/esm/RenderMaterial.d.ts +0 -43
  502. package/lib/esm/RenderMaterial.d.ts.map +1 -1
  503. package/lib/esm/RenderMaterial.js +6 -51
  504. package/lib/esm/RenderMaterial.js.map +1 -1
  505. package/lib/esm/RenderPolyline.d.ts +36 -0
  506. package/lib/esm/RenderPolyline.d.ts.map +1 -0
  507. package/lib/esm/RenderPolyline.js +23 -0
  508. package/lib/esm/RenderPolyline.js.map +1 -0
  509. package/lib/esm/RenderSchedule.d.ts +1 -2
  510. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  511. package/lib/esm/RenderSchedule.js +138 -11
  512. package/lib/esm/RenderSchedule.js.map +1 -1
  513. package/lib/esm/RenderTexture.d.ts +5 -23
  514. package/lib/esm/RenderTexture.d.ts.map +1 -1
  515. package/lib/esm/RenderTexture.js +13 -16
  516. package/lib/esm/RenderTexture.js.map +1 -1
  517. package/lib/esm/RgbColor.js +3 -0
  518. package/lib/esm/RgbColor.js.map +1 -1
  519. package/lib/esm/RpcInterface.d.ts.map +1 -1
  520. package/lib/esm/RpcInterface.js +8 -2
  521. package/lib/esm/RpcInterface.js.map +1 -1
  522. package/lib/esm/SkyBox.js +17 -4
  523. package/lib/esm/SkyBox.js.map +1 -1
  524. package/lib/esm/SolarShadows.js +5 -1
  525. package/lib/esm/SolarShadows.js.map +1 -1
  526. package/lib/esm/SpatialClassification.js +19 -1
  527. package/lib/esm/SpatialClassification.js.map +1 -1
  528. package/lib/esm/SubCategoryAppearance.js +35 -1
  529. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  530. package/lib/esm/SubCategoryOverride.js +16 -2
  531. package/lib/esm/SubCategoryOverride.js.map +1 -1
  532. package/lib/esm/TerrainSettings.d.ts +0 -7
  533. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  534. package/lib/esm/TerrainSettings.js +19 -0
  535. package/lib/esm/TerrainSettings.js.map +1 -1
  536. package/lib/esm/TextureMapping.d.ts +17 -14
  537. package/lib/esm/TextureMapping.d.ts.map +1 -1
  538. package/lib/esm/TextureMapping.js +47 -19
  539. package/lib/esm/TextureMapping.js.map +1 -1
  540. package/lib/esm/ThematicDisplay.js +53 -2
  541. package/lib/esm/ThematicDisplay.js.map +1 -1
  542. package/lib/esm/Thumbnail.d.ts +1 -1
  543. package/lib/esm/Thumbnail.js.map +1 -1
  544. package/lib/esm/Tween.js +28 -19
  545. package/lib/esm/Tween.js.map +1 -1
  546. package/lib/esm/ViewDetails.js +10 -6
  547. package/lib/esm/ViewDetails.js.map +1 -1
  548. package/lib/esm/ViewFlags.d.ts +1 -3
  549. package/lib/esm/ViewFlags.d.ts.map +1 -1
  550. package/lib/esm/ViewFlags.js +86 -5
  551. package/lib/esm/ViewFlags.js.map +1 -1
  552. package/lib/esm/ViewProps.d.ts +0 -4
  553. package/lib/esm/ViewProps.d.ts.map +1 -1
  554. package/lib/esm/ViewProps.js.map +1 -1
  555. package/lib/esm/WhiteOnWhiteReversalSettings.js +7 -2
  556. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  557. package/lib/esm/annotation/TextAnnotation.js +10 -0
  558. package/lib/esm/annotation/TextAnnotation.js.map +1 -1
  559. package/lib/esm/annotation/TextBlock.js +27 -6
  560. package/lib/esm/annotation/TextBlock.js.map +1 -1
  561. package/lib/esm/annotation/TextStyle.js +65 -19
  562. package/lib/esm/annotation/TextStyle.js.map +1 -1
  563. package/lib/esm/core-common.d.ts +1 -2
  564. package/lib/esm/core-common.d.ts.map +1 -1
  565. package/lib/esm/core-common.js +1 -2
  566. package/lib/esm/core-common.js.map +1 -1
  567. package/lib/esm/geometry/AdditionalTransform.js +12 -0
  568. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  569. package/lib/esm/geometry/AreaPattern.js +17 -0
  570. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  571. package/lib/esm/geometry/BoundingSphere.js +4 -0
  572. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  573. package/lib/esm/geometry/Cartographic.js +23 -20
  574. package/lib/esm/geometry/Cartographic.js.map +1 -1
  575. package/lib/esm/geometry/CoordinateReferenceSystem.js +62 -0
  576. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  577. package/lib/esm/geometry/ElementGeometry.js +26 -8
  578. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  579. package/lib/esm/geometry/ElementGeometryFB.js +54 -108
  580. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  581. package/lib/esm/geometry/FrustumPlanes.js +1 -0
  582. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  583. package/lib/esm/geometry/GeodeticDatum.js +100 -0
  584. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  585. package/lib/esm/geometry/GeodeticEllipsoid.js +16 -0
  586. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  587. package/lib/esm/geometry/GeometryStream.js +19 -6
  588. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  589. package/lib/esm/geometry/ImageGraphic.js +10 -0
  590. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  591. package/lib/esm/geometry/LineStyle.js +14 -0
  592. package/lib/esm/geometry/LineStyle.js.map +1 -1
  593. package/lib/esm/geometry/Placement.js +6 -0
  594. package/lib/esm/geometry/Placement.js.map +1 -1
  595. package/lib/esm/geometry/Projection.js +75 -0
  596. package/lib/esm/geometry/Projection.js.map +1 -1
  597. package/lib/esm/geometry/TextString.js +18 -0
  598. package/lib/esm/geometry/TextString.js.map +1 -1
  599. package/lib/esm/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  600. package/lib/esm/internal/BackendTypes.d.ts.map +1 -0
  601. package/lib/esm/internal/BackendTypes.js.map +1 -0
  602. package/lib/esm/internal/PackedFeatureTable.d.ts +111 -0
  603. package/lib/esm/internal/PackedFeatureTable.d.ts.map +1 -0
  604. package/lib/esm/internal/PackedFeatureTable.js +352 -0
  605. package/lib/esm/internal/PackedFeatureTable.js.map +1 -0
  606. package/lib/esm/internal/RenderMaterialParams.d.ts +47 -0
  607. package/lib/esm/internal/RenderMaterialParams.d.ts.map +1 -0
  608. package/lib/esm/internal/RenderMaterialParams.js +64 -0
  609. package/lib/esm/internal/RenderMaterialParams.js.map +1 -0
  610. package/lib/esm/internal/RenderMesh.d.ts +52 -0
  611. package/lib/esm/internal/RenderMesh.d.ts.map +1 -0
  612. package/lib/esm/{Render.js → internal/RenderMesh.js} +11 -29
  613. package/lib/esm/internal/RenderMesh.js.map +1 -0
  614. package/lib/esm/internal/RenderTextureParams.d.ts +25 -0
  615. package/lib/esm/internal/RenderTextureParams.d.ts.map +1 -0
  616. package/lib/esm/internal/RenderTextureParams.js +33 -0
  617. package/lib/esm/internal/RenderTextureParams.js.map +1 -0
  618. package/lib/esm/internal/cross-package.d.ts +5 -0
  619. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  620. package/lib/esm/internal/cross-package.js +4 -1
  621. package/lib/esm/internal/cross-package.js.map +1 -1
  622. package/lib/esm/ipc/IpcSession.js +1 -0
  623. package/lib/esm/ipc/IpcSession.js.map +1 -1
  624. package/lib/esm/ipc/IpcSocket.d.ts +2 -0
  625. package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
  626. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  627. package/lib/esm/ipc/IpcWebSocket.js +7 -6
  628. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  629. package/lib/esm/ipc/IpcWebSocketTransport.js +8 -7
  630. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  631. package/lib/esm/rpc/DevToolsRpcInterface.js +6 -6
  632. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  633. package/lib/esm/rpc/IModelReadRpcInterface.js +8 -11
  634. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  635. package/lib/esm/rpc/IModelTileRpcInterface.js +4 -4
  636. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  637. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +4 -4
  638. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  639. package/lib/esm/rpc/TestRpcManager.js +1 -4
  640. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  641. package/lib/esm/rpc/core/RpcConfiguration.js +51 -64
  642. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  643. package/lib/esm/rpc/core/RpcControl.js +29 -38
  644. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  645. package/lib/esm/rpc/core/RpcInvocation.js +19 -13
  646. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  647. package/lib/esm/rpc/core/RpcMarshaling.d.ts +1 -4
  648. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  649. package/lib/esm/rpc/core/RpcMarshaling.js +2 -1
  650. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  651. package/lib/esm/rpc/core/RpcOperation.js +29 -31
  652. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  653. package/lib/esm/rpc/core/RpcPendingQueue.js +17 -16
  654. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  655. package/lib/esm/rpc/core/RpcProtocol.js +32 -30
  656. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  657. package/lib/esm/rpc/core/RpcPush.js +15 -8
  658. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  659. package/lib/esm/rpc/core/RpcRegistry.d.ts.map +1 -1
  660. package/lib/esm/rpc/core/RpcRegistry.js +10 -9
  661. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  662. package/lib/esm/rpc/core/RpcRequest.d.ts +2 -2
  663. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  664. package/lib/esm/rpc/core/RpcRequest.js +51 -29
  665. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  666. package/lib/esm/rpc/core/RpcRoutingToken.js +4 -2
  667. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  668. package/lib/esm/rpc/core/RpcSessionInvocation.js +5 -10
  669. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  670. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +11 -17
  671. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  672. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  673. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  674. package/lib/esm/rpc/web/OpenAPI.js +2 -0
  675. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  676. package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -1
  677. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  678. package/lib/esm/rpc/web/RpcMultipart.js +14 -13
  679. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  680. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +3 -0
  681. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  682. package/lib/esm/rpc/web/WebAppRpcLogging.js +1 -6
  683. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  684. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  685. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  686. package/lib/esm/rpc/web/WebAppRpcProtocol.js +6 -6
  687. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  688. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  689. package/lib/esm/rpc/web/WebAppRpcRequest.js +27 -27
  690. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  691. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  692. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  693. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +14 -8
  694. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  695. package/lib/esm/tile/B3dmTileIO.js +7 -0
  696. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  697. package/lib/esm/tile/CompositeTileIO.js +3 -0
  698. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  699. package/lib/esm/tile/GltfTileIO.js +4 -3
  700. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  701. package/lib/esm/tile/I3dmTileIO.js +8 -0
  702. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  703. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  704. package/lib/esm/tile/IModelTileIO.js +26 -3
  705. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  706. package/lib/esm/tile/PntsTileIO.js +5 -0
  707. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  708. package/lib/esm/tile/TileIO.js +2 -0
  709. package/lib/esm/tile/TileIO.js.map +1 -1
  710. package/lib/esm/tile/TileMetadata.js +9 -1
  711. package/lib/esm/tile/TileMetadata.js.map +1 -1
  712. package/package.json +14 -14
  713. package/lib/cjs/BackendTypes.d.ts.map +0 -1
  714. package/lib/cjs/BackendTypes.js.map +0 -1
  715. package/lib/cjs/Render.d.ts +0 -85
  716. package/lib/cjs/Render.d.ts.map +0 -1
  717. package/lib/cjs/Render.js.map +0 -1
  718. package/lib/esm/BackendTypes.d.ts.map +0 -1
  719. package/lib/esm/BackendTypes.js.map +0 -1
  720. package/lib/esm/Render.d.ts +0 -85
  721. package/lib/esm/Render.d.ts.map +0 -1
  722. package/lib/esm/Render.js.map +0 -1
  723. /package/lib/cjs/{BackendTypes.js → internal/BackendTypes.js} +0 -0
  724. /package/lib/esm/{BackendTypes.js → internal/BackendTypes.js} +0 -0
@@ -41,6 +41,38 @@ var RpcProtocolVersion;
41
41
  * @internal
42
42
  */
43
43
  class RpcProtocol {
44
+ /** Events raised by all protocols. See [[RpcProtocolEvent]] */
45
+ static events = new core_bentley_1.BeEvent();
46
+ /** A version code that identifies the RPC protocol capabilties of this endpoint. */
47
+ static protocolVersion = RpcProtocolVersion.IntroducedStatusCategory;
48
+ /** The name of the RPC protocol version header. */
49
+ protocolVersionHeaderName = "";
50
+ /** Events raised by the protocol. See [[RpcProtocolEvent]] */
51
+ events = new core_bentley_1.BeEvent();
52
+ /** The configuration for the protocol. */
53
+ configuration;
54
+ /** The RPC invocation class for this protocol. */
55
+ invocationType = RpcInvocation_1.RpcInvocation;
56
+ serializedClientRequestContextHeaderNames = {
57
+ /** The name of the request id header. */
58
+ id: "",
59
+ /** The name of the application id header */
60
+ applicationId: "",
61
+ /** The name of the version header. */
62
+ applicationVersion: "",
63
+ /** The name of the session id header */
64
+ sessionId: "",
65
+ /** The name of the authorization header. */
66
+ authorization: "",
67
+ };
68
+ /** If greater than zero, specifies where to break large binary request payloads. */
69
+ transferChunkThreshold = 0;
70
+ /** Used by protocols that can transmit stream values natively. */
71
+ preserveStreams = false;
72
+ /** Used by protocols that can transmit IModelRpcProps values natively. */
73
+ checkToken = false;
74
+ /** Used by protocols that support user-defined status codes. */
75
+ supportsStatusCategory = false;
44
76
  /** If checkToken is true, will be called on the backend to inflate the IModelRpcProps for each request. */
45
77
  inflateToken(tokenFromBody, _request) { return tokenFromBody; }
46
78
  /** Override to supply the status corresponding to a protocol-specific code value. */
@@ -82,32 +114,6 @@ class RpcProtocol {
82
114
  }
83
115
  /** Constructs a protocol. */
84
116
  constructor(configuration) {
85
- /** The name of the RPC protocol version header. */
86
- this.protocolVersionHeaderName = "";
87
- /** Events raised by the protocol. See [[RpcProtocolEvent]] */
88
- this.events = new core_bentley_1.BeEvent();
89
- /** The RPC invocation class for this protocol. */
90
- this.invocationType = RpcInvocation_1.RpcInvocation;
91
- this.serializedClientRequestContextHeaderNames = {
92
- /** The name of the request id header. */
93
- id: "",
94
- /** The name of the application id header */
95
- applicationId: "",
96
- /** The name of the version header. */
97
- applicationVersion: "",
98
- /** The name of the session id header */
99
- sessionId: "",
100
- /** The name of the authorization header. */
101
- authorization: "",
102
- };
103
- /** If greater than zero, specifies where to break large binary request payloads. */
104
- this.transferChunkThreshold = 0;
105
- /** Used by protocols that can transmit stream values natively. */
106
- this.preserveStreams = false;
107
- /** Used by protocols that can transmit IModelRpcProps values natively. */
108
- this.checkToken = false;
109
- /** Used by protocols that support user-defined status codes. */
110
- this.supportsStatusCategory = false;
111
117
  this.configuration = configuration;
112
118
  this.events.addListener((type, object) => RpcProtocol.events.raiseEvent(type, object));
113
119
  }
@@ -121,8 +127,4 @@ class RpcProtocol {
121
127
  onRpcImplTerminated(_definition, _impl) { }
122
128
  }
123
129
  exports.RpcProtocol = RpcProtocol;
124
- /** Events raised by all protocols. See [[RpcProtocolEvent]] */
125
- RpcProtocol.events = new core_bentley_1.BeEvent();
126
- /** A version code that identifies the RPC protocol capabilties of this endpoint. */
127
- RpcProtocol.protocolVersion = RpcProtocolVersion.IntroducedStatusCategory;
128
130
  //# sourceMappingURL=RpcProtocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RpcProtocol.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcProtocol.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 { BeEvent } from \"@itwin/core-bentley\";\nimport { IModelRpcProps } from \"../../IModel\";\nimport { RpcInterface, RpcInterfaceDefinition } from \"../../RpcInterface\";\nimport { RpcConfiguration } from \"./RpcConfiguration\";\nimport { RpcProtocolEvent, RpcRequestStatus, RpcResponseCacheControl } from \"./RpcConstants\";\nimport { RpcNotFoundResponse } from \"./RpcControl\";\nimport { RpcInvocation, SerializedRpcActivity } from \"./RpcInvocation\";\nimport { RpcMarshaling, RpcSerializedValue } from \"./RpcMarshaling\";\nimport { RpcOperation } from \"./RpcOperation\";\nimport { RpcRequest } from \"./RpcRequest\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** A serialized RPC operation descriptor.\n * @internal\n */\nexport interface SerializedRpcOperation {\n interfaceDefinition: string;\n operationName: string;\n interfaceVersion: string;\n encodedRequest?: string;\n}\n\n/** A serialized RPC operation request.\n * @internal\n */\nexport interface SerializedRpcRequest extends SerializedRpcActivity {\n operation: SerializedRpcOperation;\n method: string;\n path: string;\n parameters: RpcSerializedValue;\n caching: RpcResponseCacheControl;\n ip?: string;\n protocolVersion?: number;\n parametersOverride?: any[];\n}\n\n/** An RPC operation request fulfillment.\n * @internal\n */\nexport interface RpcRequestFulfillment {\n /** The RPC interface for the request. */\n interfaceName: string;\n\n /** The id for the request. */\n id: string;\n\n /** The result for the request. */\n result: RpcSerializedValue;\n\n /** The un-serialized result for the request. */\n rawResult: any;\n\n /** A protocol-specific status code value for the request. */\n status: number;\n\n /* A protocol-specific value for retrying this request. */\n retry?: string;\n\n /** Whether to compress the result with one of the client's supported encodings. Defaults to true. */\n allowCompression?: boolean;\n}\n\n/** @internal */\nexport namespace RpcRequestFulfillment {\n export async function forUnknownError(request: SerializedRpcRequest, error: any): Promise<RpcRequestFulfillment> {\n const result = RpcMarshaling.serialize(undefined, error);\n\n return {\n interfaceName: request.operation.interfaceDefinition,\n id: request.id,\n result,\n rawResult: error,\n status: RpcRequestStatus.Rejected,\n };\n }\n}\n\n/** Handles RPC protocol events.\n * @internal\n */\nexport type RpcProtocolEventHandler = (type: RpcProtocolEvent, object: RpcRequest | RpcInvocation, err?: any) => void;\n\n/** Documents changes to the RPC protocol version.\n * @internal\n */\nexport enum RpcProtocolVersion {\n None = 0,\n IntroducedNoContent = 1,\n IntroducedStatusCategory = 2\n}\n\n/**\n * A backend response that is handled internally by the RPC system.\n * @internal\n */\nexport interface RpcManagedStatus {\n iTwinRpcCoreResponse: true;\n managedStatus: \"pending\" | \"notFound\" | \"noContent\";\n responseValue: string | { message: string } | RpcNotFoundResponse;\n}\n\n/** An application protocol for an RPC interface.\n * @internal\n */\nexport abstract class RpcProtocol {\n /** Events raised by all protocols. See [[RpcProtocolEvent]] */\n public static readonly events: BeEvent<RpcProtocolEventHandler> = new BeEvent();\n\n /** A version code that identifies the RPC protocol capabilties of this endpoint. */\n public static readonly protocolVersion: number = RpcProtocolVersion.IntroducedStatusCategory;\n\n /** The name of the RPC protocol version header. */\n public protocolVersionHeaderName = \"\";\n\n /** Events raised by the protocol. See [[RpcProtocolEvent]] */\n public readonly events: BeEvent<RpcProtocolEventHandler> = new BeEvent();\n\n /** The configuration for the protocol. */\n public readonly configuration: RpcConfiguration;\n\n /** The RPC request class for this protocol. */\n public abstract readonly requestType: typeof RpcRequest;\n\n /** The RPC invocation class for this protocol. */\n public readonly invocationType: typeof RpcInvocation = RpcInvocation;\n\n public serializedClientRequestContextHeaderNames: SerializedRpcActivity = {\n /** The name of the request id header. */\n id: \"\",\n\n /** The name of the application id header */\n applicationId: \"\",\n\n /** The name of the version header. */\n applicationVersion: \"\",\n\n /** The name of the session id header */\n sessionId: \"\",\n\n /** The name of the authorization header. */\n authorization: \"\",\n };\n\n /** If greater than zero, specifies where to break large binary request payloads. */\n public transferChunkThreshold: number = 0;\n\n /** Used by protocols that can transmit stream values natively. */\n public preserveStreams: boolean = false;\n\n /** Used by protocols that can transmit IModelRpcProps values natively. */\n public checkToken: boolean = false;\n\n /** Used by protocols that support user-defined status codes. */\n public supportsStatusCategory: boolean = false;\n\n /** If checkToken is true, will be called on the backend to inflate the IModelRpcProps for each request. */\n public inflateToken(tokenFromBody: IModelRpcProps, _request: SerializedRpcRequest): IModelRpcProps { return tokenFromBody; }\n\n /** Override to supply the status corresponding to a protocol-specific code value. */\n public getStatus(code: number): RpcRequestStatus {\n return code;\n }\n\n /** Override to supply the protocol-specific code corresponding to a status value. */\n public getCode(status: RpcRequestStatus): number {\n return status;\n }\n\n /** Override to supply the protocol-specific path value for an RPC operation. */\n public supplyPathForOperation(operation: RpcOperation, _request: RpcRequest | undefined): string {\n return JSON.stringify(operation);\n }\n\n /** Override to supply the operation for a protocol-specific path value. */\n public getOperationFromPath(path: string): SerializedRpcOperation {\n return JSON.parse(path);\n }\n\n /** Obtains the implementation result on the backend for an RPC operation request. */\n public async fulfill(request: SerializedRpcRequest): Promise<RpcRequestFulfillment> {\n return new (this.invocationType)(this, request).fulfillment;\n }\n\n /** Serializes a request. */\n public async serialize(request: RpcRequest): Promise<SerializedRpcRequest> {\n const serializedContext = await RpcConfiguration.requestContext.serialize(request);\n return {\n ...serializedContext,\n operation: {\n interfaceDefinition: request.operation.interfaceDefinition.interfaceName,\n operationName: request.operation.operationName,\n interfaceVersion: request.operation.interfaceVersion,\n },\n method: request.method,\n path: request.path,\n parameters: RpcMarshaling.serialize(request.protocol, request.parameters),\n caching: RpcResponseCacheControl.None,\n protocolVersion: RpcProtocol.protocolVersion,\n };\n }\n\n /** Constructs a protocol. */\n public constructor(configuration: RpcConfiguration) {\n this.configuration = configuration;\n this.events.addListener((type, object) => RpcProtocol.events.raiseEvent(type, object));\n }\n\n /** @internal */\n public onRpcClientInitialized(_definition: RpcInterfaceDefinition, _client: RpcInterface): void { }\n\n /** @internal */\n public onRpcImplInitialized(_definition: RpcInterfaceDefinition, _impl: RpcInterface): void { }\n\n /** @internal */\n public onRpcClientTerminated(_definition: RpcInterfaceDefinition, _client: RpcInterface): void { }\n\n /** @internal */\n public onRpcImplTerminated(_definition: RpcInterfaceDefinition, _impl: RpcInterface): void { }\n}\n"]}
1
+ {"version":3,"file":"RpcProtocol.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcProtocol.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 { BeEvent } from \"@itwin/core-bentley\";\nimport { IModelRpcProps } from \"../../IModel\";\nimport { RpcInterface, RpcInterfaceDefinition } from \"../../RpcInterface\";\nimport { RpcConfiguration } from \"./RpcConfiguration\";\nimport { RpcProtocolEvent, RpcRequestStatus, RpcResponseCacheControl } from \"./RpcConstants\";\nimport { RpcNotFoundResponse } from \"./RpcControl\";\nimport { RpcInvocation, SerializedRpcActivity } from \"./RpcInvocation\";\nimport { RpcMarshaling, RpcSerializedValue } from \"./RpcMarshaling\";\nimport { RpcOperation } from \"./RpcOperation\";\nimport { RpcRequest } from \"./RpcRequest\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** A serialized RPC operation descriptor.\n * @internal\n */\nexport interface SerializedRpcOperation {\n interfaceDefinition: string;\n operationName: string;\n interfaceVersion: string;\n encodedRequest?: string;\n}\n\n/** A serialized RPC operation request.\n * @internal\n */\nexport interface SerializedRpcRequest extends SerializedRpcActivity {\n operation: SerializedRpcOperation;\n method: string;\n path: string;\n parameters: RpcSerializedValue;\n caching: RpcResponseCacheControl;\n ip?: string;\n protocolVersion?: number;\n parametersOverride?: any[];\n}\n\n/** An RPC operation request fulfillment.\n * @internal\n */\nexport interface RpcRequestFulfillment {\n /** The RPC interface for the request. */\n interfaceName: string;\n\n /** The id for the request. */\n id: string;\n\n /** The result for the request. */\n result: RpcSerializedValue;\n\n /** The un-serialized result for the request. */\n rawResult: any;\n\n /** A protocol-specific status code value for the request. */\n status: number;\n\n /* A protocol-specific value for retrying this request. */\n retry?: string;\n\n /** Whether to compress the result with one of the client's supported encodings. Defaults to true. */\n allowCompression?: boolean;\n}\n\n/** @internal */\nexport namespace RpcRequestFulfillment {\n export async function forUnknownError(request: SerializedRpcRequest, error: any): Promise<RpcRequestFulfillment> {\n const result = RpcMarshaling.serialize(undefined, error);\n\n return {\n interfaceName: request.operation.interfaceDefinition,\n id: request.id,\n result,\n rawResult: error,\n status: RpcRequestStatus.Rejected,\n };\n }\n}\n\n/** Handles RPC protocol events.\n * @internal\n */\nexport type RpcProtocolEventHandler = (type: RpcProtocolEvent, object: RpcRequest | RpcInvocation, err?: any) => void;\n\n/** Documents changes to the RPC protocol version.\n * @internal\n */\nexport enum RpcProtocolVersion {\n None = 0,\n IntroducedNoContent = 1,\n IntroducedStatusCategory = 2\n}\n\n/**\n * A backend response that is handled internally by the RPC system.\n * @internal\n */\nexport interface RpcManagedStatus {\n iTwinRpcCoreResponse: true;\n managedStatus: \"pending\" | \"notFound\" | \"noContent\";\n responseValue: string | { message: string } | RpcNotFoundResponse;\n}\n\n/** An application protocol for an RPC interface.\n * @internal\n */\nexport abstract class RpcProtocol {\n /** Events raised by all protocols. See [[RpcProtocolEvent]] */\n public static readonly events: BeEvent<RpcProtocolEventHandler> = new BeEvent();\n\n /** A version code that identifies the RPC protocol capabilties of this endpoint. */\n public static readonly protocolVersion: number = RpcProtocolVersion.IntroducedStatusCategory;\n\n /** The name of the RPC protocol version header. */\n public protocolVersionHeaderName = \"\";\n\n /** Events raised by the protocol. See [[RpcProtocolEvent]] */\n public readonly events: BeEvent<RpcProtocolEventHandler> = new BeEvent();\n\n /** The configuration for the protocol. */\n public readonly configuration: RpcConfiguration;\n\n /** The RPC request class for this protocol. */\n public abstract readonly requestType: typeof RpcRequest;\n\n /** The RPC invocation class for this protocol. */\n public readonly invocationType: typeof RpcInvocation = RpcInvocation;\n\n public serializedClientRequestContextHeaderNames: SerializedRpcActivity = {\n /** The name of the request id header. */\n id: \"\",\n\n /** The name of the application id header */\n applicationId: \"\",\n\n /** The name of the version header. */\n applicationVersion: \"\",\n\n /** The name of the session id header */\n sessionId: \"\",\n\n /** The name of the authorization header. */\n authorization: \"\",\n };\n\n /** If greater than zero, specifies where to break large binary request payloads. */\n public transferChunkThreshold: number = 0;\n\n /** Used by protocols that can transmit stream values natively. */\n public preserveStreams: boolean = false;\n\n /** Used by protocols that can transmit IModelRpcProps values natively. */\n public checkToken: boolean = false;\n\n /** Used by protocols that support user-defined status codes. */\n public supportsStatusCategory: boolean = false;\n\n /** If checkToken is true, will be called on the backend to inflate the IModelRpcProps for each request. */\n public inflateToken(tokenFromBody: IModelRpcProps, _request: SerializedRpcRequest): IModelRpcProps { return tokenFromBody; }\n\n /** Override to supply the status corresponding to a protocol-specific code value. */\n public getStatus(code: number): RpcRequestStatus {\n return code;\n }\n\n /** Override to supply the protocol-specific code corresponding to a status value. */\n public getCode(status: RpcRequestStatus): number {\n return status;\n }\n\n /** Override to supply the protocol-specific path value for an RPC operation. */\n public supplyPathForOperation(operation: RpcOperation, _request: RpcRequest | undefined): string {\n return JSON.stringify(operation);\n }\n\n /** Override to supply the operation for a protocol-specific path value. */\n public getOperationFromPath(path: string): SerializedRpcOperation {\n return JSON.parse(path);\n }\n\n /** Obtains the implementation result on the backend for an RPC operation request. */\n public async fulfill(request: SerializedRpcRequest): Promise<RpcRequestFulfillment> {\n return new (this.invocationType)(this, request).fulfillment;\n }\n\n /** Serializes a request. */\n public async serialize(request: RpcRequest): Promise<SerializedRpcRequest> {\n const serializedContext = await RpcConfiguration.requestContext.serialize(request);\n return {\n ...serializedContext,\n operation: {\n interfaceDefinition: request.operation.interfaceDefinition.interfaceName,\n operationName: request.operation.operationName,\n interfaceVersion: request.operation.interfaceVersion,\n },\n method: request.method,\n path: request.path,\n parameters: RpcMarshaling.serialize(request.protocol, request.parameters),\n caching: RpcResponseCacheControl.None,\n protocolVersion: RpcProtocol.protocolVersion,\n };\n }\n\n /** Constructs a protocol. */\n public constructor(configuration: RpcConfiguration) {\n this.configuration = configuration;\n this.events.addListener((type, object) => RpcProtocol.events.raiseEvent(type, object));\n }\n\n /** @internal */\n public onRpcClientInitialized(_definition: RpcInterfaceDefinition, _client: RpcInterface): void { }\n\n /** @internal */\n public onRpcImplInitialized(_definition: RpcInterfaceDefinition, _impl: RpcInterface): void { }\n\n /** @internal */\n public onRpcClientTerminated(_definition: RpcInterfaceDefinition, _client: RpcInterface): void { }\n\n /** @internal */\n public onRpcImplTerminated(_definition: RpcInterfaceDefinition, _impl: RpcInterface): void { }\n}\n"]}
@@ -17,23 +17,28 @@ const IModelError_1 = require("../../IModelError");
17
17
  * @internal
18
18
  */
19
19
  class RpcPushTransport {
20
+ onMessage;
20
21
  }
21
22
  exports.RpcPushTransport = RpcPushTransport;
22
23
  /** Defines a source of push messages.
23
24
  * @internal
24
25
  */
25
26
  class RpcPushService {
27
+ /** The push service for the dedicated backend (for example, an electron or mobile app). */
28
+ static dedicated = new RpcPushService("dedicated");
29
+ name;
26
30
  constructor(name) {
27
31
  this.name = name;
28
32
  }
29
33
  }
30
34
  exports.RpcPushService = RpcPushService;
31
- /** The push service for the dedicated backend (for example, an electron or mobile app). */
32
- RpcPushService.dedicated = new RpcPushService("dedicated");
33
35
  /** Defines a named stream of push messages.
34
36
  * @internal
35
37
  */
36
38
  class RpcPushChannel {
39
+ /** @internal */
40
+ static enabled = false;
41
+ static _channels = new Map();
37
42
  static setup(transport) {
38
43
  transport.onMessage = RpcPushChannel.notifySubscribers.bind(RpcPushChannel);
39
44
  RpcPushChannel.enabled = true;
@@ -45,6 +50,9 @@ class RpcPushChannel {
45
50
  for (const subscriber of channel._subscribers)
46
51
  subscriber.onMessage.raiseEvent(messageData);
47
52
  }
53
+ _subscribers = [];
54
+ name;
55
+ service;
48
56
  get id() { return RpcPushChannel.formatId(this.name, this.service); }
49
57
  get enabled() { return RpcPushChannel.enabled; }
50
58
  subscribe() {
@@ -56,8 +64,6 @@ class RpcPushChannel {
56
64
  return `${service.name}-${name}`;
57
65
  }
58
66
  constructor(name, service) {
59
- this._subscribers = [];
60
- this._refCount = 1;
61
67
  this.name = name;
62
68
  this.service = service;
63
69
  }
@@ -84,6 +90,7 @@ class RpcPushChannel {
84
90
  this._channels.set(id, channel);
85
91
  return channel;
86
92
  }
93
+ _refCount = 1;
87
94
  dispose() {
88
95
  if (this.isDisposed)
89
96
  return;
@@ -98,16 +105,14 @@ class RpcPushChannel {
98
105
  }
99
106
  }
100
107
  exports.RpcPushChannel = RpcPushChannel;
101
- /** @internal */
102
- RpcPushChannel.enabled = false;
103
- RpcPushChannel._channels = new Map();
104
108
  /** Receives push messages from the backend.
105
109
  * @internal
106
110
  */
107
111
  class RpcPushSubscription {
112
+ channel;
113
+ onMessage = new core_bentley_1.BeEvent();
108
114
  /** @internal */
109
115
  constructor(channel) {
110
- this.onMessage = new core_bentley_1.BeEvent();
111
116
  this.channel = channel;
112
117
  }
113
118
  }
@@ -119,6 +124,8 @@ class RpcPushConnection {
119
124
  static for(_channel, _client = undefined) {
120
125
  throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, "Not implemented.");
121
126
  }
127
+ channel;
128
+ client;
122
129
  constructor(channel, client) {
123
130
  this.channel = channel;
124
131
  this.client = client;
@@ -1 +1 @@
1
- {"version":3,"file":"RpcPush.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcPush.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/*---------------------------------------------------------------------------------------------\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RpcInterface\n */\n\nimport { assert, BeEvent, BentleyStatus } from \"@itwin/core-bentley\";\nimport { IModelError } from \"../../IModelError\";\n\n/** @internal */\nexport type RpcPushMessageListener<T> = (message: T) => void;\n\n/** Defines a transport for push messages.\n * @internal\n */\nexport abstract class RpcPushTransport {\n public onMessage?: (channelId: string, messageData: any) => void;\n}\n\n/** Defines a source of push messages.\n * @internal\n */\nexport class RpcPushService {\n /** The push service for the dedicated backend (for example, an electron or mobile app). */\n public static dedicated = new RpcPushService(\"dedicated\");\n\n public readonly name: string;\n\n public constructor(name: string) {\n this.name = name;\n }\n}\n\n/** Defines a named stream of push messages.\n * @internal\n */\nexport class RpcPushChannel<T> {\n /** @internal */\n public static enabled = false;\n\n private static _channels: Map<string, RpcPushChannel<any>> = new Map();\n\n public static setup(transport: RpcPushTransport) {\n transport.onMessage = RpcPushChannel.notifySubscribers.bind(RpcPushChannel);\n RpcPushChannel.enabled = true;\n }\n\n private static notifySubscribers(channelId: string, messageData: any) {\n const channel = this._channels.get(channelId);\n if (!channel)\n return;\n\n for (const subscriber of channel._subscribers)\n subscriber.onMessage.raiseEvent(messageData);\n }\n\n private _subscribers: RpcPushSubscription<T>[] = [];\n public readonly name: string;\n public readonly service: RpcPushService;\n public get id() { return RpcPushChannel.formatId(this.name, this.service); }\n public get enabled() { return RpcPushChannel.enabled; }\n\n public subscribe(): RpcPushSubscription<T> {\n const subscription = new RpcPushSubscription(this);\n this._subscribers.push(subscription);\n return subscription;\n }\n\n private static formatId(name: string, service: RpcPushService): string {\n return `${service.name}-${name}`;\n }\n\n private constructor(name: string, service: RpcPushService) {\n this.name = name;\n this.service = service;\n }\n\n /** Creates a new RpcPushChannel.\n * @throws IModelError if a channel with the specified name and service already exist.\n */\n public static create<T>(name: string, service = RpcPushService.dedicated): RpcPushChannel<T> {\n return this.get<T>(name, service, false);\n }\n\n /** Obtains an RpcPushChannel, creating it if one with the specified name and service does not already exists. */\n public static obtain<T>(name: string, service = RpcPushService.dedicated): RpcPushChannel<T> {\n return this.get<T>(name, service, true);\n }\n\n private static get<T>(name: string, service: RpcPushService, reuseExisting: boolean): RpcPushChannel<T> {\n const id = this.formatId(name, service);\n let channel = this._channels.get(id);\n if (channel) {\n if (!reuseExisting)\n throw new IModelError(BentleyStatus.ERROR, `Channel \"${id}\" already exists.`);\n\n ++channel._refCount;\n return channel;\n }\n\n channel = new RpcPushChannel(name, service);\n this._channels.set(id, channel);\n return channel;\n }\n\n private _refCount = 1;\n public dispose(): void {\n if (this.isDisposed)\n return;\n\n assert(this._refCount > 0);\n if (--this._refCount === 0) {\n RpcPushChannel._channels.delete(this.id);\n this._subscribers.length = 0;\n }\n }\n\n public get isDisposed(): boolean {\n return 0 === this._refCount;\n }\n}\n\n/** Receives push messages from the backend.\n * @internal\n */\nexport class RpcPushSubscription<T> {\n public readonly channel: RpcPushChannel<T>;\n public readonly onMessage = new BeEvent<RpcPushMessageListener<T>>();\n\n /** @internal */\n public constructor(channel: RpcPushChannel<T>) {\n this.channel = channel;\n }\n}\n\n/** Sends push messages to the frontend.\n * @internal\n */\nexport abstract class RpcPushConnection<T> {\n public static for<T>(_channel: RpcPushChannel<T>, _client: unknown = undefined): RpcPushConnection<T> {\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\n }\n\n public readonly channel: RpcPushChannel<T>;\n public readonly client: unknown;\n\n public abstract send(messageData: T): Promise<void>;\n\n protected constructor(channel: RpcPushChannel<T>, client: unknown) {\n this.channel = channel;\n this.client = client;\n }\n}\n"]}
1
+ {"version":3,"file":"RpcPush.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcPush.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/*---------------------------------------------------------------------------------------------\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module RpcInterface\n */\n\nimport { assert, BeEvent, BentleyStatus } from \"@itwin/core-bentley\";\nimport { IModelError } from \"../../IModelError\";\n\n/** @internal */\nexport type RpcPushMessageListener<T> = (message: T) => void;\n\n/** Defines a transport for push messages.\n * @internal\n */\nexport abstract class RpcPushTransport {\n public onMessage?: (channelId: string, messageData: any) => void;\n}\n\n/** Defines a source of push messages.\n * @internal\n */\nexport class RpcPushService {\n /** The push service for the dedicated backend (for example, an electron or mobile app). */\n public static dedicated = new RpcPushService(\"dedicated\");\n\n public readonly name: string;\n\n public constructor(name: string) {\n this.name = name;\n }\n}\n\n/** Defines a named stream of push messages.\n * @internal\n */\nexport class RpcPushChannel<T> {\n /** @internal */\n public static enabled = false;\n\n private static _channels: Map<string, RpcPushChannel<any>> = new Map();\n\n public static setup(transport: RpcPushTransport) {\n transport.onMessage = RpcPushChannel.notifySubscribers.bind(RpcPushChannel);\n RpcPushChannel.enabled = true;\n }\n\n private static notifySubscribers(channelId: string, messageData: any) {\n const channel = this._channels.get(channelId);\n if (!channel)\n return;\n\n for (const subscriber of channel._subscribers)\n subscriber.onMessage.raiseEvent(messageData);\n }\n\n private _subscribers: RpcPushSubscription<T>[] = [];\n public readonly name: string;\n public readonly service: RpcPushService;\n public get id() { return RpcPushChannel.formatId(this.name, this.service); }\n public get enabled() { return RpcPushChannel.enabled; }\n\n public subscribe(): RpcPushSubscription<T> {\n const subscription = new RpcPushSubscription(this);\n this._subscribers.push(subscription);\n return subscription;\n }\n\n private static formatId(name: string, service: RpcPushService): string {\n return `${service.name}-${name}`;\n }\n\n private constructor(name: string, service: RpcPushService) {\n this.name = name;\n this.service = service;\n }\n\n /** Creates a new RpcPushChannel.\n * @throws IModelError if a channel with the specified name and service already exist.\n */\n public static create<T>(name: string, service = RpcPushService.dedicated): RpcPushChannel<T> {\n return this.get<T>(name, service, false);\n }\n\n /** Obtains an RpcPushChannel, creating it if one with the specified name and service does not already exists. */\n public static obtain<T>(name: string, service = RpcPushService.dedicated): RpcPushChannel<T> {\n return this.get<T>(name, service, true);\n }\n\n private static get<T>(name: string, service: RpcPushService, reuseExisting: boolean): RpcPushChannel<T> {\n const id = this.formatId(name, service);\n let channel = this._channels.get(id);\n if (channel) {\n if (!reuseExisting)\n throw new IModelError(BentleyStatus.ERROR, `Channel \"${id}\" already exists.`);\n\n ++channel._refCount;\n return channel;\n }\n\n channel = new RpcPushChannel(name, service);\n this._channels.set(id, channel);\n return channel;\n }\n\n private _refCount = 1;\n public dispose(): void {\n if (this.isDisposed)\n return;\n\n assert(this._refCount > 0);\n if (--this._refCount === 0) {\n RpcPushChannel._channels.delete(this.id);\n this._subscribers.length = 0;\n }\n }\n\n public get isDisposed(): boolean {\n return 0 === this._refCount;\n }\n}\n\n/** Receives push messages from the backend.\n * @internal\n */\nexport class RpcPushSubscription<T> {\n public readonly channel: RpcPushChannel<T>;\n public readonly onMessage = new BeEvent<RpcPushMessageListener<T>>();\n\n /** @internal */\n public constructor(channel: RpcPushChannel<T>) {\n this.channel = channel;\n }\n}\n\n/** Sends push messages to the frontend.\n * @internal\n */\nexport abstract class RpcPushConnection<T> {\n public static for<T>(_channel: RpcPushChannel<T>, _client: unknown = undefined): RpcPushConnection<T> {\n throw new IModelError(BentleyStatus.ERROR, \"Not implemented.\");\n }\n\n public readonly channel: RpcPushChannel<T>;\n public readonly client: unknown;\n\n public abstract send(messageData: T): Promise<void>;\n\n protected constructor(channel: RpcPushChannel<T>, client: unknown) {\n this.channel = channel;\n this.client = client;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRegistry.d.ts","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,gBAAgB;AAChB,eAAO,MAAM,QAAQ,eAA+C,CAAC;AAErE,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAAgD,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,MAAM,eAAsD,CAAC;AAE1E,gBAAgB;AAChB,eAAO,MAAM,QAAQ,eAA6D,CAAC;AAEnF,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAA0D,CAAC;AAEvF,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,eAA6D,CAAC;AAE7F,gBAAgB;AAChB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;IAEtC,OAAO;IAGP,WAAkB,QAAQ,gBAUzB;IAEM,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;IAOzD,0BAA0B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgBpE,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,eAAyC,GAAG,CAAC;IAc3I,mBAAmB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC;IAQrF,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;IAK5D,YAAY,CAAC,WAAW,SAAS,YAAY,EAAE,eAAe,SAAS,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,0BAA0B,CAAC,eAAe,CAAC;IAKhM,cAAc,CAAC,WAAW,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC;IAUhG,kBAAkB,CAAC,WAAW,SAAS,YAAY,EAAE,eAAe,SAAS,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI3K,yBAAyB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIjG,sBAAsB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI;IAe3F,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAMnF,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;IACnE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAa;IAC5D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACvD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAC/D,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAa;IAE3E,EAAE,eAGJ;IAEL,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;CAIzB"}
1
+ {"version":3,"file":"RpcRegistry.d.ts","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,gBAAgB;AAChB,eAAO,MAAM,QAAQ,eAA+C,CAAC;AAErE,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAAgD,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,MAAM,eAAsD,CAAC;AAE1E,gBAAgB;AAChB,eAAO,MAAM,QAAQ,eAA6D,CAAC;AAEnF,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAA0D,CAAC;AAEvF,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,eAA6D,CAAC;AAK7F,gBAAgB;AAChB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;IAEtC,OAAO;IAGP,WAAkB,QAAQ,gBAUzB;IAEM,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;IAOzD,0BAA0B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAgBpE,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,eAAyC,GAAG,CAAC;IAc3I,mBAAmB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC;IAQrF,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;IAK5D,YAAY,CAAC,WAAW,SAAS,YAAY,EAAE,eAAe,SAAS,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,0BAA0B,CAAC,eAAe,CAAC;IAKhM,cAAc,CAAC,WAAW,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC;IAUhG,kBAAkB,CAAC,WAAW,SAAS,YAAY,EAAE,eAAe,SAAS,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI3K,yBAAyB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIjG,sBAAsB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI;IAe3F,qBAAqB,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAMnF,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;IACnE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAa;IAC5D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACvD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAC/D,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAa;IAE3E,EAAE,eAGJ;IAEL,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;CAIzB"}
@@ -31,16 +31,8 @@ exports.CURRENT_REQUEST = Symbol.for("@itwin/core-common/RpcRequest/__current__"
31
31
  exports.CURRENT_INVOCATION = Symbol.for("@itwin/core-common/RpcInvocation/__current__");
32
32
  /** @internal */
33
33
  class RpcRegistry {
34
+ static _instance;
34
35
  constructor() {
35
- this.definitionClasses = new Map();
36
- this.proxies = new Map();
37
- this.implementations = new Map();
38
- this.suppliedImplementations = new Map();
39
- this.implementationClasses = new Map();
40
- this.id = (() => {
41
- let i = 0;
42
- return () => ++i;
43
- })();
44
36
  }
45
37
  static get instance() {
46
38
  if (!RpcRegistry._instance) {
@@ -124,6 +116,15 @@ class RpcRegistry {
124
116
  this.purgeClient(definition);
125
117
  this.definitionClasses.delete(definition.interfaceName);
126
118
  }
119
+ definitionClasses = new Map();
120
+ proxies = new Map();
121
+ implementations = new Map();
122
+ suppliedImplementations = new Map();
123
+ implementationClasses = new Map();
124
+ id = (() => {
125
+ let i = 0;
126
+ return () => ++i;
127
+ })();
127
128
  instantiateImpl(definition) {
128
129
  this.checkInitialized(definition);
129
130
  const registeredImplementation = this.implementationClasses.get(definition.interfaceName);
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRegistry.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRegistry.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 { BentleyStatus } from \"@itwin/core-bentley\";\nimport { IModelError } from \"../../IModelError\";\nimport { RpcConfiguration } from \"./RpcConfiguration\";\nimport { RpcPendingQueue } from \"./RpcPendingQueue\";\nimport { initializeRpcRequest } from \"./RpcRequest\";\nimport { RpcRoutingToken } from \"./RpcRoutingToken\";\nimport { RpcInterface, RpcInterfaceDefinition, RpcInterfaceImplementation } from \"../../RpcInterface\";\nimport { RpcInterfaceEndpoints } from \"../../RpcManager\";\nimport { RpcControlChannel } from \"./RpcControl\";\nimport { RpcOperation, RpcOperationPolicy } from \"./RpcOperation\";\n\n/** @internal */\nexport const REGISTRY = Symbol.for(\"@itwin/core-common/RpcRegistry\");\n\n/** @internal */\nexport const OPERATION = Symbol.for(\"@itwin/core-common/RpcOperation\");\n\n/** @internal */\nexport const POLICY = Symbol.for(\"@itwin/core-common/RpcOperationPolicy\");\n\n/** @internal */\nexport const INSTANCE = Symbol.for(\"@itwin/core-common/RpcInterface/__instance__\");\n\n/** @internal */\nexport const CURRENT_REQUEST = Symbol.for(\"@itwin/core-common/RpcRequest/__current__\");\n\n/** @internal */\nexport const CURRENT_INVOCATION = Symbol.for(\"@itwin/core-common/RpcInvocation/__current__\");\n\n/** @internal */\nexport class RpcRegistry {\n private static _instance: RpcRegistry;\n\n private constructor() {\n }\n\n public static get instance() {\n if (!RpcRegistry._instance) {\n const globalObj: any = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\n if (!globalObj[REGISTRY])\n globalObj[REGISTRY] = new RpcRegistry();\n\n RpcRegistry._instance = globalObj[REGISTRY];\n }\n\n return RpcRegistry._instance;\n }\n\n public lookupInterfaceDefinition(name: string): RpcInterfaceDefinition {\n if (!this.definitionClasses.has(name))\n throw new IModelError(BentleyStatus.ERROR, `RPC interface \"${name}\" is not initialized.`);\n\n return this.definitionClasses.get(name) as RpcInterfaceDefinition;\n }\n\n public async describeAvailableEndpoints(): Promise<RpcInterfaceEndpoints[]> {\n const requests: Array<Promise<RpcInterfaceEndpoints[]>> = [];\n for (const channel of RpcControlChannel.channels) {\n requests.push(channel.describeEndpoints());\n }\n\n const responses = await Promise.all(requests);\n const endpoints = responses.reduce((a, b) => a.concat(b), []);\n for (const endpoint of endpoints) {\n const definition = this.definitionClasses.get(endpoint.interfaceName);\n endpoint.compatible = (definition && RpcInterface.isVersionCompatible(endpoint.interfaceVersion, definition.interfaceVersion)) ? true : false;\n }\n\n return endpoints;\n }\n\n public getClientForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing: RpcRoutingToken = RpcRoutingToken.default): T {\n let instance: T | undefined;\n\n const proxies = this.proxies.get(definition.interfaceName);\n if (proxies) {\n instance = proxies.get(routing.id) as (T | undefined);\n }\n\n if (!instance)\n instance = this.instantiateClient(definition, routing);\n\n return instance;\n }\n\n public getImplForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): T {\n let instance = this.implementations.get(definition.interfaceName) as (T | undefined);\n if (!instance)\n instance = this.instantiateImpl(definition);\n\n return instance;\n }\n\n public lookupImpl<T extends RpcInterface>(interfaceName: string): T {\n const definition = this.lookupInterfaceDefinition(interfaceName);\n return this.getImplForInterface(definition) as T;\n }\n\n public registerImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, implementation: RpcInterfaceImplementation<TImplementation>) {\n this.unregisterImpl(definition);\n this.implementationClasses.set(definition.interfaceName, implementation);\n }\n\n public unregisterImpl<TDefinition extends RpcInterface>(definition: RpcInterfaceDefinition<TDefinition>) {\n this.implementationClasses.delete(definition.interfaceName);\n\n const impl = this.implementations.get(definition.interfaceName);\n if (impl) {\n impl.configuration.onRpcImplTerminated(definition, impl);\n this.implementations.delete(definition.interfaceName);\n }\n }\n\n public supplyImplInstance<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, instance: TImplementation): void {\n this.suppliedImplementations.set(definition.interfaceName, instance);\n }\n\n public isRpcInterfaceInitialized<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): boolean {\n return this.definitionClasses.has(definition.interfaceName);\n }\n\n public initializeRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void {\n if (this.definitionClasses.has(definition.interfaceName)) {\n const existing = this.definitionClasses.get(definition.interfaceName);\n if (existing && definition.interfaceVersion === \"CONTROL\" && existing !== definition) {\n this.configureOperations(definition); // configs that differ only by routing still need the control ops initialized\n }\n\n return;\n }\n\n this.notifyInitialize();\n this.definitionClasses.set(definition.interfaceName, definition);\n this.configureOperations(definition);\n }\n\n public terminateRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n this.unregisterImpl(definition);\n this.purgeClient(definition);\n this.definitionClasses.delete(definition.interfaceName);\n }\n\n public definitionClasses: Map<string, RpcInterfaceDefinition> = new Map();\n public proxies: Map<string, Map<number, RpcInterface>> = new Map();\n public implementations: Map<string, RpcInterface> = new Map();\n public suppliedImplementations: Map<string, RpcInterface> = new Map();\n public implementationClasses: Map<string, RpcInterfaceImplementation> = new Map();\n\n public id = (() => {\n let i = 0;\n return () => ++i;\n })();\n\n private instantiateImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>): TImplementation {\n this.checkInitialized(definition);\n\n const registeredImplementation = this.implementationClasses.get(definition.interfaceName) as RpcInterfaceImplementation<TImplementation>;\n if (!registeredImplementation)\n throw new IModelError(BentleyStatus.ERROR, `An RPC interface implementation class for \"${definition.interfaceName}\" is not registered.`);\n\n if (definition.prototype.configurationSupplier)\n registeredImplementation.prototype.configurationSupplier = definition.prototype.configurationSupplier;\n\n const supplied = this.suppliedImplementations.get(definition.interfaceName);\n const implementation = supplied || new registeredImplementation();\n if (!(implementation instanceof registeredImplementation))\n throw new IModelError(BentleyStatus.ERROR, `Invalid RPC interface implementation.`);\n\n if (supplied) {\n (supplied.configuration as any) = RpcConfiguration.supply(supplied);\n }\n\n this.implementations.set(definition.interfaceName, implementation);\n implementation.configuration.onRpcImplInitialized(definition, implementation);\n return implementation;\n }\n\n private instantiateClient<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing: RpcRoutingToken = RpcRoutingToken.default): T {\n this.checkInitialized(definition);\n\n const proxy = new (definition as any)(routing) as T;\n\n if (!this.proxies.has(definition.interfaceName)) {\n this.proxies.set(definition.interfaceName, new Map());\n }\n\n this.proxies.get(definition.interfaceName)?.set(routing.id, proxy);\n\n Object.getOwnPropertyNames(definition.prototype).forEach((operationName) => {\n if (operationName === \"constructor\" || operationName === \"configurationSupplier\")\n return;\n\n this.interceptOperation(proxy, operationName);\n });\n\n proxy.configuration.onRpcClientInitialized(definition, proxy);\n return proxy;\n }\n\n private interceptOperation(proxy: RpcInterface, operation: string) {\n const clientFunction = (proxy as any)[operation];\n (proxy as any)[operation] = function () {\n const args = Array.from(arguments);\n args.push(operation);\n return clientFunction.apply(proxy, args);\n };\n }\n\n private checkInitialized<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n if (!this.definitionClasses.has(definition.interfaceName))\n throw new IModelError(BentleyStatus.ERROR, `RPC interface \"${definition.interfaceName}\" is not initialized.`);\n }\n\n private configureOperations<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n const proto = (definition.prototype as any);\n\n Object.getOwnPropertyNames(proto).forEach((operationName) => {\n if (operationName === \"constructor\" || operationName === \"configurationSupplier\")\n return;\n\n const propertyName = RpcOperation.computeOperationName(operationName);\n\n if (!proto[propertyName][OPERATION]) {\n const policy = (definition as any)[POLICY] || new RpcOperationPolicy();\n proto[propertyName][OPERATION] = new RpcOperation(definition, propertyName, policy);\n }\n });\n }\n\n private purgeClient<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n const proxies = this.proxies.get(definition.interfaceName);\n if (proxies) {\n proxies.forEach((proxy) => proxy.configuration.onRpcClientTerminated(definition, proxy));\n this.proxies.delete(definition.interfaceName);\n }\n }\n\n private notifyInitialize() {\n initializeRpcRequest();\n RpcPendingQueue.initialize();\n }\n}\n"]}
1
+ {"version":3,"file":"RpcRegistry.js","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRegistry.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 { BentleyStatus } from \"@itwin/core-bentley\";\nimport { IModelError } from \"../../IModelError\";\nimport { RpcConfiguration } from \"./RpcConfiguration\";\nimport { RpcPendingQueue } from \"./RpcPendingQueue\";\nimport { initializeRpcRequest } from \"./RpcRequest\";\nimport { RpcRoutingToken } from \"./RpcRoutingToken\";\nimport { RpcInterface, RpcInterfaceDefinition, RpcInterfaceImplementation } from \"../../RpcInterface\";\nimport { RpcInterfaceEndpoints } from \"../../RpcManager\";\nimport { RpcControlChannel } from \"./RpcControl\";\nimport { RpcOperation, RpcOperationPolicy } from \"./RpcOperation\";\n\n/** @internal */\nexport const REGISTRY = Symbol.for(\"@itwin/core-common/RpcRegistry\");\n\n/** @internal */\nexport const OPERATION = Symbol.for(\"@itwin/core-common/RpcOperation\");\n\n/** @internal */\nexport const POLICY = Symbol.for(\"@itwin/core-common/RpcOperationPolicy\");\n\n/** @internal */\nexport const INSTANCE = Symbol.for(\"@itwin/core-common/RpcInterface/__instance__\");\n\n/** @internal */\nexport const CURRENT_REQUEST = Symbol.for(\"@itwin/core-common/RpcRequest/__current__\");\n\n/** @internal */\nexport const CURRENT_INVOCATION = Symbol.for(\"@itwin/core-common/RpcInvocation/__current__\");\n\ndeclare const self: any;\ndeclare const window: any;\n\n/** @internal */\nexport class RpcRegistry {\n private static _instance: RpcRegistry;\n\n private constructor() {\n }\n\n public static get instance() {\n if (!RpcRegistry._instance) {\n const globalObj: any = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\n if (!globalObj[REGISTRY])\n globalObj[REGISTRY] = new RpcRegistry();\n\n RpcRegistry._instance = globalObj[REGISTRY];\n }\n\n return RpcRegistry._instance;\n }\n\n public lookupInterfaceDefinition(name: string): RpcInterfaceDefinition {\n if (!this.definitionClasses.has(name))\n throw new IModelError(BentleyStatus.ERROR, `RPC interface \"${name}\" is not initialized.`);\n\n return this.definitionClasses.get(name) as RpcInterfaceDefinition;\n }\n\n public async describeAvailableEndpoints(): Promise<RpcInterfaceEndpoints[]> {\n const requests: Array<Promise<RpcInterfaceEndpoints[]>> = [];\n for (const channel of RpcControlChannel.channels) {\n requests.push(channel.describeEndpoints());\n }\n\n const responses = await Promise.all(requests);\n const endpoints = responses.reduce((a, b) => a.concat(b), []);\n for (const endpoint of endpoints) {\n const definition = this.definitionClasses.get(endpoint.interfaceName);\n endpoint.compatible = (definition && RpcInterface.isVersionCompatible(endpoint.interfaceVersion, definition.interfaceVersion)) ? true : false;\n }\n\n return endpoints;\n }\n\n public getClientForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing: RpcRoutingToken = RpcRoutingToken.default): T {\n let instance: T | undefined;\n\n const proxies = this.proxies.get(definition.interfaceName);\n if (proxies) {\n instance = proxies.get(routing.id) as (T | undefined);\n }\n\n if (!instance)\n instance = this.instantiateClient(definition, routing);\n\n return instance;\n }\n\n public getImplForInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): T {\n let instance = this.implementations.get(definition.interfaceName) as (T | undefined);\n if (!instance)\n instance = this.instantiateImpl(definition);\n\n return instance;\n }\n\n public lookupImpl<T extends RpcInterface>(interfaceName: string): T {\n const definition = this.lookupInterfaceDefinition(interfaceName);\n return this.getImplForInterface(definition) as T;\n }\n\n public registerImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, implementation: RpcInterfaceImplementation<TImplementation>) {\n this.unregisterImpl(definition);\n this.implementationClasses.set(definition.interfaceName, implementation);\n }\n\n public unregisterImpl<TDefinition extends RpcInterface>(definition: RpcInterfaceDefinition<TDefinition>) {\n this.implementationClasses.delete(definition.interfaceName);\n\n const impl = this.implementations.get(definition.interfaceName);\n if (impl) {\n impl.configuration.onRpcImplTerminated(definition, impl);\n this.implementations.delete(definition.interfaceName);\n }\n }\n\n public supplyImplInstance<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>, instance: TImplementation): void {\n this.suppliedImplementations.set(definition.interfaceName, instance);\n }\n\n public isRpcInterfaceInitialized<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): boolean {\n return this.definitionClasses.has(definition.interfaceName);\n }\n\n public initializeRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>): void {\n if (this.definitionClasses.has(definition.interfaceName)) {\n const existing = this.definitionClasses.get(definition.interfaceName);\n if (existing && definition.interfaceVersion === \"CONTROL\" && existing !== definition) {\n this.configureOperations(definition); // configs that differ only by routing still need the control ops initialized\n }\n\n return;\n }\n\n this.notifyInitialize();\n this.definitionClasses.set(definition.interfaceName, definition);\n this.configureOperations(definition);\n }\n\n public terminateRpcInterface<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n this.unregisterImpl(definition);\n this.purgeClient(definition);\n this.definitionClasses.delete(definition.interfaceName);\n }\n\n public definitionClasses: Map<string, RpcInterfaceDefinition> = new Map();\n public proxies: Map<string, Map<number, RpcInterface>> = new Map();\n public implementations: Map<string, RpcInterface> = new Map();\n public suppliedImplementations: Map<string, RpcInterface> = new Map();\n public implementationClasses: Map<string, RpcInterfaceImplementation> = new Map();\n\n public id = (() => {\n let i = 0;\n return () => ++i;\n })();\n\n private instantiateImpl<TDefinition extends RpcInterface, TImplementation extends TDefinition>(definition: RpcInterfaceDefinition<TDefinition>): TImplementation {\n this.checkInitialized(definition);\n\n const registeredImplementation = this.implementationClasses.get(definition.interfaceName) as RpcInterfaceImplementation<TImplementation>;\n if (!registeredImplementation)\n throw new IModelError(BentleyStatus.ERROR, `An RPC interface implementation class for \"${definition.interfaceName}\" is not registered.`);\n\n if (definition.prototype.configurationSupplier)\n registeredImplementation.prototype.configurationSupplier = definition.prototype.configurationSupplier;\n\n const supplied = this.suppliedImplementations.get(definition.interfaceName);\n const implementation = supplied || new registeredImplementation();\n if (!(implementation instanceof registeredImplementation))\n throw new IModelError(BentleyStatus.ERROR, `Invalid RPC interface implementation.`);\n\n if (supplied) {\n (supplied.configuration as any) = RpcConfiguration.supply(supplied);\n }\n\n this.implementations.set(definition.interfaceName, implementation);\n implementation.configuration.onRpcImplInitialized(definition, implementation);\n return implementation;\n }\n\n private instantiateClient<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>, routing: RpcRoutingToken = RpcRoutingToken.default): T {\n this.checkInitialized(definition);\n\n const proxy = new (definition as any)(routing) as T;\n\n if (!this.proxies.has(definition.interfaceName)) {\n this.proxies.set(definition.interfaceName, new Map());\n }\n\n this.proxies.get(definition.interfaceName)?.set(routing.id, proxy);\n\n Object.getOwnPropertyNames(definition.prototype).forEach((operationName) => {\n if (operationName === \"constructor\" || operationName === \"configurationSupplier\")\n return;\n\n this.interceptOperation(proxy, operationName);\n });\n\n proxy.configuration.onRpcClientInitialized(definition, proxy);\n return proxy;\n }\n\n private interceptOperation(proxy: RpcInterface, operation: string) {\n const clientFunction = (proxy as any)[operation];\n (proxy as any)[operation] = function () {\n const args = Array.from(arguments);\n args.push(operation);\n return clientFunction.apply(proxy, args);\n };\n }\n\n private checkInitialized<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n if (!this.definitionClasses.has(definition.interfaceName))\n throw new IModelError(BentleyStatus.ERROR, `RPC interface \"${definition.interfaceName}\" is not initialized.`);\n }\n\n private configureOperations<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n const proto = (definition.prototype as any);\n\n Object.getOwnPropertyNames(proto).forEach((operationName) => {\n if (operationName === \"constructor\" || operationName === \"configurationSupplier\")\n return;\n\n const propertyName = RpcOperation.computeOperationName(operationName);\n\n if (!proto[propertyName][OPERATION]) {\n const policy = (definition as any)[POLICY] || new RpcOperationPolicy();\n proto[propertyName][OPERATION] = new RpcOperation(definition, propertyName, policy);\n }\n });\n }\n\n private purgeClient<T extends RpcInterface>(definition: RpcInterfaceDefinition<T>) {\n const proxies = this.proxies.get(definition.interfaceName);\n if (proxies) {\n proxies.forEach((proxy) => proxy.configuration.onRpcClientTerminated(definition, proxy));\n this.proxies.delete(definition.interfaceName);\n }\n }\n\n private notifyInitialize() {\n initializeRpcRequest();\n RpcPendingQueue.initialize();\n }\n}\n"]}
@@ -31,7 +31,7 @@ export declare class ResponseLike implements Response {
31
31
  get status(): number;
32
32
  get statusText(): string;
33
33
  get trailer(): Promise<Headers>;
34
- get type(): ResponseType;
34
+ get type(): "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
35
35
  get url(): string;
36
36
  clone(): this;
37
37
  constructor(data: any);
@@ -176,7 +176,7 @@ export declare abstract class RpcRequest<TResponse = any> {
176
176
  private resolveRaw;
177
177
  protected reject(reason: any): void;
178
178
  /** @internal */
179
- dispose(): void;
179
+ [Symbol.dispose](): void;
180
180
  private setPending;
181
181
  private handleTransientError;
182
182
  protected setHeaders(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/rpc/core/RpcRequest.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ const RpcRegistry_1 = require("./RpcRegistry");
23
23
  exports.aggregateLoad = { lastRequest: 0, lastResponse: 0 };
24
24
  /** @internal */
25
25
  class ResponseLike {
26
+ _data;
26
27
  get body() { return null; }
27
28
  async arrayBuffer() { return this._data; }
28
29
  async blob() { throw new IModelError_1.IModelError(core_bentley_1.BentleyStatus.ERROR, "Not implemented."); }
@@ -45,6 +46,7 @@ class ResponseLike {
45
46
  }
46
47
  exports.ResponseLike = ResponseLike;
47
48
  class Cancellable {
49
+ promise;
48
50
  cancel() { }
49
51
  constructor(task) {
50
52
  this.promise = new Promise((resolve, reject) => {
@@ -57,8 +59,35 @@ class Cancellable {
57
59
  * @internal
58
60
  */
59
61
  class RpcRequest {
62
+ static _activeRequests = new Map();
63
+ _resolve = () => undefined;
64
+ _resolveRaw = () => undefined;
65
+ _reject = () => undefined;
66
+ _rejectRaw = () => undefined;
67
+ _created = 0;
68
+ _lastSubmitted = 0;
69
+ _lastUpdated = 0;
70
+ /** @internal */
71
+ _status = RpcConstants_1.RpcRequestStatus.Unknown;
72
+ /** @internal */
73
+ _extendedStatus = "";
74
+ _connecting = false;
75
+ _active = true;
76
+ _hasRawListener = false;
77
+ _raw = undefined;
78
+ _sending;
79
+ _attempts = 0;
80
+ _retryAfter = null;
81
+ _transientFaults = 0;
82
+ _response = undefined;
83
+ _rawPromise;
84
+ responseProtocolVersion = RpcProtocol_1.RpcProtocolVersion.None;
60
85
  /** All RPC requests that are currently in flight. */
61
86
  static get activeRequests() { return this._activeRequests; }
87
+ /** Events raised by RpcRequest. See [[RpcRequestEvent]] */
88
+ static events = new core_bentley_1.BeEvent();
89
+ /** Resolvers for "not found" requests. See [[RpcRequestNotFoundHandler]] */
90
+ static notFoundHandlers = new core_bentley_1.BeEvent();
62
91
  /** The aggregate operations profile of all active RPC interfaces. */
63
92
  static get aggregateLoad() { return exports.aggregateLoad; }
64
93
  /**
@@ -68,6 +97,18 @@ class RpcRequest {
68
97
  static current(context) {
69
98
  return context[RpcRegistry_1.CURRENT_REQUEST];
70
99
  }
100
+ /** The unique identifier of this request. */
101
+ id;
102
+ /** The operation for this request. */
103
+ operation;
104
+ /** The parameters for this request. */
105
+ parameters;
106
+ /** The RPC client instance for this request. */
107
+ client;
108
+ /** Convenience access to the protocol of this request. */
109
+ protocol;
110
+ /** The implementation response for this request. */
111
+ response;
71
112
  /** The status of this request. */
72
113
  get status() { return this._status; }
73
114
  /** Extended status information for this request (if available). */
@@ -76,6 +117,8 @@ class RpcRequest {
76
117
  get lastSubmitted() { return this._lastSubmitted; }
77
118
  /** The last status update received for this request. */
78
119
  get lastUpdated() { return this._lastUpdated; }
120
+ /** The target interval (in milliseconds) between submission attempts for this request. */
121
+ retryInterval;
79
122
  /** Whether a connection is active for this request. */
80
123
  get connecting() { return this._connecting; }
81
124
  /** Whether this request is pending. */
@@ -94,6 +137,10 @@ class RpcRequest {
94
137
  get elapsed() {
95
138
  return this._lastUpdated - this._created;
96
139
  }
140
+ /** A protocol-specific path identifier for this request. */
141
+ path;
142
+ /** A protocol-specific method identifier for this request. */
143
+ method;
97
144
  /** An attempt-specific value for when to next retry this request. */
98
145
  get retryAfter() { return this._retryAfter; }
99
146
  /** Finds the first parameter of a given structural type if present. */
@@ -120,26 +167,6 @@ class RpcRequest {
120
167
  }
121
168
  /** Constructs an RPC request. */
122
169
  constructor(client, operation, parameters) {
123
- this._resolve = () => undefined;
124
- this._resolveRaw = () => undefined;
125
- this._reject = () => undefined;
126
- this._rejectRaw = () => undefined;
127
- this._created = 0;
128
- this._lastSubmitted = 0;
129
- this._lastUpdated = 0;
130
- /** @internal */
131
- this._status = RpcConstants_1.RpcRequestStatus.Unknown;
132
- /** @internal */
133
- this._extendedStatus = "";
134
- this._connecting = false;
135
- this._active = true;
136
- this._hasRawListener = false;
137
- this._raw = undefined;
138
- this._attempts = 0;
139
- this._retryAfter = null;
140
- this._transientFaults = 0;
141
- this._response = undefined;
142
- this.responseProtocolVersion = RpcProtocol_1.RpcProtocolVersion.None;
143
170
  this._created = new Date().getTime();
144
171
  this.path = "";
145
172
  this.method = "";
@@ -349,7 +376,7 @@ class RpcRequest {
349
376
  this._resolveRaw(new ResponseLike(this._raw));
350
377
  }
351
378
  this.setStatus(RpcConstants_1.RpcRequestStatus.Resolved);
352
- this.dispose();
379
+ this[Symbol.dispose]();
353
380
  }
354
381
  resolveRaw() {
355
382
  if (typeof (this._response) === "undefined") {
@@ -359,7 +386,7 @@ class RpcRequest {
359
386
  this.setLastUpdatedTime();
360
387
  this._resolveRaw(this._response);
361
388
  this.setStatus(RpcConstants_1.RpcRequestStatus.Resolved);
362
- this.dispose();
389
+ this[Symbol.dispose]();
363
390
  }
364
391
  reject(reason) {
365
392
  if (!this._active)
@@ -371,10 +398,10 @@ class RpcRequest {
371
398
  this._rejectRaw(reason);
372
399
  }
373
400
  this.setStatus(RpcConstants_1.RpcRequestStatus.Rejected);
374
- this.dispose();
401
+ this[Symbol.dispose]();
375
402
  }
376
403
  /** @internal */
377
- dispose() {
404
+ [Symbol.dispose]() {
378
405
  this.setStatus(RpcConstants_1.RpcRequestStatus.Disposed);
379
406
  this._raw = undefined;
380
407
  this._response = undefined;
@@ -431,11 +458,6 @@ class RpcRequest {
431
458
  }
432
459
  }
433
460
  exports.RpcRequest = RpcRequest;
434
- RpcRequest._activeRequests = new Map();
435
- /** Events raised by RpcRequest. See [[RpcRequestEvent]] */
436
- RpcRequest.events = new core_bentley_1.BeEvent();
437
- /** Resolvers for "not found" requests. See [[RpcRequestNotFoundHandler]] */
438
- RpcRequest.notFoundHandlers = new core_bentley_1.BeEvent();
439
461
  /** @internal */
440
462
  exports.initializeRpcRequest = (() => {
441
463
  let initialized = false;