@itwin/core-frontend 3.3.0-dev.9 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -1
- package/lib/cjs/DisplayStyleState.d.ts +80 -31
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +150 -89
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.js +1 -1
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
- package/lib/cjs/EmphasizeElements.js +5 -0
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.d.ts +5 -5
- package/lib/cjs/EntityState.d.ts.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +5 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +16 -12
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +43 -3
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +29 -3
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +10 -0
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/RealityDataSource.d.ts.map +1 -1
- package/lib/cjs/RealityDataSource.js +6 -2
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +30 -4
- package/lib/cjs/SelectionSet.d.ts.map +1 -1
- package/lib/cjs/SelectionSet.js +26 -2
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.js +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +3 -0
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +34 -0
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.js +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +2 -3
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +7 -3
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +10 -10
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +19 -14
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +0 -2
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +0 -2
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.d.ts +5 -2
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +24 -6
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +0 -2
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js +9 -22
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js +2 -2
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +15 -9
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +38 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +5 -0
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.d.ts +11 -0
- package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/EdgeParams.js +36 -29
- package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.d.ts +11 -4
- package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/cjs/render/primitives/VertexTable.js +13 -6
- package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
- package/lib/cjs/render/primitives/VertexTableSplitter.d.ts +41 -0
- package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -0
- package/lib/cjs/render/primitives/VertexTableSplitter.js +662 -0
- package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -0
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +3 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +4 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +56 -26
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +0 -2
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +2 -1
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +1 -0
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts +2 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +15 -3
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -2
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render-primitives.d.ts +1 -0
- package/lib/cjs/render-primitives.d.ts.map +1 -1
- package/lib/cjs/render-primitives.js +1 -0
- package/lib/cjs/render-primitives.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +8 -8
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -0
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +3 -1
- package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileTree.js +1 -0
- package/lib/cjs/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +9 -4
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +174 -60
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +8 -7
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +30 -25
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +1 -0
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +21 -2
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +32 -12
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +1 -0
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +1 -0
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +2 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +2 -0
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +23 -9
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +14 -9
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +14 -6
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +25 -2
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js +4 -4
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/Tool.d.ts +7 -7
- package/lib/cjs/tools/Tool.js +7 -7
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +25 -10
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +80 -31
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +150 -89
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.js +1 -1
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/EmphasizeElements.d.ts.map +1 -1
- package/lib/esm/EmphasizeElements.js +5 -0
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.d.ts +5 -5
- package/lib/esm/EntityState.d.ts.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +5 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +16 -12
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +43 -3
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +29 -3
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +11 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/RealityDataSource.d.ts.map +1 -1
- package/lib/esm/RealityDataSource.js +6 -2
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +30 -4
- package/lib/esm/SelectionSet.d.ts.map +1 -1
- package/lib/esm/SelectionSet.js +26 -2
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.js +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +3 -0
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +34 -0
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.js +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/ViewState.d.ts +2 -3
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +7 -3
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +10 -10
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +19 -14
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +0 -2
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +0 -2
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.d.ts +5 -2
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +24 -6
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +0 -2
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js +9 -22
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.js +2 -2
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +15 -9
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +36 -0
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +5 -0
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.d.ts +11 -0
- package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/EdgeParams.js +34 -28
- package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
- package/lib/esm/render/primitives/VertexTable.d.ts +11 -4
- package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
- package/lib/esm/render/primitives/VertexTable.js +14 -7
- package/lib/esm/render/primitives/VertexTable.js.map +1 -1
- package/lib/esm/render/primitives/VertexTableSplitter.d.ts +41 -0
- package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -0
- package/lib/esm/render/primitives/VertexTableSplitter.js +655 -0
- package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -0
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +3 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +1 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +4 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +56 -26
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +0 -2
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +2 -1
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +1 -0
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts +2 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +15 -3
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -2
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render-primitives.d.ts +1 -0
- package/lib/esm/render-primitives.d.ts.map +1 -1
- package/lib/esm/render-primitives.js +1 -0
- package/lib/esm/render-primitives.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +10 -10
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/IModelTile.d.ts.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -0
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts +3 -1
- package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileTree.js +1 -0
- package/lib/esm/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +9 -4
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +174 -60
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +8 -7
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +31 -26
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +1 -0
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +21 -2
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +33 -13
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +1 -0
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +1 -0
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +2 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +2 -0
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +24 -10
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +14 -9
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +14 -6
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +25 -2
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js +4 -4
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/Tool.d.ts +7 -7
- package/lib/esm/tools/Tool.js +7 -7
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +25 -10
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/package.json +27 -27
- package/lib/cjs/RenderScheduleState.d.ts +0 -24
- package/lib/cjs/RenderScheduleState.d.ts.map +0 -1
- package/lib/cjs/RenderScheduleState.js +0 -76
- package/lib/cjs/RenderScheduleState.js.map +0 -1
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +0 -52
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
- package/lib/cjs/extension/providers/ExtensionServiceClient.js +0 -131
- package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +0 -1
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +0 -37
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js +0 -84
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +0 -1
- package/lib/esm/RenderScheduleState.d.ts +0 -24
- package/lib/esm/RenderScheduleState.d.ts.map +0 -1
- package/lib/esm/RenderScheduleState.js +0 -71
- package/lib/esm/RenderScheduleState.js.map +0 -1
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +0 -52
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
- package/lib/esm/extension/providers/ExtensionServiceClient.js +0 -127
- package/lib/esm/extension/providers/ExtensionServiceClient.js.map +0 -1
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +0 -37
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
- package/lib/esm/extension/providers/ServiceExtensionProvider.js +0 -80
- package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +0 -1
|
@@ -1,71 +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 Views
|
|
7
|
-
*/
|
|
8
|
-
import { Id64 } from "@itwin/core-bentley";
|
|
9
|
-
import { RenderSchedule } from "@itwin/core-common";
|
|
10
|
-
import { IModelApp } from "./IModelApp";
|
|
11
|
-
/** @internal */
|
|
12
|
-
export function formatAnimationBranchId(modelId, branchId) {
|
|
13
|
-
if (branchId < 0)
|
|
14
|
-
return modelId;
|
|
15
|
-
return `${modelId}_Node_${branchId.toString()}`;
|
|
16
|
-
}
|
|
17
|
-
function addAnimationBranch(modelId, timeline, branchId, branches, time) {
|
|
18
|
-
const clipVector = timeline.getClipVector(time);
|
|
19
|
-
const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;
|
|
20
|
-
if (clip)
|
|
21
|
-
branches.set(formatAnimationBranchId(modelId, branchId), { clip });
|
|
22
|
-
}
|
|
23
|
-
/** Provides frontend-specific APIs for applying a RenderSchedule.Script to a view via a DisplayStyleState.
|
|
24
|
-
* The methods it adds are for internal use by the display system.
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
export class RenderScheduleState extends RenderSchedule.ScriptReference {
|
|
28
|
-
get duration() {
|
|
29
|
-
return this.script.duration;
|
|
30
|
-
}
|
|
31
|
-
get containsFeatureOverrides() {
|
|
32
|
-
return this.script.containsFeatureOverrides;
|
|
33
|
-
}
|
|
34
|
-
getAnimationBranches(time) {
|
|
35
|
-
if (!this.script.containsModelClipping && !this.script.requiresBatching)
|
|
36
|
-
return undefined;
|
|
37
|
-
const branches = new Map();
|
|
38
|
-
for (const model of this.script.modelTimelines) {
|
|
39
|
-
addAnimationBranch(model.modelId, model, -1, branches, time);
|
|
40
|
-
for (const elem of model.elementTimelines) {
|
|
41
|
-
if (elem.getVisibility(time) <= 0)
|
|
42
|
-
branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });
|
|
43
|
-
else
|
|
44
|
-
addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
branchStates: branches,
|
|
49
|
-
transformNodeIds: this.script.transformBatchIds,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
getTransformNodeIds(modelId) {
|
|
53
|
-
return this.script.getTransformBatchIds(modelId);
|
|
54
|
-
}
|
|
55
|
-
getTransform(modelId, nodeId, time) {
|
|
56
|
-
return this.script.getTransform(modelId, nodeId, time);
|
|
57
|
-
}
|
|
58
|
-
getSymbologyOverrides(overrides, time) {
|
|
59
|
-
this.script.addSymbologyOverrides(overrides, time);
|
|
60
|
-
}
|
|
61
|
-
getModelAnimationId(modelId) {
|
|
62
|
-
// Only if the script contains animation (cutting plane, transform or visibility by node ID) do we require separate tilesets for animations.
|
|
63
|
-
if (Id64.isTransient(modelId))
|
|
64
|
-
return undefined;
|
|
65
|
-
for (const modelTimeline of this.script.modelTimelines)
|
|
66
|
-
if (modelTimeline.modelId === modelId && modelTimeline.requiresBatching)
|
|
67
|
-
return this.sourceId;
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=RenderScheduleState.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RenderScheduleState.js","sourceRoot":"","sources":["../../src/RenderScheduleState.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 Views\r\n */\r\n\r\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range1d, Transform } from \"@itwin/core-geometry\";\r\nimport { RenderSchedule } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { AnimationBranchState, AnimationBranchStates } from \"./render/GraphicBranch\";\r\n\r\n/** @internal */\r\nexport function formatAnimationBranchId(modelId: Id64String, branchId: number): string {\r\n if (branchId < 0)\r\n return modelId;\r\n\r\n return `${modelId}_Node_${branchId.toString()}`;\r\n}\r\n\r\nfunction addAnimationBranch(modelId: Id64String, timeline: RenderSchedule.Timeline, branchId: number, branches: Map<string, AnimationBranchState>, time: number): void {\r\n const clipVector = timeline.getClipVector(time);\r\n const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;\r\n if (clip)\r\n branches.set(formatAnimationBranchId(modelId, branchId), { clip });\r\n}\r\n\r\n/** Provides frontend-specific APIs for applying a RenderSchedule.Script to a view via a DisplayStyleState.\r\n * The methods it adds are for internal use by the display system.\r\n * @internal\r\n */\r\nexport class RenderScheduleState extends RenderSchedule.ScriptReference {\r\n public get duration(): Range1d {\r\n return this.script.duration;\r\n }\r\n\r\n public get containsFeatureOverrides(): boolean {\r\n return this.script.containsFeatureOverrides;\r\n }\r\n\r\n public getAnimationBranches(time: number): AnimationBranchStates | undefined {\r\n if (!this.script.containsModelClipping && !this.script.requiresBatching)\r\n return undefined;\r\n\r\n const branches = new Map<string, AnimationBranchState>();\r\n for (const model of this.script.modelTimelines) {\r\n addAnimationBranch(model.modelId, model, -1, branches, time);\r\n for (const elem of model.elementTimelines) {\r\n if (elem.getVisibility(time) <= 0)\r\n branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });\r\n else\r\n addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);\r\n }\r\n }\r\n\r\n return {\r\n branchStates: branches,\r\n transformNodeIds: this.script.transformBatchIds,\r\n };\r\n }\r\n\r\n public getTransformNodeIds(modelId: Id64String): ReadonlyArray<number> | undefined {\r\n return this.script.getTransformBatchIds(modelId);\r\n }\r\n\r\n public getTransform(modelId: Id64String, nodeId: number, time: number): Readonly<Transform> | undefined {\r\n return this.script.getTransform(modelId, nodeId, time);\r\n }\r\n\r\n public getSymbologyOverrides(overrides: FeatureSymbology.Overrides, time: number): void {\r\n this.script.addSymbologyOverrides(overrides, time);\r\n }\r\n\r\n public getModelAnimationId(modelId: Id64String): Id64String | undefined {\r\n // Only if the script contains animation (cutting plane, transform or visibility by node ID) do we require separate tilesets for animations.\r\n if (Id64.isTransient(modelId))\r\n return undefined;\r\n\r\n for (const modelTimeline of this.script.modelTimelines)\r\n if (modelTimeline.modelId === modelId && modelTimeline.requiresBatching)\r\n return this.sourceId;\r\n\r\n return undefined;\r\n }\r\n}\r\n"]}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { AccessToken } from "@itwin/core-bentley";
|
|
2
|
-
/** Structure of extensions from the ExtensionService
|
|
3
|
-
* @internal
|
|
4
|
-
*/
|
|
5
|
-
export interface ExtensionMetadata {
|
|
6
|
-
contextId: string;
|
|
7
|
-
extensionName: string;
|
|
8
|
-
version: string;
|
|
9
|
-
files: FileInfo[];
|
|
10
|
-
uploadedBy: string;
|
|
11
|
-
timestamp: Date;
|
|
12
|
-
status: ExtensionUploadStatus;
|
|
13
|
-
isPublic: boolean;
|
|
14
|
-
}
|
|
15
|
-
interface ExtensionUploadStatus {
|
|
16
|
-
updateTime: Date;
|
|
17
|
-
status: string;
|
|
18
|
-
}
|
|
19
|
-
interface FileInfo {
|
|
20
|
-
url: string;
|
|
21
|
-
expires: Date;
|
|
22
|
-
checksum: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Client for querying, publishing and deleting iModel.js Extensions.
|
|
26
|
-
*
|
|
27
|
-
* The `imodel-extension-service-api` OIDC scope is required for all operations and the `imodel-extension-service:modify` is
|
|
28
|
-
* required for modification operations (modify, publish, and deleting).
|
|
29
|
-
* @alpha
|
|
30
|
-
*/
|
|
31
|
-
export declare class ExtensionClient {
|
|
32
|
-
private readonly _baseUrl;
|
|
33
|
-
constructor();
|
|
34
|
-
private get _endpoint();
|
|
35
|
-
private parseExtensionMetadataArray;
|
|
36
|
-
/**
|
|
37
|
-
* Gets information on extensions. If extensionName is undefined, will return all extensions in the context.
|
|
38
|
-
* If it's defined, will return all versions of that extension.
|
|
39
|
-
* @param iTwinId Context Id
|
|
40
|
-
* @param extensionName Extension name (optional)
|
|
41
|
-
*/
|
|
42
|
-
getExtensions(accessToken: AccessToken, iTwinId: string, extensionName?: string): Promise<ExtensionMetadata[]>;
|
|
43
|
-
/**
|
|
44
|
-
* Gets information about an extension's specific version
|
|
45
|
-
* @param iTwinId iTwin Id
|
|
46
|
-
* @param extensionName Extension name
|
|
47
|
-
* @param version Extension version
|
|
48
|
-
*/
|
|
49
|
-
getExtensionMetadata(accessToken: AccessToken, iTwinId: string, extensionName: string, version: string): Promise<ExtensionMetadata | undefined>;
|
|
50
|
-
}
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=ExtensionServiceClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionServiceClient.d.ts","sourceRoot":"","sources":["../../../../src/extension/providers/ExtensionServiceClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,qBAAqB;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;;IAKlC,OAAO,KAAK,SAAS,GAWpB;IAED,OAAO,CAAC,2BAA2B;IAcnC;;;;;OAKG;IACU,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAa3H;;;;;OAKG;IACU,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAe7J"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { request } from "../../request/Request";
|
|
2
|
-
/**
|
|
3
|
-
* Client for querying, publishing and deleting iModel.js Extensions.
|
|
4
|
-
*
|
|
5
|
-
* The `imodel-extension-service-api` OIDC scope is required for all operations and the `imodel-extension-service:modify` is
|
|
6
|
-
* required for modification operations (modify, publish, and deleting).
|
|
7
|
-
* @alpha
|
|
8
|
-
*/
|
|
9
|
-
export class ExtensionClient {
|
|
10
|
-
constructor() {
|
|
11
|
-
this._baseUrl = "https://api.bentley.com/iModelExtensionService/";
|
|
12
|
-
}
|
|
13
|
-
get _endpoint() {
|
|
14
|
-
const prefix = process.env.IMJS_URL_PREFIX;
|
|
15
|
-
const baseUrl = new URL(this._baseUrl);
|
|
16
|
-
if (prefix)
|
|
17
|
-
baseUrl.hostname = prefix + new URL(baseUrl).hostname;
|
|
18
|
-
if (!baseUrl.pathname.endsWith("/"))
|
|
19
|
-
baseUrl.pathname += "/";
|
|
20
|
-
baseUrl.pathname += "v1.0/";
|
|
21
|
-
return baseUrl.toString();
|
|
22
|
-
}
|
|
23
|
-
parseExtensionMetadataArray(json) {
|
|
24
|
-
if (!(json instanceof Array))
|
|
25
|
-
return [];
|
|
26
|
-
const ret = [];
|
|
27
|
-
json.forEach((extensionJson) => {
|
|
28
|
-
const extension = extensionMetadataFromJSON(extensionJson);
|
|
29
|
-
if (extension !== undefined)
|
|
30
|
-
ret.push(extension);
|
|
31
|
-
});
|
|
32
|
-
return ret;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Gets information on extensions. If extensionName is undefined, will return all extensions in the context.
|
|
36
|
-
* If it's defined, will return all versions of that extension.
|
|
37
|
-
* @param iTwinId Context Id
|
|
38
|
-
* @param extensionName Extension name (optional)
|
|
39
|
-
*/
|
|
40
|
-
async getExtensions(accessToken, iTwinId, extensionName) {
|
|
41
|
-
const options = { method: "GET" };
|
|
42
|
-
options.headers = { authorization: accessToken };
|
|
43
|
-
const response = await request(`${this._endpoint}${iTwinId}/IModelExtension/${extensionName !== null && extensionName !== void 0 ? extensionName : ""}`, options);
|
|
44
|
-
if (response.status !== 200)
|
|
45
|
-
throw new Error(`Server returned status: ${response.status}, message: ${response.body.message}`);
|
|
46
|
-
if (!(response.body instanceof Array) || response.body.length < 1)
|
|
47
|
-
return [];
|
|
48
|
-
return this.parseExtensionMetadataArray(response.body);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Gets information about an extension's specific version
|
|
52
|
-
* @param iTwinId iTwin Id
|
|
53
|
-
* @param extensionName Extension name
|
|
54
|
-
* @param version Extension version
|
|
55
|
-
*/
|
|
56
|
-
async getExtensionMetadata(accessToken, iTwinId, extensionName, version) {
|
|
57
|
-
const options = { method: "GET" };
|
|
58
|
-
options.headers = { authorization: accessToken };
|
|
59
|
-
const response = await request(`${this._endpoint}${iTwinId}/IModelExtension/${extensionName}/${version}`, options);
|
|
60
|
-
if (response.status !== 200)
|
|
61
|
-
throw new Error(`Server returned status: ${response.status}, message: ${response.body.message}`);
|
|
62
|
-
if (!(response.body instanceof Array) || response.body.length < 1)
|
|
63
|
-
return undefined;
|
|
64
|
-
if (response.body.length > 1)
|
|
65
|
-
throw new Error("Server returned too many extensions");
|
|
66
|
-
return extensionMetadataFromJSON(response.body[0]);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Validates JSON and returns ExtensionMetadata
|
|
71
|
-
*/
|
|
72
|
-
function extensionMetadataFromJSON(jsonObject) {
|
|
73
|
-
if (jsonObject.contextId === undefined || typeof jsonObject.contextId !== "string" ||
|
|
74
|
-
jsonObject.extensionName === undefined || typeof jsonObject.extensionName !== "string" ||
|
|
75
|
-
jsonObject.version === undefined || typeof jsonObject.version !== "string" ||
|
|
76
|
-
jsonObject.files === undefined || !(jsonObject.files instanceof Array) ||
|
|
77
|
-
jsonObject.uploadedBy === undefined || typeof jsonObject.uploadedBy !== "string" ||
|
|
78
|
-
jsonObject.timestamp === undefined || typeof jsonObject.timestamp !== "string" ||
|
|
79
|
-
jsonObject.isPublic === undefined || typeof jsonObject.isPublic !== "boolean" ||
|
|
80
|
-
jsonObject.extensionStatus === undefined) {
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
83
|
-
const status = statusFromJSON(jsonObject.extensionStatus);
|
|
84
|
-
if (status === undefined)
|
|
85
|
-
return undefined;
|
|
86
|
-
const files = new Array(jsonObject.files.length);
|
|
87
|
-
for (let i = 0; i < jsonObject.files.length; i++) {
|
|
88
|
-
const parsed = fileInfoFromJSON(jsonObject.files[i]);
|
|
89
|
-
if (parsed === undefined)
|
|
90
|
-
return undefined;
|
|
91
|
-
files[i] = parsed;
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
contextId: jsonObject.contextId,
|
|
95
|
-
extensionName: jsonObject.extensionName,
|
|
96
|
-
version: jsonObject.version,
|
|
97
|
-
files,
|
|
98
|
-
uploadedBy: jsonObject.uploadedBy,
|
|
99
|
-
timestamp: new Date(jsonObject.timestamp),
|
|
100
|
-
isPublic: jsonObject.isPublic,
|
|
101
|
-
status,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
function statusFromJSON(jsonObject) {
|
|
105
|
-
var _a;
|
|
106
|
-
if (jsonObject.statusUpdateTime === undefined || typeof jsonObject.statusUpdateTime !== "string" ||
|
|
107
|
-
jsonObject.status === undefined || (jsonObject.status !== null && typeof jsonObject.status !== "string")) {
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
updateTime: new Date(jsonObject.statusUpdateTime),
|
|
112
|
-
status: (_a = jsonObject.status) !== null && _a !== void 0 ? _a : "Valid",
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
function fileInfoFromJSON(jsonObject) {
|
|
116
|
-
if (jsonObject.url === undefined || typeof jsonObject.url !== "string" ||
|
|
117
|
-
jsonObject.expiresAt === undefined || typeof jsonObject.expiresAt !== "string" ||
|
|
118
|
-
jsonObject.checksum === undefined || (typeof jsonObject.checksum !== "string" && jsonObject.checksum !== null)) {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
url: jsonObject.url,
|
|
123
|
-
expires: new Date(jsonObject.expiresAt),
|
|
124
|
-
checksum: jsonObject.checksum,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=ExtensionServiceClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionServiceClient.js","sourceRoot":"","sources":["../../../../src/extension/providers/ExtensionServiceClient.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\nimport { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nimport { request, RequestOptions } from \"../../request/Request\";\r\n\r\n/** Structure of extensions from the ExtensionService\r\n * @internal\r\n */\r\nexport interface ExtensionMetadata {\r\n contextId: string;\r\n extensionName: string;\r\n version: string;\r\n files: FileInfo[];\r\n uploadedBy: string;\r\n timestamp: Date;\r\n status: ExtensionUploadStatus;\r\n isPublic: boolean;\r\n}\r\n\r\ninterface ExtensionUploadStatus {\r\n updateTime: Date;\r\n status: string;\r\n}\r\n\r\ninterface FileInfo {\r\n url: string;\r\n expires: Date;\r\n checksum: string;\r\n}\r\n\r\n/**\r\n * Client for querying, publishing and deleting iModel.js Extensions.\r\n *\r\n * The `imodel-extension-service-api` OIDC scope is required for all operations and the `imodel-extension-service:modify` is\r\n * required for modification operations (modify, publish, and deleting).\r\n * @alpha\r\n */\r\nexport class ExtensionClient {\r\n private readonly _baseUrl: string;\r\n public constructor() {\r\n this._baseUrl = \"https://api.bentley.com/iModelExtensionService/\";\r\n }\r\n\r\n private get _endpoint(): string {\r\n const prefix = process.env.IMJS_URL_PREFIX;\r\n const baseUrl = new URL(this._baseUrl);\r\n if (prefix)\r\n baseUrl.hostname = prefix + new URL(baseUrl).hostname;\r\n\r\n if (!baseUrl.pathname.endsWith(\"/\"))\r\n baseUrl.pathname += \"/\";\r\n\r\n baseUrl.pathname += \"v1.0/\";\r\n return baseUrl.toString();\r\n }\r\n\r\n private parseExtensionMetadataArray(json: any): ExtensionMetadata[] {\r\n if (!(json instanceof Array))\r\n return [];\r\n\r\n const ret: ExtensionMetadata[] = [];\r\n json.forEach((extensionJson) => {\r\n const extension = extensionMetadataFromJSON(extensionJson);\r\n if (extension !== undefined)\r\n ret.push(extension);\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n /**\r\n * Gets information on extensions. If extensionName is undefined, will return all extensions in the context.\r\n * If it's defined, will return all versions of that extension.\r\n * @param iTwinId Context Id\r\n * @param extensionName Extension name (optional)\r\n */\r\n public async getExtensions(accessToken: AccessToken, iTwinId: string, extensionName?: string): Promise<ExtensionMetadata[]> {\r\n const options: RequestOptions = { method: \"GET\" };\r\n options.headers = { authorization: accessToken };\r\n const response = await request(`${this._endpoint}${iTwinId}/IModelExtension/${extensionName ?? \"\"}`, options);\r\n if (response.status !== 200)\r\n throw new Error(`Server returned status: ${response.status}, message: ${response.body.message}`);\r\n\r\n if (!(response.body instanceof Array) || response.body.length < 1)\r\n return [];\r\n\r\n return this.parseExtensionMetadataArray(response.body);\r\n }\r\n\r\n /**\r\n * Gets information about an extension's specific version\r\n * @param iTwinId iTwin Id\r\n * @param extensionName Extension name\r\n * @param version Extension version\r\n */\r\n public async getExtensionMetadata(accessToken: AccessToken, iTwinId: string, extensionName: string, version: string): Promise<ExtensionMetadata | undefined> {\r\n\r\n const options: RequestOptions = { method: \"GET\" };\r\n options.headers = { authorization: accessToken };\r\n const response = await request(`${this._endpoint}${iTwinId}/IModelExtension/${extensionName}/${version}`, options);\r\n if (response.status !== 200)\r\n throw new Error(`Server returned status: ${response.status}, message: ${response.body.message}`);\r\n\r\n if (!(response.body instanceof Array) || response.body.length < 1)\r\n return undefined;\r\n if (response.body.length > 1)\r\n throw new Error(\"Server returned too many extensions\");\r\n\r\n return extensionMetadataFromJSON(response.body[0]);\r\n }\r\n}\r\n\r\n/**\r\n * Validates JSON and returns ExtensionMetadata\r\n */\r\nfunction extensionMetadataFromJSON(jsonObject: any): ExtensionMetadata | undefined {\r\n if (jsonObject.contextId === undefined || typeof jsonObject.contextId !== \"string\" ||\r\n jsonObject.extensionName === undefined || typeof jsonObject.extensionName !== \"string\" ||\r\n jsonObject.version === undefined || typeof jsonObject.version !== \"string\" ||\r\n jsonObject.files === undefined || !(jsonObject.files instanceof Array) ||\r\n jsonObject.uploadedBy === undefined || typeof jsonObject.uploadedBy !== \"string\" ||\r\n jsonObject.timestamp === undefined || typeof jsonObject.timestamp !== \"string\" ||\r\n jsonObject.isPublic === undefined || typeof jsonObject.isPublic !== \"boolean\" ||\r\n jsonObject.extensionStatus === undefined) {\r\n\r\n return undefined;\r\n }\r\n\r\n const status = statusFromJSON(jsonObject.extensionStatus);\r\n if (status === undefined)\r\n return undefined;\r\n\r\n const files = new Array(jsonObject.files.length);\r\n for (let i = 0; i < jsonObject.files.length; i++) {\r\n const parsed = fileInfoFromJSON(jsonObject.files[i]);\r\n if (parsed === undefined)\r\n return undefined;\r\n files[i] = parsed;\r\n }\r\n\r\n return {\r\n contextId: jsonObject.contextId,\r\n extensionName: jsonObject.extensionName,\r\n version: jsonObject.version,\r\n files,\r\n uploadedBy: jsonObject.uploadedBy,\r\n timestamp: new Date(jsonObject.timestamp),\r\n isPublic: jsonObject.isPublic,\r\n status,\r\n };\r\n}\r\n\r\nfunction statusFromJSON(jsonObject: any) {\r\n if (jsonObject.statusUpdateTime === undefined || typeof jsonObject.statusUpdateTime !== \"string\" ||\r\n jsonObject.status === undefined || (jsonObject.status !== null && typeof jsonObject.status !== \"string\")) {\r\n\r\n return undefined;\r\n }\r\n\r\n return {\r\n updateTime: new Date(jsonObject.statusUpdateTime),\r\n status: jsonObject.status ?? \"Valid\",\r\n };\r\n}\r\n\r\nfunction fileInfoFromJSON(jsonObject: any) {\r\n if (jsonObject.url === undefined || typeof jsonObject.url !== \"string\" ||\r\n jsonObject.expiresAt === undefined || typeof jsonObject.expiresAt !== \"string\" ||\r\n jsonObject.checksum === undefined || (typeof jsonObject.checksum !== \"string\" && jsonObject.checksum !== null)) {\r\n\r\n return undefined;\r\n }\r\n\r\n return {\r\n url: jsonObject.url,\r\n expires: new Date(jsonObject.expiresAt),\r\n checksum: jsonObject.checksum,\r\n };\r\n}\r\n"]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { ExtensionManifest, ExtensionProvider } from "../Extension";
|
|
2
|
-
/**
|
|
3
|
-
* Required props for an extension uploaded to Bentley's Extension Service
|
|
4
|
-
* @alpha
|
|
5
|
-
*/
|
|
6
|
-
export interface ServiceExtensionProviderProps {
|
|
7
|
-
/** Name of the uploaded extension */
|
|
8
|
-
name: string;
|
|
9
|
-
/** Version number (Semantic Versioning) */
|
|
10
|
-
version: string;
|
|
11
|
-
/** iTwin Id */
|
|
12
|
-
iTwinId: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Implements an Extension from the Extension Service via the ServiceExtensionProviderProps.
|
|
16
|
-
* Service extensions are extensions hosted on Bentley's Extension Service.
|
|
17
|
-
* The execute() and getManifest() methods are used by the ExtensionAdmin to load and execute the extension.
|
|
18
|
-
* @alpha
|
|
19
|
-
*/
|
|
20
|
-
export declare class ServiceExtensionProvider implements ExtensionProvider {
|
|
21
|
-
private readonly _props;
|
|
22
|
-
constructor(_props: ServiceExtensionProviderProps);
|
|
23
|
-
/** Returns the extension's manifest (package.json) from the ExtensionService.
|
|
24
|
-
* Throws an error if the manifest cannot be found.
|
|
25
|
-
*/
|
|
26
|
-
getManifest(): Promise<ExtensionManifest>;
|
|
27
|
-
/** Executes the javascript main file (the bundled index.js) of an extension from the Extension Service.
|
|
28
|
-
* Throws an error if the file cannot be found.
|
|
29
|
-
*/
|
|
30
|
-
execute(): Promise<any>;
|
|
31
|
-
/** Checks if url actually exists */
|
|
32
|
-
private _exists;
|
|
33
|
-
/** Fetches the extension from the ExtensionService.
|
|
34
|
-
*/
|
|
35
|
-
private _getExtensionFiles;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=ServiceExtensionProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceExtensionProvider.d.ts","sourceRoot":"","sources":["../../../../src/extension/providers/ServiceExtensionProvider.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,iBAAiB,EAAE,iBAAiB,EACrC,MAAM,cAAc,CAAC;AAEtB;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAEpD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,6BAA6B;IAElE;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAYtD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IAYpC,oCAAoC;YACtB,OAAO;IAYrB;OACG;YACW,kBAAkB;CAyBjC"}
|
|
@@ -1,80 +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
|
-
import { rcompare } from "semver";
|
|
6
|
-
import { IModelApp } from "../../IModelApp";
|
|
7
|
-
import { loadScript } from "./ExtensionLoadScript";
|
|
8
|
-
import { ExtensionClient } from "./ExtensionServiceClient";
|
|
9
|
-
/**
|
|
10
|
-
* Implements an Extension from the Extension Service via the ServiceExtensionProviderProps.
|
|
11
|
-
* Service extensions are extensions hosted on Bentley's Extension Service.
|
|
12
|
-
* The execute() and getManifest() methods are used by the ExtensionAdmin to load and execute the extension.
|
|
13
|
-
* @alpha
|
|
14
|
-
*/
|
|
15
|
-
export class ServiceExtensionProvider {
|
|
16
|
-
constructor(_props) {
|
|
17
|
-
this._props = _props;
|
|
18
|
-
}
|
|
19
|
-
/** Returns the extension's manifest (package.json) from the ExtensionService.
|
|
20
|
-
* Throws an error if the manifest cannot be found.
|
|
21
|
-
*/
|
|
22
|
-
async getManifest() {
|
|
23
|
-
const loadedExtensionProps = await this._getExtensionFiles(this._props);
|
|
24
|
-
if (!loadedExtensionProps)
|
|
25
|
-
throw new Error(`Error loading manifest for Extension ${this._props.name}.`);
|
|
26
|
-
const doesUrlExist = await this._exists(loadedExtensionProps.manifest.url);
|
|
27
|
-
if (!doesUrlExist)
|
|
28
|
-
throw new Error(`Manifest at ${loadedExtensionProps.manifest.url} could not be found.`);
|
|
29
|
-
return (await fetch(loadedExtensionProps.manifest.url)).json();
|
|
30
|
-
}
|
|
31
|
-
/** Executes the javascript main file (the bundled index.js) of an extension from the Extension Service.
|
|
32
|
-
* Throws an error if the file cannot be found.
|
|
33
|
-
*/
|
|
34
|
-
async execute() {
|
|
35
|
-
const loadedExtensionProps = await this._getExtensionFiles(this._props);
|
|
36
|
-
if (!loadedExtensionProps)
|
|
37
|
-
throw new Error(`Error executing Extension ${this._props.name}.`);
|
|
38
|
-
const doesUrlExist = await this._exists(loadedExtensionProps.main.url);
|
|
39
|
-
if (!doesUrlExist)
|
|
40
|
-
throw new Error(`Main javascript file at ${loadedExtensionProps.main.url} could not be found.`);
|
|
41
|
-
return loadScript(loadedExtensionProps.main.url);
|
|
42
|
-
}
|
|
43
|
-
/** Checks if url actually exists */
|
|
44
|
-
async _exists(url) {
|
|
45
|
-
let exists = false;
|
|
46
|
-
try {
|
|
47
|
-
const response = await fetch(url, { method: "HEAD" });
|
|
48
|
-
if (response.status === 200)
|
|
49
|
-
exists = true;
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
exists = false;
|
|
53
|
-
}
|
|
54
|
-
return exists;
|
|
55
|
-
}
|
|
56
|
-
/** Fetches the extension from the ExtensionService.
|
|
57
|
-
*/
|
|
58
|
-
async _getExtensionFiles(props) {
|
|
59
|
-
var _a;
|
|
60
|
-
const extensionClient = new ExtensionClient();
|
|
61
|
-
const accessToken = await ((_a = IModelApp.authorizationClient) === null || _a === void 0 ? void 0 : _a.getAccessToken());
|
|
62
|
-
if (!accessToken)
|
|
63
|
-
return undefined;
|
|
64
|
-
let extensionProps;
|
|
65
|
-
if (props.version !== undefined)
|
|
66
|
-
extensionProps = await extensionClient.getExtensionMetadata(accessToken, props.iTwinId, props.name, props.version);
|
|
67
|
-
else {
|
|
68
|
-
const propsArr = await extensionClient.getExtensions(accessToken, props.iTwinId, props.name);
|
|
69
|
-
extensionProps = propsArr.sort((ext1, ext2) => rcompare(ext1.version, ext2.version, true))[0];
|
|
70
|
-
}
|
|
71
|
-
if (extensionProps === undefined || extensionProps.files.length < 1)
|
|
72
|
-
return undefined;
|
|
73
|
-
const manifest = extensionProps.files.find((f) => f.url.indexOf("package.json?") > -1);
|
|
74
|
-
const main = extensionProps.files.find((f) => f.url.indexOf("index.js?") > -1);
|
|
75
|
-
if (!manifest || !main)
|
|
76
|
-
return undefined;
|
|
77
|
-
return { manifest, main };
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=ServiceExtensionProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceExtensionProvider.js","sourceRoot":"","sources":["../../../../src/extension/providers/ServiceExtensionProvider.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\nimport { rcompare } from \"semver\";\r\n\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { loadScript } from \"./ExtensionLoadScript\";\r\nimport { ExtensionClient, ExtensionMetadata } from \"./ExtensionServiceClient\";\r\n\r\nimport type {\r\n ExtensionManifest, ExtensionProvider,\r\n} from \"../Extension\";\r\n\r\n/**\r\n * Required props for an extension uploaded to Bentley's Extension Service\r\n * @alpha\r\n */\r\nexport interface ServiceExtensionProviderProps {\r\n /** Name of the uploaded extension */\r\n name: string;\r\n /** Version number (Semantic Versioning) */\r\n version: string;\r\n /** iTwin Id */\r\n iTwinId: string;\r\n}\r\n\r\n/**\r\n * Implements an Extension from the Extension Service via the ServiceExtensionProviderProps.\r\n * Service extensions are extensions hosted on Bentley's Extension Service.\r\n * The execute() and getManifest() methods are used by the ExtensionAdmin to load and execute the extension.\r\n * @alpha\r\n */\r\nexport class ServiceExtensionProvider implements ExtensionProvider {\r\n\r\n constructor(private readonly _props: ServiceExtensionProviderProps) { }\r\n\r\n /** Returns the extension's manifest (package.json) from the ExtensionService.\r\n * Throws an error if the manifest cannot be found.\r\n */\r\n public async getManifest(): Promise<ExtensionManifest> {\r\n const loadedExtensionProps = await this._getExtensionFiles(this._props);\r\n if (!loadedExtensionProps)\r\n throw new Error(`Error loading manifest for Extension ${this._props.name}.`);\r\n\r\n const doesUrlExist = await this._exists(loadedExtensionProps.manifest.url);\r\n if (!doesUrlExist)\r\n throw new Error(`Manifest at ${loadedExtensionProps.manifest.url} could not be found.`);\r\n\r\n return (await fetch(loadedExtensionProps.manifest.url)).json();\r\n }\r\n\r\n /** Executes the javascript main file (the bundled index.js) of an extension from the Extension Service.\r\n * Throws an error if the file cannot be found.\r\n */\r\n public async execute(): Promise<any> {\r\n const loadedExtensionProps = await this._getExtensionFiles(this._props);\r\n if (!loadedExtensionProps)\r\n throw new Error(`Error executing Extension ${this._props.name}.`);\r\n\r\n const doesUrlExist = await this._exists(loadedExtensionProps.main.url);\r\n if (!doesUrlExist)\r\n throw new Error(`Main javascript file at ${loadedExtensionProps.main.url} could not be found.`);\r\n\r\n return loadScript(loadedExtensionProps.main.url);\r\n }\r\n\r\n /** Checks if url actually exists */\r\n private async _exists(url: string): Promise<boolean> {\r\n let exists = false;\r\n try {\r\n const response = await fetch(url, { method: \"HEAD\" });\r\n if (response.status === 200)\r\n exists = true;\r\n } catch (error) {\r\n exists = false;\r\n }\r\n return exists;\r\n }\r\n\r\n /** Fetches the extension from the ExtensionService.\r\n */\r\n private async _getExtensionFiles(props: ServiceExtensionProviderProps) {\r\n const extensionClient = new ExtensionClient();\r\n\r\n const accessToken = await IModelApp.authorizationClient?.getAccessToken();\r\n if (!accessToken)\r\n return undefined;\r\n\r\n let extensionProps: ExtensionMetadata | undefined;\r\n if (props.version !== undefined)\r\n extensionProps = await extensionClient.getExtensionMetadata(accessToken, props.iTwinId, props.name, props.version);\r\n else {\r\n const propsArr = await extensionClient.getExtensions(accessToken, props.iTwinId, props.name);\r\n extensionProps = propsArr.sort((ext1, ext2) => rcompare(ext1.version, ext2.version, true))[0];\r\n }\r\n\r\n if (extensionProps === undefined || extensionProps.files.length < 1)\r\n return undefined;\r\n\r\n const manifest = extensionProps.files.find((f) => f.url.indexOf(\"package.json?\") > -1);\r\n const main = extensionProps.files.find((f) => f.url.indexOf(\"index.js?\") > -1);\r\n if (!manifest || !main)\r\n return undefined;\r\n\r\n return { manifest, main };\r\n }\r\n}\r\n"]}
|