webforai 3.0.0 → 4.0.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 (92) hide show
  1. package/README.md +25 -5
  2. package/dist/bin.js +1277 -479
  3. package/dist/cjs/detect-client-shell.js +78 -0
  4. package/dist/cjs/extract-meta-refresh.js +71 -0
  5. package/dist/cjs/extractors/lib/sanitize.js +4 -0
  6. package/dist/cjs/html-to-mdast.js +2 -1
  7. package/dist/cjs/index.js +12 -0
  8. package/dist/cjs/link-replacer.js +19 -13
  9. package/dist/cjs/loaders/cf-puppeteer.js +14 -7
  10. package/dist/cjs/loaders/fetch.js +14 -2
  11. package/dist/cjs/loaders/playwright.js +32 -30
  12. package/dist/cjs/loaders/puppeteer.js +14 -7
  13. package/dist/cjs/md-splitter.js +24 -11
  14. package/dist/cjs/mdast-handlers/custom-code-handler.js +18 -7
  15. package/dist/cjs/mdast-handlers/custom-div-handler.js +12 -33
  16. package/dist/cjs/mdast-handlers/definition-list-handler.js +17 -6
  17. package/dist/cjs/mdast-to-markdown.js +2 -5
  18. package/dist/cjs/normalize/index.js +11 -2
  19. package/dist/cjs/platform/client.js +73 -16
  20. package/dist/cjs/platform/index.js +4 -0
  21. package/dist/cjs/platform/types.js +7 -1
  22. package/dist/detect-client-shell.js +53 -0
  23. package/dist/extract-meta-refresh.js +47 -0
  24. package/dist/extractors/lib/sanitize.js +4 -0
  25. package/dist/html-to-mdast.js +2 -1
  26. package/dist/index.js +14 -0
  27. package/dist/link-replacer.js +19 -13
  28. package/dist/loaders/cf-puppeteer.js +15 -8
  29. package/dist/loaders/fetch.js +14 -2
  30. package/dist/loaders/playwright.js +32 -30
  31. package/dist/loaders/puppeteer.js +15 -8
  32. package/dist/md-splitter.js +24 -11
  33. package/dist/mdast-handlers/custom-code-handler.js +17 -7
  34. package/dist/mdast-handlers/custom-div-handler.js +12 -33
  35. package/dist/mdast-handlers/definition-list-handler.js +17 -6
  36. package/dist/mdast-to-markdown.js +2 -5
  37. package/dist/normalize/index.js +12 -2
  38. package/dist/platform/client.js +73 -16
  39. package/dist/platform/index.js +4 -0
  40. package/dist/platform/types.js +5 -1
  41. package/dist/types/cli/bin.js.map +1 -1
  42. package/dist/types/cli/commands/jobs/files.d.ts +28 -0
  43. package/dist/types/cli/commands/jobs/files.js.map +1 -0
  44. package/dist/types/cli/commands/jobs/llms-txt.d.ts +33 -0
  45. package/dist/types/cli/commands/jobs/llms-txt.js.map +1 -0
  46. package/dist/types/cli/commands/jobs/options.d.ts +58 -0
  47. package/dist/types/cli/commands/jobs/options.js.map +1 -0
  48. package/dist/types/cli/commands/jobs/run.d.ts +44 -0
  49. package/dist/types/cli/commands/jobs/run.js.map +1 -0
  50. package/dist/types/cli/commands/skill/content.js.map +1 -1
  51. package/dist/types/cli/commands/webforai/interactive.d.ts +1 -1
  52. package/dist/types/cli/commands/webforai/interactive.js.map +1 -1
  53. package/dist/types/cli/commands/webforai/options.d.ts +9 -2
  54. package/dist/types/cli/commands/webforai/options.js.map +1 -1
  55. package/dist/types/cli/commands/webforai/run.js.map +1 -1
  56. package/dist/types/cli/utils.d.ts +8 -1
  57. package/dist/types/cli/utils.js.map +1 -1
  58. package/dist/types/detect-client-shell.d.ts +24 -0
  59. package/dist/types/detect-client-shell.js.map +1 -0
  60. package/dist/types/extract-meta-refresh.d.ts +29 -0
  61. package/dist/types/extract-meta-refresh.js.map +1 -0
  62. package/dist/types/extractors/lib/sanitize.js.map +1 -1
  63. package/dist/types/html-to-mdast.js.map +1 -1
  64. package/dist/types/index.d.ts +2 -0
  65. package/dist/types/index.js.map +1 -1
  66. package/dist/types/link-replacer.d.ts +3 -1
  67. package/dist/types/link-replacer.js.map +1 -1
  68. package/dist/types/loaders/cf-puppeteer.js.map +1 -1
  69. package/dist/types/loaders/fetch.d.ts +4 -0
  70. package/dist/types/loaders/fetch.js.map +1 -1
  71. package/dist/types/loaders/playwright.js.map +1 -1
  72. package/dist/types/loaders/puppeteer.js.map +1 -1
  73. package/dist/types/md-splitter.d.ts +1 -1
  74. package/dist/types/md-splitter.js.map +1 -1
  75. package/dist/types/mdast-handlers/custom-code-handler.d.ts +2 -0
  76. package/dist/types/mdast-handlers/custom-code-handler.js.map +1 -1
  77. package/dist/types/mdast-handlers/custom-div-handler.js.map +1 -1
  78. package/dist/types/mdast-handlers/definition-list-handler.d.ts +0 -11
  79. package/dist/types/mdast-handlers/definition-list-handler.js.map +1 -1
  80. package/dist/types/mdast-to-markdown.js.map +1 -1
  81. package/dist/types/normalize/index.js.map +1 -1
  82. package/dist/types/platform/client.d.ts +2 -1
  83. package/dist/types/platform/client.js.map +1 -1
  84. package/dist/types/platform/error.d.ts +5 -3
  85. package/dist/types/platform/error.js.map +1 -1
  86. package/dist/types/platform/fetch.d.ts +2 -0
  87. package/dist/types/platform/fetch.js.map +1 -1
  88. package/dist/types/platform/index.d.ts +1 -1
  89. package/dist/types/platform/index.js.map +1 -1
  90. package/dist/types/platform/types.d.ts +35 -6
  91. package/dist/types/platform/types.js.map +1 -1
  92. package/package.json +16 -5
