@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.
- package/CHANGELOG.md +50 -1
- package/lib/cjs/AmbientOcclusion.js +17 -9
- package/lib/cjs/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/AnalysisStyle.d.ts +0 -3
- package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
- package/lib/cjs/AnalysisStyle.js +20 -4
- package/lib/cjs/AnalysisStyle.js.map +1 -1
- package/lib/cjs/Atmosphere.js +39 -21
- package/lib/cjs/Atmosphere.js.map +1 -1
- package/lib/cjs/BackgroundMapProvider.js +4 -0
- package/lib/cjs/BackgroundMapProvider.js.map +1 -1
- package/lib/cjs/BackgroundMapSettings.js +19 -0
- package/lib/cjs/BackgroundMapSettings.js.map +1 -1
- package/lib/cjs/BlobReader.js +8 -6
- package/lib/cjs/BlobReader.js.map +1 -1
- package/lib/cjs/BriefcaseTypes.d.ts +2 -2
- package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
- package/lib/cjs/BriefcaseTypes.js.map +1 -1
- package/lib/cjs/Camera.js +3 -0
- package/lib/cjs/Camera.js.map +1 -1
- package/lib/cjs/ChangesetProps.d.ts +1 -1
- package/lib/cjs/ChangesetProps.js.map +1 -1
- package/lib/cjs/ClipStyle.js +31 -5
- package/lib/cjs/ClipStyle.js.map +1 -1
- package/lib/cjs/Code.d.ts +0 -5
- package/lib/cjs/Code.d.ts.map +1 -1
- package/lib/cjs/Code.js +16 -11
- package/lib/cjs/Code.js.map +1 -1
- package/lib/cjs/ColorDef.js +11 -10
- package/lib/cjs/ColorDef.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.d.ts +37 -1
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +16 -3
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ContextRealityModel.js +53 -27
- package/lib/cjs/ContextRealityModel.js.map +1 -1
- package/lib/cjs/ContourDisplay.js +40 -5
- package/lib/cjs/ContourDisplay.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.js +95 -63
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/ECSqlReader.d.ts +2 -0
- package/lib/cjs/ECSqlReader.d.ts.map +1 -1
- package/lib/cjs/ECSqlReader.js +56 -50
- package/lib/cjs/ECSqlReader.js.map +1 -1
- package/lib/cjs/ElementProps.d.ts.map +1 -1
- package/lib/cjs/ElementProps.js +7 -3
- package/lib/cjs/ElementProps.js.map +1 -1
- package/lib/cjs/EntityProps.js +31 -0
- package/lib/cjs/EntityProps.js.map +1 -1
- package/lib/cjs/Environment.js +25 -2
- package/lib/cjs/Environment.js.map +1 -1
- package/lib/cjs/FeatureIndex.js +15 -6
- package/lib/cjs/FeatureIndex.js.map +1 -1
- package/lib/cjs/FeatureSymbology.d.ts +25 -73
- package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/FeatureSymbology.js +88 -103
- package/lib/cjs/FeatureSymbology.js.map +1 -1
- package/lib/cjs/FeatureTable.d.ts +6 -108
- package/lib/cjs/FeatureTable.d.ts.map +1 -1
- package/lib/cjs/FeatureTable.js +13 -329
- package/lib/cjs/FeatureTable.js.map +1 -1
- package/lib/cjs/Fonts.d.ts +68 -10
- package/lib/cjs/Fonts.d.ts.map +1 -1
- package/lib/cjs/Fonts.js +19 -4
- package/lib/cjs/Fonts.js.map +1 -1
- package/lib/cjs/Frustum.js +2 -2
- package/lib/cjs/Frustum.js.map +1 -1
- package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
- package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
- package/lib/cjs/GeoCoordinateServices.js +2 -1
- package/lib/cjs/GeoCoordinateServices.js.map +1 -1
- package/lib/cjs/GeometryParams.js +58 -0
- package/lib/cjs/GeometryParams.js.map +1 -1
- package/lib/cjs/Gradient.d.ts +3 -4
- package/lib/cjs/Gradient.d.ts.map +1 -1
- package/lib/cjs/Gradient.js +21 -19
- package/lib/cjs/Gradient.js.map +1 -1
- package/lib/cjs/GraphicParams.js +14 -12
- package/lib/cjs/GraphicParams.js.map +1 -1
- package/lib/cjs/GroundPlane.js +8 -2
- package/lib/cjs/GroundPlane.js.map +1 -1
- package/lib/cjs/HSLColor.js +6 -0
- package/lib/cjs/HSLColor.js.map +1 -1
- package/lib/cjs/HSVColor.js +6 -0
- package/lib/cjs/HSVColor.js.map +1 -1
- package/lib/cjs/HiddenLine.d.ts +17 -18
- package/lib/cjs/HiddenLine.d.ts.map +1 -1
- package/lib/cjs/HiddenLine.js +24 -5
- package/lib/cjs/HiddenLine.js.map +1 -1
- package/lib/cjs/Hilite.js +10 -0
- package/lib/cjs/Hilite.js.map +1 -1
- package/lib/cjs/IModel.d.ts +3 -12
- package/lib/cjs/IModel.d.ts.map +1 -1
- package/lib/cjs/IModel.js +47 -23
- package/lib/cjs/IModel.js.map +1 -1
- package/lib/cjs/IModelError.d.ts +0 -2
- package/lib/cjs/IModelError.d.ts.map +1 -1
- package/lib/cjs/IModelError.js +3 -8
- package/lib/cjs/IModelError.js.map +1 -1
- package/lib/cjs/IModelVersion.js +4 -0
- package/lib/cjs/IModelVersion.js.map +1 -1
- package/lib/cjs/ITwinError.d.ts +1 -1
- package/lib/cjs/ITwinError.d.ts.map +1 -1
- package/lib/cjs/ITwinError.js +1 -1
- package/lib/cjs/ITwinError.js.map +1 -1
- package/lib/cjs/Image.d.ts +22 -8
- package/lib/cjs/Image.d.ts.map +1 -1
- package/lib/cjs/Image.js +20 -4
- package/lib/cjs/Image.js.map +1 -1
- package/lib/cjs/IpcAppProps.d.ts +2 -0
- package/lib/cjs/IpcAppProps.d.ts.map +1 -1
- package/lib/cjs/IpcAppProps.js.map +1 -1
- package/lib/cjs/LightSettings.js +39 -1
- package/lib/cjs/LightSettings.js.map +1 -1
- package/lib/cjs/Localization.d.ts +0 -10
- package/lib/cjs/Localization.d.ts.map +1 -1
- package/lib/cjs/Localization.js +0 -1
- package/lib/cjs/Localization.js.map +1 -1
- package/lib/cjs/MapImagerySettings.js +3 -2
- package/lib/cjs/MapImagerySettings.js.map +1 -1
- package/lib/cjs/MapLayerSettings.d.ts +20 -0
- package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
- package/lib/cjs/MapLayerSettings.js +50 -1
- package/lib/cjs/MapLayerSettings.js.map +1 -1
- package/lib/cjs/MassProperties.d.ts +2 -0
- package/lib/cjs/MassProperties.d.ts.map +1 -1
- package/lib/cjs/MassProperties.js.map +1 -1
- package/lib/cjs/ModelClipGroup.js +6 -0
- package/lib/cjs/ModelClipGroup.js.map +1 -1
- package/lib/cjs/OctEncodedNormal.js +4 -0
- package/lib/cjs/OctEncodedNormal.js.map +1 -1
- package/lib/cjs/PlanProjectionSettings.d.ts +1 -2
- package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
- package/lib/cjs/PlanProjectionSettings.js +8 -1
- package/lib/cjs/PlanProjectionSettings.js.map +1 -1
- package/lib/cjs/PlanarClipMask.d.ts +0 -12
- package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
- package/lib/cjs/PlanarClipMask.js +24 -2
- package/lib/cjs/PlanarClipMask.js.map +1 -1
- package/lib/cjs/QPoint.d.ts +5 -5
- package/lib/cjs/QPoint.d.ts.map +1 -1
- package/lib/cjs/QPoint.js +37 -29
- package/lib/cjs/QPoint.js.map +1 -1
- package/lib/cjs/RealityModelDisplaySettings.js +81 -4
- package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
- package/lib/cjs/RenderMaterial.d.ts +0 -43
- package/lib/cjs/RenderMaterial.d.ts.map +1 -1
- package/lib/cjs/RenderMaterial.js +6 -51
- package/lib/cjs/RenderMaterial.js.map +1 -1
- package/lib/cjs/RenderPolyline.d.ts +36 -0
- package/lib/cjs/RenderPolyline.d.ts.map +1 -0
- package/lib/cjs/RenderPolyline.js +26 -0
- package/lib/cjs/RenderPolyline.js.map +1 -0
- package/lib/cjs/RenderSchedule.d.ts +1 -2
- package/lib/cjs/RenderSchedule.d.ts.map +1 -1
- package/lib/cjs/RenderSchedule.js +138 -11
- package/lib/cjs/RenderSchedule.js.map +1 -1
- package/lib/cjs/RenderTexture.d.ts +5 -23
- package/lib/cjs/RenderTexture.d.ts.map +1 -1
- package/lib/cjs/RenderTexture.js +13 -16
- package/lib/cjs/RenderTexture.js.map +1 -1
- package/lib/cjs/RgbColor.js +3 -0
- package/lib/cjs/RgbColor.js.map +1 -1
- package/lib/cjs/RpcInterface.d.ts.map +1 -1
- package/lib/cjs/RpcInterface.js +7 -1
- package/lib/cjs/RpcInterface.js.map +1 -1
- package/lib/cjs/SkyBox.js +17 -4
- package/lib/cjs/SkyBox.js.map +1 -1
- package/lib/cjs/SolarShadows.js +5 -1
- package/lib/cjs/SolarShadows.js.map +1 -1
- package/lib/cjs/SpatialClassification.js +19 -1
- package/lib/cjs/SpatialClassification.js.map +1 -1
- package/lib/cjs/SubCategoryAppearance.js +35 -1
- package/lib/cjs/SubCategoryAppearance.js.map +1 -1
- package/lib/cjs/SubCategoryOverride.js +16 -2
- package/lib/cjs/SubCategoryOverride.js.map +1 -1
- package/lib/cjs/TerrainSettings.d.ts +0 -7
- package/lib/cjs/TerrainSettings.d.ts.map +1 -1
- package/lib/cjs/TerrainSettings.js +19 -0
- package/lib/cjs/TerrainSettings.js.map +1 -1
- package/lib/cjs/TextureMapping.d.ts +17 -14
- package/lib/cjs/TextureMapping.d.ts.map +1 -1
- package/lib/cjs/TextureMapping.js +47 -19
- package/lib/cjs/TextureMapping.js.map +1 -1
- package/lib/cjs/ThematicDisplay.js +53 -2
- package/lib/cjs/ThematicDisplay.js.map +1 -1
- package/lib/cjs/Thumbnail.d.ts +1 -1
- package/lib/cjs/Thumbnail.js.map +1 -1
- package/lib/cjs/Tween.js +28 -19
- package/lib/cjs/Tween.js.map +1 -1
- package/lib/cjs/ViewDetails.js +10 -6
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewFlags.d.ts +1 -3
- package/lib/cjs/ViewFlags.d.ts.map +1 -1
- package/lib/cjs/ViewFlags.js +86 -5
- package/lib/cjs/ViewFlags.js.map +1 -1
- package/lib/cjs/ViewProps.d.ts +0 -4
- package/lib/cjs/ViewProps.d.ts.map +1 -1
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.js +7 -2
- package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/cjs/annotation/TextAnnotation.js +10 -0
- package/lib/cjs/annotation/TextAnnotation.js.map +1 -1
- package/lib/cjs/annotation/TextBlock.js +27 -6
- package/lib/cjs/annotation/TextBlock.js.map +1 -1
- package/lib/cjs/annotation/TextStyle.js +65 -19
- package/lib/cjs/annotation/TextStyle.js.map +1 -1
- package/lib/cjs/core-common.d.ts +1 -2
- package/lib/cjs/core-common.d.ts.map +1 -1
- package/lib/cjs/core-common.js +1 -2
- package/lib/cjs/core-common.js.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.js +12 -0
- package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
- package/lib/cjs/geometry/AreaPattern.js +17 -0
- package/lib/cjs/geometry/AreaPattern.js.map +1 -1
- package/lib/cjs/geometry/BoundingSphere.js +4 -0
- package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
- package/lib/cjs/geometry/Cartographic.js +23 -20
- package/lib/cjs/geometry/Cartographic.js.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.js +62 -0
- package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometry.js +26 -8
- package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometryFB.js +54 -108
- package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/cjs/geometry/FrustumPlanes.js +1 -0
- package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.js +100 -0
- package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.js +16 -0
- package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/cjs/geometry/GeometryStream.js +19 -6
- package/lib/cjs/geometry/GeometryStream.js.map +1 -1
- package/lib/cjs/geometry/ImageGraphic.js +10 -0
- package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
- package/lib/cjs/geometry/LineStyle.js +14 -0
- package/lib/cjs/geometry/LineStyle.js.map +1 -1
- package/lib/cjs/geometry/Placement.js +6 -0
- package/lib/cjs/geometry/Placement.js.map +1 -1
- package/lib/cjs/geometry/Projection.js +75 -0
- package/lib/cjs/geometry/Projection.js.map +1 -1
- package/lib/cjs/geometry/TextString.js +18 -0
- package/lib/cjs/geometry/TextString.js.map +1 -1
- package/lib/cjs/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
- package/lib/cjs/internal/BackendTypes.d.ts.map +1 -0
- package/lib/cjs/internal/BackendTypes.js.map +1 -0
- package/lib/cjs/internal/PackedFeatureTable.d.ts +111 -0
- package/lib/cjs/internal/PackedFeatureTable.d.ts.map +1 -0
- package/lib/cjs/internal/PackedFeatureTable.js +359 -0
- package/lib/cjs/internal/PackedFeatureTable.js.map +1 -0
- package/lib/cjs/internal/RenderMaterialParams.d.ts +47 -0
- package/lib/cjs/internal/RenderMaterialParams.d.ts.map +1 -0
- package/lib/cjs/internal/RenderMaterialParams.js +68 -0
- package/lib/cjs/internal/RenderMaterialParams.js.map +1 -0
- package/lib/cjs/internal/RenderMesh.d.ts +52 -0
- package/lib/cjs/internal/RenderMesh.d.ts.map +1 -0
- package/lib/cjs/{Render.js → internal/RenderMesh.js} +12 -31
- package/lib/cjs/internal/RenderMesh.js.map +1 -0
- package/lib/cjs/internal/RenderTextureParams.d.ts +25 -0
- package/lib/cjs/internal/RenderTextureParams.d.ts.map +1 -0
- package/lib/cjs/internal/RenderTextureParams.js +37 -0
- package/lib/cjs/internal/RenderTextureParams.js.map +1 -0
- package/lib/cjs/internal/cross-package.d.ts +5 -0
- package/lib/cjs/internal/cross-package.d.ts.map +1 -1
- package/lib/cjs/internal/cross-package.js +16 -0
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/ipc/IpcSession.js +1 -0
- package/lib/cjs/ipc/IpcSession.js.map +1 -1
- package/lib/cjs/ipc/IpcSocket.d.ts +2 -0
- package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
- package/lib/cjs/ipc/IpcSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocket.js +7 -6
- package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocketTransport.js +8 -7
- package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/cjs/rpc/DevToolsRpcInterface.js +6 -6
- package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.js +8 -11
- package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -4
- package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +4 -4
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/TestRpcManager.js +1 -4
- package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConfiguration.js +51 -64
- package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.js +29 -38
- package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.js +19 -13
- package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.d.ts +1 -4
- package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.js +5 -4
- package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.js +29 -31
- package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPendingQueue.js +17 -16
- package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.js +32 -30
- package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPush.js +15 -8
- package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRegistry.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcRegistry.js +10 -9
- package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.d.ts +2 -2
- package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.js +51 -29
- package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.js +4 -2
- package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/cjs/rpc/core/RpcSessionInvocation.js +5 -10
- package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +11 -17
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +16 -19
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/OpenAPI.js +2 -0
- package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.js +13 -12
- package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +3 -0
- package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.js +1 -6
- package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js +6 -6
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.js +27 -27
- package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +14 -8
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/cjs/tile/B3dmTileIO.js +7 -0
- package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/CompositeTileIO.js +3 -0
- package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
- package/lib/cjs/tile/GltfTileIO.js +4 -3
- package/lib/cjs/tile/GltfTileIO.js.map +1 -1
- package/lib/cjs/tile/I3dmTileIO.js +8 -0
- package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
- package/lib/cjs/tile/IModelTileIO.js +26 -3
- package/lib/cjs/tile/IModelTileIO.js.map +1 -1
- package/lib/cjs/tile/PntsTileIO.js +5 -0
- package/lib/cjs/tile/PntsTileIO.js.map +1 -1
- package/lib/cjs/tile/TileIO.js +2 -0
- package/lib/cjs/tile/TileIO.js.map +1 -1
- package/lib/cjs/tile/TileMetadata.js +9 -1
- package/lib/cjs/tile/TileMetadata.js.map +1 -1
- package/lib/esm/AmbientOcclusion.js +17 -9
- package/lib/esm/AmbientOcclusion.js.map +1 -1
- package/lib/esm/AnalysisStyle.d.ts +0 -3
- package/lib/esm/AnalysisStyle.d.ts.map +1 -1
- package/lib/esm/AnalysisStyle.js +20 -4
- package/lib/esm/AnalysisStyle.js.map +1 -1
- package/lib/esm/Atmosphere.js +39 -21
- package/lib/esm/Atmosphere.js.map +1 -1
- package/lib/esm/BackgroundMapProvider.js +4 -0
- package/lib/esm/BackgroundMapProvider.js.map +1 -1
- package/lib/esm/BackgroundMapSettings.js +19 -0
- package/lib/esm/BackgroundMapSettings.js.map +1 -1
- package/lib/esm/BlobReader.js +8 -6
- package/lib/esm/BlobReader.js.map +1 -1
- package/lib/esm/BriefcaseTypes.d.ts +2 -2
- package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
- package/lib/esm/BriefcaseTypes.js.map +1 -1
- package/lib/esm/Camera.js +3 -0
- package/lib/esm/Camera.js.map +1 -1
- package/lib/esm/ChangesetProps.d.ts +1 -1
- package/lib/esm/ChangesetProps.js.map +1 -1
- package/lib/esm/ClipStyle.js +31 -5
- package/lib/esm/ClipStyle.js.map +1 -1
- package/lib/esm/Code.d.ts +0 -5
- package/lib/esm/Code.d.ts.map +1 -1
- package/lib/esm/Code.js +16 -11
- package/lib/esm/Code.js.map +1 -1
- package/lib/esm/ColorDef.js +11 -10
- package/lib/esm/ColorDef.js.map +1 -1
- package/lib/esm/ConcurrentQuery.d.ts +37 -1
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
- package/lib/esm/ConcurrentQuery.js +16 -3
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ContextRealityModel.js +53 -27
- package/lib/esm/ContextRealityModel.js.map +1 -1
- package/lib/esm/ContourDisplay.js +40 -5
- package/lib/esm/ContourDisplay.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.js +95 -63
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/ECSqlReader.d.ts +2 -0
- package/lib/esm/ECSqlReader.d.ts.map +1 -1
- package/lib/esm/ECSqlReader.js +56 -50
- package/lib/esm/ECSqlReader.js.map +1 -1
- package/lib/esm/ElementProps.d.ts.map +1 -1
- package/lib/esm/ElementProps.js +8 -4
- package/lib/esm/ElementProps.js.map +1 -1
- package/lib/esm/EntityProps.js +31 -0
- package/lib/esm/EntityProps.js.map +1 -1
- package/lib/esm/Environment.js +25 -2
- package/lib/esm/Environment.js.map +1 -1
- package/lib/esm/FeatureIndex.js +15 -6
- package/lib/esm/FeatureIndex.js.map +1 -1
- package/lib/esm/FeatureSymbology.d.ts +25 -73
- package/lib/esm/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/FeatureSymbology.js +88 -103
- package/lib/esm/FeatureSymbology.js.map +1 -1
- package/lib/esm/FeatureTable.d.ts +6 -108
- package/lib/esm/FeatureTable.d.ts.map +1 -1
- package/lib/esm/FeatureTable.js +11 -324
- package/lib/esm/FeatureTable.js.map +1 -1
- package/lib/esm/Fonts.d.ts +68 -10
- package/lib/esm/Fonts.d.ts.map +1 -1
- package/lib/esm/Fonts.js +19 -4
- package/lib/esm/Fonts.js.map +1 -1
- package/lib/esm/Frustum.js +2 -2
- package/lib/esm/Frustum.js.map +1 -1
- package/lib/esm/GeoCoordinateServices.d.ts +1 -0
- package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
- package/lib/esm/GeoCoordinateServices.js +2 -1
- package/lib/esm/GeoCoordinateServices.js.map +1 -1
- package/lib/esm/GeometryParams.js +58 -0
- package/lib/esm/GeometryParams.js.map +1 -1
- package/lib/esm/Gradient.d.ts +3 -4
- package/lib/esm/Gradient.d.ts.map +1 -1
- package/lib/esm/Gradient.js +21 -19
- package/lib/esm/Gradient.js.map +1 -1
- package/lib/esm/GraphicParams.js +14 -12
- package/lib/esm/GraphicParams.js.map +1 -1
- package/lib/esm/GroundPlane.js +8 -2
- package/lib/esm/GroundPlane.js.map +1 -1
- package/lib/esm/HSLColor.js +6 -0
- package/lib/esm/HSLColor.js.map +1 -1
- package/lib/esm/HSVColor.js +6 -0
- package/lib/esm/HSVColor.js.map +1 -1
- package/lib/esm/HiddenLine.d.ts +17 -18
- package/lib/esm/HiddenLine.d.ts.map +1 -1
- package/lib/esm/HiddenLine.js +24 -5
- package/lib/esm/HiddenLine.js.map +1 -1
- package/lib/esm/Hilite.js +10 -0
- package/lib/esm/Hilite.js.map +1 -1
- package/lib/esm/IModel.d.ts +3 -12
- package/lib/esm/IModel.d.ts.map +1 -1
- package/lib/esm/IModel.js +47 -23
- package/lib/esm/IModel.js.map +1 -1
- package/lib/esm/IModelError.d.ts +0 -2
- package/lib/esm/IModelError.d.ts.map +1 -1
- package/lib/esm/IModelError.js +2 -1
- package/lib/esm/IModelError.js.map +1 -1
- package/lib/esm/IModelVersion.js +4 -0
- package/lib/esm/IModelVersion.js.map +1 -1
- package/lib/esm/ITwinError.d.ts +1 -1
- package/lib/esm/ITwinError.d.ts.map +1 -1
- package/lib/esm/ITwinError.js +1 -1
- package/lib/esm/ITwinError.js.map +1 -1
- package/lib/esm/Image.d.ts +22 -8
- package/lib/esm/Image.d.ts.map +1 -1
- package/lib/esm/Image.js +19 -4
- package/lib/esm/Image.js.map +1 -1
- package/lib/esm/IpcAppProps.d.ts +2 -0
- package/lib/esm/IpcAppProps.d.ts.map +1 -1
- package/lib/esm/IpcAppProps.js.map +1 -1
- package/lib/esm/LightSettings.js +39 -1
- package/lib/esm/LightSettings.js.map +1 -1
- package/lib/esm/Localization.d.ts +0 -10
- package/lib/esm/Localization.d.ts.map +1 -1
- package/lib/esm/Localization.js +0 -1
- package/lib/esm/Localization.js.map +1 -1
- package/lib/esm/MapImagerySettings.js +3 -2
- package/lib/esm/MapImagerySettings.js.map +1 -1
- package/lib/esm/MapLayerSettings.d.ts +20 -0
- package/lib/esm/MapLayerSettings.d.ts.map +1 -1
- package/lib/esm/MapLayerSettings.js +50 -1
- package/lib/esm/MapLayerSettings.js.map +1 -1
- package/lib/esm/MassProperties.d.ts +2 -0
- package/lib/esm/MassProperties.d.ts.map +1 -1
- package/lib/esm/MassProperties.js.map +1 -1
- package/lib/esm/ModelClipGroup.js +6 -0
- package/lib/esm/ModelClipGroup.js.map +1 -1
- package/lib/esm/OctEncodedNormal.js +4 -0
- package/lib/esm/OctEncodedNormal.js.map +1 -1
- package/lib/esm/PlanProjectionSettings.d.ts +1 -2
- package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
- package/lib/esm/PlanProjectionSettings.js +8 -1
- package/lib/esm/PlanProjectionSettings.js.map +1 -1
- package/lib/esm/PlanarClipMask.d.ts +0 -12
- package/lib/esm/PlanarClipMask.d.ts.map +1 -1
- package/lib/esm/PlanarClipMask.js +24 -2
- package/lib/esm/PlanarClipMask.js.map +1 -1
- package/lib/esm/QPoint.d.ts +5 -5
- package/lib/esm/QPoint.d.ts.map +1 -1
- package/lib/esm/QPoint.js +37 -29
- package/lib/esm/QPoint.js.map +1 -1
- package/lib/esm/RealityModelDisplaySettings.js +81 -4
- package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
- package/lib/esm/RenderMaterial.d.ts +0 -43
- package/lib/esm/RenderMaterial.d.ts.map +1 -1
- package/lib/esm/RenderMaterial.js +6 -51
- package/lib/esm/RenderMaterial.js.map +1 -1
- package/lib/esm/RenderPolyline.d.ts +36 -0
- package/lib/esm/RenderPolyline.d.ts.map +1 -0
- package/lib/esm/RenderPolyline.js +23 -0
- package/lib/esm/RenderPolyline.js.map +1 -0
- package/lib/esm/RenderSchedule.d.ts +1 -2
- package/lib/esm/RenderSchedule.d.ts.map +1 -1
- package/lib/esm/RenderSchedule.js +138 -11
- package/lib/esm/RenderSchedule.js.map +1 -1
- package/lib/esm/RenderTexture.d.ts +5 -23
- package/lib/esm/RenderTexture.d.ts.map +1 -1
- package/lib/esm/RenderTexture.js +13 -16
- package/lib/esm/RenderTexture.js.map +1 -1
- package/lib/esm/RgbColor.js +3 -0
- package/lib/esm/RgbColor.js.map +1 -1
- package/lib/esm/RpcInterface.d.ts.map +1 -1
- package/lib/esm/RpcInterface.js +8 -2
- package/lib/esm/RpcInterface.js.map +1 -1
- package/lib/esm/SkyBox.js +17 -4
- package/lib/esm/SkyBox.js.map +1 -1
- package/lib/esm/SolarShadows.js +5 -1
- package/lib/esm/SolarShadows.js.map +1 -1
- package/lib/esm/SpatialClassification.js +19 -1
- package/lib/esm/SpatialClassification.js.map +1 -1
- package/lib/esm/SubCategoryAppearance.js +35 -1
- package/lib/esm/SubCategoryAppearance.js.map +1 -1
- package/lib/esm/SubCategoryOverride.js +16 -2
- package/lib/esm/SubCategoryOverride.js.map +1 -1
- package/lib/esm/TerrainSettings.d.ts +0 -7
- package/lib/esm/TerrainSettings.d.ts.map +1 -1
- package/lib/esm/TerrainSettings.js +19 -0
- package/lib/esm/TerrainSettings.js.map +1 -1
- package/lib/esm/TextureMapping.d.ts +17 -14
- package/lib/esm/TextureMapping.d.ts.map +1 -1
- package/lib/esm/TextureMapping.js +47 -19
- package/lib/esm/TextureMapping.js.map +1 -1
- package/lib/esm/ThematicDisplay.js +53 -2
- package/lib/esm/ThematicDisplay.js.map +1 -1
- package/lib/esm/Thumbnail.d.ts +1 -1
- package/lib/esm/Thumbnail.js.map +1 -1
- package/lib/esm/Tween.js +28 -19
- package/lib/esm/Tween.js.map +1 -1
- package/lib/esm/ViewDetails.js +10 -6
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewFlags.d.ts +1 -3
- package/lib/esm/ViewFlags.d.ts.map +1 -1
- package/lib/esm/ViewFlags.js +86 -5
- package/lib/esm/ViewFlags.js.map +1 -1
- package/lib/esm/ViewProps.d.ts +0 -4
- package/lib/esm/ViewProps.d.ts.map +1 -1
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.js +7 -2
- package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/esm/annotation/TextAnnotation.js +10 -0
- package/lib/esm/annotation/TextAnnotation.js.map +1 -1
- package/lib/esm/annotation/TextBlock.js +27 -6
- package/lib/esm/annotation/TextBlock.js.map +1 -1
- package/lib/esm/annotation/TextStyle.js +65 -19
- package/lib/esm/annotation/TextStyle.js.map +1 -1
- package/lib/esm/core-common.d.ts +1 -2
- package/lib/esm/core-common.d.ts.map +1 -1
- package/lib/esm/core-common.js +1 -2
- package/lib/esm/core-common.js.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.js +12 -0
- package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
- package/lib/esm/geometry/AreaPattern.js +17 -0
- package/lib/esm/geometry/AreaPattern.js.map +1 -1
- package/lib/esm/geometry/BoundingSphere.js +4 -0
- package/lib/esm/geometry/BoundingSphere.js.map +1 -1
- package/lib/esm/geometry/Cartographic.js +23 -20
- package/lib/esm/geometry/Cartographic.js.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.js +62 -0
- package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/esm/geometry/ElementGeometry.js +26 -8
- package/lib/esm/geometry/ElementGeometry.js.map +1 -1
- package/lib/esm/geometry/ElementGeometryFB.js +54 -108
- package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/esm/geometry/FrustumPlanes.js +1 -0
- package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.js +100 -0
- package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.js +16 -0
- package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/esm/geometry/GeometryStream.js +19 -6
- package/lib/esm/geometry/GeometryStream.js.map +1 -1
- package/lib/esm/geometry/ImageGraphic.js +10 -0
- package/lib/esm/geometry/ImageGraphic.js.map +1 -1
- package/lib/esm/geometry/LineStyle.js +14 -0
- package/lib/esm/geometry/LineStyle.js.map +1 -1
- package/lib/esm/geometry/Placement.js +6 -0
- package/lib/esm/geometry/Placement.js.map +1 -1
- package/lib/esm/geometry/Projection.js +75 -0
- package/lib/esm/geometry/Projection.js.map +1 -1
- package/lib/esm/geometry/TextString.js +18 -0
- package/lib/esm/geometry/TextString.js.map +1 -1
- package/lib/esm/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
- package/lib/esm/internal/BackendTypes.d.ts.map +1 -0
- package/lib/esm/internal/BackendTypes.js.map +1 -0
- package/lib/esm/internal/PackedFeatureTable.d.ts +111 -0
- package/lib/esm/internal/PackedFeatureTable.d.ts.map +1 -0
- package/lib/esm/internal/PackedFeatureTable.js +352 -0
- package/lib/esm/internal/PackedFeatureTable.js.map +1 -0
- package/lib/esm/internal/RenderMaterialParams.d.ts +47 -0
- package/lib/esm/internal/RenderMaterialParams.d.ts.map +1 -0
- package/lib/esm/internal/RenderMaterialParams.js +64 -0
- package/lib/esm/internal/RenderMaterialParams.js.map +1 -0
- package/lib/esm/internal/RenderMesh.d.ts +52 -0
- package/lib/esm/internal/RenderMesh.d.ts.map +1 -0
- package/lib/esm/{Render.js → internal/RenderMesh.js} +11 -29
- package/lib/esm/internal/RenderMesh.js.map +1 -0
- package/lib/esm/internal/RenderTextureParams.d.ts +25 -0
- package/lib/esm/internal/RenderTextureParams.d.ts.map +1 -0
- package/lib/esm/internal/RenderTextureParams.js +33 -0
- package/lib/esm/internal/RenderTextureParams.js.map +1 -0
- package/lib/esm/internal/cross-package.d.ts +5 -0
- package/lib/esm/internal/cross-package.d.ts.map +1 -1
- package/lib/esm/internal/cross-package.js +4 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/ipc/IpcSession.js +1 -0
- package/lib/esm/ipc/IpcSession.js.map +1 -1
- package/lib/esm/ipc/IpcSocket.d.ts +2 -0
- package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
- package/lib/esm/ipc/IpcSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocket.js +7 -6
- package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocketTransport.js +8 -7
- package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/esm/rpc/DevToolsRpcInterface.js +6 -6
- package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.js +8 -11
- package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.js +4 -4
- package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js +4 -4
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/esm/rpc/TestRpcManager.js +1 -4
- package/lib/esm/rpc/TestRpcManager.js.map +1 -1
- package/lib/esm/rpc/core/RpcConfiguration.js +51 -64
- package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/esm/rpc/core/RpcControl.js +29 -38
- package/lib/esm/rpc/core/RpcControl.js.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.js +19 -13
- package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.d.ts +1 -4
- package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.js +2 -1
- package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.js +29 -31
- package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
- package/lib/esm/rpc/core/RpcPendingQueue.js +17 -16
- package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.js +32 -30
- package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/esm/rpc/core/RpcPush.js +15 -8
- package/lib/esm/rpc/core/RpcPush.js.map +1 -1
- package/lib/esm/rpc/core/RpcRegistry.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcRegistry.js +10 -9
- package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.d.ts +2 -2
- package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.js +51 -29
- package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.js +4 -2
- package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/esm/rpc/core/RpcSessionInvocation.js +5 -10
- package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js +11 -17
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +16 -19
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/OpenAPI.js +2 -0
- package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -1
- package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.js +14 -13
- package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +3 -0
- package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.js +1 -6
- package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.js +6 -6
- package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.js +27 -27
- package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +14 -8
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/esm/tile/B3dmTileIO.js +7 -0
- package/lib/esm/tile/B3dmTileIO.js.map +1 -1
- package/lib/esm/tile/CompositeTileIO.js +3 -0
- package/lib/esm/tile/CompositeTileIO.js.map +1 -1
- package/lib/esm/tile/GltfTileIO.js +4 -3
- package/lib/esm/tile/GltfTileIO.js.map +1 -1
- package/lib/esm/tile/I3dmTileIO.js +8 -0
- package/lib/esm/tile/I3dmTileIO.js.map +1 -1
- package/lib/esm/tile/IModelTileIO.d.ts +2 -2
- package/lib/esm/tile/IModelTileIO.js +26 -3
- package/lib/esm/tile/IModelTileIO.js.map +1 -1
- package/lib/esm/tile/PntsTileIO.js +5 -0
- package/lib/esm/tile/PntsTileIO.js.map +1 -1
- package/lib/esm/tile/TileIO.js +2 -0
- package/lib/esm/tile/TileIO.js.map +1 -1
- package/lib/esm/tile/TileMetadata.js +9 -1
- package/lib/esm/tile/TileMetadata.js.map +1 -1
- package/package.json +14 -14
- package/lib/cjs/BackendTypes.d.ts.map +0 -1
- package/lib/cjs/BackendTypes.js.map +0 -1
- package/lib/cjs/Render.d.ts +0 -85
- package/lib/cjs/Render.d.ts.map +0 -1
- package/lib/cjs/Render.js.map +0 -1
- package/lib/esm/BackendTypes.d.ts.map +0 -1
- package/lib/esm/BackendTypes.js.map +0 -1
- package/lib/esm/Render.d.ts +0 -85
- package/lib/esm/Render.d.ts.map +0 -1
- package/lib/esm/Render.js.map +0 -1
- /package/lib/cjs/{BackendTypes.js → internal/BackendTypes.js} +0 -0
- /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":";AAAA;;;+FAG+F;AAC/F;;+FAE+F;AAC/F;;GAEG;;;AAEH,sDAAqE;AACrE,mDAAgD;AAKhD;;GAEG;AACH,MAAsB,gBAAgB;
|
|
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;
|
|
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():
|
|
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":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAoB,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAiB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAoB,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOlF,gBAAgB;AAChB,eAAO,MAAM,aAAa;;;CAAsC,CAAC;AAEjE,gBAAgB;AAChB,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAAe;IAC5B,IAAW,IAAI,SAAmB;IACrB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACrB,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC7B,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IACpC,IAAW,QAAQ,YAAoB;IACvC,IAAW,OAAO,IAAI,OAAO,CAAoE;IACjG,IAAW,EAAE,IAAI,OAAO,CAAqD;IAC7E,IAAW,UAAU,YAAoB;IACzC,IAAW,MAAM,WAAkB;IACnC,IAAW,UAAU,WAAiB;IACtC,IAAW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAoE;IAC1G,IAAW,IAAI,IAAI,
|
|
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;
|