recker 1.0.2-0 → 1.0.3

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 (287) hide show
  1. package/LICENSE +0 -2
  2. package/README.md +121 -72
  3. package/dist/cache/memory-storage.d.ts.map +1 -1
  4. package/dist/cache/memory-storage.js +7 -1
  5. package/dist/constants/http-status.d.ts +74 -0
  6. package/dist/constants/http-status.d.ts.map +1 -0
  7. package/dist/constants/http-status.js +156 -0
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +6 -6
  10. package/dist/cookies/memory-cookie-jar.d.ts +31 -0
  11. package/dist/cookies/memory-cookie-jar.d.ts.map +1 -0
  12. package/dist/cookies/memory-cookie-jar.js +210 -0
  13. package/dist/core/client.d.ts +9 -0
  14. package/dist/core/client.d.ts.map +1 -1
  15. package/dist/core/client.js +252 -53
  16. package/dist/core/errors.d.ts +18 -2
  17. package/dist/core/errors.d.ts.map +1 -1
  18. package/dist/core/errors.js +66 -5
  19. package/dist/core/index.d.ts +6 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +5 -0
  22. package/dist/core/request-promise.d.ts.map +1 -1
  23. package/dist/core/request-promise.js +8 -2
  24. package/dist/core/request.d.ts +7 -1
  25. package/dist/core/request.d.ts.map +1 -1
  26. package/dist/core/request.js +32 -0
  27. package/dist/core/response.d.ts +2 -0
  28. package/dist/core/response.d.ts.map +1 -1
  29. package/dist/core/response.js +44 -19
  30. package/dist/events/request-events.d.ts +48 -0
  31. package/dist/events/request-events.d.ts.map +1 -0
  32. package/dist/events/request-events.js +85 -0
  33. package/dist/index.d.ts +28 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +28 -2
  36. package/dist/mcp/client.d.ts.map +1 -1
  37. package/dist/mcp/client.js +16 -5
  38. package/dist/mcp/contract.d.ts +77 -0
  39. package/dist/mcp/contract.d.ts.map +1 -0
  40. package/dist/mcp/contract.js +278 -0
  41. package/dist/mcp/types.d.ts +1 -0
  42. package/dist/mcp/types.d.ts.map +1 -1
  43. package/dist/plugins/auth.d.ts +45 -0
  44. package/dist/plugins/auth.d.ts.map +1 -0
  45. package/dist/plugins/auth.js +268 -0
  46. package/dist/plugins/cache.d.ts +7 -1
  47. package/dist/plugins/cache.d.ts.map +1 -1
  48. package/dist/plugins/cache.js +470 -49
  49. package/dist/plugins/circuit-breaker.js +1 -1
  50. package/dist/plugins/compression.d.ts.map +1 -1
  51. package/dist/plugins/compression.js +3 -3
  52. package/dist/plugins/dedup.d.ts.map +1 -1
  53. package/dist/plugins/dedup.js +2 -1
  54. package/dist/plugins/graphql.d.ts +4 -3
  55. package/dist/plugins/graphql.d.ts.map +1 -1
  56. package/dist/plugins/graphql.js +24 -5
  57. package/dist/plugins/grpc-web.d.ts +80 -0
  58. package/dist/plugins/grpc-web.d.ts.map +1 -0
  59. package/dist/plugins/grpc-web.js +261 -0
  60. package/dist/plugins/har-player.d.ts.map +1 -1
  61. package/dist/plugins/har-player.js +11 -2
  62. package/dist/plugins/hls.d.ts +33 -0
  63. package/dist/plugins/hls.d.ts.map +1 -0
  64. package/dist/plugins/hls.js +225 -0
  65. package/dist/plugins/http2-push.d.ts +64 -0
  66. package/dist/plugins/http2-push.d.ts.map +1 -0
  67. package/dist/plugins/http2-push.js +274 -0
  68. package/dist/plugins/http3.d.ts +76 -0
  69. package/dist/plugins/http3.d.ts.map +1 -0
  70. package/dist/plugins/http3.js +231 -0
  71. package/dist/plugins/interface-rotator.d.ts +10 -0
  72. package/dist/plugins/interface-rotator.d.ts.map +1 -0
  73. package/dist/plugins/interface-rotator.js +57 -0
  74. package/dist/plugins/jsonrpc.d.ts +76 -0
  75. package/dist/plugins/jsonrpc.d.ts.map +1 -0
  76. package/dist/plugins/jsonrpc.js +143 -0
  77. package/dist/plugins/logger.d.ts +8 -5
  78. package/dist/plugins/logger.d.ts.map +1 -1
  79. package/dist/plugins/logger.js +66 -30
  80. package/dist/plugins/odata.d.ts +182 -0
  81. package/dist/plugins/odata.d.ts.map +1 -0
  82. package/dist/plugins/odata.js +561 -0
  83. package/dist/plugins/retry.d.ts +1 -0
  84. package/dist/plugins/retry.d.ts.map +1 -1
  85. package/dist/plugins/retry.js +26 -2
  86. package/dist/plugins/scrape.d.ts +22 -0
  87. package/dist/plugins/scrape.d.ts.map +1 -0
  88. package/dist/plugins/scrape.js +87 -0
  89. package/dist/plugins/soap.d.ts +73 -0
  90. package/dist/plugins/soap.d.ts.map +1 -0
  91. package/dist/plugins/soap.js +347 -0
  92. package/dist/plugins/user-agent.d.ts +8 -0
  93. package/dist/plugins/user-agent.d.ts.map +1 -0
  94. package/dist/plugins/user-agent.js +46 -0
  95. package/dist/plugins/xml.d.ts +10 -0
  96. package/dist/plugins/xml.d.ts.map +1 -0
  97. package/dist/plugins/xml.js +194 -0
  98. package/dist/presets/anthropic.d.ts +7 -0
  99. package/dist/presets/anthropic.d.ts.map +1 -0
  100. package/dist/presets/anthropic.js +17 -0
  101. package/dist/presets/azure-openai.d.ts +9 -0
  102. package/dist/presets/azure-openai.d.ts.map +1 -0
  103. package/dist/presets/azure-openai.js +25 -0
  104. package/dist/presets/cloudflare.d.ts +13 -0
  105. package/dist/presets/cloudflare.d.ts.map +1 -0
  106. package/dist/presets/cloudflare.js +39 -0
  107. package/dist/presets/cohere.d.ts +6 -0
  108. package/dist/presets/cohere.d.ts.map +1 -0
  109. package/dist/presets/cohere.js +16 -0
  110. package/dist/presets/deepseek.d.ts +6 -0
  111. package/dist/presets/deepseek.d.ts.map +1 -0
  112. package/dist/presets/deepseek.js +16 -0
  113. package/dist/presets/digitalocean.d.ts +6 -0
  114. package/dist/presets/digitalocean.d.ts.map +1 -0
  115. package/dist/presets/digitalocean.js +16 -0
  116. package/dist/presets/discord.d.ts +7 -0
  117. package/dist/presets/discord.d.ts.map +1 -0
  118. package/dist/presets/discord.js +17 -0
  119. package/dist/presets/fireworks.d.ts +6 -0
  120. package/dist/presets/fireworks.d.ts.map +1 -0
  121. package/dist/presets/fireworks.js +16 -0
  122. package/dist/presets/gemini.d.ts +6 -0
  123. package/dist/presets/gemini.d.ts.map +1 -0
  124. package/dist/presets/gemini.js +16 -0
  125. package/dist/presets/github.d.ts +7 -0
  126. package/dist/presets/github.d.ts.map +1 -0
  127. package/dist/presets/github.js +17 -0
  128. package/dist/presets/gitlab.d.ts +7 -0
  129. package/dist/presets/gitlab.d.ts.map +1 -0
  130. package/dist/presets/gitlab.js +16 -0
  131. package/dist/presets/groq.d.ts +6 -0
  132. package/dist/presets/groq.d.ts.map +1 -0
  133. package/dist/presets/groq.js +16 -0
  134. package/dist/presets/huggingface.d.ts +6 -0
  135. package/dist/presets/huggingface.d.ts.map +1 -0
  136. package/dist/presets/huggingface.js +16 -0
  137. package/dist/presets/index.d.ts +28 -0
  138. package/dist/presets/index.d.ts.map +1 -0
  139. package/dist/presets/index.js +27 -0
  140. package/dist/presets/linear.d.ts +6 -0
  141. package/dist/presets/linear.d.ts.map +1 -0
  142. package/dist/presets/linear.js +16 -0
  143. package/dist/presets/mistral.d.ts +6 -0
  144. package/dist/presets/mistral.d.ts.map +1 -0
  145. package/dist/presets/mistral.js +16 -0
  146. package/dist/presets/notion.d.ts +7 -0
  147. package/dist/presets/notion.d.ts.map +1 -0
  148. package/dist/presets/notion.js +17 -0
  149. package/dist/presets/openai.d.ts +8 -0
  150. package/dist/presets/openai.d.ts.map +1 -0
  151. package/dist/presets/openai.js +23 -0
  152. package/dist/presets/perplexity.d.ts +6 -0
  153. package/dist/presets/perplexity.d.ts.map +1 -0
  154. package/dist/presets/perplexity.js +16 -0
  155. package/dist/presets/registry.d.ts +20 -0
  156. package/dist/presets/registry.d.ts.map +1 -0
  157. package/dist/presets/registry.js +311 -0
  158. package/dist/presets/replicate.d.ts +6 -0
  159. package/dist/presets/replicate.d.ts.map +1 -0
  160. package/dist/presets/replicate.js +16 -0
  161. package/dist/presets/slack.d.ts +6 -0
  162. package/dist/presets/slack.d.ts.map +1 -0
  163. package/dist/presets/slack.js +16 -0
  164. package/dist/presets/stripe.d.ts +8 -0
  165. package/dist/presets/stripe.d.ts.map +1 -0
  166. package/dist/presets/stripe.js +23 -0
  167. package/dist/presets/supabase.d.ts +7 -0
  168. package/dist/presets/supabase.d.ts.map +1 -0
  169. package/dist/presets/supabase.js +18 -0
  170. package/dist/presets/together.d.ts +6 -0
  171. package/dist/presets/together.d.ts.map +1 -0
  172. package/dist/presets/together.js +16 -0
  173. package/dist/presets/twilio.d.ts +7 -0
  174. package/dist/presets/twilio.d.ts.map +1 -0
  175. package/dist/presets/twilio.js +17 -0
  176. package/dist/presets/vercel.d.ts +7 -0
  177. package/dist/presets/vercel.d.ts.map +1 -0
  178. package/dist/presets/vercel.js +23 -0
  179. package/dist/presets/xai.d.ts +7 -0
  180. package/dist/presets/xai.d.ts.map +1 -0
  181. package/dist/presets/xai.js +17 -0
  182. package/dist/protocols/ftp.d.ts +63 -0
  183. package/dist/protocols/ftp.d.ts.map +1 -0
  184. package/dist/protocols/ftp.js +388 -0
  185. package/dist/protocols/index.d.ts +4 -0
  186. package/dist/protocols/index.d.ts.map +1 -0
  187. package/dist/protocols/index.js +3 -0
  188. package/dist/protocols/sftp.d.ts +65 -0
  189. package/dist/protocols/sftp.d.ts.map +1 -0
  190. package/dist/protocols/sftp.js +346 -0
  191. package/dist/protocols/telnet.d.ts +50 -0
  192. package/dist/protocols/telnet.d.ts.map +1 -0
  193. package/dist/protocols/telnet.js +139 -0
  194. package/dist/runner/request-runner.d.ts.map +1 -1
  195. package/dist/runner/request-runner.js +1 -0
  196. package/dist/scrape/document.d.ts +44 -0
  197. package/dist/scrape/document.d.ts.map +1 -0
  198. package/dist/scrape/document.js +198 -0
  199. package/dist/scrape/element.d.ts +50 -0
  200. package/dist/scrape/element.d.ts.map +1 -0
  201. package/dist/scrape/element.js +176 -0
  202. package/dist/scrape/extractors.d.ts +17 -0
  203. package/dist/scrape/extractors.d.ts.map +1 -0
  204. package/dist/scrape/extractors.js +356 -0
  205. package/dist/scrape/index.d.ts +5 -0
  206. package/dist/scrape/index.d.ts.map +1 -0
  207. package/dist/scrape/index.js +3 -0
  208. package/dist/scrape/types.d.ts +108 -0
  209. package/dist/scrape/types.d.ts.map +1 -0
  210. package/dist/scrape/types.js +1 -0
  211. package/dist/testing/index.d.ts +3 -0
  212. package/dist/testing/index.d.ts.map +1 -0
  213. package/dist/testing/index.js +1 -0
  214. package/dist/testing/mock.d.ts +58 -0
  215. package/dist/testing/mock.d.ts.map +1 -0
  216. package/dist/testing/mock.js +252 -0
  217. package/dist/transport/fetch.d.ts.map +1 -1
  218. package/dist/transport/fetch.js +12 -4
  219. package/dist/transport/undici.d.ts +17 -1
  220. package/dist/transport/undici.d.ts.map +1 -1
  221. package/dist/transport/undici.js +708 -47
  222. package/dist/types/index.d.ts +111 -10
  223. package/dist/types/index.d.ts.map +1 -1
  224. package/dist/types/index.js +1 -1
  225. package/dist/types/logger.d.ts +17 -0
  226. package/dist/types/logger.d.ts.map +1 -0
  227. package/dist/types/logger.js +66 -0
  228. package/dist/utils/agent-manager.d.ts.map +1 -1
  229. package/dist/utils/agent-manager.js +20 -4
  230. package/dist/utils/body.d.ts.map +1 -1
  231. package/dist/utils/body.js +14 -2
  232. package/dist/utils/charset.d.ts +16 -0
  233. package/dist/utils/charset.d.ts.map +1 -0
  234. package/dist/utils/charset.js +169 -0
  235. package/dist/utils/client-pool.d.ts +21 -0
  236. package/dist/utils/client-pool.d.ts.map +1 -0
  237. package/dist/utils/client-pool.js +49 -0
  238. package/dist/utils/concurrency.d.ts.map +1 -1
  239. package/dist/utils/concurrency.js +8 -4
  240. package/dist/utils/dns-toolkit.d.ts +13 -0
  241. package/dist/utils/dns-toolkit.d.ts.map +1 -0
  242. package/dist/utils/dns-toolkit.js +48 -0
  243. package/dist/utils/doh.d.ts.map +1 -1
  244. package/dist/utils/doh.js +16 -3
  245. package/dist/utils/download.d.ts +15 -0
  246. package/dist/utils/download.d.ts.map +1 -0
  247. package/dist/utils/download.js +44 -0
  248. package/dist/utils/env-proxy.d.ts +13 -0
  249. package/dist/utils/env-proxy.d.ts.map +1 -0
  250. package/dist/utils/env-proxy.js +105 -0
  251. package/dist/utils/header-parser.d.ts +15 -1
  252. package/dist/utils/header-parser.d.ts.map +1 -1
  253. package/dist/utils/header-parser.js +161 -1
  254. package/dist/utils/link-header.d.ts +70 -0
  255. package/dist/utils/link-header.d.ts.map +1 -0
  256. package/dist/utils/link-header.js +190 -0
  257. package/dist/utils/progress.d.ts +7 -2
  258. package/dist/utils/progress.d.ts.map +1 -1
  259. package/dist/utils/progress.js +48 -15
  260. package/dist/utils/rdap.d.ts +17 -0
  261. package/dist/utils/rdap.d.ts.map +1 -0
  262. package/dist/utils/rdap.js +32 -0
  263. package/dist/utils/request-pool.d.ts.map +1 -1
  264. package/dist/utils/request-pool.js +4 -3
  265. package/dist/utils/sse.d.ts.map +1 -1
  266. package/dist/utils/sse.js +8 -2
  267. package/dist/utils/status-codes.d.ts +84 -0
  268. package/dist/utils/status-codes.d.ts.map +1 -0
  269. package/dist/utils/status-codes.js +204 -0
  270. package/dist/utils/streaming.d.ts.map +1 -1
  271. package/dist/utils/streaming.js +1 -0
  272. package/dist/utils/tls-inspector.d.ts +21 -0
  273. package/dist/utils/tls-inspector.d.ts.map +1 -0
  274. package/dist/utils/tls-inspector.js +39 -0
  275. package/dist/utils/try-fn.d.ts.map +1 -1
  276. package/dist/utils/try-fn.js +11 -5
  277. package/dist/utils/upload.d.ts +1 -0
  278. package/dist/utils/upload.d.ts.map +1 -1
  279. package/dist/utils/upload.js +20 -3
  280. package/dist/utils/user-agent.d.ts +9 -9
  281. package/dist/utils/user-agent.js +9 -9
  282. package/dist/utils/whois.d.ts.map +1 -1
  283. package/dist/utils/whois.js +11 -2
  284. package/dist/websocket/client.d.ts +29 -1
  285. package/dist/websocket/client.d.ts.map +1 -1
  286. package/dist/websocket/client.js +145 -13
  287. package/package.json +45 -8
