@iwsdk/core 0.2.0 → 0.2.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.
Files changed (45) hide show
  1. package/dist/camera/camera-source.d.ts +15 -5
  2. package/dist/camera/camera-source.d.ts.map +1 -1
  3. package/dist/camera/camera-source.js +11 -3
  4. package/dist/camera/camera-source.js.map +1 -1
  5. package/dist/camera/camera-system.d.ts +34 -9
  6. package/dist/camera/camera-system.d.ts.map +1 -1
  7. package/dist/camera/camera-system.js +39 -37
  8. package/dist/camera/camera-system.js.map +1 -1
  9. package/dist/camera/camera-utils.d.ts +2 -2
  10. package/dist/camera/camera-utils.d.ts.map +1 -1
  11. package/dist/camera/camera-utils.js +4 -3
  12. package/dist/camera/camera-utils.js.map +1 -1
  13. package/dist/camera/types.d.ts +14 -7
  14. package/dist/camera/types.d.ts.map +1 -1
  15. package/dist/camera/types.js +12 -8
  16. package/dist/camera/types.js.map +1 -1
  17. package/dist/grab/handles.d.ts +2 -0
  18. package/dist/grab/handles.d.ts.map +1 -1
  19. package/dist/grab/handles.js +34 -11
  20. package/dist/grab/handles.js.map +1 -1
  21. package/dist/index.js +2 -2
  22. package/dist/init/world-initializer.d.ts +6 -2
  23. package/dist/init/world-initializer.d.ts.map +1 -1
  24. package/dist/init/world-initializer.js +13 -3
  25. package/dist/init/world-initializer.js.map +1 -1
  26. package/dist/input/input-system.d.ts +1 -2
  27. package/dist/input/input-system.d.ts.map +1 -1
  28. package/dist/input/input-system.js +22 -33
  29. package/dist/input/input-system.js.map +1 -1
  30. package/dist/physics/physics-system.d.ts +1 -1
  31. package/dist/physics/physics-system.d.ts.map +1 -1
  32. package/dist/physics/physics-system.js +3 -3
  33. package/dist/scene-understanding/scene-understanding-system.d.ts +68 -0
  34. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  35. package/dist/scene-understanding/scene-understanding-system.js +113 -21
  36. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  37. package/dist/ui/index.d.ts +2 -2
  38. package/dist/ui/index.d.ts.map +1 -1
  39. package/dist/ui/ui.d.ts +27 -0
  40. package/dist/ui/ui.d.ts.map +1 -1
  41. package/dist/ui/ui.js +20 -2
  42. package/dist/ui/ui.js.map +1 -1
  43. package/dist/version.d.ts +1 -1
  44. package/dist/version.js +1 -1
  45. package/package.json +4 -4
