@itwin/core-common 4.0.0-dev.59 → 4.0.0-dev.60
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.js.map +1 -1
- package/lib/cjs/AnalysisStyle.js.map +1 -1
- package/lib/cjs/AuthorizationClient.js.map +1 -1
- package/lib/cjs/BackendTypes.js.map +1 -1
- package/lib/cjs/BackgroundMapProvider.js.map +1 -1
- package/lib/cjs/BackgroundMapSettings.js.map +1 -1
- package/lib/cjs/Base64EncodedString.js.map +1 -1
- package/lib/cjs/BlobReader.js.map +1 -1
- package/lib/cjs/BriefcaseTypes.js.map +1 -1
- package/lib/cjs/Camera.js.map +1 -1
- package/lib/cjs/ChangedElements.js.map +1 -1
- package/lib/cjs/ChangedEntities.js.map +1 -1
- package/lib/cjs/ChangesetProps.js.map +1 -1
- package/lib/cjs/ClipStyle.js.map +1 -1
- package/lib/cjs/Code.js.map +1 -1
- package/lib/cjs/ColorByName.js.map +1 -1
- package/lib/cjs/ColorDef.js.map +1 -1
- package/lib/cjs/CommonLoggerCategory.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/ContextRealityModel.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/ECSchemaProps.js.map +1 -1
- package/lib/cjs/ECSqlReader.js.map +1 -1
- package/lib/cjs/ECSqlTypes.js.map +1 -1
- package/lib/cjs/ElementMesh.js.map +1 -1
- package/lib/cjs/ElementProps.js.map +1 -1
- package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
- package/lib/cjs/EntityProps.js.map +1 -1
- package/lib/cjs/EntityReference.js.map +1 -1
- package/lib/cjs/Environment.js.map +1 -1
- package/lib/cjs/FeatureIndex.js.map +1 -1
- package/lib/cjs/FeatureSymbology.js.map +1 -1
- package/lib/cjs/FeatureTable.js.map +1 -1
- package/lib/cjs/Fonts.js.map +1 -1
- package/lib/cjs/Frustum.js.map +1 -1
- package/lib/cjs/GeoCoordinateServices.js.map +1 -1
- package/lib/cjs/GeometryContainment.js.map +1 -1
- package/lib/cjs/GeometryParams.js.map +1 -1
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/Gradient.js.map +1 -1
- package/lib/cjs/GraphicParams.js.map +1 -1
- package/lib/cjs/GroundPlane.js.map +1 -1
- package/lib/cjs/HSLColor.js.map +1 -1
- package/lib/cjs/HSVColor.js.map +1 -1
- package/lib/cjs/HiddenLine.js.map +1 -1
- package/lib/cjs/Hilite.js.map +1 -1
- package/lib/cjs/IModel.js.map +1 -1
- package/lib/cjs/IModelError.js.map +1 -1
- package/lib/cjs/IModelVersion.js.map +1 -1
- package/lib/cjs/Image.js.map +1 -1
- package/lib/cjs/IpcAppProps.js.map +1 -1
- package/lib/cjs/LightSettings.js.map +1 -1
- package/lib/cjs/LinePixels.js.map +1 -1
- package/lib/cjs/Localization.js.map +1 -1
- package/lib/cjs/MapImagerySettings.js.map +1 -1
- package/lib/cjs/MapLayerSettings.js.map +1 -1
- package/lib/cjs/MassProperties.js.map +1 -1
- package/lib/cjs/MaterialProps.js.map +1 -1
- package/lib/cjs/ModelClipGroup.js.map +1 -1
- package/lib/cjs/ModelGeometryChanges.js.map +1 -1
- package/lib/cjs/ModelProps.js.map +1 -1
- package/lib/cjs/NativeAppProps.js.map +1 -1
- package/lib/cjs/OctEncodedNormal.js.map +1 -1
- package/lib/cjs/PlanProjectionSettings.js.map +1 -1
- package/lib/cjs/PlanarClipMask.js.map +1 -1
- package/lib/cjs/QPoint.js.map +1 -1
- package/lib/cjs/RealityDataAccessProps.js.map +1 -1
- package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
- package/lib/cjs/Render.js.map +1 -1
- package/lib/cjs/RenderMaterial.js.map +1 -1
- package/lib/cjs/RenderTexture.js.map +1 -1
- package/lib/cjs/RgbColor.js.map +1 -1
- package/lib/cjs/RpcInterface.d.ts +9 -2
- package/lib/cjs/RpcInterface.d.ts.map +1 -1
- package/lib/cjs/RpcInterface.js.map +1 -1
- package/lib/cjs/RpcManager.d.ts +2 -2
- package/lib/cjs/RpcManager.js +1 -1
- package/lib/cjs/RpcManager.js.map +1 -1
- package/lib/cjs/SessionProps.js.map +1 -1
- package/lib/cjs/SkyBox.js.map +1 -1
- package/lib/cjs/Snapping.js.map +1 -1
- package/lib/cjs/SolarCalculate.js.map +1 -1
- package/lib/cjs/SolarShadows.js.map +1 -1
- package/lib/cjs/SpatialClassification.js.map +1 -1
- package/lib/cjs/SubCategoryAppearance.js.map +1 -1
- package/lib/cjs/SubCategoryOverride.js.map +1 -1
- package/lib/cjs/TerrainSettings.js.map +1 -1
- package/lib/cjs/TextureMapping.js.map +1 -1
- package/lib/cjs/TextureProps.js.map +1 -1
- package/lib/cjs/ThematicDisplay.js.map +1 -1
- package/lib/cjs/Thumbnail.js.map +1 -1
- package/lib/cjs/TileProps.d.ts +6 -0
- package/lib/cjs/TileProps.d.ts.map +1 -1
- package/lib/cjs/TileProps.js.map +1 -1
- package/lib/cjs/Tween.js.map +1 -1
- package/lib/cjs/TxnAction.js.map +1 -1
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewFlags.js.map +1 -1
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/cjs/core-common.d.ts +8 -10
- package/lib/cjs/core-common.d.ts.map +1 -1
- package/lib/cjs/core-common.js +8 -10
- package/lib/cjs/core-common.js.map +1 -1
- package/lib/cjs/domains/FunctionalElementProps.js.map +1 -1
- package/lib/cjs/domains/GenericElementProps.js.map +1 -1
- package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
- package/lib/cjs/geometry/AreaPattern.js.map +1 -1
- package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
- package/lib/cjs/geometry/Cartographic.js.map +1 -1
- package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
- package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
- package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
- package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/cjs/geometry/GeometryStream.js.map +1 -1
- package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
- package/lib/cjs/geometry/LineStyle.js.map +1 -1
- package/lib/cjs/geometry/Placement.js.map +1 -1
- package/lib/cjs/geometry/Projection.js.map +1 -1
- package/lib/cjs/geometry/TextString.js.map +1 -1
- package/lib/cjs/ipc/IpcSession.js.map +1 -1
- package/lib/cjs/ipc/IpcSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
- package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.d.ts +3 -15
- package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
- package/lib/cjs/rpc/IModelTileRpcInterface.js +2 -20
- package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
- package/lib/cjs/rpc/WipRpcInterface.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConfiguration.d.ts +3 -3
- package/lib/cjs/rpc/core/RpcConfiguration.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcConfiguration.js +3 -3
- package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/cjs/rpc/core/RpcConstants.js.map +1 -1
- package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
- package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRequestContext.js.map +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.d.ts +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.d.ts.map +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.js +1 -1
- package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts +10 -8
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.d.ts.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +7 -4
- package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
- package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
- package/lib/cjs/tile/ElementGraphics.js.map +1 -1
- package/lib/cjs/tile/GltfTileIO.js.map +1 -1
- package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
- package/lib/cjs/tile/IModelTileIO.js.map +1 -1
- package/lib/cjs/tile/PntsTileIO.js.map +1 -1
- package/lib/cjs/tile/TileIO.js.map +1 -1
- package/lib/cjs/tile/TileMetadata.js.map +1 -1
- package/lib/cjs/tile/Tileset3dSchema.js.map +1 -1
- package/lib/esm/AmbientOcclusion.js.map +1 -1
- package/lib/esm/AnalysisStyle.js.map +1 -1
- package/lib/esm/AuthorizationClient.js.map +1 -1
- package/lib/esm/BackendTypes.js.map +1 -1
- package/lib/esm/BackgroundMapProvider.js.map +1 -1
- package/lib/esm/BackgroundMapSettings.js.map +1 -1
- package/lib/esm/Base64EncodedString.js.map +1 -1
- package/lib/esm/BlobReader.js.map +1 -1
- package/lib/esm/BriefcaseTypes.js.map +1 -1
- package/lib/esm/Camera.js.map +1 -1
- package/lib/esm/ChangedElements.js.map +1 -1
- package/lib/esm/ChangedEntities.js.map +1 -1
- package/lib/esm/ChangesetProps.js.map +1 -1
- package/lib/esm/ClipStyle.js.map +1 -1
- package/lib/esm/Code.js.map +1 -1
- package/lib/esm/ColorByName.js.map +1 -1
- package/lib/esm/ColorDef.js.map +1 -1
- package/lib/esm/CommonLoggerCategory.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/ContextRealityModel.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/ECSchemaProps.js.map +1 -1
- package/lib/esm/ECSqlReader.js.map +1 -1
- package/lib/esm/ECSqlTypes.js.map +1 -1
- package/lib/esm/ElementMesh.js.map +1 -1
- package/lib/esm/ElementProps.js.map +1 -1
- package/lib/esm/EmphasizeElementsProps.js.map +1 -1
- package/lib/esm/EntityProps.js.map +1 -1
- package/lib/esm/EntityReference.js.map +1 -1
- package/lib/esm/Environment.js.map +1 -1
- package/lib/esm/FeatureIndex.js.map +1 -1
- package/lib/esm/FeatureSymbology.js.map +1 -1
- package/lib/esm/FeatureTable.js.map +1 -1
- package/lib/esm/Fonts.js.map +1 -1
- package/lib/esm/Frustum.js.map +1 -1
- package/lib/esm/GeoCoordinateServices.js.map +1 -1
- package/lib/esm/GeometryContainment.js.map +1 -1
- package/lib/esm/GeometryParams.js.map +1 -1
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/Gradient.js.map +1 -1
- package/lib/esm/GraphicParams.js.map +1 -1
- package/lib/esm/GroundPlane.js.map +1 -1
- package/lib/esm/HSLColor.js.map +1 -1
- package/lib/esm/HSVColor.js.map +1 -1
- package/lib/esm/HiddenLine.js.map +1 -1
- package/lib/esm/Hilite.js.map +1 -1
- package/lib/esm/IModel.js.map +1 -1
- package/lib/esm/IModelError.js.map +1 -1
- package/lib/esm/IModelVersion.js.map +1 -1
- package/lib/esm/Image.js.map +1 -1
- package/lib/esm/IpcAppProps.js.map +1 -1
- package/lib/esm/LightSettings.js.map +1 -1
- package/lib/esm/LinePixels.js.map +1 -1
- package/lib/esm/Localization.js.map +1 -1
- package/lib/esm/MapImagerySettings.js.map +1 -1
- package/lib/esm/MapLayerSettings.js.map +1 -1
- package/lib/esm/MassProperties.js.map +1 -1
- package/lib/esm/MaterialProps.js.map +1 -1
- package/lib/esm/ModelClipGroup.js.map +1 -1
- package/lib/esm/ModelGeometryChanges.js.map +1 -1
- package/lib/esm/ModelProps.js.map +1 -1
- package/lib/esm/NativeAppProps.js.map +1 -1
- package/lib/esm/OctEncodedNormal.js.map +1 -1
- package/lib/esm/PlanProjectionSettings.js.map +1 -1
- package/lib/esm/PlanarClipMask.js.map +1 -1
- package/lib/esm/QPoint.js.map +1 -1
- package/lib/esm/RealityDataAccessProps.js.map +1 -1
- package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
- package/lib/esm/Render.js.map +1 -1
- package/lib/esm/RenderMaterial.js.map +1 -1
- package/lib/esm/RenderTexture.js.map +1 -1
- package/lib/esm/RgbColor.js.map +1 -1
- package/lib/esm/RpcInterface.d.ts +9 -2
- package/lib/esm/RpcInterface.d.ts.map +1 -1
- package/lib/esm/RpcInterface.js.map +1 -1
- package/lib/esm/RpcManager.d.ts +2 -2
- package/lib/esm/RpcManager.js +1 -1
- package/lib/esm/RpcManager.js.map +1 -1
- package/lib/esm/SessionProps.js.map +1 -1
- package/lib/esm/SkyBox.js.map +1 -1
- package/lib/esm/Snapping.js.map +1 -1
- package/lib/esm/SolarCalculate.js.map +1 -1
- package/lib/esm/SolarShadows.js.map +1 -1
- package/lib/esm/SpatialClassification.js.map +1 -1
- package/lib/esm/SubCategoryAppearance.js.map +1 -1
- package/lib/esm/SubCategoryOverride.js.map +1 -1
- package/lib/esm/TerrainSettings.js.map +1 -1
- package/lib/esm/TextureMapping.js.map +1 -1
- package/lib/esm/TextureProps.js.map +1 -1
- package/lib/esm/ThematicDisplay.js.map +1 -1
- package/lib/esm/Thumbnail.js.map +1 -1
- package/lib/esm/TileProps.d.ts +6 -0
- package/lib/esm/TileProps.d.ts.map +1 -1
- package/lib/esm/TileProps.js.map +1 -1
- package/lib/esm/Tween.js.map +1 -1
- package/lib/esm/TxnAction.js.map +1 -1
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewFlags.js.map +1 -1
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
- package/lib/esm/core-common.d.ts +8 -10
- package/lib/esm/core-common.d.ts.map +1 -1
- package/lib/esm/core-common.js +8 -10
- package/lib/esm/core-common.js.map +1 -1
- package/lib/esm/domains/FunctionalElementProps.js.map +1 -1
- package/lib/esm/domains/GenericElementProps.js.map +1 -1
- package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
- package/lib/esm/geometry/AreaPattern.js.map +1 -1
- package/lib/esm/geometry/BoundingSphere.js.map +1 -1
- package/lib/esm/geometry/Cartographic.js.map +1 -1
- package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
- package/lib/esm/geometry/ElementGeometry.js.map +1 -1
- package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
- package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
- package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
- package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
- package/lib/esm/geometry/GeometryStream.js.map +1 -1
- package/lib/esm/geometry/ImageGraphic.js.map +1 -1
- package/lib/esm/geometry/LineStyle.js.map +1 -1
- package/lib/esm/geometry/Placement.js.map +1 -1
- package/lib/esm/geometry/Projection.js.map +1 -1
- package/lib/esm/geometry/TextString.js.map +1 -1
- package/lib/esm/ipc/IpcSession.js.map +1 -1
- package/lib/esm/ipc/IpcSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
- package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
- package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.d.ts +3 -15
- package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
- package/lib/esm/rpc/IModelTileRpcInterface.js +2 -20
- package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
- package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
- package/lib/esm/rpc/TestRpcManager.js.map +1 -1
- package/lib/esm/rpc/WipRpcInterface.js.map +1 -1
- package/lib/esm/rpc/core/RpcConfiguration.d.ts +3 -3
- package/lib/esm/rpc/core/RpcConfiguration.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcConfiguration.js +3 -3
- package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
- package/lib/esm/rpc/core/RpcConstants.js.map +1 -1
- package/lib/esm/rpc/core/RpcControl.js.map +1 -1
- package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
- package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
- package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
- package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
- package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
- package/lib/esm/rpc/core/RpcPush.js.map +1 -1
- package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
- package/lib/esm/rpc/core/RpcRequestContext.js.map +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.d.ts +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.d.ts.map +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.js +1 -1
- package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
- package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts +10 -8
- package/lib/esm/rpc/web/BentleyCloudRpcManager.d.ts.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js +7 -4
- package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
- package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
- package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
- package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
- package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
- package/lib/esm/tile/B3dmTileIO.js.map +1 -1
- package/lib/esm/tile/CompositeTileIO.js.map +1 -1
- package/lib/esm/tile/ElementGraphics.js.map +1 -1
- package/lib/esm/tile/GltfTileIO.js.map +1 -1
- package/lib/esm/tile/I3dmTileIO.js.map +1 -1
- package/lib/esm/tile/IModelTileIO.js.map +1 -1
- package/lib/esm/tile/PntsTileIO.js.map +1 -1
- package/lib/esm/tile/TileIO.js.map +1 -1
- package/lib/esm/tile/TileMetadata.js.map +1 -1
- package/lib/esm/tile/Tileset3dSchema.js.map +1 -1
- package/package.json +6 -6
- package/lib/cjs/CloudStorage.d.ts +0 -63
- package/lib/cjs/CloudStorage.d.ts.map +0 -1
- package/lib/cjs/CloudStorage.js +0 -114
- package/lib/cjs/CloudStorage.js.map +0 -1
- package/lib/cjs/CloudStorageTileCache.d.ts +0 -28
- package/lib/cjs/CloudStorageTileCache.d.ts.map +0 -1
- package/lib/cjs/CloudStorageTileCache.js +0 -66
- package/lib/cjs/CloudStorageTileCache.js.map +0 -1
- package/lib/esm/CloudStorage.d.ts +0 -63
- package/lib/esm/CloudStorage.d.ts.map +0 -1
- package/lib/esm/CloudStorage.js +0 -110
- package/lib/esm/CloudStorage.js.map +0 -1
- package/lib/esm/CloudStorageTileCache.d.ts +0 -28
- package/lib/esm/CloudStorageTileCache.d.ts.map +0 -1
- package/lib/esm/CloudStorageTileCache.js +0 -62
- package/lib/esm/CloudStorageTileCache.js.map +0 -1
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module CloudStorage
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.CloudStorageTileCache = void 0;
|
|
11
|
-
/* eslint-disable deprecation/deprecation */
|
|
12
|
-
const CloudStorage_1 = require("./CloudStorage");
|
|
13
|
-
const IModelTileRpcInterface_1 = require("./rpc/IModelTileRpcInterface");
|
|
14
|
-
/**
|
|
15
|
-
* @beta
|
|
16
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
17
|
-
*/
|
|
18
|
-
class CloudStorageTileCache extends CloudStorage_1.CloudStorageCache {
|
|
19
|
-
static getCache() {
|
|
20
|
-
if (!CloudStorageTileCache._instance) {
|
|
21
|
-
CloudStorageTileCache._instance = new CloudStorageTileCache();
|
|
22
|
-
}
|
|
23
|
-
return CloudStorageTileCache._instance;
|
|
24
|
-
}
|
|
25
|
-
supplyExpiryForContainerUrl(_id) {
|
|
26
|
-
const expiry = new Date();
|
|
27
|
-
const today = new Date().getDay();
|
|
28
|
-
const rolloverDay = 6; // saturday
|
|
29
|
-
expiry.setHours((rolloverDay - today) * 24);
|
|
30
|
-
expiry.setHours(23);
|
|
31
|
-
expiry.setMinutes(59);
|
|
32
|
-
expiry.setSeconds(59);
|
|
33
|
-
expiry.setMilliseconds(999);
|
|
34
|
-
return expiry;
|
|
35
|
-
}
|
|
36
|
-
constructor() {
|
|
37
|
-
super();
|
|
38
|
-
}
|
|
39
|
-
async obtainContainerUrl(id, descriptor) {
|
|
40
|
-
const client = IModelTileRpcInterface_1.IModelTileRpcInterface.getClient();
|
|
41
|
-
return client.getTileCacheContainerUrl(id.tokenProps, descriptor);
|
|
42
|
-
}
|
|
43
|
-
async instantiateResource(response) {
|
|
44
|
-
const data = await response.arrayBuffer();
|
|
45
|
-
if (!data.byteLength) {
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
return new Uint8Array(data);
|
|
49
|
-
}
|
|
50
|
-
formContainerName(id) {
|
|
51
|
-
return `${id.tokenProps.iModelId}`;
|
|
52
|
-
}
|
|
53
|
-
formResourceName(id) {
|
|
54
|
-
const changesetId = id.tokenProps.changeset?.id || "first";
|
|
55
|
-
const version = id.guid ? id.guid : changesetId; // NB: id.guid can be null (backend) OR undefined (frontend) here...
|
|
56
|
-
return `tiles/${id.treeId}/${version}/${id.contentId}`;
|
|
57
|
-
}
|
|
58
|
-
formContainerKey(id) {
|
|
59
|
-
if (this.provider === CloudStorage_1.CloudStorageProvider.AliCloud) {
|
|
60
|
-
return this.formContainerName(id) + this.formResourceName(id);
|
|
61
|
-
}
|
|
62
|
-
return super.formContainerKey(id);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.CloudStorageTileCache = CloudStorageTileCache;
|
|
66
|
-
//# sourceMappingURL=CloudStorageTileCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CloudStorageTileCache.js","sourceRoot":"","sources":["../../src/CloudStorageTileCache.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4CAA4C;AAE5C,iDAAoI;AAEpI,yEAAsE;AAUtE;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,gCAAoD;IAGtF,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE;YACpC,qBAAqB,CAAC,SAAS,GAAG,IAAI,qBAAqB,EAAE,CAAC;SAC/D;QAED,OAAO,qBAAqB,CAAC,SAAS,CAAC;IACzC,CAAC;IAEM,2BAA2B,CAAC,GAAoC;QACrE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,WAAW;QAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,EAAyB,EAAE,UAA2C;QACvG,MAAM,MAAM,GAAG,+CAAsB,CAAC,SAAS,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,iBAAiB,CAAC,EAAyB;QAChD,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAEM,gBAAgB,CAAC,EAAyB;QAC/C,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,OAAO,CAAC;QAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,oEAAoE;QACrH,OAAO,SAAS,EAAE,CAAC,MAAM,IAAI,OAAO,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IACzD,CAAC;IAEkB,gBAAgB,CAAC,EAAyB;QAC3D,IAAI,IAAI,CAAC,QAAQ,KAAK,mCAAoB,CAAC,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SAC/D;QAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;CACF;AA7DD,sDA6DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module CloudStorage\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { CloudStorageCache, CloudStorageContainerDescriptor, CloudStorageContainerUrl, CloudStorageProvider } from \"./CloudStorage\";\r\nimport { IModelRpcProps } from \"./IModel\";\r\nimport { IModelTileRpcInterface } from \"./rpc/IModelTileRpcInterface\";\r\n\r\n/** @beta */\r\nexport interface TileContentIdentifier {\r\n tokenProps: IModelRpcProps;\r\n treeId: string;\r\n contentId: string;\r\n guid: string | undefined;\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport class CloudStorageTileCache extends CloudStorageCache<TileContentIdentifier, Uint8Array> {\r\n private static _instance: CloudStorageTileCache;\r\n\r\n public static getCache(): CloudStorageTileCache {\r\n if (!CloudStorageTileCache._instance) {\r\n CloudStorageTileCache._instance = new CloudStorageTileCache();\r\n }\r\n\r\n return CloudStorageTileCache._instance;\r\n }\r\n\r\n public supplyExpiryForContainerUrl(_id: CloudStorageContainerDescriptor): Date {\r\n const expiry = new Date();\r\n\r\n const today = new Date().getDay();\r\n const rolloverDay = 6; // saturday\r\n expiry.setHours((rolloverDay - today) * 24);\r\n\r\n expiry.setHours(23);\r\n expiry.setMinutes(59);\r\n expiry.setSeconds(59);\r\n expiry.setMilliseconds(999);\r\n\r\n return expiry;\r\n }\r\n\r\n protected constructor() {\r\n super();\r\n }\r\n\r\n protected async obtainContainerUrl(id: TileContentIdentifier, descriptor: CloudStorageContainerDescriptor): Promise<CloudStorageContainerUrl> {\r\n const client = IModelTileRpcInterface.getClient();\r\n return client.getTileCacheContainerUrl(id.tokenProps, descriptor);\r\n }\r\n\r\n protected async instantiateResource(response: Response): Promise<Uint8Array | undefined> {\r\n const data = await response.arrayBuffer();\r\n if (!data.byteLength) {\r\n return undefined;\r\n }\r\n\r\n return new Uint8Array(data);\r\n }\r\n\r\n public formContainerName(id: TileContentIdentifier): string {\r\n return `${id.tokenProps.iModelId}`;\r\n }\r\n\r\n public formResourceName(id: TileContentIdentifier): string {\r\n const changesetId = id.tokenProps.changeset?.id || \"first\";\r\n const version = id.guid ? id.guid : changesetId; // NB: id.guid can be null (backend) OR undefined (frontend) here...\r\n return `tiles/${id.treeId}/${version}/${id.contentId}`;\r\n }\r\n\r\n protected override formContainerKey(id: TileContentIdentifier): string {\r\n if (this.provider === CloudStorageProvider.AliCloud) {\r\n return this.formContainerName(id) + this.formResourceName(id);\r\n }\r\n\r\n return super.formContainerKey(id);\r\n }\r\n}\r\n"]}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module CloudStorage
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* @beta
|
|
6
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
7
|
-
*/
|
|
8
|
-
export declare enum CloudStorageProvider {
|
|
9
|
-
Azure = 0,
|
|
10
|
-
Amazon = 1,
|
|
11
|
-
AliCloud = 2,
|
|
12
|
-
External = 3,
|
|
13
|
-
Unknown = 4
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @beta
|
|
17
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
18
|
-
*/
|
|
19
|
-
export interface CloudStorageContainerDescriptor {
|
|
20
|
-
provider?: CloudStorageProvider;
|
|
21
|
-
name: string;
|
|
22
|
-
resource?: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @beta
|
|
26
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
27
|
-
*/
|
|
28
|
-
export interface CloudStorageContainerUrl {
|
|
29
|
-
descriptor: CloudStorageContainerDescriptor;
|
|
30
|
-
valid: number;
|
|
31
|
-
expires: number;
|
|
32
|
-
url: string;
|
|
33
|
-
method?: string;
|
|
34
|
-
headers?: Record<string, string>;
|
|
35
|
-
bound?: boolean;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @beta
|
|
39
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
40
|
-
*/
|
|
41
|
-
export declare namespace CloudStorageContainerUrl {
|
|
42
|
-
function empty(): CloudStorageContainerUrl;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* @beta
|
|
46
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
47
|
-
*/
|
|
48
|
-
export declare abstract class CloudStorageCache<TContentId, TContentType> {
|
|
49
|
-
private _containers;
|
|
50
|
-
provider: CloudStorageProvider;
|
|
51
|
-
abstract formContainerName(id: TContentId): string;
|
|
52
|
-
abstract formResourceName(id: TContentId): string;
|
|
53
|
-
protected formContainerKey(id: TContentId): string;
|
|
54
|
-
protected abstract obtainContainerUrl(id: TContentId, descriptor: CloudStorageContainerDescriptor): Promise<CloudStorageContainerUrl>;
|
|
55
|
-
protected abstract instantiateResource(response: Response): Promise<TContentType | undefined>;
|
|
56
|
-
protected supplyUrlBase(_container: CloudStorageContainerUrl, _id: TContentId): string | undefined;
|
|
57
|
-
constructor();
|
|
58
|
-
retrieve(id: TContentId): Promise<TContentType | undefined>;
|
|
59
|
-
protected requestResource(container: CloudStorageContainerUrl, id: TContentId): Promise<Response>;
|
|
60
|
-
private _pendingContainerRequests;
|
|
61
|
-
protected getContainer(id: TContentId): Promise<CloudStorageContainerUrl>;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=CloudStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CloudStorage.d.ts","sourceRoot":"","sources":["../../src/CloudStorage.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,KAAK,IAAA;IACL,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,OAAO,IAAA;CACR;AAED;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,+BAA+B,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,yBAAiB,wBAAwB,CAAC;IACxC,SAAgB,KAAK,IAAI,wBAAwB,CAOhD;CACF;AAED;;;GAGG;AACH,8BAAsB,iBAAiB,CAAC,UAAU,EAAE,YAAY;IAC9D,OAAO,CAAC,WAAW,CAAwC;IAEpD,QAAQ,EAAE,oBAAoB,CAAgC;aACrD,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;aACzC,gBAAgB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IACxD,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAClD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IACrI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAC7F,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,wBAAwB,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;;IAMrF,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAkBxD,eAAe,CAAC,SAAS,EAAE,wBAAwB,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBvG,OAAO,CAAC,yBAAyB,CAA6D;cAE9E,YAAY,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAmChF"}
|
package/lib/esm/CloudStorage.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
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 CloudStorage
|
|
7
|
-
*/
|
|
8
|
-
import { UnexpectedErrors } from "@itwin/core-bentley";
|
|
9
|
-
/* eslint-disable deprecation/deprecation */
|
|
10
|
-
/**
|
|
11
|
-
* @beta
|
|
12
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
13
|
-
*/
|
|
14
|
-
export var CloudStorageProvider;
|
|
15
|
-
(function (CloudStorageProvider) {
|
|
16
|
-
CloudStorageProvider[CloudStorageProvider["Azure"] = 0] = "Azure";
|
|
17
|
-
CloudStorageProvider[CloudStorageProvider["Amazon"] = 1] = "Amazon";
|
|
18
|
-
CloudStorageProvider[CloudStorageProvider["AliCloud"] = 2] = "AliCloud";
|
|
19
|
-
CloudStorageProvider[CloudStorageProvider["External"] = 3] = "External";
|
|
20
|
-
CloudStorageProvider[CloudStorageProvider["Unknown"] = 4] = "Unknown";
|
|
21
|
-
})(CloudStorageProvider || (CloudStorageProvider = {}));
|
|
22
|
-
/**
|
|
23
|
-
* @beta
|
|
24
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
25
|
-
*/
|
|
26
|
-
export var CloudStorageContainerUrl;
|
|
27
|
-
(function (CloudStorageContainerUrl) {
|
|
28
|
-
function empty() {
|
|
29
|
-
return {
|
|
30
|
-
descriptor: { name: "" },
|
|
31
|
-
valid: 0,
|
|
32
|
-
expires: 0,
|
|
33
|
-
url: "",
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
CloudStorageContainerUrl.empty = empty;
|
|
37
|
-
})(CloudStorageContainerUrl || (CloudStorageContainerUrl = {}));
|
|
38
|
-
/**
|
|
39
|
-
* @beta
|
|
40
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
41
|
-
*/
|
|
42
|
-
export class CloudStorageCache {
|
|
43
|
-
formContainerKey(id) { return this.formContainerName(id); }
|
|
44
|
-
supplyUrlBase(_container, _id) { return undefined; }
|
|
45
|
-
constructor() {
|
|
46
|
-
this.provider = CloudStorageProvider.Unknown;
|
|
47
|
-
this._pendingContainerRequests = new Map();
|
|
48
|
-
this._containers = new Map();
|
|
49
|
-
}
|
|
50
|
-
async retrieve(id) {
|
|
51
|
-
try {
|
|
52
|
-
const container = await this.getContainer(id);
|
|
53
|
-
if (!container.url)
|
|
54
|
-
return undefined;
|
|
55
|
-
const response = await this.requestResource(container, id);
|
|
56
|
-
if (response.ok) {
|
|
57
|
-
const content = await this.instantiateResource(response);
|
|
58
|
-
return content;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
UnexpectedErrors.handle(err);
|
|
63
|
-
}
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
async requestResource(container, id) {
|
|
67
|
-
const base = this.supplyUrlBase(container, id);
|
|
68
|
-
const url = (undefined === base || "" === base) ? new URL(container.url) : new URL(container.url, base);
|
|
69
|
-
if (!container.bound) {
|
|
70
|
-
url.pathname += `/${this.formResourceName(id)}`;
|
|
71
|
-
}
|
|
72
|
-
const init = {
|
|
73
|
-
headers: container.headers,
|
|
74
|
-
method: "GET",
|
|
75
|
-
};
|
|
76
|
-
return fetch(url.toString(), init);
|
|
77
|
-
}
|
|
78
|
-
async getContainer(id) {
|
|
79
|
-
const now = new Date().getTime();
|
|
80
|
-
const name = this.formContainerName(id);
|
|
81
|
-
const resource = this.formResourceName(id);
|
|
82
|
-
const key = this.formContainerKey(id);
|
|
83
|
-
let container = this._containers.get(key);
|
|
84
|
-
if (container && container.url && (container.valid > now || container.expires < now)) {
|
|
85
|
-
container = undefined;
|
|
86
|
-
this._containers.delete(key);
|
|
87
|
-
}
|
|
88
|
-
if (!container) {
|
|
89
|
-
let request = this._pendingContainerRequests.get(key);
|
|
90
|
-
if (!request) {
|
|
91
|
-
request = new Promise(async (resolve, reject) => {
|
|
92
|
-
try {
|
|
93
|
-
container = await this.obtainContainerUrl(id, { name, resource });
|
|
94
|
-
this._containers.set(key, container);
|
|
95
|
-
this._pendingContainerRequests.delete(key);
|
|
96
|
-
resolve(container);
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
this._pendingContainerRequests.delete(key);
|
|
100
|
-
reject(err);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
this._pendingContainerRequests.set(key, request);
|
|
104
|
-
}
|
|
105
|
-
return request;
|
|
106
|
-
}
|
|
107
|
-
return container;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=CloudStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CloudStorage.js","sourceRoot":"","sources":["../../src/CloudStorage.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module CloudStorage\r\n */\r\n\r\nimport { UnexpectedErrors } from \"@itwin/core-bentley\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport enum CloudStorageProvider {\r\n Azure,\r\n Amazon,\r\n AliCloud,\r\n External,\r\n Unknown,\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport interface CloudStorageContainerDescriptor {\r\n provider?: CloudStorageProvider;\r\n name: string;\r\n resource?: string;\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport interface CloudStorageContainerUrl {\r\n descriptor: CloudStorageContainerDescriptor;\r\n valid: number;\r\n expires: number;\r\n url: string;\r\n method?: string;\r\n headers?: Record<string, string>;\r\n bound?: boolean;\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport namespace CloudStorageContainerUrl {\r\n export function empty(): CloudStorageContainerUrl {\r\n return {\r\n descriptor: { name: \"\" },\r\n valid: 0,\r\n expires: 0,\r\n url: \"\",\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport abstract class CloudStorageCache<TContentId, TContentType> {\r\n private _containers: Map<string, CloudStorageContainerUrl>;\r\n\r\n public provider: CloudStorageProvider = CloudStorageProvider.Unknown;\r\n public abstract formContainerName(id: TContentId): string;\r\n public abstract formResourceName(id: TContentId): string;\r\n protected formContainerKey(id: TContentId): string { return this.formContainerName(id); }\r\n protected abstract obtainContainerUrl(id: TContentId, descriptor: CloudStorageContainerDescriptor): Promise<CloudStorageContainerUrl>;\r\n protected abstract instantiateResource(response: Response): Promise<TContentType | undefined>;\r\n protected supplyUrlBase(_container: CloudStorageContainerUrl, _id: TContentId): string | undefined { return undefined; }\r\n\r\n public constructor() {\r\n this._containers = new Map();\r\n }\r\n\r\n public async retrieve(id: TContentId): Promise<TContentType | undefined> {\r\n try {\r\n const container = await this.getContainer(id);\r\n if (!container.url)\r\n return undefined;\r\n\r\n const response = await this.requestResource(container, id);\r\n if (response.ok) {\r\n const content = await this.instantiateResource(response);\r\n return content;\r\n }\r\n } catch (err) {\r\n UnexpectedErrors.handle(err);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected async requestResource(container: CloudStorageContainerUrl, id: TContentId): Promise<Response> {\r\n const base = this.supplyUrlBase(container, id);\r\n const url = (undefined === base || \"\" === base) ? new URL(container.url) : new URL(container.url, base);\r\n\r\n if (!container.bound) {\r\n url.pathname += `/${this.formResourceName(id)}`;\r\n }\r\n\r\n const init: RequestInit = {\r\n headers: container.headers,\r\n method: \"GET\",\r\n };\r\n\r\n return fetch(url.toString(), init);\r\n }\r\n\r\n private _pendingContainerRequests: Map<string, Promise<CloudStorageContainerUrl>> = new Map();\r\n\r\n protected async getContainer(id: TContentId): Promise<CloudStorageContainerUrl> {\r\n const now = new Date().getTime();\r\n const name = this.formContainerName(id);\r\n const resource = this.formResourceName(id);\r\n const key = this.formContainerKey(id);\r\n\r\n let container = this._containers.get(key);\r\n if (container && container.url && (container.valid > now || container.expires < now)) {\r\n container = undefined;\r\n this._containers.delete(key);\r\n }\r\n\r\n if (!container) {\r\n let request = this._pendingContainerRequests.get(key);\r\n if (!request) {\r\n request = new Promise(async (resolve, reject) => {\r\n try {\r\n container = await this.obtainContainerUrl(id, { name, resource });\r\n this._containers.set(key, container);\r\n this._pendingContainerRequests.delete(key);\r\n resolve(container);\r\n } catch (err) {\r\n this._pendingContainerRequests.delete(key);\r\n reject(err);\r\n }\r\n });\r\n\r\n this._pendingContainerRequests.set(key, request);\r\n }\r\n\r\n return request;\r\n }\r\n\r\n return container;\r\n }\r\n}\r\n"]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module CloudStorage
|
|
3
|
-
*/
|
|
4
|
-
import { CloudStorageCache, CloudStorageContainerDescriptor, CloudStorageContainerUrl } from "./CloudStorage";
|
|
5
|
-
import { IModelRpcProps } from "./IModel";
|
|
6
|
-
/** @beta */
|
|
7
|
-
export interface TileContentIdentifier {
|
|
8
|
-
tokenProps: IModelRpcProps;
|
|
9
|
-
treeId: string;
|
|
10
|
-
contentId: string;
|
|
11
|
-
guid: string | undefined;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* @beta
|
|
15
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
16
|
-
*/
|
|
17
|
-
export declare class CloudStorageTileCache extends CloudStorageCache<TileContentIdentifier, Uint8Array> {
|
|
18
|
-
private static _instance;
|
|
19
|
-
static getCache(): CloudStorageTileCache;
|
|
20
|
-
supplyExpiryForContainerUrl(_id: CloudStorageContainerDescriptor): Date;
|
|
21
|
-
protected constructor();
|
|
22
|
-
protected obtainContainerUrl(id: TileContentIdentifier, descriptor: CloudStorageContainerDescriptor): Promise<CloudStorageContainerUrl>;
|
|
23
|
-
protected instantiateResource(response: Response): Promise<Uint8Array | undefined>;
|
|
24
|
-
formContainerName(id: TileContentIdentifier): string;
|
|
25
|
-
formResourceName(id: TileContentIdentifier): string;
|
|
26
|
-
protected formContainerKey(id: TileContentIdentifier): string;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=CloudStorageTileCache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CloudStorageTileCache.d.ts","sourceRoot":"","sources":["../../src/CloudStorageTileCache.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,wBAAwB,EAAwB,MAAM,gBAAgB,CAAC;AACpI,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,YAAY;AACZ,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC7F,OAAO,CAAC,MAAM,CAAC,SAAS,CAAwB;WAElC,QAAQ,IAAI,qBAAqB;IAQxC,2BAA2B,CAAC,GAAG,EAAE,+BAA+B,GAAG,IAAI;IAe9E,SAAS;cAIO,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,EAAE,UAAU,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;cAK7H,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IASjF,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM;IAIpD,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM;cAMvC,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM;CAOvE"}
|
|
@@ -1,62 +0,0 @@
|
|
|
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 CloudStorage
|
|
7
|
-
*/
|
|
8
|
-
/* eslint-disable deprecation/deprecation */
|
|
9
|
-
import { CloudStorageCache, CloudStorageProvider } from "./CloudStorage";
|
|
10
|
-
import { IModelTileRpcInterface } from "./rpc/IModelTileRpcInterface";
|
|
11
|
-
/**
|
|
12
|
-
* @beta
|
|
13
|
-
* @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.
|
|
14
|
-
*/
|
|
15
|
-
export class CloudStorageTileCache extends CloudStorageCache {
|
|
16
|
-
static getCache() {
|
|
17
|
-
if (!CloudStorageTileCache._instance) {
|
|
18
|
-
CloudStorageTileCache._instance = new CloudStorageTileCache();
|
|
19
|
-
}
|
|
20
|
-
return CloudStorageTileCache._instance;
|
|
21
|
-
}
|
|
22
|
-
supplyExpiryForContainerUrl(_id) {
|
|
23
|
-
const expiry = new Date();
|
|
24
|
-
const today = new Date().getDay();
|
|
25
|
-
const rolloverDay = 6; // saturday
|
|
26
|
-
expiry.setHours((rolloverDay - today) * 24);
|
|
27
|
-
expiry.setHours(23);
|
|
28
|
-
expiry.setMinutes(59);
|
|
29
|
-
expiry.setSeconds(59);
|
|
30
|
-
expiry.setMilliseconds(999);
|
|
31
|
-
return expiry;
|
|
32
|
-
}
|
|
33
|
-
constructor() {
|
|
34
|
-
super();
|
|
35
|
-
}
|
|
36
|
-
async obtainContainerUrl(id, descriptor) {
|
|
37
|
-
const client = IModelTileRpcInterface.getClient();
|
|
38
|
-
return client.getTileCacheContainerUrl(id.tokenProps, descriptor);
|
|
39
|
-
}
|
|
40
|
-
async instantiateResource(response) {
|
|
41
|
-
const data = await response.arrayBuffer();
|
|
42
|
-
if (!data.byteLength) {
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
return new Uint8Array(data);
|
|
46
|
-
}
|
|
47
|
-
formContainerName(id) {
|
|
48
|
-
return `${id.tokenProps.iModelId}`;
|
|
49
|
-
}
|
|
50
|
-
formResourceName(id) {
|
|
51
|
-
const changesetId = id.tokenProps.changeset?.id || "first";
|
|
52
|
-
const version = id.guid ? id.guid : changesetId; // NB: id.guid can be null (backend) OR undefined (frontend) here...
|
|
53
|
-
return `tiles/${id.treeId}/${version}/${id.contentId}`;
|
|
54
|
-
}
|
|
55
|
-
formContainerKey(id) {
|
|
56
|
-
if (this.provider === CloudStorageProvider.AliCloud) {
|
|
57
|
-
return this.formContainerName(id) + this.formResourceName(id);
|
|
58
|
-
}
|
|
59
|
-
return super.formContainerKey(id);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=CloudStorageTileCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CloudStorageTileCache.js","sourceRoot":"","sources":["../../src/CloudStorageTileCache.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,4CAA4C;AAE5C,OAAO,EAAE,iBAAiB,EAA6D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEpI,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAUtE;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,iBAAoD;IAGtF,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE;YACpC,qBAAqB,CAAC,SAAS,GAAG,IAAI,qBAAqB,EAAE,CAAC;SAC/D;QAED,OAAO,qBAAqB,CAAC,SAAS,CAAC;IACzC,CAAC;IAEM,2BAA2B,CAAC,GAAoC;QACrE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,WAAW;QAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5C,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,EAAyB,EAAE,UAA2C;QACvG,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,iBAAiB,CAAC,EAAyB;QAChD,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAEM,gBAAgB,CAAC,EAAyB;QAC/C,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,OAAO,CAAC;QAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,oEAAoE;QACrH,OAAO,SAAS,EAAE,CAAC,MAAM,IAAI,OAAO,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IACzD,CAAC;IAEkB,gBAAgB,CAAC,EAAyB;QAC3D,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,CAAC,QAAQ,EAAE;YACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SAC/D;QAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module CloudStorage\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { CloudStorageCache, CloudStorageContainerDescriptor, CloudStorageContainerUrl, CloudStorageProvider } from \"./CloudStorage\";\r\nimport { IModelRpcProps } from \"./IModel\";\r\nimport { IModelTileRpcInterface } from \"./rpc/IModelTileRpcInterface\";\r\n\r\n/** @beta */\r\nexport interface TileContentIdentifier {\r\n tokenProps: IModelRpcProps;\r\n treeId: string;\r\n contentId: string;\r\n guid: string | undefined;\r\n}\r\n\r\n/**\r\n * @beta\r\n * @deprecated in 3.x. Use [TileStorage]($frontend) (frontend) and [TileStorage]($backend) (backend) instead.\r\n */\r\nexport class CloudStorageTileCache extends CloudStorageCache<TileContentIdentifier, Uint8Array> {\r\n private static _instance: CloudStorageTileCache;\r\n\r\n public static getCache(): CloudStorageTileCache {\r\n if (!CloudStorageTileCache._instance) {\r\n CloudStorageTileCache._instance = new CloudStorageTileCache();\r\n }\r\n\r\n return CloudStorageTileCache._instance;\r\n }\r\n\r\n public supplyExpiryForContainerUrl(_id: CloudStorageContainerDescriptor): Date {\r\n const expiry = new Date();\r\n\r\n const today = new Date().getDay();\r\n const rolloverDay = 6; // saturday\r\n expiry.setHours((rolloverDay - today) * 24);\r\n\r\n expiry.setHours(23);\r\n expiry.setMinutes(59);\r\n expiry.setSeconds(59);\r\n expiry.setMilliseconds(999);\r\n\r\n return expiry;\r\n }\r\n\r\n protected constructor() {\r\n super();\r\n }\r\n\r\n protected async obtainContainerUrl(id: TileContentIdentifier, descriptor: CloudStorageContainerDescriptor): Promise<CloudStorageContainerUrl> {\r\n const client = IModelTileRpcInterface.getClient();\r\n return client.getTileCacheContainerUrl(id.tokenProps, descriptor);\r\n }\r\n\r\n protected async instantiateResource(response: Response): Promise<Uint8Array | undefined> {\r\n const data = await response.arrayBuffer();\r\n if (!data.byteLength) {\r\n return undefined;\r\n }\r\n\r\n return new Uint8Array(data);\r\n }\r\n\r\n public formContainerName(id: TileContentIdentifier): string {\r\n return `${id.tokenProps.iModelId}`;\r\n }\r\n\r\n public formResourceName(id: TileContentIdentifier): string {\r\n const changesetId = id.tokenProps.changeset?.id || \"first\";\r\n const version = id.guid ? id.guid : changesetId; // NB: id.guid can be null (backend) OR undefined (frontend) here...\r\n return `tiles/${id.treeId}/${version}/${id.contentId}`;\r\n }\r\n\r\n protected override formContainerKey(id: TileContentIdentifier): string {\r\n if (this.provider === CloudStorageProvider.AliCloud) {\r\n return this.formContainerName(id) + this.formResourceName(id);\r\n }\r\n\r\n return super.formContainerKey(id);\r\n }\r\n}\r\n"]}
|