@tomorrowevening/hermes 0.0.172 → 0.1.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/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "module": "./dist/hermes.esm.js",
8
8
  "types": "./types/index.d.ts",
9
9
  "type": "module",
10
- "version": "0.0.172",
10
+ "version": "0.1.0",
11
11
  "homepage": "https://github.com/tomorrowevening/hermes#readme",
12
12
  "bugs": {
13
13
  "url": "https://github.com/tomorrowevening/hermes/issues"
@@ -1,95 +1,29 @@
1
- import { EventDispatcher } from 'three';
2
- import BaseRemote from './remote/BaseRemote';
3
- import { ApplicationMode, BroadcastData } from './types';
4
- import { AppSettings } from '@/utils/detectSettings';
5
- export declare enum ToolEvents {
6
- CUSTOM = "ToolEvents::custom",
7
- REMOTE_CONNECTED = "ToolEvents::remoteConnected",
8
- REMOTE_DISCONNECTED = "ToolEvents::remoteDisconnected",
9
- SELECT_DROPDOWN = "ToolEvents::selectDropdown",
10
- DRAG_UPDATE = "ToolEvents::dragUpdate",
11
- ADD_SCENE = "ToolEvents::addScene",
12
- REFRESH_SCENE = "ToolEvents::refreshScene",
13
- REMOVE_SCENE = "ToolEvents::removeScene",
14
- SET_SCENE = "ToolEvents::setScene",
15
- GET_OBJECT = "ToolEvents::getObject",
16
- SET_OBJECT = "ToolEvents::setObject",
17
- CLEAR_OBJECT = "ToolEvents::clearObject",
18
- UPDATE_OBJECT = "ToolEvents::updateObject",
19
- CREATE_TEXTURE = "ToolEvents::createTexture",
20
- REQUEST_METHOD = "ToolEvents::requestMethod",
21
- ADD_CAMERA = "ToolEvents::addCamera",
22
- REMOVE_CAMERA = "ToolEvents::removeCamera",
23
- ADD_GROUP = "ToolEvents::addGroup",
24
- REMOVE_GROUP = "ToolEvents::removeGroup",
25
- ADD_SPLINE = "ToolEvents::addSpline",
26
- ADD_RENDERER = "ToolEvents::addRenderer",
27
- UPDATE_RENDERER = "ToolEvents::updateRenderer"
28
- }
29
- export type ToolEvent = {
30
- [key in ToolEvents]: {
31
- value?: unknown;
32
- };
33
- };
34
- export type RemoteCallback = (msg: BroadcastData) => void;
35
- export interface RemoteCall {
36
- remote: any;
37
- callback: RemoteCallback;
38
- }
39
- export declare class Application extends EventDispatcher<ToolEvent> {
40
- assets: {
41
- audio: Map<string, any>;
42
- image: Map<string, ImageBitmap>;
43
- json: Map<string, any>;
44
- model: Map<string, any>;
45
- video: Map<string, any>;
46
- };
47
- components: Map<string, any>;
48
- settings: AppSettings;
49
- appHandlers: RemoteCall[];
50
- editorHandlers: RemoteCall[];
51
- onUpdateCallback?: () => void;
52
- protected _appID: string;
53
- protected _mode: ApplicationMode;
54
- protected _broadcastChannel?: BroadcastChannel | undefined;
55
- protected _webSocket?: WebSocket | undefined;
56
- protected _connected: boolean;
57
- protected _useBC: boolean;
58
- protected playing: boolean;
59
- protected rafID: number;
60
- protected _pingInterval?: number;
61
- protected _lastPingTime: number;
62
- protected _pingTimeout: number;
63
- protected _peerConnected: boolean;
64
- constructor(id: string);
65
- dispose(): void;
66
- detectSettings(dev?: boolean, editor?: boolean): Promise<void>;
67
- update(): void;
68
- draw(): void;
69
- play: () => void;
70
- pause: () => void;
71
- private onUpdate;
72
- setupRemote(useBC?: boolean): void;
73
- addComponent(name: string, component: BaseRemote): void;
74
- send(data: BroadcastData): void;
75
- private messageHandler;
76
- private handleAppBroadcast;
77
- private handleEditorBroadcast;
78
- private openHandler;
79
- private closeHandler;
80
- get appID(): string;
81
- get connected(): boolean;
82
- get debugEnabled(): boolean;
83
- get mode(): ApplicationMode;
84
- set mode(value: ApplicationMode);
85
- get isApp(): boolean;
86
- set isApp(value: boolean);
87
- get editor(): boolean;
88
- set editor(value: boolean);
89
- get peerConnected(): boolean;
90
- private startPing;
91
- private stopPing;
92
- private sendPing;
93
- private handlePing;
94
- private checkPingTimeout;
95
- }
1
+ import BaseRemote from './remote/BaseRemote';
2
+ import { AppSettings } from '@/utils/detectSettings';
3
+ export declare class Application {
4
+ assets: {
5
+ audio: Map<string, any>;
6
+ image: Map<string, ImageBitmap>;
7
+ json: Map<string, any>;
8
+ model: Map<string, any>;
9
+ video: Map<string, any>;
10
+ };
11
+ components: Map<string, any>;
12
+ settings: AppSettings;
13
+ onUpdateCallback?: () => void;
14
+ protected playing: boolean;
15
+ protected rafID: number;
16
+ dispose(): void;
17
+ detectSettings(dev?: boolean, editor?: boolean): Promise<void>;
18
+ update(): void;
19
+ draw(): void;
20
+ play: () => void;
21
+ pause: () => void;
22
+ private onUpdate;
23
+ addComponent(name: string, component: BaseRemote): void;
24
+ get debugEnabled(): boolean;
25
+ get isApp(): boolean;
26
+ set isApp(value: boolean);
27
+ get editor(): boolean;
28
+ set editor(value: boolean);
29
+ }
@@ -1,9 +1,15 @@
1
- import { Application } from '../Application';
2
- import type { BroadcastData } from '../types';
3
- export default class BaseRemote {
4
- app: Application;
5
- constructor(app: Application);
6
- dispose(): void;
7
- handleApp(msg: BroadcastData): void;
8
- handleEditor(msg: BroadcastData): void;
9
- }
1
+ import type { BroadcastData } from '../types';
2
+ export default class BaseRemote {
3
+ name: string;
4
+ protected _debug: boolean;
5
+ protected _editor: boolean;
6
+ protected broadcastChannel?: BroadcastChannel;
7
+ constructor(name: string, debug?: boolean, editor?: boolean);
8
+ dispose(): void;
9
+ get debug(): boolean;
10
+ get editor(): boolean;
11
+ protected send(data: BroadcastData): void;
12
+ protected messageHandler: (evt: MessageEvent) => void;
13
+ protected handleApp(msg: BroadcastData): void;
14
+ protected handleEditor(msg: BroadcastData): void;
15
+ }
@@ -1,32 +1,33 @@
1
- import { IProject, ISheet, ISheetObject } from '@theatre/core';
2
- import BaseRemote from './BaseRemote';
3
- import { BroadcastData, DataUpdateCallback, VoidCallback } from '../types';
4
- type KeyframeVector = {
5
- position: number;
6
- x: number;
7
- y: number;
8
- z: number;
9
- };
10
- export default class RemoteTheatre extends BaseRemote {
11
- project: IProject | undefined;
12
- sheets: Map<string, ISheet>;
13
- sheetObjects: Map<string, ISheetObject>;
14
- sheetObjectCBs: Map<string, DataUpdateCallback>;
15
- sheetObjectUnsubscribe: Map<string, VoidCallback>;
16
- activeSheet: ISheet | undefined;
17
- studio: any;
18
- dispose(): void;
19
- getSheetInstance(name: string, instanceId?: string): string;
20
- sheet(name: string, instanceId?: string): ISheet | undefined;
21
- playSheet(name: string, params?: any, instanceId?: string): Promise<boolean>;
22
- pauseSheet(name: string, instanceId?: string): void;
23
- clearSheetObjects(sheetName: string): void;
24
- sheetObject(sheetName: string, key: string, props: any, onUpdate?: DataUpdateCallback, instanceId?: string): ISheetObject | undefined;
25
- getSheetObjectKeyframes(sheetName: string, sheetObject: string, prop: string): any[];
26
- getSheetObjectVectors(sheetName: string, sheetObject: string): KeyframeVector[];
27
- unsubscribe(sheetObject: ISheetObject): undefined;
28
- handleApp(msg: BroadcastData): void;
29
- handleEditor(msg: BroadcastData): void;
30
- handleEditorApp(): void;
31
- }
32
- export {};
1
+ import { IProject, ISheet, ISheetObject } from '@theatre/core';
2
+ import BaseRemote from './BaseRemote';
3
+ import { BroadcastData, DataUpdateCallback, VoidCallback } from '../types';
4
+ type KeyframeVector = {
5
+ position: number;
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ };
10
+ export default class RemoteTheatre extends BaseRemote {
11
+ project: IProject | undefined;
12
+ sheets: Map<string, ISheet>;
13
+ sheetObjects: Map<string, ISheetObject>;
14
+ sheetObjectCBs: Map<string, DataUpdateCallback>;
15
+ sheetObjectUnsubscribe: Map<string, VoidCallback>;
16
+ activeSheet: ISheet | undefined;
17
+ studio: any;
18
+ constructor(debug?: boolean, editor?: boolean);
19
+ dispose(): void;
20
+ getSheetInstance(name: string, instanceId?: string): string;
21
+ sheet(name: string, instanceId?: string): ISheet | undefined;
22
+ playSheet(name: string, params?: any, instanceId?: string): Promise<boolean>;
23
+ pauseSheet(name: string, instanceId?: string): void;
24
+ clearSheetObjects(sheetName: string): void;
25
+ sheetObject(sheetName: string, key: string, props: any, onUpdate?: DataUpdateCallback, instanceId?: string): ISheetObject | undefined;
26
+ getSheetObjectKeyframes(sheetName: string, sheetObject: string, prop: string): any[];
27
+ getSheetObjectVectors(sheetName: string, sheetObject: string): KeyframeVector[];
28
+ unsubscribe(sheetObject: ISheetObject): undefined;
29
+ protected handleApp(msg: BroadcastData): void;
30
+ protected handleEditor(msg: BroadcastData): void;
31
+ handleEditorApp(): void;
32
+ }
33
+ export {};
@@ -1,42 +1,74 @@
1
- import { Camera, Curve, RenderTargetOptions, Scene, WebGLRenderTarget } from 'three';
2
- import BaseRemote from './BaseRemote';
3
- import { BroadcastData, GroupData } from '../types';
4
- export default class RemoteThree extends BaseRemote {
5
- canvas: HTMLCanvasElement | null;
6
- inputElement: any;
7
- scene?: Scene;
8
- scenes: Map<string, Scene>;
9
- renderer?: any;
10
- renderTargets: Map<string, WebGLRenderTarget>;
11
- private renderTargetsResize;
12
- private groups;
13
- dispose(): void;
14
- getObject(uuid: string): void;
15
- setObject(value: any): void;
16
- requestMethod(uuid: string, key: string, value?: any, subitem?: string): void;
17
- updateObject(uuid: string, key: string, value: any): void;
18
- createTexture(uuid: string, key: string, value: any): void;
19
- addGroup(data: GroupData): void;
20
- removeGroup(name: string): void;
21
- updateGroup(group: string, prop: string, value: any): void;
22
- addSpline(spline: Curve<any>): void;
23
- setRenderer(value: any, inputElement?: any): void;
24
- updateRenderer(data: any): void;
25
- addScene(value: Scene): void;
26
- refreshScene(value: string): void;
27
- removeScene(value: Scene): void;
28
- removeAllScenes(): void;
29
- getScene(uuid: string): Scene | null;
30
- setScene(value: Scene): void;
31
- addCamera(camera: Camera): void;
32
- removeCamera(camera: Camera): void;
33
- handleApp(msg: BroadcastData): void;
34
- handleEditor(msg: BroadcastData): void;
35
- addRT(name: string, resize?: boolean, params?: RenderTargetOptions): void;
36
- removeRT(name: string): void;
37
- resize(width: number, height: number): void;
38
- set dpr(value: number);
39
- get dpr(): number;
40
- get width(): number;
41
- get height(): number;
42
- }
1
+ import { Camera, Curve, EventDispatcher, EventListener, RenderTargetOptions, Scene, WebGLRenderTarget } from 'three';
2
+ import BaseRemote from './BaseRemote';
3
+ import { BroadcastData, GroupData } from '../types';
4
+ export declare enum ToolEvents {
5
+ CUSTOM = "ToolEvents::custom",
6
+ SELECT_DROPDOWN = "ToolEvents::selectDropdown",
7
+ DRAG_UPDATE = "ToolEvents::dragUpdate",
8
+ ADD_SCENE = "ToolEvents::addScene",
9
+ REFRESH_SCENE = "ToolEvents::refreshScene",
10
+ REMOVE_SCENE = "ToolEvents::removeScene",
11
+ SET_SCENE = "ToolEvents::setScene",
12
+ SET_OBJECT = "ToolEvents::setObject",
13
+ CLEAR_OBJECT = "ToolEvents::clearObject",
14
+ ADD_CAMERA = "ToolEvents::addCamera",
15
+ REMOVE_CAMERA = "ToolEvents::removeCamera",
16
+ ADD_GROUP = "ToolEvents::addGroup",
17
+ REMOVE_GROUP = "ToolEvents::removeGroup",
18
+ ADD_SPLINE = "ToolEvents::addSpline",
19
+ ADD_RENDERER = "ToolEvents::addRenderer",
20
+ UPDATE_RENDERER = "ToolEvents::updateRenderer"
21
+ }
22
+ export type ToolEvent = {
23
+ [key in ToolEvents]: {
24
+ value?: unknown;
25
+ };
26
+ };
27
+ export default class RemoteThree extends BaseRemote implements EventDispatcher<ToolEvent> {
28
+ name: string;
29
+ canvas: HTMLCanvasElement | null;
30
+ inputElement: any;
31
+ scene?: Scene;
32
+ scenes: Map<string, Scene>;
33
+ renderer?: any;
34
+ renderTargets: Map<string, WebGLRenderTarget>;
35
+ private renderTargetsResize;
36
+ private groups;
37
+ private _listeners;
38
+ constructor(name: string, debug?: boolean, editor?: boolean);
39
+ dispose(): void;
40
+ addEventListener<T extends ToolEvents>(type: T, listener: EventListener<ToolEvent[T], T, this>): void;
41
+ hasEventListener<T extends ToolEvents>(type: T, listener: EventListener<ToolEvent[T], T, this>): boolean;
42
+ removeEventListener<T extends ToolEvents>(type: T, listener: EventListener<ToolEvent[T], T, this>): void;
43
+ dispatchEvent<T extends ToolEvents>(event: ToolEvent[T] & {
44
+ type: T;
45
+ }): void;
46
+ getObject(uuid: string): void;
47
+ setObject(value: any): void;
48
+ requestMethod(uuid: string, key: string, value?: any, subitem?: string): void;
49
+ updateObject(uuid: string, key: string, value: any): void;
50
+ createTexture(uuid: string, key: string, value: any): void;
51
+ addGroup(data: GroupData): void;
52
+ removeGroup(name: string): void;
53
+ updateGroup(group: string, prop: string, value: any): void;
54
+ addSpline(spline: Curve<any>): void;
55
+ setRenderer(value: any, inputElement?: any): void;
56
+ updateRenderer(data: any): void;
57
+ addScene(value: Scene): void;
58
+ refreshScene(value: string): void;
59
+ removeScene(value: Scene): void;
60
+ removeAllScenes(): void;
61
+ getScene(uuid: string): Scene | null;
62
+ setScene(value: Scene): void;
63
+ addCamera(camera: Camera): void;
64
+ removeCamera(camera: Camera): void;
65
+ handleApp(msg: BroadcastData): void;
66
+ handleEditor(msg: BroadcastData): void;
67
+ addRT(name: string, resize?: boolean, params?: RenderTargetOptions): void;
68
+ removeRT(name: string): void;
69
+ resize(width: number, height: number): void;
70
+ set dpr(value: number);
71
+ get dpr(): number;
72
+ get width(): number;
73
+ get height(): number;
74
+ }
@@ -1,40 +1,40 @@
1
- import { InspectorFieldType } from '@/editor/sidePanel/inspector/InspectorField';
2
- export interface BroadcastData {
3
- target: ApplicationMode;
4
- event: EditorEvent;
5
- data?: any;
6
- }
7
- export type OptionInfo = {
8
- title: string;
9
- value: any;
10
- };
11
- export interface GroupItemData {
12
- type: InspectorFieldType;
13
- prop: string;
14
- title?: string;
15
- value?: any;
16
- min?: number;
17
- max?: number;
18
- step?: number;
19
- disabled?: boolean;
20
- options?: OptionInfo[];
21
- }
22
- export interface GroupData {
23
- title: string;
24
- expanded?: boolean;
25
- items: GroupItemData[];
26
- onUpdate: (prop: string, value: any) => void;
27
- }
28
- export interface GroupCallback {
29
- title: string;
30
- onUpdate: (prop: string, value: any) => void;
31
- }
32
- export type ApplicationMode = 'app' | 'editor';
33
- export type VoidCallback = () => void;
34
- export type DataUpdateCallback = (data: any) => void;
35
- export type EditorEvent = 'custom' | 'ping' | 'setSheet' | 'setSheetObject' | 'updateSheetObject' | 'updateTimeline' | 'playSheet' | 'pauseSheet' | 'getObject' | 'setObject' | 'updateObject' | 'addScene' | 'refreshScene' | 'removeScene' | 'setScene' | 'createTexture' | 'requestMethod' | 'addCamera' | 'removeCamera' | 'addSpline' | 'addRenderer' | 'updateRenderer' | 'addFolder' | 'bindObject' | 'updateBind' | 'addButton' | 'clickButton' | 'selectComponent' | 'draggableListUpdate' | 'addGroup' | 'removeGroup' | 'updateGroup';
36
- export type VoidFunc = () => void;
37
- export type BroadcastCallback = (data: BroadcastData) => void;
38
- export type TheatreUpdateCallback = (data: any) => void;
39
- export declare const noop: () => void;
40
- export declare const defaultTheatreCallback: TheatreUpdateCallback;
1
+ import { InspectorFieldType } from '@/editor/sidePanel/inspector/InspectorField';
2
+ export interface BroadcastData {
3
+ target: ApplicationMode;
4
+ event: EditorEvent;
5
+ data?: any;
6
+ }
7
+ export type OptionInfo = {
8
+ title: string;
9
+ value: any;
10
+ };
11
+ export interface GroupItemData {
12
+ type: InspectorFieldType;
13
+ prop: string;
14
+ title?: string;
15
+ value?: any;
16
+ min?: number;
17
+ max?: number;
18
+ step?: number;
19
+ disabled?: boolean;
20
+ options?: OptionInfo[];
21
+ }
22
+ export interface GroupData {
23
+ title: string;
24
+ expanded?: boolean;
25
+ items: GroupItemData[];
26
+ onUpdate: (prop: string, value: any) => void;
27
+ }
28
+ export interface GroupCallback {
29
+ title: string;
30
+ onUpdate: (prop: string, value: any) => void;
31
+ }
32
+ export type ApplicationMode = 'app' | 'editor';
33
+ export type VoidCallback = () => void;
34
+ export type DataUpdateCallback = (data: any) => void;
35
+ export type EditorEvent = 'custom' | 'setSheet' | 'setSheetObject' | 'updateSheetObject' | 'updateTimeline' | 'playSheet' | 'pauseSheet' | 'getObject' | 'setObject' | 'updateObject' | 'addScene' | 'refreshScene' | 'removeScene' | 'setScene' | 'createTexture' | 'requestMethod' | 'addCamera' | 'removeCamera' | 'addSpline' | 'addRenderer' | 'updateRenderer' | 'addFolder' | 'bindObject' | 'updateBind' | 'addButton' | 'clickButton' | 'addGroup' | 'removeGroup' | 'updateGroup';
36
+ export type VoidFunc = () => void;
37
+ export type BroadcastCallback = (data: BroadcastData) => void;
38
+ export type TheatreUpdateCallback = (data: any) => void;
39
+ export declare const noop: () => void;
40
+ export declare const defaultTheatreCallback: TheatreUpdateCallback;
@@ -1,13 +1,10 @@
1
- import { Scene } from 'three';
2
- import { Application } from '@/core/Application';
3
- import RemoteThree from '@/core/remote/RemoteThree';
4
- interface ThreeEditorProps {
5
- app: Application;
6
- three: RemoteThree;
7
- scenes: Map<string, any>;
8
- onSceneSet?: (scene: Scene) => void;
9
- onSceneUpdate?: (scene: Scene) => void;
10
- onSceneResize?: (scene: Scene, width: number, height: number) => void;
11
- }
12
- export default function ThreeEditor(props: ThreeEditorProps): import("react/jsx-runtime").JSX.Element;
13
- export {};
1
+ import { Scene } from 'three';
2
+ import RemoteThree from '@/core/remote/RemoteThree';
3
+ interface ThreeEditorProps {
4
+ three: RemoteThree;
5
+ onSceneSet?: (scene: Scene) => void;
6
+ onSceneUpdate?: (scene: Scene) => void;
7
+ onSceneResize?: (scene: Scene, width: number, height: number) => void;
8
+ }
9
+ export default function ThreeEditor(props: ThreeEditorProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};