domain-search-mcp 1.0.0 → 1.1.1
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/context7.json +4 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/check_socials.d.ts.map +1 -1
- package/dist/tools/check_socials.js +7 -6
- package/dist/tools/check_socials.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/suggest_domains_smart.d.ts +113 -0
- package/dist/tools/suggest_domains_smart.d.ts.map +1 -0
- package/dist/tools/suggest_domains_smart.js +311 -0
- package/dist/tools/suggest_domains_smart.js.map +1 -0
- package/dist/utils/semantic-engine.d.ts +59 -0
- package/dist/utils/semantic-engine.d.ts.map +1 -0
- package/dist/utils/semantic-engine.js +427 -0
- package/dist/utils/semantic-engine.js.map +1 -0
- package/package.json +1 -1
- package/src/server.ts +16 -0
- package/src/tools/check_socials.ts +7 -6
- package/src/tools/index.ts +7 -0
- package/src/tools/suggest_domains_smart.ts +392 -0
- package/src/utils/semantic-engine.ts +483 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest_domains_smart.js","sourceRoot":"","sources":["../../src/tools/suggest_domains_smart.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAmOH,gEA8JC;AA/XD,6BAAwB;AACxB,mEAA4D;AAE5D,kDAA+C;AAC/C,oEAOqC;AAGrC;;;GAGG;AACH,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,KAAoB;IACvD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,OAAQ,CAAC;IACzE,OAAO,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED;;GAEG;AACU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,wEAAwE;QACxE,6DAA6D,CAC9D;IACH,GAAG,EAAE,OAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,OAAC;SACR,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAChH,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;IACtF,KAAK,EAAE,OAAC;SACL,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SACvD,QAAQ,EAAE;SACV,OAAO,CAAC,WAAW,CAAC;SACpB,QAAQ,CACP,+EAA+E;QAC/E,8DAA8D,CAC/D;IACH,eAAe,EAAE,OAAC;SACf,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,uDAAuD,CAAC;IACpE,eAAe,EAAE,OAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,+DAA+D,CAAC;CAC7E,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,uBAAuB,GAAG;IACrC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE;;;;;;;;;;;;;;;4EAe6D;IAC1E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;aAC9D;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAChH,WAAW,EAAE,gEAAgE;aAC9E;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC;gBACvD,WAAW,EAAE,8BAA8B;aAC5C;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,6CAA6C;aAC3D;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CACvB,WAAqB,EACrB,KAAa,EACb,aAAqB;IAErB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,WAAW;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAEzC,KAAK,aAAa;YAChB,iDAAiD;YACjD,MAAM,KAAK,GAAG,IAAA,iCAAY,EAAC,aAAa,CAAC,CAAC;YAC1C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,OAAO,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC,CAAC,CAAC;QAEL,KAAK,UAAU;YACb,0CAA0C;YAC1C,OAAO,WAAW;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACb,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClE,OAAO,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;QAEP,KAAK,WAAW,CAAC;QACjB;YACE,mDAAmD;YACnD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACjD,OAAO,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAsCD;;GAEG;AACI,KAAK,UAAU,0BAA0B,CAC9C,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,GACrE,iCAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEzC,8BAA8B;QAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,IAAA,iCAAY,EAAC,eAAe,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,QAAQ,IAAI,IAAA,mCAAc,EAAC,aAAa,CAAC,CAAC;QAEnE,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAA,6CAAwB,EAAC,eAAe,EAAE;YAC/D,cAAc,EAAE,eAAe,GAAG,CAAC,EAAE,+BAA+B;YACpE,kBAAkB,EAAE,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW;YACjE,eAAe,EAAE,KAAK,KAAK,OAAO;YAClC,oBAAoB,EAAE,CAAC,CAAC,gBAAgB;YACxC,QAAQ,EAAE,gBAAgB,IAAI,SAAS;SACxC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,cAAc,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAEnF,0CAA0C;QAC1C,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QAEnE,yCAAyC;QACzC,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,MAAM,OAAO,GAAyD,EAAE,CAAC;QAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAY,EAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;oBAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAE9B,yCAAyC;YACzC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC7F,IAAI,cAAc,IAAI,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1D,MAAM;YACR,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAsB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,gBAAgB,EAAE,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAEjF,MAAM,UAAU,GAAoB;gBAClC,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE;gBACxB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;gBAChC,gBAAgB,EAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAC9D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;gBAClD,KAAK,EAAE,IAAA,oCAAe,EAAC,IAAI,EAAE,eAAe,CAAC;gBAC7C,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS;oBACzB,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,UAAU;aACf,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,gBAAgB,EAAE,CAAC;YACrB,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1C,gBAAgB;QAChB,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9F,oBAAoB;QACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,MAAM,oBAAoB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1G,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;YACnG,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,kBAAkB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QACjF,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAA,gCAAW,EAAC,IAAI,CAAC,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,IAAA,qCAAgB,EAAC,gBAAgB,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,cAAc,EAAE,aAAa;YAC7B,iBAAiB,EAAE,gBAAgB;YACnC,GAAG;YACH,KAAK;YACL,eAAe,EAAE,cAAc,CAAC,MAAM;YACtC,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,OAAO,EAAE;gBACP,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,YAAY;gBACrB,iBAAiB,EAAE,gBAAgB;aACpC;YACD,QAAQ;YACR,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACvD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Engine for AI-like Domain Suggestions.
|
|
3
|
+
*
|
|
4
|
+
* Provides intelligent domain name generation without external AI dependencies.
|
|
5
|
+
* Uses linguistic algorithms, word databases, and pattern matching.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Common word synonyms for domain name variations.
|
|
9
|
+
*/
|
|
10
|
+
declare const SYNONYMS: Record<string, string[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Industry-specific vocabulary for contextual suggestions.
|
|
13
|
+
*/
|
|
14
|
+
declare const INDUSTRY_TERMS: Record<string, string[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Modern domain naming patterns and suffixes.
|
|
17
|
+
*/
|
|
18
|
+
declare const MODERN_SUFFIXES: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Modern domain naming prefixes.
|
|
21
|
+
*/
|
|
22
|
+
declare const MODERN_PREFIXES: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Attempt to segment a concatenated string into words.
|
|
25
|
+
*/
|
|
26
|
+
export declare function segmentWords(input: string): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Get synonyms for a word.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getSynonyms(word: string): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Get industry-specific terms.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getIndustryTerms(industry: string): string[];
|
|
35
|
+
/**
|
|
36
|
+
* Detect likely industry from keywords.
|
|
37
|
+
*/
|
|
38
|
+
export declare function detectIndustry(words: string[]): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Generate portmanteau (blended word) from two words.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generatePortmanteau(word1: string, word2: string): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Generate creative domain name suggestions.
|
|
45
|
+
*/
|
|
46
|
+
export interface SmartSuggestionOptions {
|
|
47
|
+
maxSuggestions?: number;
|
|
48
|
+
includePortmanteau?: boolean;
|
|
49
|
+
includeSynonyms?: boolean;
|
|
50
|
+
includeIndustryTerms?: boolean;
|
|
51
|
+
industry?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function generateSmartSuggestions(input: string, options?: SmartSuggestionOptions): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Score a domain name based on quality metrics.
|
|
56
|
+
*/
|
|
57
|
+
export declare function scoreDomainName(name: string, originalInput: string): number;
|
|
58
|
+
export { MODERN_SUFFIXES, MODERN_PREFIXES, INDUSTRY_TERMS, SYNONYMS };
|
|
59
|
+
//# sourceMappingURL=semantic-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-engine.d.ts","sourceRoot":"","sources":["../../src/utils/semantic-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAkEtC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAyC5C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe,UAKpB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe,UAIpB,CAAC;AAsCF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA2CpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAG3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAyB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB1E;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAA2B,GACnC,MAAM,EAAE,CA6HV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAuC3E;AAED,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Semantic Engine for AI-like Domain Suggestions.
|
|
4
|
+
*
|
|
5
|
+
* Provides intelligent domain name generation without external AI dependencies.
|
|
6
|
+
* Uses linguistic algorithms, word databases, and pattern matching.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SYNONYMS = exports.INDUSTRY_TERMS = exports.MODERN_PREFIXES = exports.MODERN_SUFFIXES = void 0;
|
|
10
|
+
exports.segmentWords = segmentWords;
|
|
11
|
+
exports.getSynonyms = getSynonyms;
|
|
12
|
+
exports.getIndustryTerms = getIndustryTerms;
|
|
13
|
+
exports.detectIndustry = detectIndustry;
|
|
14
|
+
exports.generatePortmanteau = generatePortmanteau;
|
|
15
|
+
exports.generateSmartSuggestions = generateSmartSuggestions;
|
|
16
|
+
exports.scoreDomainName = scoreDomainName;
|
|
17
|
+
/**
|
|
18
|
+
* Common word synonyms for domain name variations.
|
|
19
|
+
*/
|
|
20
|
+
const SYNONYMS = {
|
|
21
|
+
// Tech terms
|
|
22
|
+
app: ['application', 'software', 'tool', 'platform', 'service'],
|
|
23
|
+
tech: ['technology', 'digital', 'cyber', 'smart', 'intelligent'],
|
|
24
|
+
code: ['coding', 'dev', 'developer', 'programming', 'software'],
|
|
25
|
+
dev: ['developer', 'development', 'code', 'build', 'create'],
|
|
26
|
+
web: ['online', 'internet', 'digital', 'cloud', 'net'],
|
|
27
|
+
cloud: ['sky', 'air', 'vapor', 'hosted', 'saas'],
|
|
28
|
+
data: ['info', 'analytics', 'metrics', 'insights', 'stats'],
|
|
29
|
+
ai: ['intelligent', 'smart', 'ml', 'brain', 'neural', 'cognitive'],
|
|
30
|
+
api: ['connect', 'integrate', 'link', 'bridge', 'hub'],
|
|
31
|
+
// Business terms
|
|
32
|
+
shop: ['store', 'market', 'mart', 'outlet', 'bazaar', 'emporium'],
|
|
33
|
+
buy: ['purchase', 'get', 'acquire', 'order', 'shop'],
|
|
34
|
+
sell: ['trade', 'market', 'vend', 'deal', 'offer'],
|
|
35
|
+
pay: ['payment', 'checkout', 'billing', 'invoice', 'finance'],
|
|
36
|
+
money: ['cash', 'funds', 'finance', 'capital', 'wealth'],
|
|
37
|
+
business: ['biz', 'enterprise', 'company', 'corp', 'venture'],
|
|
38
|
+
// Action terms
|
|
39
|
+
get: ['grab', 'fetch', 'obtain', 'acquire', 'access'],
|
|
40
|
+
find: ['search', 'discover', 'locate', 'seek', 'explore'],
|
|
41
|
+
make: ['create', 'build', 'craft', 'forge', 'generate'],
|
|
42
|
+
send: ['deliver', 'ship', 'dispatch', 'transmit', 'share'],
|
|
43
|
+
connect: ['link', 'join', 'unite', 'bridge', 'sync'],
|
|
44
|
+
// Descriptive terms
|
|
45
|
+
fast: ['quick', 'rapid', 'swift', 'speedy', 'instant', 'turbo'],
|
|
46
|
+
smart: ['clever', 'intelligent', 'bright', 'wise', 'genius'],
|
|
47
|
+
easy: ['simple', 'effortless', 'smooth', 'breeze', 'snap'],
|
|
48
|
+
free: ['gratis', 'open', 'libre', 'zero', 'complimentary'],
|
|
49
|
+
pro: ['professional', 'expert', 'premium', 'elite', 'master'],
|
|
50
|
+
// Size/Scale
|
|
51
|
+
big: ['large', 'mega', 'giant', 'huge', 'vast', 'grand'],
|
|
52
|
+
small: ['mini', 'tiny', 'micro', 'little', 'compact', 'lite'],
|
|
53
|
+
// Quality
|
|
54
|
+
best: ['top', 'prime', 'premier', 'superior', 'ultimate', 'optimal'],
|
|
55
|
+
good: ['great', 'awesome', 'excellent', 'superb', 'stellar'],
|
|
56
|
+
new: ['fresh', 'novel', 'modern', 'next', 'neo', 'latest'],
|
|
57
|
+
// Food & Lifestyle
|
|
58
|
+
food: ['eats', 'cuisine', 'kitchen', 'chef', 'meal', 'dish'],
|
|
59
|
+
coffee: ['cafe', 'brew', 'bean', 'roast', 'espresso', 'java'],
|
|
60
|
+
health: ['wellness', 'fit', 'vital', 'care', 'med', 'life'],
|
|
61
|
+
home: ['house', 'living', 'nest', 'haven', 'dwelling', 'abode'],
|
|
62
|
+
// Creative
|
|
63
|
+
design: ['creative', 'art', 'studio', 'craft', 'pixel', 'visual'],
|
|
64
|
+
media: ['content', 'channel', 'stream', 'broadcast', 'press'],
|
|
65
|
+
photo: ['image', 'pic', 'snap', 'shot', 'lens', 'capture'],
|
|
66
|
+
video: ['film', 'motion', 'clip', 'reel', 'stream', 'watch'],
|
|
67
|
+
music: ['audio', 'sound', 'tune', 'beat', 'melody', 'sonic'],
|
|
68
|
+
// Social
|
|
69
|
+
social: ['community', 'network', 'connect', 'share', 'together'],
|
|
70
|
+
team: ['crew', 'squad', 'group', 'tribe', 'collective', 'guild'],
|
|
71
|
+
chat: ['talk', 'message', 'speak', 'convo', 'discuss', 'voice'],
|
|
72
|
+
// Nature
|
|
73
|
+
green: ['eco', 'earth', 'nature', 'leaf', 'organic', 'bio'],
|
|
74
|
+
blue: ['ocean', 'sky', 'azure', 'aqua', 'marine', 'wave'],
|
|
75
|
+
sun: ['solar', 'bright', 'light', 'ray', 'shine', 'glow'],
|
|
76
|
+
star: ['stellar', 'astro', 'cosmic', 'nova', 'galaxy', 'orbit'],
|
|
77
|
+
};
|
|
78
|
+
exports.SYNONYMS = SYNONYMS;
|
|
79
|
+
/**
|
|
80
|
+
* Industry-specific vocabulary for contextual suggestions.
|
|
81
|
+
*/
|
|
82
|
+
const INDUSTRY_TERMS = {
|
|
83
|
+
tech: [
|
|
84
|
+
'stack', 'node', 'byte', 'pixel', 'logic', 'algo', 'kernel', 'cache',
|
|
85
|
+
'sync', 'async', 'stream', 'flux', 'vector', 'tensor', 'quantum', 'cyber',
|
|
86
|
+
],
|
|
87
|
+
startup: [
|
|
88
|
+
'launch', 'venture', 'scale', 'pivot', 'disrupt', 'iterate', 'mvp', 'seed',
|
|
89
|
+
'growth', 'unicorn', 'rocket', 'boost', 'accelerate', 'incubate',
|
|
90
|
+
],
|
|
91
|
+
finance: [
|
|
92
|
+
'capital', 'wealth', 'invest', 'fund', 'equity', 'asset', 'profit', 'yield',
|
|
93
|
+
'trade', 'market', 'stock', 'bond', 'crypto', 'defi', 'fintech',
|
|
94
|
+
],
|
|
95
|
+
health: [
|
|
96
|
+
'vital', 'wellness', 'care', 'heal', 'med', 'clinic', 'therapy', 'fit',
|
|
97
|
+
'nutrition', 'balance', 'mind', 'body', 'pulse', 'life', 'cure',
|
|
98
|
+
],
|
|
99
|
+
food: [
|
|
100
|
+
'kitchen', 'chef', 'bistro', 'grill', 'bake', 'fresh', 'organic', 'farm',
|
|
101
|
+
'harvest', 'plate', 'taste', 'flavor', 'spice', 'savory', 'delish',
|
|
102
|
+
],
|
|
103
|
+
creative: [
|
|
104
|
+
'studio', 'canvas', 'palette', 'brush', 'ink', 'craft', 'artisan', 'muse',
|
|
105
|
+
'vision', 'imagine', 'dream', 'inspire', 'spark', 'bloom', 'hue',
|
|
106
|
+
],
|
|
107
|
+
ecommerce: [
|
|
108
|
+
'cart', 'checkout', 'order', 'ship', 'deal', 'offer', 'sale', 'mart',
|
|
109
|
+
'bazaar', 'outlet', 'depot', 'warehouse', 'supply', 'merchant',
|
|
110
|
+
],
|
|
111
|
+
education: [
|
|
112
|
+
'learn', 'teach', 'course', 'class', 'academy', 'scholar', 'study', 'tutor',
|
|
113
|
+
'mentor', 'skill', 'knowledge', 'wisdom', 'genius', 'brain', 'mind',
|
|
114
|
+
],
|
|
115
|
+
gaming: [
|
|
116
|
+
'play', 'game', 'quest', 'level', 'arena', 'battle', 'guild', 'raid',
|
|
117
|
+
'loot', 'spawn', 'realm', 'world', 'epic', 'legend', 'hero',
|
|
118
|
+
],
|
|
119
|
+
social: [
|
|
120
|
+
'connect', 'share', 'follow', 'friend', 'community', 'tribe', 'circle',
|
|
121
|
+
'network', 'gather', 'meetup', 'hangout', 'squad', 'crew', 'vibe',
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
exports.INDUSTRY_TERMS = INDUSTRY_TERMS;
|
|
125
|
+
/**
|
|
126
|
+
* Modern domain naming patterns and suffixes.
|
|
127
|
+
*/
|
|
128
|
+
const MODERN_SUFFIXES = [
|
|
129
|
+
'ly', 'ify', 'io', 'ai', 'app', 'hq', 'labs', 'hub', 'now', 'go',
|
|
130
|
+
'up', 'me', 'co', 'so', 'to', 'it', 'os', 'js', 'py', 'dev',
|
|
131
|
+
'cloud', 'base', 'stack', 'flow', 'space', 'zone', 'spot', 'pad',
|
|
132
|
+
'box', 'kit', 'way', 'path', 'link', 'sync', 'dash', 'tap', 'pop',
|
|
133
|
+
];
|
|
134
|
+
exports.MODERN_SUFFIXES = MODERN_SUFFIXES;
|
|
135
|
+
/**
|
|
136
|
+
* Modern domain naming prefixes.
|
|
137
|
+
*/
|
|
138
|
+
const MODERN_PREFIXES = [
|
|
139
|
+
'get', 'try', 'use', 'go', 'hey', 'hi', 'my', 'our', 'the', 'be',
|
|
140
|
+
'on', 'in', 'up', 'do', 'we', 'all', 'one', 'super', 'ultra', 'mega',
|
|
141
|
+
'hyper', 'meta', 'neo', 'pro', 'open', 'true', 'real', 'next', 'ever',
|
|
142
|
+
];
|
|
143
|
+
exports.MODERN_PREFIXES = MODERN_PREFIXES;
|
|
144
|
+
/**
|
|
145
|
+
* Word segmentation - detect words in concatenated strings.
|
|
146
|
+
* Uses a dictionary-based approach with common words.
|
|
147
|
+
*/
|
|
148
|
+
const COMMON_WORDS = new Set([
|
|
149
|
+
// Tech
|
|
150
|
+
'app', 'api', 'web', 'dev', 'code', 'tech', 'data', 'cloud', 'ai', 'ml',
|
|
151
|
+
'bot', 'net', 'hub', 'lab', 'labs', 'io', 'bit', 'byte', 'node', 'stack',
|
|
152
|
+
'soft', 'ware', 'software', 'cyber', 'auto', 'smart', 'intel', 'assist',
|
|
153
|
+
// Actions
|
|
154
|
+
'get', 'set', 'put', 'run', 'go', 'do', 'make', 'find', 'buy', 'pay',
|
|
155
|
+
'send', 'sync', 'link', 'chat', 'call', 'meet', 'play', 'work', 'ship',
|
|
156
|
+
'build', 'create', 'start', 'launch', 'grow', 'scale', 'track', 'save',
|
|
157
|
+
// Descriptors
|
|
158
|
+
'big', 'fast', 'easy', 'free', 'new', 'hot', 'cool', 'top', 'best', 'pro',
|
|
159
|
+
'smart', 'super', 'ultra', 'mega', 'mini', 'lite', 'plus', 'prime', 'max',
|
|
160
|
+
'quick', 'rapid', 'swift', 'safe', 'secure', 'clean', 'clear', 'fresh',
|
|
161
|
+
// Business
|
|
162
|
+
'shop', 'store', 'mart', 'deal', 'sale', 'cash', 'pay', 'bill', 'trade',
|
|
163
|
+
'biz', 'corp', 'inc', 'co', 'company', 'brand', 'agency', 'firm',
|
|
164
|
+
// General
|
|
165
|
+
'my', 'our', 'the', 'one', 'all', 'now', 'here', 'next', 'just', 'only',
|
|
166
|
+
'vibe', 'flow', 'wave', 'spark', 'boost', 'dash', 'snap', 'pop', 'buzz',
|
|
167
|
+
'zone', 'spot', 'point', 'base', 'core', 'edge', 'peak', 'rise', 'up',
|
|
168
|
+
// Longer common words
|
|
169
|
+
'hello', 'world', 'cloud', 'space', 'time', 'team', 'group', 'social',
|
|
170
|
+
'media', 'video', 'photo', 'audio', 'music', 'sound', 'voice', 'chat',
|
|
171
|
+
'market', 'money', 'health', 'food', 'home', 'life', 'love', 'star',
|
|
172
|
+
'coding', 'design', 'studio', 'creative', 'digital', 'mobile', 'online',
|
|
173
|
+
// Food & Beverage
|
|
174
|
+
'coffee', 'cafe', 'brew', 'bean', 'tea', 'juice', 'pizza', 'burger', 'taco',
|
|
175
|
+
'chef', 'cook', 'kitchen', 'bakery', 'grill', 'diner', 'bistro', 'eatery',
|
|
176
|
+
// Common compound parts
|
|
177
|
+
'assistant', 'manager', 'finder', 'maker', 'builder', 'tracker', 'planner',
|
|
178
|
+
]);
|
|
179
|
+
/**
|
|
180
|
+
* Attempt to segment a concatenated string into words.
|
|
181
|
+
*/
|
|
182
|
+
function segmentWords(input) {
|
|
183
|
+
const normalized = input.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
184
|
+
const result = [];
|
|
185
|
+
let remaining = normalized;
|
|
186
|
+
while (remaining.length > 0) {
|
|
187
|
+
let found = false;
|
|
188
|
+
// Try longest match first (up to 12 chars)
|
|
189
|
+
for (let len = Math.min(12, remaining.length); len >= 2; len--) {
|
|
190
|
+
const candidate = remaining.slice(0, len);
|
|
191
|
+
if (COMMON_WORDS.has(candidate)) {
|
|
192
|
+
result.push(candidate);
|
|
193
|
+
remaining = remaining.slice(len);
|
|
194
|
+
found = true;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// If no word found, take single char and continue
|
|
199
|
+
if (!found) {
|
|
200
|
+
// Try to find a word starting from next position
|
|
201
|
+
let skipCount = 1;
|
|
202
|
+
for (let skip = 1; skip < Math.min(4, remaining.length); skip++) {
|
|
203
|
+
const subRemaining = remaining.slice(skip);
|
|
204
|
+
for (let len = Math.min(12, subRemaining.length); len >= 2; len--) {
|
|
205
|
+
if (COMMON_WORDS.has(subRemaining.slice(0, len))) {
|
|
206
|
+
skipCount = skip;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Add the prefix as a potential word fragment
|
|
212
|
+
const fragment = remaining.slice(0, skipCount);
|
|
213
|
+
if (fragment.length >= 2) {
|
|
214
|
+
result.push(fragment);
|
|
215
|
+
}
|
|
216
|
+
remaining = remaining.slice(skipCount);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get synonyms for a word.
|
|
223
|
+
*/
|
|
224
|
+
function getSynonyms(word) {
|
|
225
|
+
const normalized = word.toLowerCase();
|
|
226
|
+
return SYNONYMS[normalized] || [];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get industry-specific terms.
|
|
230
|
+
*/
|
|
231
|
+
function getIndustryTerms(industry) {
|
|
232
|
+
const normalized = industry.toLowerCase();
|
|
233
|
+
return INDUSTRY_TERMS[normalized] || [];
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Detect likely industry from keywords.
|
|
237
|
+
*/
|
|
238
|
+
function detectIndustry(words) {
|
|
239
|
+
const wordSet = new Set(words.map(w => w.toLowerCase()));
|
|
240
|
+
const industryIndicators = {
|
|
241
|
+
tech: ['app', 'code', 'coding', 'dev', 'tech', 'software', 'api', 'web', 'cloud', 'ai', 'data', 'cyber', 'digital'],
|
|
242
|
+
startup: ['launch', 'venture', 'startup', 'founder', 'scale', 'growth', 'mvp', 'disrupt'],
|
|
243
|
+
finance: ['pay', 'money', 'bank', 'invest', 'trade', 'crypto', 'fund', 'capital', 'finance', 'fintech'],
|
|
244
|
+
health: ['health', 'fit', 'wellness', 'med', 'care', 'clinic', 'therapy', 'vital', 'nutrition'],
|
|
245
|
+
food: ['food', 'eat', 'coffee', 'kitchen', 'chef', 'restaurant', 'cafe', 'bistro', 'brew', 'cook'],
|
|
246
|
+
creative: ['design', 'art', 'studio', 'creative', 'photo', 'video', 'media', 'pixel', 'visual'],
|
|
247
|
+
ecommerce: ['shop', 'store', 'buy', 'sell', 'cart', 'order', 'deal', 'market', 'commerce'],
|
|
248
|
+
education: ['learn', 'teach', 'course', 'academy', 'school', 'tutor', 'study', 'edu', 'skill'],
|
|
249
|
+
gaming: ['game', 'play', 'quest', 'arena', 'guild', 'level', 'gamer', 'esport'],
|
|
250
|
+
social: ['social', 'connect', 'share', 'community', 'network', 'friend', 'chat', 'vibe'],
|
|
251
|
+
};
|
|
252
|
+
for (const [industry, indicators] of Object.entries(industryIndicators)) {
|
|
253
|
+
for (const indicator of indicators) {
|
|
254
|
+
if (wordSet.has(indicator)) {
|
|
255
|
+
return industry;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Generate portmanteau (blended word) from two words.
|
|
263
|
+
*/
|
|
264
|
+
function generatePortmanteau(word1, word2) {
|
|
265
|
+
const results = [];
|
|
266
|
+
// Overlap blend: find common letter sequence
|
|
267
|
+
for (let i = 1; i < Math.min(word1.length, 4); i++) {
|
|
268
|
+
const suffix = word1.slice(-i);
|
|
269
|
+
if (word2.toLowerCase().startsWith(suffix.toLowerCase())) {
|
|
270
|
+
results.push(word1 + word2.slice(i));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
// Truncation blend: first part + second part
|
|
274
|
+
if (word1.length >= 3 && word2.length >= 3) {
|
|
275
|
+
const blend1 = word1.slice(0, Math.ceil(word1.length * 0.6)) + word2.slice(Math.floor(word2.length * 0.4));
|
|
276
|
+
const blend2 = word1.slice(0, Math.ceil(word1.length * 0.5)) + word2.slice(Math.floor(word2.length * 0.5));
|
|
277
|
+
results.push(blend1, blend2);
|
|
278
|
+
}
|
|
279
|
+
return [...new Set(results)].filter(r => r.length >= 4 && r.length <= 15);
|
|
280
|
+
}
|
|
281
|
+
function generateSmartSuggestions(input, options = {}) {
|
|
282
|
+
const { maxSuggestions = 50, includePortmanteau = true, includeSynonyms = true, includeIndustryTerms = true, industry, } = options;
|
|
283
|
+
const suggestions = new Set();
|
|
284
|
+
const normalized = input.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
285
|
+
// Add original
|
|
286
|
+
suggestions.add(normalized);
|
|
287
|
+
// Segment into words
|
|
288
|
+
const words = segmentWords(normalized);
|
|
289
|
+
// Detect or use provided industry
|
|
290
|
+
const detectedIndustry = industry || detectIndustry(words);
|
|
291
|
+
// 1. Modern prefix variations
|
|
292
|
+
for (const prefix of MODERN_PREFIXES.slice(0, 15)) {
|
|
293
|
+
suggestions.add(prefix + normalized);
|
|
294
|
+
for (const word of words) {
|
|
295
|
+
if (word.length >= 3) {
|
|
296
|
+
suggestions.add(prefix + word);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// 2. Modern suffix variations
|
|
301
|
+
for (const suffix of MODERN_SUFFIXES.slice(0, 15)) {
|
|
302
|
+
suggestions.add(normalized + suffix);
|
|
303
|
+
for (const word of words) {
|
|
304
|
+
if (word.length >= 3) {
|
|
305
|
+
suggestions.add(word + suffix);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// 3. Synonym-based suggestions
|
|
310
|
+
if (includeSynonyms) {
|
|
311
|
+
for (const word of words) {
|
|
312
|
+
const synonyms = getSynonyms(word);
|
|
313
|
+
for (const synonym of synonyms.slice(0, 3)) {
|
|
314
|
+
// Replace word with synonym
|
|
315
|
+
const newName = words.map(w => w === word ? synonym : w).join('');
|
|
316
|
+
suggestions.add(newName);
|
|
317
|
+
// Add prefix/suffix to synonym
|
|
318
|
+
suggestions.add('get' + synonym);
|
|
319
|
+
suggestions.add(synonym + 'hub');
|
|
320
|
+
suggestions.add(synonym + 'app');
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// 4. Industry-specific suggestions
|
|
325
|
+
if (includeIndustryTerms && detectedIndustry) {
|
|
326
|
+
const industryTerms = getIndustryTerms(detectedIndustry);
|
|
327
|
+
for (const term of industryTerms.slice(0, 8)) {
|
|
328
|
+
suggestions.add(normalized + term);
|
|
329
|
+
suggestions.add(term + normalized);
|
|
330
|
+
for (const word of words) {
|
|
331
|
+
if (word.length >= 3) {
|
|
332
|
+
suggestions.add(word + term);
|
|
333
|
+
suggestions.add(term + word);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// 5. Portmanteau suggestions
|
|
339
|
+
if (includePortmanteau && words.length >= 2) {
|
|
340
|
+
for (let i = 0; i < words.length - 1; i++) {
|
|
341
|
+
const blends = generatePortmanteau(words[i], words[i + 1]);
|
|
342
|
+
for (const blend of blends) {
|
|
343
|
+
suggestions.add(blend);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
// 6. Word reordering
|
|
348
|
+
if (words.length >= 2) {
|
|
349
|
+
suggestions.add(words.slice().reverse().join(''));
|
|
350
|
+
}
|
|
351
|
+
// 7. Abbreviation suggestions
|
|
352
|
+
if (words.length >= 2) {
|
|
353
|
+
// First letters
|
|
354
|
+
const initials = words.map(w => w[0]).join('');
|
|
355
|
+
if (initials.length >= 2) {
|
|
356
|
+
suggestions.add(initials + 'hub');
|
|
357
|
+
suggestions.add(initials + 'app');
|
|
358
|
+
suggestions.add('go' + initials);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// 8. Vowel removal (modern style)
|
|
362
|
+
const noVowels = normalized.replace(/[aeiou]/g, '');
|
|
363
|
+
if (noVowels.length >= 3 && noVowels !== normalized) {
|
|
364
|
+
suggestions.add(noVowels);
|
|
365
|
+
suggestions.add(noVowels + 'io');
|
|
366
|
+
suggestions.add(noVowels + 'app');
|
|
367
|
+
}
|
|
368
|
+
// 9. Double letter simplification
|
|
369
|
+
const simplified = normalized.replace(/(.)\1+/g, '$1');
|
|
370
|
+
if (simplified !== normalized && simplified.length >= 3) {
|
|
371
|
+
suggestions.add(simplified);
|
|
372
|
+
}
|
|
373
|
+
// 10. Creative endings
|
|
374
|
+
const creativeEndings = ['ster', 'ery', 'ful', 'ness', 'ize', 'able'];
|
|
375
|
+
for (const ending of creativeEndings) {
|
|
376
|
+
if (!normalized.endsWith(ending)) {
|
|
377
|
+
suggestions.add(normalized + ending);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Filter and return
|
|
381
|
+
return Array.from(suggestions)
|
|
382
|
+
.filter(s => s.length >= 3 && s.length <= 20 && /^[a-z0-9]+$/.test(s))
|
|
383
|
+
.slice(0, maxSuggestions);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Score a domain name based on quality metrics.
|
|
387
|
+
*/
|
|
388
|
+
function scoreDomainName(name, originalInput) {
|
|
389
|
+
let score = 50;
|
|
390
|
+
// Length preference (shorter is better, but not too short)
|
|
391
|
+
if (name.length <= 6)
|
|
392
|
+
score += 15;
|
|
393
|
+
else if (name.length <= 8)
|
|
394
|
+
score += 10;
|
|
395
|
+
else if (name.length <= 10)
|
|
396
|
+
score += 5;
|
|
397
|
+
else if (name.length > 15)
|
|
398
|
+
score -= 10;
|
|
399
|
+
// Exact match bonus
|
|
400
|
+
if (name === originalInput.toLowerCase().replace(/[^a-z0-9]/g, '')) {
|
|
401
|
+
score += 20;
|
|
402
|
+
}
|
|
403
|
+
// Pronounceability (alternating consonants and vowels is good)
|
|
404
|
+
const vowels = (name.match(/[aeiou]/g) || []).length;
|
|
405
|
+
const ratio = vowels / name.length;
|
|
406
|
+
if (ratio >= 0.25 && ratio <= 0.5)
|
|
407
|
+
score += 10;
|
|
408
|
+
// No triple letters
|
|
409
|
+
if (/(.)\1\1/.test(name))
|
|
410
|
+
score -= 10;
|
|
411
|
+
// Starts with common word bonus
|
|
412
|
+
if (COMMON_WORDS.has(name.slice(0, 3)) || COMMON_WORDS.has(name.slice(0, 4))) {
|
|
413
|
+
score += 5;
|
|
414
|
+
}
|
|
415
|
+
// Modern suffix bonus
|
|
416
|
+
for (const suffix of ['io', 'ai', 'ly', 'ify', 'app', 'hub']) {
|
|
417
|
+
if (name.endsWith(suffix)) {
|
|
418
|
+
score += 5;
|
|
419
|
+
break;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
// No numbers (usually cleaner)
|
|
423
|
+
if (!/\d/.test(name))
|
|
424
|
+
score += 5;
|
|
425
|
+
return score;
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=semantic-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-engine.js","sourceRoot":"","sources":["../../src/utils/semantic-engine.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiLH,oCA2CC;AAKD,kCAGC;AAKD,4CAGC;AAKD,wCAyBC;AAKD,kDAmBC;AAaD,4DAgIC;AAKD,0CAuCC;AAzdD;;GAEG;AACH,MAAM,QAAQ,GAA6B;IACzC,aAAa;IACb,GAAG,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;IAC/D,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;IAChE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC;IAC/D,GAAG,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC5D,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC;IACtD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;IAC3D,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;IAClE,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;IAEtD,iBAAiB;IACjB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;IACjE,GAAG,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAClD,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7D,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;IACxD,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;IAE7D,eAAe;IACf,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;IACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;IACzD,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;IACvD,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;IAC1D,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;IAEpD,oBAAoB;IACpB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;IAC/D,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;IAC5D,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC1D,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC;IAC1D,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAE7D,aAAa;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;IAE7D,UAAU;IACV,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;IACpE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC5D,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAE1D,mBAAmB;IACnB,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;IAC7D,MAAM,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;IAE/D,WAAW;IACX,MAAM,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;IACjE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;IAC7D,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC1D,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC5D,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IAE5D,SAAS;IACT,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;IAChE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC;IAChE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAE/D,SAAS;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IAC3D,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;IACzD,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;IACzD,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;CAChE,CAAC;AAsZyD,4BAAQ;AApZnE;;GAEG;AACH,MAAM,cAAc,GAA6B;IAC/C,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;QACpE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;KAC1E;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;QAC1E,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU;KACjE;IACD,OAAO,EAAE;QACP,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;QAC3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;KAChE;IACD,MAAM,EAAE;QACN,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK;QACtE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;KAChE;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;QACxE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;KACnE;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;QACzE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;KACjE;IACD,SAAS,EAAE;QACT,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;QACpE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU;KAC/D;IACD,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;QAC3E,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;KACpE;IACD,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;QACpE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;KAC5D;IACD,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ;QACtE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;KAClE;CACF,CAAC;AAwWyC,wCAAc;AAtWzD;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IAChE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;IAC3D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAClE,CAAC;AA8VO,0CAAe;AA5VxB;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IAChE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACpE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CACtE,CAAC;AAqVwB,0CAAe;AAnVzC;;;GAGG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,OAAO;IACP,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;IACvE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACxE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACvE,UAAU;IACV,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACtE,cAAc;IACd,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;IACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACtE,WAAW;IACX,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IACvE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAChE,UAAU;IACV,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACvE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IACvE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;IACrE,sBAAsB;IACtB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACrE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACrE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACnE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IACvE,kBAAkB;IAClB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAC3E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACzE,wBAAwB;IACxB,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAC3E,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,UAAU,CAAC;IAE3B,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,2CAA2C;QAC3C,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,iDAAiD;YACjD,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;gBAChE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;oBAClE,IAAI,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;wBACjD,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAe;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzD,MAAM,kBAAkB,GAA6B;QACnD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;QACnH,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;QACzF,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACvG,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;QAC/F,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QAClG,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC/F,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC1F,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;QAC9F,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC/E,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KACzF,CAAC;IAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,KAAa;IAC9D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,6CAA6C;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3G,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC;AAaD,SAAgB,wBAAwB,CACtC,KAAa,EACb,UAAkC,EAAE;IAEpC,MAAM,EACJ,cAAc,GAAG,EAAE,EACnB,kBAAkB,GAAG,IAAI,EACzB,eAAe,GAAG,IAAI,EACtB,oBAAoB,GAAG,IAAI,EAC3B,QAAQ,GACT,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEjE,eAAe;IACf,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE5B,qBAAqB;IACrB,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEvC,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IAE3D,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAClD,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAClD,WAAW,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3C,4BAA4B;gBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEzB,+BAA+B;gBAC/B,WAAW,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;gBACjC,WAAW,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;gBACjC,WAAW,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,oBAAoB,IAAI,gBAAgB,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACnC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACrB,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;oBAC7B,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,kBAAkB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,gBAAgB;QAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YAClC,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;YAClC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACjC,WAAW,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,uBAAuB;IACvB,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,WAAW,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACrE,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,aAAqB;IACjE,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,2DAA2D;IAC3D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,KAAK,IAAI,EAAE,CAAC;SAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,KAAK,IAAI,EAAE,CAAC;SAClC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;QAAE,KAAK,IAAI,CAAC,CAAC;SAClC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,KAAK,IAAI,EAAE,CAAC;IAEvC,oBAAoB;IACpB,IAAI,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC;QACnE,KAAK,IAAI,EAAE,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;QAAE,KAAK,IAAI,EAAE,CAAC;IAE/C,oBAAoB;IACpB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,KAAK,IAAI,EAAE,CAAC;IAEtC,gCAAgC;IAChC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC;YACX,MAAM;QACR,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "domain-search-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Fast domain availability aggregator MCP server. Check availability across Porkbun, Namecheap, RDAP, and WHOIS. Compare pricing. Get suggestions.",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"types": "dist/server.d.ts",
|
package/src/server.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - bulk_search: Check many domains at once
|
|
11
11
|
* - compare_registrars: Compare pricing across registrars
|
|
12
12
|
* - suggest_domains: Generate available name variations
|
|
13
|
+
* - suggest_domains_smart: AI-powered domain suggestions with semantic analysis
|
|
13
14
|
* - tld_info: Get TLD information and recommendations
|
|
14
15
|
* - check_socials: Check social handle availability
|
|
15
16
|
*
|
|
@@ -36,6 +37,8 @@ import {
|
|
|
36
37
|
executeCompareRegistrars,
|
|
37
38
|
suggestDomainsTool,
|
|
38
39
|
executeSuggestDomains,
|
|
40
|
+
suggestDomainsSmartTool,
|
|
41
|
+
executeSuggestDomainsSmart,
|
|
39
42
|
tldInfoTool,
|
|
40
43
|
executeTldInfo,
|
|
41
44
|
checkSocialsTool,
|
|
@@ -57,6 +60,7 @@ const TOOLS: Tool[] = [
|
|
|
57
60
|
bulkSearchTool as Tool,
|
|
58
61
|
compareRegistrarsTool as Tool,
|
|
59
62
|
suggestDomainsTool as Tool,
|
|
63
|
+
suggestDomainsSmartTool as Tool,
|
|
60
64
|
tldInfoTool as Tool,
|
|
61
65
|
checkSocialsTool as Tool,
|
|
62
66
|
];
|
|
@@ -187,6 +191,18 @@ async function executeToolCall(
|
|
|
187
191
|
max_suggestions: (args.max_suggestions as number) || 10,
|
|
188
192
|
});
|
|
189
193
|
|
|
194
|
+
case 'suggest_domains_smart':
|
|
195
|
+
return executeSuggestDomainsSmart({
|
|
196
|
+
query: args.query as string,
|
|
197
|
+
tld: (args.tld as string) || 'com',
|
|
198
|
+
industry: args.industry as
|
|
199
|
+
| 'tech' | 'startup' | 'finance' | 'health' | 'food' | 'creative' | 'ecommerce' | 'education' | 'gaming' | 'social'
|
|
200
|
+
| undefined,
|
|
201
|
+
style: (args.style as 'brandable' | 'descriptive' | 'short' | 'creative') || 'brandable',
|
|
202
|
+
max_suggestions: (args.max_suggestions as number) || 15,
|
|
203
|
+
include_premium: (args.include_premium as boolean) || false,
|
|
204
|
+
});
|
|
205
|
+
|
|
190
206
|
case 'tld_info':
|
|
191
207
|
return executeTldInfo({
|
|
192
208
|
tld: args.tld as string,
|
|
@@ -112,14 +112,15 @@ const PLATFORM_CONFIGS: Record<SocialPlatform, PlatformConfig> = {
|
|
|
112
112
|
// MEDIUM CONFIDENCE (Status codes, some edge cases)
|
|
113
113
|
// ─────────────────────────────────────────────────────────────────────────
|
|
114
114
|
twitter: {
|
|
115
|
-
|
|
115
|
+
// Use oembed API - Twitter SPA returns 200 for all direct requests
|
|
116
|
+
url: 'https://publish.twitter.com/oembed?url=https://twitter.com/{}',
|
|
116
117
|
profileUrl: 'https://twitter.com/{}',
|
|
117
118
|
errorType: 'status_code',
|
|
118
119
|
errorCode: 404,
|
|
119
|
-
confidence: '
|
|
120
|
-
method: '
|
|
120
|
+
confidence: 'high', // oembed API is reliable
|
|
121
|
+
method: 'GET',
|
|
121
122
|
headers: {
|
|
122
|
-
'User-Agent': '
|
|
123
|
+
'User-Agent': 'Domain-Search-MCP/1.0',
|
|
123
124
|
},
|
|
124
125
|
regexCheck: /^[A-Za-z0-9_]{1,15}$/,
|
|
125
126
|
},
|
|
@@ -226,8 +227,8 @@ export const checkSocialsTool = {
|
|
|
226
227
|
description: `Check if a username is available on social media and developer platforms.
|
|
227
228
|
|
|
228
229
|
Supports 10 platforms with varying confidence levels:
|
|
229
|
-
- HIGH: GitHub, npm, PyPI, Reddit (reliable public APIs)
|
|
230
|
-
- MEDIUM:
|
|
230
|
+
- HIGH: GitHub, npm, PyPI, Reddit, Twitter/X (reliable public APIs)
|
|
231
|
+
- MEDIUM: YouTube, ProductHunt (status code based)
|
|
231
232
|
- LOW: Instagram, LinkedIn, TikTok (block automated checks - verify manually)
|
|
232
233
|
|
|
233
234
|
Returns availability status with confidence indicator.
|