@cognite/reveal 4.35.1 → 4.35.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.
@@ -44,3 +44,4 @@ export type { DataSourceType, ClassicDataSourceType, DMDataSourceType, ClassicMo
44
44
  export { isClassicIdentifier, isDMIdentifier, isLocalIdentifier } from './src/DataSourceType';
45
45
  export type { LocalAddModelOptions, CommonModelOptions, InternalAddModelOptions, AddModelOptionsWithModelRevisionId } from './src/utilities/internalAddModelOptions';
46
46
  export type { MetadataWithSignedFiles } from './src/metadata-providers/types';
47
+ export { SignedUrlRefresher, type FetchWithRefreshOptions } from './src/utilities/SignedUrlRefresh';
@@ -0,0 +1,27 @@
1
+ import { ModelDataProvider } from '../ModelDataProvider';
2
+ import { ModelIdentifier } from '../ModelIdentifier';
3
+ import { SignedFileItem } from '../types';
4
+ export type FetchWithRefreshOptions<T> = {
5
+ currentSignedUrl: string | undefined;
6
+ signedFilesBaseUrl: string | undefined;
7
+ modelIdentifier: ModelIdentifier;
8
+ fileName: string;
9
+ fetchFn: (signedUrl: string) => Promise<T>;
10
+ onUrlRefreshed?: (item: SignedFileItem) => void;
11
+ };
12
+ /**
13
+ * Fetches a resource through a signed URL, transparently refreshing the URL and retrying once
14
+ * if the current URL has expired or is otherwise invalid (HTTP 401/403/404). Concurrent refresh
15
+ * requests for the same file are de-duplicated. Successfully refreshed URLs are cached and
16
+ * preferred over the originally supplied `currentSignedUrl` on later calls.
17
+ */
18
+ export declare class SignedUrlRefresher {
19
+ private readonly _dataProvider;
20
+ private readonly _inFlightRefreshes;
21
+ private readonly _refreshedSignedUrls;
22
+ constructor(dataProvider: ModelDataProvider);
23
+ fetchWithRefresh<T>(options: FetchWithRefreshOptions<T>): Promise<T>;
24
+ private resolveCurrentSignedUrl;
25
+ private cacheKey;
26
+ private tryRefresh;
27
+ }
@@ -4,8 +4,7 @@ import { PointCloudOctree } from './tree/PointCloudOctree';
4
4
  import { IPotree } from './types/IPotree';
5
5
  import { IPointCloudTreeNodeBase } from './tree/IPointCloudTreeNodeBase';
6
6
  import { LRU } from './utils/lru';
7
- import { ModelDataProvider, ModelIdentifier, StylableObject } from '../../../data-providers';
8
- import { MetadataWithSignedFiles } from '../../../data-providers/src/metadata-providers/types';
7
+ import { MetadataWithSignedFiles, ModelDataProvider, ModelIdentifier, StylableObject } from '../../../data-providers';
9
8
  import { EptJson } from './loading/EptJson';
10
9
  export declare class QueueItem {
11
10
  pointCloudIndex: number;
@@ -2,8 +2,7 @@ import { IPointCloudTreeGeometryNode } from './IPointCloudTreeGeometryNode';
2
2
  import { IPointCloudTreeNodeBase } from '../tree/IPointCloudTreeNodeBase';
3
3
  import { Box3, BufferGeometry, Sphere, Vector3 } from 'three';
4
4
  import { PointCloudEptGeometry, EptKey } from './PointCloudEptGeometry';
5
- import { ModelDataProvider, ModelIdentifier } from '../../../../data-providers';
6
- import { MetadataWithSignedFiles } from '../../../../data-providers/src/metadata-providers/types';
5
+ import { MetadataWithSignedFiles, ModelDataProvider, ModelIdentifier, SignedFileItem } from '../../../../data-providers';
7
6
  import { EptJson } from '../loading/EptJson';
8
7
  export declare class PointCloudEptGeometryNode implements IPointCloudTreeGeometryNode {
9
8
  private readonly _id;
@@ -17,6 +16,7 @@ export declare class PointCloudEptGeometryNode implements IPointCloudTreeGeometr
17
16
  private readonly _spacing;
18
17
  private _signedUrl;
19
18
  private readonly _signedFilesBaseUrl;
19
+ private readonly _signedUrlRefresher;
20
20
  private _level;
21
21
  private _numPoints;
22
22
  private readonly _name;
@@ -71,6 +71,7 @@ export declare class PointCloudEptGeometryNode implements IPointCloudTreeGeometr
71
71
  load(): Promise<void>;
72
72
  loadPoints(): Promise<void>;
73
73
  findBinarySignedUrlInPreload(): string | undefined;
74
+ updateSignedFileItem(item: SignedFileItem): void;
74
75
  getHierarchy(fileName: string): Promise<{
75
76
  [key: string]: number;
76
77
  }>;
@@ -1,11 +1,12 @@
1
1
  import { WorkerPool } from '../utils/WorkerPool';
2
2
  import { ILoader } from './ILoader';
3
- import { ModelDataProvider, StylableObject } from '../../../../data-providers';
3
+ import { ModelDataProvider, StylableObject, SignedUrlRefresher } from '../../../../data-providers';
4
4
  import { PointCloudEptGeometryNode } from '../geometry/PointCloudEptGeometryNode';
5
5
  import { ParsedEptData } from '../workers/types';
6
6
  export declare class EptBinaryLoader implements ILoader {
7
- private readonly _dataLoader;
7
+ private readonly _dataFileProvider;
8
8
  private readonly _stylableObjectsWithBox;
9
+ readonly signedUrlRefresher: SignedUrlRefresher;
9
10
  static readonly WORKER_POOL: WorkerPool<Worker>;
10
11
  extension(): string;
11
12
  constructor(dataLoader: ModelDataProvider, stylableObjects: StylableObject[]);
@@ -1,7 +1,6 @@
1
- import { DMModelIdentifier, ModelDataProvider, ModelIdentifier, StylableObject } from '../../../../data-providers';
1
+ import { DMModelIdentifier, MetadataWithSignedFiles, ModelDataProvider, ModelIdentifier, StylableObject } from '../../../../data-providers';
2
2
  import { PointCloudEptGeometry } from '../geometry/PointCloudEptGeometry';
3
3
  import { EptJson } from './EptJson';
4
- import { MetadataWithSignedFiles } from '../../../../data-providers/src/metadata-providers/types';
5
4
  export declare class EptLoader {
6
5
  static load(baseUrl: string, fileName: string, modelDataProvider: ModelDataProvider, modelIdentifier: ModelIdentifier, stylableObjects: StylableObject[]): Promise<PointCloudEptGeometry>;
7
6
  static dmsLoad(signedFilesBaseUrl: string, modelDataProvider: ModelDataProvider, stylableObjects: StylableObject[], modelIdentifier: DMModelIdentifier, preloadedData: MetadataWithSignedFiles<EptJson>): Promise<PointCloudEptGeometry>;
@@ -1,8 +1,7 @@
1
1
  import { Camera, WebGLRenderer } from 'three';
2
2
  import { LRU } from '../utils/lru';
3
3
  import { PointCloudOctree } from '../tree/PointCloudOctree';
4
- import { ModelIdentifier, StylableObject } from '../../../../data-providers';
5
- import { MetadataWithSignedFiles } from '../../../../data-providers/src/metadata-providers/types';
4
+ import { MetadataWithSignedFiles, ModelIdentifier, StylableObject } from '../../../../data-providers';
6
5
  import { EptJson } from '../loading/EptJson';
7
6
  export interface IPotree {
8
7
  pointBudget: number;
@@ -2,7 +2,8 @@ import { ConsumedSector, WantedSector } from '../../cad-parsers';
2
2
  import { ModelDataProvider } from '../../data-providers';
3
3
  export declare class GltfSectorLoader {
4
4
  private readonly _gltfSectorParser;
5
- private readonly _sectorFileProvider;
5
+ private readonly _dataFileProvider;
6
+ private readonly _signedUrlRefresher;
6
7
  constructor(sectorFileProvider: ModelDataProvider);
7
8
  loadSector(sector: WantedSector, abortSignal?: AbortSignal): Promise<ConsumedSector>;
8
9
  getSectorByteBuffer(sector: WantedSector, abortSignal?: AbortSignal): Promise<ArrayBuffer>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/reveal",
3
- "version": "4.35.1",
3
+ "version": "4.35.2",
4
4
  "description": "WebGL based 3D viewer for CAD and point clouds processed in Cognite Data Fusion.",
5
5
  "homepage": "https://github.com/cognitedata/reveal/tree/master/viewer",
6
6
  "repository": {
@@ -117,5 +117,5 @@
117
117
  "files": [
118
118
  "dist"
119
119
  ],
120
- "packageManager": "pnpm@11.15.0"
120
+ "packageManager": "pnpm@11.15.1"
121
121
  }