@@ -0,0 +1,87 @@
1
+ let ScrapeDocumentClass = null;
2
+ async function getScrapeDocument() {
3
+ if (!ScrapeDocumentClass) {
4
+ try {
5
+ const module = await import('../scrape/document.js');
6
+ ScrapeDocumentClass = module.ScrapeDocument;
7
+ }
8
+ catch (error) {
9
+ throw new Error('Failed to load scrape module. Make sure cheerio is installed: pnpm add cheerio');
10
+ }
11
+ }
12
+ return ScrapeDocumentClass;
13
+ }
14
+ export function scrape(promise) {
15
+ const basePromise = Promise.resolve(promise);
16
+ const getDocument = async (options) => {
17
+ const ScrapeDoc = await getScrapeDocument();
18
+ const response = await basePromise;
19
+ const html = await response.text();
20
+ return new ScrapeDoc(html, {
21
+ baseUrl: options?.baseUrl || response.url,
22
+ ...options,
23
+ });
24
+ };
25
+ const enhanced = basePromise;
26
+ enhanced.scrape = async (options) => {
27
+ return getDocument(options);
28
+ };
29
+ enhanced.links = async (options) => {
30
+ const doc = await getDocument();
31
+ return doc.links(options);
32
+ };
33
+ enhanced.images = async (options) => {
34
+ const doc = await getDocument();
35
+ return doc.images(options);
36
+ };
37
+ enhanced.meta = async () => {
38
+ const doc = await getDocument();
39
+ return doc.meta();
40
+ };
41
+ enhanced.openGraph = async () => {
42
+ const doc = await getDocument();
43
+ return doc.openGraph();
44
+ };
45
+ enhanced.twitterCard = async () => {
46
+ const doc = await getDocument();
47
+ return doc.twitterCard();
48
+ };
49
+ enhanced.jsonLd = async () => {
50
+ const doc = await getDocument();
51
+ return doc.jsonLd();
52
+ };
53
+ enhanced.forms = async (selector) => {
54
+ const doc = await getDocument();
55
+ return doc.forms(selector);
56
+ };
57
+ enhanced.tables = async (selector) => {
58
+ const doc = await getDocument();
59
+ return doc.tables(selector);
60
+ };
61
+ enhanced.scripts = async () => {
62
+ const doc = await getDocument();
63
+ return doc.scripts();
64
+ };
65
+ enhanced.styles = async () => {
66
+ const doc = await getDocument();
67
+ return doc.styles();
68
+ };
69
+ enhanced.extract = async (schema) => {
70
+ const doc = await getDocument();
71
+ return doc.extract(schema);
72
+ };
73
+ return enhanced;
74
+ }
75
+ export async function parseHtml(html, options) {
76
+ const ScrapeDoc = await getScrapeDocument();
77
+ return new ScrapeDoc(html, options);
78
+ }
79
+ export async function scrapeResponse(promise, options) {
80
+ const ScrapeDoc = await getScrapeDocument();
81
+ const response = await promise;
82
+ const html = await response.text();
83
+ return new ScrapeDoc(html, {
84
+ baseUrl: options?.baseUrl || response.url,
85
+ ...options,
86
+ });
87
+ }
@@ -0,0 +1,73 @@
1
+ import type { Client } from '../core/client.js';
2
+ import type { RequestOptions } from '../types/index.js';
3
+ export interface XmlRpcValue {
4
+ type: 'int' | 'i4' | 'i8' | 'boolean' | 'string' | 'double' | 'dateTime.iso8601' | 'base64' | 'array' | 'struct' | 'nil';
5
+ value: unknown;
6
+ }
7
+ export interface XmlRpcResponse<T = unknown> {
8
+ success: boolean;
9
+ result?: T;
10
+ fault?: {
11
+ faultCode: number;
12
+ faultString: string;
13
+ };
14
+ }
15
+ export declare class XmlRpcClient {
16
+ private client;
17
+ private endpoint;
18
+ private requestOptions;
19
+ constructor(client: Client, options: {
20
+ endpoint: string;
21
+ requestOptions?: RequestOptions;
22
+ });
23
+ call<T = unknown>(method: string, params?: unknown[]): Promise<XmlRpcResponse<T>>;
24
+ private parseResponse;
25
+ }
26
+ export type SoapVersion = '1.1' | '1.2';
27
+ export interface SoapOptions {
28
+ endpoint: string;
29
+ version?: SoapVersion;
30
+ namespace?: string;
31
+ namespacePrefix?: string;
32
+ wsdl?: string;
33
+ soapHeaders?: Record<string, unknown>;
34
+ requestOptions?: RequestOptions;
35
+ }
36
+ export interface SoapFault {
37
+ code: string;
38
+ string: string;
39
+ actor?: string;
40
+ detail?: unknown;
41
+ }
42
+ export interface SoapResponse<T = unknown> {
43
+ success: boolean;
44
+ result?: T;
45
+ fault?: SoapFault;
46
+ rawXml: string;
47
+ }
48
+ export declare class SoapClient {
49
+ private client;
50
+ private options;
51
+ constructor(client: Client, options: SoapOptions);
52
+ call<T = unknown>(method: string, params?: Record<string, unknown>, options?: {
53
+ soapHeaders?: Record<string, unknown>;
54
+ soapAction?: string;
55
+ }): Promise<SoapResponse<T>>;
56
+ getWsdl(): Promise<string | null>;
57
+ private objectToXml;
58
+ private parseResponse;
59
+ private parseXmlToObject;
60
+ }
61
+ export declare function createXmlRpcClient(client: Client, options: {
62
+ endpoint: string;
63
+ requestOptions?: RequestOptions;
64
+ }): XmlRpcClient;
65
+ export declare function createSoapClient(client: Client, options: SoapOptions): SoapClient;
66
+ export declare function soap(): (client: Client) => void;
67
+ declare module '../core/client.js' {
68
+ interface Client {
69
+ soap(options: SoapOptions): SoapClient;
70
+ xmlrpc(endpoint: string, requestOptions?: RequestOptions): XmlRpcClient;
71
+ }
72
+ }
73
+ //# sourceMappingURL=soap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soap.d.ts","sourceRoot":"","sources":["../../src/plugins/soap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,347 @@
1
+ function jsToXmlRpcValue(value) {
2
+ if (value === null || value === undefined) {
3
+ return '<nil/>';
4
+ }
5
+ if (typeof value === 'boolean') {
6
+ return `<boolean>${value ? '1' : '0'}</boolean>`;
7
+ }
8
+ if (typeof value === 'number') {
9
+ if (Number.isInteger(value)) {
10
+ return `<int>${value}</int>`;
11
+ }
12
+ return `<double>${value}</double>`;
13
+ }
14
+ if (typeof value === 'string') {
15
+ return `<string>${escapeXml(value)}</string>`;
16
+ }
17
+ if (value instanceof Date) {
18
+ return `<dateTime.iso8601>${value.toISOString()}</dateTime.iso8601>`;
19
+ }
20
+ if (value instanceof Uint8Array || Buffer.isBuffer(value)) {
21
+ const base64 = Buffer.from(value).toString('base64');
22
+ return `<base64>${base64}</base64>`;
23
+ }
24
+ if (Array.isArray(value)) {
25
+ const items = value.map((item) => `<value>${jsToXmlRpcValue(item)}</value>`).join('');
26
+ return `<array><data>${items}</data></array>`;
27
+ }
28
+ if (typeof value === 'object') {
29
+ const members = Object.entries(value)
30
+ .map(([name, val]) => `<member><name>${escapeXml(name)}</name><value>${jsToXmlRpcValue(val)}</value></member>`)
31
+ .join('');
32
+ return `<struct>${members}</struct>`;
33
+ }
34
+ return `<string>${String(value)}</string>`;
35
+ }
36
+ function parseXmlRpcValue(xml) {
37
+ const trimmed = xml.trim();
38
+ if (trimmed.includes('<nil/>') || trimmed.includes('<nil></nil>')) {
39
+ return null;
40
+ }
41
+ if (trimmed.startsWith('<array>') || trimmed.includes('<array>')) {
42
+ const dataMatch = trimmed.match(/<array>\s*<data>([\s\S]*)<\/data>\s*<\/array>/);
43
+ if (dataMatch) {
44
+ const values = [];
45
+ const dataContent = dataMatch[1];
46
+ const valueParts = dataContent.split(/<\/value>/);
47
+ for (const part of valueParts) {
48
+ const valueStart = part.indexOf('<value>');
49
+ if (valueStart !== -1) {
50
+ const content = part.slice(valueStart + 7);
51
+ values.push(parseXmlRpcValue(content.trim()));
52
+ }
53
+ }
54
+ return values;
55
+ }
56
+ }
57
+ if (trimmed.startsWith('<struct>') || trimmed.includes('<struct>')) {
58
+ const structContent = trimmed.match(/<struct>([\s\S]*)<\/struct>/);
59
+ if (structContent) {
60
+ const obj = {};
61
+ const memberParts = structContent[1].split(/<\/member>/);
62
+ for (const part of memberParts) {
63
+ const memberStart = part.indexOf('<member>');
64
+ if (memberStart !== -1) {
65
+ const memberContent = part.slice(memberStart + 8);
66
+ const nameMatch = memberContent.match(/<name>([\s\S]*?)<\/name>/);
67
+ const valueMatch = memberContent.match(/<value>([\s\S]*)<\/value>/s);
68
+ if (nameMatch && valueMatch) {
69
+ obj[unescapeXml(nameMatch[1].trim())] = parseXmlRpcValue(valueMatch[1].trim());
70
+ }
71
+ }
72
+ }
73
+ return obj;
74
+ }
75
+ }
76
+ const intMatch = trimmed.match(/^<(?:int|i4|i8)>(-?\d+)<\/(?:int|i4|i8)>$/);
77
+ if (intMatch) {
78
+ return parseInt(intMatch[1], 10);
79
+ }
80
+ const boolMatch = trimmed.match(/^<boolean>([01])<\/boolean>$/);
81
+ if (boolMatch) {
82
+ return boolMatch[1] === '1';
83
+ }
84
+ const doubleMatch = trimmed.match(/^<double>(-?[\d.]+(?:[eE][+-]?\d+)?)<\/double>$/);
85
+ if (doubleMatch) {
86
+ return parseFloat(doubleMatch[1]);
87
+ }
88
+ const stringMatch = trimmed.match(/^<string>([\s\S]*?)<\/string>$/);
89
+ if (stringMatch) {
90
+ return unescapeXml(stringMatch[1]);
91
+ }
92
+ const dateMatch = trimmed.match(/^<dateTime\.iso8601>([\s\S]*?)<\/dateTime\.iso8601>$/);
93
+ if (dateMatch) {
94
+ return new Date(dateMatch[1]);
95
+ }
96
+ const base64Match = trimmed.match(/^<base64>([\s\S]*?)<\/base64>$/);
97
+ if (base64Match) {
98
+ return Buffer.from(base64Match[1], 'base64');
99
+ }
100
+ return trimmed;
101
+ }
102
+ export class XmlRpcClient {
103
+ client;
104
+ endpoint;
105
+ requestOptions;
106
+ constructor(client, options) {
107
+ this.client = client;
108
+ this.endpoint = options.endpoint;
109
+ this.requestOptions = options.requestOptions ?? {};
110
+ }
111
+ async call(method, params = []) {
112
+ const paramsXml = params.map((p) => `<param><value>${jsToXmlRpcValue(p)}</value></param>`).join('');
113
+ const xml = `<?xml version="1.0"?>
114
+ <methodCall>
115
+ <methodName>${escapeXml(method)}</methodName>
116
+ <params>${paramsXml}</params>
117
+ </methodCall>`;
118
+ const response = await this.client.post(this.endpoint, xml, {
119
+ ...this.requestOptions,
120
+ headers: {
121
+ 'Content-Type': 'text/xml',
122
+ ...this.requestOptions.headers,
123
+ },
124
+ });
125
+ const responseXml = await response.text();
126
+ return this.parseResponse(responseXml);
127
+ }
128
+ parseResponse(xml) {
129
+ const faultMatch = xml.match(/<fault>\s*<value>([\s\S]+)<\/value>\s*<\/fault>/);
130
+ if (faultMatch) {
131
+ const fault = parseXmlRpcValue(faultMatch[1]);
132
+ return {
133
+ success: false,
134
+ fault: {
135
+ faultCode: fault.faultCode ?? 0,
136
+ faultString: fault.faultString ?? 'Unknown error',
137
+ },
138
+ };
139
+ }
140
+ const paramsMatch = xml.match(/<params>\s*<param>\s*<value>([\s\S]+)<\/value>\s*<\/param>\s*<\/params>/);
141
+ if (paramsMatch) {
142
+ return {
143
+ success: true,
144
+ result: parseXmlRpcValue(paramsMatch[1]),
145
+ };
146
+ }
147
+ return { success: true };
148
+ }
149
+ }
150
+ const SOAP_NAMESPACES = {
151
+ '1.1': {
152
+ envelope: 'http://schemas.xmlsoap.org/soap/envelope/',
153
+ contentType: 'text/xml; charset=utf-8',
154
+ },
155
+ '1.2': {
156
+ envelope: 'http://www.w3.org/2003/05/soap-envelope',
157
+ contentType: 'application/soap+xml; charset=utf-8',
158
+ },
159
+ };
160
+ export class SoapClient {
161
+ client;
162
+ options;
163
+ constructor(client, options) {
164
+ this.client = client;
165
+ this.options = {
166
+ endpoint: options.endpoint,
167
+ version: options.version ?? '1.2',
168
+ namespace: options.namespace ?? '',
169
+ namespacePrefix: options.namespacePrefix ?? 'ns',
170
+ wsdl: options.wsdl,
171
+ soapHeaders: options.soapHeaders ?? {},
172
+ requestOptions: options.requestOptions ?? {},
173
+ };
174
+ }
175
+ async call(method, params = {}, options) {
176
+ const soapNs = SOAP_NAMESPACES[this.options.version];
177
+ const prefix = this.options.namespacePrefix;
178
+ const ns = this.options.namespace;
179
+ const soapHeaders = { ...this.options.soapHeaders, ...options?.soapHeaders };
180
+ let soapHeaderXml = '';
181
+ if (Object.keys(soapHeaders).length > 0) {
182
+ const headerContent = this.objectToXml(soapHeaders, prefix);
183
+ soapHeaderXml = `<soap:Header>${headerContent}</soap:Header>`;
184
+ }
185
+ const paramsXml = this.objectToXml(params, prefix);
186
+ const methodXml = ns
187
+ ? `<${prefix}:${method} xmlns:${prefix}="${ns}">${paramsXml}</${prefix}:${method}>`
188
+ : `<${method}>${paramsXml}</${method}>`;
189
+ const envelope = `<?xml version="1.0" encoding="utf-8"?>
190
+ <soap:Envelope xmlns:soap="${soapNs.envelope}">
191
+ ${soapHeaderXml}
192
+ <soap:Body>
193
+ ${methodXml}
194
+ </soap:Body>
195
+ </soap:Envelope>`;
196
+ const headers = {
197
+ 'Content-Type': soapNs.contentType,
198
+ };
199
+ if (this.options.version === '1.1') {
200
+ const action = options?.soapAction ?? `${ns}/${method}`;
201
+ headers['SOAPAction'] = `"${action}"`;
202
+ }
203
+ const response = await this.client.post(this.options.endpoint, envelope, {
204
+ ...this.options.requestOptions,
205
+ headers: {
206
+ ...headers,
207
+ ...this.options.requestOptions.headers,
208
+ },
209
+ });
210
+ const responseXml = await response.text();
211
+ return this.parseResponse(responseXml, method);
212
+ }
213
+ async getWsdl() {
214
+ if (!this.options.wsdl)
215
+ return null;
216
+ const response = await this.client.get(this.options.wsdl);
217
+ return response.text();
218
+ }
219
+ objectToXml(obj, prefix) {
220
+ return Object.entries(obj)
221
+ .map(([key, value]) => {
222
+ const tagName = prefix ? `${prefix}:${key}` : key;
223
+ if (value === null || value === undefined) {
224
+ return `<${tagName} xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>`;
225
+ }
226
+ if (typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
227
+ return `<${tagName}>${this.objectToXml(value)}</${tagName}>`;
228
+ }
229
+ if (Array.isArray(value)) {
230
+ return value.map((item) => {
231
+ if (typeof item === 'object') {
232
+ return `<${tagName}>${this.objectToXml(item)}</${tagName}>`;
233
+ }
234
+ return `<${tagName}>${escapeXml(String(item))}</${tagName}>`;
235
+ }).join('');
236
+ }
237
+ if (value instanceof Date) {
238
+ return `<${tagName}>${value.toISOString()}</${tagName}>`;
239
+ }
240
+ return `<${tagName}>${escapeXml(String(value))}</${tagName}>`;
241
+ })
242
+ .join('');
243
+ }
244
+ parseResponse(xml, method) {
245
+ const faultMatch = xml.match(/<(?:soap:|SOAP-ENV:|)[Ff]ault[^>]*>([\s\S]*?)<\/(?:soap:|SOAP-ENV:|)[Ff]ault>/i);
246
+ if (faultMatch) {
247
+ const faultXml = faultMatch[1];
248
+ const codeMatch = faultXml.match(/<faultcode[^>]*>([\s\S]*?)<\/faultcode>/i);
249
+ const stringMatch = faultXml.match(/<faultstring[^>]*>([\s\S]*?)<\/faultstring>/i);
250
+ const actorMatch = faultXml.match(/<faultactor[^>]*>([\s\S]*?)<\/faultactor>/i);
251
+ const detailMatch = faultXml.match(/<detail[^>]*>([\s\S]*?)<\/detail>/i);
252
+ const codeMatch12 = faultXml.match(/<(?:\w+:)?Code[^>]*>[\s\S]*?<(?:\w+:)?Value[^>]*>([\s\S]*?)<\/(?:\w+:)?Value>/i);
253
+ const reasonMatch12 = faultXml.match(/<(?:\w+:)?Reason[^>]*>[\s\S]*?<(?:\w+:)?Text[^>]*>([\s\S]*?)<\/(?:\w+:)?Text>/i);
254
+ return {
255
+ success: false,
256
+ fault: {
257
+ code: unescapeXml(codeMatch?.[1] ?? codeMatch12?.[1] ?? 'Unknown'),
258
+ string: unescapeXml(stringMatch?.[1] ?? reasonMatch12?.[1] ?? 'Unknown error'),
259
+ actor: actorMatch ? unescapeXml(actorMatch[1]) : undefined,
260
+ detail: detailMatch ? detailMatch[1] : undefined,
261
+ },
262
+ rawXml: xml,
263
+ };
264
+ }
265
+ const bodyMatch = xml.match(/<(?:soap:|SOAP-ENV:|)[Bb]ody[^>]*>([\s\S]*?)<\/(?:soap:|SOAP-ENV:|)[Bb]ody>/i);
266
+ if (!bodyMatch) {
267
+ return {
268
+ success: false,
269
+ fault: { code: 'ParseError', string: 'Could not parse SOAP response body' },
270
+ rawXml: xml,
271
+ };
272
+ }
273
+ const bodyContent = bodyMatch[1].trim();
274
+ const responseRegex = new RegExp(`<(?:\\w+:)?${method}(?:Response|Result)[^>]*>([\\s\\S]*?)<\\/(?:\\w+:)?${method}(?:Response|Result)>`, 'i');
275
+ const responseMatch = bodyContent.match(responseRegex);
276
+ const resultXml = responseMatch ? responseMatch[1] : bodyContent;
277
+ const result = this.parseXmlToObject(resultXml);
278
+ return {
279
+ success: true,
280
+ result: result,
281
+ rawXml: xml,
282
+ };
283
+ }
284
+ parseXmlToObject(xml) {
285
+ const trimmed = xml.trim();
286
+ if (!trimmed.startsWith('<')) {
287
+ return unescapeXml(trimmed);
288
+ }
289
+ const obj = {};
290
+ const elementRegex = /<([^\/][^>\s]*)[^>]*>([\s\S]*?)<\/\1>/g;
291
+ let match;
292
+ let hasElements = false;
293
+ while ((match = elementRegex.exec(trimmed)) !== null) {
294
+ hasElements = true;
295
+ const [, tagName, content] = match;
296
+ const key = tagName.includes(':') ? tagName.split(':')[1] : tagName;
297
+ const value = this.parseXmlToObject(content);
298
+ if (key in obj) {
299
+ if (Array.isArray(obj[key])) {
300
+ obj[key].push(value);
301
+ }
302
+ else {
303
+ obj[key] = [obj[key], value];
304
+ }
305
+ }
306
+ else {
307
+ obj[key] = value;
308
+ }
309
+ }
310
+ if (!hasElements) {
311
+ return unescapeXml(trimmed);
312
+ }
313
+ return obj;
314
+ }
315
+ }
316
+ function escapeXml(str) {
317
+ return str
318
+ .replace(/&/g, '&amp;')
319
+ .replace(/</g, '&lt;')
320
+ .replace(/>/g, '&gt;')
321
+ .replace(/"/g, '&quot;')
322
+ .replace(/'/g, '&apos;');
323
+ }
324
+ function unescapeXml(str) {
325
+ return str
326
+ .replace(/&apos;/g, "'")
327
+ .replace(/&quot;/g, '"')
328
+ .replace(/&gt;/g, '>')
329
+ .replace(/&lt;/g, '<')
330
+ .replace(/&amp;/g, '&');
331
+ }
332
+ export function createXmlRpcClient(client, options) {
333
+ return new XmlRpcClient(client, options);
334
+ }
335
+ export function createSoapClient(client, options) {
336
+ return new SoapClient(client, options);
337
+ }
338
+ export function soap() {
339
+ return (client) => {
340
+ client.soap = (options) => {
341
+ return createSoapClient(client, options);
342
+ };
343
+ client.xmlrpc = (endpoint, requestOptions) => {
344
+ return createXmlRpcClient(client, { endpoint, requestOptions });
345
+ };
346
+ };
347
+ }
@@ -0,0 +1,8 @@
1
+ import { Plugin } from '../types/index.js';
2
+ export interface UserAgentOptions {
3
+ userAgents?: string[];
4
+ strategy?: 'random' | 'round-robin';
5
+ }
6
+ export declare function userAgentRotator(options?: UserAgentOptions): Plugin;
7
+ export declare function browserHeaders(platform?: 'desktop' | 'mobile'): Record<string, string>;
8
+ //# sourceMappingURL=user-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-agent.d.ts","sourceRoot":"","sources":["../../src/plugins/user-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAU3C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;CACrC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAiBvE;AAMD,wBAAgB,cAAc,CAAC,QAAQ,GAAE,SAAS,GAAG,QAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBjG"}
@@ -0,0 +1,46 @@
1
+ const DEFAULT_UAS = [
2
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
3
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
4
+ 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
5
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/121.0',
6
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/121.0'
7
+ ];
8
+ export function userAgentRotator(options = {}) {
9
+ const uas = options.userAgents || DEFAULT_UAS;
10
+ let index = 0;
11
+ return (client) => {
12
+ client.beforeRequest((req) => {
13
+ let selected;
14
+ if (options.strategy === 'round-robin') {
15
+ selected = uas[index];
16
+ index = (index + 1) % uas.length;
17
+ }
18
+ else {
19
+ selected = uas[Math.floor(Math.random() * uas.length)];
20
+ }
21
+ req.headers.set('User-Agent', selected);
22
+ });
23
+ };
24
+ }
25
+ export function browserHeaders(platform = 'desktop') {
26
+ return {
27
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
28
+ 'Accept-Language': 'en-US,en;q=0.9',
29
+ 'Accept-Encoding': 'gzip, deflate, br',
30
+ 'Connection': 'keep-alive',
31
+ 'Upgrade-Insecure-Requests': '1',
32
+ 'Sec-Fetch-Dest': 'document',
33
+ 'Sec-Fetch-Mode': 'navigate',
34
+ 'Sec-Fetch-Site': 'none',
35
+ 'Sec-Fetch-User': '?1',
36
+ ...(platform === 'desktop' ? {
37
+ 'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120"',
38
+ 'Sec-Ch-Ua-Mobile': '?0',
39
+ 'Sec-Ch-Ua-Platform': '"Windows"'
40
+ } : {
41
+ 'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120"',
42
+ 'Sec-Ch-Ua-Mobile': '?1',
43
+ 'Sec-Ch-Ua-Platform': '"Android"'
44
+ })
45
+ };
46
+ }
@@ -0,0 +1,10 @@
1
+ import { ReckerResponse } from '../types/index.js';
2
+ export interface XMLPluginOptions {
3
+ parser?: (xml: string) => any;
4
+ serializer?: (obj: any) => string;
5
+ }
6
+ export declare function parseXML(xml: string): any;
7
+ export declare function serializeXML(obj: any, rootName?: string): string;
8
+ export declare function xmlResponse<T = any>(promise: Promise<ReckerResponse>, parser?: (xml: string) => any): Promise<T>;
9
+ export { parseXML as parse, serializeXML as serialize };
10
+ //# sourceMappingURL=xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/plugins/xml.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAK/B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAM9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;CACnC;AAOD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAQzC;AAiLD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CA+ChE;AAsBD,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACvC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAc,GACtC,OAAO,CAAC,CAAC,CAAC,CAIZ;AAGD,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC"}