@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.
Files changed (74) hide show
  1. package/package.json +2 -2
  2. package/src/HoloScript2DParser.js +227 -0
  3. package/src/HoloScript2DParser.ts +5 -0
  4. package/src/HoloScriptCodeParser.js +1102 -0
  5. package/src/HoloScriptCodeParser.ts +145 -20
  6. package/src/HoloScriptDebugger.js +458 -0
  7. package/src/HoloScriptParser.js +338 -0
  8. package/src/HoloScriptPlusParser.js +371 -0
  9. package/src/HoloScriptPlusParser.ts +543 -0
  10. package/src/HoloScriptRuntime.js +1399 -0
  11. package/src/HoloScriptRuntime.test.js +351 -0
  12. package/src/HoloScriptRuntime.ts +17 -3
  13. package/src/HoloScriptTypeChecker.js +356 -0
  14. package/src/__tests__/GraphicsServices.test.js +357 -0
  15. package/src/__tests__/GraphicsServices.test.ts +427 -0
  16. package/src/__tests__/HoloScriptPlusParser.test.js +317 -0
  17. package/src/__tests__/HoloScriptPlusParser.test.ts +392 -0
  18. package/src/__tests__/integration.test.js +336 -0
  19. package/src/__tests__/performance.bench.js +218 -0
  20. package/src/__tests__/type-checker.test.js +60 -0
  21. package/src/__tests__/type-checker.test.ts +73 -0
  22. package/src/index.js +217 -0
  23. package/src/index.ts +158 -18
  24. package/src/interop/Interoperability.js +413 -0
  25. package/src/interop/Interoperability.ts +494 -0
  26. package/src/logger.js +42 -0
  27. package/src/parser/EnhancedParser.js +205 -0
  28. package/src/parser/EnhancedParser.ts +251 -0
  29. package/src/parser/HoloScriptPlusParser.js +928 -0
  30. package/src/parser/HoloScriptPlusParser.ts +1089 -0
  31. package/src/runtime/HoloScriptPlusRuntime.js +674 -0
  32. package/src/runtime/HoloScriptPlusRuntime.ts +861 -0
  33. package/src/runtime/PerformanceTelemetry.js +323 -0
  34. package/src/runtime/PerformanceTelemetry.ts +467 -0
  35. package/src/runtime/RuntimeOptimization.js +361 -0
  36. package/src/runtime/RuntimeOptimization.ts +416 -0
  37. package/src/services/HololandGraphicsPipelineService.js +506 -0
  38. package/src/services/HololandGraphicsPipelineService.ts +662 -0
  39. package/src/services/PlatformPerformanceOptimizer.js +356 -0
  40. package/src/services/PlatformPerformanceOptimizer.ts +503 -0
  41. package/src/state/ReactiveState.js +427 -0
  42. package/src/state/ReactiveState.ts +572 -0
  43. package/src/tools/DeveloperExperience.js +376 -0
  44. package/src/tools/DeveloperExperience.ts +438 -0
  45. package/src/traits/AIDriverTrait.js +322 -0
  46. package/src/traits/AIDriverTrait.test.js +329 -0
  47. package/src/traits/AIDriverTrait.test.ts +357 -0
  48. package/src/traits/AIDriverTrait.ts +474 -0
  49. package/src/traits/LightingTrait.js +313 -0
  50. package/src/traits/LightingTrait.test.js +410 -0
  51. package/src/traits/LightingTrait.test.ts +462 -0
  52. package/src/traits/LightingTrait.ts +505 -0
  53. package/src/traits/MaterialTrait.js +194 -0
  54. package/src/traits/MaterialTrait.test.js +286 -0
  55. package/src/traits/MaterialTrait.test.ts +329 -0
  56. package/src/traits/MaterialTrait.ts +324 -0
  57. package/src/traits/RenderingTrait.js +356 -0
  58. package/src/traits/RenderingTrait.test.js +363 -0
  59. package/src/traits/RenderingTrait.test.ts +427 -0
  60. package/src/traits/RenderingTrait.ts +555 -0
  61. package/src/traits/VRTraitSystem.js +740 -0
  62. package/src/traits/VRTraitSystem.ts +1040 -0
  63. package/src/traits/VoiceInputTrait.js +284 -0
  64. package/src/traits/VoiceInputTrait.test.js +226 -0
  65. package/src/traits/VoiceInputTrait.test.ts +252 -0
  66. package/src/traits/VoiceInputTrait.ts +401 -0
  67. package/src/types/AdvancedTypeSystem.js +226 -0
  68. package/src/types/AdvancedTypeSystem.ts +494 -0
  69. package/src/types/HoloScriptPlus.d.ts +853 -0
  70. package/src/types.js +6 -0
  71. package/src/types.ts +96 -1
  72. package/tsconfig.json +1 -1
  73. package/tsup.config.d.ts +2 -0
  74. package/tsup.config.js +18 -0
package/src/types.js ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @holoscript/core Types
3
+ *
4
+ * Core type definitions for HoloScript AST and runtime
5
+ */
6
+ export {};
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
@@ -11,7 +11,7 @@
11
11
  "noImplicitAny": true,
12
12
  "strictNullChecks": true,
13
13
  "noUnusedLocals": true,
14
- "noUnusedParameters": true,
14
+ "noUnusedParameters": false,
15
15
  "esModuleInterop": true,
16
16
  "skipLibCheck": true,
17
17
  "forceConsistentCasingInFileNames": true,
@@ -0,0 +1,2 @@
1
+ declare const _default: import("tsup").Options | import("tsup").Options[] | ((overrideOptions: import("tsup").Options) => import("tsup").Options | import("tsup").Options[] | Promise<import("tsup").Options | import("tsup").Options[]>);
2
+ export default _default;
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
+ });