vis-core 0.33.14 → 0.33.16

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/README.md CHANGED
@@ -1 +1,25 @@
1
1
  # vis-core
2
+
3
+ ## 提前初始化 GPU
4
+
5
+ `SceneManager` 首次读取 URL 模板时,会先发出网络请求,再自动预热实际渲染器。现有 `load(url)`、`loadMapRegion(url, ...)` 和 `requestMapRegion(url, ...)` 调用无需修改。内存文档不会自动预热。
6
+
7
+ 宿主已经确认即将展示场景时,也可以更早调用:
8
+
9
+ ```ts
10
+ const manager = new SceneManager({ container });
11
+ void manager.prewarmRuntime().catch(error => {
12
+ // 预热是可选优化;正式加载仍可重新尝试初始化。
13
+ console.debug('GPU 预热未完成', error);
14
+ });
15
+
16
+ // 稍后需要展示时,复用预热中的或已就绪的上下文。
17
+ await manager.load(templateUrl);
18
+
19
+ // 页面卸载时,也会释放尚未被场景接管的预热上下文。
20
+ manager.dispose();
21
+ ```
22
+
23
+ 每个 manager 独立持有预热状态,重复调用共用初始化 Promise。预热只初始化渲染器,不读取场景、展开材质、挂载 canvas 或启动渲染循环;首次场景按最终配置接管同一个渲染器。模板或钩子修改了深度、后端等渲染器配置时,不兼容的预热实例会释放,按最终配置重新创建。WebGPU 降级及深度精度策略与普通加载相同。
24
+
25
+ 预热失败或未使用的设备丢失后可以重试。预热不能消除 GPU 冷启动成本,也不会把同步 WebGL 初始化移入后台线程;收益来自更早启动,以及与模板下载等等待重叠。测量时应分别记录预热耗时和后续加载耗时。
package/dist/index.d.ts CHANGED
@@ -50,8 +50,8 @@ import { Raycaster } from 'three/webgpu';
50
50
  import { RectAreaLight as RectAreaLight_2 } from 'three';
51
51
  import { RenderPipeline } from 'three/webgpu';
52
52
  import { RenderTarget } from 'three/webgpu';
53
- import { Scene } from 'three';
54
- import { Scene as Scene_2 } from 'three/webgpu';
53
+ import { Scene } from 'three/webgpu';
54
+ import { Scene as Scene_2 } from 'three';
55
55
  import { ShaderMaterial } from 'three';
56
56
  import { ShaderMaterialJSON } from 'three';
57
57
  import { SpotLight as SpotLight_2 } from 'three';
@@ -343,6 +343,8 @@ declare type Base_2 = Base_3;
343
343
 
