goscript 0.0.23 → 0.0.24

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 (53) hide show
  1. package/README.md +1 -1
  2. package/cmd/goscript/cmd_compile.go +1 -1
  3. package/compiler/analysis.go +73 -131
  4. package/compiler/analysis_test.go +220 -0
  5. package/compiler/assignment.go +37 -43
  6. package/compiler/builtin_test.go +102 -0
  7. package/compiler/compiler.go +79 -14
  8. package/compiler/composite-lit.go +108 -43
  9. package/compiler/config.go +7 -3
  10. package/compiler/config_test.go +6 -33
  11. package/compiler/expr-selector.go +66 -41
  12. package/compiler/expr-star.go +57 -65
  13. package/compiler/expr-type.go +1 -1
  14. package/compiler/expr-value.go +1 -1
  15. package/compiler/expr.go +79 -18
  16. package/compiler/primitive.go +11 -10
  17. package/compiler/spec-struct.go +3 -3
  18. package/compiler/spec-value.go +75 -29
  19. package/compiler/spec.go +9 -3
  20. package/compiler/stmt-assign.go +36 -2
  21. package/compiler/stmt-for.go +11 -0
  22. package/compiler/stmt-range.go +110 -0
  23. package/compiler/stmt.go +52 -0
  24. package/compiler/type.go +36 -11
  25. package/dist/gs/builtin/builtin.js +37 -0
  26. package/dist/gs/builtin/builtin.js.map +1 -0
  27. package/dist/gs/builtin/channel.js +471 -0
  28. package/dist/gs/builtin/channel.js.map +1 -0
  29. package/dist/gs/builtin/defer.js +54 -0
  30. package/dist/gs/builtin/defer.js.map +1 -0
  31. package/dist/gs/builtin/io.js +15 -0
  32. package/dist/gs/builtin/io.js.map +1 -0
  33. package/dist/gs/builtin/map.js +44 -0
  34. package/dist/gs/builtin/map.js.map +1 -0
  35. package/dist/gs/builtin/slice.js +799 -0
  36. package/dist/gs/builtin/slice.js.map +1 -0
  37. package/dist/gs/builtin/type.js +745 -0
  38. package/dist/gs/builtin/type.js.map +1 -0
  39. package/dist/gs/builtin/varRef.js +14 -0
  40. package/dist/gs/builtin/varRef.js.map +1 -0
  41. package/dist/gs/context/context.js +55 -0
  42. package/dist/gs/context/context.js.map +1 -0
  43. package/dist/gs/context/index.js +2 -0
  44. package/dist/gs/context/index.js.map +1 -0
  45. package/dist/gs/runtime/index.js +2 -0
  46. package/dist/gs/runtime/index.js.map +1 -0
  47. package/dist/gs/runtime/runtime.js +158 -0
  48. package/dist/gs/runtime/runtime.js.map +1 -0
  49. package/dist/gs/time/index.js +2 -0
  50. package/dist/gs/time/index.js.map +1 -0
  51. package/dist/gs/time/time.js +115 -0
  52. package/dist/gs/time/time.js.map +1 -0
  53. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../gs/builtin/type.ts"],"names":[],"mappings":"SAGY,QAAQ;AAHpB;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;AAAC,CACtB,EAVY,QAAQ,KAAR,QAAQ,QAUnB;AA0HD,6CAA6C;AAC7C,MAAM,UAAU,gBAAgB,CAAC,IAAc,EAA0B;IACvE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAA;AAAA,CACrC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAA6B;IAC7E,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAA;AAAA,CACxC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc,EAAyB;IACrE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAA;AAAA,CACpC;AAED,MAAM,UAAU,aAAa,CAAC,IAAc,EAAuB;IACjE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAA;AAAA,CAClC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc,EAAyB;IACrE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAA;AAAA,CACpC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc,EAAyB;IACrE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAA;AAAA,CACpC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAA2B;IACzE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAA;AAAA,CACtC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAc,EAA4B;IAC3E,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAA;AAAA,CACvC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAA2B;IACzE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAA;AAAA,CACtC;AAUD,6CAA6C;AAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAA;AAEhD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAY,EACZ,SAAc,EACd,OAA0B,EAC1B,IAAiC,EACjC,MAAM,GAAsC,EAAE,EAC9B,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAmB;QAC/B,IAAI;QACJ,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;KACP,CAAA;IACD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAChC,OAAO,QAAQ,CAAA;AAAA,CAChB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAAY,EACZ,SAAc,EACd,OAA0B,EACP,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAsB;QAClC,IAAI;QACJ,IAAI,EAAE,QAAQ,CAAC,SAAS;QACxB,SAAS;QACT,OAAO;KACR,CAAA;IACD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAChC,OAAO,QAAQ,CAAA;AAAA,CAChB,CAAA;AAUD;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAuB,EAAY;IAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,IAAI,EAAE,IAAI;SACX,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED,SAAS,uBAAuB,CAC9B,KAAyB,EACzB,KAAyB,EAChB;IACT,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5D,sEAAsE;IACtE,mFAAmF;IACnF,OAAO,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAAA,CAC3C;AAED,SAAS,mCAAmC,CAC1C,IAA4B,EAC5B,IAA4B,EACnB;IACT,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACzD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ;AAED,SAAS,0BAA0B,CACjC,KAAuB,EACvB,KAAuB,EACd;IACT,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CACL,mCAAmC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QAC/D,mCAAmC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAClE,CAAA;AAAA,CACF;AAED,SAAS,4BAA4B,CACnC,KAAmB,EACnB,KAAmB,EACV;IACT,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,0FAA0F;QAC1F,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ;AAED,MAAM,UAAU,qBAAqB,CACnC,eAAkC,EAClC,eAAkC,EACzB;IACT,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAEjD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA,CAAC,kBAAkB;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAE7C,0DAA0D;IAC1D,mEAAmE;IACnE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAE7C,oGAAoG;IACpG,IACE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,8CAA8C,EACxE,CAAC;QACD,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK;YAC9B,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM;YAC/B,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,EAClC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,wFAAwF;IACxF,mCAAmC;IAEnC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,KAAK;YACjB,sHAAsH;YACtH,OAAO,IAAI,CAAA;QACb,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,uBAAuB,CAC3B,MAA0B,CAAC,QAAQ,EACnC,MAA0B,CAAC,QAAQ,CACrC,CAAA;QACH,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,uBAAuB,CAC3B,MAAwB,CAAC,QAAQ,EACjC,MAAwB,CAAC,QAAQ,CACnC,CAAA;QACH,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,CACJ,MAAwB,CAAC,MAAM,KAAM,MAAwB,CAAC,MAAM;gBACrE,uBAAuB,CACpB,MAAwB,CAAC,QAAQ,EACjC,MAAwB,CAAC,QAAQ,CACnC,CACF,CAAA;QACH,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,CACL,uBAAuB,CACpB,MAAsB,CAAC,OAAO,EAC9B,MAAsB,CAAC,OAAO,CAChC;gBACD,uBAAuB,CACpB,MAAsB,CAAC,QAAQ,EAC/B,MAAsB,CAAC,QAAQ,CACjC,CACF,CAAA;QACH,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO;YACL,sFAAsF;YACtF,CAAE,MAA0B,CAAC,SAAS,IAAI,MAAM,CAAC;gBAC/C,CAAE,MAA0B,CAAC,SAAS,IAAI,MAAM,CAAC;gBACnD,uBAAuB,CACpB,MAA0B,CAAC,QAAQ,EACnC,MAA0B,CAAC,QAAQ,CACrC,CACF,CAAA;QACH,KAAK,QAAQ,CAAC,QAAQ;YACpB,OAAO,0BAA0B,CAC/B,MAA0B,EAC1B,MAA0B,CAC3B,CAAA;QACH,KAAK,QAAQ,CAAC,MAAM,CAAC;QACrB,KAAK,QAAQ,CAAC,SAAS;YACrB,+GAA+G;YAC/G,oFAAoF;YACpF,qGAAqG;YACrG,iFAAiF;YACjF,OAAO,KAAK,CAAA;QACd;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AAAA,CACF;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,GAAQ,EAAE,WAAqB,EAAW;IAChE,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxC,kBAAkB;QAClB,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAA;QAChC,CAAC;aAAM,IACL,WAAW,CAAC,IAAI,KAAK,KAAK;YAC1B,WAAW,CAAC,IAAI,KAAK,SAAS;YAC9B,WAAW,CAAC,IAAI,KAAK,QAAQ,EAC7B,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AAAA,CACb;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAU,EAAE,IAAc,EAAW;IAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;IAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QACjD,OAAO,OAAO,KAAK,KAAK,SAAS,CAAA;IACnC,OAAO,KAAK,CAAA;AAAA,CACb;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAU,EAAE,IAAc,EAAW;IAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAEzC,mDAAmD;IACnD,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sEAAsE;IACtE,0DAA0D;IAC1D,iEAAiE;IACjE,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CACxC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAQ,KAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CACpE,CAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,8FAA8F;IAChG,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEtC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,CAAA;QAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAA;QAC/D,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACpD,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3B,CAAA;QAED,IAAI,WAAW,IAAI,cAAc,IAAI,iBAAiB,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;gBACnE,OAAO,WAAW,CAChB,KAAK,CAAC,SAAS,CAAC,EAChB,iBAAiB,CAAC,SAA8B,CAAC,CAClD,CAAA;YAAA,CACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,KAAK,CAAA;AAAA,CACb;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,KAAU,EAAE,IAAc,EAAW;IACjE,+BAA+B;IAC/B,IACE,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,6FAA6F;IAC7F,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAI,KAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAE3D,sCAAsC;QACtC,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;YACvC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,4CAA4C;QAC5C,6FAA6F;QAC7F,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAA;QAC9C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAA;QAExD,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,8CAA8C;QAC9C,qEAAqE;QAErE,0EAA0E;QAC1E,uCAAuC;QACvC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC1D,IAAI,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrD,oDAAoD;gBACpD,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CACzC,CAAA;gBAED,IAAI,cAAc,EAAE,CAAC;oBACnB,uBAAuB;oBACvB,IACE,cAAc,CAAC,OAAO,CAAC,MAAM,KAAK,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAClE,CAAC;wBACD,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,6CAA6C;oBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1D,MAAM,kBAAkB,GAAG,iBAAiB,CAC1C,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAClC,CAAA;wBACD,MAAM,eAAe,GAAG,iBAAiB,CACvC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/B,CAAA;wBAED,0EAA0E;wBAC1E,oCAAoC;wBACpC,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,CAAC;4BAC5C,8DAA8D;4BAC9D,kEAAkE;4BAClE,8CAA8C;4BAC9C,IAAI,kBAAkB,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gCACrD,yDAAyD;gCACzD,wDAAwD;gCACxD,OAAO,KAAK,CAAA;4BACd,CAAC;wBACH,CAAC;wBACD,2DAA2D;6BACtD,IAAI,kBAAkB,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;4BAC1D,OAAO,KAAK,CAAA;wBACd,CAAC;oBACH,CAAC;oBAED,8DAA8D;oBAC9D,kCAAkC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,+CAA+C;QAC/C,OAAO,IAAI,CAAA;IAAA,CACZ,CAAC,CAAA;AAAA,CACH;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAAU,EAAE,IAAc,EAAW;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAEtC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,GAAiB,EAAE,CAAA;QAE9B,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA,CAAC,iCAAiC;QAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAEzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IACE,CAAC,cAAc,CACb,CAAC,EACD,iBAAiB,CAAC,IAAI,CAAC,OAA4B,CAAC,CACrD,EACD,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,IACE,IAAI,CAAC,QAAQ;gBACb,CAAC,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAA6B,CAAC,CAAC,EACtE,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,KAAU,EAAE,IAAc,EAAW;IACpE,iFAAiF;IACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAElE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,KAAc,CAAA;QAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA,CAAC,qCAAqC;QAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IACE,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,CAAC,EACN,iBAAiB,CAAC,IAAI,CAAC,QAA6B,CAAC,CACtD,EACD,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAAU,EAAE,IAAc,EAAW;IAC/D,uFAAuF;IACvF,kGAAkG;IAClG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAE1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAA6B,CAAC,CAAA;QAC1E,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAU,EAAE,IAAsB,EAAW;IACxE,yCAAyC;IACzC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,6CAA6C;IAC7C,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,YAAY,CAAA;IACzC,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAAU,EAAE,IAAqB,EAAW;IACtE,qDAAqD;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,cAAc,GAAG,MAAM,CAAA;IAE3B,IAAI,SAAS,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC/C,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QACvB,cAAc,GAAG,KAAK,CAAC,SAAS,CAAA;IAClC,CAAC;IAED,kCAAkC;IAClC,IACE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QACpB,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC;QACvB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;QACrB,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU;QAClC,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU;QACrC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EACnC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IACE,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,WAAW,IAAI,OAAO;YACtB,OAAO,CAAC,SAAS,KAAK,EAAE,EACxB,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IACE,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC1B,WAAW,IAAI,OAAO;YACtB,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EACrC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,cAAc,KAAK,IAAI,CAAC,SAAS,CAAA;IAC1C,CAAC;IAED,OAAO,IAAI,CAAA;AAAA,CACZ;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,KAAU,EAAE,IAAc,EAAW;IACxD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEtC,KAAK,QAAQ,CAAC,MAAM;YAClB,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEvC,KAAK,QAAQ,CAAC,SAAS;YACrB,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1C,KAAK,QAAQ,CAAC,GAAG;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEpC,KAAK,QAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE7C,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAExC,KAAK,QAAQ,CAAC,QAAQ;YACpB,OAAO,mBAAmB,CAAC,KAAK,EAAE,IAAwB,CAAC,CAAA;QAE7D,KAAK,QAAQ,CAAC,OAAO;YACnB,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAExC;YACE,OAAO,CAAC,IAAI,CACV,2BAA4B,IAAiB,CAAC,IAAI,oBAAoB,CACvE,CAAA;YACD,OAAO,KAAK,CAAA;IAChB,CAAC;AAAA,CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,KAAU,EACV,QAA2B,EACN;IACrB,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAElD,IAAI,iBAAiB,CAAC,cAAc,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAClD,CAAC;IAED,IACE,gBAAgB,CAAC,cAAc,CAAC;QAChC,cAAc,CAAC,OAAO;QACtB,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACjC,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,2FAA2F;QAC3F,uDAAuD;QACvD,kFAAkF;QAClF,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAClD,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACrB,MAAM,YAAY,GAAI,KAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAA;YACd,CAAC;YACD,MAAM,gBAAgB,GAAI,KAAa,CAAC,SAAS,CAAA;YACjD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;gBAC/D,IACE,gBAAgB,CAAC,mBAAmB,CAAC;oBACrC,mBAAmB,CAAC,mBAAmB,CAAC,EACxC,CAAC;oBACD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CACzC,CAAA;oBACD,IAAI,oBAAoB,EAAE,CAAC;wBACzB,2DAA2D;wBAC3D,MAAM,WAAW,GAAG,4BAA4B,CAC9C,iBAAiB,CAAC,IAAI,EACtB,oBAAoB,CAAC,IAAI,CAC1B,CAAA;wBACD,MAAM,YAAY,GAAG,4BAA4B,CAC/C,iBAAiB,CAAC,OAAO,EACzB,oBAAoB,CAAC,OAAO,CAC7B,CAAA;wBACD,OAAO,WAAW,IAAI,YAAY,CAAA;oBACpC,CAAC;yBAAM,CAAC;wBACN,6EAA6E;wBAC7E,wEAAwE;wBACxE,OAAO,KAAK,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sEAAsE;YACtE,kBAAkB;YAClB,OAAO,IAAI,CAAA;QAAA,CACZ,CACF,CAAA;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACxC,CAAC;IACH,CAAC;IAED,IACE,gBAAgB,CAAC,cAAc,CAAC;QAChC,cAAc,CAAC,MAAM;QACrB,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEtC,2DAA2D;QAC3D,MAAM,iBAAiB,GACrB,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;YACxC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC;YACnD,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAE1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAC5D,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;gBAC1B,OAAO,WAAW,CAChB,KAAK,CAAC,SAAS,CAAC,EAChB,iBAAiB,CAAC,SAA8B,CAAC,CAClD,CAAA;YAAA,CACF,CACF,CAAA;YAED,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAED,IACE,aAAa,CAAC,cAAc,CAAC;QAC7B,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YACtD,IAAI,OAAO,GAAiB,EAAE,CAAA;YAE9B,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;gBACzB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;YACxC,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBAEzB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBAC3B,IACE,CAAC,cAAc,CACb,CAAC,EACD,iBAAiB,CAAC,cAAc,CAAC,OAA4B,CAAC,CAC/D,EACD,CAAC;wBACD,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;oBACnD,CAAC;gBACH,CAAC;gBAED,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;oBAC5B,MAAM,YAAY,GAAG,iBAAiB,CACpC,cAAc,CAAC,QAA6B,CAC7C,CAAA;oBACD,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;wBAClC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACxC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IAElD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACxC,CAAC;IAED,uCAAuC;IACvC,6DAA6D;IAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,cAAc,IAAI,cAAc,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,SAAc,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;QAC5D,CAAC;IACH,CAAC;SAAM,IAAI,cAAc,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,SAAc,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAC5D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AAAA,CAClD;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAI,KAAU,EAAE,QAA2B,EAAK;IAC5E,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,UAAU,CAAI,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,cAAc,GAClB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACxC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC1C,CAAA;QACH,IAAI,aAAa,GAAmB,OAAO,KAAK,CAAA;QAChD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACzD,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA;QACxC,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,aAAa,GAAG,KAAK,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C,aAAa,SAAS,cAAc,EAAE,CACjF,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAA;AAAA,CACrB;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,EAAE,CAAC,KAAU,EAAE,QAA2B,EAAW;IACnE,OAAO,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAAA,CACvD;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAU,EACV,KAAuB,EACvB,WAAwB,EAClB;IACN,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,yDAAyD;QACzD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;YACxE,IAAI,UAAU,EAAE,CAAC;gBACf,2EAA2E;gBAC3E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAM,CAAC,6BAA6B;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,yFAAyF;YACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAChE,IAAI,EAAE,EAAE,CAAC;gBACP,oDAAoD;gBACpD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAE3B,OAAM,CAAC,6BAA6B;YACtC,CAAC;QACH,CAAC;QACD,6DAA6D;IAC/D,CAAC;IAED,2DAA2D;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,EAAE,CAAA;IACf,CAAC;AAAA,CACF"}
