dsh-ab-wechat-scrape 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +330 -0
  3. package/cordis.patch.yml +8 -0
  4. package/lib/clean.d.ts +32 -0
  5. package/lib/clean.d.ts.map +1 -0
  6. package/lib/clean.js +193 -0
  7. package/lib/clean.js.map +1 -0
  8. package/lib/document.d.ts +27 -0
  9. package/lib/document.d.ts.map +1 -0
  10. package/lib/document.js +79 -0
  11. package/lib/document.js.map +1 -0
  12. package/lib/fetch.d.ts +84 -0
  13. package/lib/fetch.d.ts.map +1 -0
  14. package/lib/fetch.js +238 -0
  15. package/lib/fetch.js.map +1 -0
  16. package/lib/filename.d.ts +36 -0
  17. package/lib/filename.d.ts.map +1 -0
  18. package/lib/filename.js +92 -0
  19. package/lib/filename.js.map +1 -0
  20. package/lib/html.d.ts +114 -0
  21. package/lib/html.d.ts.map +1 -0
  22. package/lib/html.js +402 -0
  23. package/lib/html.js.map +1 -0
  24. package/lib/index.d.ts +219 -0
  25. package/lib/index.d.ts.map +1 -0
  26. package/lib/index.js +2523 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/list.d.ts +55 -0
  29. package/lib/list.d.ts.map +1 -0
  30. package/lib/list.js +191 -0
  31. package/lib/list.js.map +1 -0
  32. package/lib/markdown.d.ts +20 -0
  33. package/lib/markdown.d.ts.map +1 -0
  34. package/lib/markdown.js +250 -0
  35. package/lib/markdown.js.map +1 -0
  36. package/lib/render.d.ts +103 -0
  37. package/lib/render.d.ts.map +1 -0
  38. package/lib/render.js +209 -0
  39. package/lib/render.js.map +1 -0
  40. package/lib/store.d.ts +50 -0
  41. package/lib/store.d.ts.map +1 -0
  42. package/lib/store.js +173 -0
  43. package/lib/store.js.map +1 -0
  44. package/lib/types.d.ts +133 -0
  45. package/lib/types.d.ts.map +1 -0
  46. package/lib/types.js +8 -0
  47. package/lib/types.js.map +1 -0
  48. package/package.json +91 -0
  49. package/tsconfig.json +30 -0
  50. package/tsdown.config.ts +18 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAG/C,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAKnD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAE,aAAa,EAAgC,MAAM,WAAW,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAaxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGvD,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAA;AACnC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;AAErD,uCAAuC;AACvC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAA;AAExC,uEAAuE;AACvE,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAEzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAEhD,uEAAuE;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AAEjC,kGAAkG;AAClG,MAAM,kBAAkB,GAAG,iHAAiH,CAAA;AAoE5I;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACrD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACzE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,MAAM,CAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IACtD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACxD,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG;IAClB,+GAA+G;IAC/G,oJAAoJ;IACpJ,yKAAyK;IACzK,2GAA2G;CAC5G,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEX,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,2HAA2H;IAC3H,kJAAkJ;IAClJ,iFAAiF;CAClF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAmDX,gDAAgD;AAChD,SAAS,YAAY,CAAC,MAAc,EAAE,GAAW;IAC/C,OAAO,IAAI,KAAK,CACd,yBAAyB,GAAG,GAAG,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM;UACjE,kEAAkE,CACrE,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAW;IACnD,OAAO,IAAI,KAAK,CACd,UAAU,GAAG,GAAG,GAAG,kCAAkC,GAAG,MAAM,GAAG,MAAM;UACrE,sEAAsE,CACzE,CAAA;AACH,CAAC;AAED,iDAAiD;AACjD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACrF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACrG,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,WAAmB;IAC/D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACvF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IACtG,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,GAAuB;IAC1E,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,QAAgB;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC9D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC/E,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,SAAS,CAAC,IAAiB,EAAE,GAAW,EAAE,MAAoB;IAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAA;IAC5D,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;IAChD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACxB,6EAA6E;QAC7E,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QAClD,MAAM,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,YAAoB,EAAE,MAAe;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC5D,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACjG,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,UAAU,EAAE,IAAI,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAA;IACjG,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACxD,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAA;IACzF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC;gBACH,yEAAyE;gBACzE,yEAAyE;gBACzE,gBAAgB;gBAChB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;sBAC3E,gCAAgC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC,CAAC;KACH,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CACnB,OAAyB,EACzB,IAAgB,EAChB,IAAiB,EACjB,GAAW,EACX,WAAmB,EACnB,QAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;IACjH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChD,OAAO;QACL,GAAG;QACH,WAAW;QACX,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iFAAiF;QACjF,8DAA8D;QAC9D,IAAI;QACJ,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,cAAc,EAAE,OAAO,CAAC,SAAS;QACjC,MAAM,EAAE,IAAI,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACnG,QAAQ;KACT,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,QAAQ,CACrB,GAAW,EACX,IAAgB,EAChB,IAAiB,EACjB,MAAoB;IAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IACjC,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAE5D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC9C,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM;WACzC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;WAC1B,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,cAAc,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QACzF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;QAC7E,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACnD,QAAQ,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;IACxE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QAClD,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC1F,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,gDAAgD;kBAC5F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;kBAC9E,oEAAoE,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IACD,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC,CAAA;IACvF,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,wEAAwE,CAAC,CAAA;AAC3H,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,QAAQ,CACrB,KAAe,EACf,IAAY,EACZ,IAAgB,EAChB,MAAoB;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,CAAC,KAA0B,EAAQ,EAAE;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/E,CAAC,CAAA;IACD,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,0BAA0B;IAC1B,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,OAAe,EAAU,EAAE;QAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAA;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,CAAC,CAAA;IACD,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,SAAS,CAAC;QACR,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3C,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;QAChF,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACxF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAA;QAChE,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;QAChD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YAClD,MAAM,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACxB,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAChD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;QAC/D,OAAO,GAAG,WAAW,CAAA;QACrB,KAAK,IAAI,CAAC,CAAA;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAgB,EAChB,IAAiB,EACjB,MAAoB;IAEpB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG,GAAG,8EAA8E,CAAC,CAAA;IACpH,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAA;AACxB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,IAAgB,EAAE,MAAoB;IACnF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAoB,EAAE,CAAA;IACpC,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAoB,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA;IAEzE,MAAM,IAAI,GAAG,KAAK,EAAE,OAAuB,EAAiB,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE;YACvC,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC9C,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,SAAS,EAAE,IAAI,CAAC;YAAE,MAAK;QAE3B,IAAI,OAAoB,CAAA;QACxB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;gBAAE,MAAM,KAAK,CAAA;YACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvD,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YACxC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzD,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACpB,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;gBAAE,MAAM,KAAK,CAAA;YACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvD,SAAQ;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAEtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,EAAE,IAAI,CAAC;gBAAE,MAAK;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,IAAI,CAAC;gBACH,kFAAkF;gBAClF,MAAM,IAAI,CAAC,MAAM,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;oBAAE,MAAM,KAAK,CAAA;gBACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC;YACV,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACpD,KAAK,GAAG,IAAI,CAAC,GAAG;YAChB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;SACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACf,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;IACzE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,6EAA6E;IAC7E,yEAAyE;IACzE,WAAW,CAAC,MAAM,CAAC,CAAA;IAEnB,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,aAAa,GAAqC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAChF,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;IAC3G,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO;QAC1C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc,CAAC;YACf,MAAM,EAAE,MAAM,CAAC,cAAc;YAC7B,GAAG,EAAE,MAAM,CAAC,WAAW;YACvB,OAAO,EAAE,MAAM,CAAC,cAAc;YAC9B,cAAc,EAAE,MAAM,CAAC,qBAAqB;YAC5C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,aAAa;YAC5B,QAAQ,EAAE,MAAM,CAAC,cAAc;YAC/B,aAAa,EAAE,MAAM,CAAC,mBAAmB;YACzC,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;IAEJ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;IACjF,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;KACvF,CAAC,CAAA;IAEF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0FAA0F;aACxG;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,mFAAmF;aACjG;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,+LAA+L;aAC7M;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC;gBACvB,WAAW,EAAE,wFAAwF;aACtG;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,iEAAiE;aAC/E;SACF;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACvC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACzC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC1C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACzC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACzC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC3C,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACnD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gCACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;6BACzC;yBACF;qBACF;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACzC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gCACnE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;6BAC/C;yBACF;qBACF;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;6BAC1C;yBACF;qBACF;iBACF;aACF;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;SACxE;QACD,OAAO,CAAC,IAAI,EAAE,IAAI;YAChB,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;YACtE,MAAM,MAAM,GAAG,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACtG,OAAO,MAAM,CAAC,IAAI,EAAE;gBAClB,OAAO;gBACP,QAAQ;gBACR,MAAM;gBACN,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;gBACtG,aAAa,EAAE,MAAM;aACtB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC;QACD,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,wBAAwB;YACjF,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACnD,CAAC;KACH,CAAC,CAAC,CAAA;AACL,CAAC"}
