aontu 0.67.0 → 0.69.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 (86) hide show
  1. package/dist/alias.d.ts +12 -1
  2. package/dist/alias.js +176 -6
  3. package/dist/alias.js.map +1 -1
  4. package/dist/aliasname.d.ts +19 -0
  5. package/dist/aliasname.js +65 -0
  6. package/dist/aliasname.js.map +1 -0
  7. package/dist/aontu.d.ts +1 -1
  8. package/dist/aontu.js +21 -8
  9. package/dist/aontu.js.map +1 -1
  10. package/dist/aontumodel.js +1 -1
  11. package/dist/aontumodel.js.map +1 -1
  12. package/dist/cli.d.ts +4 -1
  13. package/dist/cli.js +29 -13
  14. package/dist/cli.js.map +1 -1
  15. package/dist/ctx.d.ts +1 -0
  16. package/dist/ctx.js +1 -0
  17. package/dist/ctx.js.map +1 -1
  18. package/dist/err.js +18 -1
  19. package/dist/err.js.map +1 -1
  20. package/dist/format.js +14 -0
  21. package/dist/format.js.map +1 -1
  22. package/dist/helpdoc.js +1 -1
  23. package/dist/helpdoc.js.map +1 -1
  24. package/dist/hints.js +171 -0
  25. package/dist/hints.js.map +1 -1
  26. package/dist/lang.js +325 -38
  27. package/dist/lang.js.map +1 -1
  28. package/dist/lsp.d.ts +10 -4
  29. package/dist/lsp.js +116 -7
  30. package/dist/lsp.js.map +1 -1
  31. package/dist/site.d.ts +9 -0
  32. package/dist/site.js +2 -1
  33. package/dist/site.js.map +1 -1
  34. package/dist/subsume.js +6 -1
  35. package/dist/subsume.js.map +1 -1
  36. package/dist/val/BagVal.d.ts +1 -0
  37. package/dist/val/BagVal.js +3 -0
  38. package/dist/val/BagVal.js.map +1 -1
  39. package/dist/val/EmitFuncVal.js +2 -1
  40. package/dist/val/EmitFuncVal.js.map +1 -1
  41. package/dist/val/FilterFuncVal.js +1 -1
  42. package/dist/val/FilterFuncVal.js.map +1 -1
  43. package/dist/val/FuncBaseVal.d.ts +2 -1
  44. package/dist/val/FuncBaseVal.js +25 -1
  45. package/dist/val/FuncBaseVal.js.map +1 -1
  46. package/dist/val/MapVal.js +10 -4
  47. package/dist/val/MapVal.js.map +1 -1
  48. package/dist/val/MatchFuncVal.js +2 -1
  49. package/dist/val/MatchFuncVal.js.map +1 -1
  50. package/dist/val/NilVal.js +3 -0
  51. package/dist/val/NilVal.js.map +1 -1
  52. package/dist/val/RecurseVal.d.ts +1 -0
  53. package/dist/val/RecurseVal.js +7 -3
  54. package/dist/val/RecurseVal.js.map +1 -1
  55. package/dist/val/RefVal.d.ts +1 -0
  56. package/dist/val/RefVal.js +47 -18
  57. package/dist/val/RefVal.js.map +1 -1
  58. package/dist/vet.d.ts +2 -1
  59. package/dist/vet.js +51 -6
  60. package/dist/vet.js.map +1 -1
  61. package/package.json +1 -1
  62. package/skill/error-codes.md +25 -1
  63. package/src/alias.ts +214 -6
  64. package/src/aliasname.ts +95 -0
  65. package/src/aontu.ts +23 -9
  66. package/src/aontumodel.ts +1 -1
  67. package/src/cli.ts +35 -13
  68. package/src/ctx.ts +4 -1
  69. package/src/err.ts +19 -1
  70. package/src/format.ts +14 -0
  71. package/src/helpdoc.ts +1 -1
  72. package/src/hints.ts +228 -0
  73. package/src/lang.ts +370 -33
  74. package/src/lsp.ts +136 -6
  75. package/src/site.ts +15 -1
  76. package/src/subsume.ts +9 -2
  77. package/src/val/BagVal.ts +4 -0
  78. package/src/val/EmitFuncVal.ts +3 -2
  79. package/src/val/FilterFuncVal.ts +2 -2
  80. package/src/val/FuncBaseVal.ts +30 -1
  81. package/src/val/MapVal.ts +10 -4
  82. package/src/val/MatchFuncVal.ts +3 -2
  83. package/src/val/NilVal.ts +3 -0
  84. package/src/val/RecurseVal.ts +8 -3
  85. package/src/val/RefVal.ts +49 -19
  86. package/src/vet.ts +55 -6