@@ -5,7 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { Types } from '../ecs/index.js';
8
- import { CameraState } from './types.js';
9
8
  /**
10
9
  * CameraSource - Component for accessing device cameras
11
10
  * Provides VideoTexture for rendering and HTMLVideoElement for advanced use
@@ -16,8 +15,13 @@ export declare const CameraSource: import("elics").Component<{
16
15
  default: string;
17
16
  };
18
17
  facing: {
19
- type: Types.String;
20
- default: string;
18
+ type: Types.Enum;
19
+ enum: {
20
+ readonly Back: "back";
21
+ readonly Front: "front";
22
+ readonly Unknown: "unknown";
23
+ };
24
+ default: "unknown";
21
25
  };
22
26
  width: {
23
27
  type: Types.Int16;
@@ -32,8 +36,14 @@ export declare const CameraSource: import("elics").Component<{
32
36
  default: number;
33
37
  };
34
38
  state: {
35
- type: Types.String;
36
- default: CameraState;
39
+ type: Types.Enum;
40
+ enum: {
41
+ readonly Inactive: "inactive";
42
+ readonly Starting: "starting";
43
+ readonly Active: "active";
44
+ readonly Error: "error";
45
+ };
46
+ default: "inactive";
37
47
  };
38
48
  texture: {
39
49
  type: Types.Object;
@@ -1 +1 @@
1
- {"version":3,"file":"camera-source.d.ts","sourceRoot":"","sources":["../../src/camera/camera-source.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAC"}
1
+ {"version":3,"file":"camera-source.d.ts","sourceRoot":"","sources":["../../src/camera/camera-source.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAGzD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBxB,CAAC"}
@@ -2,7 +2,7 @@ import '@preact/signals-core';
2
2
  import '../ecs/world.js';
3
3
  import { createComponent, Types } from 'elics';
4
4
  import '../ecs/component-registry.js';
5
- import { CameraState } from './types.js';
5
+ import { CameraState, CameraFacing } from './types.js';
6
6
 
7
7
  /**
8
8
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -17,12 +17,20 @@ import { CameraState } from './types.js';
17
17
  const CameraSource = createComponent('CameraSource', {
18
18
  // Input (set by user)
19
19
  deviceId: { type: Types.String, default: '' }, // Empty = auto-select based on facing
20
- facing: { type: Types.String, default: 'back' }, // 'front' | 'back' - used for auto-selection
20
+ facing: {
21
+ type: Types.Enum,
22
+ enum: CameraFacing,
23
+ default: CameraFacing.Unknown,
24
+ }, // 'front' | 'back' | 'unknown' - used for auto-selection (unknown = any camera)
21
25
  width: { type: Types.Int16, default: 1920 },
22
26
  height: { type: Types.Int16, default: 1080 },
23
27
  frameRate: { type: Types.Int16, default: 30 },
24
28
  // Output (managed by system, read-only for users)
25
- state: { type: Types.String, default: CameraState.Inactive }, // 'inactive' | 'starting' | 'active' | 'error'
29
+ state: {
30
+ type: Types.Enum,
31
+ enum: CameraState,
32
+ default: CameraState.Inactive,
33
+ }, // 'inactive' | 'starting' | 'active' | 'error'
26
34
  texture: { type: Types.Object, default: null }, // VideoTexture
27
35
  videoElement: { type: Types.Object, default: null }, // HTMLVideoElement (for advanced use)
28
36
  stream: { type: Types.Object, default: null }, // MediaStream (internal)
@@ -1 +1 @@
1
- {"version":3,"file":"camera-source.js","sources":["../../src/camera/camera-source.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAKH;;;AAGG;AACI,MAAM,YAAY,GAAG,eAAe,CACzC,cAAc,EACd;;AAEE,IAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AAC7C,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;;AAG7C,IAAA,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE;AAC5D,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC9C,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACnD,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;CAC9C,EACD,yCAAyC;;;;"}
1
+ {"version":3,"file":"camera-source.js","sources":["../../src/camera/camera-source.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAKH;;;AAGG;AACI,MAAM,YAAY,GAAG,eAAe,CACzC,cAAc,EACd;;AAEE,IAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;AAC7C,IAAA,MAAM,EAAE;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,YAAY,CAAC,OAAO;AAC9B,KAAA;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;IAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;;AAG7C,IAAA,KAAK,EAAE;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,WAAW,CAAC,QAAQ;AAC9B,KAAA;AACD,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC9C,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACnD,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;CAC9C,EACD,yCAAyC;;;;"}
@@ -4,7 +4,6 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { CameraState } from './types.js';
8
7
  declare const CameraSystem_base: import("elics").SystemConstructor<import("elics").SystemSchema, {
9
8
  cameras: {
10
9
  required: import("elics").Component<{
@@ -13,8 +12,13 @@ declare const CameraSystem_base: import("elics").SystemConstructor<import("elics
13
12
  default: string;
14
13
  };
15
14
  facing: {
16
- type: import("elics/lib/types.js").Types.String;
17
- default: string;
15
+ type: import("elics/lib/types.js").Types.Enum;
16
+ enum: {
17
+ readonly Back: "back";
18
+ readonly Front: "front";
19
+ readonly Unknown: "unknown";
20
+ };
21
+ default: "unknown";
18
22
  };
19
23
  width: {
20
24
  type: import("elics/lib/types.js").Types.Int16;
@@ -29,8 +33,14 @@ declare const CameraSystem_base: import("elics").SystemConstructor<import("elics
29
33
  default: number;
30
34
  };
31
35
  state: {
32
- type: import("elics/lib/types.js").Types.String;
33
- default: CameraState;
36
+ type: import("elics/lib/types.js").Types.Enum;
37
+ enum: {
38
+ readonly Inactive: "inactive";
39
+ readonly Starting: "starting";
40
+ readonly Active: "active";
41
+ readonly Error: "error";
42
+ };
43
+ default: "inactive";
34
44
  };
35
45
  texture: {
36
46
  type: import("elics/lib/types.js").Types.Object;
@@ -54,8 +64,13 @@ declare const CameraSystem_base: import("elics").SystemConstructor<import("elics
54
64
  default: string;
55
65
  };
56
66
  facing: {
57
- type: import("elics/lib/types.js").Types.String;
58
- default: string;
67
+ type: import("elics/lib/types.js").Types.Enum;
68
+ enum: {
69
+ readonly Back: "back";
70
+ readonly Front: "front";
71
+ readonly Unknown: "unknown";
72
+ };
73
+ default: "unknown";
59
74
  };
60
75
  width: {
61
76
  type: import("elics/lib/types.js").Types.Int16;
@@ -70,8 +85,14 @@ declare const CameraSystem_base: import("elics").SystemConstructor<import("elics
70
85
  default: number;
71
86
  };
72
87
  state: {
73
- type: import("elics/lib/types.js").Types.String;
74
- default: CameraState;
88
+ type: import("elics/lib/types.js").Types.Enum;
89
+ enum: {
90
+ readonly Inactive: "inactive";
91
+ readonly Starting: "starting";
92
+ readonly Active: "active";
93
+ readonly Error: "error";
94
+ };
95
+ default: "inactive";
75
96
  };
76
97
  texture: {
77
98
  type: import("elics/lib/types.js").Types.Object;
@@ -109,6 +130,10 @@ export declare class CameraSystem extends CameraSystem_base {
109
130
  * Stop camera stream for an entity
110
131
  */
