@itwin/core-common 3.5.0-dev.28 → 3.5.0-dev.29
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/lib/cjs/AmbientOcclusion.d.ts +49 -49
- package/lib/cjs/AmbientOcclusion.js +55 -55
- package/lib/cjs/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/AnalysisStyle.d.ts +134 -134
- package/lib/cjs/AnalysisStyle.js +165 -165
- package/lib/cjs/AnalysisStyle.js.map +1 -1
- package/lib/cjs/AuthorizationClient.d.ts +11 -11
- package/lib/cjs/AuthorizationClient.js +9 -9
- package/lib/cjs/AuthorizationClient.js.map +1 -1
- package/lib/cjs/BackgroundMapProvider.d.ts +51 -51
- package/lib/cjs/BackgroundMapProvider.js +68 -68
- package/lib/cjs/BackgroundMapProvider.js.map +1 -1
- package/lib/cjs/BackgroundMapSettings.d.ts +136 -136
- package/lib/cjs/BackgroundMapSettings.js +156 -156
- package/lib/cjs/BackgroundMapSettings.js.map +1 -1
- package/lib/cjs/Base64EncodedString.d.ts +30 -30
- package/lib/cjs/Base64EncodedString.js +56 -56
- package/lib/cjs/Base64EncodedString.js.map +1 -1
- package/lib/cjs/BlobReader.d.ts +31 -31
- package/lib/cjs/BlobReader.js +84 -84
- package/lib/cjs/BlobReader.js.map +1 -1
- package/lib/cjs/BriefcaseTypes.d.ts +189 -189
- package/lib/cjs/BriefcaseTypes.js +95 -95
- package/lib/cjs/BriefcaseTypes.js.map +1 -1
- package/lib/cjs/Camera.d.ts +42 -42
- package/lib/cjs/Camera.js +62 -62
- package/lib/cjs/Camera.js.map +1 -1
- package/lib/cjs/ChangedElements.d.ts +83 -83
- package/lib/cjs/ChangedElements.js +21 -21
- package/lib/cjs/ChangedElements.js.map +1 -1
- package/lib/cjs/ChangedEntities.d.ts +45 -45
- package/lib/cjs/ChangedEntities.js +9 -9
- package/lib/cjs/ChangedEntities.js.map +1 -1
- package/lib/cjs/ChangesetProps.d.ts +98 -98
- package/lib/cjs/ChangesetProps.js +22 -22
- package/lib/cjs/ChangesetProps.js.map +1 -1
- package/lib/cjs/ClipStyle.d.ts +89 -89
- package/lib/cjs/ClipStyle.js +123 -123
- package/lib/cjs/ClipStyle.js.map +1 -1
- package/lib/cjs/CloudStorage.d.ts +62 -62
- package/lib/cjs/CloudStorage.js +113 -113
- package/lib/cjs/CloudStorage.js.map +1 -1
- package/lib/cjs/CloudStorageTileCache.d.ts +27 -27
- package/lib/cjs/CloudStorageTileCache.js +66 -66
- package/lib/cjs/CloudStorageTileCache.js.map +1 -1
- package/lib/cjs/Code.d.ts +256 -256
- package/lib/cjs/Code.js +281 -281
- package/lib/cjs/Code.js.map +1 -1
- package/lib/cjs/ColorByName.d.ts +161 -161
- package/lib/cjs/ColorByName.js +169 -169
- package/lib/cjs/ColorByName.js.map +1 -1
- package/lib/cjs/ColorDef.d.ts +208 -208
- package/lib/cjs/ColorDef.js +571 -571
- package/lib/cjs/ColorDef.js.map +1 -1
- package/lib/cjs/CommonLoggerCategory.d.ts +18 -18
- package/lib/cjs/CommonLoggerCategory.js +26 -26
- package/lib/cjs/CommonLoggerCategory.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.d.ts +241 -241
- package/lib/cjs/ConcurrentQuery.js +380 -380
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ContextRealityModel.d.ts +276 -276
- package/lib/cjs/ContextRealityModel.js +358 -358
- package/lib/cjs/ContextRealityModel.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.d.ts +584 -584
- package/lib/cjs/DisplayStyleSettings.js +981 -981
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/ECSchemaProps.d.ts +39 -39
- package/lib/cjs/ECSchemaProps.js +9 -9
- package/lib/cjs/ECSchemaProps.js.map +1 -1
- package/lib/cjs/ECSqlReader.d.ts +70 -70
- package/lib/cjs/ECSqlReader.js +280 -280
- package/lib/cjs/ECSqlReader.js.map +1 -1
- package/lib/cjs/ECSqlTypes.d.ts +128 -128
- package/lib/cjs/ECSqlTypes.js +189 -189
- package/lib/cjs/ECSqlTypes.js.map +1 -1
- package/lib/cjs/ElementProps.d.ts +476 -476
- package/lib/cjs/ElementProps.js +99 -99
- package/lib/cjs/ElementProps.js.map +1 -1
- package/lib/cjs/EmphasizeElementsProps.d.ts +55 -55
- package/lib/cjs/EmphasizeElementsProps.js +25 -25
- package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
- package/lib/cjs/EntityProps.d.ts +176 -176
- package/lib/cjs/EntityProps.js +112 -112
- package/lib/cjs/EntityProps.js.map +1 -1
- package/lib/cjs/EntityReference.d.ts +51 -51
- package/lib/cjs/EntityReference.js +56 -56
- package/lib/cjs/EntityReference.js.map +1 -1
- package/lib/cjs/Environment.d.ts +61 -61
- package/lib/cjs/Environment.js +73 -73
- package/lib/cjs/Environment.js.map +1 -1
- package/lib/cjs/FeatureGates.d.ts +31 -31
- package/lib/cjs/FeatureGates.js +55 -55
- package/lib/cjs/FeatureGates.js.map +1 -1
- package/lib/cjs/FeatureIndex.d.ts +39 -39
- package/lib/cjs/FeatureIndex.js +63 -63
- package/lib/cjs/FeatureIndex.js.map +1 -1
- package/lib/cjs/FeatureSymbology.d.ts +444 -444
- package/lib/cjs/FeatureSymbology.js +614 -614
- package/lib/cjs/FeatureSymbology.js.map +1 -1
- package/lib/cjs/FeatureTable.d.ts +141 -141
- package/lib/cjs/FeatureTable.js +278 -278
- package/lib/cjs/FeatureTable.js.map +1 -1
- package/lib/cjs/Fonts.d.ts +51 -51
- package/lib/cjs/Fonts.js +53 -53
- package/lib/cjs/Fonts.js.map +1 -1
- package/lib/cjs/Frustum.d.ts +114 -114
- package/lib/cjs/Frustum.js +292 -292
- package/lib/cjs/Frustum.js.map +1 -1
- package/lib/cjs/GeoCoordinateServices.d.ts +119 -119
- package/lib/cjs/GeoCoordinateServices.js +80 -80
- package/lib/cjs/GeoCoordinateServices.js.map +1 -1
- package/lib/cjs/GeometryContainment.d.ts +28 -28
- package/lib/cjs/GeometryContainment.js +9 -9
- package/lib/cjs/GeometryContainment.js.map +1 -1
- package/lib/cjs/GeometryParams.d.ts +130 -130
- package/lib/cjs/GeometryParams.js +174 -174
- package/lib/cjs/GeometryParams.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +45 -45
- package/lib/cjs/GeometrySummary.js +23 -23
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/Gradient.d.ts +139 -139
- package/lib/cjs/Gradient.js +455 -455
- package/lib/cjs/Gradient.js.map +1 -1
- package/lib/cjs/GraphicParams.d.ts +58 -58
- package/lib/cjs/GraphicParams.js +85 -85
- package/lib/cjs/GraphicParams.js.map +1 -1
- package/lib/cjs/GroundPlane.d.ts +52 -52
- package/lib/cjs/GroundPlane.js +64 -64
- package/lib/cjs/GroundPlane.js.map +1 -1
- package/lib/cjs/HSLColor.d.ts +20 -20
- package/lib/cjs/HSLColor.js +32 -32
- package/lib/cjs/HSLColor.js.map +1 -1
- package/lib/cjs/HSVColor.d.ts +30 -30
- package/lib/cjs/HSVColor.js +59 -59
- package/lib/cjs/HSVColor.js.map +1 -1
- package/lib/cjs/HiddenLine.d.ts +97 -97
- package/lib/cjs/HiddenLine.js +162 -162
- package/lib/cjs/HiddenLine.js.map +1 -1
- package/lib/cjs/Hilite.d.ts +50 -50
- package/lib/cjs/Hilite.js +64 -64
- package/lib/cjs/Hilite.js.map +1 -1
- package/lib/cjs/IModel.d.ts +359 -359
- package/lib/cjs/IModel.js +347 -347
- package/lib/cjs/IModel.js.map +1 -1
- package/lib/cjs/IModelError.d.ts +36 -36
- package/lib/cjs/IModelError.js +72 -72
- package/lib/cjs/IModelError.js.map +1 -1
- package/lib/cjs/IModelVersion.d.ts +68 -68
- package/lib/cjs/IModelVersion.js +79 -79
- package/lib/cjs/IModelVersion.js.map +1 -1
- package/lib/cjs/Image.d.ts +86 -86
- package/lib/cjs/Image.js +128 -128
- package/lib/cjs/Image.js.map +1 -1
- package/lib/cjs/IpcAppProps.d.ts +141 -141
- package/lib/cjs/IpcAppProps.js +23 -23
- package/lib/cjs/IpcAppProps.js.map +1 -1
- package/lib/cjs/LightSettings.d.ts +224 -224
- package/lib/cjs/LightSettings.js +309 -309
- package/lib/cjs/LightSettings.js.map +1 -1
- package/lib/cjs/LinePixels.d.ts +34 -34
- package/lib/cjs/LinePixels.js +42 -42
- package/lib/cjs/LinePixels.js.map +1 -1
- package/lib/cjs/Localization.d.ts +111 -111
- package/lib/cjs/Localization.js +26 -26
- package/lib/cjs/Localization.js.map +1 -1
- package/lib/cjs/MapImagerySettings.d.ts +62 -62
- package/lib/cjs/MapImagerySettings.js +80 -80
- package/lib/cjs/MapImagerySettings.js.map +1 -1
- package/lib/cjs/MapLayerSettings.d.ts +272 -272
- package/lib/cjs/MapLayerSettings.js +411 -411
- package/lib/cjs/MapLayerSettings.js.map +1 -1
- package/lib/cjs/MassProperties.d.ts +64 -64
- package/lib/cjs/MassProperties.js +23 -23
- package/lib/cjs/MassProperties.js.map +1 -1
- package/lib/cjs/MaterialProps.d.ts +118 -118
- package/lib/cjs/MaterialProps.js +23 -23
- package/lib/cjs/MaterialProps.js.map +1 -1
- package/lib/cjs/ModelClipGroup.d.ts +67 -67
- package/lib/cjs/ModelClipGroup.js +98 -98
- package/lib/cjs/ModelClipGroup.js.map +1 -1
- package/lib/cjs/ModelGeometryChanges.d.ts +107 -107
- package/lib/cjs/ModelGeometryChanges.js +83 -83
- package/lib/cjs/ModelGeometryChanges.js.map +1 -1
- package/lib/cjs/ModelProps.d.ts +67 -67
- package/lib/cjs/ModelProps.js +9 -9
- package/lib/cjs/ModelProps.js.map +1 -1
- package/lib/cjs/NativeAppProps.d.ts +122 -122
- package/lib/cjs/NativeAppProps.js +30 -30
- package/lib/cjs/NativeAppProps.js.map +1 -1
- package/lib/cjs/OctEncodedNormal.d.ts +33 -33
- package/lib/cjs/OctEncodedNormal.js +98 -98
- package/lib/cjs/OctEncodedNormal.js.map +1 -1
- package/lib/cjs/PlanProjectionSettings.d.ts +47 -47
- package/lib/cjs/PlanProjectionSettings.js +63 -63
- package/lib/cjs/PlanProjectionSettings.js.map +1 -1
- package/lib/cjs/PlanarClipMask.d.ts +177 -177
- package/lib/cjs/PlanarClipMask.js +136 -136
- package/lib/cjs/PlanarClipMask.js.map +1 -1
- package/lib/cjs/QPoint.d.ts +479 -479
- package/lib/cjs/QPoint.js +826 -826
- package/lib/cjs/QPoint.js.map +1 -1
- package/lib/cjs/RealityDataAccessProps.d.ts +41 -41
- package/lib/cjs/RealityDataAccessProps.js +19 -19
- package/lib/cjs/RealityDataAccessProps.js.map +1 -1
- package/lib/cjs/RealityModelDisplaySettings.d.ts +118 -118
- package/lib/cjs/RealityModelDisplaySettings.js +114 -114
- package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
- package/lib/cjs/Render.d.ts +89 -89
- package/lib/cjs/Render.js +177 -177
- package/lib/cjs/Render.js.map +1 -1
- package/lib/cjs/RenderMaterial.d.ts +58 -58
- package/lib/cjs/RenderMaterial.js +76 -76
- package/lib/cjs/RenderMaterial.js.map +1 -1
- package/lib/cjs/RenderSchedule.d.ts +541 -541
- package/lib/cjs/RenderSchedule.js +1000 -1000
- package/lib/cjs/RenderTexture.d.ts +70 -70
- package/lib/cjs/RenderTexture.js +59 -59
- package/lib/cjs/RenderTexture.js.map +1 -1
- package/lib/cjs/RgbColor.d.ts +47 -47
- package/lib/cjs/RgbColor.js +77 -77
- package/lib/cjs/RgbColor.js.map +1 -1
- package/lib/cjs/RpcInterface.d.ts +33 -33
- package/lib/cjs/RpcInterface.js +137 -137
- package/lib/cjs/RpcInterface.js.map +1 -1
- package/lib/cjs/RpcManager.d.ts +40 -40
- package/lib/cjs/RpcManager.js +55 -55
- package/lib/cjs/RpcManager.js.map +1 -1
- package/lib/cjs/SessionProps.d.ts +16 -16
- package/lib/cjs/SessionProps.js +9 -9
- package/lib/cjs/SessionProps.js.map +1 -1
- package/lib/cjs/SkyBox.d.ts +215 -215
- package/lib/cjs/SkyBox.js +210 -210
- package/lib/cjs/SkyBox.js.map +1 -1
- package/lib/cjs/Snapping.d.ts +49 -49
- package/lib/cjs/Snapping.js +9 -9
- package/lib/cjs/Snapping.js.map +1 -1
- package/lib/cjs/SolarCalculate.d.ts +27 -27
- package/lib/cjs/SolarCalculate.js +211 -211
- package/lib/cjs/SolarCalculate.js.map +1 -1
- package/lib/cjs/SolarShadows.d.ts +35 -35
- package/lib/cjs/SolarShadows.js +62 -62
- package/lib/cjs/SolarShadows.js.map +1 -1
- package/lib/cjs/SpatialClassification.d.ts +208 -208
- package/lib/cjs/SpatialClassification.js +340 -340
- package/lib/cjs/SpatialClassification.js.map +1 -1
- package/lib/cjs/SubCategoryAppearance.d.ts +91 -91
- package/lib/cjs/SubCategoryAppearance.js +96 -96
- package/lib/cjs/SubCategoryAppearance.js.map +1 -1
- package/lib/cjs/SubCategoryOverride.d.ts +46 -46
- package/lib/cjs/SubCategoryOverride.js +104 -104
- package/lib/cjs/SubCategoryOverride.js.map +1 -1
- package/lib/cjs/TerrainSettings.d.ts +82 -82
- package/lib/cjs/TerrainSettings.js +102 -102
- package/lib/cjs/TerrainSettings.js.map +1 -1
- package/lib/cjs/TextureMapping.d.ts +101 -101
- package/lib/cjs/TextureMapping.js +174 -174
- package/lib/cjs/TextureMapping.js.map +1 -1
- package/lib/cjs/TextureProps.d.ts +65 -65
- package/lib/cjs/TextureProps.js +28 -28
- package/lib/cjs/TextureProps.js.map +1 -1
- package/lib/cjs/ThematicDisplay.d.ts +230 -230
- package/lib/cjs/ThematicDisplay.js +344 -344
- package/lib/cjs/ThematicDisplay.js.map +1 -1
- package/lib/cjs/Thumbnail.d.ts +26 -26
- package/lib/cjs/Thumbnail.js +9 -9
- package/lib/cjs/Thumbnail.js.map +1 -1
- package/lib/cjs/TileProps.d.ts +82 -82
- package/lib/cjs/TileProps.js +29 -29
- package/lib/cjs/TileProps.js.map +1 -1
- package/lib/cjs/Tween.d.ts +191 -191
- package/lib/cjs/Tween.js +570 -570
- package/lib/cjs/Tween.js.map +1 -1
- package/lib/cjs/TxnAction.d.ts +21 -21
- package/lib/cjs/TxnAction.js +29 -29
- package/lib/cjs/TxnAction.js.map +1 -1
- package/lib/cjs/ViewDetails.d.ts +125 -125
- package/lib/cjs/ViewDetails.js +158 -158
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewFlags.d.ts +291 -291
- package/lib/cjs/ViewFlags.js +368 -368
- package/lib/cjs/ViewFlags.js.map +1 -1
- package/lib/cjs/ViewProps.d.ts +205 -205
- package/lib/cjs/ViewProps.js +9 -9
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.d.ts +36 -36
- package/lib/cjs/WhiteOnWhiteReversalSettings.js +37 -37
- package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/cjs/core-common.d.ts +242 -242
- package/lib/cjs/core-common.js +258 -258
- package/lib/cjs/core-common.js.map +1 -1
- package/lib/cjs/domains/FunctionalElementProps.d.ts +11 -11
- package/lib/cjs/domains/FunctionalElementProps.js +9 -9
- package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
- package/lib/cjs/domains/GenericElementProps.d.ts +18 -18
- package/lib/cjs/domains/GenericElementProps.js +9 -9
- package/lib/cjs/domains/GenericElementProps.js.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.d.ts +84 -84
- package/lib/cjs/geometry/AdditionalTransform.js +85 -85
- package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
- package/lib/cjs/geometry/AreaPattern.d.ts +82 -82
- package/lib/cjs/geometry/AreaPattern.js +204 -204
- package/lib/cjs/geometry/AreaPattern.js.map +1 -1
- package/lib/cjs/geometry/BoundingSphere.d.ts +14 -14
- package/lib/cjs/geometry/BoundingSphere.js +30 -30
- package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
- package/lib/cjs/geometry/Cartographic.d.ts +137 -137
- package/lib/cjs/geometry/Cartographic.js +345 -345
- package/lib/cjs/geometry/Cartographic.js.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.d.ts +269 -269
- package/lib/cjs/geometry/CoordinateReferenceSystem.js +261 -261
- package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometry.d.ts +402 -402
- package/lib/cjs/geometry/ElementGeometry.js +1719 -1719
- package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometryFB.d.ts +2372 -2372
- package/lib/cjs/geometry/ElementGeometryFB.js +3814 -3814
- package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/cjs/geometry/FrustumPlanes.d.ts +32 -32
- package/lib/cjs/geometry/FrustumPlanes.js +132 -132
- package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.d.ts +409 -409
- package/lib/cjs/geometry/GeodeticDatum.js +401 -401
- package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.d.ts +72 -72
- package/lib/cjs/geometry/GeodeticEllipsoid.js +72 -72
- package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/cjs/geometry/GeometryStream.d.ts +347 -347
- package/lib/cjs/geometry/GeometryStream.js +469 -469
- package/lib/cjs/geometry/GeometryStream.js.map +1 -1
- package/lib/cjs/geometry/ImageGraphic.d.ts +74 -74
- package/lib/cjs/geometry/ImageGraphic.js +98 -98
- package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
- package/lib/cjs/geometry/LineStyle.d.ts +71 -71
- package/lib/cjs/geometry/LineStyle.js +129 -129
- package/lib/cjs/geometry/LineStyle.js.map +1 -1
- package/lib/cjs/geometry/Placement.d.ts +95 -95
- package/lib/cjs/geometry/Placement.js +131 -131
- package/lib/cjs/geometry/Placement.js.map +1 -1
- package/lib/cjs/geometry/Projection.d.ts +251 -251
- package/lib/cjs/geometry/Projection.js +198 -198
- package/lib/cjs/geometry/Projection.js.map +1 -1
- package/lib/cjs/geometry/TextString.d.ts +55 -55
- package/lib/cjs/geometry/TextString.js +65 -65
- package/lib/cjs/geometry/TextString.js.map +1 -1
- package/lib/cjs/ipc/IpcSession.d.ts +23 -23
- package/lib/cjs/ipc/IpcSession.js +27 -27
- package/lib/cjs/ipc/IpcSession.js.map +1 -1
- package/lib/cjs/ipc/IpcSocket.d.ts +96 -96
- package/lib/cjs/ipc/IpcSocket.js +16 -16
- package/lib/cjs/ipc/IpcSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocket.d.ts +61 -61
- package/lib/cjs/ipc/IpcWebSocket.js +151 -151
- package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocketTransport.d.ts +15 -15
- package/lib/cjs/ipc/IpcWebSocketTransport.js +158 -158
- package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/cjs/rpc/DevToolsRpcInterface.d.ts +32 -32
- package/lib/cjs/rpc/DevToolsRpcInterface.js +48 -48
- package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +97 -97
- package/lib/cjs/rpc/IModelReadRpcInterface.js +119 -119
- package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +61 -61
- package/lib/cjs/rpc/IModelTileRpcInterface.js +96 -96
- package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +48 -48
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/TestRpcManager.d.ts +20 -20
- package/lib/cjs/rpc/TestRpcManager.js +39 -39
- package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
- package/lib/cjs/rpc/WipRpcInterface.d.ts +29 -29
- package/lib/cjs/rpc/WipRpcInterface.js +40 -40
- package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConfiguration.d.ts +111 -111
- package/lib/cjs/rpc/core/RpcConfiguration.js +192 -192
- package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConstants.d.ts +85 -85
- package/lib/cjs/rpc/core/RpcConstants.js +103 -103
- package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.d.ts +52 -52
- package/lib/cjs/rpc/core/RpcControl.js +149 -149
- package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.d.ts +89 -89
- package/lib/cjs/rpc/core/RpcInvocation.js +257 -257
- package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.d.ts +36 -36
- package/lib/cjs/rpc/core/RpcMarshaling.js +153 -153
- package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.d.ts +67 -67
- package/lib/cjs/rpc/core/RpcOperation.js +133 -133
- package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPendingQueue.d.ts +21 -21
- package/lib/cjs/rpc/core/RpcPendingQueue.js +94 -94
- package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.d.ts +132 -132
- package/lib/cjs/rpc/core/RpcProtocol.js +127 -127
- package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPush.d.ts +68 -68
- package/lib/cjs/rpc/core/RpcPush.js +127 -127
- package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRegistry.d.ts +48 -48
- package/lib/cjs/rpc/core/RpcRegistry.js +198 -198
- package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.d.ts +186 -186
- package/lib/cjs/rpc/core/RpcRequest.js +477 -477
- package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequestContext.d.ts +14 -14
- package/lib/cjs/rpc/core/RpcRequestContext.js +2 -2
- package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +12 -12
- package/lib/cjs/rpc/core/RpcRoutingToken.js +23 -23
- package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +10 -10
- package/lib/cjs/rpc/core/RpcSessionInvocation.js +59 -59
- package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +73 -73
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +142 -142
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/OpenAPI.d.ts +139 -139
- package/lib/cjs/rpc/web/OpenAPI.js +60 -60
- package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.d.ts +31 -31
- package/lib/cjs/rpc/web/RpcMultipart.js +45 -45
- package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +17 -17
- package/lib/cjs/rpc/web/WebAppRpcLogging.js +140 -140
- package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +86 -86
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js +116 -116
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +71 -71
- package/lib/cjs/rpc/web/WebAppRpcRequest.js +374 -374
- package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +359 -359
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/cjs/tile/B3dmTileIO.d.ts +19 -19
- package/lib/cjs/tile/B3dmTileIO.js +66 -66
- package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/CompositeTileIO.d.ts +15 -15
- package/lib/cjs/tile/CompositeTileIO.js +26 -26
- package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
- package/lib/cjs/tile/ElementGraphics.d.ts +145 -145
- package/lib/cjs/tile/ElementGraphics.js +9 -9
- package/lib/cjs/tile/ElementGraphics.js.map +1 -1
- package/lib/cjs/tile/GltfTileIO.d.ts +45 -45
- package/lib/cjs/tile/GltfTileIO.js +109 -109
- package/lib/cjs/tile/GltfTileIO.js.map +1 -1
- package/lib/cjs/tile/I3dmTileIO.d.ts +20 -20
- package/lib/cjs/tile/I3dmTileIO.js +40 -40
- package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/IModelTileIO.d.ts +75 -75
- package/lib/cjs/tile/IModelTileIO.js +95 -95
- package/lib/cjs/tile/IModelTileIO.js.map +1 -1
- package/lib/cjs/tile/PntsTileIO.d.ts +17 -17
- package/lib/cjs/tile/PntsTileIO.js +26 -26
- package/lib/cjs/tile/PntsTileIO.js.map +1 -1
- package/lib/cjs/tile/TileIO.d.ts +66 -66
- package/lib/cjs/tile/TileIO.js +118 -118
- package/lib/cjs/tile/TileIO.js.map +1 -1
- package/lib/cjs/tile/TileMetadata.d.ts +228 -228
- package/lib/cjs/tile/TileMetadata.js +676 -676
- package/lib/cjs/tile/TileMetadata.js.map +1 -1
- package/lib/esm/AmbientOcclusion.d.ts +49 -49
- package/lib/esm/AmbientOcclusion.js +52 -52
- package/lib/esm/AmbientOcclusion.js.map +1 -1
- package/lib/esm/AnalysisStyle.d.ts +134 -134
- package/lib/esm/AnalysisStyle.js +159 -159
- package/lib/esm/AnalysisStyle.js.map +1 -1
- package/lib/esm/AuthorizationClient.d.ts +11 -11
- package/lib/esm/AuthorizationClient.js +8 -8
- package/lib/esm/AuthorizationClient.js.map +1 -1
- package/lib/esm/BackgroundMapProvider.d.ts +51 -51
- package/lib/esm/BackgroundMapProvider.js +64 -64
- package/lib/esm/BackgroundMapProvider.js.map +1 -1
- package/lib/esm/BackgroundMapSettings.d.ts +136 -136
- package/lib/esm/BackgroundMapSettings.js +152 -152
- package/lib/esm/BackgroundMapSettings.js.map +1 -1
- package/lib/esm/Base64EncodedString.d.ts +30 -30
- package/lib/esm/Base64EncodedString.js +53 -53
- package/lib/esm/Base64EncodedString.js.map +1 -1
- package/lib/esm/BlobReader.d.ts +31 -31
- package/lib/esm/BlobReader.js +79 -79
- package/lib/esm/BlobReader.js.map +1 -1
- package/lib/esm/BriefcaseTypes.d.ts +189 -189
- package/lib/esm/BriefcaseTypes.js +92 -92
- package/lib/esm/BriefcaseTypes.js.map +1 -1
- package/lib/esm/Camera.d.ts +42 -42
- package/lib/esm/Camera.js +58 -58
- package/lib/esm/Camera.js.map +1 -1
- package/lib/esm/ChangedElements.d.ts +83 -83
- package/lib/esm/ChangedElements.js +18 -18
- package/lib/esm/ChangedElements.js.map +1 -1
- package/lib/esm/ChangedEntities.d.ts +45 -45
- package/lib/esm/ChangedEntities.js +8 -8
- package/lib/esm/ChangedEntities.js.map +1 -1
- package/lib/esm/ChangesetProps.d.ts +98 -98
- package/lib/esm/ChangesetProps.js +19 -19
- package/lib/esm/ChangesetProps.js.map +1 -1
- package/lib/esm/ClipStyle.d.ts +89 -89
- package/lib/esm/ClipStyle.js +118 -118
- package/lib/esm/ClipStyle.js.map +1 -1
- package/lib/esm/CloudStorage.d.ts +62 -62
- package/lib/esm/CloudStorage.js +109 -109
- package/lib/esm/CloudStorage.js.map +1 -1
- package/lib/esm/CloudStorageTileCache.d.ts +27 -27
- package/lib/esm/CloudStorageTileCache.js +62 -62
- package/lib/esm/CloudStorageTileCache.js.map +1 -1
- package/lib/esm/Code.d.ts +256 -256
- package/lib/esm/Code.js +276 -276
- package/lib/esm/Code.js.map +1 -1
- package/lib/esm/ColorByName.d.ts +161 -161
- package/lib/esm/ColorByName.js +166 -166
- package/lib/esm/ColorByName.js.map +1 -1
- package/lib/esm/ColorDef.d.ts +208 -208
- package/lib/esm/ColorDef.js +567 -567
- package/lib/esm/ColorDef.js.map +1 -1
- package/lib/esm/CommonLoggerCategory.d.ts +18 -18
- package/lib/esm/CommonLoggerCategory.js +23 -23
- package/lib/esm/CommonLoggerCategory.js.map +1 -1
- package/lib/esm/ConcurrentQuery.d.ts +241 -241
- package/lib/esm/ConcurrentQuery.js +373 -373
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ContextRealityModel.d.ts +276 -276
- package/lib/esm/ContextRealityModel.js +353 -353
- package/lib/esm/ContextRealityModel.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.d.ts +584 -584
- package/lib/esm/DisplayStyleSettings.js +976 -976
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/ECSchemaProps.d.ts +39 -39
- package/lib/esm/ECSchemaProps.js +8 -8
- package/lib/esm/ECSchemaProps.js.map +1 -1
- package/lib/esm/ECSqlReader.d.ts +70 -70
- package/lib/esm/ECSqlReader.js +275 -275
- package/lib/esm/ECSqlReader.js.map +1 -1
- package/lib/esm/ECSqlTypes.d.ts +128 -128
- package/lib/esm/ECSqlTypes.js +185 -185
- package/lib/esm/ECSqlTypes.js.map +1 -1
- package/lib/esm/ElementProps.d.ts +476 -476
- package/lib/esm/ElementProps.js +92 -92
- package/lib/esm/ElementProps.js.map +1 -1
- package/lib/esm/EmphasizeElementsProps.d.ts +55 -55
- package/lib/esm/EmphasizeElementsProps.js +22 -22
- package/lib/esm/EmphasizeElementsProps.js.map +1 -1
- package/lib/esm/EntityProps.d.ts +176 -176
- package/lib/esm/EntityProps.js +107 -107
- package/lib/esm/EntityProps.js.map +1 -1
- package/lib/esm/EntityReference.d.ts +51 -51
- package/lib/esm/EntityReference.js +52 -52
- package/lib/esm/EntityReference.js.map +1 -1
- package/lib/esm/Environment.d.ts +61 -61
- package/lib/esm/Environment.js +69 -69
- package/lib/esm/Environment.js.map +1 -1
- package/lib/esm/FeatureGates.d.ts +31 -31
- package/lib/esm/FeatureGates.js +51 -51
- package/lib/esm/FeatureGates.js.map +1 -1
- package/lib/esm/FeatureIndex.d.ts +39 -39
- package/lib/esm/FeatureIndex.js +57 -57
- package/lib/esm/FeatureIndex.js.map +1 -1
- package/lib/esm/FeatureSymbology.d.ts +444 -444
- package/lib/esm/FeatureSymbology.js +609 -609
- package/lib/esm/FeatureSymbology.js.map +1 -1
- package/lib/esm/FeatureTable.d.ts +141 -141
- package/lib/esm/FeatureTable.js +272 -272
- package/lib/esm/FeatureTable.js.map +1 -1
- package/lib/esm/Fonts.d.ts +51 -51
- package/lib/esm/Fonts.js +49 -49
- package/lib/esm/Fonts.js.map +1 -1
- package/lib/esm/Frustum.d.ts +114 -114
- package/lib/esm/Frustum.js +288 -288
- package/lib/esm/Frustum.js.map +1 -1
- package/lib/esm/GeoCoordinateServices.d.ts +119 -119
- package/lib/esm/GeoCoordinateServices.js +76 -76
- package/lib/esm/GeoCoordinateServices.js.map +1 -1
- package/lib/esm/GeometryContainment.d.ts +28 -28
- package/lib/esm/GeometryContainment.js +8 -8
- package/lib/esm/GeometryContainment.js.map +1 -1
- package/lib/esm/GeometryParams.d.ts +130 -130
- package/lib/esm/GeometryParams.js +170 -170
- package/lib/esm/GeometryParams.js.map +1 -1
- package/lib/esm/GeometrySummary.d.ts +45 -45
- package/lib/esm/GeometrySummary.js +20 -20
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/Gradient.d.ts +139 -139
- package/lib/esm/Gradient.js +452 -452
- package/lib/esm/Gradient.js.map +1 -1
- package/lib/esm/GraphicParams.d.ts +58 -58
- package/lib/esm/GraphicParams.js +81 -81
- package/lib/esm/GraphicParams.js.map +1 -1
- package/lib/esm/GroundPlane.d.ts +52 -52
- package/lib/esm/GroundPlane.js +60 -60
- package/lib/esm/GroundPlane.js.map +1 -1
- package/lib/esm/HSLColor.d.ts +20 -20
- package/lib/esm/HSLColor.js +28 -28
- package/lib/esm/HSLColor.js.map +1 -1
- package/lib/esm/HSVColor.d.ts +30 -30
- package/lib/esm/HSVColor.js +55 -55
- package/lib/esm/HSVColor.js.map +1 -1
- package/lib/esm/HiddenLine.d.ts +97 -97
- package/lib/esm/HiddenLine.js +159 -159
- package/lib/esm/HiddenLine.js.map +1 -1
- package/lib/esm/Hilite.d.ts +50 -50
- package/lib/esm/Hilite.js +61 -61
- package/lib/esm/Hilite.js.map +1 -1
- package/lib/esm/IModel.d.ts +359 -359
- package/lib/esm/IModel.js +342 -342
- package/lib/esm/IModel.js.map +1 -1
- package/lib/esm/IModelError.d.ts +36 -36
- package/lib/esm/IModelError.js +55 -55
- package/lib/esm/IModelError.js.map +1 -1
- package/lib/esm/IModelVersion.d.ts +68 -68
- package/lib/esm/IModelVersion.js +75 -75
- package/lib/esm/IModelVersion.js.map +1 -1
- package/lib/esm/Image.d.ts +86 -86
- package/lib/esm/Image.js +120 -120
- package/lib/esm/Image.js.map +1 -1
- package/lib/esm/IpcAppProps.d.ts +141 -141
- package/lib/esm/IpcAppProps.js +19 -19
- package/lib/esm/IpcAppProps.js.map +1 -1
- package/lib/esm/LightSettings.d.ts +224 -224
- package/lib/esm/LightSettings.js +301 -301
- package/lib/esm/LightSettings.js.map +1 -1
- package/lib/esm/LinePixels.d.ts +34 -34
- package/lib/esm/LinePixels.js +39 -39
- package/lib/esm/LinePixels.js.map +1 -1
- package/lib/esm/Localization.d.ts +111 -111
- package/lib/esm/Localization.js +22 -22
- package/lib/esm/Localization.js.map +1 -1
- package/lib/esm/MapImagerySettings.d.ts +62 -62
- package/lib/esm/MapImagerySettings.js +76 -76
- package/lib/esm/MapImagerySettings.js.map +1 -1
- package/lib/esm/MapLayerSettings.d.ts +272 -272
- package/lib/esm/MapLayerSettings.js +403 -403
- package/lib/esm/MapLayerSettings.js.map +1 -1
- package/lib/esm/MassProperties.d.ts +64 -64
- package/lib/esm/MassProperties.js +20 -20
- package/lib/esm/MassProperties.js.map +1 -1
- package/lib/esm/MaterialProps.d.ts +118 -118
- package/lib/esm/MaterialProps.js +20 -20
- package/lib/esm/MaterialProps.js.map +1 -1
- package/lib/esm/ModelClipGroup.d.ts +67 -67
- package/lib/esm/ModelClipGroup.js +93 -93
- package/lib/esm/ModelClipGroup.js.map +1 -1
- package/lib/esm/ModelGeometryChanges.d.ts +107 -107
- package/lib/esm/ModelGeometryChanges.js +80 -80
- package/lib/esm/ModelGeometryChanges.js.map +1 -1
- package/lib/esm/ModelProps.d.ts +67 -67
- package/lib/esm/ModelProps.js +8 -8
- package/lib/esm/ModelProps.js.map +1 -1
- package/lib/esm/NativeAppProps.d.ts +122 -122
- package/lib/esm/NativeAppProps.js +27 -27
- package/lib/esm/NativeAppProps.js.map +1 -1
- package/lib/esm/OctEncodedNormal.d.ts +33 -33
- package/lib/esm/OctEncodedNormal.js +93 -93
- package/lib/esm/OctEncodedNormal.js.map +1 -1
- package/lib/esm/PlanProjectionSettings.d.ts +47 -47
- package/lib/esm/PlanProjectionSettings.js +59 -59
- package/lib/esm/PlanProjectionSettings.js.map +1 -1
- package/lib/esm/PlanarClipMask.d.ts +177 -177
- package/lib/esm/PlanarClipMask.js +132 -132
- package/lib/esm/PlanarClipMask.js.map +1 -1
- package/lib/esm/QPoint.d.ts +479 -479
- package/lib/esm/QPoint.js +815 -815
- package/lib/esm/QPoint.js.map +1 -1
- package/lib/esm/RealityDataAccessProps.d.ts +41 -41
- package/lib/esm/RealityDataAccessProps.js +16 -16
- package/lib/esm/RealityDataAccessProps.js.map +1 -1
- package/lib/esm/RealityModelDisplaySettings.d.ts +118 -118
- package/lib/esm/RealityModelDisplaySettings.js +109 -109
- package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
- package/lib/esm/Render.d.ts +89 -89
- package/lib/esm/Render.js +165 -165
- package/lib/esm/Render.js.map +1 -1
- package/lib/esm/RenderMaterial.d.ts +58 -58
- package/lib/esm/RenderMaterial.js +72 -72
- package/lib/esm/RenderMaterial.js.map +1 -1
- package/lib/esm/RenderSchedule.d.ts +541 -541
- package/lib/esm/RenderSchedule.js +997 -997
- package/lib/esm/RenderTexture.d.ts +70 -70
- package/lib/esm/RenderTexture.js +55 -55
- package/lib/esm/RenderTexture.js.map +1 -1
- package/lib/esm/RgbColor.d.ts +47 -47
- package/lib/esm/RgbColor.js +73 -73
- package/lib/esm/RgbColor.js.map +1 -1
- package/lib/esm/RpcInterface.d.ts +33 -33
- package/lib/esm/RpcInterface.js +133 -133
- package/lib/esm/RpcInterface.js.map +1 -1
- package/lib/esm/RpcManager.d.ts +40 -40
- package/lib/esm/RpcManager.js +51 -51
- package/lib/esm/RpcManager.js.map +1 -1
- package/lib/esm/SessionProps.d.ts +16 -16
- package/lib/esm/SessionProps.js +8 -8
- package/lib/esm/SessionProps.js.map +1 -1
- package/lib/esm/SkyBox.d.ts +215 -215
- package/lib/esm/SkyBox.js +203 -203
- package/lib/esm/SkyBox.js.map +1 -1
- package/lib/esm/Snapping.d.ts +49 -49
- package/lib/esm/Snapping.js +8 -8
- package/lib/esm/Snapping.js.map +1 -1
- package/lib/esm/SolarCalculate.d.ts +27 -27
- package/lib/esm/SolarCalculate.js +204 -204
- package/lib/esm/SolarCalculate.js.map +1 -1
- package/lib/esm/SolarShadows.d.ts +35 -35
- package/lib/esm/SolarShadows.js +58 -58
- package/lib/esm/SolarShadows.js.map +1 -1
- package/lib/esm/SpatialClassification.d.ts +208 -208
- package/lib/esm/SpatialClassification.js +334 -334
- package/lib/esm/SpatialClassification.js.map +1 -1
- package/lib/esm/SubCategoryAppearance.d.ts +91 -91
- package/lib/esm/SubCategoryAppearance.js +92 -92
- package/lib/esm/SubCategoryAppearance.js.map +1 -1
- package/lib/esm/SubCategoryOverride.d.ts +46 -46
- package/lib/esm/SubCategoryOverride.js +100 -100
- package/lib/esm/SubCategoryOverride.js.map +1 -1
- package/lib/esm/TerrainSettings.d.ts +82 -82
- package/lib/esm/TerrainSettings.js +98 -98
- package/lib/esm/TerrainSettings.js.map +1 -1
- package/lib/esm/TextureMapping.d.ts +101 -101
- package/lib/esm/TextureMapping.js +170 -170
- package/lib/esm/TextureMapping.js.map +1 -1
- package/lib/esm/TextureProps.d.ts +65 -65
- package/lib/esm/TextureProps.js +25 -25
- package/lib/esm/TextureProps.js.map +1 -1
- package/lib/esm/ThematicDisplay.d.ts +230 -230
- package/lib/esm/ThematicDisplay.js +337 -337
- package/lib/esm/ThematicDisplay.js.map +1 -1
- package/lib/esm/Thumbnail.d.ts +26 -26
- package/lib/esm/Thumbnail.js +8 -8
- package/lib/esm/Thumbnail.js.map +1 -1
- package/lib/esm/TileProps.d.ts +82 -82
- package/lib/esm/TileProps.js +25 -25
- package/lib/esm/TileProps.js.map +1 -1
- package/lib/esm/Tween.d.ts +191 -191
- package/lib/esm/Tween.js +565 -565
- package/lib/esm/Tween.js.map +1 -1
- package/lib/esm/TxnAction.d.ts +21 -21
- package/lib/esm/TxnAction.js +26 -26
- package/lib/esm/TxnAction.js.map +1 -1
- package/lib/esm/ViewDetails.d.ts +125 -125
- package/lib/esm/ViewDetails.js +153 -153
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewFlags.d.ts +291 -291
- package/lib/esm/ViewFlags.js +364 -364
- package/lib/esm/ViewFlags.js.map +1 -1
- package/lib/esm/ViewProps.d.ts +205 -205
- package/lib/esm/ViewProps.js +8 -8
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.d.ts +36 -36
- package/lib/esm/WhiteOnWhiteReversalSettings.js +33 -33
- package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/esm/core-common.d.ts +242 -242
- package/lib/esm/core-common.js +246 -246
- package/lib/esm/core-common.js.map +1 -1
- package/lib/esm/domains/FunctionalElementProps.d.ts +11 -11
- package/lib/esm/domains/FunctionalElementProps.js +8 -8
- package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
- package/lib/esm/domains/GenericElementProps.d.ts +18 -18
- package/lib/esm/domains/GenericElementProps.js +8 -8
- package/lib/esm/domains/GenericElementProps.js.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.d.ts +84 -84
- package/lib/esm/geometry/AdditionalTransform.js +80 -80
- package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
- package/lib/esm/geometry/AreaPattern.d.ts +82 -82
- package/lib/esm/geometry/AreaPattern.js +201 -201
- package/lib/esm/geometry/AreaPattern.js.map +1 -1
- package/lib/esm/geometry/BoundingSphere.d.ts +14 -14
- package/lib/esm/geometry/BoundingSphere.js +26 -26
- package/lib/esm/geometry/BoundingSphere.js.map +1 -1
- package/lib/esm/geometry/Cartographic.d.ts +137 -137
- package/lib/esm/geometry/Cartographic.js +340 -340
- package/lib/esm/geometry/Cartographic.js.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.d.ts +269 -269
- package/lib/esm/geometry/CoordinateReferenceSystem.js +254 -254
- package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/esm/geometry/ElementGeometry.d.ts +402 -402
- package/lib/esm/geometry/ElementGeometry.js +1716 -1716
- package/lib/esm/geometry/ElementGeometry.js.map +1 -1
- package/lib/esm/geometry/ElementGeometryFB.d.ts +2372 -2372
- package/lib/esm/geometry/ElementGeometryFB.js +3811 -3811
- package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/esm/geometry/FrustumPlanes.d.ts +32 -32
- package/lib/esm/geometry/FrustumPlanes.js +128 -128
- package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.d.ts +409 -409
- package/lib/esm/geometry/GeodeticDatum.js +390 -390
- package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.d.ts +72 -72
- package/lib/esm/geometry/GeodeticEllipsoid.js +68 -68
- package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/esm/geometry/GeometryStream.d.ts +347 -347
- package/lib/esm/geometry/GeometryStream.js +464 -464
- package/lib/esm/geometry/GeometryStream.js.map +1 -1
- package/lib/esm/geometry/ImageGraphic.d.ts +74 -74
- package/lib/esm/geometry/ImageGraphic.js +93 -93
- package/lib/esm/geometry/ImageGraphic.js.map +1 -1
- package/lib/esm/geometry/LineStyle.d.ts +71 -71
- package/lib/esm/geometry/LineStyle.js +126 -126
- package/lib/esm/geometry/LineStyle.js.map +1 -1
- package/lib/esm/geometry/Placement.d.ts +95 -95
- package/lib/esm/geometry/Placement.js +126 -126
- package/lib/esm/geometry/Placement.js.map +1 -1
- package/lib/esm/geometry/Projection.d.ts +251 -251
- package/lib/esm/geometry/Projection.js +192 -192
- package/lib/esm/geometry/Projection.js.map +1 -1
- package/lib/esm/geometry/TextString.d.ts +55 -55
- package/lib/esm/geometry/TextString.js +61 -61
- package/lib/esm/geometry/TextString.js.map +1 -1
- package/lib/esm/ipc/IpcSession.d.ts +23 -23
- package/lib/esm/ipc/IpcSession.js +23 -23
- package/lib/esm/ipc/IpcSession.js.map +1 -1
- package/lib/esm/ipc/IpcSocket.d.ts +96 -96
- package/lib/esm/ipc/IpcSocket.js +12 -12
- package/lib/esm/ipc/IpcSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocket.d.ts +61 -61
- package/lib/esm/ipc/IpcWebSocket.js +145 -145
- package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocketTransport.d.ts +15 -15
- package/lib/esm/ipc/IpcWebSocketTransport.js +154 -154
- package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/esm/rpc/DevToolsRpcInterface.d.ts +32 -32
- package/lib/esm/rpc/DevToolsRpcInterface.js +44 -44
- package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.d.ts +97 -97
- package/lib/esm/rpc/IModelReadRpcInterface.js +114 -114
- package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.d.ts +61 -61
- package/lib/esm/rpc/IModelTileRpcInterface.js +92 -92
- package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/esm/rpc/SnapshotIModelRpcInterface.d.ts +23 -23
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js +44 -44
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/esm/rpc/TestRpcManager.d.ts +20 -20
- package/lib/esm/rpc/TestRpcManager.js +35 -35
- package/lib/esm/rpc/TestRpcManager.js.map +1 -1
- package/lib/esm/rpc/WipRpcInterface.d.ts +29 -29
- package/lib/esm/rpc/WipRpcInterface.js +36 -36
- package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
- package/lib/esm/rpc/core/RpcConfiguration.d.ts +111 -111
- package/lib/esm/rpc/core/RpcConfiguration.js +185 -185
- package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/esm/rpc/core/RpcConstants.d.ts +85 -85
- package/lib/esm/rpc/core/RpcConstants.js +100 -100
- package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
- package/lib/esm/rpc/core/RpcControl.d.ts +52 -52
- package/lib/esm/rpc/core/RpcControl.js +142 -142
- package/lib/esm/rpc/core/RpcControl.js.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.d.ts +89 -89
- package/lib/esm/rpc/core/RpcInvocation.js +253 -253
- package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.d.ts +36 -36
- package/lib/esm/rpc/core/RpcMarshaling.js +149 -149
- package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.d.ts +67 -67
- package/lib/esm/rpc/core/RpcOperation.js +128 -128
- package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
- package/lib/esm/rpc/core/RpcPendingQueue.d.ts +21 -21
- package/lib/esm/rpc/core/RpcPendingQueue.js +90 -90
- package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.d.ts +132 -132
- package/lib/esm/rpc/core/RpcProtocol.js +123 -123
- package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/esm/rpc/core/RpcPush.d.ts +68 -68
- package/lib/esm/rpc/core/RpcPush.js +119 -119
- package/lib/esm/rpc/core/RpcPush.js.map +1 -1
- package/lib/esm/rpc/core/RpcRegistry.d.ts +48 -48
- package/lib/esm/rpc/core/RpcRegistry.js +194 -194
- package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.d.ts +186 -186
- package/lib/esm/rpc/core/RpcRequest.js +472 -472
- package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequestContext.d.ts +14 -14
- package/lib/esm/rpc/core/RpcRequestContext.js +1 -1
- package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.d.ts +12 -12
- package/lib/esm/rpc/core/RpcRoutingToken.js +19 -19
- package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +10 -10
- package/lib/esm/rpc/core/RpcSessionInvocation.js +55 -55
- package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +46 -46
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js +68 -68
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.d.ts +33 -33
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +138 -138
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/OpenAPI.d.ts +139 -139
- package/lib/esm/rpc/web/OpenAPI.js +56 -56
- package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.d.ts +31 -31
- package/lib/esm/rpc/web/RpcMultipart.js +41 -41
- package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +17 -17
- package/lib/esm/rpc/web/WebAppRpcLogging.js +136 -136
- package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +86 -86
- package/lib/esm/rpc/web/WebAppRpcProtocol.js +112 -112
- package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +71 -71
- package/lib/esm/rpc/web/WebAppRpcRequest.js +370 -370
- package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +33 -33
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +355 -355
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/esm/tile/B3dmTileIO.d.ts +19 -19
- package/lib/esm/tile/B3dmTileIO.js +62 -62
- package/lib/esm/tile/B3dmTileIO.js.map +1 -1
- package/lib/esm/tile/CompositeTileIO.d.ts +15 -15
- package/lib/esm/tile/CompositeTileIO.js +22 -22
- package/lib/esm/tile/CompositeTileIO.js.map +1 -1
- package/lib/esm/tile/ElementGraphics.d.ts +145 -145
- package/lib/esm/tile/ElementGraphics.js +8 -8
- package/lib/esm/tile/ElementGraphics.js.map +1 -1
- package/lib/esm/tile/GltfTileIO.d.ts +45 -45
- package/lib/esm/tile/GltfTileIO.js +105 -105
- package/lib/esm/tile/GltfTileIO.js.map +1 -1
- package/lib/esm/tile/I3dmTileIO.d.ts +20 -20
- package/lib/esm/tile/I3dmTileIO.js +36 -36
- package/lib/esm/tile/I3dmTileIO.js.map +1 -1
- package/lib/esm/tile/IModelTileIO.d.ts +75 -75
- package/lib/esm/tile/IModelTileIO.js +90 -90
- package/lib/esm/tile/IModelTileIO.js.map +1 -1
- package/lib/esm/tile/PntsTileIO.d.ts +17 -17
- package/lib/esm/tile/PntsTileIO.js +22 -22
- package/lib/esm/tile/PntsTileIO.js.map +1 -1
- package/lib/esm/tile/TileIO.d.ts +66 -66
- package/lib/esm/tile/TileIO.js +110 -110
- package/lib/esm/tile/TileIO.js.map +1 -1
- package/lib/esm/tile/TileMetadata.d.ts +228 -228
- package/lib/esm/tile/TileMetadata.js +661 -661
- package/lib/esm/tile/TileMetadata.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,371 +1,371 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module RpcInterface
|
|
7
|
-
*/
|
|
8
|
-
import { BentleyStatus } from "@itwin/core-bentley";
|
|
9
|
-
import { Buffer } from "buffer";
|
|
10
|
-
import { IModelError, ServerError, ServerTimeoutError } from "../../IModelError";
|
|
11
|
-
import { RpcContentType, RpcProtocolEvent, RpcRequestStatus, RpcResponseCacheControl, WEB_RPC_CONSTANTS } from "../core/RpcConstants";
|
|
12
|
-
import { MarshalingBinaryMarker, RpcSerializedValue } from "../core/RpcMarshaling";
|
|
13
|
-
import { RpcProtocol } from "../core/RpcProtocol";
|
|
14
|
-
import { RpcRequest } from "../core/RpcRequest";
|
|
15
|
-
import { RpcMultipartParser } from "./multipart/RpcMultipartParser";
|
|
16
|
-
import { RpcMultipart } from "./RpcMultipart";
|
|
17
|
-
import { WebAppRpcProtocol } from "./WebAppRpcProtocol";
|
|
18
|
-
/** A web application RPC request.
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export class WebAppRpcRequest extends RpcRequest {
|
|
22
|
-
/** Constructs a web application request. */
|
|
23
|
-
constructor(client, operation, parameters) {
|
|
24
|
-
super(client, operation, parameters);
|
|
25
|
-
this._loading = false;
|
|
26
|
-
this._request = {};
|
|
27
|
-
this._pathSuffix = "";
|
|
28
|
-
/** Convenience access to the protocol of this request. */
|
|
29
|
-
this.protocol = this.client.configuration.protocol;
|
|
30
|
-
/** Standardized access to metadata about the request (useful for purposes such as logging). */
|
|
31
|
-
this.metadata = { status: 0, message: "" };
|
|
32
|
-
this.path = this.protocol.supplyPathForOperation(this.operation, this);
|
|
33
|
-
this.method = "head";
|
|
34
|
-
this._request.headers = {};
|
|
35
|
-
}
|
|
36
|
-
get _headers() { return this._request.headers; }
|
|
37
|
-
/** Parse headers */
|
|
38
|
-
static parseHeaders(protocol, req) {
|
|
39
|
-
var _a;
|
|
40
|
-
const headerNames = protocol.serializedClientRequestContextHeaderNames;
|
|
41
|
-
const parsedHeaders = {
|
|
42
|
-
id: req.header(headerNames.id) || "",
|
|
43
|
-
applicationId: req.header(headerNames.applicationId) || "",
|
|
44
|
-
applicationVersion: req.header(headerNames.applicationVersion) || "",
|
|
45
|
-
sessionId: req.header(headerNames.sessionId) || "",
|
|
46
|
-
authorization: (_a = (headerNames.authorization ? req.header(headerNames.authorization) : "")) !== null && _a !== void 0 ? _a : "",
|
|
47
|
-
};
|
|
48
|
-
return parsedHeaders;
|
|
49
|
-
}
|
|
50
|
-
/** Parses a request. */
|
|
51
|
-
static async parseRequest(protocol, req) {
|
|
52
|
-
const operation = protocol.getOperationFromPath(req.url);
|
|
53
|
-
const parsedHeaders = this.parseHeaders(protocol, req);
|
|
54
|
-
const request = {
|
|
55
|
-
...parsedHeaders,
|
|
56
|
-
operation: {
|
|
57
|
-
interfaceDefinition: operation.interfaceDefinition,
|
|
58
|
-
operationName: operation.operationName,
|
|
59
|
-
interfaceVersion: operation.interfaceVersion,
|
|
60
|
-
},
|
|
61
|
-
method: req.method,
|
|
62
|
-
path: req.url,
|
|
63
|
-
parameters: operation.encodedRequest ? WebAppRpcRequest.parseFromPath(operation) : await WebAppRpcRequest.parseFromBody(req),
|
|
64
|
-
caching: operation.encodedRequest ? RpcResponseCacheControl.Immutable : RpcResponseCacheControl.None,
|
|
65
|
-
};
|
|
66
|
-
request.ip = req.ip;
|
|
67
|
-
request.protocolVersion = 0;
|
|
68
|
-
if (protocol.protocolVersionHeaderName) {
|
|
69
|
-
const version = req.header(protocol.protocolVersionHeaderName);
|
|
70
|
-
if (version) {
|
|
71
|
-
request.protocolVersion = parseInt(version, 10);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (!request.id) {
|
|
75
|
-
throw new IModelError(BentleyStatus.ERROR, `Invalid request: Missing required activity ID.`);
|
|
76
|
-
}
|
|
77
|
-
return request;
|
|
78
|
-
}
|
|
79
|
-
/** Sends the response for a web request. */
|
|
80
|
-
static async sendResponse(protocol, request, fulfillment, req, res) {
|
|
81
|
-
var _a;
|
|
82
|
-
const versionHeader = protocol.protocolVersionHeaderName;
|
|
83
|
-
if (versionHeader && RpcProtocol.protocolVersion) {
|
|
84
|
-
res.set(versionHeader, RpcProtocol.protocolVersion.toString());
|
|
85
|
-
}
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
87
|
-
const { Readable, Stream } = await import(/* webpackIgnore: true */ "stream");
|
|
88
|
-
const { createGzip } = await import(/* webpackIgnore: true */ "zlib");
|
|
89
|
-
const transportType = WebAppRpcRequest.computeTransportType(fulfillment.result, fulfillment.rawResult);
|
|
90
|
-
let responseBody;
|
|
91
|
-
if (transportType === RpcContentType.Binary) {
|
|
92
|
-
responseBody = WebAppRpcRequest.configureBinary(fulfillment, res);
|
|
93
|
-
}
|
|
94
|
-
else if (transportType === RpcContentType.Multipart) {
|
|
95
|
-
responseBody = WebAppRpcRequest.configureMultipart(fulfillment, res);
|
|
96
|
-
}
|
|
97
|
-
else if (transportType === RpcContentType.Stream) {
|
|
98
|
-
responseBody = WebAppRpcRequest.configureStream(fulfillment);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
responseBody = WebAppRpcRequest.configureText(fulfillment, res);
|
|
102
|
-
}
|
|
103
|
-
WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
|
|
104
|
-
res.status(fulfillment.status);
|
|
105
|
-
if (fulfillment.allowCompression && ((_a = req.header("Accept-Encoding")) === null || _a === void 0 ? void 0 : _a.includes("gzip"))) {
|
|
106
|
-
res.set("Content-Encoding", "gzip");
|
|
107
|
-
const readableResponseBody = (responseBody instanceof Stream) ? responseBody : Readable.from(responseBody);
|
|
108
|
-
responseBody = readableResponseBody.pipe(createGzip());
|
|
109
|
-
}
|
|
110
|
-
// This check should in theory look for instances of Readable, but that would break backend implementation at
|
|
111
|
-
// core/backend/src/RpcBackend.ts
|
|
112
|
-
if (responseBody instanceof Stream) {
|
|
113
|
-
responseBody.pipe(res);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
res.send(responseBody);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
/** Determines the most efficient transport type for an RPC value. */
|
|
120
|
-
static computeTransportType(value, source) {
|
|
121
|
-
if (source instanceof Uint8Array || (Array.isArray(source) && source[0] instanceof Uint8Array)) {
|
|
122
|
-
return RpcContentType.Binary;
|
|
123
|
-
}
|
|
124
|
-
else if (value.data.length > 0) {
|
|
125
|
-
return RpcContentType.Multipart;
|
|
126
|
-
}
|
|
127
|
-
else if (value.stream) {
|
|
128
|
-
return RpcContentType.Stream;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
return RpcContentType.Text;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/** Sets request header values. */
|
|
135
|
-
setHeader(name, value) {
|
|
136
|
-
this._headers[name] = value;
|
|
137
|
-
}
|
|
138
|
-
/** Sends the request. */
|
|
139
|
-
async send() {
|
|
140
|
-
this._loading = true;
|
|
141
|
-
await this.setupTransport();
|
|
142
|
-
return new Promise(async (resolve, reject) => {
|
|
143
|
-
try {
|
|
144
|
-
resolve(await this.performFetch());
|
|
145
|
-
}
|
|
146
|
-
catch (reason) {
|
|
147
|
-
reject(new ServerError(-1, typeof (reason) === "string" ? reason : "Server connection error."));
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
computeRetryAfter(attempts) {
|
|
152
|
-
const retryAfter = this._response && this._response.headers.get("Retry-After");
|
|
153
|
-
if (retryAfter) {
|
|
154
|
-
this.resetTransientFaultCount();
|
|
155
|
-
const r = Number(retryAfter);
|
|
156
|
-
if (Number.isFinite(r)) {
|
|
157
|
-
return r * 1000;
|
|
158
|
-
}
|
|
159
|
-
const d = Date.parse(retryAfter);
|
|
160
|
-
if (!Number.isNaN(d)) {
|
|
161
|
-
return d - Date.now();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
this.recordTransientFault();
|
|
166
|
-
}
|
|
167
|
-
return super.computeRetryAfter(attempts);
|
|
168
|
-
}
|
|
169
|
-
handleUnknownResponse(code) {
|
|
170
|
-
if (this.protocol.isTimeout(code)) {
|
|
171
|
-
this.reject(new ServerTimeoutError("Request timeout."));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
this.reject(new ServerError(code, "Unknown server response code."));
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
async load() {
|
|
178
|
-
return new Promise(async (resolve, reject) => {
|
|
179
|
-
try {
|
|
180
|
-
if (!this._loading)
|
|
181
|
-
return;
|
|
182
|
-
const response = this._response;
|
|
183
|
-
if (!response) {
|
|
184
|
-
reject(new IModelError(BentleyStatus.ERROR, "Invalid state."));
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
if (this.protocol.protocolVersionHeaderName) {
|
|
188
|
-
const version = response.headers.get(this.protocol.protocolVersionHeaderName);
|
|
189
|
-
if (version) {
|
|
190
|
-
this.responseProtocolVersion = parseInt(version, 10);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
const contentType = response.headers.get(WEB_RPC_CONSTANTS.CONTENT);
|
|
194
|
-
const responseType = WebAppRpcProtocol.computeContentType(contentType);
|
|
195
|
-
if (responseType === RpcContentType.Binary) {
|
|
196
|
-
resolve(await this.loadBinary(response));
|
|
197
|
-
}
|
|
198
|
-
else if (responseType === RpcContentType.Multipart) {
|
|
199
|
-
resolve(await this.loadMultipart(response, contentType));
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
resolve(await this.loadText(response));
|
|
203
|
-
}
|
|
204
|
-
this._loading = false;
|
|
205
|
-
this.setLastUpdatedTime();
|
|
206
|
-
this.protocol.events.raiseEvent(RpcProtocolEvent.ResponseLoaded, this);
|
|
207
|
-
}
|
|
208
|
-
catch (reason) {
|
|
209
|
-
if (!this._loading)
|
|
210
|
-
return;
|
|
211
|
-
this._loading = false;
|
|
212
|
-
reject(new ServerError(this.metadata.status, typeof (reason) === "string" ? reason : "Unknown server response error."));
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
/** Override to supply an alternate fetch function. */
|
|
217
|
-
supplyFetch() {
|
|
218
|
-
return fetch;
|
|
219
|
-
}
|
|
220
|
-
/** Override to supply an alternate Request function. */
|
|
221
|
-
supplyRequest() {
|
|
222
|
-
return Request;
|
|
223
|
-
}
|
|
224
|
-
static configureResponse(protocol, request, fulfillment, res) {
|
|
225
|
-
const success = protocol.getStatus(fulfillment.status) === RpcRequestStatus.Resolved;
|
|
226
|
-
// TODO: Use stale-while-revalidate in cache headers. This needs to be tested, and does not currently have support in the router/caching-service.
|
|
227
|
-
// This will allow browsers to use stale cached responses while also revalidating with the router, allowing us to start up a backend if necessary.
|
|
228
|
-
// RPC Caching Service uses the s-maxage header to determine the TTL for the redis cache.
|
|
229
|
-
const oneHourInSeconds = 3600;
|
|
230
|
-
if (success && request.caching === RpcResponseCacheControl.Immutable) {
|
|
231
|
-
// If response size is > 50 MB, do not cache it.
|
|
232
|
-
if (fulfillment.result.objects.length > (50 * 10 ** 7)) {
|
|
233
|
-
res.set("Cache-Control", "no-store");
|
|
234
|
-
}
|
|
235
|
-
else if (request.operation.operationName === "generateTileContent") {
|
|
236
|
-
res.set("Cache-Control", "no-store");
|
|
237
|
-
}
|
|
238
|
-
else if (request.operation.operationName === "getConnectionProps") {
|
|
239
|
-
// GetConnectionprops can't be cached on the browser longer than the lifespan of the backend. The lifespan of backend may shrink too. Keep it at 1 second to be safe.
|
|
240
|
-
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 24}, max-age=1, immutable`);
|
|
241
|
-
}
|
|
242
|
-
else if (request.operation.operationName === "getTileCacheContainerUrl") {
|
|
243
|
-
// getTileCacheContainerUrl returns a SAS with an expiry of 23:59:59. We can't exceed that time when setting the max-age.
|
|
244
|
-
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 23}, max-age=${oneHourInSeconds * 23}, immutable`);
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 24}, max-age=${oneHourInSeconds * 48}, immutable`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
if (fulfillment.retry) {
|
|
251
|
-
res.set("Retry-After", fulfillment.retry);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
static configureText(fulfillment, res) {
|
|
255
|
-
res.set(WEB_RPC_CONSTANTS.CONTENT, WEB_RPC_CONSTANTS.TEXT);
|
|
256
|
-
return (fulfillment.status === 204) ? "" : fulfillment.result.objects;
|
|
257
|
-
}
|
|
258
|
-
static configureBinary(fulfillment, res) {
|
|
259
|
-
res.set(WEB_RPC_CONSTANTS.CONTENT, WEB_RPC_CONSTANTS.BINARY);
|
|
260
|
-
const data = fulfillment.result.data[0];
|
|
261
|
-
return Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
262
|
-
}
|
|
263
|
-
static configureMultipart(fulfillment, res) {
|
|
264
|
-
const response = RpcMultipart.createStream(fulfillment.result);
|
|
265
|
-
const headers = response.getHeaders();
|
|
266
|
-
for (const header in headers) {
|
|
267
|
-
if (headers.hasOwnProperty(header)) {
|
|
268
|
-
res.set(header, headers[header]);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
return response;
|
|
272
|
-
}
|
|
273
|
-
static configureStream(fulfillment) {
|
|
274
|
-
return fulfillment.result.stream;
|
|
275
|
-
}
|
|
276
|
-
static parseFromPath(operation) {
|
|
277
|
-
const decoded = operation.encodedRequest ? Buffer.from(operation.encodedRequest, "base64").toString("binary") : "";
|
|
278
|
-
return RpcSerializedValue.create(decoded);
|
|
279
|
-
}
|
|
280
|
-
static async parseFromBody(req) {
|
|
281
|
-
const contentType = WebAppRpcProtocol.computeContentType(req.header(WEB_RPC_CONSTANTS.CONTENT));
|
|
282
|
-
if (contentType === RpcContentType.Binary) {
|
|
283
|
-
const objects = JSON.stringify([MarshalingBinaryMarker.createDefault()]);
|
|
284
|
-
const data = [req.body];
|
|
285
|
-
return RpcSerializedValue.create(objects, data);
|
|
286
|
-
}
|
|
287
|
-
else if (contentType === RpcContentType.Multipart) {
|
|
288
|
-
return RpcMultipart.parseRequest(req);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
return RpcSerializedValue.create(req.body);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
async performFetch() {
|
|
295
|
-
const requestClass = this.supplyRequest();
|
|
296
|
-
const fetchFunction = this.supplyFetch();
|
|
297
|
-
const path = new URL(this.path, typeof (location) !== "undefined" ? location.origin : undefined);
|
|
298
|
-
if (this._pathSuffix) {
|
|
299
|
-
const params = new URLSearchParams();
|
|
300
|
-
params.set("parameters", this._pathSuffix);
|
|
301
|
-
path.search = `?${params.toString()}`;
|
|
302
|
-
}
|
|
303
|
-
const request = new requestClass(path.toString(), this._request);
|
|
304
|
-
const response = await fetchFunction(request);
|
|
305
|
-
this._response = response;
|
|
306
|
-
this.metadata.status = response.status;
|
|
307
|
-
return response.status;
|
|
308
|
-
}
|
|
309
|
-
async loadText(response) {
|
|
310
|
-
const value = await response.text();
|
|
311
|
-
this.metadata.message = value;
|
|
312
|
-
return RpcSerializedValue.create(value);
|
|
313
|
-
}
|
|
314
|
-
async loadBinary(response) {
|
|
315
|
-
const value = new Uint8Array(await response.arrayBuffer());
|
|
316
|
-
const objects = JSON.stringify(MarshalingBinaryMarker.createDefault());
|
|
317
|
-
return RpcSerializedValue.create(objects, [value]);
|
|
318
|
-
}
|
|
319
|
-
async loadMultipart(response, contentType) {
|
|
320
|
-
const data = await response.arrayBuffer();
|
|
321
|
-
const value = new RpcMultipartParser(contentType, Buffer.from(data)).parse();
|
|
322
|
-
return value;
|
|
323
|
-
}
|
|
324
|
-
async setupTransport() {
|
|
325
|
-
const parameters = (await this.protocol.serialize(this)).parameters;
|
|
326
|
-
const transportType = WebAppRpcRequest.computeTransportType(parameters, this.parameters);
|
|
327
|
-
if (transportType === RpcContentType.Binary) {
|
|
328
|
-
this.setupBinaryTransport(parameters);
|
|
329
|
-
}
|
|
330
|
-
else if (transportType === RpcContentType.Multipart) {
|
|
331
|
-
this.setupMultipartTransport(parameters);
|
|
332
|
-
}
|
|
333
|
-
else {
|
|
334
|
-
this.setupTextTransport(parameters);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
setupBinaryTransport(parameters) {
|
|
338
|
-
this._headers[WEB_RPC_CONSTANTS.CONTENT] = WEB_RPC_CONSTANTS.BINARY;
|
|
339
|
-
this._request.method = "post";
|
|
340
|
-
this._request.body = parameters.data[0];
|
|
341
|
-
}
|
|
342
|
-
setupMultipartTransport(parameters) {
|
|
343
|
-
// IMPORTANT: do not set a multipart Content-Type header value. The browser does this automatically!
|
|
344
|
-
delete this._headers[WEB_RPC_CONSTANTS.CONTENT];
|
|
345
|
-
this._request.method = "post";
|
|
346
|
-
this._request.body = RpcMultipart.createForm(parameters);
|
|
347
|
-
}
|
|
348
|
-
setupTextTransport(parameters) {
|
|
349
|
-
if (this.operation.policy.allowResponseCaching(this)) {
|
|
350
|
-
const encodedBody = btoa(parameters.objects); // eslint-disable-line deprecation/deprecation
|
|
351
|
-
if (encodedBody.length <= WebAppRpcRequest.maxUrlComponentSize) {
|
|
352
|
-
this._request.method = "get";
|
|
353
|
-
this._request.body = undefined;
|
|
354
|
-
delete this._headers[WEB_RPC_CONSTANTS.CONTENT];
|
|
355
|
-
this._pathSuffix = encodedBody;
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
this._pathSuffix = "";
|
|
360
|
-
this._headers[WEB_RPC_CONSTANTS.CONTENT] = WEB_RPC_CONSTANTS.TEXT;
|
|
361
|
-
this._request.method = "post";
|
|
362
|
-
this._request.body = parameters.objects;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
/** The maximum size permitted for an encoded component in a URL.
|
|
366
|
-
* Note that some backends limit the total cumulative request size. Our current node backends accept requests with a max size of 16 kb.
|
|
367
|
-
* In addition to the url size, an authorization header may also add considerably to the request size.
|
|
368
|
-
* @note This is used for features like encoding the payload of a cacheable request in the URL.
|
|
369
|
-
*/
|
|
370
|
-
WebAppRpcRequest.maxUrlComponentSize = 1024 * 8;
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module RpcInterface
|
|
7
|
+
*/
|
|
8
|
+
import { BentleyStatus } from "@itwin/core-bentley";
|
|
9
|
+
import { Buffer } from "buffer";
|
|
10
|
+
import { IModelError, ServerError, ServerTimeoutError } from "../../IModelError";
|
|
11
|
+
import { RpcContentType, RpcProtocolEvent, RpcRequestStatus, RpcResponseCacheControl, WEB_RPC_CONSTANTS } from "../core/RpcConstants";
|
|
12
|
+
import { MarshalingBinaryMarker, RpcSerializedValue } from "../core/RpcMarshaling";
|
|
13
|
+
import { RpcProtocol } from "../core/RpcProtocol";
|
|
14
|
+
import { RpcRequest } from "../core/RpcRequest";
|
|
15
|
+
import { RpcMultipartParser } from "./multipart/RpcMultipartParser";
|
|
16
|
+
import { RpcMultipart } from "./RpcMultipart";
|
|
17
|
+
import { WebAppRpcProtocol } from "./WebAppRpcProtocol";
|
|
18
|
+
/** A web application RPC request.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export class WebAppRpcRequest extends RpcRequest {
|
|
22
|
+
/** Constructs a web application request. */
|
|
23
|
+
constructor(client, operation, parameters) {
|
|
24
|
+
super(client, operation, parameters);
|
|
25
|
+
this._loading = false;
|
|
26
|
+
this._request = {};
|
|
27
|
+
this._pathSuffix = "";
|
|
28
|
+
/** Convenience access to the protocol of this request. */
|
|
29
|
+
this.protocol = this.client.configuration.protocol;
|
|
30
|
+
/** Standardized access to metadata about the request (useful for purposes such as logging). */
|
|
31
|
+
this.metadata = { status: 0, message: "" };
|
|
32
|
+
this.path = this.protocol.supplyPathForOperation(this.operation, this);
|
|
33
|
+
this.method = "head";
|
|
34
|
+
this._request.headers = {};
|
|
35
|
+
}
|
|
36
|
+
get _headers() { return this._request.headers; }
|
|
37
|
+
/** Parse headers */
|
|
38
|
+
static parseHeaders(protocol, req) {
|
|
39
|
+
var _a;
|
|
40
|
+
const headerNames = protocol.serializedClientRequestContextHeaderNames;
|
|
41
|
+
const parsedHeaders = {
|
|
42
|
+
id: req.header(headerNames.id) || "",
|
|
43
|
+
applicationId: req.header(headerNames.applicationId) || "",
|
|
44
|
+
applicationVersion: req.header(headerNames.applicationVersion) || "",
|
|
45
|
+
sessionId: req.header(headerNames.sessionId) || "",
|
|
46
|
+
authorization: (_a = (headerNames.authorization ? req.header(headerNames.authorization) : "")) !== null && _a !== void 0 ? _a : "",
|
|
47
|
+
};
|
|
48
|
+
return parsedHeaders;
|
|
49
|
+
}
|
|
50
|
+
/** Parses a request. */
|
|
51
|
+
static async parseRequest(protocol, req) {
|
|
52
|
+
const operation = protocol.getOperationFromPath(req.url);
|
|
53
|
+
const parsedHeaders = this.parseHeaders(protocol, req);
|
|
54
|
+
const request = {
|
|
55
|
+
...parsedHeaders,
|
|
56
|
+
operation: {
|
|
57
|
+
interfaceDefinition: operation.interfaceDefinition,
|
|
58
|
+
operationName: operation.operationName,
|
|
59
|
+
interfaceVersion: operation.interfaceVersion,
|
|
60
|
+
},
|
|
61
|
+
method: req.method,
|
|
62
|
+
path: req.url,
|
|
63
|
+
parameters: operation.encodedRequest ? WebAppRpcRequest.parseFromPath(operation) : await WebAppRpcRequest.parseFromBody(req),
|
|
64
|
+
caching: operation.encodedRequest ? RpcResponseCacheControl.Immutable : RpcResponseCacheControl.None,
|
|
65
|
+
};
|
|
66
|
+
request.ip = req.ip;
|
|
67
|
+
request.protocolVersion = 0;
|
|
68
|
+
if (protocol.protocolVersionHeaderName) {
|
|
69
|
+
const version = req.header(protocol.protocolVersionHeaderName);
|
|
70
|
+
if (version) {
|
|
71
|
+
request.protocolVersion = parseInt(version, 10);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!request.id) {
|
|
75
|
+
throw new IModelError(BentleyStatus.ERROR, `Invalid request: Missing required activity ID.`);
|
|
76
|
+
}
|
|
77
|
+
return request;
|
|
78
|
+
}
|
|
79
|
+
/** Sends the response for a web request. */
|
|
80
|
+
static async sendResponse(protocol, request, fulfillment, req, res) {
|
|
81
|
+
var _a;
|
|
82
|
+
const versionHeader = protocol.protocolVersionHeaderName;
|
|
83
|
+
if (versionHeader && RpcProtocol.protocolVersion) {
|
|
84
|
+
res.set(versionHeader, RpcProtocol.protocolVersion.toString());
|
|
85
|
+
}
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
87
|
+
const { Readable, Stream } = await import(/* webpackIgnore: true */ "stream");
|
|
88
|
+
const { createGzip } = await import(/* webpackIgnore: true */ "zlib");
|
|
89
|
+
const transportType = WebAppRpcRequest.computeTransportType(fulfillment.result, fulfillment.rawResult);
|
|
90
|
+
let responseBody;
|
|
91
|
+
if (transportType === RpcContentType.Binary) {
|
|
92
|
+
responseBody = WebAppRpcRequest.configureBinary(fulfillment, res);
|
|
93
|
+
}
|
|
94
|
+
else if (transportType === RpcContentType.Multipart) {
|
|
95
|
+
responseBody = WebAppRpcRequest.configureMultipart(fulfillment, res);
|
|
96
|
+
}
|
|
97
|
+
else if (transportType === RpcContentType.Stream) {
|
|
98
|
+
responseBody = WebAppRpcRequest.configureStream(fulfillment);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
responseBody = WebAppRpcRequest.configureText(fulfillment, res);
|
|
102
|
+
}
|
|
103
|
+
WebAppRpcRequest.configureResponse(protocol, request, fulfillment, res);
|
|
104
|
+
res.status(fulfillment.status);
|
|
105
|
+
if (fulfillment.allowCompression && ((_a = req.header("Accept-Encoding")) === null || _a === void 0 ? void 0 : _a.includes("gzip"))) {
|
|
106
|
+
res.set("Content-Encoding", "gzip");
|
|
107
|
+
const readableResponseBody = (responseBody instanceof Stream) ? responseBody : Readable.from(responseBody);
|
|
108
|
+
responseBody = readableResponseBody.pipe(createGzip());
|
|
109
|
+
}
|
|
110
|
+
// This check should in theory look for instances of Readable, but that would break backend implementation at
|
|
111
|
+
// core/backend/src/RpcBackend.ts
|
|
112
|
+
if (responseBody instanceof Stream) {
|
|
113
|
+
responseBody.pipe(res);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
res.send(responseBody);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Determines the most efficient transport type for an RPC value. */
|
|
120
|
+
static computeTransportType(value, source) {
|
|
121
|
+
if (source instanceof Uint8Array || (Array.isArray(source) && source[0] instanceof Uint8Array)) {
|
|
122
|
+
return RpcContentType.Binary;
|
|
123
|
+
}
|
|
124
|
+
else if (value.data.length > 0) {
|
|
125
|
+
return RpcContentType.Multipart;
|
|
126
|
+
}
|
|
127
|
+
else if (value.stream) {
|
|
128
|
+
return RpcContentType.Stream;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return RpcContentType.Text;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/** Sets request header values. */
|
|
135
|
+
setHeader(name, value) {
|
|
136
|
+
this._headers[name] = value;
|
|
137
|
+
}
|
|
138
|
+
/** Sends the request. */
|
|
139
|
+
async send() {
|
|
140
|
+
this._loading = true;
|
|
141
|
+
await this.setupTransport();
|
|
142
|
+
return new Promise(async (resolve, reject) => {
|
|
143
|
+
try {
|
|
144
|
+
resolve(await this.performFetch());
|
|
145
|
+
}
|
|
146
|
+
catch (reason) {
|
|
147
|
+
reject(new ServerError(-1, typeof (reason) === "string" ? reason : "Server connection error."));
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
computeRetryAfter(attempts) {
|
|
152
|
+
const retryAfter = this._response && this._response.headers.get("Retry-After");
|
|
153
|
+
if (retryAfter) {
|
|
154
|
+
this.resetTransientFaultCount();
|
|
155
|
+
const r = Number(retryAfter);
|
|
156
|
+
if (Number.isFinite(r)) {
|
|
157
|
+
return r * 1000;
|
|
158
|
+
}
|
|
159
|
+
const d = Date.parse(retryAfter);
|
|
160
|
+
if (!Number.isNaN(d)) {
|
|
161
|
+
return d - Date.now();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this.recordTransientFault();
|
|
166
|
+
}
|
|
167
|
+
return super.computeRetryAfter(attempts);
|
|
168
|
+
}
|
|
169
|
+
handleUnknownResponse(code) {
|
|
170
|
+
if (this.protocol.isTimeout(code)) {
|
|
171
|
+
this.reject(new ServerTimeoutError("Request timeout."));
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.reject(new ServerError(code, "Unknown server response code."));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async load() {
|
|
178
|
+
return new Promise(async (resolve, reject) => {
|
|
179
|
+
try {
|
|
180
|
+
if (!this._loading)
|
|
181
|
+
return;
|
|
182
|
+
const response = this._response;
|
|
183
|
+
if (!response) {
|
|
184
|
+
reject(new IModelError(BentleyStatus.ERROR, "Invalid state."));
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (this.protocol.protocolVersionHeaderName) {
|
|
188
|
+
const version = response.headers.get(this.protocol.protocolVersionHeaderName);
|
|
189
|
+
if (version) {
|
|
190
|
+
this.responseProtocolVersion = parseInt(version, 10);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const contentType = response.headers.get(WEB_RPC_CONSTANTS.CONTENT);
|
|
194
|
+
const responseType = WebAppRpcProtocol.computeContentType(contentType);
|
|
195
|
+
if (responseType === RpcContentType.Binary) {
|
|
196
|
+
resolve(await this.loadBinary(response));
|
|
197
|
+
}
|
|
198
|
+
else if (responseType === RpcContentType.Multipart) {
|
|
199
|
+
resolve(await this.loadMultipart(response, contentType));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
resolve(await this.loadText(response));
|
|
203
|
+
}
|
|
204
|
+
this._loading = false;
|
|
205
|
+
this.setLastUpdatedTime();
|
|
206
|
+
this.protocol.events.raiseEvent(RpcProtocolEvent.ResponseLoaded, this);
|
|
207
|
+
}
|
|
208
|
+
catch (reason) {
|
|
209
|
+
if (!this._loading)
|
|
210
|
+
return;
|
|
211
|
+
this._loading = false;
|
|
212
|
+
reject(new ServerError(this.metadata.status, typeof (reason) === "string" ? reason : "Unknown server response error."));
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/** Override to supply an alternate fetch function. */
|
|
217
|
+
supplyFetch() {
|
|
218
|
+
return fetch;
|
|
219
|
+
}
|
|
220
|
+
/** Override to supply an alternate Request function. */
|
|
221
|
+
supplyRequest() {
|
|
222
|
+
return Request;
|
|
223
|
+
}
|
|
224
|
+
static configureResponse(protocol, request, fulfillment, res) {
|
|
225
|
+
const success = protocol.getStatus(fulfillment.status) === RpcRequestStatus.Resolved;
|
|
226
|
+
// TODO: Use stale-while-revalidate in cache headers. This needs to be tested, and does not currently have support in the router/caching-service.
|
|
227
|
+
// This will allow browsers to use stale cached responses while also revalidating with the router, allowing us to start up a backend if necessary.
|
|
228
|
+
// RPC Caching Service uses the s-maxage header to determine the TTL for the redis cache.
|
|
229
|
+
const oneHourInSeconds = 3600;
|
|
230
|
+
if (success && request.caching === RpcResponseCacheControl.Immutable) {
|
|
231
|
+
// If response size is > 50 MB, do not cache it.
|
|
232
|
+
if (fulfillment.result.objects.length > (50 * 10 ** 7)) {
|
|
233
|
+
res.set("Cache-Control", "no-store");
|
|
234
|
+
}
|
|
235
|
+
else if (request.operation.operationName === "generateTileContent") {
|
|
236
|
+
res.set("Cache-Control", "no-store");
|
|
237
|
+
}
|
|
238
|
+
else if (request.operation.operationName === "getConnectionProps") {
|
|
239
|
+
// GetConnectionprops can't be cached on the browser longer than the lifespan of the backend. The lifespan of backend may shrink too. Keep it at 1 second to be safe.
|
|
240
|
+
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 24}, max-age=1, immutable`);
|
|
241
|
+
}
|
|
242
|
+
else if (request.operation.operationName === "getTileCacheContainerUrl") {
|
|
243
|
+
// getTileCacheContainerUrl returns a SAS with an expiry of 23:59:59. We can't exceed that time when setting the max-age.
|
|
244
|
+
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 23}, max-age=${oneHourInSeconds * 23}, immutable`);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
res.set("Cache-Control", `s-maxage=${oneHourInSeconds * 24}, max-age=${oneHourInSeconds * 48}, immutable`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (fulfillment.retry) {
|
|
251
|
+
res.set("Retry-After", fulfillment.retry);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
static configureText(fulfillment, res) {
|
|
255
|
+
res.set(WEB_RPC_CONSTANTS.CONTENT, WEB_RPC_CONSTANTS.TEXT);
|
|
256
|
+
return (fulfillment.status === 204) ? "" : fulfillment.result.objects;
|
|
257
|
+
}
|
|
258
|
+
static configureBinary(fulfillment, res) {
|
|
259
|
+
res.set(WEB_RPC_CONSTANTS.CONTENT, WEB_RPC_CONSTANTS.BINARY);
|
|
260
|
+
const data = fulfillment.result.data[0];
|
|
261
|
+
return Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
262
|
+
}
|
|
263
|
+
static configureMultipart(fulfillment, res) {
|
|
264
|
+
const response = RpcMultipart.createStream(fulfillment.result);
|
|
265
|
+
const headers = response.getHeaders();
|
|
266
|
+
for (const header in headers) {
|
|
267
|
+
if (headers.hasOwnProperty(header)) {
|
|
268
|
+
res.set(header, headers[header]);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return response;
|
|
272
|
+
}
|
|
273
|
+
static configureStream(fulfillment) {
|
|
274
|
+
return fulfillment.result.stream;
|
|
275
|
+
}
|
|
276
|
+
static parseFromPath(operation) {
|
|
277
|
+
const decoded = operation.encodedRequest ? Buffer.from(operation.encodedRequest, "base64").toString("binary") : "";
|
|
278
|
+
return RpcSerializedValue.create(decoded);
|
|
279
|
+
}
|
|
280
|
+
static async parseFromBody(req) {
|
|
281
|
+
const contentType = WebAppRpcProtocol.computeContentType(req.header(WEB_RPC_CONSTANTS.CONTENT));
|
|
282
|
+
if (contentType === RpcContentType.Binary) {
|
|
283
|
+
const objects = JSON.stringify([MarshalingBinaryMarker.createDefault()]);
|
|
284
|
+
const data = [req.body];
|
|
285
|
+
return RpcSerializedValue.create(objects, data);
|
|
286
|
+
}
|
|
287
|
+
else if (contentType === RpcContentType.Multipart) {
|
|
288
|
+
return RpcMultipart.parseRequest(req);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
return RpcSerializedValue.create(req.body);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
async performFetch() {
|
|
295
|
+
const requestClass = this.supplyRequest();
|
|
296
|
+
const fetchFunction = this.supplyFetch();
|
|
297
|
+
const path = new URL(this.path, typeof (location) !== "undefined" ? location.origin : undefined);
|
|
298
|
+
if (this._pathSuffix) {
|
|
299
|
+
const params = new URLSearchParams();
|
|
300
|
+
params.set("parameters", this._pathSuffix);
|
|
301
|
+
path.search = `?${params.toString()}`;
|
|
302
|
+
}
|
|
303
|
+
const request = new requestClass(path.toString(), this._request);
|
|
304
|
+
const response = await fetchFunction(request);
|
|
305
|
+
this._response = response;
|
|
306
|
+
this.metadata.status = response.status;
|
|
307
|
+
return response.status;
|
|
308
|
+
}
|
|
309
|
+
async loadText(response) {
|
|
310
|
+
const value = await response.text();
|
|
311
|
+
this.metadata.message = value;
|
|
312
|
+
return RpcSerializedValue.create(value);
|
|
313
|
+
}
|
|
314
|
+
async loadBinary(response) {
|
|
315
|
+
const value = new Uint8Array(await response.arrayBuffer());
|
|
316
|
+
const objects = JSON.stringify(MarshalingBinaryMarker.createDefault());
|
|
317
|
+
return RpcSerializedValue.create(objects, [value]);
|
|
318
|
+
}
|
|
319
|
+
async loadMultipart(response, contentType) {
|
|
320
|
+
const data = await response.arrayBuffer();
|
|
321
|
+
const value = new RpcMultipartParser(contentType, Buffer.from(data)).parse();
|
|
322
|
+
return value;
|
|
323
|
+
}
|
|
324
|
+
async setupTransport() {
|
|
325
|
+
const parameters = (await this.protocol.serialize(this)).parameters;
|
|
326
|
+
const transportType = WebAppRpcRequest.computeTransportType(parameters, this.parameters);
|
|
327
|
+
if (transportType === RpcContentType.Binary) {
|
|
328
|
+
this.setupBinaryTransport(parameters);
|
|
329
|
+
}
|
|
330
|
+
else if (transportType === RpcContentType.Multipart) {
|
|
331
|
+
this.setupMultipartTransport(parameters);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
this.setupTextTransport(parameters);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
setupBinaryTransport(parameters) {
|
|
338
|
+
this._headers[WEB_RPC_CONSTANTS.CONTENT] = WEB_RPC_CONSTANTS.BINARY;
|
|
339
|
+
this._request.method = "post";
|
|
340
|
+
this._request.body = parameters.data[0];
|
|
341
|
+
}
|
|
342
|
+
setupMultipartTransport(parameters) {
|
|
343
|
+
// IMPORTANT: do not set a multipart Content-Type header value. The browser does this automatically!
|
|
344
|
+
delete this._headers[WEB_RPC_CONSTANTS.CONTENT];
|
|
345
|
+
this._request.method = "post";
|
|
346
|
+
this._request.body = RpcMultipart.createForm(parameters);
|
|
347
|
+
}
|
|
348
|
+
setupTextTransport(parameters) {
|
|
349
|
+
if (this.operation.policy.allowResponseCaching(this)) {
|
|
350
|
+
const encodedBody = btoa(parameters.objects); // eslint-disable-line deprecation/deprecation
|
|
351
|
+
if (encodedBody.length <= WebAppRpcRequest.maxUrlComponentSize) {
|
|
352
|
+
this._request.method = "get";
|
|
353
|
+
this._request.body = undefined;
|
|
354
|
+
delete this._headers[WEB_RPC_CONSTANTS.CONTENT];
|
|
355
|
+
this._pathSuffix = encodedBody;
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
this._pathSuffix = "";
|
|
360
|
+
this._headers[WEB_RPC_CONSTANTS.CONTENT] = WEB_RPC_CONSTANTS.TEXT;
|
|
361
|
+
this._request.method = "post";
|
|
362
|
+
this._request.body = parameters.objects;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
/** The maximum size permitted for an encoded component in a URL.
|
|
366
|
+
* Note that some backends limit the total cumulative request size. Our current node backends accept requests with a max size of 16 kb.
|
|
367
|
+
* In addition to the url size, an authorization header may also add considerably to the request size.
|
|
368
|
+
* @note This is used for features like encoding the payload of a cacheable request in the URL.
|
|
369
|
+
*/
|
|
370
|
+
WebAppRpcRequest.maxUrlComponentSize = 1024 * 8;
|
|
371
371
|
//# sourceMappingURL=WebAppRpcRequest.js.map
|