@vune-ui/compiler 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast.d.ts +85 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +531 -0
- package/dist/ast.js.map +1 -0
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +178 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline.d.ts +3 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +1316 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/scanner.d.ts +54 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +678 -0
- package/dist/scanner.js.map +1 -0
- package/dist/semantic.d.ts +100 -0
- package/dist/semantic.d.ts.map +1 -0
- package/dist/semantic.js +692 -0
- package/dist/semantic.js.map +1 -0
- package/dist/source-map.d.ts +26 -0
- package/dist/source-map.d.ts.map +1 -0
- package/dist/source-map.js +196 -0
- package/dist/source-map.js.map +1 -0
- package/dist/specialization.d.ts +4 -0
- package/dist/specialization.d.ts.map +1 -0
- package/dist/specialization.js +233 -0
- package/dist/specialization.js.map +1 -0
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vite.d.ts +17 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +96 -0
- package/dist/vite.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAA;AACrC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GAYpB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAA2B,MAAM,iBAAiB,CAAA;AA0GpG,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,KAAyB,CAAA;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,SAAQ;YAAC,CAAC;YAChD,IAAI,SAAS,KAAK,KAAK;gBAAE,KAAK,GAAG,SAAS,CAAA;YAC1C,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;YAAC,SAAQ;QAAC,CAAC;QACjG,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAA;aAC5B,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;aACrD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAC7C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IACzD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,KAAyB,CAAA;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAAC,KAAK,IAAI,CAAC,CAAC;gBAAC,SAAQ;YAAC,CAAC;YAChD,IAAI,SAAS,KAAK,KAAK;gBAAE,KAAK,GAAG,SAAS,CAAA;YAC1C,SAAQ;QACV,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;YAAC,SAAQ;QAAC,CAAC;QACjG,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAA;aAC5B,IAAI,SAAS,KAAK,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;aACrD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,IAAI,CAAC,CAAA;aAClC,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;aACvD,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;IAC9G,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc;IACnD,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;QAChE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC;YACnD,CAAC,CAAC,aAAsB;YACxB,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACnC,CAAC,CAAC,QAAiB;gBACnB,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACpC,CAAC,CAAC,SAAkB;oBACpB,CAAC,CAAC,OAAgB,CAAA;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACvF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACtE,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QACjD,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACzD,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI;YACJ,QAAQ,EAAE,YAAY,KAAK,SAAS;YACpC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;SAClE,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;QACjH,OAAO;YACL,GAAG,SAAS;YACZ,QAAQ;YACR,aAAa,EAAE,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ;SAC1D,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAyC,EAAE,MAAM,GAAG,EAAE;IAC5E,MAAM,MAAM,GAAuB,EAAE,CAAA;IACrC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAA;QACjF,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACvE,MAAM,UAAU,GAAG,6BAA6B,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YAC9E,MAAM,MAAM,GAA8B;gBACxC,IAAI,EAAE,aAAa;gBACnB,KAAK;gBACL,SAAS,EAAE,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG;gBACxE,UAAU;aACX,CAAA;YACD,OAAO;gBACL,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;gBAC9C,UAAU;gBACV,MAAM;gBACN,KAAK,EAAE,WAAW,CAAC,KAAK;aACzB,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC,CAAA;QACH,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,aAAa;YACb,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACxH,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;SAClE,CAAA;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,aAAa;YACb,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,MAAM;YACN,YAAY;YACZ,MAAM;YACN,SAAS,EAAE,WAAW,CAAC,mBAAmB;YAC1C,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B,EAAE,MAA0B;IAC3E,MAAM,KAAK,GAAG,CAAC,IAAqB,EAAQ,EAAE;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,YAAqB;oBACpF,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;oBACtE,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,CAAC,CAAC;gBACH,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC;aAC/C,CAAC,CAAA;YACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAClF,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ;gBAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACtD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;oBAC3D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU;wBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAA;IACxD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,SAAQ;QACzC,MAAM,MAAM,GAAI,KAAsF,CAAC,QAAQ,EAAE,cAAc,CAAA;QAC/H,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc,EAAE,OAAuB,EAAE,UAAyB;IAClG,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,IAAI,SAAoC,CAAA;IACxC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS;gBAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM;YAAE,SAAS,GAAG,IAAI,CAAA;QAChE,IAAI,CAAC,SAAS;YAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAA;IACD,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACjD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACjG,oEAAoE;IACpE,wEAAwE;IACxE,uEAAuE;IACvE,gDAAgD;IAChD,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA+C,EAAE;QACxF,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC;YAAE,OAAO,QAAQ,CAAA;QACrF,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC;YAAE,OAAO,QAAQ,CAAA;QACrF,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC;YAAE,OAAO,SAAS,CAAA;QACxF,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAA;YAC9D,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAc,EACd,KAAyB,EACzB,OAAuB,EACvB,UAAyB,EACzB,gBAA6C,IAAI,GAAG,EAAE;IAEtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,8CAA8C,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAClH,IAAI,6DAA6D,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC/G,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC/E,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACxD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;IAClE,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACrE,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IACpE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAChG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAA;AACvG,CAAC;AAED,SAAS,aAAa,CACpB,KAAkC,EAClC,KAAkC,EAClC,OAAuB,EACvB,UAAyB;IAEzB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,KAAK,CAAC,IAAI;gBAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACpH,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,UAAU,GAAuB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YAChH,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;YAC7C,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,aAAa,KAAK,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9H,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;gBACpC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACpG,IAAI,IAAI,CAAC,eAAe;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/E,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;SACtE,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,OAAyC;IACnF,MAAM,QAAQ,GAAyB,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,GAAG,GAAG,CAAC,KAAyB,EAAQ,EAAE;QAC9C,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAM;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,CAAC,YAA8C,EAAQ,EAAE;QACrE,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9F,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,sEAAsE;QACtE,yEAAyE;QACzE,8BAA8B;QAC9B,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,KAAK,MAAM,WAAW,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvJ,CAAC;QACD,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAA;IACd,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IACrG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,eAAuB,EAAE,UAAyB,EAAE,SAAiD;IACtI,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC/C,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC;YAAE,OAAO,EAAE,CAAA;QACnG,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAA;QACpF,OAAO,CAAC;gBACN,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,IAAI;gBACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,CAAC;aACpE,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,QAAqC;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;IACpH,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAqC;IAC/D,IAAI,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxH,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAyB,EAAE,OAAuB;IAC7E,IAAI,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAA;IACvD,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAA;IACpD,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY;QAAE,OAAO,SAAS,CAAA;IACrH,IAAI,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAA;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACjG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAA;IACpF,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAA;IACpF,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAA;IACvF,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkD,EAClD,SAA6B,EAC7B,UAAqC;IAErC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,KAAK,OAAO,CAAA;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,CAAA;IAC5F,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B;QAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzG,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACjH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACxC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,MAAc;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;AAChF,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,QAA4B;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACzF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,eAAuB,EAAE,GAA2C,EAAE,cAA+B;IACrI,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1F,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IACtF,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;AAC1G,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,MAAc;IACrF,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3B,KAAK,IAAI,CAAC,CAAA;YACV,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBAAC,KAAK,IAAI,CAAC,CAAC;oBAAC,SAAQ;gBAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK;oBAAE,MAAK;gBAClC,KAAK,IAAI,CAAC,CAAA;YACZ,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM;YAAE,KAAK,IAAI,CAAC,CAAA;aACnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,EAAE,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAY;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,SAAS,EAAE,GAAG,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACvD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAA;AACxE,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,GAAW,EAAE,IAAY;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAChF,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW,KAAK,GAAG,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,GAAG,IAAI,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/K,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAClD,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACrD,IAAI,UAAU,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;QACvG,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7E,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAA;QAC7D,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IACrH,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC/E,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAA;IAC3H,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAc,EACd,eAAuB,EACvB,UAAyB,EACzB,OAAuB,EACvB,SAAiD;IAMjD,MAAM,YAAY,GAA8B,EAAE,CAAA;IAClD,MAAM,eAAe,GAAiC,EAAE,CAAA;IACxD,MAAM,iBAAiB,GAAmC,EAAE,CAAA;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC;YAAE,SAAQ;QAClG,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAA;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI;YAAE,SAAQ;QACtE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9H,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAA;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC9C,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,gDAAgD,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvI,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC5C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC1E,iBAAiB,CAAC,IAAI,CAAC;wBACrB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;wBACzB,MAAM;wBACN,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,CAAC;wBAChH,cAAc;wBACd,MAAM,EAAE;4BACN,IAAI,EAAE,mBAAmB;4BACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;4BACzB,MAAM;4BACN,eAAe,EAAE,cAAc;yBAChC;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxG,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC7B,IAAI,GAAG,IAAI,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC/B,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC1E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;gBACtE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC;oBAC7D,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBAClC,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;4BAAE,OAAO,CAAC,KAAK,CAAC,CAAA;wBACnD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;oBAC3C,CAAC,CAAC;oBACJ,CAAC,CAAC,EAAE,CAAA;gBACN,MAAM,gBAAgB,GAAkC,EAAE,CAAA;gBAC1D,IAAI,KAAK,IAAI,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBACxC,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACpC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;4BAC3E,SAAQ;wBACV,CAAC;wBACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;wBACzC,IAAI,CAAC,IAAI;4BAAE,SAAQ;wBACnB,MAAM,UAAU,GAAG,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;4BAClD,CAAC,CAAC,QAAQ,CAAC,WAAW;4BACtB,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,QAAQ,CAAC;gCAC1C,CAAC,CAAC,QAAQ,CAAC,2BAA2B;gCACtC,CAAC,CAAC,SAAS,CAAA;wBACf,MAAM,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;wBACtD,MAAM,SAAS,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC;4BAChD,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,UAAU;gCACV,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;gCAC1C,CAAC,CAAC,SAAS,CAAA;wBACf,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;wBAC/G,MAAM,uBAAuB,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;wBAC3F,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAA;wBAC7F,IAAI,CAAC,IAAI,EAAE,CAAC;4BACV,eAAe,CAAC,IAAI,CAAC;gCACnB,IAAI,EAAE,qBAAqB;gCAC3B,OAAO,EAAE,uBAAuB,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI;gCAC1D,KAAK,EAAE,eAAe;gCACtB,cAAc,EAAE,uBAAuB;6BACxC,CAAC,CAAA;4BACF,SAAQ;wBACV,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;4BACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;4BACvG,eAAe,CAAC,IAAI,CAAC;gCACnB,IAAI,EAAE,iBAAiB;gCACvB,OAAO,EAAE,eAAe,IAAI,UAAU,GAAG,CAAC,IAAI,aAAa,QAAQ,GAAG;gCACtE,KAAK,EAAE,eAAe;gCACtB,cAAc,EAAE,uBAAuB;6BACxC,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC7C,MAAM,MAAM,GAA8B;oBACxC,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,WAAW,cAAc,CAAC,KAAK,EAAE;oBACvC,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,gBAAgB;iBAC7B,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC;oBAChB,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,UAAU;oBACV,gBAAgB;oBAChB,MAAM;oBACN,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,CAAC;oBACtF,cAAc;iBACf,CAAC,CAAA;gBACF,IAAI,QAAQ;oBAAE,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC7C,CAAC;QACH,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAA;IACD,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,MAAc;IAK1D,MAAM,OAAO,GAAuB;QAClC,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;QAC5B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO;QACjD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;KAC/B,CAAA;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACxE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,aAAa,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAA;IACtG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC1G,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,aAAa;QAC7H,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAChI,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAA;IACzF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC3I,OAAO;QACL,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,WAAW,EAAE,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC;KACzD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAgB,EAAE,eAAuB;IAC3F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACtC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,cAAc,GAAuB,EAAE,CAAA;IAC7C,KAAK,MAAM,OAAO,IAAI,eAAe;QAAE,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAChF,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAA;IACxE,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC7G,MAAM,WAAW,GAAG,IAAI,aAAa,EAAE,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACrF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAgC,CAAC,CAAA;YAChK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QACxI,CAAC;IACH,CAAC;IACD,WAAW,CAAC,QAAQ,CAAC;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,CAAC;KACrC,CAAC,CAAA;IACtC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,iBAAiB;QAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1F,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,YAAY;QAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrF,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,QAAQ;QACR,MAAM;QACN,eAAe;QACf,UAAU;QACV,WAAW,EAAE,QAAQ,CAAC,OAAO;QAC7B,qBAAqB,EAAE,QAAQ,CAAC,WAAW;QAC3C,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,OAAO;QACP,KAAK;QACL,eAAe;QACf,KAAK;QACL,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,CAAC;QAClE,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;QACjD,WAAW;QACX,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE;QAC7B,IAAI,CAAC,IAAI;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,CAAC,IAAI;YACT,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface VuneSourceMapAnchor {
|
|
2
|
+
readonly line: number;
|
|
3
|
+
readonly column: number;
|
|
4
|
+
readonly generatedColumn: number;
|
|
5
|
+
}
|
|
6
|
+
export interface VuneSourceMap {
|
|
7
|
+
readonly version: 3;
|
|
8
|
+
readonly file?: string;
|
|
9
|
+
readonly sources: readonly string[];
|
|
10
|
+
readonly sourcesContent: readonly string[];
|
|
11
|
+
readonly names: readonly string[];
|
|
12
|
+
readonly mappings: string;
|
|
13
|
+
readonly x_vune: {
|
|
14
|
+
readonly lineMappings: readonly VuneSourceMapAnchor[];
|
|
15
|
+
readonly segments: readonly (readonly VuneSourceMapAnchor[])[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** Create a context-anchored VLQ map for the Vune lowering pipeline. */
|
|
19
|
+
export declare function createVuneSourceMap(source: string, generated: string, id: string): VuneSourceMap;
|
|
20
|
+
export interface VuneSourcePosition {
|
|
21
|
+
readonly line: number;
|
|
22
|
+
readonly column: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function mapGeneratedPosition(map: VuneSourceMap, position: VuneSourcePosition): VuneSourcePosition;
|
|
25
|
+
export declare function mapOriginalPosition(map: VuneSourceMap, position: VuneSourcePosition): VuneSourcePosition;
|
|
26
|
+
//# sourceMappingURL=source-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAA;QACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,CAAA;KAC/D,CAAA;CACF;AAkJD,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CA0BhG;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAMzG;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAgBxG"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
2
|
+
function vlq(value) {
|
|
3
|
+
let current = value < 0 ? ((-value) << 1) | 1 : value << 1;
|
|
4
|
+
let output = "";
|
|
5
|
+
do {
|
|
6
|
+
let digit = current & 31;
|
|
7
|
+
current >>>= 5;
|
|
8
|
+
if (current > 0)
|
|
9
|
+
digit |= 32;
|
|
10
|
+
output += alphabet[digit];
|
|
11
|
+
} while (current > 0);
|
|
12
|
+
return output;
|
|
13
|
+
}
|
|
14
|
+
function tokens(line) {
|
|
15
|
+
return [...line.matchAll(/[A-Za-z_$][A-Za-z0-9_$]*/g)].map(match => ({
|
|
16
|
+
value: match[0],
|
|
17
|
+
column: match.index ?? 0,
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
function allTokens(source) {
|
|
21
|
+
let order = 0;
|
|
22
|
+
return source.split("\n").flatMap((line, lineIndex) => tokens(line).map(token => ({
|
|
23
|
+
value: token.value,
|
|
24
|
+
line: lineIndex,
|
|
25
|
+
column: token.column,
|
|
26
|
+
order: order++,
|
|
27
|
+
})));
|
|
28
|
+
}
|
|
29
|
+
function key(line, column) {
|
|
30
|
+
return `${line}:${column}`;
|
|
31
|
+
}
|
|
32
|
+
function tokensByValue(values) {
|
|
33
|
+
const result = new Map();
|
|
34
|
+
for (const token of values) {
|
|
35
|
+
const bucket = result.get(token.value) ?? [];
|
|
36
|
+
bucket.push(token);
|
|
37
|
+
result.set(token.value, bucket);
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Score an original occurrence by its lexical neighbourhood. Vune lowering can
|
|
43
|
+
* move code (notably top-level State declarations), so monotonic token matching
|
|
44
|
+
* is not sufficient: `count` in a generated State factory must map back to the
|
|
45
|
+
* declaration, while `count` in the body must map to its original use.
|
|
46
|
+
*/
|
|
47
|
+
function contextualScore(generated, generatedIndex, original, originalIndex) {
|
|
48
|
+
let score = 0;
|
|
49
|
+
const generatedToken = generated[generatedIndex];
|
|
50
|
+
const originalToken = original[originalIndex];
|
|
51
|
+
if (generatedToken.value !== originalToken.value)
|
|
52
|
+
return Number.NEGATIVE_INFINITY;
|
|
53
|
+
// Immediate neighbours are the strongest signal; wider neighbours tolerate
|
|
54
|
+
// synthetic helper identifiers inserted by the lowering passes.
|
|
55
|
+
for (let distance = 1; distance <= 5; distance += 1) {
|
|
56
|
+
const weight = 18 / distance;
|
|
57
|
+
if (generated[generatedIndex - distance]?.value === original[originalIndex - distance]?.value)
|
|
58
|
+
score += weight;
|
|
59
|
+
if (generated[generatedIndex + distance]?.value === original[originalIndex + distance]?.value)
|
|
60
|
+
score += weight;
|
|
61
|
+
}
|
|
62
|
+
const generatedWindow = generated.slice(Math.max(0, generatedIndex - 5), generatedIndex + 6);
|
|
63
|
+
const originalWindow = original.slice(Math.max(0, originalIndex - 5), originalIndex + 6);
|
|
64
|
+
for (const neighbour of generatedWindow) {
|
|
65
|
+
if (neighbour === generatedToken)
|
|
66
|
+
continue;
|
|
67
|
+
const match = originalWindow.find(candidate => candidate.value === neighbour.value);
|
|
68
|
+
if (match)
|
|
69
|
+
score += 2;
|
|
70
|
+
}
|
|
71
|
+
// Same-line companions are useful for moved declarations and calls.
|
|
72
|
+
const generatedLineValues = new Set(generatedWindow.filter(token => token.line === generatedToken.line).map(token => token.value));
|
|
73
|
+
const originalLineValues = new Set(originalWindow.filter(token => token.line === originalToken.line).map(token => token.value));
|
|
74
|
+
for (const value of generatedLineValues)
|
|
75
|
+
if (originalLineValues.has(value))
|
|
76
|
+
score += 1;
|
|
77
|
+
return score;
|
|
78
|
+
}
|
|
79
|
+
function alignTokens(source, generated) {
|
|
80
|
+
const original = allTokens(source);
|
|
81
|
+
const generatedTokens = allTokens(generated);
|
|
82
|
+
const originalByValue = tokensByValue(original);
|
|
83
|
+
const originalIndex = new Map(original.map((token, index) => [token.order, index]));
|
|
84
|
+
const anchors = new Map();
|
|
85
|
+
let monotonicCursor = 0;
|
|
86
|
+
let previous = { line: 0, column: 0 };
|
|
87
|
+
for (let generatedIndex = 0; generatedIndex < generatedTokens.length; generatedIndex += 1) {
|
|
88
|
+
const token = generatedTokens[generatedIndex];
|
|
89
|
+
const candidates = originalByValue.get(token.value) ?? [];
|
|
90
|
+
let best;
|
|
91
|
+
let bestScore = Number.NEGATIVE_INFINITY;
|
|
92
|
+
for (const candidate of candidates) {
|
|
93
|
+
const index = originalIndex.get(candidate.order) ?? 0;
|
|
94
|
+
const context = contextualScore(generatedTokens, generatedIndex, original, index);
|
|
95
|
+
// Preserve source order only as a weak tie breaker. This keeps ordinary
|
|
96
|
+
// unchanged code stable without defeating genuinely moved spans.
|
|
97
|
+
const orderBonus = candidate.order >= monotonicCursor ? 0.25 : 0;
|
|
98
|
+
const lineBonus = candidate.line === token.line ? 0.1 : 0;
|
|
99
|
+
const score = context + orderBonus + lineBonus;
|
|
100
|
+
if (score > bestScore) {
|
|
101
|
+
best = candidate;
|
|
102
|
+
bestScore = score;
|
|
103
|
+
}
|
|
104
|
+
else if (score === bestScore && best) {
|
|
105
|
+
const bestDistance = Math.abs(best.order - monotonicCursor);
|
|
106
|
+
const nextDistance = Math.abs(candidate.order - monotonicCursor);
|
|
107
|
+
if (nextDistance < bestDistance)
|
|
108
|
+
best = candidate;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (best) {
|
|
112
|
+
previous = { line: best.line, column: best.column };
|
|
113
|
+
if (best.order >= monotonicCursor)
|
|
114
|
+
monotonicCursor = best.order + 1;
|
|
115
|
+
}
|
|
116
|
+
anchors.set(key(token.line, token.column), previous);
|
|
117
|
+
}
|
|
118
|
+
return anchors;
|
|
119
|
+
}
|
|
120
|
+
function sourceTokensByValue(source) {
|
|
121
|
+
const result = new Map();
|
|
122
|
+
for (const token of allTokens(source)) {
|
|
123
|
+
const values = result.get(token.value) ?? [];
|
|
124
|
+
values.push({ line: token.line, column: token.column });
|
|
125
|
+
result.set(token.value, values);
|
|
126
|
+
}
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
function fallbackAnchor(sourceLines, line) {
|
|
130
|
+
return { line: Math.min(Math.max(0, line), sourceLines - 1), column: 0 };
|
|
131
|
+
}
|
|
132
|
+
function lineAnchors(generatedLine, line, sourceLines, sourceTokens, aligned) {
|
|
133
|
+
const generatedTokens = tokens(generatedLine);
|
|
134
|
+
if (generatedTokens.length === 0)
|
|
135
|
+
return [{ ...fallbackAnchor(sourceLines, line), generatedColumn: 0 }];
|
|
136
|
+
return generatedTokens.map(token => ({
|
|
137
|
+
...(aligned.get(key(line, token.column))
|
|
138
|
+
?? sourceTokens.get(token.value)?.[0]
|
|
139
|
+
?? fallbackAnchor(sourceLines, line)),
|
|
140
|
+
generatedColumn: token.column,
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
/** Create a context-anchored VLQ map for the Vune lowering pipeline. */
|
|
144
|
+
export function createVuneSourceMap(source, generated, id) {
|
|
145
|
+
const sourceLines = Math.max(1, source.split("\n").length);
|
|
146
|
+
const aligned = alignTokens(source, generated);
|
|
147
|
+
const sourceByValue = sourceTokensByValue(source);
|
|
148
|
+
const segments = generated.split("\n").map((line, index) => lineAnchors(line, index, sourceLines, sourceByValue, aligned));
|
|
149
|
+
let previousLine = 0;
|
|
150
|
+
let previousColumn = 0;
|
|
151
|
+
const mappings = segments.map(line => {
|
|
152
|
+
let previousGeneratedColumn = 0;
|
|
153
|
+
return line.map(anchor => {
|
|
154
|
+
const value = `${vlq(anchor.generatedColumn - previousGeneratedColumn)}${vlq(0)}${vlq(anchor.line - previousLine)}${vlq(anchor.column - previousColumn)}`;
|
|
155
|
+
previousGeneratedColumn = anchor.generatedColumn;
|
|
156
|
+
previousLine = anchor.line;
|
|
157
|
+
previousColumn = anchor.column;
|
|
158
|
+
return value;
|
|
159
|
+
}).join(",");
|
|
160
|
+
}).join(";");
|
|
161
|
+
return {
|
|
162
|
+
version: 3,
|
|
163
|
+
file: id,
|
|
164
|
+
sources: [id],
|
|
165
|
+
sourcesContent: [source],
|
|
166
|
+
names: [],
|
|
167
|
+
mappings,
|
|
168
|
+
x_vune: { lineMappings: segments.map(line => line[0]), segments },
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
export function mapGeneratedPosition(map, position) {
|
|
172
|
+
const line = Math.max(1, Math.trunc(position.line));
|
|
173
|
+
const column = Math.max(1, Math.trunc(position.column)) - 1;
|
|
174
|
+
const anchors = map.x_vune.segments[Math.min(line - 1, map.x_vune.segments.length - 1)] ?? [];
|
|
175
|
+
const anchor = [...anchors].reverse().find(item => item.generatedColumn <= column) ?? anchors[0] ?? { line: 0, column: 0, generatedColumn: 0 };
|
|
176
|
+
return { line: anchor.line + 1, column: anchor.column + Math.max(0, column - anchor.generatedColumn) + 1 };
|
|
177
|
+
}
|
|
178
|
+
export function mapOriginalPosition(map, position) {
|
|
179
|
+
const line = Math.max(1, Math.trunc(position.line)) - 1;
|
|
180
|
+
const column = Math.max(1, Math.trunc(position.column)) - 1;
|
|
181
|
+
let bestLine = 0;
|
|
182
|
+
let best = map.x_vune.lineMappings[0] ?? { line: 0, column: 0, generatedColumn: 0 };
|
|
183
|
+
let distance = Number.POSITIVE_INFINITY;
|
|
184
|
+
for (let generatedLine = 0; generatedLine < map.x_vune.segments.length; generatedLine += 1) {
|
|
185
|
+
for (const candidate of map.x_vune.segments[generatedLine]) {
|
|
186
|
+
const nextDistance = Math.abs(candidate.line - line) * 10000 + Math.abs(candidate.column - column);
|
|
187
|
+
if (nextDistance >= distance)
|
|
188
|
+
continue;
|
|
189
|
+
distance = nextDistance;
|
|
190
|
+
bestLine = generatedLine;
|
|
191
|
+
best = candidate;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return { line: bestLine + 1, column: Math.max(1, best.generatedColumn + column - best.column + 1) };
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=source-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const staticModifierNames: Set<string>;
|
|
2
|
+
export declare function lowerStaticModifierChains(source: string, fileName: string): string;
|
|
3
|
+
export declare function lowerStaticImportedCalls(source: string, fileName: string): string;
|
|
4
|
+
//# sourceMappingURL=specialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specialization.d.ts","sourceRoot":"","sources":["../src/specialization.ts"],"names":[],"mappings":"AAsFA,eAAO,MAAM,mBAAmB,aAG9B,CAAA;AA4BF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8ClF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+EjF"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
function compilerRootFileName(fileName) {
|
|
3
|
+
const resolvePath = ts.sys.resolvePath;
|
|
4
|
+
if (resolvePath)
|
|
5
|
+
return resolvePath(fileName);
|
|
6
|
+
return /^(?:[A-Za-z]:[\\/]|\/)/.test(fileName)
|
|
7
|
+
? fileName
|
|
8
|
+
: `${ts.sys.getCurrentDirectory().replace(/[\\/]$/, "")}/${fileName}`;
|
|
9
|
+
}
|
|
10
|
+
const externalSourceFiles = new Map();
|
|
11
|
+
const previousPrograms = new Map();
|
|
12
|
+
const maximumProgramCacheSize = 32;
|
|
13
|
+
function rememberProgram(root, program) {
|
|
14
|
+
previousPrograms.delete(root);
|
|
15
|
+
previousPrograms.set(root, program);
|
|
16
|
+
while (previousPrograms.size > maximumProgramCacheSize) {
|
|
17
|
+
const oldest = previousPrograms.keys().next().value;
|
|
18
|
+
if (!oldest)
|
|
19
|
+
break;
|
|
20
|
+
previousPrograms.delete(oldest);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function createVuneTypeScriptProgram(source, fileName) {
|
|
24
|
+
const rootFileName = compilerRootFileName(fileName);
|
|
25
|
+
const options = {
|
|
26
|
+
allowJs: false,
|
|
27
|
+
module: ts.ModuleKind.ESNext,
|
|
28
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
29
|
+
noEmit: true,
|
|
30
|
+
skipLibCheck: true,
|
|
31
|
+
target: ts.ScriptTarget.ES2022,
|
|
32
|
+
};
|
|
33
|
+
const host = ts.createCompilerHost(options, true);
|
|
34
|
+
const normalize = (value) => value.replaceAll("\\", "/");
|
|
35
|
+
const root = normalize(rootFileName);
|
|
36
|
+
const originalReadFile = host.readFile.bind(host);
|
|
37
|
+
const originalFileExists = host.fileExists.bind(host);
|
|
38
|
+
host.fileExists = requested => normalize(requested) === root || originalFileExists(requested);
|
|
39
|
+
host.readFile = requested => normalize(requested) === root ? source : originalReadFile(requested);
|
|
40
|
+
host.getSourceFile = (requested, languageVersion, onError) => {
|
|
41
|
+
if (normalize(requested) === root)
|
|
42
|
+
return ts.createSourceFile(requested, source, languageVersion, true, ts.ScriptKind.TS);
|
|
43
|
+
const text = originalReadFile(requested);
|
|
44
|
+
if (text === undefined) {
|
|
45
|
+
onError?.(`Unable to read ${requested}`);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const cacheKey = normalize(requested);
|
|
49
|
+
const languageVersionKey = typeof languageVersion === "number" ? String(languageVersion) : JSON.stringify(languageVersion);
|
|
50
|
+
const cached = externalSourceFiles.get(cacheKey);
|
|
51
|
+
if (cached && cached.text === text && cached.languageVersionKey === languageVersionKey)
|
|
52
|
+
return cached.sourceFile;
|
|
53
|
+
const extension = requested.toLowerCase().split(".").pop();
|
|
54
|
+
const scriptKind = extension === "tsx" ? ts.ScriptKind.TSX
|
|
55
|
+
: extension === "jsx" ? ts.ScriptKind.JSX
|
|
56
|
+
: extension === "js" || extension === "mjs" || extension === "cjs" ? ts.ScriptKind.JS
|
|
57
|
+
: extension === "json" ? ts.ScriptKind.JSON
|
|
58
|
+
: ts.ScriptKind.TS;
|
|
59
|
+
const sourceFile = ts.createSourceFile(requested, text, languageVersion, true, scriptKind);
|
|
60
|
+
externalSourceFiles.set(cacheKey, { text, languageVersionKey, sourceFile });
|
|
61
|
+
return sourceFile;
|
|
62
|
+
};
|
|
63
|
+
let program;
|
|
64
|
+
try {
|
|
65
|
+
program = ts.createProgram([rootFileName], options, host, previousPrograms.get(root));
|
|
66
|
+
rememberProgram(root, program);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
previousPrograms.delete(root);
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const sourceFile = program.getSourceFile(rootFileName);
|
|
73
|
+
return sourceFile ? { sourceFile, checker: program.getTypeChecker() } : undefined;
|
|
74
|
+
}
|
|
75
|
+
export const staticModifierNames = new Set([
|
|
76
|
+
"padding", "margin", "gap", "frame", "font", "fontSize", "bold", "foreground", "background",
|
|
77
|
+
"style", "className", "withProps", "keyed", "elementRef",
|
|
78
|
+
]);
|
|
79
|
+
function isVuneViewType(checker, type) {
|
|
80
|
+
if (type.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown | ts.TypeFlags.Never))
|
|
81
|
+
return false;
|
|
82
|
+
const alias = type.aliasSymbol?.escapedName;
|
|
83
|
+
if (alias === "View" || alias === "ModifiableViewNode")
|
|
84
|
+
return true;
|
|
85
|
+
if (type.isUnion())
|
|
86
|
+
return type.types.length > 0 && type.types.every(item => isVuneViewType(checker, item));
|
|
87
|
+
const rendered = checker.typeToString(type);
|
|
88
|
+
return rendered === "View" || rendered === "ModifiableViewNode";
|
|
89
|
+
}
|
|
90
|
+
function staticModifierChain(node) {
|
|
91
|
+
const calls = [];
|
|
92
|
+
let current = node;
|
|
93
|
+
while (ts.isCallExpression(current) && ts.isPropertyAccessExpression(current.expression)) {
|
|
94
|
+
const name = current.expression.name.text;
|
|
95
|
+
if (!staticModifierNames.has(name) || current.expression.questionDotToken)
|
|
96
|
+
break;
|
|
97
|
+
calls.unshift({ name, node: current });
|
|
98
|
+
current = current.expression.expression;
|
|
99
|
+
}
|
|
100
|
+
return calls.length > 0 ? { base: current, calls } : undefined;
|
|
101
|
+
}
|
|
102
|
+
export function lowerStaticModifierChains(source, fileName) {
|
|
103
|
+
if (!Array.from(staticModifierNames).some(name => new RegExp(`\\.${name}\\s*\\(`).test(source)))
|
|
104
|
+
return source;
|
|
105
|
+
let result = source;
|
|
106
|
+
for (let pass = 0; pass < 8; pass += 1) {
|
|
107
|
+
const program = createVuneTypeScriptProgram(result, fileName);
|
|
108
|
+
if (!program)
|
|
109
|
+
return result;
|
|
110
|
+
const candidates = [];
|
|
111
|
+
const visit = (node) => {
|
|
112
|
+
if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
|
|
113
|
+
const chain = staticModifierChain(node);
|
|
114
|
+
const parent = node.parent;
|
|
115
|
+
const isNestedChain = ts.isCallExpression(parent)
|
|
116
|
+
&& ts.isPropertyAccessExpression(parent.expression)
|
|
117
|
+
&& parent.expression.expression === node
|
|
118
|
+
&& staticModifierNames.has(parent.expression.name.text);
|
|
119
|
+
if (chain && !isNestedChain && isVuneViewType(program.checker, program.checker.getTypeAtLocation(chain.base))) {
|
|
120
|
+
candidates.push({ node, chain });
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
ts.forEachChild(node, visit);
|
|
125
|
+
};
|
|
126
|
+
visit(program.sourceFile);
|
|
127
|
+
if (candidates.length === 0)
|
|
128
|
+
return result;
|
|
129
|
+
const edits = candidates.map(({ node, chain }) => {
|
|
130
|
+
const base = result.slice(chain.base.getStart(program.sourceFile), chain.base.end);
|
|
131
|
+
const modifiers = chain.calls.map(({ name, node: call }) => {
|
|
132
|
+
const argumentsSource = call.arguments.length === 0 && (name === "padding" || name === "margin")
|
|
133
|
+
? "0"
|
|
134
|
+
: call.arguments.map(argument => result.slice(argument.getStart(program.sourceFile), argument.end)).join(", ");
|
|
135
|
+
return `{ name: ${JSON.stringify(name)}, arguments: [${argumentsSource}] }`;
|
|
136
|
+
}).join(", ");
|
|
137
|
+
return {
|
|
138
|
+
start: node.getStart(program.sourceFile),
|
|
139
|
+
end: node.end,
|
|
140
|
+
replacement: `modifiedContent(${base}, [${modifiers}])`,
|
|
141
|
+
};
|
|
142
|
+
}).sort((left, right) => right.start - left.start);
|
|
143
|
+
for (const edit of edits)
|
|
144
|
+
result = result.slice(0, edit.start) + edit.replacement + result.slice(edit.end);
|
|
145
|
+
if (result === source)
|
|
146
|
+
return result;
|
|
147
|
+
source = result;
|
|
148
|
+
}
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
export function lowerStaticImportedCalls(source, fileName) {
|
|
152
|
+
const syntax = ts.createSourceFile("vune-imports.ts", source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
153
|
+
const importedNames = new Set();
|
|
154
|
+
for (const statement of syntax.statements) {
|
|
155
|
+
if (!ts.isImportDeclaration(statement) || !statement.importClause)
|
|
156
|
+
continue;
|
|
157
|
+
if (statement.importClause.name)
|
|
158
|
+
importedNames.add(statement.importClause.name.text);
|
|
159
|
+
const bindings = statement.importClause.namedBindings;
|
|
160
|
+
if (bindings && ts.isNamedImports(bindings)) {
|
|
161
|
+
for (const element of bindings.elements)
|
|
162
|
+
importedNames.add(element.name.text);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!Array.from(importedNames).some(name => new RegExp(`\\b${name}\\s*\\(`).test(source)))
|
|
166
|
+
return source;
|
|
167
|
+
const program = createVuneTypeScriptProgram(source, fileName);
|
|
168
|
+
if (!program)
|
|
169
|
+
return source;
|
|
170
|
+
const { sourceFile, checker } = program;
|
|
171
|
+
const hasRestParameter = (signature) => signature.parameters.some(parameter => (parameter.declarations?.some(declaration => ts.isParameter(declaration) && declaration.dotDotDotToken) ?? false));
|
|
172
|
+
const candidates = new Map();
|
|
173
|
+
const visit = (node) => {
|
|
174
|
+
if (ts.isCallExpression(node) && ts.isIdentifier(node.expression)) {
|
|
175
|
+
const type = checker.getTypeAtLocation(node.expression);
|
|
176
|
+
const viewType = checker.getPropertyOfType(type, "viewType");
|
|
177
|
+
const signatures = checker.getSignaturesOfType(type, ts.SignatureKind.Call);
|
|
178
|
+
const resolved = checker.getResolvedSignature(node);
|
|
179
|
+
const initializerIndex = resolved
|
|
180
|
+
? signatures.findIndex(signature => signature === resolved || signature.declaration === resolved.declaration)
|
|
181
|
+
: -1;
|
|
182
|
+
const selected = initializerIndex < 0 ? undefined : signatures[initializerIndex];
|
|
183
|
+
if (viewType && selected && !hasRestParameter(selected)) {
|
|
184
|
+
candidates.set(node, initializerIndex);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
ts.forEachChild(node, visit);
|
|
188
|
+
};
|
|
189
|
+
visit(sourceFile);
|
|
190
|
+
if (candidates.size === 0)
|
|
191
|
+
return source;
|
|
192
|
+
const ordered = [...candidates.keys()].sort((left, right) => left.getStart(sourceFile) - right.getStart(sourceFile) || right.end - left.end);
|
|
193
|
+
const children = new Map();
|
|
194
|
+
const stack = [];
|
|
195
|
+
for (const candidate of ordered) {
|
|
196
|
+
while (stack.length > 0 && candidate.getStart(sourceFile) >= stack[stack.length - 1].end)
|
|
197
|
+
stack.pop();
|
|
198
|
+
const parent = stack[stack.length - 1];
|
|
199
|
+
const siblings = children.get(parent) ?? [];
|
|
200
|
+
siblings.push(candidate);
|
|
201
|
+
children.set(parent, siblings);
|
|
202
|
+
stack.push(candidate);
|
|
203
|
+
}
|
|
204
|
+
const replacements = new Map();
|
|
205
|
+
const renderCandidate = (candidate) => {
|
|
206
|
+
const cached = replacements.get(candidate);
|
|
207
|
+
if (cached)
|
|
208
|
+
return cached;
|
|
209
|
+
const argumentsSource = candidate.arguments.map(argument => {
|
|
210
|
+
let rendered = source.slice(argument.getStart(sourceFile), argument.end);
|
|
211
|
+
const nested = (children.get(candidate) ?? [])
|
|
212
|
+
.filter(child => child.getStart(sourceFile) >= argument.getStart(sourceFile) && child.end <= argument.end)
|
|
213
|
+
.sort((left, right) => right.getStart(sourceFile) - left.getStart(sourceFile));
|
|
214
|
+
for (const child of nested) {
|
|
215
|
+
const replacement = renderCandidate(child);
|
|
216
|
+
const start = child.getStart(sourceFile) - argument.getStart(sourceFile);
|
|
217
|
+
const end = child.end - argument.getStart(sourceFile);
|
|
218
|
+
rendered = rendered.slice(0, start) + replacement + rendered.slice(end);
|
|
219
|
+
}
|
|
220
|
+
return rendered;
|
|
221
|
+
}).join(", ");
|
|
222
|
+
const replacement = `${candidate.expression.getText(sourceFile)}.viewType.createNodeSpecialized(${candidates.get(candidate)}, [${argumentsSource}])`;
|
|
223
|
+
replacements.set(candidate, replacement);
|
|
224
|
+
return replacement;
|
|
225
|
+
};
|
|
226
|
+
let result = source;
|
|
227
|
+
for (const candidate of (children.get(undefined) ?? []).sort((left, right) => right.getStart(sourceFile) - left.getStart(sourceFile))) {
|
|
228
|
+
const start = candidate.getStart(sourceFile);
|
|
229
|
+
result = result.slice(0, start) + renderCandidate(candidate) + result.slice(candidate.end);
|
|
230
|
+
}
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=specialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specialization.js","sourceRoot":"","sources":["../src/specialization.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { VuneSemanticModel } from "./semantic.js";
|
|
2
|
+
export interface VuneSourceMap {
|
|
3
|
+
readonly version: 3;
|
|
4
|
+
readonly file?: string;
|
|
5
|
+
readonly sources: readonly string[];
|
|
6
|
+
readonly sourcesContent: readonly string[];
|
|
7
|
+
readonly names: readonly string[];
|
|
8
|
+
readonly mappings: string;
|
|
9
|
+
readonly x_vune?: {
|
|
10
|
+
readonly lineMappings: readonly {
|
|
11
|
+
readonly line: number;
|
|
12
|
+
readonly column: number;
|
|
13
|
+
readonly generatedColumn: number;
|
|
14
|
+
}[];
|
|
15
|
+
readonly segments: readonly (readonly {
|
|
16
|
+
readonly line: number;
|
|
17
|
+
readonly column: number;
|
|
18
|
+
readonly generatedColumn: number;
|
|
19
|
+
}[])[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface VuneTransformResult {
|
|
23
|
+
readonly code: string;
|
|
24
|
+
readonly map: VuneSourceMap;
|
|
25
|
+
}
|
|
26
|
+
export interface VuneDiagnostic {
|
|
27
|
+
readonly severity: "error" | "warning";
|
|
28
|
+
readonly code: "VUNE_SYNTAX" | "VUNE_INITIALIZER" | "VUNE_TYPESCRIPT" | "VUNE_HTML_ATTRIBUTE" | "VUNE_HTML_VALUE" | "VUNE_STATE_SCOPE";
|
|
29
|
+
readonly message: string;
|
|
30
|
+
readonly line: number;
|
|
31
|
+
readonly column: number;
|
|
32
|
+
}
|
|
33
|
+
export interface VuneLanguageService {
|
|
34
|
+
readonly format: (source: string) => string;
|
|
35
|
+
readonly diagnose: (source: string) => readonly VuneDiagnostic[];
|
|
36
|
+
readonly transform: (source: string, id?: string) => VuneTransformResult;
|
|
37
|
+
readonly positionAt: (source: string, offset: number) => {
|
|
38
|
+
line: number;
|
|
39
|
+
column: number;
|
|
40
|
+
};
|
|
41
|
+
readonly offsetAt: (source: string, position: {
|
|
42
|
+
line: number;
|
|
43
|
+
column: number;
|
|
44
|
+
}) => number;
|
|
45
|
+
readonly semantic: (source: string, fileName?: string) => VuneSemanticModel;
|
|
46
|
+
}
|
|
47
|
+
export interface VuneVitePluginOptions {
|
|
48
|
+
readonly include?: RegExp;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,YAAY,EAAE,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QACtH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC,EAAE,CAAA;KAChI,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;IACtI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,cAAc,EAAE,CAAA;IAChE,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAA;IACxE,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACzF,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACzF,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAA;CAC5E;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B"}
|