getcompetitive 4.0.0 → 4.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/README.md +14 -3
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/analyze.js +1 -1
- package/dist/tools/analyze.js.map +1 -1
- package/dist/tools/doctor.js +249 -0
- package/dist/tools/doctor.js.map +1 -0
- package/dist/tools/matchup.js +434 -0
- package/dist/tools/matchup.js.map +1 -0
- package/dist/tools/meta.js +17 -5
- package/dist/tools/meta.js.map +1 -1
- package/dist/tools/regulations.js +11 -0
- package/dist/tools/regulations.js.map +1 -1
- package/dist/tools/team.js +412 -0
- package/dist/tools/team.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regulations.js","sourceRoot":"","sources":["../../src/tools/regulations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"regulations.js","sourceRoot":"","sources":["../../src/tools/regulations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,GAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/D,SAAS,SAAS,CAAC,GAAkB;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,MAAM;QACzC,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;QAC3C,+EAA+E;QAC/E,6EAA6E;QAC7E,4EAA4E;QAC5E,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACnE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC3E,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;SACrC,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAClF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAC/E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACpF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACtF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,CACP,oNAAoN,CACrN;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;CACvG,CAAC;AAEF,SAAS,MAAM,CAAC,GAAkB;IAChC,OAAO;QACL,GAAG,SAAS,CAAC,GAAG,CAAC;QACjB,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,UAAU;QACtC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK;QAC5B,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS;QACpC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM;QAC9B,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM;QAC9B,OAAO,EAAE;YACP,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa;YAC1C,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU;YACpC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW;YACtC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc;SAC7C;QACD,aAAa,EAAE;YACb,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;YAClC,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,SAAS;YACtC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;SACnC;QACD,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,2gBAA2gB;QAC7gB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,EAAE;QACf,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACpF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mFAAmF,CAAC;YAChG,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;iBACxC,QAAQ,CAAC,mFAAmF,CAAC;YAChG,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,mJAAmJ,CAAC;SACjK;KACF,EACD,IAAI,CAAC,KAAK,IAAI,EAAE;QACd,OAAO,EAAE,CAAC;YACR,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,EAAE,IAAI,IAAI;YAC/E,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;YACpC,IAAI,EAAE,sKAAsK;SAC7K,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,yvBAAyvB;QAC3vB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,mJAAmJ,CACpJ;YACH,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,oSAAoS,CACrS;SACJ;QACD,YAAY,EAAE;YACZ,GAAG,uBAAuB;YAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YAC1F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACjE,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,CAAC,+EAA+E,CAAC;YAC5F,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC;gBACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBACjE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;gBAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBAC7D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;aACzE,CAAC;iBACD,QAAQ,CAAC,qBAAqB,CAAC;YAClC,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,gEAAgE,CAAC;YAC7E,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,aAAa,EAAE,CAAC;qBACb,OAAO,EAAE;qBACT,QAAQ,CAAC,oEAAoE,CAAC;gBACjF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;gBACzF,WAAW,EAAE,CAAC;qBACX,OAAO,EAAE;qBACT,QAAQ,CAAC,oEAAoE,CAAC;gBACjF,cAAc,EAAE,CAAC;qBACd,OAAO,EAAE;qBACT,QAAQ,CAAC,0GAA0G,CAAC;aACxH,CAAC;iBACD,QAAQ,CAAC,kDAAkD,CAAC;YAC/D,aAAa,EAAE,CAAC;iBACb,MAAM,CAAC;gBACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;gBAC7E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;gBACzF,OAAO,EAAE,CAAC;qBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,EAAE;qBACV,QAAQ,CAAC,6JAA6J,CAAC;aAC3K,CAAC;iBACD,QAAQ,CAAC,uBAAuB,CAAC;YACpC,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,0KAA0K,CAAC;YACvL,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YAC7E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SAC7E;KACF,EACD,IAAI,CAAC,KAAK,EAAE,IAAqD,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,UAAU,iBAAiB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5G,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;QAC/E,+EAA+E;QAC/E,4EAA4E;QAC5E,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,g5BAAg5B;QACl5B,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,mJAAmJ,CACpJ;YACH,IAAI,EAAE,CAAC;iBACJ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;qBACP,MAAM,EAAE;qBACR,QAAQ,CACP,sJAAsJ,CACvJ;gBACH,IAAI,EAAE,CAAC;qBACJ,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CACP,oHAAoH,CACrH;gBACH,KAAK,EAAE,CAAC;qBACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,EAAE;qBACV,QAAQ,CACP,kIAAkI,CACnI;aACJ,CAAC,CACH;iBACA,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,iHAAiH,CAClH;SACJ;QACD,YAAY,EAAE;YACZ,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CAAC,kFAAkF,CAAC;YAC/F,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;iBACrC,QAAQ,CAAC,2CAA2C,CAAC;YACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACtE,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,QAAQ,CAAC,sIAAsI,CAAC;YACnJ,UAAU,EAAE,CAAC;iBACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,qLAAqL,CAAC;YAClM,OAAO,EAAE,CAAC;iBACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;qBACP,MAAM,EAAE;qBACR,QAAQ,CAAC,6EAA6E,CAAC;gBAC1F,WAAW,EAAE,CAAC;qBACX,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,6IAA6I,CAAC;gBAC1J,IAAI,EAAE,CAAC;qBACJ,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,iEAAiE,CAAC;gBAC9E,SAAS,EAAE,CAAC;qBACT,OAAO,EAAE;qBACT,QAAQ,EAAE;qBACV,QAAQ,CAAC,gFAAgF,CAAC;gBAC7F,KAAK,EAAE,CAAC;qBACL,OAAO,EAAE;qBACT,QAAQ,CAAC,iFAAiF,CAAC;gBAC9F,WAAW,EAAE,CAAC;qBACX,OAAO,EAAE;qBACT,QAAQ,CAAC,oGAAoG,CAAC;gBACjH,KAAK,EAAE,CAAC;qBACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;oBACP,IAAI,EAAE,CAAC;yBACJ,MAAM,EAAE;yBACR,QAAQ,CAAC,uEAAuE,CAAC;oBACpF,KAAK,EAAE,CAAC;yBACL,OAAO,EAAE;yBACT,QAAQ,CAAC,qFAAqF,CAAC;oBAClG,IAAI,EAAE,CAAC;yBACJ,MAAM,EAAE;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,oFAAoF,CAAC;iBAClG,CAAC,CACH;qBACA,QAAQ,EAAE;qBACV,QAAQ,CAAC,6GAA6G,CAAC;aAC3H,CAAC,CACH;iBACA,QAAQ,CAAC,4DAA4D,CAAC;YACzE,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC;gBACN,OAAO,EAAE,CAAC;qBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,CAAC,iEAAiE,CAAC;gBAC9E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;aAC1F,CAAC;iBACD,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;KACF,EACD,IAAI,CAAC,KAAK,EAAE,IAA0F,EAAE,EAAE;QACxG,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,UAAU,iBAAiB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5G,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC,CAAC,mBAAmB;QACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC,CAAC,mBAAmB;QAClE,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjF,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAEzE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC;YACxE,CAAC;YAED,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC,2CAA2C,QAAQ,IAAI,CAAC,CAAC;YACpI,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBACnD,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,UAAU,GAAsD,EAAE,CAAC;YACzE,IAAI,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACrC,uEAAuE;gBACvE,uEAAuE;gBACvE,wEAAwE;gBACxE,kBAAkB;gBAClB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5B,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;wBACd,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;wBACvD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;oBACpE,CAAC;yBAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAChC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC;wBACnF,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAC3E,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;gBAC5C,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACtE,KAAK;gBACL,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;gBACpD,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,iEAAiE,CAAC,CAAC;QACrH,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE/E,OAAO,EAAE,CAAC;YACR,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC1B,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;YAC9B,UAAU;YACV,OAAO;YACP,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,gDAAgD;aACvD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team import/export: turn pasted text into the canonical set shape every other
|
|
3
|
+
* tool consumes, and back. One object per member — the shape `analyze_team`,
|
|
4
|
+
* `diagnose_team`, `prepare_matchup`, `check_legality` and the calc tools take.
|
|
5
|
+
*
|
|
6
|
+
* `parse_team` understands:
|
|
7
|
+
* - Showdown/Pokepaste blocks (blank-line separated, field lines)
|
|
8
|
+
* - the paste this server emits (`get_set.paste`, Champions stat points)
|
|
9
|
+
* - one-liners: "Garchomp @ Choice Scarf | Rough Skin | Jolly | 252 Atk / 252 Spe | Earthquake / Dragon Claw"
|
|
10
|
+
*
|
|
11
|
+
* Parsing is forgiving by design: a paste is worth importing even when one name
|
|
12
|
+
* needs fixing, so unknown species, moves, items and abilities become warnings
|
|
13
|
+
* that carry the supplied spelling, never errors.
|
|
14
|
+
*/
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { getDex, NATURES, finalStat, resolveEvs } from '../dex.js';
|
|
17
|
+
import { getRegulationSet } from '../regulations.js';
|
|
18
|
+
import { ok, wrap, requireExists, READ_ONLY_ANNOTATIONS } from '../result.js';
|
|
19
|
+
const statToken = {
|
|
20
|
+
hp: 'hp',
|
|
21
|
+
atk: 'atk', attack: 'atk',
|
|
22
|
+
def: 'def', defense: 'def',
|
|
23
|
+
spa: 'spa', spatk: 'spa', spattack: 'spa',
|
|
24
|
+
spd: 'spd', spdef: 'spd', spdefense: 'spd',
|
|
25
|
+
spe: 'spe', speed: 'spe',
|
|
26
|
+
};
|
|
27
|
+
const STAT_LABEL = { hp: 'HP', atk: 'Atk', def: 'Def', spa: 'SpA', spd: 'SpD', spe: 'Spe' };
|
|
28
|
+
const SPREAD_STATS = ['hp', 'atk', 'def', 'spa', 'spd', 'spe'];
|
|
29
|
+
const NATURE_KEYS = new Set(NATURES.map((n) => n.toLowerCase()));
|
|
30
|
+
/** Split "252 HP / 252 Atk / 4 SpD" into a stat-keyed map; null on a bad token. */
|
|
31
|
+
function parseSpread(text) {
|
|
32
|
+
const map = {};
|
|
33
|
+
for (const m of text.matchAll(/(\d+)\s*([A-Za-z]+)/g)) {
|
|
34
|
+
const token = String(m[2]).toLowerCase();
|
|
35
|
+
const stat = statToken[token];
|
|
36
|
+
if (!stat)
|
|
37
|
+
return { map, bad: String(m[2]) };
|
|
38
|
+
map[stat] = (map[stat] ?? 0) + Number(m[1]);
|
|
39
|
+
}
|
|
40
|
+
return { map, bad: null };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve one spread line to a scale. The server's own pastes write Champions
|
|
44
|
+
* points (0-32, total 66) under the `EVs:` label, while standard Showdown pastes
|
|
45
|
+
* write 0-252 EVs there — so the label alone is not decisive. The rule: an
|
|
46
|
+
* explicit SP label is always points; otherwise values that all fit 0-32 and
|
|
47
|
+
* total at most 66 are points, anything else is EVs.
|
|
48
|
+
*/
|
|
49
|
+
function parseSpreadLine(text, label, warnings) {
|
|
50
|
+
const { map, bad } = parseSpread(text);
|
|
51
|
+
if (bad) {
|
|
52
|
+
warnings.push(`unknown stat token "${bad}" in "${text.trim()}"`);
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
const values = Object.values(map);
|
|
56
|
+
const total = values.reduce((a, b) => a + b, 0);
|
|
57
|
+
const isPoints = label === 'sp' || (label === 'evs' && values.every((v) => v <= 32) && total <= 66);
|
|
58
|
+
if (isPoints) {
|
|
59
|
+
if (total > 66)
|
|
60
|
+
warnings.push(`stat point total ${total} exceeds 66.`);
|
|
61
|
+
return { championsPoints: map };
|
|
62
|
+
}
|
|
63
|
+
if (total > 510)
|
|
64
|
+
warnings.push(`EV total ${total} exceeds 510.`);
|
|
65
|
+
if (values.some((v) => v % 4 !== 0))
|
|
66
|
+
warnings.push('EVs are not all multiples of 4.');
|
|
67
|
+
return { evs: map };
|
|
68
|
+
}
|
|
69
|
+
/** Parse one Showdown-format block: "Species @ Item", field lines, "- Move" lines. */
|
|
70
|
+
function parseBlock(block, warnings) {
|
|
71
|
+
const lines = block.split('\n').map((l) => l.trim());
|
|
72
|
+
const head = lines[0] ?? '';
|
|
73
|
+
if (!head)
|
|
74
|
+
return null;
|
|
75
|
+
const [speciesRaw, ...itemParts] = head.split('@');
|
|
76
|
+
const speciesToken = speciesRaw.trim().replace(/\s*\([MF]\)$/, '');
|
|
77
|
+
const set = { species: speciesToken };
|
|
78
|
+
const dex = getDex(9);
|
|
79
|
+
const sp = dex.species.get(speciesToken);
|
|
80
|
+
if (sp.exists)
|
|
81
|
+
set.species = sp.name;
|
|
82
|
+
else
|
|
83
|
+
warnings.push(`unknown species "${speciesToken}"`);
|
|
84
|
+
if (itemParts.length) {
|
|
85
|
+
const itemToken = itemParts.join('@').trim();
|
|
86
|
+
const it = dex.items.get(itemToken);
|
|
87
|
+
set.item = it.exists ? it.name : itemToken;
|
|
88
|
+
if (!it.exists)
|
|
89
|
+
warnings.push(`unknown item "${itemToken}"`);
|
|
90
|
+
}
|
|
91
|
+
for (const line of lines.slice(1)) {
|
|
92
|
+
if (!line)
|
|
93
|
+
continue;
|
|
94
|
+
const mv = line.match(/^-\s*(.+)$/);
|
|
95
|
+
if (mv) {
|
|
96
|
+
const m = dex.moves.get(mv[1]);
|
|
97
|
+
const name = m.exists ? m.name : mv[1];
|
|
98
|
+
set.moves = [...(set.moves ?? []), name];
|
|
99
|
+
if (!m.exists)
|
|
100
|
+
warnings.push(`unknown move "${mv[1]}"`);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const ability = line.match(/^Ability:\s*(.+)$/i);
|
|
104
|
+
if (ability) {
|
|
105
|
+
const a = dex.abilities.get(ability[1]);
|
|
106
|
+
set.ability = a.exists ? a.name : ability[1];
|
|
107
|
+
if (!a.exists)
|
|
108
|
+
warnings.push(`unknown ability "${ability[1]}"`);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const level = line.match(/^Level:\s*(\d+)$/i);
|
|
112
|
+
if (level) {
|
|
113
|
+
set.level = Number(level[1]);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const nature = line.match(/^(.+?)\s+Nature$/i);
|
|
117
|
+
if (nature) {
|
|
118
|
+
const key = nature[1].toLowerCase();
|
|
119
|
+
const canonical = NATURES.find((n) => n.toLowerCase() === key);
|
|
120
|
+
set.nature = canonical ?? nature[1];
|
|
121
|
+
if (!canonical)
|
|
122
|
+
warnings.push(`unknown nature "${nature[1]}"`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const ivs = line.match(/^IVs:\s*(.+)$/i);
|
|
126
|
+
if (ivs) {
|
|
127
|
+
const { map, bad } = parseSpread(ivs[1]);
|
|
128
|
+
if (bad)
|
|
129
|
+
warnings.push(`unknown stat token "${bad}" in IVs`);
|
|
130
|
+
else
|
|
131
|
+
set.ivs = map;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const evs = line.match(/^EVs:\s*(.+)$/i);
|
|
135
|
+
if (evs) {
|
|
136
|
+
Object.assign(set, parseSpreadLine(evs[1], 'evs', warnings));
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const points = line.match(/^(?:SP|Stat Points):\s*(.+)$/i);
|
|
140
|
+
if (points) {
|
|
141
|
+
Object.assign(set, parseSpreadLine(points[1], 'sp', warnings));
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const tera = line.match(/^Tera Type:\s*(.+)$/i);
|
|
145
|
+
if (tera) {
|
|
146
|
+
set.teraType = tera[1];
|
|
147
|
+
warnings.push('Tera Type is not part of Champions; carried verbatim but ignored by the battle math.');
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (/^(Shiny|OT|TID|SID|Happiness|Friendship|Language):/i.test(line))
|
|
151
|
+
continue;
|
|
152
|
+
warnings.push(`unrecognized line "${line}"`);
|
|
153
|
+
}
|
|
154
|
+
return set;
|
|
155
|
+
}
|
|
156
|
+
/** Parse one shorthand line: "Garchomp @ Choice Scarf | Rough Skin | Jolly | 252 Atk / 252 Spe | EQ / Dragon Claw". */
|
|
157
|
+
function parseInline(line, warnings) {
|
|
158
|
+
const parts = line.split('|').map((s) => s.trim()).filter(Boolean);
|
|
159
|
+
if (!parts.length)
|
|
160
|
+
return null;
|
|
161
|
+
const [speciesRaw, ...itemParts] = parts[0].split('@');
|
|
162
|
+
const speciesToken = speciesRaw.trim().replace(/\s*\([MF]\)$/, '');
|
|
163
|
+
const set = { species: speciesToken };
|
|
164
|
+
const dex = getDex(9);
|
|
165
|
+
const sp = dex.species.get(speciesToken);
|
|
166
|
+
if (sp.exists)
|
|
167
|
+
set.species = sp.name;
|
|
168
|
+
else
|
|
169
|
+
warnings.push(`unknown species "${speciesToken}"`);
|
|
170
|
+
if (itemParts.length) {
|
|
171
|
+
const itemToken = itemParts.join('@').trim();
|
|
172
|
+
const it = dex.items.get(itemToken);
|
|
173
|
+
set.item = it.exists ? it.name : itemToken;
|
|
174
|
+
if (!it.exists)
|
|
175
|
+
warnings.push(`unknown item "${itemToken}"`);
|
|
176
|
+
}
|
|
177
|
+
for (const tok of parts.slice(1)) {
|
|
178
|
+
if (/^Ability:\s*/i.test(tok)) {
|
|
179
|
+
const raw = tok.replace(/^Ability:\s*/i, '');
|
|
180
|
+
const a = dex.abilities.get(raw);
|
|
181
|
+
set.ability = a.exists ? a.name : raw;
|
|
182
|
+
if (!a.exists)
|
|
183
|
+
warnings.push(`unknown ability "${raw}"`);
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (/^Tera Type:\s*/i.test(tok)) {
|
|
187
|
+
set.teraType = tok.replace(/^Tera Type:\s*/i, '');
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (/^Nature$/i.test(tok))
|
|
191
|
+
continue;
|
|
192
|
+
if (NATURE_KEYS.has(tok.toLowerCase())) {
|
|
193
|
+
set.nature = NATURES.find((n) => n.toLowerCase() === tok.toLowerCase()) ?? tok;
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
const a = dex.abilities.get(tok);
|
|
197
|
+
if (a.exists && !set.ability) {
|
|
198
|
+
set.ability = a.name;
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
if (/\d+\s*[A-Za-z]/.test(tok)) {
|
|
202
|
+
const { map, bad } = parseSpread(tok);
|
|
203
|
+
if (bad) {
|
|
204
|
+
warnings.push(`unknown stat token "${bad}" in "${tok}"`);
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
const values = Object.values(map);
|
|
208
|
+
const total = values.reduce((x, y) => x + y, 0);
|
|
209
|
+
Object.assign(set, values.every((v) => v <= 32) && total <= 66 ? { championsPoints: map } : { evs: map });
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
// Remaining: one move or a slash/comma-separated move list.
|
|
213
|
+
for (const raw of tok.split(/[/,]/).map((s) => s.trim()).filter(Boolean)) {
|
|
214
|
+
const m = dex.moves.get(raw);
|
|
215
|
+
const name = m.exists ? m.name : raw;
|
|
216
|
+
set.moves = [...(set.moves ?? []), name];
|
|
217
|
+
if (!m.exists)
|
|
218
|
+
warnings.push(`unknown move "${raw}"`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return set;
|
|
222
|
+
}
|
|
223
|
+
function looksLikeBlock(block) {
|
|
224
|
+
const lines = block.split('\n').map((l) => l.trim()).filter(Boolean);
|
|
225
|
+
if (lines.length < 2)
|
|
226
|
+
return false;
|
|
227
|
+
return (lines[0].includes('@') ||
|
|
228
|
+
/^(Ability|Level|IVs|EVs|SP|Stat Points|Tera Type):/i.test(lines[1]) ||
|
|
229
|
+
/^.+Nature$/i.test(lines[1]) ||
|
|
230
|
+
lines[1].startsWith('-'));
|
|
231
|
+
}
|
|
232
|
+
/** Parse pasted text into canonical sets; everything questionable becomes a warning. */
|
|
233
|
+
export function parseTeamText(text, regulation) {
|
|
234
|
+
const warnings = [];
|
|
235
|
+
const team = [];
|
|
236
|
+
const blocks = text.split(/\n\s*\n/);
|
|
237
|
+
for (const block of blocks) {
|
|
238
|
+
if (!block.trim())
|
|
239
|
+
continue;
|
|
240
|
+
const set = looksLikeBlock(block) ? parseBlock(block, warnings) : parseInline(block, warnings);
|
|
241
|
+
if (set)
|
|
242
|
+
team.push(set);
|
|
243
|
+
}
|
|
244
|
+
if (regulation) {
|
|
245
|
+
const reg = getRegulationSet(regulation);
|
|
246
|
+
if (!reg)
|
|
247
|
+
warnings.push(`unknown regulation "${regulation}" — no legality check was run.`);
|
|
248
|
+
else {
|
|
249
|
+
const dex = getDex(9);
|
|
250
|
+
const eligible = new Set(reg.eligibleSpecies.map((s) => s.toLowerCase().replace(/[^a-z0-9]/g, '')));
|
|
251
|
+
team.forEach((s) => {
|
|
252
|
+
const sp = dex.species.get(s.species);
|
|
253
|
+
const baseId = sp.exists ? (sp.baseSpecies || sp.name).toLowerCase().replace(/[^a-z0-9]/g, '') : '';
|
|
254
|
+
// Unknown species were already warned once, when the block was parsed.
|
|
255
|
+
if (sp.exists && !eligible.has(baseId)) {
|
|
256
|
+
warnings.push(`${s.species} is not in the ${reg.name} legal roster.`);
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return { team, warnings };
|
|
262
|
+
}
|
|
263
|
+
/** One set back to paste form; spreads come back in the scale they were given. */
|
|
264
|
+
function formatOne(set) {
|
|
265
|
+
const lines = [set.item ? `${set.species} @ ${set.item}` : set.species];
|
|
266
|
+
if (set.ability)
|
|
267
|
+
lines.push(`Ability: ${set.ability}`);
|
|
268
|
+
if (set.level)
|
|
269
|
+
lines.push(`Level: ${set.level}`);
|
|
270
|
+
if (set.nature)
|
|
271
|
+
lines.push(`${set.nature} Nature`);
|
|
272
|
+
if (set.teraType)
|
|
273
|
+
lines.push(`Tera Type: ${set.teraType}`);
|
|
274
|
+
if (set.ivs)
|
|
275
|
+
lines.push(`IVs: ${SPREAD_STATS.filter((s) => set.ivs[s]).map((s) => `${set.ivs[s]} ${STAT_LABEL[s]}`).join(' / ')}`);
|
|
276
|
+
const spread = set.evs ?? set.championsPoints;
|
|
277
|
+
if (spread) {
|
|
278
|
+
// Same label and scale the server's own `get_set` pastes use.
|
|
279
|
+
lines.push(`EVs: ${SPREAD_STATS.filter((s) => spread[s]).map((s) => `${spread[s]} ${STAT_LABEL[s]}`).join(' / ')}`);
|
|
280
|
+
}
|
|
281
|
+
for (const m of set.moves ?? [])
|
|
282
|
+
lines.push(`- ${m}`);
|
|
283
|
+
return lines.join('\n');
|
|
284
|
+
}
|
|
285
|
+
export const parsedSetSchema = z.object({
|
|
286
|
+
species: z
|
|
287
|
+
.string()
|
|
288
|
+
.describe('Species as the dataset resolves it, e.g. "Rotom-Wash", "Salamence-Mega"; the spelling supplied is kept when the species is unknown.'),
|
|
289
|
+
item: z.string().optional().describe('Held item, canonical spelling when known.'),
|
|
290
|
+
ability: z.string().optional().describe('Ability, canonical spelling when known.'),
|
|
291
|
+
nature: z.string().optional().describe('Nature as supplied.'),
|
|
292
|
+
level: z.number().int().optional().describe('Level when the paste stated one; Champions always plays at 50.'),
|
|
293
|
+
ivs: z.record(z.string(), z.number()).optional().describe('IVs from an IVs line, keyed by stat id.'),
|
|
294
|
+
evs: z
|
|
295
|
+
.record(z.string(), z.number())
|
|
296
|
+
.optional()
|
|
297
|
+
.describe('EVs keyed by stat id, 0-252; present when the spread was parsed as EV-scale.'),
|
|
298
|
+
championsPoints: z
|
|
299
|
+
.record(z.string(), z.number())
|
|
300
|
+
.optional()
|
|
301
|
+
.describe('Pok\u00e9mon Champions stat points keyed by stat id, 0-32 each, 66 total; present when the spread was parsed as point-scale — values that all fit 0-32 and total at most 66, or an explicit SP line.'),
|
|
302
|
+
teraType: z.string().optional().describe('Tera Type carried verbatim from a Showdown paste; Champions math ignores it.'),
|
|
303
|
+
moves: z.array(z.string()).optional().describe('Moves in paste order, canonical spelling when known.'),
|
|
304
|
+
});
|
|
305
|
+
const parsedSetOutput = z.object({
|
|
306
|
+
...parsedSetSchema.shape,
|
|
307
|
+
});
|
|
308
|
+
/**
|
|
309
|
+
* Resolve parsed sets the way the analysis tools need them: real types, resolved
|
|
310
|
+
* moves, and level-50 Speed from nature, spread and item (Choice Scarf). Unknown
|
|
311
|
+
* species, items and natures throw; unknown moves are collected, not fatal.
|
|
312
|
+
*/
|
|
313
|
+
export function resolveMembers(entries) {
|
|
314
|
+
const dex = getDex(9);
|
|
315
|
+
const members = [];
|
|
316
|
+
const unknownMoves = [];
|
|
317
|
+
for (const entry of entries) {
|
|
318
|
+
const sp = dex.species.get(entry.species);
|
|
319
|
+
requireExists(sp, 'Pokemon species', entry.species);
|
|
320
|
+
const moves = [];
|
|
321
|
+
const moveTypes = [];
|
|
322
|
+
for (const mv of entry.moves ?? []) {
|
|
323
|
+
const m = dex.moves.get(mv);
|
|
324
|
+
if (m.exists) {
|
|
325
|
+
moves.push(m.name);
|
|
326
|
+
moveTypes.push(m.type);
|
|
327
|
+
}
|
|
328
|
+
else
|
|
329
|
+
unknownMoves.push(mv);
|
|
330
|
+
}
|
|
331
|
+
const nature = entry.nature ?? 'Serious';
|
|
332
|
+
if (entry.nature)
|
|
333
|
+
requireExists(dex.natures.get(entry.nature), 'nature', entry.nature);
|
|
334
|
+
const item = entry.item ? dex.items.get(entry.item) : undefined;
|
|
335
|
+
if (item && !item.exists)
|
|
336
|
+
throw new Error(`Unknown item "${entry.item}".`);
|
|
337
|
+
const evs = resolveEvs(entry.evs, entry.championsPoints);
|
|
338
|
+
const baseSpeed = finalStat(9, 'spe', sp.baseStats.spe, 31, evs.spe ?? 0, 50, nature);
|
|
339
|
+
members.push({
|
|
340
|
+
species: sp.name,
|
|
341
|
+
baseSpecies: sp.baseSpecies || sp.name,
|
|
342
|
+
types: [...sp.types],
|
|
343
|
+
baseSpe: sp.baseStats.spe,
|
|
344
|
+
speed: item?.name === 'Choice Scarf' ? Math.floor(baseSpeed * 1.5) : baseSpeed,
|
|
345
|
+
moveTypes,
|
|
346
|
+
moves,
|
|
347
|
+
item: item?.name,
|
|
348
|
+
ability: entry.ability,
|
|
349
|
+
set: entry,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
return { members, unknownMoves };
|
|
353
|
+
}
|
|
354
|
+
export function registerTeamTools(server) {
|
|
355
|
+
server.registerTool('parse_team', {
|
|
356
|
+
title: 'Parse a pasted team',
|
|
357
|
+
description: 'Turn pasted team text into the canonical structured form every other tool on this server consumes, in one call instead of six hand-built JSON objects. Accepts Showdown/Pokepaste blocks separated by blank lines, the paste `get_set` returns, and one-liners like "Garchomp @ Choice Scarf | Rough Skin | Jolly | 252 Atk / 252 Spe | Earthquake / Dragon Claw". Field lines understood: `Ability`, `Level`, `Nature`, `IVs`, `EVs` (0-252), `SP`/`Stat Points` (Champions 0-32), `Tera Type`, and `- Move` lines. An `EVs:` line whose values all fit 0-32 and total at most 66 is read as Champions stat points, matching the server\u2019s own pastes. Species, moves, items and abilities resolve case- and punctuation-insensitively; anything unknown or illegal becomes a `warnings` entry that carries the supplied spelling — a paste is worth importing even when one name needs fixing. Feed the returned `team` straight into `diagnose_team`, `prepare_matchup`, `analyze_team`, `check_legality`, or the calc tools; `format_team` turns it back into paste text. Read-only and offline.',
|
|
358
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
359
|
+
inputSchema: {
|
|
360
|
+
text: z
|
|
361
|
+
.string()
|
|
362
|
+
.describe('The team text: one Showdown-format block per Pok\u00e9mon, separated by blank lines, or one shorthand line per Pok\u00e9mon with pipe-separated fields.'),
|
|
363
|
+
regulation: z
|
|
364
|
+
.string()
|
|
365
|
+
.optional()
|
|
366
|
+
.describe('Optional regulation id (e.g. "m-c") to check species legality against; illegal species become warnings, the team is still returned.'),
|
|
367
|
+
},
|
|
368
|
+
outputSchema: {
|
|
369
|
+
team: z
|
|
370
|
+
.array(parsedSetOutput)
|
|
371
|
+
.describe('One canonical set per Pok\u00e9mon, in paste order — the shape `diagnose_team`, `prepare_matchup`, `analyze_team`, `check_legality` and the calc tools take.'),
|
|
372
|
+
warnings: z
|
|
373
|
+
.array(z.string())
|
|
374
|
+
.optional()
|
|
375
|
+
.describe('Everything the parser could not cleanly resolve: unknown species, moves, items, abilities or natures, illegal species when a regulation was given, and unrecognized lines; absent when the text parsed cleanly.'),
|
|
376
|
+
note: z
|
|
377
|
+
.string()
|
|
378
|
+
.describe('What the parser accepts and the spread-scale rule: an EVs line whose values all fit 0-32 and total at most 66 is Champions stat points, anything else is 0-252 EVs.'),
|
|
379
|
+
},
|
|
380
|
+
}, wrap(async (args) => {
|
|
381
|
+
const { team, warnings } = parseTeamText(args.text, args.regulation);
|
|
382
|
+
if (!team.length)
|
|
383
|
+
throw new Error('No Pok\u00e9mon found in the text: expected Showdown blocks or shorthand lines, e.g. "Garchomp @ Choice Scarf | Rough Skin | Jolly | 252 Atk / 252 Spe | Earthquake / Dragon Claw".');
|
|
384
|
+
return ok({
|
|
385
|
+
team,
|
|
386
|
+
...(warnings.length ? { warnings } : {}),
|
|
387
|
+
note: 'Parsed blocks and shorthand lines into the canonical set shape. Spread scale: an EVs line whose values all fit 0-32 and total at most 66 is Champions stat points (the server\u2019s own paste convention), anything else is 0-252 EVs; an explicit SP or Stat Points line is always points.',
|
|
388
|
+
});
|
|
389
|
+
}));
|
|
390
|
+
server.registerTool('format_team', {
|
|
391
|
+
title: 'Format a team as a paste',
|
|
392
|
+
description: 'Render a canonical team back into Showdown-format paste text, one block per member: `Species @ Item`, ability, level, nature, spread and `- Move` lines — ready to copy into a team builder, a paste host, or back into `parse_team`. Spreads come back in the scale they were given: 0-252 EVs for EV-scale sets, Champions stat points under the EVs label for point-scale sets, exactly like the `get_set` paste. Read-only and offline.',
|
|
393
|
+
annotations: READ_ONLY_ANNOTATIONS,
|
|
394
|
+
inputSchema: {
|
|
395
|
+
team: z
|
|
396
|
+
.array(parsedSetSchema)
|
|
397
|
+
.min(1)
|
|
398
|
+
.max(6)
|
|
399
|
+
.describe('The team to render, in the canonical shape `parse_team` and the analysis tools use: species with optional item, ability, nature, level, ivs, evs or championsPoints, teraType and moves.'),
|
|
400
|
+
},
|
|
401
|
+
outputSchema: {
|
|
402
|
+
paste: z.string().describe('The team as one Showdown-format paste, members separated by blank lines.'),
|
|
403
|
+
note: z.string().describe('The spread-scale convention: Champions point spreads keep their 0-32 values, EV spreads keep 0-252, so the paste round-trips through `parse_team`.'),
|
|
404
|
+
},
|
|
405
|
+
}, wrap(async (args) => {
|
|
406
|
+
return ok({
|
|
407
|
+
paste: args.team.map(formatOne).join('\n\n'),
|
|
408
|
+
note: 'Spreads keep the scale they were given (Champions points stay 0-32, EVs stay 0-252), so this paste round-trips through `parse_team` unchanged.',
|
|
409
|
+
});
|
|
410
|
+
}));
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/tools/team.ts"],"names":[],"mappings":"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"}
|