package/dist/vet.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vet.js","sourceRoot":"","sources":["../src/vet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vet.js","sourceRoot":"","sources":["../src/vet.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;AAKpD,mCAA+B;AAC/B,yCAGkB;AAElB,+BAAwC;AACxC,mCAAmC;AACnC,mDAA+C;AAC/C,iCAA8C;AAC9C,yCAA4C;AAC5C,uCAEkB;AAClB,uCAAyD;AACzD,mCAAuC;AACvC,yCAAyC;AAiFzC,oEAAoE;AACpE,uEAAuE;AACvE,8BAA8B;AACjB,QAAA,cAAc,GAAG,EAAE,CAAA;AAEhC,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AACnC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAG/B,SAAS,QAAQ,CAAC,CAAM,EAAE,GAAW,EAAE,IAAkB;IACvD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAU,CAAA;IACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACb,IAAA,eAAQ,EAAC,CAAC,EAAE,CAAC,CAAM,EAAE,EAAE;QACrB,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IACb,OAAO,IAAI,CAAA;AACb,CAAC;AAcD,qBACE,GAAW,EAAE,KAAa,EAAE,IAAa;IACzC,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,IAAA,mBAAO,EAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAA;IAC1B,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC/C,CAAC;AAGD,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa,EAAE,IAAU;IACxD,OAAO,MAAM,KAAK,IAAI;QACpB,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;AAChE,CAAC;AAGD,SAAS,MAAM,CAAC,IAAY,EAAE,IAAU;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;AAChD,CAAC;AAGD,SAAS,QAAQ,CAAC,IAAe;IAC/B,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC5E,CAAC;AAGD,SAAS,MAAM,CAAC,CAAM,EAAE,IAAU;IAChC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/B,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;QACf,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;QACf,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;QACf,IAAI;QACJ,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;QACf,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAA;AACH,CAAC;AAGD,uEAAuE;AACvE,qEAAqE;AACrE,gEAAgE;AAChE,SAAS,OAAO,CAAC,GAAQ,EAAE,IAAU;IACnC,MAAM,KAAK,GAAc,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,IAAI,CAAY,CAAC,CAAA;IAEtE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvB,CAAC;IAED,OAAO;QACL,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC;QACzC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC;KAC5C,CAAA;AACH,CAAC;AAGD,SAAS,WAAW,CAAC,GAAQ,EAAE,GAAQ;IACrC,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;QACtC,IAAA,aAAO,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnB,CAAC;AACH,CAAC;AAGD,MAAM,QAAQ,GAAG,cAAc,CAAA;AAG/B,qEAAqE;AACrE,qEAAqE;AACrE,iEAAiE;AACjE,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;AAEpD,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAGD,sEAAsE;AACtE,6CAA6C;AAC7C,SAAS,YAAY,CAAC,OAAmB,EAAE,GAAQ;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;IAEjC,MAAM,IAAI,GAAG,IAAA,aAAO,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACrC,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IACjC,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;IAChC,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAGD,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAU;IACrC,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,GAAG;QACb,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;KAC1B,EAAE,GAAG,CAAC,CAAA;AACT,CAAC;AAGD,MAAM,SAAS,GAAG,CAAC,CAAA;AAGnB,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC;AAGD,SAAS,QAAQ,CAAC,CAAa,EAAE,KAAa;IAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,OAAO;QACL,IAAI,CAAC,IAAI;QACT,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACb,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI;QACN,GAAG,CAAC,KAAK,CAAC;KACX,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAClB,CAAC;AAGD,qEAAqE;AACrE,2EAA2E;AAC3E,uBACE,GAAQ,EAAE,GAAQ,EAAE,IAAY;IAChC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,OAAO,EAAE,iCAAiC;YAC1C,KAAK,EAAE,EAAE;SACV,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAErB,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,GAAG;QACb,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,OAAO;QACjB,IAAI;QACJ,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK,EAAE,EAAE;KACV,EAAE,GAAG,CAAC,CAAA;AACT,CAAC;AAGD,wBACE,GAAQ,EAAE,GAAY,EAAE,MAAY;IACpC,MAAM,GAAG,GAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;IACrC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAErB,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,CAAA;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AACvC,CAAC;AAGD,oEAAoE;AACpE,qEAAqE;AACrE,YAAY;AACZ,kBAAyB,IAAS,EAAE,EAAU;IAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAExD,IAAI,IAAI,GAAQ,IAAI,CAAA;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAE3B,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpE,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aACI,IAAI,IAAI,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC;YAC/B,8DAA8D;YAC9D,4DAA4D;YAC5D,kDAAkD;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC7C,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;aACI,CAAC;YACJ,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAGD,wBAA+B,CAAM;IACnC,OAAO,IAAA,sBAAa,EAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AACnC,CAAC;AAGD,MAAM,cAAc,GAAG,GAAG,CAAA;AAG1B,6CAA6C;AAC7C,SAAS,SAAS,CAAC,CAAM;IACvB,MAAM,GAAG,GAAgC,EAAE,CAAA;IAC3C,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAY,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;SACI,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,aAAa,CAAC,CAAM;IAC3B,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACxB,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9E,CAAC;AAGD,SAAS,YAAY,CACnB,CAAM,EAAE,IAAc,EAAE,GAAqB;IAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAA;QACpC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1B,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;QACzB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1B,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC;AAGD,qEAAqE;AACrE,0CAA0C;AAC1C,SAAS,cAAc,CACrB,CAAM,EAAE,IAAc,EACtB,GAAsC;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7D,CAAC;IACD,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;QAChC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAGD,sEAAsE;AACtE,qEAAqE;AACrE,sBAA6B,CAAM,EAAE,IAAS;IAC5C,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,MAAM,IAAI,GAAG,IAAI,GAAG,EAAO,CAAA;IAC3B,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACZ,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,WAAW,IAAI,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC;YACrD,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACd,SAAQ;QACV,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,IAAI,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;YACtB,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;YAC5C,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;YAC1B,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;YACpC,SAAQ;QACV,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAGD,qEAAqE;AACrE,SAAS,cAAc,CAAC,IAAS,EAAE,IAA0B;IAC3D,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,EAAE,GAAG,IAAI,CAAA;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,EAAE,GAAG,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,IAAI,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5E,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAGD,kEAAkE;AAClE,oEAAoE;AACpE,uEAAuE;AACvE,SAAS,UAAU,CACjB,MAAW,EAAE,IAAc,EAAE,IAAS;IACtC,IAAI,EAAE,GAAQ,MAAM,CAAA;IACpB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC3B,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YACf,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7D,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,CAAC,CAAC,SAAS,CAAA;QACf,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;YAC3C,EAAE,GAAG,KAAK,CAAA;YACV,SAAQ;QACV,CAAC;QACD,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAChB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,cAAc,CAAA;QACjE,EAAE,GAAG,GAAG,CAAA;IACV,CAAC;IACD,OAAO,IAAI,GAAG,IAAI,CAAA;AACpB,CAAC;AAGD,wEAAwE;AACxE,qEAAqE;AACrE,0DAA0D;AAC1D,SAAS,eAAe,CAAC,KAAe;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7C,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAY,CAAC,CAAA;AACvB,CAAC;AAGD,wEAAwE;AACxE,mCAAmC;AACnC,qBACE,MAAW,EAAE,OAAY,EAAE,UAA8B,EACzD,IAAS;IACT,MAAM,YAAY,GAAG,IAAI,GAAG,EAAe,CAAA;IAC3C,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;IAEtC,MAAM,SAAS,GAAsC,EAAE,CAAA;IACvD,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;IAEtC,oEAAoE;IACpE,mEAAmE;IACnE,qEAAqE;IACrE,MAAM,KAAK,GAAG,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAW,EAAE;QACrC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;QACzB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,CAAA;QACV,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,+DAA+D;IAC/D,8DAA8D;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5B,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,YAAY,CAAC,IAAI;QAC3B,MAAM;QACN,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,MAAM;KACrC,CAAA;AACH,CAAC;AAGD,aACE,SAAiB,EAAE,OAAe,EAAE,IAAiB;IACrD,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAA;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAA;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAA,cAAc,CAAA;IAErD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IAExC,oEAAoE;IACpE,6BAA6B;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAQ,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE,KAAK,EAAE,CAAC;QAC1D,MAAM,OAAO,GACX,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACzD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC5B,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC/B,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,KAAK;YAChB,gEAAgE;YAChE,uDAAuD;YACvD,QAAQ,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC,CAAC;SAC5D,CAAA;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,MAAM,GAAQ,SAAS,CAAA;IAC3B,IAAI,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,CAAC,IAAA,qBAAa,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;aACjD,CAAA;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC5D,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QAC1B,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC7B,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7D,CAAA;IACH,CAAC;IACD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3C,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;QACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ;KACpC,CAAA;IAED,IAAI,QAAiC,CAAA;IACrC,IAAI,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACjE,mEAAmE;QACnE,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,KAAK;YACvE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;QACzB,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,YAAY,GAAiB,EAAE,CAAA;IACrC,IAAA,qBAAW,EAAC,MAAM,EAAE,CAAC,CAAM,EAAE,IAAc,EAAQ,EAAE;QACnD,IAAI,IAAI,KAAK,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,IAAA,0BAAgB,EAAC,CAAC,CAAC,CAAA;YAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;gBACzD,MAAM,KAAK,GAAQ;oBACjB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;oBAC/B,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;iBAC9C,CAAA;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,KAAK,IAAA,qBAAW,EAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjC,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,mBAAmB;wBACzB,KAAK,EAAE,QAAQ;wBACf,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;wBACpB,OAAO,EAAE,cAAc,GAAG,CAAC,CAAC,KAAK;4BAC/B,sDAAsD;4BACtD,CAAC,CAAC,KAAK;wBACT,KAAK,EAAE,CAAC;gCACN,IAAI,EAAE,SAAS;gCACf,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gCACtB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gCACtB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gCACtB,IAAI,EAAE,QAAQ;gCACd,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;gCACtB,KAAK,EAAE,CAAC,CAAC,KAAK;6BACf,CAAC;qBACH,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,IAAI,UAAU,GAAQ,MAAM,CAAA;IAC5B,IAAI,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAQ,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QACpE,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;YACpD,UAAU,GAAG,WAAW,CAAA;YACxB,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM;gBACzB,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,UAAU,CAAC,MAAM,GAAG,IAAI,CAAA;YAC1B,CAAC;YACD,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;SACI,CAAC;QACJ,CAAC;QAAE,GAAW,CAAC,QAAQ,GAAG,SAAS,CAClC;QAAE,GAAW,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACnD,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACjE,MAAM,OAAO,GAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;IAEtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAO,CAAA;IAC3B,MAAM,IAAI,GAAU,IAAA,kBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC9C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,GAAG,EAAE,KAAK,IAAI,aAAa,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACnB,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,MAAM,CAAC,IAAI,GAAG,OAAO,CAAA;IACrB,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,OAAO,CAAC,EAAE,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,YAAY,KAAK,GAAG,CAAC,KAAK,IAAI,UAAU,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YAC3D,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;IAC9B,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAA,6BAAmB,EAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,GAAQ,GAAG,CAAA;QAClB,kEAAkE;QAClE,kEAAkE;QAClE,uCAAuC;QACvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAA,4BAAkB,EAAC,CAAC,CAAC,WAAW,CAAC;YAC1C,KAAK,EAAE,CAAC;oBACN,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;oBAC/C,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;oBACxB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;oBACrB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEzC,MAAM,QAAQ,GAAG,CAAC,CAAa,EAAU,EAAE,CACzC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,CAAC,CAAa,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAE9D,IAAI,OAAO,GAAe,OAAO,CAAA;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;IACnE,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,GAAG,SAAS,CAAA;IACrB,CAAC;SACI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,GAAG,YAAY,CAAA;IACxB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI;QAClC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAC1C,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aontu",
3
- "version": "0.67.0",
3
+ "version": "0.69.0",
4
4
  "main": "dist/aontu.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/aontu.d.ts",
