webpeel 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/dist/cli.js +1299 -85
- package/dist/cli.js.map +1 -1
- package/dist/core/application-tracker.d.ts +85 -0
- package/dist/core/application-tracker.d.ts.map +1 -0
- package/dist/core/application-tracker.js +184 -0
- package/dist/core/application-tracker.js.map +1 -0
- package/dist/core/apply.d.ts +163 -0
- package/dist/core/apply.d.ts.map +1 -0
- package/dist/core/apply.js +817 -0
- package/dist/core/apply.js.map +1 -0
- package/dist/core/branding.d.ts +1 -1
- package/dist/core/branding.d.ts.map +1 -1
- package/dist/core/budget.d.ts +43 -0
- package/dist/core/budget.d.ts.map +1 -0
- package/dist/core/budget.js +325 -0
- package/dist/core/budget.js.map +1 -0
- package/dist/core/challenge-detection.d.ts +27 -0
- package/dist/core/challenge-detection.d.ts.map +1 -0
- package/dist/core/challenge-detection.js +436 -0
- package/dist/core/challenge-detection.js.map +1 -0
- package/dist/core/change-tracking.d.ts.map +1 -1
- package/dist/core/change-tracking.js +10 -1
- package/dist/core/change-tracking.js.map +1 -1
- package/dist/core/crawler.d.ts.map +1 -1
- package/dist/core/crawler.js +17 -4
- package/dist/core/crawler.js.map +1 -1
- package/dist/core/diff.d.ts +62 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/diff.js +289 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/extract-listings.d.ts +39 -0
- package/dist/core/extract-listings.d.ts.map +1 -0
- package/dist/core/extract-listings.js +331 -0
- package/dist/core/extract-listings.js.map +1 -0
- package/dist/core/extract.d.ts.map +1 -1
- package/dist/core/extract.js +15 -2
- package/dist/core/extract.js.map +1 -1
- package/dist/core/fetcher.d.ts +29 -3
- package/dist/core/fetcher.d.ts.map +1 -1
- package/dist/core/fetcher.js +158 -20
- package/dist/core/fetcher.js.map +1 -1
- package/dist/core/human.d.ts +176 -0
- package/dist/core/human.d.ts.map +1 -0
- package/dist/core/human.js +681 -0
- package/dist/core/human.js.map +1 -0
- package/dist/core/jobs.d.ts +12 -2
- package/dist/core/jobs.d.ts.map +1 -1
- package/dist/core/jobs.js +124 -2
- package/dist/core/jobs.js.map +1 -1
- package/dist/core/map.d.ts.map +1 -1
- package/dist/core/map.js +14 -2
- package/dist/core/map.js.map +1 -1
- package/dist/core/paginate.d.ts +32 -0
- package/dist/core/paginate.d.ts.map +1 -0
- package/dist/core/paginate.js +107 -0
- package/dist/core/paginate.js.map +1 -0
- package/dist/core/rate-governor.d.ts +81 -0
- package/dist/core/rate-governor.d.ts.map +1 -0
- package/dist/core/rate-governor.js +238 -0
- package/dist/core/rate-governor.js.map +1 -0
- package/dist/core/search-provider.d.ts +5 -0
- package/dist/core/search-provider.d.ts.map +1 -1
- package/dist/core/search-provider.js +81 -2
- package/dist/core/search-provider.js.map +1 -1
- package/dist/core/site-search.d.ts +45 -0
- package/dist/core/site-search.d.ts.map +1 -0
- package/dist/core/site-search.js +253 -0
- package/dist/core/site-search.js.map +1 -0
- package/dist/core/strategies.d.ts +8 -0
- package/dist/core/strategies.d.ts.map +1 -1
- package/dist/core/strategies.js +185 -45
- package/dist/core/strategies.js.map +1 -1
- package/dist/core/strategy-hooks.d.ts +6 -0
- package/dist/core/strategy-hooks.d.ts.map +1 -1
- package/dist/core/strategy-hooks.js.map +1 -1
- package/dist/core/table-format.d.ts +31 -0
- package/dist/core/table-format.d.ts.map +1 -0
- package/dist/core/table-format.js +147 -0
- package/dist/core/table-format.js.map +1 -0
- package/dist/core/user-agents.d.ts +58 -0
- package/dist/core/user-agents.d.ts.map +1 -0
- package/dist/core/user-agents.js +159 -0
- package/dist/core/user-agents.js.map +1 -0
- package/dist/core/watch.d.ts +100 -0
- package/dist/core/watch.d.ts.map +1 -0
- package/dist/core/watch.js +368 -0
- package/dist/core/watch.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +3 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/llms.txt +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/core/strategies.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EACL,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC;AAK7B,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAErD,sDAAsD;QACtD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAClE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QAED,gDAAgD;QAChD,IACE,QAAQ,KAAK,WAAW;YACxB,QAAQ,KAAK,eAAe;YAC5B,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC/B,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QAED,mDAAmD;QACnD,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAClE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAE/E,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AAC/D,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC;AA0DD,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,OAA+B;IAE/B,MAAM,EACJ,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,MAAM,GACP,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE;YACrC,SAAS;YACT,MAAM;YACN,SAAS;YACT,UAAU;YACV,kBAAkB;YAClB,OAAO;YACP,OAAO;YACP,OAAO,EAAE,gBAAgB;YACzB,OAAO;YACP,YAAY;YACZ,MAAM;SACP,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,MAAM;YACT,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACjD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAErC,4EAA4E;QAC5E,IAAI,CAAC,gBAAgB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE;gBACrC,SAAS;gBACT,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,kBAAkB;gBAClB,OAAO;gBACP,OAAO;gBACP,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,YAAY;gBACZ,MAAM;aACP,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC1C,CAAC;QAED,qDAAqD;QACrD,IACE,KAAK,YAAY,YAAY;YAC7B,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAClD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE;gBACrC,SAAS;gBACT,MAAM,EAAE,IAAI;gBACZ,SAAS;gBACT,UAAU;gBACV,kBAAkB;gBAClB,OAAO;gBACP,OAAO;gBACP,OAAO,EAAE,gBAAgB;gBACzB,OAAO;gBACP,YAAY;gBACZ,MAAM;aACP,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,UAA2B,EAAE;IAE7B,MAAM,EACJ,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,CAAC,EACV,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,kBAAkB,GAAG,KAAK,EAC1B,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,KAAK,EACf,aAAa,GAAG,IAAI,GACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,YAAY,GAAG,CAAC,MAAgC,EAAQ,EAAE;QAC9D,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAChC,KAAK,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,4EAA4E;IAE5E,6EAA6E;IAC7E,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,WAAW,CAAC;IAEvC,IAAI,qBAAqB,GAAG,YAAY,CAAC;IACzC,IAAI,gBAAgB,GAAG,OAAO,CAAC;IAE/B,IAAI,QAAQ,EAAE,CAAC;QACb,qBAAqB,GAAG,IAAI,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3D,CAAC;IAED,WAAW,CAAC,GAAG,CAAC,CAAC;IAEjB,4EAA4E;IAE5E,MAAM,WAAW,GACf,CAAC,OAAO;QACR,CAAC,qBAAqB;QACtB,CAAC,gBAAgB;QACjB,CAAC,UAAU;QACX,CAAC,YAAY;QACb,CAAC,OAAO,EAAE,MAAM;QAChB,CAAC,OAAO;QACR,CAAC,OAAO;QACR,MAAM,KAAK,CAAC;QACZ,CAAC,SAAS,CAAC;IAEb,4EAA4E;IAE5E,IAAI,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,4CAA4C;gBAC5C,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAC3D,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC/B,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;YACD,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,SAAS,CAAiB,GAAG,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,IAAI,gBAAgB,GAClB,qBAAqB,IAAI,UAAU,IAAI,gBAAgB,CAAC;IAE1D,MAAM,cAAc,GAA2B;QAC7C,SAAS;QACT,MAAM;QACN,SAAS;QACT,UAAU;QACV,kBAAkB;QAClB,OAAO;QACP,OAAO;QACP,OAAO;QACP,YAAY;QACZ,gBAAgB;KACjB,CAAC;IAEF,4EAA4E;IAE5E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;QAEpD,MAAM,aAAa,GAAG,UAAU,CAC9B,GAAG,EAAE,CACH,WAAW,CACT,GAAG,EACH,SAAS,EACT,SAAS,EACT,OAAO,EACP,qBAAqB,CAAC,MAAM,CAC7B,EACH,CAAC,CACF,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,YAAY,CACpB,kDAAkD,CACnD,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,KAAK,CAAC;QAC9C,MAAM,oBAAoB,GAAG,OAAO;YAClC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,IAAI,aAAa,CAAC;YAC/C,CAAC,CAAC,aAAa,CAAC;QAElB,IAAI,SAAoD,CAAC;QACzD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACzC,aAAa;iBACV,IAAI,CACH,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAyB,EAAE,MAAM,EAAE,CAAC,CAC1D;iBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,EAAE;gBAChD,SAAS,GAAG,UAAU,CACpB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EACvC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAClC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,eAAe,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAmB;gBACrC,GAAG,eAAe,CAAC,MAAM;gBACzB,MAAM,EAAE,QAAQ;aACjB,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC9E,CAAC;YACD,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,MAAM,eAAe,CAAC,KAAK,CAAC;YAC9B,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,IAAI,OAAO,EAAE,CAAC;gBACZ,yDAAyD;gBACzD,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrD,IAAI,WAAoB,CAAC;gBACzB,IAAI,YAAqB,CAAC;gBAE1B,MAAM,eAAe,GAAG,aAAa;qBAClC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;qBACzD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,WAAW,GAAG,KAAK,CAAC;oBACpB,MAAM,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEL,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,GAAG,EAAE;oBACrD,GAAG,cAAc;oBACjB,MAAM,EAAE,sBAAsB,CAAC,MAAM;iBACtC,CAAC;qBACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;qBAC1D,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,YAAY,GAAG,KAAK,CAAC;oBACrB,MAAM,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEL,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC/B,eAAe;wBACf,gBAAgB;qBACjB,CAAC,CAAC;oBAEH,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,sBAAsB,CAAC,KAAK,EAAE,CAAC;wBAC/B,MAAM,cAAc,GAAmB;4BACrC,GAAG,MAAM,CAAC,MAAM;4BAChB,MAAM,EAAE,QAAQ;yBACjB,CAAC;wBACF,IAAI,WAAW,EAAE,CAAC;4BAChB,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;wBAC9E,CAAC;wBACD,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACvB,OAAO,cAAc,CAAC;oBACxB,CAAC;oBAED,qBAAqB,CAAC,KAAK,EAAE,CAAC;oBAC9B,IAAI,WAAW,EAAE,CAAC;wBAChB,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC5E,CAAC;oBACD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACnC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,IACE,WAAW;wBACX,CAAC,yBAAyB,CAAC,WAAW,CAAC;wBACvC,CAAC,YAAY,CAAC,WAAW,CAAC,EAC1B,CAAC;wBACD,MAAM,WAAW,CAAC;oBACpB,CAAC;oBACD,IAAI,YAAY;wBAAE,MAAM,YAAY,CAAC;oBACrC,IAAI,WAAW;wBAAE,MAAM,WAAW,CAAC;oBACnC,MAAM,IAAI,KAAK,CACb,+CAA+C,CAChD,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,MAAM,YAAY,GAAG,MAAM,aAAa;qBACrC,IAAI,CACH,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAyB,EAAE,MAAM,EAAE,CAAC,CAC1D;qBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAuB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEhE,IAAI,YAAY,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,cAAc,GAAmB;wBACrC,GAAG,YAAY,CAAC,MAAM;wBACtB,MAAM,EAAE,QAAQ;qBACjB,CAAC;oBACF,IAAI,WAAW,EAAE,CAAC;wBAChB,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;oBAC9E,CAAC;oBACD,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACvB,OAAO,cAAc,CAAC;gBACxB,CAAC;gBAED,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnD,MAAM,YAAY,CAAC,KAAK,CAAC;gBAC3B,CAAC;gBACD,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC5E,CAAC;IACD,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,8EAA8E;AAE9E;;GAEG;AACH,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/core/strategies.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
import type { FetchResult } from './fetcher.js';
|
|
13
13
|
export interface StrategyResult extends FetchResult {
|
|
14
14
|
method: 'simple' | 'browser' | 'stealth' | 'cached';
|
|
15
|
+
/**
|
|
16
|
+
* Set to true when the final response still appears to be a bot-challenge
|
|
17
|
+
* page after all escalation attempts have been exhausted.
|
|
18
|
+
* Consumers should warn the user when this is true.
|
|
19
|
+
*/
|
|
20
|
+
challengeDetected?: boolean;
|
|
15
21
|
}
|
|
16
22
|
export interface DomainRecommendation {
|
|
17
23
|
mode: 'browser' | 'stealth';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy-hooks.d.ts","sourceRoot":"","sources":["../../src/core/strategy-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy-hooks.d.ts","sourceRoot":"","sources":["../../src/core/strategy-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,cAAc,CAAC;IACtB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAG5B;;;;OAIG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAElD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAIrD;;;;OAIG;IACH,uBAAuB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;IAEnE;;OAEG;IACH,kBAAkB,CAAC,CACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,GAChB,IAAI,CAAC;IAIR;;;OAGG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC;IAEvB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,MAAM,CAAC;CAC7B;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,CAE1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy-hooks.js","sourceRoot":"","sources":["../../src/core/strategy-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"strategy-hooks.js","sourceRoot":"","sources":["../../src/core/strategy-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkFH,+EAA+E;AAE/E,IAAI,eAAe,GAAkB,EAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,eAAe,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,eAAe,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ASCII table renderer using Unicode box-drawing characters.
|
|
3
|
+
*
|
|
4
|
+
* Renders an array of objects (e.g. {@link ListingItem}) as a neatly formatted
|
|
5
|
+
* table with auto-sized columns.
|
|
6
|
+
*
|
|
7
|
+
* @module table-format
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Render an array of row objects as a Unicode box-drawing table.
|
|
11
|
+
*
|
|
12
|
+
* Column order follows the insertion order of keys in the first row.
|
|
13
|
+
* Columns with exclusively `undefined`/empty values are omitted.
|
|
14
|
+
*
|
|
15
|
+
* @param rows - Array of plain objects.
|
|
16
|
+
* @param columns - Optional explicit column keys to include (in order).
|
|
17
|
+
* @returns Multi-line string ready for `console.log`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { formatTable } from './table-format.js';
|
|
22
|
+
*
|
|
23
|
+
* const table = formatTable([
|
|
24
|
+
* { title: 'Widget A', price: '$10' },
|
|
25
|
+
* { title: 'Widget B', price: '$20' },
|
|
26
|
+
* ]);
|
|
27
|
+
* console.log(table);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatTable(rows: Record<string, string | undefined>[], columns?: string[]): string;
|
|
31
|
+
//# sourceMappingURL=table-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-format.d.ts","sourceRoot":"","sources":["../../src/core/table-format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuDH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,MAAM,CAgER"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ASCII table renderer using Unicode box-drawing characters.
|
|
3
|
+
*
|
|
4
|
+
* Renders an array of objects (e.g. {@link ListingItem}) as a neatly formatted
|
|
5
|
+
* table with auto-sized columns.
|
|
6
|
+
*
|
|
7
|
+
* @module table-format
|
|
8
|
+
*/
|
|
9
|
+
/* ------------------------------------------------------------------ */
|
|
10
|
+
/* Box-drawing character set */
|
|
11
|
+
/* ------------------------------------------------------------------ */
|
|
12
|
+
const BOX = {
|
|
13
|
+
topLeft: '┌',
|
|
14
|
+
topRight: '┐',
|
|
15
|
+
bottomLeft: '└',
|
|
16
|
+
bottomRight: '┘',
|
|
17
|
+
horizontal: '─',
|
|
18
|
+
vertical: '│',
|
|
19
|
+
teeDown: '┬',
|
|
20
|
+
teeUp: '┴',
|
|
21
|
+
teeRight: '├',
|
|
22
|
+
teeLeft: '┤',
|
|
23
|
+
cross: '┼',
|
|
24
|
+
};
|
|
25
|
+
/* ------------------------------------------------------------------ */
|
|
26
|
+
/* Helpers */
|
|
27
|
+
/* ------------------------------------------------------------------ */
|
|
28
|
+
const MAX_COL_WIDTH = 40;
|
|
29
|
+
const MIN_COL_WIDTH = 3;
|
|
30
|
+
/**
|
|
31
|
+
* Truncate a string to `max` visible characters. Adds `…` if truncated.
|
|
32
|
+
*/
|
|
33
|
+
function truncate(s, max) {
|
|
34
|
+
if (s.length <= max)
|
|
35
|
+
return s;
|
|
36
|
+
return s.slice(0, max - 1) + '…';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Pad (right) a string to `width` characters.
|
|
40
|
+
*/
|
|
41
|
+
function padRight(s, width) {
|
|
42
|
+
if (s.length >= width)
|
|
43
|
+
return s;
|
|
44
|
+
return s + ' '.repeat(width - s.length);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Capitalise the first letter of a string.
|
|
48
|
+
*/
|
|
49
|
+
function capitalise(s) {
|
|
50
|
+
if (!s)
|
|
51
|
+
return s;
|
|
52
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
53
|
+
}
|
|
54
|
+
/* ------------------------------------------------------------------ */
|
|
55
|
+
/* Public API */
|
|
56
|
+
/* ------------------------------------------------------------------ */
|
|
57
|
+
/**
|
|
58
|
+
* Render an array of row objects as a Unicode box-drawing table.
|
|
59
|
+
*
|
|
60
|
+
* Column order follows the insertion order of keys in the first row.
|
|
61
|
+
* Columns with exclusively `undefined`/empty values are omitted.
|
|
62
|
+
*
|
|
63
|
+
* @param rows - Array of plain objects.
|
|
64
|
+
* @param columns - Optional explicit column keys to include (in order).
|
|
65
|
+
* @returns Multi-line string ready for `console.log`.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* import { formatTable } from './table-format.js';
|
|
70
|
+
*
|
|
71
|
+
* const table = formatTable([
|
|
72
|
+
* { title: 'Widget A', price: '$10' },
|
|
73
|
+
* { title: 'Widget B', price: '$20' },
|
|
74
|
+
* ]);
|
|
75
|
+
* console.log(table);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export function formatTable(rows, columns) {
|
|
79
|
+
if (rows.length === 0)
|
|
80
|
+
return '';
|
|
81
|
+
// Determine columns: explicit list or derive from all rows
|
|
82
|
+
const cols = columns ?? deriveColumns(rows);
|
|
83
|
+
if (cols.length === 0)
|
|
84
|
+
return '';
|
|
85
|
+
// Build header labels
|
|
86
|
+
const headers = cols.map(c => capitalise(c));
|
|
87
|
+
// Compute column widths (bounded by MIN/MAX)
|
|
88
|
+
const widths = cols.map((col, i) => {
|
|
89
|
+
let max = headers[i].length;
|
|
90
|
+
for (const row of rows) {
|
|
91
|
+
const val = row[col] ?? '';
|
|
92
|
+
if (val.length > max)
|
|
93
|
+
max = val.length;
|
|
94
|
+
}
|
|
95
|
+
return Math.max(MIN_COL_WIDTH, Math.min(max, MAX_COL_WIDTH));
|
|
96
|
+
});
|
|
97
|
+
// Build lines
|
|
98
|
+
const lines = [];
|
|
99
|
+
// Top border
|
|
100
|
+
lines.push(BOX.topLeft +
|
|
101
|
+
widths.map(w => BOX.horizontal.repeat(w + 2)).join(BOX.teeDown) +
|
|
102
|
+
BOX.topRight);
|
|
103
|
+
// Header row
|
|
104
|
+
lines.push(BOX.vertical +
|
|
105
|
+
headers.map((h, i) => ' ' + padRight(truncate(h, widths[i]), widths[i]) + ' ').join(BOX.vertical) +
|
|
106
|
+
BOX.vertical);
|
|
107
|
+
// Separator
|
|
108
|
+
lines.push(BOX.teeRight +
|
|
109
|
+
widths.map(w => BOX.horizontal.repeat(w + 2)).join(BOX.cross) +
|
|
110
|
+
BOX.teeLeft);
|
|
111
|
+
// Data rows
|
|
112
|
+
for (const row of rows) {
|
|
113
|
+
lines.push(BOX.vertical +
|
|
114
|
+
cols.map((col, i) => {
|
|
115
|
+
const val = row[col] ?? '';
|
|
116
|
+
return ' ' + padRight(truncate(val, widths[i]), widths[i]) + ' ';
|
|
117
|
+
}).join(BOX.vertical) +
|
|
118
|
+
BOX.vertical);
|
|
119
|
+
}
|
|
120
|
+
// Bottom border
|
|
121
|
+
lines.push(BOX.bottomLeft +
|
|
122
|
+
widths.map(w => BOX.horizontal.repeat(w + 2)).join(BOX.teeUp) +
|
|
123
|
+
BOX.bottomRight);
|
|
124
|
+
return lines.join('\n');
|
|
125
|
+
}
|
|
126
|
+
/* ------------------------------------------------------------------ */
|
|
127
|
+
/* Internals */
|
|
128
|
+
/* ------------------------------------------------------------------ */
|
|
129
|
+
/**
|
|
130
|
+
* Derive the set of columns that have at least one non-empty value across
|
|
131
|
+
* all rows. Preserves insertion order from the first row that provides a key.
|
|
132
|
+
*/
|
|
133
|
+
function deriveColumns(rows) {
|
|
134
|
+
const seen = new Set();
|
|
135
|
+
const order = [];
|
|
136
|
+
for (const row of rows) {
|
|
137
|
+
for (const key of Object.keys(row)) {
|
|
138
|
+
if (!seen.has(key)) {
|
|
139
|
+
seen.add(key);
|
|
140
|
+
order.push(key);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Filter out columns that are entirely empty
|
|
145
|
+
return order.filter(col => rows.some(r => r[col] && r[col].trim().length > 0));
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=table-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-format.js","sourceRoot":"","sources":["../../src/core/table-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Realistic User Agent Rotation for WebPeel
|
|
3
|
+
*
|
|
4
|
+
* Provides a curated list of real-world Chrome user agents (132-136 range)
|
|
5
|
+
* across Windows, macOS, and Linux platforms. Used when stealth mode is active
|
|
6
|
+
* and no custom UA is set — prevents the default "Chrome for Testing" UA which
|
|
7
|
+
* is an instant bot-detection signal.
|
|
8
|
+
*
|
|
9
|
+
* Also provides `getSecCHUA()` for generating correct Sec-CH-UA header values
|
|
10
|
+
* that match the selected user agent (version-accurate brand hints).
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Returns a realistic, recent Chrome user agent string.
|
|
14
|
+
* Randomly picks from a curated list of real-world UAs (Chrome 132-136 range).
|
|
15
|
+
*
|
|
16
|
+
* @param platform - Optionally restrict to a specific OS platform.
|
|
17
|
+
* When omitted, picks from all platforms (weighted: ~55% Windows, ~35% Mac, ~10% Linux).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* // Random platform
|
|
22
|
+
* const ua = getRealisticUserAgent();
|
|
23
|
+
*
|
|
24
|
+
* // Force Windows UA (e.g. for LinkedIn, which is more common on Windows)
|
|
25
|
+
* const ua = getRealisticUserAgent('windows');
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function getRealisticUserAgent(platform?: 'windows' | 'mac' | 'linux'): string;
|
|
29
|
+
/**
|
|
30
|
+
* Returns a random UA from the full list (all platforms).
|
|
31
|
+
* Equivalent to `getRealisticUserAgent()` with no arguments.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getRandomUA(): string;
|
|
34
|
+
/**
|
|
35
|
+
* The full curated list of realistic user agents.
|
|
36
|
+
* Exported for inspection / testing.
|
|
37
|
+
*/
|
|
38
|
+
export declare const REALISTIC_USER_AGENTS: readonly string[];
|
|
39
|
+
/**
|
|
40
|
+
* Get a Sec-CH-UA header value that matches the given user agent string.
|
|
41
|
+
*
|
|
42
|
+
* Extracts the Chrome major version from the UA string and returns a properly
|
|
43
|
+
* formatted `Sec-CH-UA` header value, e.g.:
|
|
44
|
+
* `"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="24"`
|
|
45
|
+
*
|
|
46
|
+
* Falls back to a sane Chrome 136 value when the UA doesn't contain a
|
|
47
|
+
* recognizable Chrome version.
|
|
48
|
+
*
|
|
49
|
+
* @param userAgent - Full user agent string (e.g. from getRealisticUserAgent())
|
|
50
|
+
*/
|
|
51
|
+
export declare function getSecCHUA(userAgent: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Determine the Sec-CH-UA-Platform header value based on the user agent string.
|
|
54
|
+
*
|
|
55
|
+
* @param userAgent - Full user agent string
|
|
56
|
+
*/
|
|
57
|
+
export declare function getSecCHUAPlatform(userAgent: string): string;
|
|
58
|
+
//# sourceMappingURL=user-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-agents.d.ts","sourceRoot":"","sources":["../../src/core/user-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA4CH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAuBpF;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAY,CAAC;AAuBhE;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK5D"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Realistic User Agent Rotation for WebPeel
|
|
3
|
+
*
|
|
4
|
+
* Provides a curated list of real-world Chrome user agents (132-136 range)
|
|
5
|
+
* across Windows, macOS, and Linux platforms. Used when stealth mode is active
|
|
6
|
+
* and no custom UA is set — prevents the default "Chrome for Testing" UA which
|
|
7
|
+
* is an instant bot-detection signal.
|
|
8
|
+
*
|
|
9
|
+
* Also provides `getSecCHUA()` for generating correct Sec-CH-UA header values
|
|
10
|
+
* that match the selected user agent (version-accurate brand hints).
|
|
11
|
+
*/
|
|
12
|
+
// ── Curated UA lists ──────────────────────────────────────────────────────────
|
|
13
|
+
const WINDOWS_UAS = [
|
|
14
|
+
// Chrome 132
|
|
15
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
|
|
16
|
+
// Chrome 133
|
|
17
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
18
|
+
// Chrome 134
|
|
19
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
|
|
20
|
+
// Chrome 135
|
|
21
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
|
|
22
|
+
// Chrome 136
|
|
23
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
|
|
24
|
+
];
|
|
25
|
+
const MAC_UAS = [
|
|
26
|
+
// Chrome 132 macOS
|
|
27
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
|
|
28
|
+
// Chrome 133 macOS
|
|
29
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
30
|
+
// Chrome 134 macOS
|
|
31
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
|
|
32
|
+
// Chrome 135 macOS
|
|
33
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
|
|
34
|
+
// Chrome 136 macOS
|
|
35
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
|
|
36
|
+
];
|
|
37
|
+
const LINUX_UAS = [
|
|
38
|
+
// Chrome 133 Linux
|
|
39
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
|
|
40
|
+
// Chrome 135 Linux
|
|
41
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
|
|
42
|
+
// Chrome 136 Linux
|
|
43
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
|
|
44
|
+
];
|
|
45
|
+
/** All UAs combined (fallback when no platform is specified) */
|
|
46
|
+
const ALL_UAS = [...WINDOWS_UAS, ...MAC_UAS, ...LINUX_UAS];
|
|
47
|
+
// ── Public API ────────────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Returns a realistic, recent Chrome user agent string.
|
|
50
|
+
* Randomly picks from a curated list of real-world UAs (Chrome 132-136 range).
|
|
51
|
+
*
|
|
52
|
+
* @param platform - Optionally restrict to a specific OS platform.
|
|
53
|
+
* When omitted, picks from all platforms (weighted: ~55% Windows, ~35% Mac, ~10% Linux).
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* // Random platform
|
|
58
|
+
* const ua = getRealisticUserAgent();
|
|
59
|
+
*
|
|
60
|
+
* // Force Windows UA (e.g. for LinkedIn, which is more common on Windows)
|
|
61
|
+
* const ua = getRealisticUserAgent('windows');
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export function getRealisticUserAgent(platform) {
|
|
65
|
+
let pool;
|
|
66
|
+
if (platform === 'windows') {
|
|
67
|
+
pool = WINDOWS_UAS;
|
|
68
|
+
}
|
|
69
|
+
else if (platform === 'mac') {
|
|
70
|
+
pool = MAC_UAS;
|
|
71
|
+
}
|
|
72
|
+
else if (platform === 'linux') {
|
|
73
|
+
pool = LINUX_UAS;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Weighted random: Windows ~55%, Mac ~35%, Linux ~10%
|
|
77
|
+
const roll = Math.random();
|
|
78
|
+
if (roll < 0.55) {
|
|
79
|
+
pool = WINDOWS_UAS;
|
|
80
|
+
}
|
|
81
|
+
else if (roll < 0.90) {
|
|
82
|
+
pool = MAC_UAS;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
pool = LINUX_UAS;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const idx = Math.floor(Math.random() * pool.length);
|
|
89
|
+
return pool[idx];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns a random UA from the full list (all platforms).
|
|
93
|
+
* Equivalent to `getRealisticUserAgent()` with no arguments.
|
|
94
|
+
*/
|
|
95
|
+
export function getRandomUA() {
|
|
96
|
+
const idx = Math.floor(Math.random() * ALL_UAS.length);
|
|
97
|
+
return ALL_UAS[idx];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The full curated list of realistic user agents.
|
|
101
|
+
* Exported for inspection / testing.
|
|
102
|
+
*/
|
|
103
|
+
export const REALISTIC_USER_AGENTS = ALL_UAS;
|
|
104
|
+
// ── Sec-CH-UA header generation ───────────────────────────────────────────────
|
|
105
|
+
/**
|
|
106
|
+
* The "Not A Brand" token format varies by Chrome version.
|
|
107
|
+
*
|
|
108
|
+
* Chrome 132-133: `"Not_A Brand";v="8"`
|
|
109
|
+
* Chrome 134-135: `"Not)A;Brand";v="99"`
|
|
110
|
+
* Chrome 136+: `"Not.A/Brand";v="24"`
|
|
111
|
+
*
|
|
112
|
+
* This matches real Chrome behavior to avoid client-hint fingerprinting.
|
|
113
|
+
*/
|
|
114
|
+
function getNotABrandToken(chromeVersion) {
|
|
115
|
+
if (chromeVersion >= 136) {
|
|
116
|
+
return '"Not.A/Brand";v="24"';
|
|
117
|
+
}
|
|
118
|
+
else if (chromeVersion >= 134) {
|
|
119
|
+
return '"Not)A;Brand";v="99"';
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return '"Not_A Brand";v="8"';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get a Sec-CH-UA header value that matches the given user agent string.
|
|
127
|
+
*
|
|
128
|
+
* Extracts the Chrome major version from the UA string and returns a properly
|
|
129
|
+
* formatted `Sec-CH-UA` header value, e.g.:
|
|
130
|
+
* `"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="24"`
|
|
131
|
+
*
|
|
132
|
+
* Falls back to a sane Chrome 136 value when the UA doesn't contain a
|
|
133
|
+
* recognizable Chrome version.
|
|
134
|
+
*
|
|
135
|
+
* @param userAgent - Full user agent string (e.g. from getRealisticUserAgent())
|
|
136
|
+
*/
|
|
137
|
+
export function getSecCHUA(userAgent) {
|
|
138
|
+
// Extract Chrome major version from UA string
|
|
139
|
+
// Matches patterns like: Chrome/136.0.0.0 or Chrome/132
|
|
140
|
+
const match = userAgent.match(/Chrome\/(\d+)/i);
|
|
141
|
+
const version = match ? parseInt(match[1], 10) : 136;
|
|
142
|
+
const notABrand = getNotABrandToken(version);
|
|
143
|
+
return `"Chromium";v="${version}", "Google Chrome";v="${version}", ${notABrand}`;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Determine the Sec-CH-UA-Platform header value based on the user agent string.
|
|
147
|
+
*
|
|
148
|
+
* @param userAgent - Full user agent string
|
|
149
|
+
*/
|
|
150
|
+
export function getSecCHUAPlatform(userAgent) {
|
|
151
|
+
if (userAgent.includes('Windows'))
|
|
152
|
+
return '"Windows"';
|
|
153
|
+
if (userAgent.includes('Macintosh'))
|
|
154
|
+
return '"macOS"';
|
|
155
|
+
if (userAgent.includes('Linux'))
|
|
156
|
+
return '"Linux"';
|
|
157
|
+
return '"Unknown"';
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=user-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-agents.js","sourceRoot":"","sources":["../../src/core/user-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebPeel Watch - Lightweight URL monitoring with assertions
|
|
3
|
+
*
|
|
4
|
+
* Polls a URL on a configurable interval, evaluates assertions against the
|
|
5
|
+
* response, detects content changes, and optionally fires a webhook on failure.
|
|
6
|
+
*/
|
|
7
|
+
export interface WatchOptions {
|
|
8
|
+
url: string;
|
|
9
|
+
/** Polling interval in milliseconds */
|
|
10
|
+
intervalMs: number;
|
|
11
|
+
/** Assertions to evaluate on every check */
|
|
12
|
+
assertions?: Assertion[];
|
|
13
|
+
/** POST this URL when an assertion fails or content changes */
|
|
14
|
+
webhookUrl?: string;
|
|
15
|
+
/** Per-request timeout in milliseconds (default: 10 000) */
|
|
16
|
+
timeout?: number;
|
|
17
|
+
/** Stop after this many checks (default: unlimited) */
|
|
18
|
+
maxChecks?: number;
|
|
19
|
+
/** Use browser rendering instead of simple HTTP fetch */
|
|
20
|
+
render?: boolean;
|
|
21
|
+
/** Output each result as NDJSON to stdout */
|
|
22
|
+
json?: boolean;
|
|
23
|
+
/** Suppress output unless a failure or change is detected */
|
|
24
|
+
silent?: boolean;
|
|
25
|
+
/** Optional callback invoked after every check */
|
|
26
|
+
onCheck?: (result: WatchCheckResult) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface Assertion {
|
|
29
|
+
/** Field to evaluate: "status" (HTTP status), "body", "header.<name>",
|
|
30
|
+
* or a dot-notation path into the JSON response body (e.g. "data.health") */
|
|
31
|
+
field: string;
|
|
32
|
+
operator: '=' | '!=' | '<' | '>' | 'contains';
|
|
33
|
+
value: string;
|
|
34
|
+
}
|
|
35
|
+
export interface WatchCheckResult {
|
|
36
|
+
timestamp: string;
|
|
37
|
+
url: string;
|
|
38
|
+
/** HTTP status code (0 on network error, 408 on timeout) */
|
|
39
|
+
status: number;
|
|
40
|
+
/** Request round-trip time in milliseconds */
|
|
41
|
+
elapsed: number;
|
|
42
|
+
/** Per-assertion evaluation results */
|
|
43
|
+
assertions: AssertionResult[];
|
|
44
|
+
/** true when every assertion passed (or there are no assertions) */
|
|
45
|
+
allPassed: boolean;
|
|
46
|
+
/** true when the response body changed since the previous check */
|
|
47
|
+
changed: boolean;
|
|
48
|
+
/** Present only on network/fetch errors */
|
|
49
|
+
error?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface AssertionResult {
|
|
52
|
+
field: string;
|
|
53
|
+
expected: string;
|
|
54
|
+
actual: string;
|
|
55
|
+
passed: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parse a human-readable duration string into milliseconds.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* parseDuration("30s") // → 30 000
|
|
62
|
+
* parseDuration("5m") // → 300 000
|
|
63
|
+
* parseDuration("1h") // → 3 600 000
|
|
64
|
+
* parseDuration("500ms")// → 500
|
|
65
|
+
*/
|
|
66
|
+
export declare function parseDuration(duration: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* Parse an assertion expression into an {@link Assertion} object.
|
|
69
|
+
*
|
|
70
|
+
* Supported formats:
|
|
71
|
+
* field=value — equality
|
|
72
|
+
* field!=value — inequality
|
|
73
|
+
* field>value — greater-than (numeric)
|
|
74
|
+
* field<value — less-than (numeric)
|
|
75
|
+
* field contains str — substring match
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* parseAssertion("status=200") // HTTP status
|
|
79
|
+
* parseAssertion("body.status=healthy") // JSON field
|
|
80
|
+
* parseAssertion("version!=0.0.0")
|
|
81
|
+
*/
|
|
82
|
+
export declare function parseAssertion(expr: string): Assertion;
|
|
83
|
+
/**
|
|
84
|
+
* Monitor a URL on a recurring interval.
|
|
85
|
+
*
|
|
86
|
+
* Resolves when {@link WatchOptions.maxChecks} is reached (or never, until the
|
|
87
|
+
* process receives SIGINT/SIGTERM).
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* await watch({
|
|
92
|
+
* url: 'https://api.example.com/health',
|
|
93
|
+
* intervalMs: 60_000,
|
|
94
|
+
* assertions: [{ field: 'status', operator: '=', value: 'healthy' }],
|
|
95
|
+
* webhookUrl: 'https://hooks.example.com/alert',
|
|
96
|
+
* });
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare function watch(options: WatchOptions): Promise<void>;
|
|
100
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/core/watch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,SAAS;IACxB;kFAC8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBtD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAetD;AAkPD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhE"}
|