@tresjs/core 5.0.0-alpha.1 → 5.0.0-alpha.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.
@@ -0,0 +1,53 @@
1
+ export type DevtoolsMessageType = 'performance' | 'context' | 'asset-load';
2
+ export interface AssetLoadData {
3
+ url: string;
4
+ type: string;
5
+ loaded: boolean;
6
+ size: number;
7
+ asset: HTMLImageElement | HTMLScriptElement | HTMLLinkElement | Blob | ArrayBuffer | null;
8
+ }
9
+ export interface DevtoolsMessage<T = any> {
10
+ type: DevtoolsMessageType;
11
+ data: T;
12
+ timestamp?: number;
13
+ }
14
+ export type DevtoolsSubscriber = (message: DevtoolsMessage) => void;
15
+ /**
16
+ * Messenger class for communicating with Tres DevTools
17
+ * This class will be attached to window.__TRES__DEVTOOLS__
18
+ */
19
+ export declare class DevtoolsMessenger {
20
+ private subscribers;
21
+ private messageQueue;
22
+ private maxQueueSize;
23
+ /**
24
+ * Send a message to devtools subscribers
25
+ * If no subscribers are available, only queueable message types are queued
26
+ */
27
+ send<T>(type: DevtoolsMessageType, data: T): void;
28
+ /**
29
+ * Queue a message for later delivery
30
+ */
31
+ private queueMessage;
32
+ /**
33
+ * Flush all queued messages to current subscribers
34
+ */
35
+ private flushQueue;
36
+ /**
37
+ * Subscribe to devtools messages
38
+ * When a new subscriber is added, all queued messages (asset-load events) are immediately delivered
39
+ */
40
+ subscribe(subscriber: DevtoolsSubscriber): () => void;
41
+ /**
42
+ * Check if there are any subscribers
43
+ */
44
+ get hasSubscribers(): boolean;
45
+ /**
46
+ * Get the current queue size
47
+ */
48
+ get queueSize(): number;
49
+ /**
50
+ * Clear all queued messages
51
+ */
52
+ clearQueue(): void;
53
+ }
@@ -1 +1,2 @@
1
+ export * from './DevtoolsMessenger';
1
2
  export { registerTresDevtools } from './plugin';
@@ -5,6 +5,7 @@ import { default as templateCompilerOptions } from './utils/template-compiler-op
5
5
  export * from './components';
6
6
  export * from './composables';
7
7
  export * from './core/catalogue';
8
+ export * from './devtools';
8
9
  export * from './directives';
9
10
  export * from './types';
10
11
  export * from './utils/graph';
@@ -26,7 +26,7 @@ export declare const isObject3D: (value: unknown) => value is Object3D<import('t
26
26
  * // TypeScript knows value is Mesh here
27
27
  * value.geometry // OK
28
28
  */
29
- export declare const isMesh: (value: unknown) => value is Mesh<BufferGeometry<import('three').NormalBufferAttributes>, Material | Material[], import('three').Object3DEventMap>;
29
+ export declare const isMesh: (value: unknown) => value is Mesh<BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>, Material | Material[], import('three').Object3DEventMap>;
30
30
  /**
31
31
  * Type guard to check if a value is a Three.js Camera
32
32
  * @param value - The value to check
@@ -88,7 +88,7 @@ export declare const isLayers: (value: unknown) => value is Layers;
88
88
  * }
89
89
  * ```
90
90
  */
91
- export declare const isBufferGeometry: (value: unknown) => value is BufferGeometry<import('three').NormalBufferAttributes>;
91
+ export declare const isBufferGeometry: (value: unknown) => value is BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>;
92
92
  /**
93
93
  * Type guard to check if a value is a Three.js Material
94
94
  * @param value - The value to check