111
132
  private stopCamera;
133
+ /**
134
+ * Clean up camera resources (stream, video element, texture)
135
+ */
136
+ private cleanupCameraResources;
112
137
  }
113
138
  export {};
114
139
  //# sourceMappingURL=camera-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera-system.d.ts","sourceRoot":"","sources":["../../src/camera/camera-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAEhC;IACA,IAAI;IAWJ,MAAM;IAkBN;;;;;;OAMG;YACW,WAAW;IAuJzB;;OAEG;IACH,OAAO,CAAC,UAAU;CAoCnB"}
1
+ {"version":3,"file":"camera-system.d.ts","sourceRoot":"","sources":["../../src/camera/camera-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAEhC;IACA,IAAI;IAWJ,MAAM;IAkBN;;;;;;OAMG;YACW,WAAW;IAsJzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAuBlB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -5,7 +5,7 @@ import '../ecs/component-registry.js';
5
5
  import '../runtime/three.js';
6
6
  import { CameraSource } from './camera-source.js';
7
7
  import { CameraUtils } from './camera-utils.js';
8
- import { CameraState } from './types.js';
8
+ import { CameraState, CameraFacing } from './types.js';
9
9
  import { VideoTexture, LinearFilter } from 'three';
10
10
 
11
11
  /**
@@ -68,20 +68,31 @@ class CameraSystem extends createSystem({
68
68
  return; // Aborted
69
69
  }
70
70
  const facing = entity.getValue(CameraSource, 'facing');
71
- const selected = CameraUtils.findByFacing(devices, facing);
72
- if (selected) {
73
- deviceId = selected.deviceId;
74
- entity.setValue(CameraSource, 'deviceId', deviceId);
75
- }
76
- else if (devices.length > 0) {
77
- // Fallback to first camera
78
- deviceId = devices[0].deviceId;
79
- entity.setValue(CameraSource, 'deviceId', deviceId);
71
+ if (facing === CameraFacing.Unknown) {
72
+ // Unknown = any camera is fine, use first available
73
+ if (devices.length > 0) {
74
+ deviceId = devices[0].deviceId;
75
+ entity.setValue(CameraSource, 'deviceId', deviceId);
76
+ }
77
+ else {
78
+ console.error('No cameras available');
79
+ entity.setValue(CameraSource, 'state', CameraState.Error);
80
+ return;
81
+ }
80
82
  }
81
83
  else {
82
- console.error('No cameras available');
83
- entity.setValue(CameraSource, 'state', CameraState.Error);
84
- return;
84
+ // Specific facing requested - must match or fail
85
+ const selected = CameraUtils.findByFacing(devices, facing);
86
+ if (selected) {
87
+ deviceId = selected.deviceId;
88
+ entity.setValue(CameraSource, 'deviceId', deviceId);
89
+ }
90
+ else {
91
+ const facingStr = facing === CameraFacing.Back ? 'back' : 'front';
92
+ console.error(`No ${facingStr}-facing camera available (found ${devices.length} camera(s))`);
93
+ entity.setValue(CameraSource, 'state', CameraState.Error);
94
+ return;
95
+ }
85
96
  }
86
97
  }
87
98
  // Get stream constraints
@@ -101,7 +112,7 @@ class CameraSystem extends createSystem({
101
112
  const currentState = entity.getValue(CameraSource, 'state');
102
113
  if (currentState !== CameraState.Starting) {
103
114
  // Aborted - clean up the stream we just created
104
- stream.getTracks().forEach((track) => track.stop());
115
+ this.cleanupCameraResources(stream, null, null);
105
116
  return;
106
117
  }
107
118
  // Create video element
@@ -129,8 +140,7 @@ class CameraSystem extends createSystem({
129
140
  const finalState = entity.getValue(CameraSource, 'state');
130
141
  if (finalState !== CameraState.Starting) {
131
142
  // Aborted - clean up everything
132
- stream.getTracks().forEach((track) => track.stop());
133
- video.srcObject = null;
143
+ this.cleanupCameraResources(stream, video, null);
134
144
  return;
135
145
  }
136
146
  // Start playback
@@ -143,9 +153,7 @@ class CameraSystem extends createSystem({
143
153
  const committingState = entity.getValue(CameraSource, 'state');
144
154
  if (committingState !== CameraState.Starting) {
145
155
  // Aborted at the last moment - clean up everything
146
- stream.getTracks().forEach((track) => track.stop());
147
- video.srcObject = null;
148
- texture.dispose();
156
+ this.cleanupCameraResources(stream, video, texture);
149
157
  return;
150
158
  }
151
159
  // Commit all resources atomically
@@ -158,18 +166,9 @@ class CameraSystem extends createSystem({
158
166
  console.error('Failed to start camera:', error);
159
167
  // Clean up any partial state
160
168
  const stream = entity.getValue(CameraSource, 'stream');
161
- if (stream) {
162
- stream.getTracks().forEach((track) => track.stop());
163
- }
164
169
  const video = entity.getValue(CameraSource, 'videoElement');
165
- if (video) {
166
- video.pause();
167
- video.srcObject = null;
168
- }
169
170
  const texture = entity.getValue(CameraSource, 'texture');
170
- if (texture) {
171
- texture.dispose();
172
- }
171
+ this.cleanupCameraResources(stream, video, texture);
173
172
  entity.setValue(CameraSource, 'stream', null);
174
173
  entity.setValue(CameraSource, 'videoElement', null);
175
174
  entity.setValue(CameraSource, 'texture', null);
@@ -183,24 +182,27 @@ class CameraSystem extends createSystem({
183
182
  const stream = entity.getValue(CameraSource, 'stream');
184
183
  const video = entity.getValue(CameraSource, 'videoElement');
185
184
  const texture = entity.getValue(CameraSource, 'texture');
186
- // Stop stream
185
+ this.cleanupCameraResources(stream, video, texture);
186
+ // Clear component values and set state to Inactive
187
+ entity.setValue(CameraSource, 'stream', null);
188
+ entity.setValue(CameraSource, 'videoElement', null);
189
+ entity.setValue(CameraSource, 'texture', null);
190
+ entity.setValue(CameraSource, 'state', CameraState.Inactive);
191
+ }
192
+ /**
193
+ * Clean up camera resources (stream, video element, texture)
194
+ */
195
+ cleanupCameraResources(stream, video, texture) {
187
196
  if (stream) {
188
197
  stream.getTracks().forEach((track) => track.stop());
189
198
  }
190
- // Clean up video element
191
199
  if (video) {
192
200
  video.pause();
193
201
  video.srcObject = null;
194
202
  }
195
- // Dispose texture
196
203
  if (texture) {
197
204
  texture.dispose();
198
205
  }
199
- // Clear component values and set state to Inactive
200
- entity.setValue(CameraSource, 'stream', null);
201
- entity.setValue(CameraSource, 'videoElement', null);
202
- entity.setValue(CameraSource, 'texture', null);
203
- entity.setValue(CameraSource, 'state', CameraState.Inactive);
204
206
  }
205
207
  }
206
208
 
@@ -1 +1 @@
1
- {"version":3,"file":"camera-system.js","sources":["../../src/camera/camera-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera-system.js","sources":["../../src/camera/camera-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { Entity } from '../ecs/index.js';
8
- import type { CameraDeviceInfo } from './types.js';
8
+ import { type CameraDeviceInfo, type CameraFacingType } from './types.js';
9
9
  /**
10
10
  * CameraUtils - Static utilities for camera discovery and selection
11
11
  * Handles permission requests and device enumeration with caching
@@ -30,7 +30,7 @@ export declare class CameraUtils {
30
30
  /**
31
31
  * Find camera by facing direction from device list
32
32
  */
33
- static findByFacing(devices: CameraDeviceInfo[], facing: 'front' | 'back'): CameraDeviceInfo | null;
33
+ static findByFacing(devices: CameraDeviceInfo[], facing: CameraFacingType): CameraDeviceInfo | null;
34
34
  /**
35
35
  * Check if camera permission is granted (doesn't request)
36
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"camera-utils.d.ts","sourceRoot":"","sources":["../../src/camera/camera-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAmC;IAE/D;;;;;;;;;;;;;OAaG;WACU,UAAU,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoDrE;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB,gBAAgB,GAAG,IAAI;IAI1B;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAY9C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;CA+B9D"}
1
+ {"version":3,"file":"camera-utils.d.ts","sourceRoot":"","sources":["../../src/camera/camera-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExF;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAmC;IAE/D;;;;;;;;;;;;;OAaG;WACU,UAAU,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoDrE;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,GAAG,IAAI;IAI1B;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAY9C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;CA+B9D"}
@@ -1,4 +1,5 @@
1
1
  import { CameraSource } from './camera-source.js';
2
+ import { CameraFacing } from './types.js';
2
3
 
3
4
  /**
4
5
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -43,16 +44,16 @@ class CameraUtils {
43
44
  // Map to our interface with facing detection
44
45
  this.cachedDevices = videoDevices.map((device) => {
45
46
  const label = device.label.toLowerCase();
46
- let facing = 'unknown';
47
+ let facing = CameraFacing.Unknown;
47
48
  if (label.includes('back') ||
48
49
  label.includes('environment') ||
49
50
  label.includes('rear')) {
50
- facing = 'back';
51
+ facing = CameraFacing.Back;
51
52
  }
52
53
  else if (label.includes('front') ||
53
54
  label.includes('user') ||
54
55
  label.includes('face')) {
55
- facing = 'front';
56
+ facing = CameraFacing.Front;
56
57
  }
57
58
  return {
58
59
  deviceId: device.deviceId,
@@ -1 +1 @@
1
- {"version":3,"file":"camera-utils.js","sources":["../../src/camera/camera-utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera-utils.js","sources":["../../src/camera/camera-utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;AAKG;AAMH;;;AAGG;MACU,WAAW,CAAA;AAGtB;;;;;;;;;;;;;AAaG;AACH,IAAA,aAAa,UAAU,CAAC,OAAO,GAAG,KAAK,EAAA;;AAErC,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE;YAClC,OAAO,IAAI,CAAC,aAAa;QAC3B;AAEA,QAAA,IAAI;;YAEF,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;AAC3D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,CAAC;;AAGF,YAAA,UAAU,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;;YAGvD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE;AAC/D,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;;YAGnE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;gBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;AACxC,gBAAA,IAAI,MAAM,GAAqB,YAAY,CAAC,OAAO;AAEnD,gBAAA,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtB,oBAAA,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC7B,oBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EACtB;AACA,oBAAA,MAAM,GAAG,YAAY,CAAC,IAAI;gBAC5B;AAAO,qBAAA,IACL,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvB,oBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtB,oBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EACtB;AACA,oBAAA,MAAM,GAAG,YAAY,CAAC,KAAK;gBAC7B;gBAEA,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM;iBACP;AACH,YAAA,CAAC,CAAC;YAEF,OAAO,IAAI,CAAC,aAAa;QAC3B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACH,IAAA,OAAO,YAAY,CACjB,OAA2B,EAC3B,MAAwB,EAAA;AAExB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI;IACzD;AAEA;;AAEG;IACH,aAAa,aAAa,GAAA;AACxB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;AAC/C,gBAAA,IAAI,EAAE,QAA0B;AACjC,aAAA,CAAC;AACF,YAAA,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS;QACnC;AAAE,QAAA,OAAA,EAAA,EAAM;;AAEN,YAAA,OAAO,KAAK;QACd;IACF;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,OAAO,YAAY,CAAC,MAAc,EAAA;;QAEhC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAClC,YAAY,EACZ,cAAc,CACY;QAE5B,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,YAAY,CAAC,UAAU,KAAK,CAAC,IAAI,YAAY,CAAC,WAAW,KAAK,CAAC,EAAE;AACnE,YAAA,OAAO,IAAI;QACb;;QAGA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,UAAU;AACtC,QAAA,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,WAAW;;AAGxC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,IAAI;QACb;QAEA,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;AAEjC,QAAA,OAAO,MAAM;IACf;;AAlJe,WAAA,CAAA,aAAa,GAA8B,IAAI;;;;"}
@@ -4,18 +4,25 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ export declare const CameraFacing: {
8
+ readonly Back: "back";
9
+ readonly Front: "front";
10
+ readonly Unknown: "unknown";
11
+ };
12
+ export type CameraFacingType = (typeof CameraFacing)[keyof typeof CameraFacing];
7
13
  export interface CameraDeviceInfo {
8
14
  deviceId: string;
9
15
  label: string;
10
- facing: 'front' | 'back' | 'unknown';
16
+ facing: CameraFacingType;
11
17
  }
12
18
  /**
13
19
  * Camera stream state lifecycle
14
20
  */
15
- export declare enum CameraState {
16
- Inactive = "inactive",// Not started
17
- Starting = "starting",// Async initialization in progress
18
- Active = "active",// Stream running
19
- Error = "error"
20
- }
21
+ export declare const CameraState: {
22
+ readonly Inactive: "inactive";
23
+ readonly Starting: "starting";
24
+ readonly Active: "active";
25
+ readonly Error: "error";
26
+ };
27
+ export type CameraStateType = (typeof CameraState)[keyof typeof CameraState];
21
28
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/camera/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,QAAQ,aAAa,CAAE,cAAc;IACrC,QAAQ,aAAa,CAAE,mCAAmC;IAC1D,MAAM,WAAW,CAAE,iBAAiB;IACpC,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/camera/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
@@ -4,16 +4,20 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ const CameraFacing = {
8
+ Back: 'back',
9
+ Front: 'front',
10
+ Unknown: 'unknown',
11
+ };
7
12
  /**
8
13
  * Camera stream state lifecycle
9
14
  */
10
- var CameraState;
11
- (function (CameraState) {
12
- CameraState["Inactive"] = "inactive";
13
- CameraState["Starting"] = "starting";
14
- CameraState["Active"] = "active";
15
- CameraState["Error"] = "error";
16
- })(CameraState || (CameraState = {}));
15
+ const CameraState = {
16
+ Inactive: 'inactive', // Not started
17
+ Starting: 'starting', // Async initialization in progress
18
+ Active: 'active', // Stream running
19
+ Error: 'error', // Failed to start
20
+ };
17
21
 
18
- export { CameraState };
22
+ export { CameraFacing, CameraState };
19
23
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/camera/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAQH;;AAEG;IACS;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../src/camera/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAEI,MAAM,YAAY,GAAG;AAC1B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,OAAO,EAAE,SAAS;;AAWpB;;AAEG;AACI,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;;;;;"}
@@ -34,6 +34,8 @@ export declare class DistanceGrabHandle<T> extends HandleStore<T> {
34
34
  readonly moveSpeed: number;
35
35
  private previousPointerOrigin;
36
36
  private static _tmp;
37
+ private static _posHelper;
38
+ private static _quatHelper;
37
39
  constructor(target_: Object3D | {
38
40
  current?: Object3D | null;
39
41
  }, getOptions: (() => HandleOptions<T>) | undefined, movementMode: string, returnToOrigin: Boolean, moveSpeed?: number);
@@ -1 +1 @@
1
- {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/grab/handles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAW,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,MAAM;;;;;EAMlB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY;IACvB,oFAAoF;;IAEpF,qEAAqE;;IAErE,qFAAqF;;IAErF,8DAA8D;;CAE/D,CAAC;AAEF,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAKrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE;aAC1C,UAAU,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;aAClC,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,OAAO;aACvB,SAAS,EAAE,MAAM;IARnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAiB;gBAGzB,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,EAC1C,UAAU,GAAE,MAAM,aAAa,CAAC,CAAC,CAAC,aAAa,EAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,EACvB,SAAS,GAAE,MAAY;IAKzC,MAAM,CAAC,IAAI,EAAE,MAAM;IA6FnB,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC;CAcrC"}
1
+ {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/grab/handles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;AAEpE,eAAO,MAAM,MAAM;;;;;EAMlB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY;IACvB,oFAAoF;;IAEpF,qEAAqE;;IAErE,qFAAqF;;IAErF,8DAA8D;;CAE/D,CAAC;AAEF,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAOrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE;aAC1C,UAAU,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;aAClC,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,OAAO;aACvB,SAAS,EAAE,MAAM;IAVnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiB;IAC1C,OAAO,CAAC,MAAM,CAAC,WAAW,CAAoB;gBAGnC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,EAC1C,UAAU,GAAE,MAAM,aAAa,CAAC,CAAC,CAAC,aAAa,EAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,EACvB,SAAS,GAAE,MAAY;IAKzC,MAAM,CAAC,IAAI,EAAE,MAAM;IAqHnB,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC;CAcrC"}
@@ -4,7 +4,7 @@ import '../ecs/world.js';
4
4
  import { createComponent, Types } from 'elics';
5
5
  import '../ecs/component-registry.js';
6
6
  import '../runtime/three.js';
7
- import { Vector3 } from 'three';
7
+ import { Vector3, Quaternion } from 'three';
8
8
 
9
9
  /**
10
10
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -52,11 +52,9 @@ class DistanceGrabHandle extends HandleStore {
52
52
  }
53
53
  return;
54
54
  }
55
- if (target.parent) {
56
- target.removeFromParent();
57
- target.matrixWorld.decompose(target.position, target.quaternion, target.scale);
58
- }
59
55
  const pointerAmount = this.inputState.size;
56
+ target.getWorldPosition(DistanceGrabHandle._posHelper);
57
+ target.getWorldQuaternion(DistanceGrabHandle._quatHelper);
60
58
  const position = target.position;
61
59
  const quaternion = target.quaternion;
62
60
  const rotation = target.rotation;
@@ -69,7 +67,7 @@ class DistanceGrabHandle extends HandleStore {
69
67
  const delta = DistanceGrabHandle._tmp
70
68
  .copy(current)
71
69
  .sub(this.previousPointerOrigin);
72
- position.add(delta);
70
+ DistanceGrabHandle._posHelper.add(delta);
73
71
  }
74
72
  else {
75
73
  this.previousPointerOrigin = new Vector3().copy(current);
@@ -81,22 +79,45 @@ class DistanceGrabHandle extends HandleStore {
81
79
  case MovementMode.MoveTowardsTarget: {
82
80
  const [p1] = this.inputState.values();
83
81
  const pointerOrigin = p1.pointerWorldOrigin;
84
- const distance = pointerOrigin.distanceTo(position);
82
+ const distance = pointerOrigin.distanceTo(DistanceGrabHandle._posHelper);
85
83
  if (distance > this.moveSpeed) {
86
84
  const step = DistanceGrabHandle._tmp
87
85
  .copy(pointerOrigin)
88
- .sub(position)
86
+ .sub(DistanceGrabHandle._posHelper)
89
87
  .normalize()
90
88
  .multiplyScalar(this.moveSpeed);
91
- position.add(step);
89
+ DistanceGrabHandle._posHelper.add(step);
92
90
  }
93
91
  else {
94
- position.set(pointerOrigin.x, pointerOrigin.y, pointerOrigin.z);
95
- quaternion.set(p1.pointerWorldQuaternion.x, p1.pointerWorldQuaternion.y, p1.pointerWorldQuaternion.z, p1.pointerWorldQuaternion.w);
92
+ DistanceGrabHandle._posHelper.set(pointerOrigin.x, pointerOrigin.y, pointerOrigin.z);
93
+ DistanceGrabHandle._quatHelper.set(p1.pointerWorldQuaternion.x, p1.pointerWorldQuaternion.y, p1.pointerWorldQuaternion.z, p1.pointerWorldQuaternion.w);
96
94
  }
97
95
  break;
98
96
  }
99
97
  }
98
+ // Convert world space transforms to local space
99
+ if (target.parent) {
100
+ // Get parent's inverse world matrix
101
+ const parentWorldMatrixInverse = target.parent.matrixWorld
102
+ .clone()
103
+ .invert();
104
+ // Transform desired world position to local space
105
+ position
106
+ .copy(DistanceGrabHandle._posHelper)
107
+ .applyMatrix4(parentWorldMatrixInverse);
108
+ // Transform desired world quaternion to local space
109
+ const parentWorldQuaternionInverse = target.parent
110
+ .getWorldQuaternion(new Quaternion())
111
+ .invert();
112
+ quaternion
113
+ .copy(DistanceGrabHandle._quatHelper)
114
+ .premultiply(parentWorldQuaternionInverse);
115
+ }
116
+ else {
117
+ // No parent, world space = local space
118
+ position.copy(DistanceGrabHandle._posHelper);
119
+ quaternion.copy(DistanceGrabHandle._quatHelper);
120
+ }
100
121
  // Always apply during drag; if returnToOrigin is true,
101
122
  // the override in apply() will snap back on release.
102
123
  this.outputState.update(this.latestMoveEvent, {
@@ -127,6 +148,8 @@ class DistanceGrabHandle extends HandleStore {
127
148
  }
128
149
  }
129
150
  DistanceGrabHandle._tmp = new Vector3();
151
+ DistanceGrabHandle._posHelper = new Vector3();
152
+ DistanceGrabHandle._quatHelper = new Quaternion();
130
153
 
131
154
  export { DistanceGrabHandle, Handle, MovementMode };
132
155
  //# sourceMappingURL=handles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handles.js","sources":["../../src/grab/handles.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handles.js","sources":["../../src/grab/handles.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}