package/lib/list.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ /**
2
+ * List and collection page parsing. A WeChat collection page
3
+ * (mp/appmsgalbum?action=getalbum) carries its article list in static HTML: one
4
+ * element per article with a data-link, plus the msgid and itemidx cursors that
5
+ * address the next page, and a continue_flag that says whether more follow. A
6
+ * generic list page links its articles with ordinary anchors instead, and
7
+ * addresses its continuation with an ordinary next-page anchor when it has one.
8
+ * This module turns either into an ordered, de-duplicated list of article links
9
+ * plus the cursor that continues the walk.
10
+ * @module @deepseek-ai/dsh-ab-wechat-scrape/list
11
+ */
12
+ /** One article entry a list page carried. */
13
+ export interface ListItem {
14
+ /** The article link, normalized to https and stripped of its fragment. */
15
+ url: string;
16
+ /** Message id cursor the entry carried, empty on a generic list page. */
17
+ msgid: string;
18
+ /** Item index cursor the entry carried, empty on a generic list page. */
19
+ itemidx: string;
20
+ }
21
+ /** The cursor that addresses the collection page after this one. */
22
+ export interface ListCursor {
23
+ /** Message id of the page's last entry. */
24
+ msgid: string;
25
+ /** Item index of the page's last entry. */
26
+ itemidx: string;
27
+ }
28
+ /** What one list page produced. */
29
+ export interface ListPage {
30
+ /** Page title as the page carried it, or an empty string. */
31
+ title: string;
32
+ /** Article entries in document order, de-duplicated. */
33
+ items: ListItem[];
34
+ /** Whether the page reported entries beyond its own. */
35
+ more: boolean;
36
+ /** Cursor that continues the walk, absent when the page addresses no next page. */
37
+ next: ListCursor | undefined;
38
+ /** Link a generic list page gives for its next page; empty when it carries none. */
39
+ nextUrl: string;
40
+ }
41
+ /**
42
+ * Parse one list or collection page.
43
+ * @param html - the page's HTML.
44
+ * @param requestedUrl - the link the page was fetched from, used to resolve relative hrefs and to drop a self-link.
45
+ * @returns the page's title, entries, and its continuation cursor when it carries one.
46
+ */
47
+ export declare function parseListPage(html: string, requestedUrl: string): ListPage;
48
+ /**
49
+ * Address the collection page after one that ended on a cursor.
50
+ * @param pageUrl - the collection page the walk is on.
51
+ * @param cursor - the msgid and itemidx the page's last entry carried.
52
+ * @returns the next page's URL, or an empty string when the URL names no collection.
53
+ */
54
+ export declare function albumPageUrl(pageUrl: string, cursor: ListCursor): string;
55
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA6BH,6CAA6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,wDAAwD;IACxD,IAAI,EAAE,OAAO,CAAA;IACb,mFAAmF;IACnF,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5B,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,CAuC1E;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAexE"}
package/lib/list.js ADDED
@@ -0,0 +1,191 @@
1
+ /**
2
+ * List and collection page parsing. A WeChat collection page
3
+ * (mp/appmsgalbum?action=getalbum) carries its article list in static HTML: one
4
+ * element per article with a data-link, plus the msgid and itemidx cursors that
5
+ * address the next page, and a continue_flag that says whether more follow. A
6
+ * generic list page links its articles with ordinary anchors instead, and
7
+ * addresses its continuation with an ordinary next-page anchor when it has one.
8
+ * This module turns either into an ordered, de-duplicated list of article links
9
+ * plus the cursor that continues the walk.
10
+ * @module @deepseek-ai/dsh-ab-wechat-scrape/list
11
+ */
12
+ import { decodeEntities, isMpArticleLink, metaContent, parseAttributes, textOf } from "./html.js";
13
+ /** One opening tag, with its attribute text. */
14
+ const OPEN_TAG = /<([a-zA-Z][a-zA-Z0-9-]*)((?:"[^"]*"|'[^']*'|[^>"'])*?)(\/?)>/g;
15
+ /** One anchor tag, whatever attributes it carries. */
16
+ const ANCHOR = /<a\b[^>]*>/gi;
17
+ /** The href of one anchor tag, double- or single-quoted. */
18
+ const HREF = /href\s*=\s*(?:"([^"]*)"|'([^']*)')/i;
19
+ /** The inline flag a collection page sets while further pages exist. */
20
+ const CONTINUE_FLAG = /continue_flag\s*:\s*['"]?1['"]?/;
21
+ /**
22
+ * The whole text of an anchor that addresses the next page of a generic list.
23
+ * Anchored at both ends so a link merely mentioning "更多" elsewhere in a
24
+ * sentence is not mistaken for the continuation.
25
+ */
26
+ const NEXT_TEXT = /^(?:下一页|下页|下一頁|下一篇|更多|查看更多|next(?:\s*page)?|older|›|»|>>)$/i;
27
+ /**
28
+ * Entries one collection page carries. The server ignores a larger count, so
29
+ * this is the page size the walk must assume rather than a deployment choice.
30
+ */
31
+ const ALBUM_PAGE_SIZE = '20';
32
+ /**
33
+ * Parse one list or collection page.
34
+ * @param html - the page's HTML.
35
+ * @param requestedUrl - the link the page was fetched from, used to resolve relative hrefs and to drop a self-link.
36
+ * @returns the page's title, entries, and its continuation cursor when it carries one.
37
+ */
38
+ export function parseListPage(html, requestedUrl) {
39
+ const items = [];
40
+ const seen = new Set();
41
+ const add = (raw, cursors) => {
42
+ const url = normalizeLink(raw, requestedUrl);
43
+ if (url === '' || url === requestedUrl || seen.has(url))
44
+ return;
45
+ seen.add(url);
46
+ items.push({
47
+ url,
48
+ msgid: cursors?.get('data-msgid') ?? '',
49
+ itemidx: cursors?.get('data-itemidx') ?? '',
50
+ });
51
+ };
52
+ OPEN_TAG.lastIndex = 0;
53
+ let match;
54
+ while ((match = OPEN_TAG.exec(html)) !== null) {
55
+ // Only collection entries carry data-link; skipping the rest avoids parsing
56
+ // attributes for every tag on a large page.
57
+ if (!match[0].includes('data-link'))
58
+ continue;
59
+ const attributes = parseAttributes(match[0]);
60
+ const link = attributes.get('data-link');
61
+ if (link !== undefined)
62
+ add(link, attributes);
63
+ }
64
+ while ((match = ANCHOR.exec(html)) !== null) {
65
+ const href = HREF.exec(match[0]);
66
+ const raw = href?.[1] ?? href?.[2];
67
+ // An album skin that renders its entries as anchors puts the cursors on the
68
+ // anchor, so the same attributes are read here as on a data-link element.
69
+ if (raw !== undefined)
70
+ add(raw, parseAttributes(match[0]));
71
+ }
72
+ const more = CONTINUE_FLAG.test(html);
73
+ // The cursor is the deepest entry's, not simply the last item's: an element
74
+ // after the list — a footer link or a promotion — contributes a link and no
75
+ // cursor, and the walk would stop at the first page if it were used.
76
+ const cursor = [...items].reverse().find(item => item.msgid !== '' && item.itemidx !== '');
77
+ const next = more && cursor !== undefined ? { msgid: cursor.msgid, itemidx: cursor.itemidx } : undefined;
78
+ return { title: listTitle(html), items, more, next, nextUrl: nextPageUrl(html, requestedUrl) };
79
+ }
80
+ /**
81
+ * The link a generic list page gives for its own next page.
82
+ * @param html - the page's HTML.
83
+ * @param base - the link the page was fetched from.
84
+ * @returns the absolute same-host next-page link, or an empty string when the page carries none.
85
+ */
86
+ function nextPageUrl(html, base) {
87
+ const anchors = /<a\b[^>]*>[\s\S]*?<\/a\s*>/gi;
88
+ let match;
89
+ while ((match = anchors.exec(html)) !== null) {
90
+ if (!NEXT_TEXT.test(textOf(match[0])))
91
+ continue;
92
+ const href = HREF.exec(match[0]);
93
+ const raw = href?.[1] ?? href?.[2];
94
+ if (raw === undefined)
95
+ continue;
96
+ const resolved = absoluteSameHostLink(raw, base);
97
+ if (resolved !== '' && resolved !== base)
98
+ return resolved;
99
+ }
100
+ return '';
101
+ }
102
+ /**
103
+ * Address the collection page after one that ended on a cursor.
104
+ * @param pageUrl - the collection page the walk is on.
105
+ * @param cursor - the msgid and itemidx the page's last entry carried.
106
+ * @returns the next page's URL, or an empty string when the URL names no collection.
107
+ */
108
+ export function albumPageUrl(pageUrl, cursor) {
109
+ let parsed;
110
+ try {
111
+ parsed = new URL(pageUrl);
112
+ }
113
+ catch {
114
+ // A page URL that cannot be parsed addresses no next page.
115
+ return '';
116
+ }
117
+ if (parsed.searchParams.get('__biz') === null || parsed.searchParams.get('album_id') === null)
118
+ return '';
119
+ parsed.hash = '';
120
+ parsed.searchParams.set('action', 'getalbum');
121
+ parsed.searchParams.set('count', ALBUM_PAGE_SIZE);
122
+ parsed.searchParams.set('begin_msgid', cursor.msgid);
123
+ parsed.searchParams.set('begin_itemidx', cursor.itemidx);
124
+ return parsed.href;
125
+ }
126
+ /**
127
+ * Normalize one page link to an absolute https article URL.
128
+ * @param raw - the link as the page carried it, possibly relative and entity-encoded.
129
+ * @param base - the link the page was fetched from, resolving a relative href.
130
+ * @returns the normalized article link, or an empty string when it names no article page.
131
+ */
132
+ function normalizeLink(raw, base) {
133
+ const parsed = absoluteLink(raw, base);
134
+ if (parsed === undefined)
135
+ return '';
136
+ if (parsed.protocol === 'http:' && parsed.hostname === 'mp.weixin.qq.com')
137
+ parsed.protocol = 'https:';
138
+ return isMpArticleLink(parsed.href) ? parsed.href : '';
139
+ }
140
+ /**
141
+ * Resolve one page link against its base.
142
+ * @param raw - the link as the page carried it, possibly relative and entity-encoded.
143
+ * @param base - the link the page was fetched from.
144
+ * @returns the absolute http(s) link without its fragment, or undefined when it names no such link.
145
+ */
146
+ function absoluteLink(raw, base) {
147
+ let parsed;
148
+ try {
149
+ parsed = new URL(decodeEntities(raw).trim(), base);
150
+ }
151
+ catch {
152
+ // A malformed or relative-without-base link names no page.
153
+ return undefined;
154
+ }
155
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
156
+ return undefined;
157
+ parsed.hash = '';
158
+ return parsed;
159
+ }
160
+ /**
161
+ * Resolve one next-page link against its base, requiring the same host: a
162
+ * continuation that leaves the site is not the list's own next page.
163
+ * @param raw - the link as the page carried it.
164
+ * @param base - the link the page was fetched from.
165
+ * @returns the absolute link, or an empty string when it names no same-host page.
166
+ */
167
+ function absoluteSameHostLink(raw, base) {
168
+ let origin;
169
+ try {
170
+ origin = new URL(base);
171
+ }
172
+ catch {
173
+ // A page link that cannot serve as a base anchors no continuation.
174
+ return '';
175
+ }
176
+ const parsed = absoluteLink(raw, base);
177
+ return parsed !== undefined && parsed.hostname === origin.hostname ? parsed.href : '';
178
+ }
179
+ /**
180
+ * The title one list page carries.
181
+ * @param html - the page's HTML.
182
+ * @returns the page's own title, or an empty string when it carries none.
183
+ */
184
+ function listTitle(html) {
185
+ const openGraph = metaContent(html, 'og:title');
186
+ if (openGraph !== '')
187
+ return openGraph;
188
+ const title = /<title[^>]*>([\s\S]*?)<\/title>/i.exec(html);
189
+ return title?.[1] === undefined ? '' : textOf(title[1]);
190
+ }
191
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * HTML-to-Markdown and HTML-to-text conversion for article bodies. A single tag
3
+ * walker covers the elements WeChat article bodies use: sections, paragraphs,
4
+ * headings, emphasis, links, lazy images, lists, quotes, and code. It is a
5
+ * focused converter for that corpus, not a general HTML parser.
6
+ * @module @deepseek-ai/dsh-ab-wechat-scrape/markdown
7
+ */
8
+ /**
9
+ * Convert one article body to Markdown.
10
+ * @param html - the body element's inner HTML.
11
+ * @returns Markdown text with headings, lists, links, and images preserved.
12
+ */
13
+ export declare function htmlToMarkdown(html: string): string;
14
+ /**
15
+ * Convert one article body to plain text.
16
+ * @param html - the body element's inner HTML.
17
+ * @returns plain text with block boundaries preserved and inline markers dropped.
18
+ */
19
+ export declare function htmlToText(html: string): string;
20
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -0,0 +1,250 @@
1
+ /**
2
+ * HTML-to-Markdown and HTML-to-text conversion for article bodies. A single tag
3
+ * walker covers the elements WeChat article bodies use: sections, paragraphs,
4
+ * headings, emphasis, links, lazy images, lists, quotes, and code. It is a
5
+ * focused converter for that corpus, not a general HTML parser.
6
+ * @module @deepseek-ai/dsh-ab-wechat-scrape/markdown
7
+ */
8
+ import { decodeEntities, parseAttributes } from "./html.js";
9
+ /** Elements that start a new block of prose. */
10
+ const BLOCK_ELEMENTS = new Set([
11
+ 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'dd', 'dt', 'figcaption', 'figure',
12
+ 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'li', 'main', 'nav', 'ol',
13
+ 'p', 'section', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'ul',
14
+ ]);
15
+ /** Elements whose content never reaches the article text. */
16
+ const SKIP_ELEMENTS = new Set(['script', 'style', 'noscript', 'svg', 'iframe', 'video', 'audio']);
17
+ /** Heading element names, captured with their level. */
18
+ const HEADING = /^h([1-6])$/;
19
+ /** One opening tag, closing tag, comment, or run of text. */
20
+ const TOKEN = /<([a-zA-Z][a-zA-Z0-9-]*)((?:"[^"]*"|'[^']*'|[^>"'])*?)(\/?)>|<\/([a-zA-Z][a-zA-Z0-9-]*)>|<!--[\s\S]*?-->|[^<]+/g;
21
+ /**
22
+ * Convert one article body to Markdown.
23
+ * @param html - the body element's inner HTML.
24
+ * @returns Markdown text with headings, lists, links, and images preserved.
25
+ */
26
+ export function htmlToMarkdown(html) {
27
+ return convert(html, true);
28
+ }
29
+ /**
30
+ * Convert one article body to plain text.
31
+ * @param html - the body element's inner HTML.
32
+ * @returns plain text with block boundaries preserved and inline markers dropped.
33
+ */
34
+ export function htmlToText(html) {
35
+ return convert(html, false);
36
+ }
37
+ /**
38
+ * Walk the body's tags once, emitting block structure and inline markers.
39
+ * @param html - body HTML.
40
+ * @param markdown - whether heading, emphasis, link, and fence markers are emitted.
41
+ * @returns normalized output text.
42
+ */
43
+ function convert(html, markdown) {
44
+ let result = '';
45
+ let skipTag;
46
+ let skipDepth = 0;
47
+ let preDepth = 0;
48
+ let linkHref;
49
+ let codeOpen = false;
50
+ let cellsInRow = 0;
51
+ const lists = [];
52
+ const ensureNewline = () => {
53
+ if (result !== '' && !result.endsWith('\n'))
54
+ result += '\n';
55
+ };
56
+ const ensureBlank = () => {
57
+ if (result === '')
58
+ return;
59
+ ensureNewline();
60
+ if (!result.endsWith('\n\n'))
61
+ result += '\n';
62
+ };
63
+ const marker = (text) => {
64
+ if (markdown)
65
+ result += text;
66
+ };
67
+ const open = (name, rawAttributes) => {
68
+ if (preDepth > 0) {
69
+ if (name === 'br')
70
+ result += '\n';
71
+ return;
72
+ }
73
+ if (name === 'br') {
74
+ result += '\n';
75
+ return;
76
+ }
77
+ if (name === 'hr') {
78
+ ensureBlank();
79
+ marker('---');
80
+ ensureBlank();
81
+ return;
82
+ }
83
+ if (name === 'img') {
84
+ const attributes = parseAttributes(rawAttributes);
85
+ const src = attributes.get('data-src') ?? attributes.get('src') ?? '';
86
+ if (src === '' || src.startsWith('data:'))
87
+ return;
88
+ const alt = attributes.get('alt') ?? '\u56fe\u7247';
89
+ result += markdown ? '![' + alt + '](' + src + ')' : src;
90
+ return;
91
+ }
92
+ if (name === 'pre') {
93
+ ensureBlank();
94
+ marker('~~~');
95
+ ensureNewline();
96
+ preDepth = 1;
97
+ return;
98
+ }
99
+ if (BLOCK_ELEMENTS.has(name)) {
100
+ ensureBlank();
101
+ const heading = HEADING.exec(name);
102
+ if (heading?.[1] !== undefined) {
103
+ marker('#'.repeat(Number(heading[1])) + ' ');
104
+ }
105
+ else if (name === 'li') {
106
+ const list = lists[lists.length - 1];
107
+ if (list?.ordered === true) {
108
+ list.index += 1;
109
+ result += list.index + '. ';
110
+ }
111
+ else {
112
+ result += '- ';
113
+ }
114
+ }
115
+ else if (name === 'blockquote') {
116
+ marker('> ');
117
+ }
118
+ else if (name === 'tr') {
119
+ cellsInRow = 0;
120
+ }
121
+ else if ((name === 'td' || name === 'th') && cellsInRow > 0) {
122
+ result += ' | ';
123
+ }
124
+ else if (name === 'ul' || name === 'ol') {
125
+ lists.push({ ordered: name === 'ol', index: 0 });
126
+ }
127
+ return;
128
+ }
129
+ if (name === 'a') {
130
+ linkHref = parseAttributes(rawAttributes).get('href');
131
+ marker('[');
132
+ return;
133
+ }
134
+ if (name === 'strong' || name === 'b') {
135
+ marker('**');
136
+ return;
137
+ }
138
+ if (name === 'em' || name === 'i') {
139
+ marker('*');
140
+ return;
141
+ }
142
+ if (name === 'del' || name === 's' || name === 'strike') {
143
+ marker('~~');
144
+ return;
145
+ }
146
+ if (name === 'code' && !codeOpen) {
147
+ marker('\u0060');
148
+ codeOpen = true;
149
+ }
150
+ };
151
+ const close = (name) => {
152
+ if (name === 'pre') {
153
+ ensureNewline();
154
+ marker('~~~');
155
+ ensureBlank();
156
+ preDepth = 0;
157
+ return;
158
+ }
159
+ if (preDepth > 0)
160
+ return;
161
+ if (name === 'a') {
162
+ const href = linkHref;
163
+ linkHref = undefined;
164
+ if (markdown && href !== undefined && href !== '')
165
+ result += '](' + href + ')';
166
+ return;
167
+ }
168
+ if (name === 'strong' || name === 'b') {
169
+ marker('**');
170
+ return;
171
+ }
172
+ if (name === 'em' || name === 'i') {
173
+ marker('*');
174
+ return;
175
+ }
176
+ if (name === 'del' || name === 's' || name === 'strike') {
177
+ marker('~~');
178
+ return;
179
+ }
180
+ if (name === 'code' && codeOpen) {
181
+ marker('\u0060');
182
+ codeOpen = false;
183
+ return;
184
+ }
185
+ if (name === 'td' || name === 'th') {
186
+ cellsInRow += 1;
187
+ return;
188
+ }
189
+ if (name === 'tr') {
190
+ ensureNewline();
191
+ return;
192
+ }
193
+ if (name === 'ul' || name === 'ol') {
194
+ lists.pop();
195
+ ensureBlank();
196
+ return;
197
+ }
198
+ if (BLOCK_ELEMENTS.has(name))
199
+ ensureBlank();
200
+ };
201
+ TOKEN.lastIndex = 0;
202
+ let match;
203
+ while ((match = TOKEN.exec(html)) !== null) {
204
+ const whole = match[0];
205
+ const openName = match[1];
206
+ const closeName = match[4];
207
+ if (closeName !== undefined) {
208
+ const name = closeName.toLowerCase();
209
+ if (skipTag !== undefined) {
210
+ if (name === skipTag) {
211
+ skipDepth -= 1;
212
+ if (skipDepth === 0)
213
+ skipTag = undefined;
214
+ }
215
+ continue;
216
+ }
217
+ close(name);
218
+ continue;
219
+ }
220
+ if (openName !== undefined) {
221
+ const name = openName.toLowerCase();
222
+ const selfClosing = match[3] === '/';
223
+ if (skipTag !== undefined) {
224
+ if (name === skipTag && !selfClosing)
225
+ skipDepth += 1;
226
+ continue;
227
+ }
228
+ if (SKIP_ELEMENTS.has(name)) {
229
+ if (!selfClosing) {
230
+ skipTag = name;
231
+ skipDepth = 1;
232
+ }
233
+ continue;
234
+ }
235
+ open(name, match[2] ?? '');
236
+ continue;
237
+ }
238
+ if (whole.startsWith('<!--'))
239
+ continue;
240
+ if (skipTag !== undefined)
241
+ continue;
242
+ result += decodeEntities(whole).replace(/[\t\r\n\u00a0]+/g, ' ');
243
+ }
244
+ return result
245
+ .replace(/[ \t]+/g, ' ')
246
+ .replace(/ *\n */g, '\n')
247
+ .replace(/\n{3,}/g, '\n\n')
248
+ .trim();
249
+ }
250
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}