@@ -0,0 +1,14 @@
1
+ /** Wrap a non-null T in a variable reference. */
2
+ export function varRef(v) {
3
+ // We create a new object wrapper for every varRef call to ensure
4
+ // distinct pointer identity, crucial for pointer comparisons (p1 == p2).
5
+ return { value: v };
6
+ }
7
+ /** Dereference a variable reference, throws on null → simulates Go panic. */
8
+ export function unref(b) {
9
+ if (b === null) {
10
+ throw new Error('runtime error: invalid memory address or nil pointer dereference');
11
+ }
12
+ return b.value;
13
+ }
14
+ //# sourceMappingURL=varRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varRef.js","sourceRoot":"","sources":["../../../gs/builtin/varRef.ts"],"names":[],"mappings":"AASA,iDAAiD;AACjD,MAAM,UAAU,MAAM,CAAI,CAAI,EAAa;IACzC,iEAAiE;IACjE,yEAAyE;IACzE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAAA,CACpB;AAED,+EAA6E;AAC7E,MAAM,UAAU,KAAK,CAAI,CAAY,EAAK;IACxC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAA;AAAA,CACf"}
@@ -0,0 +1,55 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ // Context represents a context that can be canceled
3
+ export class Context {
4
+ doneChannel;
5
+ canceled = false;
6
+ constructor() {
7
+ // Create a done channel that will be closed when context is canceled
8
+ this.doneChannel = $.makeChannel(0, {}, 'both');
9
+ }
10
+ // Done returns a channel that is closed when the context is canceled
11
+ Done() {
12
+ return this.doneChannel;
13
+ }
14
+ // Internal method to cancel the context
15
+ cancel() {
16
+ if (!this.canceled) {
17
+ this.canceled = true;
18
+ // Close the done channel to signal cancellation
19
+ // This will cause any receivers waiting on Done() to unblock
20
+ this.doneChannel.close();
21
+ }
22
+ }
23
+ isCanceled() {
24
+ return this.canceled;
25
+ }
26
+ }
27
+ // Background returns a non-nil, empty Context
28
+ export function Background() {
29
+ return new Context();
30
+ }
31
+ // WithCancel returns a copy of parent with a new Done channel
32
+ // The returned context's Done channel is closed when the returned cancel function
33
+ // is called or when the parent context's Done channel is closed, whichever happens first
34
+ export function WithCancel(parent) {
35
+ const child = new Context();
36
+ // Create the cancel function
37
+ const cancel = () => {
38
+ child.cancel();
39
+ };
40
+ // If parent gets canceled, cancel the child too
41
+ if (parent) {
42
+ queueMicrotask(async () => {
43
+ try {
44
+ await parent.Done().receive();
45
+ child.cancel();
46
+ }
47
+ catch (e) {
48
+ // Parent context was canceled (channel closed), cancel child
49
+ child.cancel();
50
+ }
51
+ });
52
+ }
53
+ return [child, cancel];
54
+ }
55
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../gs/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,oDAAoD;AACpD,MAAM,OAAO,OAAO;IACV,WAAW,CAAgB;IAC3B,QAAQ,GAAY,KAAK,CAAC;IAElC,cAAc;QACZ,qEAAqE;QACrE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAAA,CACrD;IAED,qEAAqE;IAC9D,IAAI,GAAkB;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;IAAA,CACzB;IAED,wCAAwC;IACjC,MAAM,GAAS;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,gDAAgD;YAChD,6DAA6D;YAC7D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IAAA,CACF;IAEM,UAAU,GAAY;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACtB;CACF;AAED,8CAA8C;AAC9C,MAAM,UAAU,UAAU,GAAY;IACpC,OAAO,IAAI,OAAO,EAAE,CAAC;AAAA,CACtB;AAED,8DAA8D;AAC9D,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,MAAe,EAAyB;IACjE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;IAE5B,6BAA6B;IAC7B,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;QACnB,KAAK,CAAC,MAAM,EAAE,CAAC;IAAA,CAChB,CAAC;IAEF,gDAAgD;IAChD,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC9B,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6DAA6D;gBAC7D,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,CAAC;QAAA,CACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,CACxB"}
@@ -0,0 +1,2 @@
1
+ export * from './context.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './runtime.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,158 @@
1
+ // Runtime constants for the JavaScript/WebAssembly target
2
+ export const GOOS = "js";
3
+ export const GOARCH = "wasm";
4
+ // Version returns the Go version as a string
5
+ export function Version() {
6
+ return "go1.22.0"; // Static version for goscript compatibility
7
+ }
8
+ // GOMAXPROCS sets the maximum number of operating system threads
9
+ // In JavaScript/browser environment, this is mostly informational
10
+ export function GOMAXPROCS(n) {
11
+ // In browser/JS environment, we can't actually control OS threads
12
+ // Return number of logical CPUs available, or previous value
13
+ if (n < 1) {
14
+ // Return current "setting" (number of logical CPUs)
15
+ return NumCPU();
16
+ }
17
+ // In a real implementation, we would set the max procs
18
+ // For JS/browser, we just return the requested value
19
+ return n;
20
+ }
21
+ // NumCPU returns the number of logical CPUs usable by the current process
22
+ export function NumCPU() {
23
+ // In browser environment, use navigator.hardwareConcurrency if available
24
+ if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
25
+ return navigator.hardwareConcurrency;
26
+ }
27
+ // Default to 1 if we can't determine
28
+ return 1;
29
+ }
30
+ // GC runs a garbage collection and blocks the caller until the
31
+ // garbage collection is complete. In JavaScript, we can suggest GC but not force it.
32
+ export function GC() {
33
+ // In JavaScript, we can't force garbage collection
34
+ // Some engines have gc() function in development, but it's not standard
35
+ if (typeof globalThis.gc === 'function') {
36
+ globalThis.gc();
37
+ }
38
+ // Otherwise, this is a no-op
39
+ }
40
+ // Gosched yields the processor, allowing other goroutines to run.
41
+ // In JavaScript, we can use setTimeout(0) or queueMicrotask for similar effect
42
+ export function Gosched() {
43
+ return new Promise(resolve => {
44
+ queueMicrotask(resolve);
45
+ });
46
+ }
47
+ // NumGoroutine returns the number of goroutines that currently exist.
48
+ // In goscript, this is informational only
49
+ let goroutineCount = 1; // Start with main goroutine
50
+ export function NumGoroutine() {
51
+ return goroutineCount;
52
+ }
53
+ // Internal function to track goroutine creation (called by goscript runtime)
54
+ export function _incrementGoroutineCount() {
55
+ goroutineCount++;
56
+ }
57
+ // Internal function to track goroutine completion (called by goscript runtime)
58
+ export function _decrementGoroutineCount() {
59
+ if (goroutineCount > 0) {
60
+ goroutineCount--;
61
+ }
62
+ }
63
+ // Caller returns details about the calling goroutine's stack.
64
+ // This is a simplified version for goscript
65
+ export function Caller(skip) {
66
+ // In JavaScript, we can use Error stack trace, but it's limited
67
+ // Return dummy values for goscript compatibility
68
+ const pc = 0; // program counter (not meaningful in JS)
69
+ const file = "unknown";
70
+ const line = 0;
71
+ const ok = false; // indicate we don't have real stack info
72
+ return [pc, file, line, ok];
73
+ }
74
+ // Stack returns a formatted stack trace of the calling goroutine.
75
+ // In JavaScript, we use Error.stack
76
+ export function Stack() {
77
+ const stack = new Error().stack || "stack trace unavailable";
78
+ const encoder = new TextEncoder();
79
+ return encoder.encode(stack);
80
+ }
81
+ // MemStats represents memory allocation statistics
82
+ export class MemStats {
83
+ // Simplified memory stats for goscript
84
+ Alloc = 0; // bytes allocated and not yet freed
85
+ TotalAlloc = 0; // bytes allocated (even if freed)
86
+ Sys = 0; // bytes obtained from system
87
+ Lookups = 0; // number of pointer lookups
88
+ Mallocs = 0; // number of mallocs
89
+ Frees = 0; // number of frees
90
+ constructor() {
91
+ // Initialize with some default values
92
+ // In a real environment, these would be obtained from the JS runtime
93
+ this.updateMemoryStats();
94
+ }
95
+ updateMemoryStats() {
96
+ // Use performance.memory if available (Chrome/Edge)
97
+ if (typeof performance !== 'undefined' && performance.memory) {
98
+ const mem = performance.memory;
99
+ this.Alloc = mem.usedJSHeapSize || 0;
100
+ this.Sys = mem.totalJSHeapSize || 0;
101
+ this.TotalAlloc = this.Alloc; // Simplified
102
+ }
103
+ }
104
+ }
105
+ // ReadMemStats populates m with memory allocator statistics
106
+ export function ReadMemStats(m) {
107
+ // Update the provided MemStats object with current values
108
+ if (typeof performance !== 'undefined' && performance.memory) {
109
+ const mem = performance.memory;
110
+ m.Alloc = mem.usedJSHeapSize || 0;
111
+ m.Sys = mem.totalJSHeapSize || 0;
112
+ m.TotalAlloc = m.Alloc; // Simplified
113
+ }
114
+ }
115
+ // TypeAssertionError represents a failed type assertion
116
+ export class TypeAssertionError {
117
+ interfaceType;
118
+ concrete;
119
+ assertedType;
120
+ missingMethod;
121
+ constructor(interfaceType, concrete, assertedType, missingMethod) {
122
+ this.interfaceType = interfaceType;
123
+ this.concrete = concrete;
124
+ this.assertedType = assertedType;
125
+ this.missingMethod = missingMethod;
126
+ }
127
+ Error() {
128
+ if (this.missingMethod) {
129
+ return `interface conversion: ${this.interfaceType} is ${this.concrete}, not ${this.assertedType} (missing ${this.missingMethod} method)`;
130
+ }
131
+ return `interface conversion: ${this.interfaceType} is ${this.concrete}, not ${this.assertedType}`;
132
+ }
133
+ }
134
+ // PanicError represents a panic
135
+ export class PanicError {
136
+ value;
137
+ constructor(value) {
138
+ this.value = value;
139
+ }
140
+ Error() {
141
+ return `panic: ${this.value}`;
142
+ }
143
+ }
144
+ // SetFinalizer sets the finalizer associated with obj to the provided finalizer function.
145
+ // In goscript/TypeScript environment, finalizers are not supported, so this throws an error.
146
+ export function SetFinalizer(obj, finalizer) {
147
+ throw new Error("runtime.SetFinalizer is not supported in goscript TypeScript environment");
148
+ }
149
+ // KeepAlive keeps obj reachable until the point where KeepAlive is called
150
+ export function KeepAlive(obj) {
151
+ // In JavaScript, just accessing the object keeps it alive for this call
152
+ // This is mostly a no-op but we touch the object to ensure it's not optimized away
153
+ if (obj !== null && obj !== undefined) {
154
+ // Touch the object to keep it alive
155
+ void obj;
156
+ }
157
+ }
158
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './time.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/time/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,115 @@
1
+ // Time represents a time instant with nanosecond precision
2
+ export class Time {
3
+ _date;
4
+ _nsec; // nanoseconds within the second
5
+ constructor(date, nsec = 0) {
6
+ this._date = new globalThis.Date(date.getTime());
7
+ this._nsec = nsec;
8
+ }
9
+ // clone returns a copy of this Time instance
10
+ clone() {
11
+ return new Time(this._date, this._nsec);
12
+ }
13
+ // Sub returns the duration t-u
14
+ Sub(u) {
15
+ const diffMs = this._date.getTime() - u._date.getTime();
16
+ const diffNs = (this._nsec - u._nsec);
17
+ return new Duration(diffMs * 1000000 + diffNs); // Convert ms to ns and add ns difference
18
+ }
19
+ // String returns the time formatted as a string
20
+ String() {
21
+ // Format as "YYYY-MM-DD HH:MM:SS +0000 UTC" to match Go's format
22
+ const year = this._date.getUTCFullYear();
23
+ const month = String(this._date.getUTCMonth() + 1).padStart(2, '0');
24
+ const day = String(this._date.getUTCDate()).padStart(2, '0');
25
+ const hour = String(this._date.getUTCHours()).padStart(2, '0');
26
+ const minute = String(this._date.getUTCMinutes()).padStart(2, '0');
27
+ const second = String(this._date.getUTCSeconds()).padStart(2, '0');
28
+ return `${year}-${month}-${day} ${hour}:${minute}:${second} +0000 UTC`;
29
+ }
30
+ }
31
+ // Duration represents a span of time
32
+ export class Duration {
33
+ _nanoseconds;
34
+ constructor(nanoseconds) {
35
+ this._nanoseconds = nanoseconds;
36
+ }
37
+ // Compare this duration with another
38
+ lt(other) {
39
+ return this._nanoseconds < other._nanoseconds;
40
+ }
41
+ // Multiply duration by a number (for expressions like Hour * 24)
42
+ static multiply(duration, multiplier) {
43
+ return new Duration(duration._nanoseconds * multiplier);
44
+ }
45
+ // Add support for * operator
46
+ multiply(multiplier) {
47
+ return Duration.multiply(this, multiplier);
48
+ }
49
+ // valueOf returns the primitive number value, allowing direct comparison with < > etc
50
+ valueOf() {
51
+ return this._nanoseconds;
52
+ }
53
+ // toString for string representation
54
+ toString() {
55
+ return this._nanoseconds.toString() + "ns";
56
+ }
57
+ }
58
+ // Override multiplication operator for Duration * number
59
+ export function multiplyDuration(duration, multiplier) {
60
+ return Duration.multiply(duration, multiplier);
61
+ }
62
+ // Location represents a time zone
63
+ export class Location {
64
+ _name;
65
+ constructor(name) {
66
+ this._name = name;
67
+ }
68
+ get name() {
69
+ return this._name;
70
+ }
71
+ }
72
+ export { Month };
73
+ // Month represents a month of the year
74
+ var Month;
75
+ (function (Month) {
76
+ Month[Month["January"] = 1] = "January";
77
+ Month[Month["February"] = 2] = "February";
78
+ Month[Month["March"] = 3] = "March";
79
+ Month[Month["April"] = 4] = "April";
80
+ Month[Month["May"] = 5] = "May";
81
+ Month[Month["June"] = 6] = "June";
82
+ Month[Month["July"] = 7] = "July";
83
+ Month[Month["August"] = 8] = "August";
84
+ Month[Month["September"] = 9] = "September";
85
+ Month[Month["October"] = 10] = "October";
86
+ Month[Month["November"] = 11] = "November";
87
+ Month[Month["December"] = 12] = "December";
88
+ })(Month || (Month = {}));
89
+ // Now returns the current local time
90
+ export function Now() {
91
+ return new Time(new globalThis.Date());
92
+ }
93
+ // Date returns the Time corresponding to
94
+ // yyyy-mm-dd hh:mm:ss + nsec nanoseconds
95
+ // in the appropriate zone for that time in the given location
96
+ export function Date(year, month, day, hour, min, sec, nsec, loc) {
97
+ let date;
98
+ if (loc.name === "UTC") {
99
+ // Use Date.UTC for proper UTC handling
100
+ const utcTime = globalThis.Date.UTC(year, month - 1, day, hour, min, sec, Math.floor(nsec / 1000000));
101
+ date = new globalThis.Date(utcTime);
102
+ }
103
+ else {
104
+ // For local time or other timezones, use regular Date constructor
105
+ date = new globalThis.Date(year, month - 1, day, hour, min, sec, Math.floor(nsec / 1000000));
106
+ }
107
+ return new Time(date, nsec % 1000000);
108
+ }
109
+ // Common locations
110
+ export const UTC = new Location("UTC");
111
+ // Common durations
112
+ export const Hour = new Duration(3600000000000); // 1 hour in nanoseconds
113
+ // Export month constants
114
+ export const May = Month.May;
115
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../gs/time/time.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "goscript",
3
3
  "description": "Go to TypeScript transpiler",
4
- "version": "0.0.23",
4
+ "version": "0.0.24",
5
5
  "author": {
6
6
  "name": "Aperture Robotics LLC.",
7
7
  "email": "support@aperture.us",
@@ -48,7 +48,7 @@
48
48
  "test": "npm run test:go && npm run test:js",
49
49
  "test:go": "go test -v ./...",
50
50
  "test:js": "npm run typecheck && vitest run",
51
- "typecheck": "tsc --noEmit",
51
+ "typecheck": "tsgo --noEmit",
52
52
  "format": "npm run format:go && npm run format:js && npm run format:config",
53
53
  "format:config": "prettier --write tsconfig.json package.json",
54
54
  "format:go": "gofumpt -w .",
@@ -86,6 +86,7 @@
86
86
  "@types/node": "^22.15.18",
87
87
  "@typescript-eslint/eslint-plugin": "^8.31.0",
88
88
  "@typescript-eslint/parser": "^8.31.0",
89
+ "@typescript/native-preview": "^7.0.0-dev.20250523.1",
89
90
  "eslint": "^9.25.1",
90
91
  "eslint-config-prettier": "^10.0.2",
91
92
  "husky": "^9.1.7",