scrapfly-sdk 0.5.0 → 0.6.2

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 (520) hide show
  1. package/README.md +33 -14
  2. package/esm/_dnt.shims.d.ts +6 -0
  3. package/esm/_dnt.shims.d.ts.map +1 -0
  4. package/esm/_dnt.shims.js +61 -0
  5. package/esm/client.d.ts +70 -0
  6. package/esm/client.d.ts.map +1 -0
  7. package/esm/client.js +362 -0
  8. package/esm/deps/jsr.io/@std/path/1.0.1/_common/assert_path.d.ts +2 -0
  9. package/esm/deps/jsr.io/@std/path/1.0.1/_common/assert_path.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@std/path/1.0.1/_common/assert_path.js +7 -0
  11. package/esm/deps/jsr.io/@std/path/1.0.1/_common/basename.d.ts +4 -0
  12. package/esm/deps/jsr.io/@std/path/1.0.1/_common/basename.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/path/1.0.1/_common/basename.js +40 -0
  14. package/esm/deps/jsr.io/@std/path/1.0.1/_common/common.d.ts +2 -0
  15. package/esm/deps/jsr.io/@std/path/1.0.1/_common/common.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/path/1.0.1/_common/common.js +23 -0
  17. package/esm/deps/jsr.io/@std/path/1.0.1/_common/constants.d.ts +40 -0
  18. package/esm/deps/jsr.io/@std/path/1.0.1/_common/constants.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/path/1.0.1/_common/constants.js +46 -0
  20. package/esm/deps/jsr.io/@std/path/1.0.1/_common/dirname.d.ts +2 -0
  21. package/esm/deps/jsr.io/@std/path/1.0.1/_common/dirname.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/path/1.0.1/_common/dirname.js +8 -0
  23. package/esm/deps/jsr.io/@std/path/1.0.1/_common/format.d.ts +4 -0
  24. package/esm/deps/jsr.io/@std/path/1.0.1/_common/format.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/path/1.0.1/_common/format.js +19 -0
  26. package/esm/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.d.ts +3 -0
  27. package/esm/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.js +9 -0
  29. package/esm/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.d.ts +35 -0
  30. package/esm/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.js +234 -0
  32. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize.d.ts +2 -0
  33. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize.js +8 -0
  35. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.d.ts +2 -0
  36. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.js +77 -0
  38. package/esm/deps/jsr.io/@std/path/1.0.1/_common/relative.d.ts +2 -0
  39. package/esm/deps/jsr.io/@std/path/1.0.1/_common/relative.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/path/1.0.1/_common/relative.js +9 -0
  41. package/esm/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.d.ts +2 -0
  42. package/esm/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.js +19 -0
  44. package/esm/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.d.ts +2 -0
  45. package/esm/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.js +15 -0
  47. package/esm/deps/jsr.io/@std/path/1.0.1/_os.d.ts +2 -0
  48. package/esm/deps/jsr.io/@std/path/1.0.1/_os.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/path/1.0.1/_os.js +17 -0
  50. package/esm/deps/jsr.io/@std/path/1.0.1/basename.d.ts +25 -0
  51. package/esm/deps/jsr.io/@std/path/1.0.1/basename.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@std/path/1.0.1/basename.js +33 -0
  53. package/esm/deps/jsr.io/@std/path/1.0.1/common.d.ts +28 -0
  54. package/esm/deps/jsr.io/@std/path/1.0.1/common.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@std/path/1.0.1/common.js +33 -0
  56. package/esm/deps/jsr.io/@std/path/1.0.1/constants.d.ts +15 -0
  57. package/esm/deps/jsr.io/@std/path/1.0.1/constants.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@std/path/1.0.1/constants.js +17 -0
  59. package/esm/deps/jsr.io/@std/path/1.0.1/dirname.d.ts +20 -0
  60. package/esm/deps/jsr.io/@std/path/1.0.1/dirname.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@std/path/1.0.1/dirname.js +26 -0
  62. package/esm/deps/jsr.io/@std/path/1.0.1/extname.d.ts +20 -0
  63. package/esm/deps/jsr.io/@std/path/1.0.1/extname.d.ts.map +1 -0
  64. package/esm/deps/jsr.io/@std/path/1.0.1/extname.js +26 -0
  65. package/esm/deps/jsr.io/@std/path/1.0.1/format.d.ts +22 -0
  66. package/esm/deps/jsr.io/@std/path/1.0.1/format.d.ts.map +1 -0
  67. package/esm/deps/jsr.io/@std/path/1.0.1/format.js +27 -0
  68. package/esm/deps/jsr.io/@std/path/1.0.1/from_file_url.d.ts +23 -0
  69. package/esm/deps/jsr.io/@std/path/1.0.1/from_file_url.d.ts.map +1 -0
  70. package/esm/deps/jsr.io/@std/path/1.0.1/from_file_url.js +28 -0
  71. package/esm/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.d.ts +77 -0
  72. package/esm/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.d.ts.map +1 -0
  73. package/esm/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.js +83 -0
  74. package/esm/deps/jsr.io/@std/path/1.0.1/is_absolute.d.ts +22 -0
  75. package/esm/deps/jsr.io/@std/path/1.0.1/is_absolute.d.ts.map +1 -0
  76. package/esm/deps/jsr.io/@std/path/1.0.1/is_absolute.js +28 -0
  77. package/esm/deps/jsr.io/@std/path/1.0.1/is_glob.d.ts +17 -0
  78. package/esm/deps/jsr.io/@std/path/1.0.1/is_glob.d.ts.map +1 -0
  79. package/esm/deps/jsr.io/@std/path/1.0.1/is_glob.js +42 -0
  80. package/esm/deps/jsr.io/@std/path/1.0.1/join.d.ts +20 -0
  81. package/esm/deps/jsr.io/@std/path/1.0.1/join.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@std/path/1.0.1/join.js +26 -0
  83. package/esm/deps/jsr.io/@std/path/1.0.1/join_globs.d.ts +28 -0
  84. package/esm/deps/jsr.io/@std/path/1.0.1/join_globs.d.ts.map +1 -0
  85. package/esm/deps/jsr.io/@std/path/1.0.1/join_globs.js +34 -0
  86. package/esm/deps/jsr.io/@std/path/1.0.1/mod.d.ts +51 -0
  87. package/esm/deps/jsr.io/@std/path/1.0.1/mod.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@std/path/1.0.1/mod.js +54 -0
  89. package/esm/deps/jsr.io/@std/path/1.0.1/normalize.d.ts +24 -0
  90. package/esm/deps/jsr.io/@std/path/1.0.1/normalize.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@std/path/1.0.1/normalize.js +30 -0
  92. package/esm/deps/jsr.io/@std/path/1.0.1/normalize_glob.d.ts +29 -0
  93. package/esm/deps/jsr.io/@std/path/1.0.1/normalize_glob.d.ts.map +1 -0
  94. package/esm/deps/jsr.io/@std/path/1.0.1/normalize_glob.js +35 -0
  95. package/esm/deps/jsr.io/@std/path/1.0.1/parse.d.ts +35 -0
  96. package/esm/deps/jsr.io/@std/path/1.0.1/parse.d.ts.map +1 -0
  97. package/esm/deps/jsr.io/@std/path/1.0.1/parse.js +39 -0
  98. package/esm/deps/jsr.io/@std/path/1.0.1/posix/_util.d.ts +2 -0
  99. package/esm/deps/jsr.io/@std/path/1.0.1/posix/_util.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@std/path/1.0.1/posix/_util.js +8 -0
  101. package/esm/deps/jsr.io/@std/path/1.0.1/posix/basename.d.ts +20 -0
  102. package/esm/deps/jsr.io/@std/path/1.0.1/posix/basename.d.ts.map +1 -0
  103. package/esm/deps/jsr.io/@std/path/1.0.1/posix/basename.js +29 -0
  104. package/esm/deps/jsr.io/@std/path/1.0.1/posix/constants.d.ts +13 -0
  105. package/esm/deps/jsr.io/@std/path/1.0.1/posix/constants.d.ts.map +1 -0
  106. package/esm/deps/jsr.io/@std/path/1.0.1/posix/constants.js +14 -0
  107. package/esm/deps/jsr.io/@std/path/1.0.1/posix/dirname.d.ts +17 -0
  108. package/esm/deps/jsr.io/@std/path/1.0.1/posix/dirname.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@std/path/1.0.1/posix/dirname.js +47 -0
  110. package/esm/deps/jsr.io/@std/path/1.0.1/posix/extname.d.ts +18 -0
  111. package/esm/deps/jsr.io/@std/path/1.0.1/posix/extname.d.ts.map +1 -0
  112. package/esm/deps/jsr.io/@std/path/1.0.1/posix/extname.js +70 -0
  113. package/esm/deps/jsr.io/@std/path/1.0.1/posix/format.d.ts +24 -0
  114. package/esm/deps/jsr.io/@std/path/1.0.1/posix/format.d.ts.map +1 -0
  115. package/esm/deps/jsr.io/@std/path/1.0.1/posix/format.js +28 -0
  116. package/esm/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.d.ts +17 -0
  117. package/esm/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.js +21 -0
  119. package/esm/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.d.ts +72 -0
  120. package/esm/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.js +82 -0
  122. package/esm/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.d.ts +17 -0
  123. package/esm/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.d.ts.map +1 -0
  124. package/esm/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.js +23 -0
  125. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join.d.ts +17 -0
  126. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join.d.ts.map +1 -0
  127. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join.js +26 -0
  128. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join_globs.d.ts +20 -0
  129. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join_globs.d.ts.map +1 -0
  130. package/esm/deps/jsr.io/@std/path/1.0.1/posix/join_globs.js +39 -0
  131. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize.d.ts +19 -0
  132. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize.d.ts.map +1 -0
  133. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize.js +36 -0
  134. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.d.ts +20 -0
  135. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.d.ts.map +1 -0
  136. package/esm/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.js +31 -0
  137. package/esm/deps/jsr.io/@std/path/1.0.1/posix/parse.d.ts +25 -0
  138. package/esm/deps/jsr.io/@std/path/1.0.1/posix/parse.d.ts.map +1 -0
  139. package/esm/deps/jsr.io/@std/path/1.0.1/posix/parse.js +115 -0
  140. package/esm/deps/jsr.io/@std/path/1.0.1/posix/relative.d.ts +20 -0
  141. package/esm/deps/jsr.io/@std/path/1.0.1/posix/relative.d.ts.map +1 -0
  142. package/esm/deps/jsr.io/@std/path/1.0.1/posix/relative.js +106 -0
  143. package/esm/deps/jsr.io/@std/path/1.0.1/posix/resolve.d.ts +17 -0
  144. package/esm/deps/jsr.io/@std/path/1.0.1/posix/resolve.d.ts.map +1 -0
  145. package/esm/deps/jsr.io/@std/path/1.0.1/posix/resolve.js +59 -0
  146. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.d.ts +18 -0
  147. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.d.ts.map +1 -0
  148. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.js +27 -0
  149. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.d.ts +16 -0
  150. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.d.ts.map +1 -0
  151. package/esm/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.js +20 -0
  152. package/esm/deps/jsr.io/@std/path/1.0.1/relative.d.ts +24 -0
  153. package/esm/deps/jsr.io/@std/path/1.0.1/relative.d.ts.map +1 -0
  154. package/esm/deps/jsr.io/@std/path/1.0.1/relative.js +30 -0
  155. package/esm/deps/jsr.io/@std/path/1.0.1/resolve.d.ts +22 -0
  156. package/esm/deps/jsr.io/@std/path/1.0.1/resolve.d.ts.map +1 -0
  157. package/esm/deps/jsr.io/@std/path/1.0.1/resolve.js +30 -0
  158. package/esm/deps/jsr.io/@std/path/1.0.1/to_file_url.d.ts +23 -0
  159. package/esm/deps/jsr.io/@std/path/1.0.1/to_file_url.d.ts.map +1 -0
  160. package/esm/deps/jsr.io/@std/path/1.0.1/to_file_url.js +28 -0
  161. package/esm/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.d.ts +21 -0
  162. package/esm/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.d.ts.map +1 -0
  163. package/esm/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.js +29 -0
  164. package/esm/deps/jsr.io/@std/path/1.0.1/types.d.ts +38 -0
  165. package/esm/deps/jsr.io/@std/path/1.0.1/types.d.ts.map +1 -0
  166. package/esm/deps/jsr.io/@std/path/1.0.1/types.js +3 -0
  167. package/esm/deps/jsr.io/@std/path/1.0.1/windows/_util.d.ts +4 -0
  168. package/esm/deps/jsr.io/@std/path/1.0.1/windows/_util.d.ts.map +1 -0
  169. package/esm/deps/jsr.io/@std/path/1.0.1/windows/_util.js +15 -0
  170. package/esm/deps/jsr.io/@std/path/1.0.1/windows/basename.d.ts +20 -0
  171. package/esm/deps/jsr.io/@std/path/1.0.1/windows/basename.d.ts.map +1 -0
  172. package/esm/deps/jsr.io/@std/path/1.0.1/windows/basename.js +41 -0
  173. package/esm/deps/jsr.io/@std/path/1.0.1/windows/constants.d.ts +13 -0
  174. package/esm/deps/jsr.io/@std/path/1.0.1/windows/constants.d.ts.map +1 -0
  175. package/esm/deps/jsr.io/@std/path/1.0.1/windows/constants.js +14 -0
  176. package/esm/deps/jsr.io/@std/path/1.0.1/windows/dirname.d.ts +17 -0
  177. package/esm/deps/jsr.io/@std/path/1.0.1/windows/dirname.d.ts.map +1 -0
  178. package/esm/deps/jsr.io/@std/path/1.0.1/windows/dirname.js +109 -0
  179. package/esm/deps/jsr.io/@std/path/1.0.1/windows/extname.d.ts +17 -0
  180. package/esm/deps/jsr.io/@std/path/1.0.1/windows/extname.d.ts.map +1 -0
  181. package/esm/deps/jsr.io/@std/path/1.0.1/windows/extname.js +78 -0
  182. package/esm/deps/jsr.io/@std/path/1.0.1/windows/format.d.ts +24 -0
  183. package/esm/deps/jsr.io/@std/path/1.0.1/windows/format.d.ts.map +1 -0
  184. package/esm/deps/jsr.io/@std/path/1.0.1/windows/format.js +28 -0
  185. package/esm/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.d.ts +19 -0
  186. package/esm/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.d.ts.map +1 -0
  187. package/esm/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.js +30 -0
  188. package/esm/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.d.ts +71 -0
  189. package/esm/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.d.ts.map +1 -0
  190. package/esm/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.js +82 -0
  191. package/esm/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.d.ts +17 -0
  192. package/esm/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.d.ts.map +1 -0
  193. package/esm/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.js +38 -0
  194. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join.d.ts +17 -0
  195. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join.d.ts.map +1 -0
  196. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join.js +71 -0
  197. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join_globs.d.ts +21 -0
  198. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join_globs.d.ts.map +1 -0
  199. package/esm/deps/jsr.io/@std/path/1.0.1/windows/join_globs.js +40 -0
  200. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize.d.ts +19 -0
  201. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize.d.ts.map +1 -0
  202. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize.js +131 -0
  203. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.d.ts +20 -0
  204. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.d.ts.map +1 -0
  205. package/esm/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.js +31 -0
  206. package/esm/deps/jsr.io/@std/path/1.0.1/windows/parse.d.ts +25 -0
  207. package/esm/deps/jsr.io/@std/path/1.0.1/windows/parse.d.ts.map +1 -0
  208. package/esm/deps/jsr.io/@std/path/1.0.1/windows/parse.js +176 -0
  209. package/esm/deps/jsr.io/@std/path/1.0.1/windows/relative.d.ts +23 -0
  210. package/esm/deps/jsr.io/@std/path/1.0.1/windows/relative.d.ts.map +1 -0
  211. package/esm/deps/jsr.io/@std/path/1.0.1/windows/relative.js +131 -0
  212. package/esm/deps/jsr.io/@std/path/1.0.1/windows/resolve.d.ts +17 -0
  213. package/esm/deps/jsr.io/@std/path/1.0.1/windows/resolve.d.ts.map +1 -0
  214. package/esm/deps/jsr.io/@std/path/1.0.1/windows/resolve.js +154 -0
  215. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.d.ts +18 -0
  216. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.d.ts.map +1 -0
  217. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.js +34 -0
  218. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.d.ts +17 -0
  219. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.d.ts.map +1 -0
  220. package/esm/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.js +49 -0
  221. package/esm/deps.d.ts +4 -0
  222. package/esm/deps.d.ts.map +1 -0
  223. package/esm/deps.js +3 -0
  224. package/{build/src → esm}/errors.d.ts +9 -0
  225. package/esm/errors.d.ts.map +1 -0
  226. package/{build/src → esm}/errors.js +19 -3
  227. package/esm/extractionconfig.d.ts +47 -0
  228. package/esm/extractionconfig.d.ts.map +1 -0
  229. package/esm/extractionconfig.js +156 -0
  230. package/{build/src → esm}/logger.d.ts +1 -0
  231. package/esm/logger.d.ts.map +1 -0
  232. package/{build/src → esm}/logger.js +12 -3
  233. package/esm/main.d.ts +9 -0
  234. package/esm/main.d.ts.map +1 -0
  235. package/esm/main.js +7 -0
  236. package/esm/package.json +3 -0
  237. package/{build/src → esm}/result.d.ts +30 -4
  238. package/esm/result.d.ts.map +1 -0
  239. package/esm/result.js +118 -0
  240. package/esm/scrapeconfig.d.ts +120 -0
  241. package/esm/scrapeconfig.d.ts.map +1 -0
  242. package/esm/scrapeconfig.js +505 -0
  243. package/esm/screenshotconfig.d.ts +69 -0
  244. package/esm/screenshotconfig.d.ts.map +1 -0
  245. package/esm/screenshotconfig.js +220 -0
  246. package/{build/src → esm}/types.d.ts +1 -0
  247. package/esm/types.d.ts.map +1 -0
  248. package/esm/types.js +1 -0
  249. package/esm/utils.d.ts +4 -0
  250. package/esm/utils.d.ts.map +1 -0
  251. package/esm/utils.js +36 -0
  252. package/package.json +36 -61
  253. package/script/_dnt.shims.d.ts +6 -0
  254. package/script/_dnt.shims.d.ts.map +1 -0
  255. package/script/_dnt.shims.js +65 -0
  256. package/script/client.d.ts +70 -0
  257. package/script/client.d.ts.map +1 -0
  258. package/script/client.js +389 -0
  259. package/script/deps/jsr.io/@std/path/1.0.1/_common/assert_path.d.ts +2 -0
  260. package/script/deps/jsr.io/@std/path/1.0.1/_common/assert_path.d.ts.map +1 -0
  261. package/script/deps/jsr.io/@std/path/1.0.1/_common/assert_path.js +11 -0
  262. package/script/deps/jsr.io/@std/path/1.0.1/_common/basename.d.ts +4 -0
  263. package/script/deps/jsr.io/@std/path/1.0.1/_common/basename.d.ts.map +1 -0
  264. package/script/deps/jsr.io/@std/path/1.0.1/_common/basename.js +46 -0
  265. package/script/deps/jsr.io/@std/path/1.0.1/_common/common.d.ts +2 -0
  266. package/script/deps/jsr.io/@std/path/1.0.1/_common/common.d.ts.map +1 -0
  267. package/script/deps/jsr.io/@std/path/1.0.1/_common/common.js +27 -0
  268. package/script/deps/jsr.io/@std/path/1.0.1/_common/constants.d.ts +40 -0
  269. package/script/deps/jsr.io/@std/path/1.0.1/_common/constants.d.ts.map +1 -0
  270. package/script/deps/jsr.io/@std/path/1.0.1/_common/constants.js +49 -0
  271. package/script/deps/jsr.io/@std/path/1.0.1/_common/dirname.d.ts +2 -0
  272. package/script/deps/jsr.io/@std/path/1.0.1/_common/dirname.d.ts.map +1 -0
  273. package/script/deps/jsr.io/@std/path/1.0.1/_common/dirname.js +12 -0
  274. package/script/deps/jsr.io/@std/path/1.0.1/_common/format.d.ts +4 -0
  275. package/script/deps/jsr.io/@std/path/1.0.1/_common/format.d.ts.map +1 -0
  276. package/script/deps/jsr.io/@std/path/1.0.1/_common/format.js +24 -0
  277. package/script/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.d.ts +3 -0
  278. package/script/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.d.ts.map +1 -0
  279. package/script/deps/jsr.io/@std/path/1.0.1/_common/from_file_url.js +13 -0
  280. package/script/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.d.ts +35 -0
  281. package/script/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.d.ts.map +1 -0
  282. package/script/deps/jsr.io/@std/path/1.0.1/_common/glob_to_reg_exp.js +238 -0
  283. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize.d.ts +2 -0
  284. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize.d.ts.map +1 -0
  285. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize.js +12 -0
  286. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.d.ts +2 -0
  287. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.d.ts.map +1 -0
  288. package/script/deps/jsr.io/@std/path/1.0.1/_common/normalize_string.js +81 -0
  289. package/script/deps/jsr.io/@std/path/1.0.1/_common/relative.d.ts +2 -0
  290. package/script/deps/jsr.io/@std/path/1.0.1/_common/relative.d.ts.map +1 -0
  291. package/script/deps/jsr.io/@std/path/1.0.1/_common/relative.js +13 -0
  292. package/script/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.d.ts +2 -0
  293. package/script/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.d.ts.map +1 -0
  294. package/script/deps/jsr.io/@std/path/1.0.1/_common/strip_trailing_separators.js +23 -0
  295. package/script/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.d.ts +2 -0
  296. package/script/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.d.ts.map +1 -0
  297. package/script/deps/jsr.io/@std/path/1.0.1/_common/to_file_url.js +19 -0
  298. package/script/deps/jsr.io/@std/path/1.0.1/_os.d.ts +2 -0
  299. package/script/deps/jsr.io/@std/path/1.0.1/_os.d.ts.map +1 -0
  300. package/script/deps/jsr.io/@std/path/1.0.1/_os.js +43 -0
  301. package/script/deps/jsr.io/@std/path/1.0.1/basename.d.ts +25 -0
  302. package/script/deps/jsr.io/@std/path/1.0.1/basename.d.ts.map +1 -0
  303. package/script/deps/jsr.io/@std/path/1.0.1/basename.js +37 -0
  304. package/script/deps/jsr.io/@std/path/1.0.1/common.d.ts +28 -0
  305. package/script/deps/jsr.io/@std/path/1.0.1/common.d.ts.map +1 -0
  306. package/script/deps/jsr.io/@std/path/1.0.1/common.js +37 -0
  307. package/script/deps/jsr.io/@std/path/1.0.1/constants.d.ts +15 -0
  308. package/script/deps/jsr.io/@std/path/1.0.1/constants.d.ts.map +1 -0
  309. package/script/deps/jsr.io/@std/path/1.0.1/constants.js +20 -0
  310. package/script/deps/jsr.io/@std/path/1.0.1/dirname.d.ts +20 -0
  311. package/script/deps/jsr.io/@std/path/1.0.1/dirname.d.ts.map +1 -0
  312. package/script/deps/jsr.io/@std/path/1.0.1/dirname.js +30 -0
  313. package/script/deps/jsr.io/@std/path/1.0.1/extname.d.ts +20 -0
  314. package/script/deps/jsr.io/@std/path/1.0.1/extname.d.ts.map +1 -0
  315. package/script/deps/jsr.io/@std/path/1.0.1/extname.js +30 -0
  316. package/script/deps/jsr.io/@std/path/1.0.1/format.d.ts +22 -0
  317. package/script/deps/jsr.io/@std/path/1.0.1/format.d.ts.map +1 -0
  318. package/script/deps/jsr.io/@std/path/1.0.1/format.js +31 -0
  319. package/script/deps/jsr.io/@std/path/1.0.1/from_file_url.d.ts +23 -0
  320. package/script/deps/jsr.io/@std/path/1.0.1/from_file_url.d.ts.map +1 -0
  321. package/script/deps/jsr.io/@std/path/1.0.1/from_file_url.js +32 -0
  322. package/script/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.d.ts +77 -0
  323. package/script/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.d.ts.map +1 -0
  324. package/script/deps/jsr.io/@std/path/1.0.1/glob_to_regexp.js +87 -0
  325. package/script/deps/jsr.io/@std/path/1.0.1/is_absolute.d.ts +22 -0
  326. package/script/deps/jsr.io/@std/path/1.0.1/is_absolute.d.ts.map +1 -0
  327. package/script/deps/jsr.io/@std/path/1.0.1/is_absolute.js +32 -0
  328. package/script/deps/jsr.io/@std/path/1.0.1/is_glob.d.ts +17 -0
  329. package/script/deps/jsr.io/@std/path/1.0.1/is_glob.d.ts.map +1 -0
  330. package/script/deps/jsr.io/@std/path/1.0.1/is_glob.js +46 -0
  331. package/script/deps/jsr.io/@std/path/1.0.1/join.d.ts +20 -0
  332. package/script/deps/jsr.io/@std/path/1.0.1/join.d.ts.map +1 -0
  333. package/script/deps/jsr.io/@std/path/1.0.1/join.js +30 -0
  334. package/script/deps/jsr.io/@std/path/1.0.1/join_globs.d.ts +28 -0
  335. package/script/deps/jsr.io/@std/path/1.0.1/join_globs.d.ts.map +1 -0
  336. package/script/deps/jsr.io/@std/path/1.0.1/join_globs.js +38 -0
  337. package/script/deps/jsr.io/@std/path/1.0.1/mod.d.ts +51 -0
  338. package/script/deps/jsr.io/@std/path/1.0.1/mod.d.ts.map +1 -0
  339. package/script/deps/jsr.io/@std/path/1.0.1/mod.js +70 -0
  340. package/script/deps/jsr.io/@std/path/1.0.1/normalize.d.ts +24 -0
  341. package/script/deps/jsr.io/@std/path/1.0.1/normalize.d.ts.map +1 -0
  342. package/script/deps/jsr.io/@std/path/1.0.1/normalize.js +34 -0
  343. package/script/deps/jsr.io/@std/path/1.0.1/normalize_glob.d.ts +29 -0
  344. package/script/deps/jsr.io/@std/path/1.0.1/normalize_glob.d.ts.map +1 -0
  345. package/script/deps/jsr.io/@std/path/1.0.1/normalize_glob.js +39 -0
  346. package/script/deps/jsr.io/@std/path/1.0.1/parse.d.ts +35 -0
  347. package/script/deps/jsr.io/@std/path/1.0.1/parse.d.ts.map +1 -0
  348. package/script/deps/jsr.io/@std/path/1.0.1/parse.js +43 -0
  349. package/script/deps/jsr.io/@std/path/1.0.1/posix/_util.d.ts +2 -0
  350. package/script/deps/jsr.io/@std/path/1.0.1/posix/_util.d.ts.map +1 -0
  351. package/script/deps/jsr.io/@std/path/1.0.1/posix/_util.js +12 -0
  352. package/script/deps/jsr.io/@std/path/1.0.1/posix/basename.d.ts +20 -0
  353. package/script/deps/jsr.io/@std/path/1.0.1/posix/basename.d.ts.map +1 -0
  354. package/script/deps/jsr.io/@std/path/1.0.1/posix/basename.js +33 -0
  355. package/script/deps/jsr.io/@std/path/1.0.1/posix/constants.d.ts +13 -0
  356. package/script/deps/jsr.io/@std/path/1.0.1/posix/constants.d.ts.map +1 -0
  357. package/script/deps/jsr.io/@std/path/1.0.1/posix/constants.js +17 -0
  358. package/script/deps/jsr.io/@std/path/1.0.1/posix/dirname.d.ts +17 -0
  359. package/script/deps/jsr.io/@std/path/1.0.1/posix/dirname.d.ts.map +1 -0
  360. package/script/deps/jsr.io/@std/path/1.0.1/posix/dirname.js +51 -0
  361. package/script/deps/jsr.io/@std/path/1.0.1/posix/extname.d.ts +18 -0
  362. package/script/deps/jsr.io/@std/path/1.0.1/posix/extname.d.ts.map +1 -0
  363. package/script/deps/jsr.io/@std/path/1.0.1/posix/extname.js +74 -0
  364. package/script/deps/jsr.io/@std/path/1.0.1/posix/format.d.ts +24 -0
  365. package/script/deps/jsr.io/@std/path/1.0.1/posix/format.d.ts.map +1 -0
  366. package/script/deps/jsr.io/@std/path/1.0.1/posix/format.js +32 -0
  367. package/script/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.d.ts +17 -0
  368. package/script/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.d.ts.map +1 -0
  369. package/script/deps/jsr.io/@std/path/1.0.1/posix/from_file_url.js +25 -0
  370. package/script/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.d.ts +72 -0
  371. package/script/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.d.ts.map +1 -0
  372. package/script/deps/jsr.io/@std/path/1.0.1/posix/glob_to_regexp.js +86 -0
  373. package/script/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.d.ts +17 -0
  374. package/script/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.d.ts.map +1 -0
  375. package/script/deps/jsr.io/@std/path/1.0.1/posix/is_absolute.js +27 -0
  376. package/script/deps/jsr.io/@std/path/1.0.1/posix/join.d.ts +17 -0
  377. package/script/deps/jsr.io/@std/path/1.0.1/posix/join.d.ts.map +1 -0
  378. package/script/deps/jsr.io/@std/path/1.0.1/posix/join.js +30 -0
  379. package/script/deps/jsr.io/@std/path/1.0.1/posix/join_globs.d.ts +20 -0
  380. package/script/deps/jsr.io/@std/path/1.0.1/posix/join_globs.d.ts.map +1 -0
  381. package/script/deps/jsr.io/@std/path/1.0.1/posix/join_globs.js +43 -0
  382. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize.d.ts +19 -0
  383. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize.d.ts.map +1 -0
  384. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize.js +40 -0
  385. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.d.ts +20 -0
  386. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.d.ts.map +1 -0
  387. package/script/deps/jsr.io/@std/path/1.0.1/posix/normalize_glob.js +35 -0
  388. package/script/deps/jsr.io/@std/path/1.0.1/posix/parse.d.ts +25 -0
  389. package/script/deps/jsr.io/@std/path/1.0.1/posix/parse.d.ts.map +1 -0
  390. package/script/deps/jsr.io/@std/path/1.0.1/posix/parse.js +119 -0
  391. package/script/deps/jsr.io/@std/path/1.0.1/posix/relative.d.ts +20 -0
  392. package/script/deps/jsr.io/@std/path/1.0.1/posix/relative.d.ts.map +1 -0
  393. package/script/deps/jsr.io/@std/path/1.0.1/posix/relative.js +110 -0
  394. package/script/deps/jsr.io/@std/path/1.0.1/posix/resolve.d.ts +17 -0
  395. package/script/deps/jsr.io/@std/path/1.0.1/posix/resolve.d.ts.map +1 -0
  396. package/script/deps/jsr.io/@std/path/1.0.1/posix/resolve.js +86 -0
  397. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.d.ts +18 -0
  398. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.d.ts.map +1 -0
  399. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_file_url.js +31 -0
  400. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.d.ts +16 -0
  401. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.d.ts.map +1 -0
  402. package/script/deps/jsr.io/@std/path/1.0.1/posix/to_namespaced_path.js +24 -0
  403. package/script/deps/jsr.io/@std/path/1.0.1/relative.d.ts +24 -0
  404. package/script/deps/jsr.io/@std/path/1.0.1/relative.d.ts.map +1 -0
  405. package/script/deps/jsr.io/@std/path/1.0.1/relative.js +34 -0
  406. package/script/deps/jsr.io/@std/path/1.0.1/resolve.d.ts +22 -0
  407. package/script/deps/jsr.io/@std/path/1.0.1/resolve.d.ts.map +1 -0
  408. package/script/deps/jsr.io/@std/path/1.0.1/resolve.js +34 -0
  409. package/script/deps/jsr.io/@std/path/1.0.1/to_file_url.d.ts +23 -0
  410. package/script/deps/jsr.io/@std/path/1.0.1/to_file_url.d.ts.map +1 -0
  411. package/script/deps/jsr.io/@std/path/1.0.1/to_file_url.js +32 -0
  412. package/script/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.d.ts +21 -0
  413. package/script/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.d.ts.map +1 -0
  414. package/script/deps/jsr.io/@std/path/1.0.1/to_namespaced_path.js +33 -0
  415. package/script/deps/jsr.io/@std/path/1.0.1/types.d.ts +38 -0
  416. package/script/deps/jsr.io/@std/path/1.0.1/types.d.ts.map +1 -0
  417. package/script/deps/jsr.io/@std/path/1.0.1/types.js +4 -0
  418. package/script/deps/jsr.io/@std/path/1.0.1/windows/_util.d.ts +4 -0
  419. package/script/deps/jsr.io/@std/path/1.0.1/windows/_util.d.ts.map +1 -0
  420. package/script/deps/jsr.io/@std/path/1.0.1/windows/_util.js +21 -0
  421. package/script/deps/jsr.io/@std/path/1.0.1/windows/basename.d.ts +20 -0
  422. package/script/deps/jsr.io/@std/path/1.0.1/windows/basename.d.ts.map +1 -0
  423. package/script/deps/jsr.io/@std/path/1.0.1/windows/basename.js +45 -0
  424. package/script/deps/jsr.io/@std/path/1.0.1/windows/constants.d.ts +13 -0
  425. package/script/deps/jsr.io/@std/path/1.0.1/windows/constants.d.ts.map +1 -0
  426. package/script/deps/jsr.io/@std/path/1.0.1/windows/constants.js +17 -0
  427. package/script/deps/jsr.io/@std/path/1.0.1/windows/dirname.d.ts +17 -0
  428. package/script/deps/jsr.io/@std/path/1.0.1/windows/dirname.d.ts.map +1 -0
  429. package/script/deps/jsr.io/@std/path/1.0.1/windows/dirname.js +113 -0
  430. package/script/deps/jsr.io/@std/path/1.0.1/windows/extname.d.ts +17 -0
  431. package/script/deps/jsr.io/@std/path/1.0.1/windows/extname.d.ts.map +1 -0
  432. package/script/deps/jsr.io/@std/path/1.0.1/windows/extname.js +82 -0
  433. package/script/deps/jsr.io/@std/path/1.0.1/windows/format.d.ts +24 -0
  434. package/script/deps/jsr.io/@std/path/1.0.1/windows/format.d.ts.map +1 -0
  435. package/script/deps/jsr.io/@std/path/1.0.1/windows/format.js +32 -0
  436. package/script/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.d.ts +19 -0
  437. package/script/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.d.ts.map +1 -0
  438. package/script/deps/jsr.io/@std/path/1.0.1/windows/from_file_url.js +34 -0
  439. package/script/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.d.ts +71 -0
  440. package/script/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.d.ts.map +1 -0
  441. package/script/deps/jsr.io/@std/path/1.0.1/windows/glob_to_regexp.js +86 -0
  442. package/script/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.d.ts +17 -0
  443. package/script/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.d.ts.map +1 -0
  444. package/script/deps/jsr.io/@std/path/1.0.1/windows/is_absolute.js +42 -0
  445. package/script/deps/jsr.io/@std/path/1.0.1/windows/join.d.ts +17 -0
  446. package/script/deps/jsr.io/@std/path/1.0.1/windows/join.d.ts.map +1 -0
  447. package/script/deps/jsr.io/@std/path/1.0.1/windows/join.js +75 -0
  448. package/script/deps/jsr.io/@std/path/1.0.1/windows/join_globs.d.ts +21 -0
  449. package/script/deps/jsr.io/@std/path/1.0.1/windows/join_globs.d.ts.map +1 -0
  450. package/script/deps/jsr.io/@std/path/1.0.1/windows/join_globs.js +44 -0
  451. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize.d.ts +19 -0
  452. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize.d.ts.map +1 -0
  453. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize.js +135 -0
  454. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.d.ts +20 -0
  455. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.d.ts.map +1 -0
  456. package/script/deps/jsr.io/@std/path/1.0.1/windows/normalize_glob.js +35 -0
  457. package/script/deps/jsr.io/@std/path/1.0.1/windows/parse.d.ts +25 -0
  458. package/script/deps/jsr.io/@std/path/1.0.1/windows/parse.d.ts.map +1 -0
  459. package/script/deps/jsr.io/@std/path/1.0.1/windows/parse.js +180 -0
  460. package/script/deps/jsr.io/@std/path/1.0.1/windows/relative.d.ts +23 -0
  461. package/script/deps/jsr.io/@std/path/1.0.1/windows/relative.d.ts.map +1 -0
  462. package/script/deps/jsr.io/@std/path/1.0.1/windows/relative.js +135 -0
  463. package/script/deps/jsr.io/@std/path/1.0.1/windows/resolve.d.ts +17 -0
  464. package/script/deps/jsr.io/@std/path/1.0.1/windows/resolve.d.ts.map +1 -0
  465. package/script/deps/jsr.io/@std/path/1.0.1/windows/resolve.js +181 -0
  466. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.d.ts +18 -0
  467. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.d.ts.map +1 -0
  468. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_file_url.js +38 -0
  469. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.d.ts +17 -0
  470. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.d.ts.map +1 -0
  471. package/script/deps/jsr.io/@std/path/1.0.1/windows/to_namespaced_path.js +53 -0
  472. package/script/deps.d.ts +4 -0
  473. package/script/deps.d.ts.map +1 -0
  474. package/script/deps.js +30 -0
  475. package/script/errors.d.ts +53 -0
  476. package/script/errors.d.ts.map +1 -0
  477. package/script/errors.js +102 -0
  478. package/script/extractionconfig.d.ts +47 -0
  479. package/script/extractionconfig.d.ts.map +1 -0
  480. package/script/extractionconfig.js +183 -0
  481. package/script/logger.d.ts +19 -0
  482. package/script/logger.d.ts.map +1 -0
  483. package/script/logger.js +58 -0
  484. package/script/main.d.ts +9 -0
  485. package/script/main.d.ts.map +1 -0
  486. package/script/main.js +46 -0
  487. package/script/package.json +3 -0
  488. package/script/result.d.ts +297 -0
  489. package/script/result.d.ts.map +1 -0
  490. package/script/result.js +147 -0
  491. package/script/scrapeconfig.d.ts +120 -0
  492. package/script/scrapeconfig.d.ts.map +1 -0
  493. package/script/scrapeconfig.js +509 -0
  494. package/script/screenshotconfig.d.ts +69 -0
  495. package/script/screenshotconfig.d.ts.map +1 -0
  496. package/script/screenshotconfig.js +224 -0
  497. package/script/types.d.ts +3 -0
  498. package/script/types.d.ts.map +1 -0
  499. package/script/types.js +2 -0
  500. package/script/utils.d.ts +4 -0
  501. package/script/utils.d.ts.map +1 -0
  502. package/script/utils.js +41 -0
  503. package/build/src/client.d.ts +0 -45
  504. package/build/src/client.js +0 -199
  505. package/build/src/client.js.map +0 -1
  506. package/build/src/errors.js.map +0 -1
  507. package/build/src/logger.js.map +0 -1
  508. package/build/src/main.d.ts +0 -5
  509. package/build/src/main.js +0 -6
  510. package/build/src/main.js.map +0 -1
  511. package/build/src/result.js +0 -30
  512. package/build/src/result.js.map +0 -1
  513. package/build/src/scrapeconfig.d.ts +0 -85
  514. package/build/src/scrapeconfig.js +0 -257
  515. package/build/src/scrapeconfig.js.map +0 -1
  516. package/build/src/types.js +0 -2
  517. package/build/src/types.js.map +0 -1
  518. package/build/src/utils.d.ts +0 -1
  519. package/build/src/utils.js +0 -4
  520. package/build/src/utils.js.map +0 -1