@@ -17,6 +17,26 @@ test suite holds to the engine in both implementations.
17
17
  | `budget` | evaluation hit a deterministic limit | usually a cycle; simplify, or raise the budget deliberately |
18
18
  | `internal` | the engine surprised itself | a bug worth reporting |
19
19
 
20
+ ## Looking a code up
21
+
22
+ ```
23
+ aontu explain constraint # what one code means, and its class
24
+ aontu explain --list # every registered code, with its class
25
+ ```
26
+
27
+ A report prints two bracketed spans, and only one of them is a code:
28
+
29
+ ```
30
+ $.note.n1.id: constraint [conflict]
31
+ [aontu/constraint]: Cannot unify values at path $.note.n1.id
32
+ ```
33
+
34
+ `[conflict]` is the **class**. `[aontu/constraint]` is the **code**,
35
+ carrying the `aontu/` prefix. `explain` takes either spelling —
36
+ `constraint` or `aontu/constraint` — and answers under the registered
37
+ one. The headline carries the bare code as well, and so does the `code`
38
+ field of a `--format json` report.
39
+
20
40
  ## The repair loop
21
41
 
22
42
  ```
@@ -35,7 +55,11 @@ Read `hint` before guessing. `message` is the one-line headline;
35
55
  `hint` is the engine's own explanation of the failure class with the
36
56
  offending values filled in, and for several codes it names the fix
37
57
  outright — `lossy_integer_literal` tells you to write the literal as
38
- `0d…`. It is absent for codes that have no hint text.
58
+ `0d…`. Every code in the registry has hint text, which is what
59
+ `aontu explain` prints. A finding carries it inline for an exact
60
+ registry code; a **dynamic** code (`func:upper`, `op[+]`) is registered
61
+ through its prefix, and only `explain` falls back to the prefix's text,
62
+ so such a finding carries no `hint`.
39
63
 
40
64
  For a conflict, `aontu model why <path> mine.aon` lists every contribution
41
65
  to that path with its role and source line, which turns "these
package/src/alias.ts CHANGED
@@ -3,8 +3,208 @@
3
3
 
4
4
  import type { Val } from './type'
5
5
 
6
+ import { makeNilErr } from './err'
7
+
6
8
  import { cmpCodePoint } from './keyorder'
7
9
  import { spreadSnapKey } from './val/MapVal'
10
+ import { ALIAS_NAME, aliasSetItems } from './aliasname'
11
+
12
+
13
+ const ALIAS_DECL_RE = new RegExp('^(' + ALIAS_NAME + ')[ \\t]*=(?!=)')
14
+
15
+ // Whether the head IS a set is aliasSetItems's answer, not the shape's.
16
+ const ALIAS_TAKE_RE = /^(\{[^}]*\})[ \t]*=[ \t]*@[ \t]*"([^"]*)"/
17
+
18
+
19
+ type AliasBinding = {
20
+ name: string
21
+ row: number
22
+ col: number
23
+ decl: string
24
+ from: string // the include a destructure took it from, '' if local
25
+ }
26
+
27
+
28
+ // THE NAMES A FILE BINDS, from its TEXT rather than its tree: an editor
29
+ // asks while the document is half-written and would not parse.
30
+ function aliasScope(src: string): AliasBinding[] {
31
+ const out: AliasBinding[] = []
32
+ const lines = src.split('\n')
33
+
34
+ for (let li = 0; li < lines.length; li++) {
35
+ const line = lines[li]
36
+ const lead = line.length - line.replace(/^[ \t]+/, '').length
37
+ const rest = line.substring(lead)
38
+ const decl = line.trim()
39
+
40
+ const dm = ALIAS_DECL_RE.exec(rest)
41
+ if (null != dm) {
42
+ out.push({ name: dm[1], row: li + 1, col: lead + 1, decl, from: '' })
43
+ continue
44
+ }
45
+
46
+ const tm = ALIAS_TAKE_RE.exec(rest)
47
+ const binds = null == tm ? undefined : aliasSetItems(tm[1])
48
+ if (null == tm || undefined === binds) {
49
+ continue
50
+ }
51
+
52
+ // The column is each item's own, so a set jumps to the name asked
53
+ // for rather than to the pattern.
54
+ let at = lead
55
+ for (const b of binds) {
56
+ at = line.indexOf(b.local, at)
57
+ out.push({ name: b.local, row: li + 1, col: at + 1, decl, from: tm[2] })
58
+ at += b.local.length
59
+ }
60
+ }
61
+
62
+ return out
63
+ }
64
+
65
+
66
+ // EVERY ALIAS REFERENCE NAMES A DECLARED NAME, whether or not anything
67
+ // reaches it. Resolution is lazy, so a reference inside a template that
68
+ // nothing instantiates is never tried and a misspelling compiles clean.
69
+ // Whether a NAME is declared does not depend on what the tree holds, so
70
+ // it is answered here instead. See docs/design/ALIASES.0.md
71
+ function aliasErrors(ctx: any, root: Val): void {
72
+ if (true !== (root as any).isMap) {
73
+ return
74
+ }
75
+ const declared = new Set<string>((root as any).aliasKeys)
76
+ const seen = new Set<Val>()
77
+
78
+ const visit = (v: any): void => {
79
+ if (null == v || true !== v.isVal || seen.has(v)) {
80
+ return
81
+ }
82
+ seen.add(v)
83
+
84
+ if (true === v.isRef) {
85
+ const key: string | undefined = v.aliasKey
86
+ if (undefined !== key && !declared.has(key)) {
87
+ ctx.adderr(makeNilErr(ctx, 'no_path', v, undefined, 'resolve'))
88
+ }
89
+ return
90
+ }
91
+
92
+ if (true === v.isMap) {
93
+ for (const k of Object.keys(v.peg)) {
94
+ visit(v.peg[k])
95
+ }
96
+ }
97
+ else if (Array.isArray(v.peg)) {
98
+ for (const e of v.peg) {
99
+ visit(e)
100
+ }
101
+ }
102
+ else if (null != v.peg && true === v.peg.isVal) {
103
+ visit(v.peg)
104
+ }
105
+
106
+ if ((true === v.isMap || true === v.isList) && null != v.spread.cj) {
107
+ visit(v.spread.cj)
108
+ }
109
+ }
110
+
111
+ visit(root)
112
+ } /* node:coverage ignore next 3 */
113
+
114
+
115
+ // T-1 (ALIASES.0.md sections 7 and 9). Expansion TERMINATES -- no
116
+ // parameters, no recursion, a finite name set -- but a name that names
117
+ // names expands to the product of what they hold. The budget is on
118
+ // EXPANDED SIZE and charged here, ahead of evaluation.
119
+ function aliasBudget(ctx: any, root: Val): Val | undefined {
120
+ // A DOCUMENT THAT INCLUDES parses to a conjunct, not a map: the
121
+ // deferred terms are where an included file's names arrive, so the
122
+ // budget must see all of them, not only the first.
123
+ const maps: any[] = []
124
+ const gather = (v: any): void => {
125
+ if (true === v?.isMap) {
126
+ maps.push(v)
127
+ }
128
+ else if (true === v?.isConjunct && Array.isArray(v.peg)) {
129
+ for (const t of v.peg) {
130
+ gather(t)
131
+ }
132
+ }
133
+ }
134
+ gather(root)
135
+ if (0 === maps.length) {
136
+ return undefined
137
+ }
138
+ const decl: Record<string, Val> = {}
139
+ for (const m of maps) {
140
+ for (const k of m.aliasKeys) {
141
+ decl[k] = m.peg[k]
142
+ }
143
+ }
144
+ const limit: number = ctx.budget.alias
145
+ const size = new Map<string, number>()
146
+ const open = new Set<string>()
147
+ let over: Val | undefined = undefined
148
+
149
+ // A cycle is refused at resolution, which has not run yet, so a name
150
+ // already open costs nothing here rather than looping.
151
+ const nameSize = (key: string): number => {
152
+ if (size.has(key)) {
153
+ return size.get(key) as number
154
+ }
155
+ if (open.has(key) || !(key in decl)) {
156
+ return 0
157
+ }
158
+ open.add(key)
159
+ const n = valSize(decl[key])
160
+ open.delete(key)
161
+ size.set(key, n)
162
+ return n
163
+ }
164
+
165
+ const valSize = (v: any): number => {
166
+ if (true === v.isRef) {
167
+ const key: string | undefined = v.aliasKey
168
+ return undefined === key ? 1 : 1 + nameSize(key)
169
+ }
170
+ let n = 1
171
+ if (true === v.isMap) {
172
+ for (const k of Object.keys(v.peg)) {
173
+ n += valSize(v.peg[k])
174
+ }
175
+ }
176
+ else if (Array.isArray(v.peg)) {
177
+ for (const e of v.peg) {
178
+ n += valSize(e)
179
+ }
180
+ }
181
+ else if (null != v.peg && true === v.peg.isVal) {
182
+ n += valSize(v.peg)
183
+ }
184
+ if ((true === v.isMap || true === v.isList) && null != v.spread?.cj) {
185
+ n += valSize(v.spread.cj)
186
+ }
187
+ return limit < n ? limit + 1 : n
188
+ }
189
+
190
+ let total = 0
191
+ for (const m of maps) {
192
+ for (const k of Object.keys(m.peg)) {
193
+ if (!(k in decl)) {
194
+ total += valSize(m.peg[k])
195
+ if (limit < total) {
196
+ break
197
+ }
198
+ }
199
+ }
200
+ }
201
+
202
+ if (limit < total) {
203
+ over = makeNilErr(ctx, 'alias_budget', root, undefined, 'resolve')
204
+ ; (over as any).details = { budget: '' + limit }
205
+ }
206
+ return over
207
+ }
8
208
 
9
209
 
10
210
  function expandAliases(root: Val, snapmap: Map<string, Val>): void {
@@ -21,21 +221,21 @@ function expandAliases(root: Val, snapmap: Map<string, Val>): void {
21
221
  seen.add(v)
22
222
 
23
223
  if (true === v.isRef) {
24
- const name: string | undefined = v.aliasName
25
- if (undefined === name) {
224
+ const key: string | undefined = v.aliasKey
225
+ if (undefined === key) {
26
226
  return
27
227
  }
28
228
  v.expansion = undefined
29
- if (stack.includes(name)) {
229
+ if (stack.includes(key)) {
30
230
  return
31
231
  }
32
232
  const target: Val | undefined =
33
- snapmap.get(spreadSnapKey(v)) ?? (root as any).peg[name]
233
+ snapmap.get(spreadSnapKey(v)) ?? (root as any).peg[key]
34
234
  if (null == target) {
35
235
  return
36
236
  }
37
237
  v.expansion = target
38
- visit(target, [...stack, name])
238
+ visit(target, [...stack, key])
39
239
  return
40
240
  }
41
241
 
@@ -65,9 +265,17 @@ function expandAliases(root: Val, snapmap: Map<string, Val>): void {
65
265
  }
66
266
 
67
267
  visit(root, [])
68
- } /* node:coverage ignore next 5 */
268
+ } /* node:coverage ignore next 13 */
69
269
 
70
270
 
71
271
  export {
272
+ aliasBudget,
273
+ aliasErrors,
274
+ aliasScope,
72
275
  expandAliases,
73
276
  }
277
+
278
+
279
+ export type {
280
+ AliasBinding,
281
+ }
@@ -0,0 +1,95 @@
1
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
2
+
3
+ // ONE PATTERN FOR THE ALIAS NAME. See docs/design/ALIASES.0.md
4
+ const ALIAS_NAME = '%[A-Za-z_][A-Za-z0-9_]*(?:-[A-Za-z0-9_]+)*'
5
+
6
+ const ALIAS_RE = new RegExp('^' + ALIAS_NAME)
7
+
8
+ const ALIAS_NAME_RE = new RegExp('^' + ALIAS_NAME + '$')
9
+
10
+ // What `export` takes and a destructure heads with: `{%}` binds none.
11
+ const ALIAS_ITEM =
12
+ '(' + ALIAS_NAME + ')(?:[ \\t]*:[ \\t]*(' + ALIAS_NAME + '))?'
13
+ const ALIAS_SET =
14
+ '\\{[ \\t]*(?:%|' + ALIAS_ITEM +
15
+ '(?:[ \\t]*,[ \\t]*' + ALIAS_ITEM + ')*)[ \\t]*\\}'
16
+ const ALIAS_SET_RE = new RegExp('^' + ALIAS_SET + '$')
17
+ const ALIAS_ITEMS_RE = new RegExp(ALIAS_ITEM, 'g')
18
+
19
+ // THE SHORTHAND: `{ %a %b }` is `{ a: %a, b: %b }`. Names only.
20
+ const ALIAS_SHORTHAND =
21
+ '\\{\\s*' + ALIAS_NAME +
22
+ '(?:(?:\\s*,\\s*|\\s+)' + ALIAS_NAME + ')*\\s*\\}'
23
+ const ALIAS_SHORTHAND_RE = new RegExp('^' + ALIAS_SHORTHAND)
24
+
25
+ // A key carries the url of the file that declared the name.
26
+ const ALIAS_SCOPE = '@'
27
+
28
+ // THE ENGINE'S KEY NAMESPACE, refused to a source key.
29
+ const RESERVED_KEY_PREFIX = '\u0000aontu_'
30
+
31
+ // `export(...)` is read as a pair, its value under a key that changes
32
+ // with each declaration, so a field of that name is the document's.
33
+ const EXPORT_DECL_NAME = 'export'
34
+ const EXPORT_HOLD_KEY = RESERVED_KEY_PREFIX + 'export@'
35
+ let EXPORT_SEQ = 0
36
+
37
+ function exportHoldKey(): string {
38
+ return EXPORT_HOLD_KEY + (++EXPORT_SEQ)
39
+ }
40
+
41
+ function isExportHoldKey(val: unknown): boolean {
42
+ return 'string' === typeof val && val.startsWith(EXPORT_HOLD_KEY)
43
+ }
44
+
45
+
46
+ type AliasBind = { local: string, remote: string }
47
+
48
+
49
+ function aliasScopedKey(name: string, url: string): string {
50
+ return name + ALIAS_SCOPE + url
51
+ }
52
+
53
+
54
+ function aliasBareName(key: string): string {
55
+ const at = key.indexOf(ALIAS_SCOPE)
56
+ return -1 === at ? key : key.substring(0, at)
57
+ }
58
+
59
+
60
+ function aliasPathSegment(seg: string): string {
61
+ const name = aliasBareName(seg)
62
+ return ALIAS_NAME_RE.test(name) ? name : seg
63
+ }
64
+
65
+
66
+ // Undefined where the text is not a set; the wildcard answers EMPTY.
67
+ function aliasSetItems(text: string): AliasBind[] | undefined {
68
+ if (!ALIAS_SET_RE.test(text)) {
69
+ return undefined
70
+ }
71
+ return Array.from(text.matchAll(ALIAS_ITEMS_RE),
72
+ (m) => ({ local: m[1], remote: m[2] ?? m[1] }))
73
+ } /* node:coverage ignore next 22 */
74
+
75
+
76
+ export {
77
+ ALIAS_NAME,
78
+ ALIAS_RE,
79
+ ALIAS_NAME_RE,
80
+ ALIAS_SET,
81
+ ALIAS_SHORTHAND_RE,
82
+ EXPORT_DECL_NAME,
83
+ RESERVED_KEY_PREFIX,
84
+ exportHoldKey,
85
+ isExportHoldKey,
86
+ aliasScopedKey,
87
+ aliasBareName,
88
+ aliasPathSegment,
89
+ aliasSetItems,
90
+ }
91
+
92
+
93
+ export type {
94
+ AliasBind,
95
+ }
package/src/aontu.ts CHANGED
@@ -28,6 +28,7 @@ export type {
28
28
  } from './allow'
29
29
  import { graphOf } from './graph'
30
30
  import { relationCheck, relationErrors } from './relation'
31
+ import { aliasBudget, aliasErrors } from './alias'
31
32
  import { view, viewSet, viewTree } from './view'
32
33
  import { loadProfile } from './profile'
33
34
  import { desugarTemplate, resugarTemplate, markerFor } from './template'
@@ -35,7 +36,7 @@ import { format, unifiedDiff } from './format'
35
36
  export type { LintFinding, FormatReport, FormatOptions } from './format'
36
37
 
37
38
 
38
- const VERSION = '0.67.0'
39
+ const VERSION = '0.69.0'
39
40
 
40
41
 
41
42
  function genQuiet(val: any, aontu: Aontu): any {
@@ -153,16 +154,28 @@ class Aontu {
153
154
  }
154
155
 
155
156
  if (null != pval && 0 === errs.length) {
156
- let uni = new Unify(pval, this.lang, ac, src)
157
- errs = uni.err
158
-
159
- // Never nullish: Unify.res starts as the root Val, unite() returns a
160
- // Val on every arm, and its catch-all turns a throwing node into an
161
- // 'internal' NilVal.
162
- out = uni.res
157
+ // T-1: EXPANDED SIZE IS CHARGED BEFORE EVALUATION, here rather
158
+ // than in generate, because an editor unifies on each keystroke
159
+ // and a document too big to evaluate must be turned away there
160
+ // too.
161
+ const over = aliasBudget(ac as any, pval)
162
+
163
+ if (undefined !== over) {
164
+ out = over
165
+ errs = [over]
166
+ }
167
+ else {
168
+ let uni = new Unify(pval, this.lang, ac, src)
169
+ errs = uni.err
170
+
171
+ // Never nullish: Unify.res starts as the root Val, unite() returns a
172
+ // Val on every arm, and its catch-all turns a throwing node into an
173
+ // 'internal' NilVal.
174
+ out = uni.res
175
+ out.graph = graphOf(out)
176
+ }
163
177
 
164
178
  out.deps = pval.deps
165
- out.graph = graphOf(out)
166
179
  out.err = errs
167
180
  ac.root = out
168
181
  }
@@ -193,6 +206,7 @@ class Aontu {
193
206
  : uval.gen(ac as any)
194
207
 
195
208
  if (!uval.isNil && 0 === ac.err.length) {
209
+ aliasErrors(ac as any, uval)
196
210
  relationErrors(ac as any, uval)
197
211
  if (0 < ac.err.length) {
198
212
  out = undefined
package/src/aontumodel.ts CHANGED
@@ -10,7 +10,7 @@ const AONTU_SCHEME = 'aontu:'
10
10
  const AONTU_SOURCES: Record<string, string> = {
11
11
  "aontu:lang/markdown": "# aontu:lang/markdown --- THE MARKDOWN PROFILE. The text profile plus\n# markdown's own two: the HTML comment form, and the template marker\n# its files carry.\n\n@\"aontu:profile\"\n\naontu: Lang: lang: \"markdown\"\naontu: Lang: indent: { unit:\" \" width:2 }\naontu: Lang: comment: block: { open:\"<!--\" close:\"-->\" }\naontu: Lang: template: { marker:\"<!---\" ext: [\"md\" \"markdown\"] }\n",
12
12
  "aontu:lang/text": "# aontu:lang/text --- THE TEXT PROFILE. Indentation and nothing else.\n# Every language without one of its own is read under it.\n\n@\"aontu:profile\"\n\naontu: Lang: { lang:\"text\" indent: { unit:\" \" width:2 } }\n",
13
- "aontu:profile": "# aontu:profile --- THE PROFILE VOCABULARY. A language declared as\n# data: its name, its indentation, its comment forms and the marker its\n# generators carry. `aontu template` and `aontu fmt` read one through\n# --profile. EXPERIMENTAL, versioned by canon-hash later.\n\n%comment = close({ open?:string prefix?:string close?:string })\n\n%profile = close({\n lang: string & length(min(1))\n indent: close({\n unit: *\" \"|string & length(min(1))\n width: *2|integer & min(0) & max(16)\n })\n comment?: close({ line?:%comment block?:%comment doc?:%comment })\n template?: close({\n marker: string & length(min(1))\n close?: string & length(min(1))\n ext?: [&: string & re(\"^[A-Za-z0-9_+-]+$\")]\n })\n})\n\n# Profile names the schema; Lang is where one lands. type() so naming\n# the schema neither generates it nor asks a document to fill it.\naontu: { Profile:type(%profile) Lang:%profile }\n",
13
+ "aontu:profile": "# aontu:profile --- THE PROFILE VOCABULARY. A language declared as\n# data: its name, its indentation, its comment forms and the marker its\n# generators carry. `aontu template` and `aontu fmt` read one through\n# --profile. EXPERIMENTAL, versioned by canon-hash later.\n\n%comment = close({ open?:string prefix?:string close?:string })\n\n%profile = close({\n lang: string & length(min(1))\n indent: close({\n unit: *\" \"|string & length(min(1))\n width: *2|integer & min(0) & max(16)\n })\n comment?: close({ line?:%comment block?:%comment doc?:%comment })\n template?: close({\n marker: string & length(min(1))\n close?: string & length(min(1))\n ext?: [&: string & re(\"^[A-Za-z0-9_+-]+$\")]\n })\n})\n\n# Published: a name crosses only to a document that asks for it.\nexport({ %profile, %comment })\n\n# Profile names the schema; Lang is where one lands. type() so naming\n# the schema neither generates it nor asks a document to fill it.\naontu: { Profile:type(%profile) Lang:%profile }\n",
14
14
  "aontu:system": "# aontu:system --- the SYSTEM VOCABULARY. EXPERIMENTAL until the\n# distribution layer can version it by canon-hash.\n\naontu: System: {\n Port: type({ direction: *in|out|inout protocol?:string })\n\n Component: type({ ports?: { &: $.aontu.System.Port } })\n\n # Written out rather than Component & { kind: service }: a reference\n # to a type()-marked member does not survive the include.\n Service: type({ kind:service ports?: { &: $.aontu.System.Port } })\n\n # A grammar, not re(): the identifier shape is a quantified group\n # holding a quantifier, which re() refuses. hide()n so a schema's\n # grammar does not generate into the document it checks.\n semverPreRelease: hide(\n abnf(\n `pre-release = pre-release-id *( \".\" pre-release-id )\npre-release-id = \"0\" [ *digit alnum-tail ]\n / positive-digit *digit [ alnum-tail ] / alnum-tail\nalnum-tail = non-digit *id-char\nid-char = digit / non-digit\nnon-digit = letter / \"-\"\ndigit = \"0\" / positive-digit\npositive-digit = %x31-39\nletter = %x41-5A / %x61-7A\n`\n )\n )\n semverBuild: hide(\n abnf(\n `build = build-id *( \".\" build-id )\nbuild-id = 1*id-char\nid-char = digit / non-digit\nnon-digit = letter / \"-\"\ndigit = \"0\" / positive-digit\npositive-digit = %x31-39\nletter = %x41-5A / %x61-7A\n`\n )\n )\n\n # major minor patch pre-release build, tail defaulted.\n Semver: type(\n [\n integer & min(0)\n *0|(integer & min(0))\n *0|(integer & min(0))\n *\"\"|parse($.aontu.System.semverPreRelease)\n *\"\"|parse($.aontu.System.semverBuild)\n ] & length(5)\n )\n}\n",
15
15
  "aontu:view": "# aontu:view --- the FIGURE VOCABULARY. EXPERIMENTAL until the\n# distribution layer can version it by canon-hash.\n\naontu: View: Figure: type({\n kind: doc|lattice|tree|matrix|graph|layer|sets|layers\n | ladder\n out: string\n\n # Every kind.\n as?: text|mermaid|dot|er|svg\n at?: string\n maxRows?: integer & min(0)\n\n # doc.\n depth?: integer & min(0)\n\n # tree, matrix, layer, graph.\n relation?: string\n relations?: [&: string]\n roots?: [&: string]\n\n # matrix.\n order?: canon|partition\n closure?: boolean\n\n # graph, layer.\n groupBy?: string\n label?: string\n layers?: [&: string]\n edges?: upward|all|none\n\n # sets, layers.\n sets?: string\n member?: string\n universe?: string\n minDegree?: integer & min(0)\n maxCols?: integer & min(0)\n minSize?: integer & min(0)\n})\n"
16
16
  }