@holoscript/core 1.0.0-alpha.2 → 2.0.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 +2 -2
- package/src/HoloScript2DParser.js +227 -0
- package/src/HoloScript2DParser.ts +5 -0
- package/src/HoloScriptCodeParser.js +1102 -0
- package/src/HoloScriptCodeParser.ts +145 -20
- package/src/HoloScriptDebugger.js +458 -0
- package/src/HoloScriptParser.js +338 -0
- package/src/HoloScriptPlusParser.js +371 -0
- package/src/HoloScriptPlusParser.ts +543 -0
- package/src/HoloScriptRuntime.js +1399 -0
- package/src/HoloScriptRuntime.test.js +351 -0
- package/src/HoloScriptRuntime.ts +17 -3
- package/src/HoloScriptTypeChecker.js +356 -0
- package/src/__tests__/GraphicsServices.test.js +357 -0
- package/src/__tests__/GraphicsServices.test.ts +427 -0
- package/src/__tests__/HoloScriptPlusParser.test.js +317 -0
- package/src/__tests__/HoloScriptPlusParser.test.ts +392 -0
- package/src/__tests__/integration.test.js +336 -0
- package/src/__tests__/performance.bench.js +218 -0
- package/src/__tests__/type-checker.test.js +60 -0
- package/src/__tests__/type-checker.test.ts +73 -0
- package/src/index.js +217 -0
- package/src/index.ts +158 -18
- package/src/interop/Interoperability.js +413 -0
- package/src/interop/Interoperability.ts +494 -0
- package/src/logger.js +42 -0
- package/src/parser/EnhancedParser.js +205 -0
- package/src/parser/EnhancedParser.ts +251 -0
- package/src/parser/HoloScriptPlusParser.js +928 -0
- package/src/parser/HoloScriptPlusParser.ts +1089 -0
- package/src/runtime/HoloScriptPlusRuntime.js +674 -0
- package/src/runtime/HoloScriptPlusRuntime.ts +861 -0
- package/src/runtime/PerformanceTelemetry.js +323 -0
- package/src/runtime/PerformanceTelemetry.ts +467 -0
- package/src/runtime/RuntimeOptimization.js +361 -0
- package/src/runtime/RuntimeOptimization.ts +416 -0
- package/src/services/HololandGraphicsPipelineService.js +506 -0
- package/src/services/HololandGraphicsPipelineService.ts +662 -0
- package/src/services/PlatformPerformanceOptimizer.js +356 -0
- package/src/services/PlatformPerformanceOptimizer.ts +503 -0
- package/src/state/ReactiveState.js +427 -0
- package/src/state/ReactiveState.ts +572 -0
- package/src/tools/DeveloperExperience.js +376 -0
- package/src/tools/DeveloperExperience.ts +438 -0
- package/src/traits/AIDriverTrait.js +322 -0
- package/src/traits/AIDriverTrait.test.js +329 -0
- package/src/traits/AIDriverTrait.test.ts +357 -0
- package/src/traits/AIDriverTrait.ts +474 -0
- package/src/traits/LightingTrait.js +313 -0
- package/src/traits/LightingTrait.test.js +410 -0
- package/src/traits/LightingTrait.test.ts +462 -0
- package/src/traits/LightingTrait.ts +505 -0
- package/src/traits/MaterialTrait.js +194 -0
- package/src/traits/MaterialTrait.test.js +286 -0
- package/src/traits/MaterialTrait.test.ts +329 -0
- package/src/traits/MaterialTrait.ts +324 -0
- package/src/traits/RenderingTrait.js +356 -0
- package/src/traits/RenderingTrait.test.js +363 -0
- package/src/traits/RenderingTrait.test.ts +427 -0
- package/src/traits/RenderingTrait.ts +555 -0
- package/src/traits/VRTraitSystem.js +740 -0
- package/src/traits/VRTraitSystem.ts +1040 -0
- package/src/traits/VoiceInputTrait.js +284 -0
- package/src/traits/VoiceInputTrait.test.js +226 -0
- package/src/traits/VoiceInputTrait.test.ts +252 -0
- package/src/traits/VoiceInputTrait.ts +401 -0
- package/src/types/AdvancedTypeSystem.js +226 -0
- package/src/types/AdvancedTypeSystem.ts +494 -0
- package/src/types/HoloScriptPlus.d.ts +853 -0
- package/src/types.js +6 -0
- package/src/types.ts +96 -1
- package/tsconfig.json +1 -1
- package/tsup.config.d.ts +2 -0
- package/tsup.config.js +18 -0
package/src/types.js
ADDED
package/src/types.ts
CHANGED
|
@@ -164,6 +164,8 @@ export interface ImportNode extends ASTNode {
|
|
|
164
164
|
modulePath: string;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
export type ImportLoader = (path: string) => Promise<string>;
|
|
168
|
+
|
|
167
169
|
export interface ExportNode extends ASTNode {
|
|
168
170
|
type: 'export';
|
|
169
171
|
exports?: string[];
|
|
@@ -180,6 +182,7 @@ export interface VariableDeclarationNode extends ASTNode {
|
|
|
180
182
|
name: string;
|
|
181
183
|
dataType?: string;
|
|
182
184
|
value?: unknown;
|
|
185
|
+
isExpression?: boolean;
|
|
183
186
|
}
|
|
184
187
|
|
|
185
188
|
// ============================================================================
|
|
@@ -201,7 +204,8 @@ export type UIElementType =
|
|
|
201
204
|
| 'flex-container'
|
|
202
205
|
| 'grid-container'
|
|
203
206
|
| 'scroll-view'
|
|
204
|
-
| 'tab-view'
|
|
207
|
+
| 'tab-view'
|
|
208
|
+
| 'dashboard' | 'card' | 'metric' | 'row' | 'col';
|
|
205
209
|
|
|
206
210
|
export interface UI2DNode {
|
|
207
211
|
type: '2d-element';
|
|
@@ -231,6 +235,7 @@ export interface UIStyle {
|
|
|
231
235
|
export interface RuntimeContext {
|
|
232
236
|
variables: Map<string, unknown>;
|
|
233
237
|
functions: Map<string, MethodNode>;
|
|
238
|
+
exports: Map<string, unknown>;
|
|
234
239
|
connections: ConnectionNode[];
|
|
235
240
|
spatialMemory: Map<string, SpatialPosition>;
|
|
236
241
|
hologramState: Map<string, HologramProperties>;
|
|
@@ -244,6 +249,7 @@ export interface ExecutionResult {
|
|
|
244
249
|
spatialPosition?: SpatialPosition;
|
|
245
250
|
error?: string;
|
|
246
251
|
executionTime?: number;
|
|
252
|
+
learningSignals?: any;
|
|
247
253
|
}
|
|
248
254
|
|
|
249
255
|
export interface ParticleSystem {
|
|
@@ -272,3 +278,92 @@ export interface RuntimeSecurityLimits {
|
|
|
272
278
|
maxExecutionTimeMs: number;
|
|
273
279
|
maxParticlesPerSystem: number;
|
|
274
280
|
}
|
|
281
|
+
// ============================================================================
|
|
282
|
+
// VR Types
|
|
283
|
+
// ============================================================================
|
|
284
|
+
|
|
285
|
+
export interface Vector3 {
|
|
286
|
+
x: number;
|
|
287
|
+
y: number;
|
|
288
|
+
z: number;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export interface Vector2 {
|
|
292
|
+
x: number;
|
|
293
|
+
y: number;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export interface Color {
|
|
297
|
+
r: number;
|
|
298
|
+
g: number;
|
|
299
|
+
b: number;
|
|
300
|
+
a?: number;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export interface Duration {
|
|
304
|
+
milliseconds: number;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export interface Transform {
|
|
308
|
+
position: Vector3;
|
|
309
|
+
rotation: Vector3;
|
|
310
|
+
scale: Vector3;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
export type VRHand = 'left' | 'right' | 'both';
|
|
314
|
+
|
|
315
|
+
export interface ThrowVelocity {
|
|
316
|
+
magnitude: number;
|
|
317
|
+
direction: Vector3;
|
|
318
|
+
spin?: Vector3;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface CollisionEvent {
|
|
322
|
+
object1: string;
|
|
323
|
+
object2: string;
|
|
324
|
+
position: Vector3;
|
|
325
|
+
normal: Vector3;
|
|
326
|
+
force: number;
|
|
327
|
+
timestamp: number;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// ============================================================================
|
|
331
|
+
// VR Traits
|
|
332
|
+
// ============================================================================
|
|
333
|
+
|
|
334
|
+
export interface GrabbableTrait {
|
|
335
|
+
snapToHand: boolean;
|
|
336
|
+
grip_type: 'palm' | 'pinch' | 'full';
|
|
337
|
+
haptic_feedback: boolean;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export interface ThrowableTrait {
|
|
341
|
+
velocityMultiplier: number;
|
|
342
|
+
enableSpin: boolean;
|
|
343
|
+
gravityScale: number;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export interface PointableTrait {
|
|
347
|
+
maxPointDistance: number;
|
|
348
|
+
interactionRadius: number;
|
|
349
|
+
hapticFeedback: boolean;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export interface HoverableTrait {
|
|
353
|
+
hoverDistance: number;
|
|
354
|
+
hoverColor: Color;
|
|
355
|
+
hoverScale: number;
|
|
356
|
+
enableHighlight: boolean;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export interface ScalableTrait {
|
|
360
|
+
minScale: number;
|
|
361
|
+
maxScale: number;
|
|
362
|
+
scaleSpeed: number;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export interface RotatableTrait {
|
|
366
|
+
rotationSpeed: number;
|
|
367
|
+
freeRotation: boolean;
|
|
368
|
+
snapAngles?: number[];
|
|
369
|
+
}
|
package/tsconfig.json
CHANGED
package/tsup.config.d.ts
ADDED
package/tsup.config.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineConfig } from 'tsup';
|
|
2
|
+
export default defineConfig({
|
|
3
|
+
entry: {
|
|
4
|
+
index: 'src/index.ts',
|
|
5
|
+
parser: 'src/HoloScriptCodeParser.ts',
|
|
6
|
+
runtime: 'src/HoloScriptRuntime.ts',
|
|
7
|
+
'type-checker': 'src/HoloScriptTypeChecker.ts',
|
|
8
|
+
debugger: 'src/HoloScriptDebugger.ts',
|
|
9
|
+
},
|
|
10
|
+
format: ['cjs', 'esm'],
|
|
11
|
+
dts: true,
|
|
12
|
+
clean: true,
|
|
13
|
+
sourcemap: true,
|
|
14
|
+
splitting: true,
|
|
15
|
+
treeshake: true,
|
|
16
|
+
minify: false, // Keep readable for debugging, enable for production
|
|
17
|
+
external: [], // No external deps for now
|
|
18
|
+
});
|