@cognite/reveal 4.28.7-dev.20260108 → 4.29.0
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/dist/index.js +239 -223
- package/dist/index.js.map +1 -1
- package/dist/packages/data-providers/index.d.ts +1 -0
- package/dist/packages/data-providers/src/model-data-providers/CachedModelDataProvider.d.ts +31 -0
- package/dist/packages/pointclouds/src/createPointCloudManager.d.ts +2 -2
- package/dist/packages/utilities/index.d.ts +3 -0
- package/dist/packages/utilities/src/cache/DataFileCacheManager.d.ts +49 -0
- package/dist/packages/utilities/src/cache/constants.d.ts +6 -0
- package/dist/packages/utilities/src/cache/types.d.ts +14 -0
- package/dist/packages/utilities/src/cache/utils.d.ts +6 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright 2021 Cognite AS
|
|
3
3
|
*/
|
|
4
4
|
export { CdfModelDataProvider } from './src/model-data-providers/CdfModelDataProvider';
|
|
5
|
+
export { CachedModelDataProvider } from './src/model-data-providers/CachedModelDataProvider';
|
|
5
6
|
export { CdfModelIdentifier } from './src/model-identifiers/CdfModelIdentifier';
|
|
6
7
|
export { CdfModelMetadataProvider } from './src/metadata-providers/CdfModelMetadataProvider';
|
|
7
8
|
export { Cdf360ImageAnnotationProvider } from './src/image-360-data-providers/Cdf360ImageAnnotationProvider';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2025 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
import { ModelDataProvider } from '../ModelDataProvider';
|
|
5
|
+
import { DataFileCacheManager, CacheConfig } from '../../../utilities';
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a ModelDataProvider with caching capabilities using the Cache API.
|
|
8
|
+
*
|
|
9
|
+
* This provider intercepts getBinaryFile and getJsonFile calls and caches
|
|
10
|
+
* the responses for faster subsequent access.
|
|
11
|
+
*/
|
|
12
|
+
export declare class CachedModelDataProvider implements ModelDataProvider {
|
|
13
|
+
private readonly baseProvider;
|
|
14
|
+
private readonly cacheManager;
|
|
15
|
+
constructor(baseProvider: ModelDataProvider, cacheConfig?: CacheConfig, cacheStorage?: CacheStorage);
|
|
16
|
+
getBinaryFile(baseUrl: string, fileName: string, abortSignal?: AbortSignal): Promise<ArrayBuffer>;
|
|
17
|
+
getJsonFile(baseUrl: string, fileName: string): Promise<unknown>;
|
|
18
|
+
private fetchWithCache;
|
|
19
|
+
/**
|
|
20
|
+
* Get the underlying cache manager for direct cache operations
|
|
21
|
+
*/
|
|
22
|
+
getCacheManager(): DataFileCacheManager;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a file is cached
|
|
25
|
+
*/
|
|
26
|
+
isCached(baseUrl: string, fileName: string): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Clear all cached data
|
|
29
|
+
*/
|
|
30
|
+
clearCache(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { PointCloudManager } from './PointCloudManager';
|
|
5
5
|
import * as THREE from 'three';
|
|
6
|
-
import { DMDataSourceType,
|
|
6
|
+
import { DMDataSourceType, ModelMetadataProvider, PointCloudStylableObjectProvider, CachedModelDataProvider } from '../../data-providers';
|
|
7
7
|
import { IPointClassificationsProvider } from './classificationsProviders/IPointClassificationsProvider';
|
|
8
8
|
import { PointCloudMaterialManager } from '../../rendering';
|
|
9
|
-
export declare function createPointCloudManager(modelMetadataProvider: ModelMetadataProvider,
|
|
9
|
+
export declare function createPointCloudManager(modelMetadataProvider: ModelMetadataProvider, pointCloudStylableObjectProvider: PointCloudStylableObjectProvider, classificationsProvider: IPointClassificationsProvider, pointCloudDMProvider: PointCloudStylableObjectProvider<DMDataSourceType>, pointCloudMaterialManager: PointCloudMaterialManager, cachedProvider: CachedModelDataProvider, scene: THREE.Scene, renderer: THREE.WebGLRenderer): PointCloudManager;
|
|
@@ -35,6 +35,9 @@ export { WebGLRendererStateHelper } from './src/WebGLRendererStateHelper';
|
|
|
35
35
|
export { TypedArray, TypedArrayConstructor } from './src/types';
|
|
36
36
|
export { MemoryRequestCache } from './src/cache/MemoryRequestCache';
|
|
37
37
|
export { MostFrequentlyUsedCache } from './src/cache/MostFrequentlyUsedCache';
|
|
38
|
+
export { DataFileCacheManager } from './src/cache/DataFileCacheManager';
|
|
39
|
+
export type { CacheConfig } from './src/cache/types';
|
|
40
|
+
export { BINARY_FILES_CACHE_NAME } from './src/cache/constants';
|
|
38
41
|
export { disposeAttributeArrayOnUpload } from './src/disposeAttributeArrayOnUpload';
|
|
39
42
|
export { incrementOrInsertIndex, decrementOrDeleteIndex } from './src/counterMap';
|
|
40
43
|
export { calculateVolumeOfMesh } from './src/calculateVolumeOfMesh';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CacheConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Data File Cache Manager using the Browser Cache API for storing various data files
|
|
4
|
+
* Supports caching of binary files (point clouds, CAD models), images (360 images), and JSON data
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Default: Cache forever, browser manages eviction
|
|
9
|
+
* const cache = new DataFileCacheManager({
|
|
10
|
+
* cacheName: 'reveal-3d-resources-v1'
|
|
11
|
+
* });
|
|
12
|
+
*
|
|
13
|
+
* // Optional: Add time-based expiration
|
|
14
|
+
* const cache = new DataFileCacheManager({
|
|
15
|
+
* cacheName: 'reveal-3d-resources-v1',
|
|
16
|
+
* maxAge: 7 * 24 * 60 * 60 * 1000 // Expire after 7 days
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Store a response
|
|
20
|
+
* await cache.storeResponse(url, response);
|
|
21
|
+
*
|
|
22
|
+
* // Retrieve cached response, returns undefined if expired or not found
|
|
23
|
+
* const cachedResponse = await cache.getCachedResponse(url);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class DataFileCacheManager {
|
|
27
|
+
private readonly DEFAULT_CONFIG;
|
|
28
|
+
private readonly _config;
|
|
29
|
+
private readonly _caches;
|
|
30
|
+
get cacheConfig(): CacheConfig;
|
|
31
|
+
constructor(config?: Partial<CacheConfig>, cacheStorage?: CacheStorage);
|
|
32
|
+
/**
|
|
33
|
+
* Check if a URL is cached and not expired
|
|
34
|
+
*/
|
|
35
|
+
has(url: string): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Clear all cached entries
|
|
38
|
+
*/
|
|
39
|
+
clear(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Get a cached response if it exists and is not expired
|
|
42
|
+
*/
|
|
43
|
+
getCachedResponse(url: string): Promise<Response | undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* Store data in cache
|
|
46
|
+
* Browser will automatically evict old entries when quota is reached
|
|
47
|
+
*/
|
|
48
|
+
storeResponse(url: string, data: ArrayBuffer, contentType?: string): Promise<void>;
|
|
49
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2025 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for cache behavior
|
|
6
|
+
*/
|
|
7
|
+
export type CacheConfig = {
|
|
8
|
+
/** Name of the cache */
|
|
9
|
+
cacheName: string;
|
|
10
|
+
/** Maximum age in milliseconds before entries expire (Default is Infinity = never expire) */
|
|
11
|
+
maxAge: number;
|
|
12
|
+
/** Maximum cache size in bytes (Default is Infinity = browser manages quota) */
|
|
13
|
+
maxCacheSize: number;
|
|
14
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2025 Cognite AS
|
|
3
|
+
*/
|
|
4
|
+
export declare function safeParseInt(value: string | null | undefined): number | undefined;
|
|
5
|
+
export declare function getCacheDate(response: Response): number | undefined;
|
|
6
|
+
export declare function getCacheSize(response: Response): number | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cognite/reveal",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.29.0",
|
|
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": {
|