@holoscript/core 1.0.0-alpha.1 → 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 (127) hide show
  1. package/package.json +10 -9
  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 +257 -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
  75. package/LICENSE +0 -21
  76. package/dist/chunk-3X2EGU7Z.cjs +0 -52
  77. package/dist/chunk-3X2EGU7Z.cjs.map +0 -1
  78. package/dist/chunk-723TPVHD.js +0 -1074
  79. package/dist/chunk-723TPVHD.js.map +0 -1
  80. package/dist/chunk-EOKNAVDO.cjs +0 -424
  81. package/dist/chunk-EOKNAVDO.cjs.map +0 -1
  82. package/dist/chunk-HQZ3HUMY.js +0 -1087
  83. package/dist/chunk-HQZ3HUMY.js.map +0 -1
  84. package/dist/chunk-KWYIVRIH.js +0 -344
  85. package/dist/chunk-KWYIVRIH.js.map +0 -1
  86. package/dist/chunk-LKH4ZAN6.js +0 -421
  87. package/dist/chunk-LKH4ZAN6.js.map +0 -1
  88. package/dist/chunk-SATNCODL.js +0 -45
  89. package/dist/chunk-SATNCODL.js.map +0 -1
  90. package/dist/chunk-VMZN4EVR.cjs +0 -347
  91. package/dist/chunk-VMZN4EVR.cjs.map +0 -1
  92. package/dist/chunk-VV3UUUYP.cjs +0 -1089
  93. package/dist/chunk-VV3UUUYP.cjs.map +0 -1
  94. package/dist/chunk-XRYTSQHZ.cjs +0 -1076
  95. package/dist/chunk-XRYTSQHZ.cjs.map +0 -1
  96. package/dist/debugger.cjs +0 -19
  97. package/dist/debugger.cjs.map +0 -1
  98. package/dist/debugger.d.cts +0 -171
  99. package/dist/debugger.d.ts +0 -171
  100. package/dist/debugger.js +0 -6
  101. package/dist/debugger.js.map +0 -1
  102. package/dist/index.cjs +0 -755
  103. package/dist/index.cjs.map +0 -1
  104. package/dist/index.d.cts +0 -169
  105. package/dist/index.d.ts +0 -169
  106. package/dist/index.js +0 -699
  107. package/dist/index.js.map +0 -1
  108. package/dist/parser.cjs +0 -13
  109. package/dist/parser.cjs.map +0 -1
  110. package/dist/parser.d.cts +0 -154
  111. package/dist/parser.d.ts +0 -154
  112. package/dist/parser.js +0 -4
  113. package/dist/parser.js.map +0 -1
  114. package/dist/runtime.cjs +0 -13
  115. package/dist/runtime.cjs.map +0 -1
  116. package/dist/runtime.d.cts +0 -147
  117. package/dist/runtime.d.ts +0 -147
  118. package/dist/runtime.js +0 -4
  119. package/dist/runtime.js.map +0 -1
  120. package/dist/type-checker.cjs +0 -16
  121. package/dist/type-checker.cjs.map +0 -1
  122. package/dist/type-checker.d.cts +0 -105
  123. package/dist/type-checker.d.ts +0 -105
  124. package/dist/type-checker.js +0 -3
  125. package/dist/type-checker.js.map +0 -1
  126. package/dist/types-WQSk1Qs2.d.cts +0 -238
  127. package/dist/types-WQSk1Qs2.d.ts +0 -238
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/HoloScript2DParser.ts","../src/HoloScriptParser.ts","../src/index.ts"],"names":["logger","HoloScriptRuntime"],"mappings":";;;;;;;;;AAUA,IAAM,kBAAA,GAAqB;AAAA,EACzB,aAAA,EAAe,GAAA;AAAA,EACf,eAAA,EAAiB,EAAA;AAAA,EAEjB,sBAAsB,CAAC,SAAA,EAAW,YAAY,UAAA,EAAY,SAAA,EAAW,UAAU,SAAS;AAC1F,CAAA;AAEO,IAAM,qBAAN,MAAyB;AAAA,EAAzB,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,UAAA,uBAAwC,GAAA,EAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKpD,cAAA,CAAe,IAAA,EAAc,KAAA,GAAgB,CAAA,EAAoB;AAC/D,IAAA,IAAI,KAAA,GAAQ,mBAAmB,eAAA,EAAiB;AAC9C,MAAAA,wBAAA,CAAO,IAAA,CAAK,4BAAA,EAA8B,EAAE,KAAA,EAAO,CAAA;AACnD,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAAc,KAAK,IAAA,EAAK;AAC9B,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,KAAA,CAAM,IAAI,CAAA;AACpC,IAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,EAAK;AAChC,IAAA,MAAM,WAAA,GAAc,SAAA,CAAU,KAAA,CAAM,wBAAwB,CAAA;AAE5D,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAAA,wBAAA,CAAO,IAAA,CAAK,2BAAA,EAA6B,EAAE,IAAA,EAAM,WAAW,CAAA;AAC5D,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,GAAG,WAAA,EAAa,IAAI,CAAA,GAAI,WAAA;AAE9B,IAAA,IAAI,CAAC,IAAA,CAAK,oBAAA,CAAqB,WAAW,CAAA,EAAG;AAC3C,MAAAA,wBAAA,CAAO,IAAA,CAAK,yBAAA,EAA2B,EAAE,WAAA,EAAa,CAAA;AACtD,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAa,WAAA,CAAY,OAAA,CAAQ,GAAG,CAAA;AAC1C,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,GAAG,CAAA;AAC5C,IAAA,IAAI,UAAA,KAAe,EAAA,IAAM,QAAA,KAAa,EAAA,IAAM,YAAY,UAAA,EAAY;AAClE,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,eAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA,EAAG,QAAQ,EAAE,IAAA,EAAK;AACtE,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,sBAAA,CAAuB,YAAY,CAAA;AAE3D,IAAA,MAAM,aAAsC,EAAC;AAC7C,IAAA,MAAM,SAAiC,EAAC;AACxC,IAAA,MAAM,WAAuB,EAAC;AAE9B,IAAA,KAAA,MAAW,SAAS,UAAA,EAAY;AAC9B,MAAA,MAAM,IAAA,GAAO,MAAM,IAAA,EAAK;AACxB,MAAA,IAAI,CAAC,IAAA,EAAM;AAEX,MAAA,IAAI,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EAAG;AACtB,QAAA,MAAM,SAAA,GAAY,IAAA,CAAK,cAAA,CAAe,IAAA,EAAM,QAAQ,CAAC,CAAA;AACrD,QAAA,IAAI,SAAA,EAAW,QAAA,CAAS,IAAA,CAAK,SAAS,CAAA;AACtC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,iBAAiB,CAAA;AAC9C,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,MAAM,GAAG,GAAA,EAAK,QAAQ,CAAA,GAAI,SAAA;AAC1B,QAAA,IAAI,kBAAA,CAAmB,oBAAA,CAAqB,QAAA,CAAS,GAAG,CAAA,EAAG;AACzD,UAAA,MAAA,CAAO,GAAG,CAAA,GAAI,QAAA,CAAS,IAAA,EAAK;AAAA,QAC9B,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,CAAK,kBAAA,CAAmB,QAAQ,CAAA;AAAA,QACpD;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,GAAiB;AAAA,MACrB,IAAA,EAAM,YAAA;AAAA,MACN,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA,EAAY,EAAE,GAAG,IAAA,CAAK,qBAAqB,WAA4B,CAAA,EAAG,GAAG,UAAA,EAAW;AAAA,MACxF,QAAQ,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,GAAS,IAAI,MAAA,GAAS,MAAA;AAAA,MAClD,QAAA,EAAU,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,QAAA,GAAW;AAAA,KAC7C;AAEA,IAAA,IAAI,UAAU,CAAA,EAAG;AACf,MAAA,IAAI,IAAA,CAAK,UAAA,CAAW,IAAA,IAAQ,kBAAA,CAAmB,aAAA,EAAe;AAC5D,QAAAA,wBAAA,CAAO,KAAK,+BAA+B,CAAA;AAC3C,QAAA,OAAO,IAAA;AAAA,MACT;AACA,MAAA,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAAA,IAChC;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEQ,uBAAuB,OAAA,EAA2B;AACxD,IAAA,MAAM,SAAmB,EAAC;AAC1B,IAAA,IAAI,YAAA,GAAe,EAAA;AACnB,IAAA,IAAI,YAAA,GAAe,CAAA;AAEnB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,MAAA,MAAM,IAAA,GAAO,QAAQ,CAAC,CAAA;AACtB,MAAA,IAAI,SAAS,GAAA,EAAK,YAAA,EAAA;AAClB,MAAA,IAAI,SAAS,GAAA,EAAK,YAAA,EAAA;AAElB,MAAA,YAAA,IAAgB,IAAA;AAEhB,MAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,QAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,CAAA,KAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC7C,UAAA,MAAM,OAAA,GAAU,aAAa,IAAA,EAAK;AAClC,UAAA,IAAI,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA;AAChC,UAAA,YAAA,GAAe,EAAA;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,YAAA,GAAe,aAAa,IAAA,EAAK;AACvC,IAAA,IAAI,YAAA,EAAc,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA;AAE1C,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,OAAA,EAAkC;AACpD,IAAA,MAAM,SAAS,OAAA,CAAQ,WAAA,GAAc,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAEvD,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,OAAO,IAAA;AAE9B,IAAA,MAAM,MAAA,GAAS,OAAO,CAAC,CAAA;AACvB,IAAA,MAAM,WAAA,GAAc,OAAO,CAAC,CAAA;AAC5B,IAAA,MAAM,IAAA,GAAO,OAAO,CAAC,CAAA;AAErB,IAAA,IAAI,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,KAAA,EAAO,OAAO,IAAA;AACpD,IAAA,IAAI,CAAC,IAAA,CAAK,oBAAA,CAAqB,WAAW,GAAG,OAAO,IAAA;AAEpD,IAAA,MAAM,IAAA,GAAiB;AAAA,MACrB,IAAA,EAAM,YAAA;AAAA,MACN,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA,EAAY,IAAA,CAAK,oBAAA,CAAqB,WAA4B;AAAA,KACpE;AAEA,IAAA,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,cAAA,CAAe,aAAqB,QAAA,EAAuC;AACzE,IAAA,QAAQ,WAAA;AAAa,MACnB,KAAK,KAAA;AACH,QAAA,OAAO,IAAA,CAAK,qBAAqB,QAAA,EAAU,CAAA,OAAA,EAAU,KAAK,GAAA,EAAK,IAAI,QAAQ,CAAA;AAAA,MAC7E,KAAK,YAAA;AACH,QAAA,OAAO,IAAA,CAAK,qBAAqB,WAAA,EAAa,CAAA,MAAA,EAAS,KAAK,GAAA,EAAK,IAAI,QAAQ,CAAA;AAAA,MAC/E,KAAK,YAAA;AACH,QAAA,OAAO,IAAA,CAAK,qBAAqB,OAAA,EAAS,CAAA,MAAA,EAAS,KAAK,GAAA,EAAK,IAAI,QAAQ,CAAA;AAAA,MAC3E;AACE,QAAA,OAAO,IAAA;AAAA;AACX,EACF;AAAA,EAEQ,oBAAA,CAAqB,WAAA,EAA4B,IAAA,EAAc,QAAA,EAAgC;AACrG,IAAA,MAAM,IAAA,GAAiB;AAAA,MACrB,IAAA,EAAM,YAAA;AAAA,MACN,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,GAAG,IAAA,CAAK,oBAAA,CAAqB,WAAW,CAAA;AAAA,QACxC,GAAG,QAAA,CAAS,CAAA;AAAA,QACZ,GAAG,QAAA,CAAS;AAAA;AACd,KACF;AAEA,IAAA,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEQ,qBAAqB,IAAA,EAAuB;AAClD,IAAA,MAAM,UAAA,GAA8B;AAAA,MAClC,QAAA;AAAA,MAAU,QAAA;AAAA,MAAU,WAAA;AAAA,MAAa,OAAA;AAAA,MAAS,MAAA;AAAA,MAAQ,OAAA;AAAA,MAClD,MAAA;AAAA,MAAQ,OAAA;AAAA,MAAS,QAAA;AAAA,MAAU,QAAA;AAAA,MAAU,UAAA;AAAA,MACrC,gBAAA;AAAA,MAAkB,gBAAA;AAAA,MAAkB,aAAA;AAAA,MAAe;AAAA,KACrD;AACA,IAAA,OAAO,UAAA,CAAW,SAAS,IAAqB,CAAA;AAAA,EAClD;AAAA,EAEQ,mBAAmB,KAAA,EAAwB;AACjD,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAE3B,IAAA,IAAK,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,IAAK,QAAQ,QAAA,CAAS,GAAG,CAAA,IAC/C,OAAA,CAAQ,WAAW,GAAG,CAAA,IAAK,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAI;AACtD,MAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,IAC5B;AAEA,IAAA,IAAI,CAAC,KAAA,CAAM,UAAA,CAAW,OAAO,CAAC,KAAK,QAAA,CAAS,UAAA,CAAW,OAAO,CAAC,CAAA,EAAG;AAChE,MAAA,OAAO,WAAW,OAAO,CAAA;AAAA,IAC3B;AAEA,IAAA,IAAI,OAAA,KAAY,QAAQ,OAAO,IAAA;AAC/B,IAAA,IAAI,OAAA,KAAY,SAAS,OAAO,KAAA;AAEhC,IAAA,IAAI,QAAQ,UAAA,CAAW,GAAG,KAAK,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACpD,MAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA;AAAA,QAAI,CAAA,IAAA,KAChD,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,MAAM;AAAA,OACrC;AACA,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEQ,qBAAqB,WAAA,EAAqD;AAChF,IAAA,MAAM,QAAA,GAA2D;AAAA,MAC/D,UAAU,EAAE,KAAA,EAAO,KAAK,MAAA,EAAQ,GAAA,EAAK,iBAAiB,SAAA,EAAU;AAAA,MAChE,QAAA,EAAU,EAAE,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,EAAA,EAAI,eAAA,EAAiB,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,cAAc,CAAA,EAAE;AAAA,MAClH,WAAA,EAAa,EAAE,WAAA,EAAa,EAAA,EAAI,OAAO,GAAA,EAAK,MAAA,EAAQ,EAAA,EAAI,QAAA,EAAU,IAAI,WAAA,EAAa,SAAA,EAAW,WAAA,EAAa,CAAA,EAAG,cAAc,CAAA,EAAE;AAAA,MAC9H,OAAA,EAAS,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,GAAA,EAAK,eAAA,EAAiB,SAAA,EAAW,YAAA,EAAc,CAAA,EAAE;AAAA,MAChF,MAAA,EAAQ,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,YAAA,EAAa;AAAA,MACpF,OAAA,EAAS,EAAE,GAAA,EAAK,EAAA,EAAI,OAAO,GAAA,EAAK,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAK,OAAA,EAAQ;AAAA,MAC1D,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAC,EAAG,YAAY,EAAA,EAAI,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,GAAA,EAAI;AAAA,MAC7D,OAAA,EAAS,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,GAAA,EAAK,OAAA,EAAS,KAAA,EAAO,eAAA,EAAiB,SAAA,EAAU;AAAA,MAC/F,QAAA,EAAU,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAK,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,GAAA,EAAI;AAAA,MACpD,UAAU,EAAE,OAAA,EAAS,OAAO,KAAA,EAAO,EAAA,EAAI,QAAQ,EAAA,EAAG;AAAA,MAClD,UAAA,EAAY,EAAE,OAAA,EAAS,IAAI,QAAA,EAAU,IAAA,EAAM,OAAO,GAAA,EAAI;AAAA,MACtD,kBAAkB,EAAE,SAAA,EAAW,OAAO,GAAA,EAAK,EAAA,EAAI,SAAS,EAAA,EAAG;AAAA,MAC3D,kBAAkB,EAAE,OAAA,EAAS,GAAG,GAAA,EAAK,EAAA,EAAI,SAAS,EAAA,EAAG;AAAA,MACrD,eAAe,EAAE,KAAA,EAAO,KAAK,MAAA,EAAQ,GAAA,EAAK,iBAAiB,UAAA,EAAW;AAAA,MACtE,UAAA,EAAY,EAAE,IAAA,EAAM,EAAC,EAAG,WAAA,EAAa,IAAA,EAAM,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,GAAA;AAAI,KACzF;AACA,IAAA,OAAO,EAAE,GAAG,QAAA,CAAS,WAAW,CAAA,EAAE;AAAA,EACpC;AAAA,EAEA,aAAA,GAAuC;AACrC,IAAA,OAAO,IAAI,GAAA,CAAI,IAAA,CAAK,UAAU,CAAA;AAAA,EAChC;AAAA,EAEA,YAAY,IAAA,EAA+B;AACzC,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,IAAI,CAAA,IAAK,IAAA;AAAA,EACtC;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,WAAW,KAAA,EAAM;AAAA,EACxB;AACF;;;ACrOA,IAAM,0BAAA,GAA6B;AAAA,EACjC,gBAAA,EAAkB,GAAA;AAAA,EAClB,SAAA,EAAW,GAAA;AAAA,EAEX,kBAAA,EAAoB;AAAA,IAClB,SAAA;AAAA,IAAW,SAAA;AAAA,IAAW,MAAA;AAAA,IAAQ,QAAA;AAAA,IAAU,aAAA;AAAA,IACxC,WAAA;AAAA,IAAa,WAAA;AAAA,IAAa,IAAA;AAAA,IAAM,eAAA;AAAA,IAAiB,MAAA;AAAA,IACjD,OAAA;AAAA,IAAS,OAAA;AAAA,IAAS;AAAA,GACpB;AAAA,EAEA,iBAAA,EAAmB;AAAA,IACjB,QAAA;AAAA,IAAU,QAAA;AAAA,IAAU,WAAA;AAAA,IAAa,OAAA;AAAA,IAAS,MAAA;AAAA,IAAQ,OAAA;AAAA,IAClD,MAAA;AAAA,IAAQ,OAAA;AAAA,IAAS,QAAA;AAAA,IAAU,QAAA;AAAA,IAAU,UAAA;AAAA,IACrC,gBAAA;AAAA,IAAkB,gBAAA;AAAA,IAAkB;AAAA;AAExC,CAAA;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAI5B,WAAA,GAAc;AAHd,IAAA,IAAA,CAAQ,MAAiB,EAAC;AAIxB,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,kBAAA,EAAmB;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAAA,EAAkC;AAClD,IAAA,IAAI,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,0BAAA,CAA2B,gBAAA,EAAkB;AACxE,MAAAA,wBAAA,CAAO,KAAK,kBAAA,EAAoB;AAAA,QAC9B,MAAA,EAAQ,QAAQ,OAAA,CAAQ,MAAA;AAAA,QACxB,OAAO,0BAAA,CAA2B;AAAA,OACnC,CAAA;AACD,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,YAAY,IAAA,CAAK,eAAA,CAAgB,OAAA,CAAQ,OAAA,CAAQ,aAAa,CAAA;AACpE,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,cAAA,CAAe,SAAS,CAAA;AAE5C,IAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,EAAC;AAEjC,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,0BAAA,CAA2B,SAAA,EAAW;AACxD,MAAAA,wBAAA,CAAO,KAAK,4BAAA,EAA8B;AAAA,QACxC,YAAY,MAAA,CAAO,MAAA;AAAA,QACnB,OAAO,0BAAA,CAA2B;AAAA,OACnC,CAAA;AACD,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,WAAA,GAAc,OAAO,CAAC,CAAA;AAG5B,IAAA,IAAA,CAAK,gBAAgB,QAAA,IAAY,WAAA,KAAgB,KAAA,KAAU,MAAA,CAAO,SAAS,CAAA,EAAG;AAC5E,MAAA,MAAM,WAAA,GAAc,OAAO,CAAC,CAAA;AAC5B,MAAA,IAAI,0BAAA,CAA2B,iBAAA,CAAkB,QAAA,CAAS,WAAW,CAAA,EAAG;AACtE,QAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAAA,MAC9C;AAAA,IACF;AAEA,IAAA,QAAQ,WAAA;AAAa,MACnB,KAAK,QAAA;AAAA,MACL,KAAK,QAAA;AACH,QAAA,OAAO,KAAK,kBAAA,CAAmB,MAAA,CAAO,MAAM,CAAC,CAAA,EAAG,QAAQ,cAAc,CAAA;AAAA,MACxE,KAAK,SAAA;AACH,QAAA,OAAO,IAAA,CAAK,mBAAA,CAAoB,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACjD,KAAK,SAAA;AAAA,MACL,KAAK,KAAA;AACH,QAAA,OAAO,IAAA,CAAK,mBAAA,CAAoB,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACjD,KAAK,OAAA;AACH,QAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MAC/C,KAAK,WAAA;AACH,QAAA,OAAO,IAAA,CAAK,qBAAA,CAAsB,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,MACnD;AACE,QAAA,OAAO,IAAA,CAAK,oBAAoB,MAAM,CAAA;AAAA;AAC1C,EACF;AAAA,EAEQ,iBAAiB,OAAA,EAA4B;AACnD,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,mBAAA,CAAoB,OAAO,CAAA;AAC1D,IAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AAEvB,IAAA,MAAM,OAAA,GAA0B;AAAA,MAC9B,IAAA,EAAM,OAAA;AAAA,MACN,eAAe,QAAA,CAAS,WAAA;AAAA,MACxB,MAAM,QAAA,CAAS,IAAA;AAAA,MACf,YAAY,QAAA,CAAS,UAAA;AAAA,MACrB,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,UAAU,QAAA,CAAS;AAAA,KACrB;AAEA,IAAA,OAAO,CAAC,OAAO,CAAA;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,OAAA,EAAiC;AAC5C,IAAA,QAAQ,QAAQ,IAAA;AAAM,MACpB,KAAK,OAAA;AACH,QAAA,OAAO,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAAA,MACvC,KAAK,OAAA;AACH,QAAA,OAAO,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAAA,MACvC,KAAK,QAAA;AACH,QAAA,OAAO,IAAA,CAAK,mBAAmB,OAAO,CAAA;AAAA,MACxC,KAAK,MAAA;AACH,QAAA,OAAO,IAAA,CAAK,iBAAiB,OAAO,CAAA;AAAA,MACtC;AACE,QAAA,OAAO,EAAC;AAAA;AACZ,EACF;AAAA,EAEQ,kBAAA,CAAmB,QAAkB,QAAA,EAAuC;AAClF,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAE/B,IAAA,MAAM,KAAA,GAAQ,OAAO,CAAC,CAAA;AACtB,IAAA,MAAM,IAAA,GAAO,OAAO,CAAC,CAAA;AAErB,IAAA,QAAQ,KAAA;AAAO,MACb,KAAK,KAAA;AAAA,MACL,KAAK,QAAA;AACH,QAAA,OAAO,CAAC,IAAA,CAAK,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAC,CAAA;AAAA,MAC5C,KAAK,UAAA;AACH,QAAA,OAAO,CAAC,KAAK,kBAAA,CAAmB,IAAA,EAAM,OAAO,KAAA,CAAM,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,MAClE,KAAK,MAAA;AACH,QAAA,OAAO,CAAC,KAAK,cAAA,CAAe,IAAA,EAAM,OAAO,KAAA,CAAM,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,MAC9D,KAAK,QAAA;AACH,QAAA,OAAO,CAAC,KAAK,gBAAA,CAAiB,IAAA,EAAM,OAAO,KAAA,CAAM,CAAC,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,MAChE;AACE,QAAA,OAAO,CAAC,IAAA,CAAK,iBAAA,CAAkB,KAAA,EAAO,IAAA,EAAM,QAAQ,CAAC,CAAA;AAAA;AACzD,EACF;AAAA,EAEQ,oBAAoB,MAAA,EAA6B;AACvD,IAAA,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAE/B,IAAA,MAAM,IAAA,GAAO,OAAO,CAAC,CAAA;AACrB,IAAA,MAAM,EAAA,GAAK,OAAO,CAAC,CAAA;AACnB,IAAA,MAAM,WAAW,MAAA,CAAO,MAAA,GAAS,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,GAAI,KAAA;AAEjD,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,YAAA;AAAA,MACN,IAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,eAAe,MAAA,CAAO,QAAA,CAAS,eAAe,CAAA,IAAK,MAAA,CAAO,SAAS,MAAM;AAAA,KACxD,CAAA;AAAA,EACrB;AAAA,EAEQ,aAAA,CAAc,MAAc,QAAA,EAAqC;AACvE,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,KAAA;AAAA,MACN,IAAA;AAAA,MACA,QAAA,EAAU,YAAY,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MACzC,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,KAAA;AAAA,QACP,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,CAAA;AAAA,QACN,IAAA,EAAM,IAAA;AAAA,QACN,WAAA,EAAa;AAAA,OACf;AAAA,MACA,YAAY,EAAC;AAAA,MACb,SAAS;AAAC,KACZ;AAAA,EACF;AAAA,EAEQ,kBAAA,CAAmB,IAAA,EAAc,MAAA,EAAkB,QAAA,EAA4C;AACrG,IAAA,MAAM,aAA8B,EAAC;AAErC,IAAA,IAAI,QAAA,GAAW,KAAA;AACf,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,YAAA,EAAc;AAC9C,QAAA,QAAA,GAAW,IAAA;AACX,QAAA;AAAA,MACF;AACA,MAAA,IAAI,QAAA,IAAY,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,SAAA,EAAW;AACrD,QAAA,UAAA,CAAW,IAAA,CAAK;AAAA,UACd,IAAA,EAAM,WAAA;AAAA,UACN,IAAA,EAAM,KAAA;AAAA,UACN,QAAA,EAAU;AAAA,SACX,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,UAAA;AAAA,MACN,IAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAM,EAAC;AAAA,MACP,QAAA,EAAU,YAAY,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MACzC,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,MAAA;AAAA,QACP,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,GAAA;AAAA,QACN,IAAA,EAAM,IAAA;AAAA,QACN,WAAA,EAAa;AAAA;AACf,KACF;AAAA,EACF;AAAA,EAEQ,cAAA,CAAe,KAAA,EAAe,MAAA,EAAkB,QAAA,EAAsC;AAC5F,IAAA,MAAM,SAAA,GAAY,OAAO,IAAA,CAAK,GAAG,EAAE,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA,CAAE,IAAA,EAAK;AAEjE,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,MAAA;AAAA,MACN,SAAA;AAAA,MACA,UAAU,EAAC;AAAA,MACX,WAAW,EAAC;AAAA,MACZ,QAAA,EAAU,YAAY,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MACzC,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,SAAA;AAAA,QACP,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,CAAA;AAAA,QACN,IAAA,EAAM,IAAA;AAAA,QACN,WAAA,EAAa;AAAA;AACf,KACF;AAAA,EACF;AAAA,EAEQ,gBAAA,CAAiB,IAAA,EAAc,MAAA,EAAkB,QAAA,EAAwC;AAC/F,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA;AAAA,MACN,IAAA;AAAA,MACA,MAAA,EAAQ,MAAA,CAAO,CAAC,CAAA,IAAK,SAAA;AAAA,MACrB,iBAAiB,EAAC;AAAA,MAClB,QAAA,EAAU,YAAY,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MACzC,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,UAAA;AAAA,QACP,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,CAAA;AAAA,QACN,IAAA,EAAM,IAAA;AAAA,QACN,WAAA,EAAa;AAAA;AACf,KACF;AAAA,EACF;AAAA,EAEQ,iBAAA,CAAkB,KAAA,EAAe,IAAA,EAAc,QAAA,EAA4C;AACjG,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,KAAA;AAAA,MACN,IAAA;AAAA,MACA,QAAA,EAAU,YAAY,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,MACzC,QAAA,EAAU;AAAA,QACR,KAAA;AAAA,QACA,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,CAAA;AAAA,QACN,IAAA,EAAM,KAAA;AAAA,QACN,WAAA,EAAa;AAAA;AACf,KACF;AAAA,EACF;AAAA,EAEQ,kBAAkB,OAAA,EAAiC;AACzD,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,QAAA,EAAU,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,IAAA;AAAK,KACtF,CAAA;AAAA,EACH;AAAA,EAEQ,kBAAkB,OAAA,EAAiC;AACzD,IAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,EAAC;AAChC,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,OAAA,CAAQ,SAAA,EAAW,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,KAAA;AAAM,KAC1G,CAAA;AAAA,EACH;AAAA,EAEQ,mBAAmB,OAAA,EAAiC;AAC1D,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,QAAA,EAAU,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,IAAA;AAAK,KACzF,CAAA;AAAA,EACH;AAAA,EAEQ,iBAAiB,OAAA,EAAiC;AACxD,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,QAAA,EAAU,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,IAAA;AAAK,KACvF,CAAA;AAAA,EACH;AAAA,EAEQ,gBAAgB,OAAA,EAA2B;AACjD,IAAA,OAAO,OAAA,CACJ,WAAA,EAAY,CACZ,OAAA,CAAQ,YAAY,GAAG,CAAA,CACvB,KAAA,CAAM,KAAK,CAAA,CACX,MAAA,CAAO,CAAA,KAAA,KAAS,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA,EACrC;AAAA,EAEQ,eAAe,MAAA,EAA4B;AACjD,IAAA,OAAO,MAAA,CAAO,OAAO,CAAA,KAAA,KAAS;AAC5B,MAAA,MAAM,YAAA,GAAe,2BAA2B,kBAAA,CAAmB,IAAA;AAAA,QACjE,CAAA,OAAA,KAAW,KAAA,CAAM,QAAA,CAAS,OAAO;AAAA,OACnC;AACA,MAAA,IAAI,YAAA,EAAc;AAChB,QAAAA,wBAAA,CAAO,IAAA,CAAK,0BAAA,EAA4B,EAAE,KAAA,EAAO,CAAA;AACjD,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,oBAAoB,MAAA,EAAoC;AAC9D,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,MAAA,EAAQ,MAAA,CAAO,CAAC,CAAA,IAAK,SAAA;AAAA,MACrB,QAAA,EAAU,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,KAAA;AAAM,KAC1F,CAAA;AAAA,EACH;AAAA,EAEQ,kBAAkB,MAAA,EAAoC;AAC5D,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ,MAAA,CAAO,CAAC,CAAA,IAAK,SAAA;AAAA,MACrB,QAAA,EAAU,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,IAAA;AAAK,KAC1F,CAAA;AAAA,EACH;AAAA,EAEQ,sBAAsB,MAAA,EAAoC;AAChE,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ,MAAA,CAAO,CAAC,CAAA,IAAK,MAAA;AAAA,MACrB,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,IAAA;AAAK,KAC3F,CAAA;AAAA,EACH;AAAA,EAEQ,oBAAoB,MAAA,EAAoC;AAC9D,IAAA,OAAO,CAAC;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAAA,MACxB,QAAA,EAAU,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,WAAA,EAAa,IAAA;AAAK,KACvF,CAAA;AAAA,EACH;AAAA,EAEA,MAAA,GAAoB;AAClB,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,GAAG,CAAA;AAAA,EACrB;AAAA,EAEA,QAAQ,IAAA,EAAqB;AAC3B,IAAA,IAAA,CAAK,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,EACpB;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,MAAM,EAAC;AAAA,EACd;AAAA,EAEA,SAAS,IAAA,EAA8B;AACrC,IAAA,OAAO,IAAA,CAAK,IAAI,IAAA,CAAK,CAAA,IAAA,KAAQ,UAAU,IAAA,IAAS,IAAA,CAA2B,IAAA,KAAS,IAAI,CAAA,IAAK,IAAA;AAAA,EAC/F;AAAA,EAEA,kBAAA,CAAmB,QAAA,EAA2B,MAAA,GAAiB,CAAA,EAAc;AAC3E,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,CAAA,IAAA,KAAQ;AAC7B,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAO,KAAA;AAC3B,MAAA,MAAM,WAAW,IAAA,CAAK,IAAA;AAAA,QACpB,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,CAAA,GAAI,SAAS,CAAA,EAAG,CAAC,CAAA,GACxC,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,SAAS,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,CAAC,CAAA,GACxC,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,CAAC;AAAA,OAC1C;AACA,MAAA,OAAO,QAAA,IAAY,MAAA;AAAA,IACrB,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,YAAY,IAAA,EAA+B;AACzC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAS,cAAA,CAAe,IAAI,CAAA;AAAA,EAC1C;AAAA,EAEA,WAAA,GAAkC;AAChC,IAAA,OAAO,IAAA,CAAK,QAAA;AAAA,EACd;AACF;;;ACnQO,IAAM,kBAAA,GAAqB;AAG3B,IAAM,8BAAA,GAAiC;AAAA,EAC5C,OAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF;AAGO,IAAM,yBAAA,GAA4B;AAAA;AAAA,EAEvC,mBAAA;AAAA,EACA,wBAAA;AAAA,EACA,wBAAA;AAAA,EACA,oBAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,2CAAA;AAAA;AAAA,EAEA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF;AAGO,IAAM,mBAAA,GAAsB;AAAA,EACjC,uBAAA;AAAA,EACA,yBAAA;AAAA,EACA,4BAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA;AACF;AAGO,IAAM,uBAAA,GAA0B;AAAA,EACrC,UAAA,EAAY,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,CAAA,CAAA;AAAA,EAUZ,OAAA,EAAS,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAAA,EAYT,aAAA,EAAe,CAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAAA,EAef,SAAA,EAAW,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAAA,EAyBX,SAAA,EAAW,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAsBb;AAOO,SAAS,2BAAA,GAA8B;AAC5C,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,IAAI,gBAAA,EAAiB;AAAA,IAC7B,OAAA,EAAS,IAAIC,mCAAA,EAAkB;AAAA,IAC/B,OAAA,EAAS;AAAA,GACX;AACF;AAKO,SAAS,qBAAA,GAAiC;AAC/C,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,EAAa,OAAO,KAAA;AAC9C,EAAA,MAAM,GAAA,GAAM,UAAA;AACZ,EAAA,IAAI,CAAC,GAAA,CAAI,MAAA,EAAQ,OAAO,KAAA;AAExB,EAAA,OAAO,CAAC,EACN,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,EAAA,IACtB,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,aAAA,IACtB,GAAA,CAAI,MAAA,CAAO,kBAAA,CAAA;AAEf","file":"index.cjs","sourcesContent":["/**\n * HoloScript 2D Parser Extension\n *\n * Adds support for 2D UI elements to HoloScript for desktop/mobile apps.\n * Works alongside 3D VR syntax for hybrid applications.\n */\n\nimport { logger } from './logger';\nimport type { UI2DNode, UIElementType, Position2D } from './types';\n\nconst UI_SECURITY_CONFIG = {\n maxUIElements: 500,\n maxNestingDepth: 10,\n maxPropertyLength: 500,\n allowedEventHandlers: ['onClick', 'onChange', 'onSubmit', 'onFocus', 'onBlur', 'onHover'],\n};\n\nexport class HoloScript2DParser {\n private uiElements: Map<string, UI2DNode> = new Map();\n\n /**\n * Parse 2D UI element from HoloScript code\n */\n parse2DElement(code: string, depth: number = 0): UI2DNode | null {\n if (depth > UI_SECURITY_CONFIG.maxNestingDepth) {\n logger.warn('Max nesting depth exceeded', { depth });\n return null;\n }\n\n const trimmedCode = code.trim();\n const lines = trimmedCode.split('\\n');\n if (lines.length === 0) return null;\n\n const firstLine = lines[0].trim();\n const headerMatch = firstLine.match(/^([\\w-]+)\\s+(\\w+)\\s*\\{/);\n\n if (!headerMatch) {\n logger.warn('Invalid 2D element syntax', { line: firstLine });\n return null;\n }\n\n const [, elementType, name] = headerMatch;\n\n if (!this.isValidUIElementType(elementType)) {\n logger.warn('Invalid UI element type', { elementType });\n return null;\n }\n\n const startIndex = trimmedCode.indexOf('{');\n const endIndex = trimmedCode.lastIndexOf('}');\n if (startIndex === -1 || endIndex === -1 || endIndex <= startIndex) {\n return null;\n }\n\n const innerContent = trimmedCode.slice(startIndex + 1, endIndex).trim();\n const innerLines = this.splitIntoLogicalBlocks(innerContent);\n\n const properties: Record<string, unknown> = {};\n const events: Record<string, string> = {};\n const children: UI2DNode[] = [];\n\n for (const block of innerLines) {\n const line = block.trim();\n if (!line) continue;\n\n if (line.includes('{')) {\n const childNode = this.parse2DElement(line, depth + 1);\n if (childNode) children.push(childNode);\n continue;\n }\n\n const propMatch = line.match(/^(\\w+):\\s*(.+)$/);\n if (propMatch) {\n const [, key, rawValue] = propMatch;\n if (UI_SECURITY_CONFIG.allowedEventHandlers.includes(key)) {\n events[key] = rawValue.trim();\n } else {\n properties[key] = this.parsePropertyValue(rawValue);\n }\n }\n }\n\n const node: UI2DNode = {\n type: '2d-element',\n elementType: elementType as UIElementType,\n name,\n properties: { ...this.getDefaultProperties(elementType as UIElementType), ...properties },\n events: Object.keys(events).length > 0 ? events : undefined,\n children: children.length > 0 ? children : undefined,\n };\n\n if (depth === 0) {\n if (this.uiElements.size >= UI_SECURITY_CONFIG.maxUIElements) {\n logger.warn('Max UI elements limit reached');\n return null;\n }\n this.uiElements.set(name, node);\n }\n\n return node;\n }\n\n private splitIntoLogicalBlocks(content: string): string[] {\n const blocks: string[] = [];\n let currentBlock = '';\n let bracketDepth = 0;\n\n for (let i = 0; i < content.length; i++) {\n const char = content[i];\n if (char === '{') bracketDepth++;\n if (char === '}') bracketDepth--;\n\n currentBlock += char;\n\n if (bracketDepth === 0) {\n if (char === '\\n' || i === content.length - 1) {\n const trimmed = currentBlock.trim();\n if (trimmed) blocks.push(trimmed);\n currentBlock = '';\n }\n }\n }\n\n const finalTrimmed = currentBlock.trim();\n if (finalTrimmed) blocks.push(finalTrimmed);\n\n return blocks;\n }\n\n /**\n * Parse voice command for 2D UI creation\n */\n parse2DVoiceCommand(command: string): UI2DNode | null {\n const tokens = command.toLowerCase().trim().split(/\\s+/);\n\n if (tokens.length < 3) return null;\n\n const action = tokens[0];\n const elementType = tokens[1];\n const name = tokens[2];\n\n if (action !== 'create' && action !== 'add') return null;\n if (!this.isValidUIElementType(elementType)) return null;\n\n const node: UI2DNode = {\n type: '2d-element',\n elementType: elementType as UIElementType,\n name,\n properties: this.getDefaultProperties(elementType as UIElementType),\n };\n\n this.uiElements.set(name, node);\n return node;\n }\n\n /**\n * Parse gesture for 2D UI interaction\n */\n parse2DGesture(gestureType: string, position: Position2D): UI2DNode | null {\n switch (gestureType) {\n case 'tap':\n return this.createQuick2DElement('button', `button_${Date.now()}`, position);\n case 'double-tap':\n return this.createQuick2DElement('textinput', `input_${Date.now()}`, position);\n case 'long-press':\n return this.createQuick2DElement('panel', `panel_${Date.now()}`, position);\n default:\n return null;\n }\n }\n\n private createQuick2DElement(elementType: UIElementType, name: string, position: Position2D): UI2DNode {\n const node: UI2DNode = {\n type: '2d-element',\n elementType,\n name,\n properties: {\n ...this.getDefaultProperties(elementType),\n x: position.x,\n y: position.y,\n },\n };\n\n this.uiElements.set(name, node);\n return node;\n }\n\n private isValidUIElementType(type: string): boolean {\n const validTypes: UIElementType[] = [\n 'canvas', 'button', 'textinput', 'panel', 'text', 'image',\n 'list', 'modal', 'slider', 'toggle', 'dropdown',\n 'flex-container', 'grid-container', 'scroll-view', 'tab-view'\n ];\n return validTypes.includes(type as UIElementType);\n }\n\n private parsePropertyValue(value: string): unknown {\n const trimmed = value.trim();\n\n if ((trimmed.startsWith('\"') && trimmed.endsWith('\"')) ||\n (trimmed.startsWith(\"'\") && trimmed.endsWith(\"'\"))) {\n return trimmed.slice(1, -1);\n }\n\n if (!isNaN(parseFloat(trimmed)) && isFinite(parseFloat(trimmed))) {\n return parseFloat(trimmed);\n }\n\n if (trimmed === 'true') return true;\n if (trimmed === 'false') return false;\n\n if (trimmed.startsWith('[') && trimmed.endsWith(']')) {\n const items = trimmed.slice(1, -1).split(',').map(item =>\n this.parsePropertyValue(item.trim())\n );\n return items;\n }\n\n return trimmed;\n }\n\n private getDefaultProperties(elementType: UIElementType): Record<string, unknown> {\n const defaults: Record<UIElementType, Record<string, unknown>> = {\n 'canvas': { width: 800, height: 600, backgroundColor: '#ffffff' },\n 'button': { text: 'Button', width: 120, height: 40, backgroundColor: '#007bff', color: '#ffffff', borderRadius: 4 },\n 'textinput': { placeholder: '', width: 200, height: 36, fontSize: 14, borderColor: '#cccccc', borderWidth: 1, borderRadius: 4 },\n 'panel': { width: 200, height: 200, backgroundColor: '#f0f0f0', borderRadius: 0 },\n 'text': { content: 'Text', fontSize: 16, color: '#000000', fontFamily: 'sans-serif' },\n 'image': { src: '', width: 100, height: 100, fit: 'cover' },\n 'list': { items: [], itemHeight: 40, width: 200, height: 300 },\n 'modal': { title: 'Modal', width: 400, height: 300, visible: false, backgroundColor: '#ffffff' },\n 'slider': { min: 0, max: 100, value: 50, width: 200 },\n 'toggle': { checked: false, width: 50, height: 24 },\n 'dropdown': { options: [], selected: null, width: 200 },\n 'flex-container': { direction: 'row', gap: 10, padding: 10 },\n 'grid-container': { columns: 3, gap: 10, padding: 10 },\n 'scroll-view': { width: 300, height: 400, scrollDirection: 'vertical' },\n 'tab-view': { tabs: [], activeTabId: null, tabPosition: 'top', width: 400, height: 300 },\n };\n return { ...defaults[elementType] };\n }\n\n getUIElements(): Map<string, UI2DNode> {\n return new Map(this.uiElements);\n }\n\n findElement(name: string): UI2DNode | null {\n return this.uiElements.get(name) || null;\n }\n\n clear(): void {\n this.uiElements.clear();\n }\n}\n\nexport type { UI2DNode, UIElementType, Position2D };\n","/**\n * HoloScript Parser\n *\n * Parses voice commands, gestures, and code into HoloScript AST.\n * Supports both 3D VR and 2D UI elements.\n */\n\nimport { logger } from './logger';\nimport { HoloScript2DParser } from './HoloScript2DParser';\nimport type {\n ASTNode,\n OrbNode,\n ParameterNode,\n ConnectionNode,\n GateNode,\n StreamNode,\n GenericASTNode,\n SpatialPosition,\n VoiceCommand,\n GestureData,\n UI2DNode,\n HologramShape,\n} from './types';\n\nconst HOLOSCRIPT_SECURITY_CONFIG = {\n maxCommandLength: 1000,\n maxTokens: 100,\n maxHologramsPerUser: 50,\n suspiciousKeywords: [\n 'process', 'require', 'eval', 'import', 'constructor',\n 'prototype', '__proto__', 'fs', 'child_process', 'exec',\n 'spawn', 'fetch', 'xmlhttprequest',\n ],\n allowedShapes: ['orb', 'cube', 'cylinder', 'pyramid', 'sphere', 'function', 'gate', 'stream'],\n allowedUIElements: [\n 'canvas', 'button', 'textinput', 'panel', 'text', 'image',\n 'list', 'modal', 'slider', 'toggle', 'dropdown',\n 'flex-container', 'grid-container', 'scroll-view'\n ],\n};\n\nexport class HoloScriptParser {\n private ast: ASTNode[] = [];\n private parser2D: HoloScript2DParser;\n\n constructor() {\n this.parser2D = new HoloScript2DParser();\n }\n\n /**\n * Parse voice command into AST nodes\n */\n parseVoiceCommand(command: VoiceCommand): ASTNode[] {\n if (command.command.length > HOLOSCRIPT_SECURITY_CONFIG.maxCommandLength) {\n logger.warn('Command too long', {\n length: command.command.length,\n limit: HOLOSCRIPT_SECURITY_CONFIG.maxCommandLength,\n });\n return [];\n }\n\n const rawTokens = this.tokenizeCommand(command.command.toLowerCase());\n const tokens = this.sanitizeTokens(rawTokens);\n\n if (tokens.length === 0) return [];\n\n if (tokens.length > HOLOSCRIPT_SECURITY_CONFIG.maxTokens) {\n logger.warn('Too many tokens in command', {\n tokenCount: tokens.length,\n limit: HOLOSCRIPT_SECURITY_CONFIG.maxTokens,\n });\n return [];\n }\n\n const commandType = tokens[0];\n\n // Check if this is a 2D UI command\n if ((commandType === 'create' || commandType === 'add') && tokens.length > 1) {\n const elementType = tokens[1];\n if (HOLOSCRIPT_SECURITY_CONFIG.allowedUIElements.includes(elementType)) {\n return this.parse2DUICommand(command.command);\n }\n }\n\n switch (commandType) {\n case 'create':\n case 'summon':\n return this.parseCreateCommand(tokens.slice(1), command.spatialContext);\n case 'connect':\n return this.parseConnectCommand(tokens.slice(1));\n case 'execute':\n case 'run':\n return this.parseExecuteCommand(tokens.slice(1));\n case 'debug':\n return this.parseDebugCommand(tokens.slice(1));\n case 'visualize':\n return this.parseVisualizeCommand(tokens.slice(1));\n default:\n return this.parseGenericCommand(tokens);\n }\n }\n\n private parse2DUICommand(command: string): ASTNode[] {\n const ui2DNode = this.parser2D.parse2DVoiceCommand(command);\n if (!ui2DNode) return [];\n\n const astNode: GenericASTNode = {\n type: '2d-ui',\n uiElementType: ui2DNode.elementType,\n name: ui2DNode.name,\n properties: ui2DNode.properties,\n events: ui2DNode.events,\n children: ui2DNode.children,\n };\n\n return [astNode];\n }\n\n /**\n * Parse gesture input\n */\n parseGesture(gesture: GestureData): ASTNode[] {\n switch (gesture.type) {\n case 'pinch':\n return this.parsePinchGesture(gesture);\n case 'swipe':\n return this.parseSwipeGesture(gesture);\n case 'rotate':\n return this.parseRotateGesture(gesture);\n case 'grab':\n return this.parseGrabGesture(gesture);\n default:\n return [];\n }\n }\n\n private parseCreateCommand(tokens: string[], position?: SpatialPosition): ASTNode[] {\n if (tokens.length < 2) return [];\n\n const shape = tokens[0];\n const name = tokens[1];\n\n switch (shape) {\n case 'orb':\n case 'sphere':\n return [this.createOrbNode(name, position)];\n case 'function':\n return [this.createFunctionNode(name, tokens.slice(2), position)];\n case 'gate':\n return [this.createGateNode(name, tokens.slice(2), position)];\n case 'stream':\n return [this.createStreamNode(name, tokens.slice(2), position)];\n default:\n return [this.createGenericNode(shape, name, position)];\n }\n }\n\n private parseConnectCommand(tokens: string[]): ASTNode[] {\n if (tokens.length < 3) return [];\n\n const from = tokens[0];\n const to = tokens[2];\n const dataType = tokens.length > 3 ? tokens[3] : 'any';\n\n return [{\n type: 'connection',\n from,\n to,\n dataType,\n bidirectional: tokens.includes('bidirectional') || tokens.includes('both'),\n } as ConnectionNode];\n }\n\n private createOrbNode(name: string, position?: SpatialPosition): OrbNode {\n return {\n type: 'orb',\n name,\n position: position || { x: 0, y: 0, z: 0 },\n hologram: {\n shape: 'orb',\n color: '#00ffff',\n size: 1,\n glow: true,\n interactive: true,\n },\n properties: {},\n methods: [],\n };\n }\n\n private createFunctionNode(name: string, params: string[], position?: SpatialPosition): GenericASTNode {\n const parameters: ParameterNode[] = [];\n\n let inParams = false;\n for (const param of params) {\n if (param === 'with' || param === 'parameters') {\n inParams = true;\n continue;\n }\n if (inParams && param !== 'do' && param !== 'execute') {\n parameters.push({\n type: 'parameter',\n name: param,\n dataType: 'any',\n });\n }\n }\n\n return {\n type: 'function',\n name,\n parameters,\n body: [],\n position: position || { x: 0, y: 0, z: 0 },\n hologram: {\n shape: 'cube',\n color: '#ff6b35',\n size: 1.5,\n glow: true,\n interactive: true,\n },\n };\n }\n\n private createGateNode(_name: string, params: string[], position?: SpatialPosition): GateNode {\n const condition = params.join(' ').replace('condition', '').trim();\n\n return {\n type: 'gate',\n condition,\n truePath: [],\n falsePath: [],\n position: position || { x: 0, y: 0, z: 0 },\n hologram: {\n shape: 'pyramid',\n color: '#4ecdc4',\n size: 1,\n glow: true,\n interactive: true,\n },\n };\n }\n\n private createStreamNode(name: string, params: string[], position?: SpatialPosition): StreamNode {\n return {\n type: 'stream',\n name,\n source: params[0] || 'unknown',\n transformations: [],\n position: position || { x: 0, y: 0, z: 0 },\n hologram: {\n shape: 'cylinder',\n color: '#45b7d1',\n size: 2,\n glow: true,\n interactive: true,\n },\n };\n }\n\n private createGenericNode(shape: string, name: string, position?: SpatialPosition): GenericASTNode {\n return {\n type: shape,\n name,\n position: position || { x: 0, y: 0, z: 0 },\n hologram: {\n shape: shape as HologramShape,\n color: '#ffffff',\n size: 1,\n glow: false,\n interactive: true,\n },\n };\n }\n\n private parsePinchGesture(gesture: GestureData): ASTNode[] {\n return [{\n type: 'create',\n position: gesture.position,\n hologram: { shape: 'orb', color: '#ff0000', size: 0.5, glow: true, interactive: true },\n }];\n }\n\n private parseSwipeGesture(gesture: GestureData): ASTNode[] {\n if (!gesture.direction) return [];\n return [{\n type: 'connect',\n position: gesture.position,\n hologram: { shape: 'cylinder', color: '#00ff00', size: gesture.magnitude, glow: true, interactive: false },\n }];\n }\n\n private parseRotateGesture(gesture: GestureData): ASTNode[] {\n return [{\n type: 'modify',\n position: gesture.position,\n hologram: { shape: 'sphere', color: '#ffff00', size: 0.8, glow: true, interactive: true },\n }];\n }\n\n private parseGrabGesture(gesture: GestureData): ASTNode[] {\n return [{\n type: 'select',\n position: gesture.position,\n hologram: { shape: 'cube', color: '#ff00ff', size: 0.3, glow: true, interactive: true },\n }];\n }\n\n private tokenizeCommand(command: string): string[] {\n return command\n .toLowerCase()\n .replace(/[^\\w\\s]/g, ' ')\n .split(/\\s+/)\n .filter(token => token.length > 0);\n }\n\n private sanitizeTokens(tokens: string[]): string[] {\n return tokens.filter(token => {\n const isSuspicious = HOLOSCRIPT_SECURITY_CONFIG.suspiciousKeywords.some(\n keyword => token.includes(keyword)\n );\n if (isSuspicious) {\n logger.warn('Suspicious token blocked', { token });\n return false;\n }\n return true;\n });\n }\n\n private parseExecuteCommand(tokens: string[]): GenericASTNode[] {\n return [{\n type: 'execute',\n target: tokens[0] || 'unknown',\n hologram: { shape: 'sphere', color: '#ff4500', size: 1.2, glow: true, interactive: false },\n }];\n }\n\n private parseDebugCommand(tokens: string[]): GenericASTNode[] {\n return [{\n type: 'debug',\n target: tokens[0] || 'program',\n hologram: { shape: 'pyramid', color: '#ff1493', size: 0.8, glow: true, interactive: true },\n }];\n }\n\n private parseVisualizeCommand(tokens: string[]): GenericASTNode[] {\n return [{\n type: 'visualize',\n target: tokens[0] || 'data',\n hologram: { shape: 'cylinder', color: '#32cd32', size: 1.5, glow: true, interactive: true },\n }];\n }\n\n private parseGenericCommand(tokens: string[]): GenericASTNode[] {\n return [{\n type: 'generic',\n command: tokens.join(' '),\n hologram: { shape: 'orb', color: '#808080', size: 0.5, glow: false, interactive: true },\n }];\n }\n\n getAST(): ASTNode[] {\n return [...this.ast];\n }\n\n addNode(node: ASTNode): void {\n this.ast.push(node);\n }\n\n clear(): void {\n this.ast = [];\n }\n\n findNode(name: string): ASTNode | null {\n return this.ast.find(node => 'name' in node && (node as { name?: string }).name === name) || null;\n }\n\n getNodesAtPosition(position: SpatialPosition, radius: number = 1): ASTNode[] {\n return this.ast.filter(node => {\n if (!node.position) return false;\n const distance = Math.sqrt(\n Math.pow(node.position.x - position.x, 2) +\n Math.pow(node.position.y - position.y, 2) +\n Math.pow(node.position.z - position.z, 2)\n );\n return distance <= radius;\n });\n }\n\n parse2DCode(code: string): UI2DNode | null {\n return this.parser2D.parse2DElement(code);\n }\n\n get2DParser(): HoloScript2DParser {\n return this.parser2D;\n }\n}\n","/**\n * @holoscript/core\n *\n * Core HoloScript language - parser, runtime, and AST types.\n *\n * HoloScript is an open source VR scene description language that supports:\n * - Voice commands for 3D object creation\n * - Gesture input parsing\n * - 2D UI element definition\n * - Spatial programming concepts\n *\n * @example\n * ```typescript\n * import { HoloScriptParser, HoloScriptRuntime } from '@holoscript/core';\n *\n * const parser = new HoloScriptParser();\n * const runtime = new HoloScriptRuntime();\n *\n * // Parse a voice command\n * const nodes = parser.parseVoiceCommand({\n * command: 'create orb myOrb',\n * confidence: 0.95,\n * timestamp: Date.now()\n * });\n *\n * // Execute the AST\n * const results = await runtime.executeProgram(nodes);\n * ```\n *\n * @packageDocumentation\n */\n\n// Import for use in utility functions\nimport { HoloScriptParser } from './HoloScriptParser';\nimport { HoloScriptRuntime } from './HoloScriptRuntime';\n\n// Parser\nexport { HoloScriptParser } from './HoloScriptParser';\nexport { HoloScript2DParser } from './HoloScript2DParser';\nexport { HoloScriptCodeParser, type ParseResult, type ParseError } from './HoloScriptCodeParser';\n\n// Runtime\nexport { HoloScriptRuntime } from './HoloScriptRuntime';\n\n// Type Checker\nexport {\n HoloScriptTypeChecker,\n createTypeChecker,\n type TypeCheckResult,\n type TypeInfo,\n type TypeDiagnostic,\n} from './HoloScriptTypeChecker';\n\n// Debugger\nexport {\n HoloScriptDebugger,\n createDebugger,\n type Breakpoint,\n type StackFrame,\n type DebugState,\n type DebugEvent,\n type StepMode,\n} from './HoloScriptDebugger';\n\n// Logger\nexport {\n logger,\n setHoloScriptLogger,\n enableConsoleLogging,\n resetLogger,\n NoOpLogger,\n ConsoleLogger,\n type HoloScriptLogger,\n} from './logger';\n\n// Types\nexport type {\n // Spatial\n SpatialPosition,\n Position2D,\n Size2D,\n\n // Hologram\n HologramShape,\n HologramProperties,\n\n // Input\n VoiceCommand,\n GestureType,\n HandType,\n GestureData,\n\n // AST Nodes\n ASTNode,\n OrbNode,\n MethodNode,\n ParameterNode,\n ConnectionNode,\n GateNode,\n StreamNode,\n TransformationNode,\n GenericASTNode,\n\n // Phase 2: Loop Nodes\n ForLoopNode,\n WhileLoopNode,\n ForEachLoopNode,\n\n // Phase 2: Module Nodes\n ImportNode,\n ExportNode,\n\n // Phase 2: Variable Nodes\n VariableDeclarationNode,\n\n // Phase B: Data Cell Nodes\n DataCellType,\n DataCellStyle,\n DataCellNode,\n DataZoneNode,\n\n // 2D UI\n UIElementType,\n UI2DNode,\n UIStyle,\n\n // Runtime\n RuntimeContext,\n ExecutionResult,\n ParticleSystem,\n\n // Config\n SecurityConfig,\n RuntimeSecurityLimits,\n} from './types';\n\n// Version\nexport const HOLOSCRIPT_VERSION = '1.0.0-alpha.1';\n\n// Supported Platforms\nexport const HOLOSCRIPT_SUPPORTED_PLATFORMS = [\n 'WebXR',\n 'Oculus Quest',\n 'HTC Vive',\n 'Valve Index',\n 'Apple Vision Pro',\n 'Windows Mixed Reality',\n] as const;\n\n// Voice Commands Reference\nexport const HOLOSCRIPT_VOICE_COMMANDS = [\n // 3D VR Commands\n 'create orb [name]',\n 'summon function [name]',\n 'connect [from] to [to]',\n 'execute [function]',\n 'debug program',\n 'visualize [data]',\n 'gate [condition]',\n 'stream [source] through [transformations]',\n // 2D UI Commands\n 'create button [name]',\n 'add textinput [name]',\n 'create panel [name]',\n 'add slider [name]',\n] as const;\n\n// Gesture Reference\nexport const HOLOSCRIPT_GESTURES = [\n 'pinch - create object',\n 'swipe - connect objects',\n 'rotate - modify properties',\n 'grab - select object',\n 'spread - expand view',\n 'fist - execute action',\n] as const;\n\n// Demo Scripts\nexport const HOLOSCRIPT_DEMO_SCRIPTS = {\n helloWorld: `orb greeting {\n message: \"Hello, HoloScript World!\"\n color: \"#00ffff\"\n glow: true\n}\n\nfunction displayGreeting() {\n show greeting\n}`,\n\n aiAgent: `orb agentCore {\n personality: \"helpful\"\n capabilities: [\"conversation\", \"problem_solving\", \"learning\"]\n energy: 100\n}\n\nfunction processQuery(query: string): string {\n analyze query\n generate response\n return response\n}`,\n\n neuralNetwork: `orb inputLayer { neurons: 784 }\norb hiddenLayer { neurons: 128 }\norb outputLayer { neurons: 10 }\n\nconnect inputLayer to hiddenLayer as \"weights\"\nconnect hiddenLayer to outputLayer as \"weights\"\n\nfunction trainNetwork(data: array): object {\n forward_pass data\n calculate_loss\n backward_pass\n update_weights\n return metrics\n}`,\n\n loginForm: `button loginBtn {\n text: \"Login\"\n x: 100\n y: 150\n width: 200\n height: 40\n onClick: handleLogin\n}\n\ntextinput usernameInput {\n placeholder: \"Username\"\n x: 100\n y: 50\n width: 200\n height: 36\n}\n\ntextinput passwordInput {\n placeholder: \"Password\"\n x: 100\n y: 100\n width: 200\n height: 36\n}`,\n\n dashboard: `panel sidebar {\n x: 0\n y: 0\n width: 200\n height: 600\n backgroundColor: \"#2c3e50\"\n}\n\ntext title {\n content: \"Dashboard\"\n x: 220\n y: 20\n fontSize: 24\n color: \"#34495e\"\n}\n\nbutton refreshBtn {\n text: \"Refresh Data\"\n x: 220\n y: 60\n onClick: refreshData\n}`,\n} as const;\n\n// Utility Functions\n\n/**\n * Create a pre-configured HoloScript environment\n */\nexport function createHoloScriptEnvironment() {\n return {\n parser: new HoloScriptParser(),\n runtime: new HoloScriptRuntime(),\n version: HOLOSCRIPT_VERSION,\n };\n}\n\n/**\n * Check if the current environment supports VR/XR\n */\nexport function isHoloScriptSupported(): boolean {\n if (typeof globalThis === 'undefined') return false;\n const win = globalThis as { window?: { navigator?: { xr?: unknown; getVRDisplays?: unknown }; webkitGetUserMedia?: unknown } };\n if (!win.window) return false;\n\n return !!(\n win.window.navigator?.xr ||\n win.window.navigator?.getVRDisplays ||\n win.window.webkitGetUserMedia\n );\n}\n"]}
package/dist/index.d.cts DELETED
@@ -1,169 +0,0 @@
1
- import { U as UI2DNode, P as Position2D, V as VoiceCommand, A as ASTNode, G as GestureData, S as SpatialPosition } from './types-WQSk1Qs2.cjs';
2
- export { C as ConnectionNode, l as DataCellNode, k as DataCellStyle, D as DataCellType, m as DataZoneNode, p as ExecutionResult, E as ExportNode, i as ForEachLoopNode, F as ForLoopNode, f as GateNode, h as GenericASTNode, c as GestureType, d as HandType, b as HologramProperties, H as HologramShape, I as ImportNode, M as MethodNode, O as OrbNode, e as ParameterNode, q as ParticleSystem, R as RuntimeContext, s as RuntimeSecurityLimits, r as SecurityConfig, a as Size2D, g as StreamNode, T as TransformationNode, n as UIElementType, o as UIStyle, j as VariableDeclarationNode, W as WhileLoopNode } from './types-WQSk1Qs2.cjs';
3
- import { HoloScriptRuntime } from './runtime.cjs';
4
- export { HoloScriptCodeParser, ParseError, ParseResult } from './parser.cjs';
5
- export { HoloScriptTypeChecker, TypeCheckResult, TypeDiagnostic, TypeInfo, createTypeChecker } from './type-checker.cjs';
6
- export { Breakpoint, DebugEvent, DebugState, HoloScriptDebugger, StackFrame, StepMode, createDebugger } from './debugger.cjs';
7
-
8
- /**
9
- * HoloScript 2D Parser Extension
10
- *
11
- * Adds support for 2D UI elements to HoloScript for desktop/mobile apps.
12
- * Works alongside 3D VR syntax for hybrid applications.
13
- */
14
-
15
- declare class HoloScript2DParser {
16
- private uiElements;
17
- /**
18
- * Parse 2D UI element from HoloScript code
19
- */
20
- parse2DElement(code: string, depth?: number): UI2DNode | null;
21
- private splitIntoLogicalBlocks;
22
- /**
23
- * Parse voice command for 2D UI creation
24
- */
25
- parse2DVoiceCommand(command: string): UI2DNode | null;
26
- /**
27
- * Parse gesture for 2D UI interaction
28
- */
29
- parse2DGesture(gestureType: string, position: Position2D): UI2DNode | null;
30
- private createQuick2DElement;
31
- private isValidUIElementType;
32
- private parsePropertyValue;
33
- private getDefaultProperties;
34
- getUIElements(): Map<string, UI2DNode>;
35
- findElement(name: string): UI2DNode | null;
36
- clear(): void;
37
- }
38
-
39
- /**
40
- * HoloScript Parser
41
- *
42
- * Parses voice commands, gestures, and code into HoloScript AST.
43
- * Supports both 3D VR and 2D UI elements.
44
- */
45
-
46
- declare class HoloScriptParser {
47
- private ast;
48
- private parser2D;
49
- constructor();
50
- /**
51
- * Parse voice command into AST nodes
52
- */
53
- parseVoiceCommand(command: VoiceCommand): ASTNode[];
54
- private parse2DUICommand;
55
- /**
56
- * Parse gesture input
57
- */
58
- parseGesture(gesture: GestureData): ASTNode[];
59
- private parseCreateCommand;
60
- private parseConnectCommand;
61
- private createOrbNode;
62
- private createFunctionNode;
63
- private createGateNode;
64
- private createStreamNode;
65
- private createGenericNode;
66
- private parsePinchGesture;
67
- private parseSwipeGesture;
68
- private parseRotateGesture;
69
- private parseGrabGesture;
70
- private tokenizeCommand;
71
- private sanitizeTokens;
72
- private parseExecuteCommand;
73
- private parseDebugCommand;
74
- private parseVisualizeCommand;
75
- private parseGenericCommand;
76
- getAST(): ASTNode[];
77
- addNode(node: ASTNode): void;
78
- clear(): void;
79
- findNode(name: string): ASTNode | null;
80
- getNodesAtPosition(position: SpatialPosition, radius?: number): ASTNode[];
81
- parse2DCode(code: string): UI2DNode | null;
82
- get2DParser(): HoloScript2DParser;
83
- }
84
-
85
- /**
86
- * @holoscript/core Logger
87
- *
88
- * Simple pluggable logger for HoloScript
89
- */
90
- interface HoloScriptLogger {
91
- debug(message: string, meta?: Record<string, unknown>): void;
92
- info(message: string, meta?: Record<string, unknown>): void;
93
- warn(message: string, meta?: Record<string, unknown>): void;
94
- error(message: string, meta?: Record<string, unknown>): void;
95
- }
96
- declare class NoOpLogger implements HoloScriptLogger {
97
- debug(): void;
98
- info(): void;
99
- warn(): void;
100
- error(): void;
101
- }
102
- declare class ConsoleLogger implements HoloScriptLogger {
103
- debug(message: string, meta?: Record<string, unknown>): void;
104
- info(message: string, meta?: Record<string, unknown>): void;
105
- warn(message: string, meta?: Record<string, unknown>): void;
106
- error(message: string, meta?: Record<string, unknown>): void;
107
- }
108
- declare function setHoloScriptLogger(logger: HoloScriptLogger): void;
109
- declare function enableConsoleLogging(): void;
110
- declare function resetLogger(): void;
111
- declare const logger: HoloScriptLogger;
112
-
113
- /**
114
- * @holoscript/core
115
- *
116
- * Core HoloScript language - parser, runtime, and AST types.
117
- *
118
- * HoloScript is an open source VR scene description language that supports:
119
- * - Voice commands for 3D object creation
120
- * - Gesture input parsing
121
- * - 2D UI element definition
122
- * - Spatial programming concepts
123
- *
124
- * @example
125
- * ```typescript
126
- * import { HoloScriptParser, HoloScriptRuntime } from '@holoscript/core';
127
- *
128
- * const parser = new HoloScriptParser();
129
- * const runtime = new HoloScriptRuntime();
130
- *
131
- * // Parse a voice command
132
- * const nodes = parser.parseVoiceCommand({
133
- * command: 'create orb myOrb',
134
- * confidence: 0.95,
135
- * timestamp: Date.now()
136
- * });
137
- *
138
- * // Execute the AST
139
- * const results = await runtime.executeProgram(nodes);
140
- * ```
141
- *
142
- * @packageDocumentation
143
- */
144
-
145
- declare const HOLOSCRIPT_VERSION = "1.0.0-alpha.1";
146
- declare const HOLOSCRIPT_SUPPORTED_PLATFORMS: readonly ["WebXR", "Oculus Quest", "HTC Vive", "Valve Index", "Apple Vision Pro", "Windows Mixed Reality"];
147
- declare const HOLOSCRIPT_VOICE_COMMANDS: readonly ["create orb [name]", "summon function [name]", "connect [from] to [to]", "execute [function]", "debug program", "visualize [data]", "gate [condition]", "stream [source] through [transformations]", "create button [name]", "add textinput [name]", "create panel [name]", "add slider [name]"];
148
- declare const HOLOSCRIPT_GESTURES: readonly ["pinch - create object", "swipe - connect objects", "rotate - modify properties", "grab - select object", "spread - expand view", "fist - execute action"];
149
- declare const HOLOSCRIPT_DEMO_SCRIPTS: {
150
- readonly helloWorld: "orb greeting {\n message: \"Hello, HoloScript World!\"\n color: \"#00ffff\"\n glow: true\n}\n\nfunction displayGreeting() {\n show greeting\n}";
151
- readonly aiAgent: "orb agentCore {\n personality: \"helpful\"\n capabilities: [\"conversation\", \"problem_solving\", \"learning\"]\n energy: 100\n}\n\nfunction processQuery(query: string): string {\n analyze query\n generate response\n return response\n}";
152
- readonly neuralNetwork: "orb inputLayer { neurons: 784 }\norb hiddenLayer { neurons: 128 }\norb outputLayer { neurons: 10 }\n\nconnect inputLayer to hiddenLayer as \"weights\"\nconnect hiddenLayer to outputLayer as \"weights\"\n\nfunction trainNetwork(data: array): object {\n forward_pass data\n calculate_loss\n backward_pass\n update_weights\n return metrics\n}";
153
- readonly loginForm: "button loginBtn {\n text: \"Login\"\n x: 100\n y: 150\n width: 200\n height: 40\n onClick: handleLogin\n}\n\ntextinput usernameInput {\n placeholder: \"Username\"\n x: 100\n y: 50\n width: 200\n height: 36\n}\n\ntextinput passwordInput {\n placeholder: \"Password\"\n x: 100\n y: 100\n width: 200\n height: 36\n}";
154
- readonly dashboard: "panel sidebar {\n x: 0\n y: 0\n width: 200\n height: 600\n backgroundColor: \"#2c3e50\"\n}\n\ntext title {\n content: \"Dashboard\"\n x: 220\n y: 20\n fontSize: 24\n color: \"#34495e\"\n}\n\nbutton refreshBtn {\n text: \"Refresh Data\"\n x: 220\n y: 60\n onClick: refreshData\n}";
155
- };
156
- /**
157
- * Create a pre-configured HoloScript environment
158
- */
159
- declare function createHoloScriptEnvironment(): {
160
- parser: HoloScriptParser;
161
- runtime: HoloScriptRuntime;
162
- version: string;
163
- };
164
- /**
165
- * Check if the current environment supports VR/XR
166
- */
167
- declare function isHoloScriptSupported(): boolean;
168
-
169
- export { ASTNode, ConsoleLogger, GestureData, HOLOSCRIPT_DEMO_SCRIPTS, HOLOSCRIPT_GESTURES, HOLOSCRIPT_SUPPORTED_PLATFORMS, HOLOSCRIPT_VERSION, HOLOSCRIPT_VOICE_COMMANDS, HoloScript2DParser, type HoloScriptLogger, HoloScriptParser, HoloScriptRuntime, NoOpLogger, Position2D, SpatialPosition, UI2DNode, VoiceCommand, createHoloScriptEnvironment, enableConsoleLogging, isHoloScriptSupported, logger, resetLogger, setHoloScriptLogger };
package/dist/index.d.ts DELETED
@@ -1,169 +0,0 @@
1
- import { U as UI2DNode, P as Position2D, V as VoiceCommand, A as ASTNode, G as GestureData, S as SpatialPosition } from './types-WQSk1Qs2.js';
2
- export { C as ConnectionNode, l as DataCellNode, k as DataCellStyle, D as DataCellType, m as DataZoneNode, p as ExecutionResult, E as ExportNode, i as ForEachLoopNode, F as ForLoopNode, f as GateNode, h as GenericASTNode, c as GestureType, d as HandType, b as HologramProperties, H as HologramShape, I as ImportNode, M as MethodNode, O as OrbNode, e as ParameterNode, q as ParticleSystem, R as RuntimeContext, s as RuntimeSecurityLimits, r as SecurityConfig, a as Size2D, g as StreamNode, T as TransformationNode, n as UIElementType, o as UIStyle, j as VariableDeclarationNode, W as WhileLoopNode } from './types-WQSk1Qs2.js';
3
- import { HoloScriptRuntime } from './runtime.js';
4
- export { HoloScriptCodeParser, ParseError, ParseResult } from './parser.js';
5
- export { HoloScriptTypeChecker, TypeCheckResult, TypeDiagnostic, TypeInfo, createTypeChecker } from './type-checker.js';
6
- export { Breakpoint, DebugEvent, DebugState, HoloScriptDebugger, StackFrame, StepMode, createDebugger } from './debugger.js';
7
-
8
- /**
9
- * HoloScript 2D Parser Extension
10
- *
11
- * Adds support for 2D UI elements to HoloScript for desktop/mobile apps.
12
- * Works alongside 3D VR syntax for hybrid applications.
13
- */
14
-
15
- declare class HoloScript2DParser {
16
- private uiElements;
17
- /**
18
- * Parse 2D UI element from HoloScript code
19
- */
20
- parse2DElement(code: string, depth?: number): UI2DNode | null;
21
- private splitIntoLogicalBlocks;
22
- /**
23
- * Parse voice command for 2D UI creation
24
- */
25
- parse2DVoiceCommand(command: string): UI2DNode | null;
26
- /**
27
- * Parse gesture for 2D UI interaction
28
- */
29
- parse2DGesture(gestureType: string, position: Position2D): UI2DNode | null;
30
- private createQuick2DElement;
31
- private isValidUIElementType;
32
- private parsePropertyValue;
33
- private getDefaultProperties;
34
- getUIElements(): Map<string, UI2DNode>;
35
- findElement(name: string): UI2DNode | null;
36
- clear(): void;
37
- }
38
-
39
- /**
40
- * HoloScript Parser
41
- *
42
- * Parses voice commands, gestures, and code into HoloScript AST.
43
- * Supports both 3D VR and 2D UI elements.
44
- */
45
-
46
- declare class HoloScriptParser {
47
- private ast;
48
- private parser2D;
49
- constructor();
50
- /**
51
- * Parse voice command into AST nodes
52
- */
53
- parseVoiceCommand(command: VoiceCommand): ASTNode[];
54
- private parse2DUICommand;
55
- /**
56
- * Parse gesture input
57
- */
58
- parseGesture(gesture: GestureData): ASTNode[];
59
- private parseCreateCommand;
60
- private parseConnectCommand;
61
- private createOrbNode;
62
- private createFunctionNode;
63
- private createGateNode;
64
- private createStreamNode;
65
- private createGenericNode;
66
- private parsePinchGesture;
67
- private parseSwipeGesture;
68
- private parseRotateGesture;
69
- private parseGrabGesture;
70
- private tokenizeCommand;
71
- private sanitizeTokens;
72
- private parseExecuteCommand;
73
- private parseDebugCommand;
74
- private parseVisualizeCommand;
75
- private parseGenericCommand;
76
- getAST(): ASTNode[];
77
- addNode(node: ASTNode): void;
78
- clear(): void;
79
- findNode(name: string): ASTNode | null;
80
- getNodesAtPosition(position: SpatialPosition, radius?: number): ASTNode[];
81
- parse2DCode(code: string): UI2DNode | null;
82
- get2DParser(): HoloScript2DParser;
83
- }
84
-
85
- /**
86
- * @holoscript/core Logger
87
- *
88
- * Simple pluggable logger for HoloScript
89
- */
90
- interface HoloScriptLogger {
91
- debug(message: string, meta?: Record<string, unknown>): void;
92
- info(message: string, meta?: Record<string, unknown>): void;
93
- warn(message: string, meta?: Record<string, unknown>): void;
94
- error(message: string, meta?: Record<string, unknown>): void;
95
- }
96
- declare class NoOpLogger implements HoloScriptLogger {
97
- debug(): void;
98
- info(): void;
99
- warn(): void;
100
- error(): void;
101
- }
102
- declare class ConsoleLogger implements HoloScriptLogger {
103
- debug(message: string, meta?: Record<string, unknown>): void;
104
- info(message: string, meta?: Record<string, unknown>): void;
105
- warn(message: string, meta?: Record<string, unknown>): void;
106
- error(message: string, meta?: Record<string, unknown>): void;
107
- }
108
- declare function setHoloScriptLogger(logger: HoloScriptLogger): void;
109
- declare function enableConsoleLogging(): void;
110
- declare function resetLogger(): void;
111
- declare const logger: HoloScriptLogger;
112
-
113
- /**
114
- * @holoscript/core
115
- *
116
- * Core HoloScript language - parser, runtime, and AST types.
117
- *
118
- * HoloScript is an open source VR scene description language that supports:
119
- * - Voice commands for 3D object creation
120
- * - Gesture input parsing
121
- * - 2D UI element definition
122
- * - Spatial programming concepts
123
- *
124
- * @example
125
- * ```typescript
126
- * import { HoloScriptParser, HoloScriptRuntime } from '@holoscript/core';
127
- *
128
- * const parser = new HoloScriptParser();
129
- * const runtime = new HoloScriptRuntime();
130
- *
131
- * // Parse a voice command
132
- * const nodes = parser.parseVoiceCommand({
133
- * command: 'create orb myOrb',
134
- * confidence: 0.95,
135
- * timestamp: Date.now()
136
- * });
137
- *
138
- * // Execute the AST
139
- * const results = await runtime.executeProgram(nodes);
140
- * ```
141
- *
142
- * @packageDocumentation
143
- */
144
-
145
- declare const HOLOSCRIPT_VERSION = "1.0.0-alpha.1";
146
- declare const HOLOSCRIPT_SUPPORTED_PLATFORMS: readonly ["WebXR", "Oculus Quest", "HTC Vive", "Valve Index", "Apple Vision Pro", "Windows Mixed Reality"];
147
- declare const HOLOSCRIPT_VOICE_COMMANDS: readonly ["create orb [name]", "summon function [name]", "connect [from] to [to]", "execute [function]", "debug program", "visualize [data]", "gate [condition]", "stream [source] through [transformations]", "create button [name]", "add textinput [name]", "create panel [name]", "add slider [name]"];
148
- declare const HOLOSCRIPT_GESTURES: readonly ["pinch - create object", "swipe - connect objects", "rotate - modify properties", "grab - select object", "spread - expand view", "fist - execute action"];
149
- declare const HOLOSCRIPT_DEMO_SCRIPTS: {
150
- readonly helloWorld: "orb greeting {\n message: \"Hello, HoloScript World!\"\n color: \"#00ffff\"\n glow: true\n}\n\nfunction displayGreeting() {\n show greeting\n}";
151
- readonly aiAgent: "orb agentCore {\n personality: \"helpful\"\n capabilities: [\"conversation\", \"problem_solving\", \"learning\"]\n energy: 100\n}\n\nfunction processQuery(query: string): string {\n analyze query\n generate response\n return response\n}";
152
- readonly neuralNetwork: "orb inputLayer { neurons: 784 }\norb hiddenLayer { neurons: 128 }\norb outputLayer { neurons: 10 }\n\nconnect inputLayer to hiddenLayer as \"weights\"\nconnect hiddenLayer to outputLayer as \"weights\"\n\nfunction trainNetwork(data: array): object {\n forward_pass data\n calculate_loss\n backward_pass\n update_weights\n return metrics\n}";
153
- readonly loginForm: "button loginBtn {\n text: \"Login\"\n x: 100\n y: 150\n width: 200\n height: 40\n onClick: handleLogin\n}\n\ntextinput usernameInput {\n placeholder: \"Username\"\n x: 100\n y: 50\n width: 200\n height: 36\n}\n\ntextinput passwordInput {\n placeholder: \"Password\"\n x: 100\n y: 100\n width: 200\n height: 36\n}";
154
- readonly dashboard: "panel sidebar {\n x: 0\n y: 0\n width: 200\n height: 600\n backgroundColor: \"#2c3e50\"\n}\n\ntext title {\n content: \"Dashboard\"\n x: 220\n y: 20\n fontSize: 24\n color: \"#34495e\"\n}\n\nbutton refreshBtn {\n text: \"Refresh Data\"\n x: 220\n y: 60\n onClick: refreshData\n}";
155
- };
156
- /**
157
- * Create a pre-configured HoloScript environment
158
- */
159
- declare function createHoloScriptEnvironment(): {
160
- parser: HoloScriptParser;
161
- runtime: HoloScriptRuntime;
162
- version: string;
163
- };
164
- /**
165
- * Check if the current environment supports VR/XR
166
- */
167
- declare function isHoloScriptSupported(): boolean;
168
-
169
- export { ASTNode, ConsoleLogger, GestureData, HOLOSCRIPT_DEMO_SCRIPTS, HOLOSCRIPT_GESTURES, HOLOSCRIPT_SUPPORTED_PLATFORMS, HOLOSCRIPT_VERSION, HOLOSCRIPT_VOICE_COMMANDS, HoloScript2DParser, type HoloScriptLogger, HoloScriptParser, HoloScriptRuntime, NoOpLogger, Position2D, SpatialPosition, UI2DNode, VoiceCommand, createHoloScriptEnvironment, enableConsoleLogging, isHoloScriptSupported, logger, resetLogger, setHoloScriptLogger };