package/README.md CHANGED
@@ -10,8 +10,8 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- A esm-native library that converts HTML to Markdown & Useful Utilities with simple, lightweight and epic quality.
14
- <p>
13
+ Convert web pages and local HTML to clean, LLM-ready Markdown — with a TypeScript library, the <code>npx webforai</code> CLI, or a hosted API.
14
+ </p>
15
15
 
16
16
  <p align="center">
17
17
  <a href="https://www.npmjs.com/package/webforai">
@@ -30,7 +30,17 @@
30
30
 
31
31
  ## Documentation
32
32
 
33
- [Head to the documentation](https://webforai.dev/) to read and learn more about Webforai.
33
+ Everything is documented at **[webforai.dev](https://webforai.dev)**. Start from what you want to do:
34
+
35
+ | I want to… | Use | Start here |
36
+ | --- | --- | --- |
37
+ | convert HTML in my own code (Node.js, browsers, Workers) | the `webforai` library | [Getting started](https://webforai.dev/getting-started) |
38
+ | get Markdown for a URL from the shell or an AI agent | the CLI, `npx webforai <url>` | [CLI](https://webforai.dev/cli) |
39
+ | call a hosted API that runs the browsers and proxies for me | webforai platform | [platform.webforai.dev](https://platform.webforai.dev) (sign-up, API keys, usage) · [platform docs](https://webforai.dev/platform) |
40
+ | run my own copy of that platform | [`apps/platform`](https://github.com/inaridiy/webforai/tree/main/apps/platform) | [Deploying your own instance](https://github.com/inaridiy/webforai/tree/main/apps/platform#deploying-your-own-instance) |
41
+
42
+ The library, the CLI and the typed platform client (`webforai/platform`) all ship in the one
43
+ `webforai` npm package.
34
44
 
35
45
  ## Overview
36
46
 
@@ -40,7 +50,9 @@ npx webforai@latest https://example.com/article
40
50
 
41
51
  # machine-readable output, hosted-platform fetching, agent installation
42
52
  npx webforai@latest https://example.com --json
43
- npx webforai@latest https://example.com --engine browser # platform, renders JS
53
+ npx webforai@latest https://example.com --engine auto # platform, renders JS when needed
54
+ npx webforai@latest crawl https://docs.example.com -o docs --llms-txt # site → .md files + llms.txt
55
+ npx webforai@latest batch --file urls.txt -o pages # many URLs → one .md per page
44
56
  npx webforai@latest skill --install # Agent Skill via `npx skills add`
45
57
  ```
46
58
 
@@ -58,6 +70,13 @@ const html = await loadHtml(url);
58
70
  const markdown = htmlToMarkdown(html, { baseUrl: url });
59
71
  ```
60
72
 
73
+ The CLI keeps Markdown/JSON on stdout and API failures on stderr, including the error code
74
+ and `retryAfter` when supplied; `invalid_api_key`, `payment_required` and `spend_cap_reached`
75
+ name the platform dashboard. `crawl` and `batch` run hosted jobs (API key required) and write
76
+ one Markdown file per page. `--engine` and `--region` select the platform loader; combining
77
+ them with an explicit local loader exits with usage error `2`. The interactive wizard applies
78
+ the same validation and honors `WEBFORAI_PLATFORM_URL`.
79
+
61
80
  ## What v3 changes
62
81
 
63
82
  **Better extraction.** The main-content extractor scores candidate containers the way Readability
@@ -110,7 +129,8 @@ self-hostable SaaS built on this library: a metered crawl→Markdown HTTP API on
110
129
  (Workers + Workflows + Containers + Browser Run) with Better Auth accounts/API keys and
111
130
  Stripe usage-based billing. Use it through the typed `webforai/platform` client
112
131
  (`import { createPlatformClient } from "webforai/platform"`) or the CLI
113
- (`npx webforai <url> --engine browser`); docs live at
132
+ (`npx webforai <url> --engine auto`). Sign up and manage API keys at
133
+ [platform.webforai.dev](https://platform.webforai.dev); the docs live at
114
134
  [webforai.dev/platform](https://webforai.dev/platform). See its README and the design ledger
115
135
  in `docs/specs/platform`.
116
136