package/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Scrapfly SDK
2
2
 
3
- `npm install scrapfly-sdk`
3
+ `npm install scrapfly-sdk`
4
+ `deno add jsr:@scrapfly/scrapfly-sdk`
5
+ `bun jsr add @scrapfly/scrapfly-sdk`
4
6
 
5
- Typescript/NodeJS SDK for [Scrapfly.io](https://scrapfly.io/) web scraping API which allows to:
7
+ Typescript/Javascript SDK for [Scrapfly.io](https://scrapfly.io/) web scraping API which allows to:
6
8
 
7
9
  - Scrape the web without being blocked.
8
10
  - Use headless browsers to access Javascript-powered page data.
@@ -11,6 +13,10 @@ Typescript/NodeJS SDK for [Scrapfly.io](https://scrapfly.io/) web scraping API w
11
13
 
12
14
  For web scraping guides see [our blog](https://scrapfly.io/blog/) and [#scrapeguide](https://scrapfly.io/blog/tag/scrapeguide/) tag for how to scrape specific targets.
13
15
 
16
+ The SDK is distributed through:
17
+ - [npmjs.com/package/scrapfly-sdk](https://www.npmjs.com/package/scrapfly-sdk)
18
+ - [jsr.io/@scrapfly/scrapfly-sdk](https://jsr.io/@scrapfly/scrapfly-sdk)
19
+
14
20
  ## Quick Intro
15
21
 
16
22
  1. Register a [Scrapfly account for free](https://scrapfly.io/register)
@@ -18,7 +24,10 @@ For web scraping guides see [our blog](https://scrapfly.io/blog/) and [#scrapegu
18
24
  3. Start scraping: 🚀
19
25
 
20
26
  ```javascript
27
+ // node or bun:
21
28
  import { ScrapflyClient, ScrapeConfig } from 'scrapfly-sdk';
29
+ // deno:
30
+ import { ScrapflyClient, ScrapeConfig } from 'jsr:@scrapfly/scrapfly-sdk';
22
31
 
23
32
  const key = 'YOUR SCRAPFLY KEY';
24
33
  const client = new ScrapflyClient({ key });
@@ -70,15 +79,25 @@ new ScrapeConfig({
70
79
 
71
80
  ## Development
72
81
 
73
- Install and setup environment:
74
-
75
- ```shell
76
- $ npm install
77
- ```
78
-
79
- Build and test:
80
-
81
- ```shell
82
- $ npm run build
83
- $ npm run test
84
- ```
82
+ This is a Deno Typescript project that builds to NPM through [DNT](https://github.com/denoland/dnt).
83
+
84
+ - `/src` directory contains all of the source code with `main.ts` being the entry point.
85
+ - `__tests__` directory contains tests for the source code.
86
+ - `deno.json` contains meta information
87
+ - `build.ts` is the build script that builds the project to nodejs ESM package.
88
+ - `/npm` directory will be produced when `built.ts` is executed for building node package.
89
+
90
+ ```bash
91
+ # make modifications and run tests
92
+ $ deno task test
93
+ # format
94
+ $ deno fmt
95
+ # lint
96
+ $ deno lint
97
+ # publish JSR:
98
+ $ deno publish
99
+ # build NPM package:
100
+ $ deno build-npm
101
+ # publish NPM:
102
+ $ cd npm && npm publish
103
+ ```
@@ -0,0 +1,6 @@
1
+ import { Deno } from "@deno/shim-deno";
2
+ export { Deno } from "@deno/shim-deno";
3
+ export declare const dntGlobalThis: Omit<typeof globalThis, "Deno"> & {
4
+ Deno: typeof Deno;
5
+ };
6
+ //# sourceMappingURL=_dnt.shims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { Deno } from "@deno/shim-deno";
2
+ export { Deno } from "@deno/shim-deno";
3
+ const dntGlobals = {
4
+ Deno,
5
+ };
6
+ export const dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
7
+ function createMergeProxy(baseObj, extObj) {
8
+ return new Proxy(baseObj, {
9
+ get(_target, prop, _receiver) {
10
+ if (prop in extObj) {
11
+ return extObj[prop];
12
+ }
13
+ else {
14
+ return baseObj[prop];
15
+ }
16
+ },
17
+ set(_target, prop, value) {
18
+ if (prop in extObj) {
19
+ delete extObj[prop];
20
+ }
21
+ baseObj[prop] = value;
22
+ return true;
23
+ },
24
+ deleteProperty(_target, prop) {
25
+ let success = false;
26
+ if (prop in extObj) {
27
+ delete extObj[prop];
28
+ success = true;
29
+ }
30
+ if (prop in baseObj) {
31
+ delete baseObj[prop];
32
+ success = true;
33
+ }
34
+ return success;
35
+ },
36
+ ownKeys(_target) {
37
+ const baseKeys = Reflect.ownKeys(baseObj);
38
+ const extKeys = Reflect.ownKeys(extObj);
39
+ const extKeysSet = new Set(extKeys);
40
+ return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
41
+ },
42
+ defineProperty(_target, prop, desc) {
43
+ if (prop in extObj) {
44
+ delete extObj[prop];
45
+ }
46
+ Reflect.defineProperty(baseObj, prop, desc);
47
+ return true;
48
+ },
49
+ getOwnPropertyDescriptor(_target, prop) {
50
+ if (prop in extObj) {
51
+ return Reflect.getOwnPropertyDescriptor(extObj, prop);
52
+ }
53
+ else {
54
+ return Reflect.getOwnPropertyDescriptor(baseObj, prop);
55
+ }
56
+ },
57
+ has(_target, prop) {
58
+ return prop in extObj || prop in baseObj;
59
+ },
60
+ });
61
+ }
@@ -0,0 +1,70 @@
1
+ /// <reference types="node" />
2
+ import { fetchRetry } from './utils.js';
3
+ import * as errors from './errors.js';
4
+ import type { ScrapeConfig } from './scrapeconfig.js';
5
+ import type { ScreenshotConfig } from './screenshotconfig.js';
6
+ import type { ExtractionConfig } from './extractionconfig.js';
7
+ import { type AccountData, ExtractionResult, ScrapeResult, ScreenshotResult } from './result.js';
8
+ export declare class ScrapflyClient {
9
+ HOST: string;
10
+ private key;
11
+ private ua;
12
+ fetch: typeof fetchRetry;
13
+ constructor(options: {
14
+ key: string;
15
+ });
16
+ /**
17
+ * Raise appropriate error for given response and scrape result
18
+ */
19
+ errResult(response: Response, result: ScrapeResult): errors.ScrapflyError;
20
+ /**
21
+ * Turn scrapfly API response to ScrapeResult or raise one of ScrapflyError
22
+ */
23
+ handleResponse(response: Response, result: ScrapeResult): ScrapeResult;
24
+ /**
25
+ * Retrieve Scrapfly account details
26
+ */
27
+ account(): Promise<AccountData>;
28
+ /**
29
+ * Issue a single scrape command from a given scrape configuration
30
+ */
31
+ scrape(config: ScrapeConfig): Promise<ScrapeResult>;
32
+ /**
33
+ Concurrently scrape multiple configs
34
+ This is a async generator call it like this:
35
+
36
+ const results = [];
37
+ const errors = [];
38
+ for await (const resultOrError of client.concurrentScrape(configs)) {
39
+ if (resultOrError instanceof Error) {
40
+ errors.push(resultOrError);
41
+ } else {
42
+ results.push(resultOrError);
43
+ }
44
+ }
45
+
46
+ @param concurrencyLimit: if not set it will be taken from your account info
47
+ */
48
+ concurrentScrape(configs: ScrapeConfig[], concurrencyLimit?: number): AsyncGenerator<ScrapeResult | Error | undefined, void, undefined>;
49
+ /**
50
+ * Save screenshot response to a file
51
+ */
52
+ saveScreenshot(result: ScreenshotResult, name: string, savePath?: string): Promise<any>;
53
+ /**
54
+ * Turn scrapfly screenshot API response to ScreenshotResult or raise one of ScrapflyError
55
+ */
56
+ handleScreenshotResponse(response: Response): Promise<ScreenshotResult>;
57
+ /**
58
+ * Take a screenshot
59
+ */
60
+ screenshot(config: ScreenshotConfig): Promise<ScreenshotResult>;
61
+ /**
62
+ * Turn scrapfly Extraction API response to ExtractionResult or raise one of ScrapflyError
63
+ */
64
+ handleExtractionResponse(response: Response): Promise<ExtractionResult>;
65
+ /**
66
+ * Extract structured data from a web page
67
+ */
68
+ extract(config: ExtractionConfig): Promise<ExtractionResult>;
69
+ }
70
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIjG,qBAAa,cAAc;IAClB,IAAI,SAA6B;IACxC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAS;IACnB,KAAK,oBAAc;gBAEP,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAQpC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,aAAa;IAkEzE;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,YAAY;IAUtE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IA+BrC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IA6CzD;;;;;;;;;;;;;;;QAeI;IACG,gBAAgB,CACrB,OAAO,EAAE,YAAY,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GACxB,cAAc,CAAC,YAAY,GAAG,KAAK,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;IAqCpE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAoB7F;;OAEG;IACG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkB7E;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBrE;;OAEG;IACG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkB7E;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA6BnE"}
package/esm/client.js ADDED
@@ -0,0 +1,362 @@
1
+ import * as dntShim from "./_dnt.shims.js";
2
+ import { path } from './deps.js';
3
+ import { fetchRetry } from './utils.js';
4
+ import * as errors from './errors.js';
5
+ import { ExtractionResult, ScrapeResult, ScreenshotResult } from './result.js';
6
+ import { log } from './logger.js';
7
+ export class ScrapflyClient {
8
+ constructor(options) {
9
+ Object.defineProperty(this, "HOST", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: 'https://api.scrapfly.io'
14
+ });
15
+ Object.defineProperty(this, "key", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "ua", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
27
+ Object.defineProperty(this, "fetch", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: fetchRetry
32
+ });
33
+ if (typeof options.key !== 'string' || options.key.trim() === '') {
34
+ throw new errors.BadApiKeyError('Invalid key. Key must be a non-empty string');
35
+ }
36
+ this.key = options.key;
37
+ this.ua = 'Typescript Scrapfly SDK';
38
+ }
39
+ /**
40
+ * Raise appropriate error for given response and scrape result
41
+ */
42
+ errResult(response, result) {
43
+ const error = result.result.error;
44
+ const message = error?.message ?? '';
45
+ const args = {
46
+ code: result.result.status,
47
+ http_status_code: result.result.status_code,
48
+ is_retryable: error?.retryable ?? false,
49
+ api_response: result,
50
+ resource: result.result.status ? result.result.status.split('::')[1] : null,
51
+ retry_delay: error?.retryable ? 5 : response.headers.get('X-Retry') ?? 5,
52
+ retry_times: 3,
53
+ documentation_url: error?.doc_url ?? 'https://scrapfly.io/docs/scrape-api/errors#api',
54
+ };
55
+ if (result.result.success === true) {
56
+ switch (args.http_status_code) {
57
+ case 500:
58
+ return new errors.ApiHttpServerError(message, args);
59
+ case 401:
60
+ return new errors.BadApiKeyError(message, args);
61
+ case 429:
62
+ return new errors.TooManyRequests(message, args);
63
+ }
64
+ switch (args.resource) {
65
+ case 'SCRAPE':
66
+ return new errors.ScrapflyScrapeError(message, args);
67
+ case 'WEBHOOK':
68
+ return new errors.ScrapflyWebhookError(message, args);
69
+ case 'PROXY':
70
+ return new errors.ScrapflyProxyError(message, args);
71
+ case 'SCHEDULE':
72
+ return new errors.ScrapflyScheduleError(message, args);
73
+ case 'ASP':
74
+ return new errors.ScrapflyAspError(message, args);
75
+ case 'SESSION':
76
+ return new errors.ScrapflySessionError(message, args);
77
+ }
78
+ if (args.resource) {
79
+ return new errors.ApiHttpClientError(message, args);
80
+ }
81
+ }
82
+ else {
83
+ if (args.code === 'ERR::SCRAPE::BAD_UPSTREAM_RESPONSE') {
84
+ if (args.http_status_code >= 400 && args.http_status_code < 500) {
85
+ return new errors.UpstreamHttpClientError(message, args);
86
+ }
87
+ if (args.http_status_code >= 500 && args.http_status_code < 600) {
88
+ return new errors.UpstreamHttpServerError(message, args);
89
+ }
90
+ }
91
+ switch (args.resource) {
92
+ case 'SCRAPE':
93
+ return new errors.ScrapflyScrapeError(message, args);
94
+ case 'WEBHOOK':
95
+ return new errors.ScrapflyWebhookError(message, args);
96
+ case 'PROXY':
97
+ return new errors.ScrapflyProxyError(message, args);
98
+ case 'SCHEDULE':
99
+ return new errors.ScrapflyScheduleError(message, args);
100
+ case 'ASP':
101
+ return new errors.ScrapflyAspError(message, args);
102
+ case 'SESSION':
103
+ return new errors.ScrapflySessionError(message, args);
104
+ }
105
+ }
106
+ return new errors.ScrapflyError(message, args);
107
+ }
108
+ /**
109
+ * Turn scrapfly API response to ScrapeResult or raise one of ScrapflyError
110
+ */
111
+ handleResponse(response, result) {
112
+ // success
113
+ log.debug('scrape log url: ', result.result.log_url);
114
+ if (result.result.status === 'DONE' && result.result.success === true) {
115
+ return result;
116
+ }
117
+ // something went wrong
118
+ throw this.errResult(response, result);
119
+ }
120
+ /**
121
+ * Retrieve Scrapfly account details
122
+ */
123
+ async account() {
124
+ log.debug('retrieving account info');
125
+ let response;
126
+ try {
127
+ const url = new URL(this.HOST + '/account');
128
+ const params = { key: this.key };
129
+ url.search = new URLSearchParams(params).toString();
130
+ response = await this.fetch(new Request(url.toString(), {
131
+ method: 'GET',
132
+ headers: {
133
+ 'user-agent': this.ua,
134
+ 'accept-encoding': 'gzip, deflate, br',
135
+ accept: 'application/json',
136
+ },
137
+ }));
138
+ }
139
+ catch (e) {
140
+ log.error('error', e);
141
+ throw e;
142
+ }
143
+ const data = await response.json();
144
+ if ('error_id' in data || Object.keys(data).length === 0) {
145
+ if (data.http_code == 401 || response.status == 401) {
146
+ throw new errors.BadApiKeyError(JSON.stringify(data));
147
+ }
148
+ throw new errors.ApiHttpClientError(JSON.stringify(data));
149
+ }
150
+ return data;
151
+ }
152
+ /**
153
+ * Issue a single scrape command from a given scrape configuration
154
+ */
155
+ async scrape(config) {
156
+ log.debug('scraping', { method: config.method, url: config.url });
157
+ let response;
158
+ try {
159
+ const url = new URL(this.HOST + '/scrape');
160
+ const params = config.toApiParams({ key: this.key });
161
+ url.search = new URLSearchParams(params).toString();
162
+ response = await this.fetch(new Request(url.toString(), {
163
+ method: config.method,
164
+ headers: {
165
+ 'user-agent': this.ua,
166
+ 'content-type': config.method === 'POST'
167
+ ? config.headers?.['content-type'] ?? 'application/json'
168
+ : 'application/json',
169
+ 'accept-encoding': 'gzip, deflate, br',
170
+ accept: 'application/json',
171
+ },
172
+ body: config.body,
173
+ }));
174
+ }
175
+ catch (e) {
176
+ log.error('error', e);
177
+ e.scrapeConfig = config;
178
+ throw e;
179
+ }
180
+ const data = await response.json();
181
+ if ('error_id' in data || Object.keys(data).length === 0) {
182
+ if (data.http_code == 401 || response.status == 401) {
183
+ throw new errors.BadApiKeyError(JSON.stringify(data));
184
+ }
185
+ throw new errors.ApiHttpClientError(JSON.stringify(data));
186
+ }
187
+ const result = this.handleResponse(response, new ScrapeResult({
188
+ config: data.config,
189
+ context: data.context,
190
+ result: data.result,
191
+ uuid: data.uuid,
192
+ }));
193
+ return result;
194
+ }
195
+ /**
196
+ Concurrently scrape multiple configs
197
+ This is a async generator call it like this:
198
+
199
+ const results = [];
200
+ const errors = [];
201
+ for await (const resultOrError of client.concurrentScrape(configs)) {
202
+ if (resultOrError instanceof Error) {
203
+ errors.push(resultOrError);
204
+ } else {
205
+ results.push(resultOrError);
206
+ }
207
+ }
208
+
209
+ @param concurrencyLimit: if not set it will be taken from your account info
210
+ */
211
+ async *concurrentScrape(configs, concurrencyLimit) {
212
+ if (concurrencyLimit === undefined) {
213
+ const account = await this.account();
214
+ concurrencyLimit = account.subscription.usage.scrape.concurrent_limit;
215
+ log.info(`concurrency not provided - setting it to ${concurrencyLimit} from account info`);
216
+ }
217
+ const activePromises = new Set();
218
+ const configsIterator = configs[Symbol.iterator]();
219
+ // Helper function to start a new scrape and add it to activePromises
220
+ const startNewScrape = () => {
221
+ const { value: config, done } = configsIterator.next();
222
+ if (done)
223
+ return; // No more configs
224
+ const promise = this.scrape(config).catch((error) => error); // Catch errors and return them
225
+ activePromises.add(promise);
226
+ promise.finally(() => {
227
+ activePromises.delete(promise);
228
+ // After each scrape, start a new one if there are remaining configs
229
+ startNewScrape();
230
+ });
231
+ };
232
+ // Initially start as many scrapes as the concurrency limit
233
+ for (let i = 0; i < concurrencyLimit; i++) {
234
+ startNewScrape();
235
+ }
236
+ // As each scrape finishes, yield the result or error and start a new one if there are remaining configs
237
+ while (activePromises.size > 0) {
238
+ log.debug(`concurrently scraping ${activePromises.size}/${configs.length}}`);
239
+ const resultOrError = await Promise.race(activePromises);
240
+ yield resultOrError;
241
+ }
242
+ }
243
+ /**
244
+ * Save screenshot response to a file
245
+ */
246
+ async saveScreenshot(result, name, savePath) {
247
+ if (!result.image) {
248
+ throw new Error('Screenshot binary does not exist');
249
+ }
250
+ const extension_name = result.metadata.extension_name;
251
+ let file_path;
252
+ if (savePath) {
253
+ dntShim.Deno.mkdir(savePath, { recursive: true });
254
+ file_path = path.join(savePath, `${name}.${extension_name}`);
255
+ }
256
+ else {
257
+ file_path = `${name}.${extension_name}`;
258
+ }
259
+ const content = new Uint8Array(result.image);
260
+ // Use Deno's write file method
261
+ await dntShim.Deno.writeFile(file_path, content);
262
+ }
263
+ /**
264
+ * Turn scrapfly screenshot API response to ScreenshotResult or raise one of ScrapflyError
265
+ */
266
+ async handleScreenshotResponse(response) {
267
+ if (response.headers.get('content-type') === 'application/json') {
268
+ const data = (await response.json());
269
+ if (data.http_code == 401 || response.status == 401) {
270
+ throw new errors.BadApiKeyError(JSON.stringify(data));
271
+ }
272
+ if ('error_id' in data) {
273
+ throw new errors.ScreenshotApiError(JSON.stringify(data));
274
+ }
275
+ }
276
+ if (!response.ok) {
277
+ throw new errors.ScreenshotApiError(JSON.stringify(await response.json()));
278
+ }
279
+ const data = await response.arrayBuffer();
280
+ const result = new ScreenshotResult(response, data);
281
+ return result;
282
+ }
283
+ /**
284
+ * Take a screenshot
285
+ */
286
+ async screenshot(config) {
287
+ let response;
288
+ try {
289
+ const url = new URL(this.HOST + '/screenshot');
290
+ const params = config.toApiParams({ key: this.key });
291
+ url.search = new URLSearchParams(params).toString();
292
+ const req = new Request(url.toString(), {
293
+ method: 'GET',
294
+ headers: {
295
+ 'user-agent': this.ua,
296
+ 'accept-encoding': 'gzip, deflate, br',
297
+ accept: 'application/json',
298
+ },
299
+ });
300
+ response = await this.fetch(req);
301
+ }
302
+ catch (e) {
303
+ log.error('error', e);
304
+ throw e;
305
+ }
306
+ const result = await this.handleScreenshotResponse(response);
307
+ return result;
308
+ }
309
+ /**
310
+ * Turn scrapfly Extraction API response to ExtractionResult or raise one of ScrapflyError
311
+ */
312
+ async handleExtractionResponse(response) {
313
+ const data = (await response.json());
314
+ if ('error_id' in data) {
315
+ if (data.http_code == 401 || response.status == 401) {
316
+ throw new errors.BadApiKeyError(JSON.stringify(data));
317
+ }
318
+ throw new errors.ExtractionApiError(JSON.stringify(data));
319
+ }
320
+ if (!response.ok) {
321
+ throw new errors.ApiHttpClientError(JSON.stringify(await response.json()));
322
+ }
323
+ const result = new ExtractionResult({
324
+ data: data.data,
325
+ content_type: data.content_type,
326
+ });
327
+ return result;
328
+ }
329
+ /**
330
+ * Extract structured data from a web page
331
+ */
332
+ async extract(config) {
333
+ log.debug('extacting data from', { content_type: config.content_type });
334
+ let response;
335
+ try {
336
+ const url = new URL(this.HOST + '/extraction');
337
+ const params = await config.toApiParams({ key: this.key });
338
+ url.search = new URLSearchParams(params).toString();
339
+ const headers = {
340
+ 'user-agent': this.ua,
341
+ 'accept-encoding': 'gzip, deflate, br',
342
+ 'content-type': config.content_type,
343
+ 'accept': 'application/json',
344
+ };
345
+ if (config.document_compression_format && config.document_compression_format) {
346
+ headers['content-encoding'] = config.document_compression_format;
347
+ }
348
+ const req = new Request(url.toString(), {
349
+ method: 'POST',
350
+ headers: headers,
351
+ body: config.body,
352
+ });
353
+ response = await this.fetch(req);
354
+ }
355
+ catch (e) {
356
+ log.error('error', e);
357
+ throw e;
358
+ }
359
+ const result = await this.handleExtractionResponse(response);
360
+ return result;
361
+ }
362
+ }
@@ -0,0 +1,2 @@
1
+ export declare function assertPath(path?: string): void;
2
+ //# sourceMappingURL=assert_path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert_path.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.1/_common/assert_path.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,QAMvC"}
@@ -0,0 +1,7 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // Copyright the Browserify authors. MIT License.
3
+ export function assertPath(path) {
4
+ if (typeof path !== "string") {
5
+ throw new TypeError(`Path must be a string. Received ${JSON.stringify(path)}`);
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ export declare function stripSuffix(name: string, suffix: string): string;
2
+ export declare function lastPathSegment(path: string, isSep: (char: number) => boolean, start?: number): string;
3
+ export declare function assertArgs(path: string, suffix: string): string | undefined;
4
+ //# sourceMappingURL=basename.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basename.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.1/_common/basename.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAchE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EAChC,KAAK,SAAI,GACR,MAAM,CAiBR;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAQtD"}
@@ -0,0 +1,40 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ import { assertPath } from "./assert_path.js";
4
+ export function stripSuffix(name, suffix) {
5
+ if (suffix.length >= name.length) {
6
+ return name;
7
+ }
8
+ const lenDiff = name.length - suffix.length;
9
+ for (let i = suffix.length - 1; i >= 0; --i) {
10
+ if (name.charCodeAt(lenDiff + i) !== suffix.charCodeAt(i)) {
11
+ return name;
12
+ }
13
+ }
14
+ return name.slice(0, -suffix.length);
15
+ }
16
+ export function lastPathSegment(path, isSep, start = 0) {
17
+ let matchedNonSeparator = false;
18
+ let end = path.length;
19
+ for (let i = path.length - 1; i >= start; --i) {
20
+ if (isSep(path.charCodeAt(i))) {
21
+ if (matchedNonSeparator) {
22
+ start = i + 1;
23
+ break;
24
+ }
25
+ }
26
+ else if (!matchedNonSeparator) {
27
+ matchedNonSeparator = true;
28
+ end = i + 1;
29
+ }
30
+ }
31
+ return path.slice(start, end);
32
+ }
33
+ export function assertArgs(path, suffix) {
34
+ assertPath(path);
35
+ if (path.length === 0)
36
+ return path;
37
+ if (typeof suffix !== "string") {
38
+ throw new TypeError(`Suffix must be a string. Received ${JSON.stringify(suffix)}`);
39
+ }
40
+ }
@@ -0,0 +1,2 @@
1
+ export declare function common(paths: string[], sep: string): string;
2
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/path/1.0.1/_common/common.ts"],"names":[],"mappings":"AAGA,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAsB3D"}
@@ -0,0 +1,23 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+ export function common(paths, sep) {
4
+ const [first = "", ...remaining] = paths;
5
+ const parts = first.split(sep);
6
+ let endOfPrefix = parts.length;
7
+ let append = "";
8
+ for (const path of remaining) {
9
+ const compare = path.split(sep);
10
+ if (compare.length <= endOfPrefix) {
11
+ endOfPrefix = compare.length;
12
+ append = "";
13
+ }
14
+ for (let i = 0; i < endOfPrefix; i++) {
15
+ if (compare[i] !== parts[i]) {
16
+ endOfPrefix = i;
17
+ append = i === 0 ? "" : sep;
18
+ break;
19
+ }
20
+ }
21
+ }
22
+ return parts.slice(0, endOfPrefix).join(sep) + append;
23
+ }