344
344
  declare class Base_3 extends Camera {
345
345
  static VisName: string;
346
+ /** Internal: Share final renderer configuration with SceneManager prewarming. */
347
+ static prewarmRenderer(options: BaseOptions): ReturnType<typeof Pencil.prewarmRenderer>;
346
348
  runtimePolicy: {
347
349
  observeParentScale: boolean;
348
350
  applyDisabledMouseButtons: boolean;
@@ -358,8 +360,8 @@ declare class Base_3 extends Camera {
358
360
  roomEnvMap?: _THREE.Texture;
359
361
  private roomEnvLease?;
360
362
  visName: string;
361
- private detectRes?;
362
363
  private ownsPencil;
364
+ private rendererWarmup?;
363
365
  private renderingSuspensions;
364
366
  /** Internal: 在运行时创建前也可暂停,保证整个初始化过程不提交中间帧。 */
365
367
  suspendRendering(): () => void;
@@ -382,7 +384,6 @@ declare class Base_3 extends Camera {
382
384
  private getQueryOverrides;
383
385
  private getEffectiveLogarithmicDepthBuffer;
384
386
  private getEffectiveTier;
385
- private isExtClipControlAvailable;
386
387
  private resolveRendererDepthBufferOptions;
387
388
  private showDetectRes;
388
389
  setOptions(options: Record<string, any>): void;
@@ -611,6 +612,8 @@ declare interface BaseOptions {
611
612
  css2DContainer?: HTMLElement;
612
613
  controlsContainer?: HTMLElement;
613
614
  pencil?: any;
615
+ /** Internal: Owned by SceneManager until the first Pencil adopts it. */
616
+ rendererWarmup?: ReturnType<typeof Pencil.prewarmRenderer>;
614
617
  pencilConfig?: Record<string, any>;
615
618
  disableInitShow?: boolean;
616
619
  logarithmicDepthBuffer?: boolean;
@@ -1741,7 +1744,7 @@ declare class CameraPages extends OrigonPages<PerspectiveCamera_2> {
1741
1744
  private _cachedMatrixWorldInverse;
1742
1745
  private externallySyncedCameras;
1743
1746
  private ownedCameras;
1744
- constructor(options: Options_3);
1747
+ constructor(options: Options_4);
1745
1748
  addPerspectiveCamera(cameraParams?: {
1746
1749
  fov: number;
1747
1750
  aspect?: number;
@@ -1992,11 +1995,11 @@ declare const ColorSpace: {
1992
1995
  /** WebGPU render pipeline. Compatibility controls retain the saved scene schema. */
1993
1996
  declare class Composer {
1994
1997
  renderer: WebGPURenderer;
1995
- scene: Scene_2;
1998
+ scene: Scene;
1996
1999
  camera: Camera_2;
1997
2000
  finalComposer: RenderPipeline;
1998
2001
  renderPass: {
1999
- scene: Scene_2;
2002
+ scene: Scene;
2000
2003
  camera: Camera_2;
2001
2004
  };
2002
2005
  bloomComposer?: RenderTarget;
@@ -2027,7 +2030,7 @@ declare class Composer {
2027
2030
  bloomSelection: Set<BaseObject< Object3D<Object3DEventMap>>>;
2028
2031
  bloomLayer: Layers;
2029
2032
  active: boolean;
2030
- options: Options_2;
2033
+ options: Options_3;
2031
2034
  private readonly target;
2032
2035
  private overlayTarget?;
2033
2036
  private outputPipeline?;
@@ -2049,13 +2052,15 @@ declare class Composer {
2049
2052
  private readonly gtaoViews;
2050
2053
  private readonly onCameraChange;
2051
2054
  private readonly onSceneChange;
2052
- constructor(options: Options_2);
2055
+ constructor(options: Options_3);
2053
2056
  private createDepthTexture;
2057
+ /** Reconcile async backend selection before the first draw; preserve target identities. */
2058
+ synchronizeRendererCapabilities(multisampling?: number): void;
2054
2059
  private resizeTargets;
2055
2060
  private rebuild;
2056
2061
  private activateView;
2057
2062
  changeCamera(camera: Camera_2): void;
2058
- changeScene(scene: Scene_2): void;
2063
+ changeScene(scene: Scene): void;
2059
2064
  addOutputPass(): void;
2060
2065
  setPremultiplieAlpha(value: boolean): void;
2061
2066
  addSSAOPass(params: SSAOParams): void;
@@ -2217,7 +2222,7 @@ declare class CSSRendererController {
2217
2222
  setSize(width: number, height: number): void;
2218
2223
  setViewport(viewport: CSSRendererViewport): void;
2219
2224
  private applyViewport;
2220
- render(scene: Scene, camera: PerspectiveCamera_2): void;
2225
+ render(scene: Scene_2, camera: PerspectiveCamera_2): void;
2221
2226
  dispose(): void;
2222
2227
  }
2223
2228
 
@@ -2744,7 +2749,7 @@ declare class Lead_2 extends Pick_2 {
2744
2749
  sceneResources: SceneResources_2;
2745
2750
  get objectsPromise(): MapIterator<Promise<void>>;
2746
2751
  constructor(pencil: Pencil, ops: {
2747
- scene: Scene;
2752
+ scene: Scene_2;
2748
2753
  sceneResources: SceneResources_2;
2749
2754
  });
2750
2755
  /**
@@ -2807,7 +2812,7 @@ declare class LeadPages extends OrigonPages<Lead_2> {
2807
2812
  options: Options_11;
2808
2813
  get lead(): Lead_2;
2809
2814
  constructor(options: Options_11);
2810
- addLead(scene: Scene, sceneResources: SceneResources_2, index?: number): Lead_2;
2815
+ addLead(scene: Scene_2, sceneResources: SceneResources_2, index?: number): Lead_2;
2811
2816
  removePage(index: number): void;
2812
2817
  setPageActive(index: number): void;
2813
2818
  setSize(width: number, height: number): void;
@@ -2892,7 +2897,7 @@ declare class Loader {
2892
2897
  assets: Map<string, Texture | Object3D | any>;
2893
2898
  event: EventEmitter;
2894
2899
  options: Options_9;
2895
- scene: Scene;
2900
+ scene: Scene_2;
2896
2901
  private disposed;
2897
2902
  readonly resources: ResourceRegistry;
2898
2903
  private assetLeases;
@@ -2948,7 +2953,7 @@ declare class LoaderPages extends OrigonPages<Loader> {
2948
2953
  options: Options_10;
2949
2954
  get loader(): Loader;
2950
2955
  constructor(options: Options_10);
2951
- addLoader(scene: Scene, index?: number): Loader;
2956
+ addLoader(scene: Scene_2, index?: number): Loader;
2952
2957
  removePage(index: number): void;
2953
2958
  }
2954
2959
 
@@ -3841,6 +3846,8 @@ declare class OptionMaterialDependencies {
3841
3846
 
3842
3847
  declare interface Options {
3843
3848
  container: HTMLElement;
3849
+ /** Optional single-use renderer prepared by Pencil.prewarmRenderer(). */
3850
+ rendererWarmup?: RendererWarmup;
3844
3851
  helper?: boolean;
3845
3852
  controls?: Partial<ControlsParams>;
3846
3853
  renderer?: Partial<RendererParams>;
@@ -3968,11 +3975,9 @@ declare interface Options_19 {
3968
3975
  }
3969
3976
 
3970
3977
  declare interface Options_2 {
3971
- sceneController: ScenePages;
3972
- cameraController: CameraPages;
3973
- rendererController: RendererController;
3974
- composerParams: ComposerParams;
3975
- resources?: ResourceRegistry;
3978
+ width: number;
3979
+ height: number;
3980
+ rendererParams: RendererParams;
3976
3981
  }
3977
3982
 
3978
3983
  declare interface Options_20 {
@@ -4022,14 +4027,16 @@ declare interface Options_23 {
4022
4027
  }
4023
4028
 
4024
4029
  declare interface Options_3 {
4025
- width: number;
4026
- height: number;
4030
+ sceneController: ScenePages;
4031
+ cameraController: CameraPages;
4032
+ rendererController: RendererController;
4033
+ composerParams: ComposerParams;
4034
+ resources?: ResourceRegistry;
4027
4035
  }
4028
4036
 
4029
4037
  declare interface Options_4 {
4030
4038
  width: number;
4031
4039
  height: number;
4032
- rendererParams: RendererParams;
4033
4040
  }
4034
4041
 
4035
4042
  declare interface Options_5 {
@@ -4045,16 +4052,16 @@ declare interface Options_6 {
4045
4052
 
4046
4053
  declare interface Options_7 {
4047
4054
  renderer: WebGPURenderer;
4048
- scene: Scene_2;
4055
+ scene: Scene;
4049
4056
  /** Authored page identity when scene is a shared overlay. */
4050
- viewScene?: Scene_2;
4057
+ viewScene?: Scene;
4051
4058
  camera: Camera_2;
4052
4059
  }
4053
4060
 
4054
4061
  declare interface Options_8 {
4055
4062
  sceneController: ScenePages;
4056
4063
  /** Editor overlays live outside the authored scene and its render passes. */
4057
- helperScene?: Scene_2;
4064
+ helperScene?: Scene;
4058
4065
  cameraController: CameraPages;
4059
4066
  container: HTMLElement;
4060
4067
  resources?: ResourceRegistry;
@@ -4064,7 +4071,7 @@ declare interface Options_9 {
4064
4071
  prefix?: string;
4065
4072
  simpleTexture4deleted?: boolean;
4066
4073
  anisotropy: number;
4067
- scene: Scene | null;
4074
+ scene: Scene_2 | null;
4068
4075
  resources?: ResourceRegistry;
4069
4076
  }
4070
4077
 
@@ -4082,7 +4089,9 @@ declare class OrigonPages<T = any> {
4082
4089
  }
4083
4090
 
4084
4091
  /** Pack an export copy only; preserve the editor's independent scene snapshots. */
4085
- export declare function packSceneDocumentResources<T extends VisSceneDocument>(document: T): T;
4092
+ export declare function packSceneDocumentResources<T extends VisSceneDocument>(document: T, options?: {
4093
+ encodePixels?: boolean;
4094
+ }): T;
4086
4095
 
4087
4096
  /** Page identities are independent of Three's 32 rendering layers. */
4088
4097
  declare class Pages {
@@ -4147,7 +4156,7 @@ export declare function patchSceneViewportDocument(document: VisSceneDocument, s
4147
4156
  declare class Pencil {
4148
4157
  readonly resources: ResourceRegistry;
4149
4158
  readonly ready: Promise<void>;
4150
- options: Omit<DeepRequiredOptions, 'controls' | 'loader' | 'css2DRendererParams' | 'css3DRendererParams'> & Pick<Options, 'controls' | 'loader'> & {
4159
+ options: Omit<DeepRequiredOptions, 'controls' | 'loader' | 'css2DRendererParams' | 'css3DRendererParams' | 'rendererWarmup'> & Pick<Options, 'controls' | 'loader'> & {
4151
4160
  css2DRendererParams: CSSRendererParams;
4152
4161
  css3DRendererParams: CSSRendererParams;
4153
4162
  };
@@ -4161,7 +4170,7 @@ declare class Pencil {
4161
4170
  helperController?: HelperController;
4162
4171
  private _helperScene?;
4163
4172
  /** Drawn only in the editor, after the authored scene's postprocessing. */
4164
- get helperScene(): Scene_2< Object3DEventMap>;
4173
+ get helperScene(): Scene< Object3DEventMap>;
4165
4174
  private sceneCapture?;
4166
4175
  loaderController: LoaderPages;
4167
4176
  leadController: LeadPages;
@@ -4182,7 +4191,7 @@ declare class Pencil {
4182
4191
  get cameraPositon(): Vector3_2;
4183
4192
  get cameraTarget(): Vector3_2;
4184
4193
  get camera(): PerspectiveCamera;
4185
- get scene(): Scene_2< Object3DEventMap>;
4194
+ get scene(): Scene< Object3DEventMap>;
4186
4195
  get loader(): Loader;
4187
4196
  get lead(): Lead_2;
4188
4197
  get sceneResources(): SceneResources_2;
@@ -4195,6 +4204,7 @@ declare class Pencil {
4195
4204
  controls: boolean;
4196
4205
  renderer: {
4197
4206
  forceWebGL: boolean;
4207
+ autoDepthBuffer: boolean;
4198
4208
  antialias: boolean;
4199
4209
  devicePixelRatio: number;
4200
4210
  powerPreference: string;
@@ -4262,6 +4272,9 @@ declare class Pencil {
4262
4272
  attributesWorkerMaxWorkers: number;
4263
4273
  };
4264
4274
  private TweenRaf;
4275
+ private rendererWarmup?;
4276
+ /** Start only the GPU environment; the eventual Pencil takes ownership. */
4277
+ static prewarmRenderer(renderer?: Partial<RendererParams>): RendererWarmup;
4265
4278
  private tweenUpdateRaf;
4266
4279
  private cancelTweenRaf;
4267
4280
  constructor(options: Options);
@@ -4678,7 +4691,12 @@ export declare function remapProjectMaterialIds<T extends VisSceneDocument>(docu
4678
4691
  * 复制一组场景并为它们分配新 ID,同时保持文档内部的场景跳转关系。
4679
4692
  * 用于把完整模板追加到另一个场景文档中。
4680
4693
  */
4681
- export declare function remapSceneDocumentIds(document: VisSceneDocument, createSceneId: (scene: SceneViewportDocument, index: number) => string): RemappedSceneDocument;
4694
+ export declare function remapSceneDocumentIds(document: VisSceneDocument, createSceneId: (scene: SceneViewportDocument, index: number) => string, options?: {
4695
+ /** Leave authored definitions in the library until the selected scene loads. */
4696
+ materialize?: boolean;
4697
+ /** Resolve cross-project material collisions in the same ownership pass. */
4698
+ occupiedMaterialIds?: Iterable<string>;
4699
+ }): RemappedSceneDocument;
4682
4700
 
4683
4701
  export declare const remapSceneMaterialReferencesCopy: <T>(scene: T, previous: string, next: string) => T;
4684
4702
 
@@ -4706,13 +4724,14 @@ declare class RendererController {
4706
4724
  private disposed;
4707
4725
  private hasRenderableSize;
4708
4726
  private readonly pointSprites;
4709
- options: Options_4;
4727
+ options: Options_2;
4710
4728
  private displayScaleObserver?;
4711
- constructor(options: Options_4);
4729
+ private releaseRenderPipelines?;
4730
+ constructor(options: Options_2);
4712
4731
  observeDisplayScale(container: HTMLElement): void;
4713
4732
  setSize(width: number, height: number): void;
4714
4733
  setPixelRatio(ratio: number): void;
4715
- render(scene: Scene_2, camera: Camera_2): void;
4734
+ render(scene: Scene, camera: Camera_2): void;
4716
4735
  setViewport(op: {
4717
4736
  x: number;
4718
4737
  y: number;
@@ -4736,10 +4755,26 @@ declare interface RendererParams {
4736
4755
  stencil: boolean;
4737
4756
  depth: boolean;
4738
4757
  reversedDepthBuffer: boolean;
4758
+ /** Prefer reversed depth on the selected backend; retain logarithmic depth on GL without EXT_clip_control. */
4759
+ autoDepthBuffer?: boolean;
4739
4760
  /** Use the WebGL 2 backend of WebGPURenderer, primarily for compatibility testing. */
4740
4761
  forceWebGL?: boolean;
4741
4762
  }
4742
4763
 
4764
+ /** A single-use, privately owned renderer. No scene, loader, DOM attachment or render loop. */
4765
+ declare class RendererWarmup {
4766
+ readonly ready: Promise<void>;
4767
+ private controller?;
4768
+ private readonly parameters;
4769
+ private cancelled;
4770
+ private detachDeviceListener?;
4771
+ get available(): boolean;
4772
+ constructor(parameters: RendererParams);
4773
+ /** Transfer ownership only when the final scene's renderer configuration matches. */
4774
+ take(parameters: RendererParams, width: number, height: number): RendererController | undefined;
4775
+ dispose(): void;
4776
+ }
4777
+
4743
4778
  export declare function replaceMaterialAssetDocument(document: VisSceneDocument, asset: MaterialAsset): VisSceneDocument;
4744
4779
 
4745
4780
  export declare const RESOURCE_SOURCE = "_resourceSource";
@@ -4872,6 +4907,8 @@ declare class ResourceScope {
4872
4907
  }
4873
4908
 
4874
4909
  declare interface RestoreBaseObjectOptions {
4910
+ /** Image loading boundaries, before native materials and scene objects are restored. */
4911
+ onResourceLoad?: (phase: 'start' | 'done') => void | Promise<void>;
4875
4912
  /** Transfer an exclusively owned snapshot between packages; restoration may mutate it. */
4876
4913
  consumeInput?: boolean;
4877
4914
  /** The caller must validate equality with the serialized resource definitions. */
@@ -5009,6 +5046,8 @@ export declare class SceneManager extends Event_2 {
5009
5046
  private isSwitching;
5010
5047
  private isRegionSwitching;
5011
5048
  private pencil?;
5049
+ private rendererWarmup?;
5050
+ private disposed;
5012
5051
  private safeAreaInsets?;
5013
5052
  private generation;
5014
5053
  private mapRequests;
@@ -5040,6 +5079,13 @@ export declare class SceneManager extends Event_2 {
5040
5079
  setSceneCachePolicy(cacheScenes: boolean, maxCachedScenes?: number | undefined): void;
5041
5080
  private reportSceneRetirementErrors;
5042
5081
  constructor(options: SceneManagerInitOptions);
5082
+ /**
5083
+ * Initialize the eventual renderer without downloading/expanding a scene or drawing.
5084
+ * Call after starting template I/O to overlap network work with GPU startup.
5085
+ * Repeated calls share one promise. A scene with different renderer options
5086
+ * uses its own compatible renderer; failed warmups may be retried.
5087
+ */
5088
+ prewarmRuntime(): Promise<void>;
5043
5089
  private prepareScene;
5044
5090
  /** Publish one identity remap without exporting runtimes or copying other pages/resources. */
5045
5091
  remapCommittedIdentity(sceneId: string, previous: string, next: string, objectIdentity: boolean): boolean;
@@ -5103,7 +5149,12 @@ export declare class SceneManager extends Event_2 {
5103
5149
  commitSceneStructure(prepared: PreparedSceneStructure): void;
5104
5150
  /** Commit scalar material history without accepting or copying caller object graphs. */
5105
5151
  patchMaterialDefinitions(assets: MaterialAsset[], scenes: Pick<SceneViewportDocument, 'id'>[], scope?: MaterialDefinitionScope): void;
5106
- load(documentOrUrl: VisSceneDocument | VisSceneManifest | string, hooks?: Record<string, any>): Promise<Base_3>;
5152
+ load(documentOrUrl: VisSceneDocument | VisSceneManifest | string, hooks?: Record<string, any>, options?: {
5153
+ /** Transfer a detached document to the manager; the caller must not mutate it afterwards. */
5154
+ consumeInput?: boolean;
5155
+ /** Restore a saved active scene without changing the project's entry scene. */
5156
+ sceneId?: string;
5157
+ }): Promise<Base_3>;
5107
5158
  /**
5108
5159
  * 创建一个没有快照输入的运行时页面,并在可选构建步骤完成后将其导出为
5109
5160
  * 标准单场景文档。主要供编辑器新建和旧模板迁移使用。
@@ -5239,14 +5290,14 @@ export declare interface SceneObjectPropertyPatch {
5239
5290
  unset?: readonly string[];
5240
5291
  }
5241
5292
 
5242
- declare class ScenePages extends OrigonPages<Scene> {
5243
- get scene(): Scene< Object3DEventMap>;
5244
- addScene(sceneParams?: SceneParams, index?: number): Scene< Object3DEventMap>;
5293
+ declare class ScenePages extends OrigonPages<Scene_2> {
5294
+ get scene(): Scene_2< Object3DEventMap>;
5295
+ addScene(sceneParams?: SceneParams, index?: number): Scene_2< Object3DEventMap>;
5245
5296
  setPageActive(index: number): void;
5246
5297
  }
5247
5298
 
5248
5299
  declare interface SceneParams {
5249
- background: Scene['background'];
5300
+ background: Scene_2['background'];
5250
5301
  }
5251
5302
 
5252
5303
  declare type ScenePropertyField = typeof scenePropertyFields[number];
@@ -5398,18 +5449,22 @@ export declare interface SceneStructurePatch {
5398
5449
  set?: Partial<Record<SceneStructureGraphKey, any>>;
5399
5450
  unset?: SceneStructureGraphKey[];
5400
5451
  };
5452
+ /** Optional order lists every final row identity, including unchanged rows. */
5401
5453
  resources?: Partial<Record<SceneStructureResource, {
5402
5454
  upsert?: Record<string, any>[];
5403
5455
  remove?: string[];
5456
+ order?: string[];
5404
5457
  unset?: true;
5405
5458
  }>>;
5406
5459
  assets?: {
5407
5460
  upsert?: MaterialAsset[];
5408
5461
  remove?: string[];
5462
+ order?: string[];
5409
5463
  };
5410
5464
  prefabs?: {
5411
5465
  upsert?: PrefabAsset[];
5412
5466
  remove?: string[];
5467
+ order?: string[];
5413
5468
  };
5414
5469
  }
5415
5470
 
@@ -5746,7 +5801,7 @@ declare class TransformControlsController {
5746
5801
  event: EventEmitter;
5747
5802
  constructor(options: Options_7);
5748
5803
  setViewport(viewport: Viewport): void;
5749
- bindActiveView(camera: Camera_2 | undefined, scene: Scene_2 | undefined, viewScene?: Scene_2< Object3DEventMap> | undefined): void;
5804
+ bindActiveView(camera: Camera_2 | undefined, scene: Scene | undefined, viewScene?: Scene< Object3DEventMap> | undefined): void;
5750
5805
  private releaseRaycastCamera;
5751
5806
  private getBoundingClientRect;
5752
5807
  addEvent(): void;
@@ -5811,7 +5866,7 @@ declare class UseMaterial extends PointerEvent_2 {
5811
5866
 
5812
5867
  declare type ValuesOf<T extends readonly any[]> = T[number];
5813
5868
 
5814
- export declare const VERSION = "0.33.14";
5869
+ export declare const VERSION = "0.33.16";
5815
5870
 
5816
5871
  declare interface Viewport {
5817
5872
  left: number;