pokeedex 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +30 -0
  3. data/.gitignore +13 -0
  4. data/.standard.yml +9 -0
  5. data/CHANGELOG.md +5 -0
  6. data/CODE_OF_CONDUCT.md +132 -0
  7. data/Gemfile +14 -0
  8. data/Gemfile.lock +125 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +154 -0
  11. data/Rakefile +20 -0
  12. data/bin/pokeedex +85 -0
  13. data/lib/pokeedex/configuration.rb +47 -0
  14. data/lib/pokeedex/database.rb +42 -0
  15. data/lib/pokeedex/db/migrations/001_create_pokemons.rb +26 -0
  16. data/lib/pokeedex/exceptions.rb +15 -0
  17. data/lib/pokeedex/pokemon/base.rb +16 -0
  18. data/lib/pokeedex/pokemon/decorators/base.rb +112 -0
  19. data/lib/pokeedex/pokemon/model/base.rb +43 -0
  20. data/lib/pokeedex/pokemon/scrapper/base.rb +34 -0
  21. data/lib/pokeedex/pokemon/scrapper/fetchers/base.rb +123 -0
  22. data/lib/pokeedex/pokemon/scrapper/parsers/base.rb +205 -0
  23. data/lib/pokeedex/pokemon/scrapper/pokedex.rb +50 -0
  24. data/lib/pokeedex/pokemon/searcher/base.rb +59 -0
  25. data/lib/pokeedex/version.rb +5 -0
  26. data/lib/pokeedex.rb +55 -0
  27. data/node_modules/.bin/playwright +1 -0
  28. data/node_modules/.bin/playwright-core +1 -0
  29. data/node_modules/.yarn-integrity +22 -0
  30. data/node_modules/@playwright/test/LICENSE +202 -0
  31. data/node_modules/@playwright/test/NOTICE +5 -0
  32. data/node_modules/@playwright/test/README.md +169 -0
  33. data/node_modules/@playwright/test/cli.js +19 -0
  34. data/node_modules/@playwright/test/index.d.ts +18 -0
  35. data/node_modules/@playwright/test/index.js +17 -0
  36. data/node_modules/@playwright/test/index.mjs +18 -0
  37. data/node_modules/@playwright/test/node_modules/.bin/playwright +1 -0
  38. data/node_modules/@playwright/test/package.json +35 -0
  39. data/node_modules/@playwright/test/reporter.d.ts +17 -0
  40. data/node_modules/@playwright/test/reporter.js +17 -0
  41. data/node_modules/@playwright/test/reporter.mjs +17 -0
  42. data/node_modules/@types/node/LICENSE +21 -0
  43. data/node_modules/@types/node/README.md +15 -0
  44. data/node_modules/@types/node/assert/strict.d.ts +8 -0
  45. data/node_modules/@types/node/assert.d.ts +1040 -0
  46. data/node_modules/@types/node/async_hooks.d.ts +541 -0
  47. data/node_modules/@types/node/buffer.d.ts +2300 -0
  48. data/node_modules/@types/node/child_process.d.ts +1544 -0
  49. data/node_modules/@types/node/cluster.d.ts +578 -0
  50. data/node_modules/@types/node/console.d.ts +452 -0
  51. data/node_modules/@types/node/constants.d.ts +19 -0
  52. data/node_modules/@types/node/crypto.d.ts +4451 -0
  53. data/node_modules/@types/node/dgram.d.ts +596 -0
  54. data/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
  55. data/node_modules/@types/node/dns/promises.d.ts +476 -0
  56. data/node_modules/@types/node/dns.d.ts +865 -0
  57. data/node_modules/@types/node/dom-events.d.ts +124 -0
  58. data/node_modules/@types/node/domain.d.ts +170 -0
  59. data/node_modules/@types/node/events.d.ts +931 -0
  60. data/node_modules/@types/node/fs/promises.d.ts +1264 -0
  61. data/node_modules/@types/node/fs.d.ts +4390 -0
  62. data/node_modules/@types/node/globals.d.ts +611 -0
  63. data/node_modules/@types/node/globals.global.d.ts +1 -0
  64. data/node_modules/@types/node/http.d.ts +1921 -0
  65. data/node_modules/@types/node/http2.d.ts +2555 -0
  66. data/node_modules/@types/node/https.d.ts +544 -0
  67. data/node_modules/@types/node/index.d.ts +90 -0
  68. data/node_modules/@types/node/inspector.d.ts +3966 -0
  69. data/node_modules/@types/node/module.d.ts +301 -0
  70. data/node_modules/@types/node/net.d.ts +995 -0
  71. data/node_modules/@types/node/os.d.ts +495 -0
  72. data/node_modules/@types/node/package.json +217 -0
  73. data/node_modules/@types/node/path.d.ts +200 -0
  74. data/node_modules/@types/node/perf_hooks.d.ts +941 -0
  75. data/node_modules/@types/node/process.d.ts +1912 -0
  76. data/node_modules/@types/node/punycode.d.ts +117 -0
  77. data/node_modules/@types/node/querystring.d.ts +153 -0
  78. data/node_modules/@types/node/readline/promises.d.ts +150 -0
  79. data/node_modules/@types/node/readline.d.ts +540 -0
  80. data/node_modules/@types/node/repl.d.ts +430 -0
  81. data/node_modules/@types/node/sea.d.ts +153 -0
  82. data/node_modules/@types/node/sqlite.d.ts +213 -0
  83. data/node_modules/@types/node/stream/consumers.d.ts +12 -0
  84. data/node_modules/@types/node/stream/promises.d.ts +83 -0
  85. data/node_modules/@types/node/stream/web.d.ts +606 -0
  86. data/node_modules/@types/node/stream.d.ts +1726 -0
  87. data/node_modules/@types/node/string_decoder.d.ts +67 -0
  88. data/node_modules/@types/node/test.d.ts +2098 -0
  89. data/node_modules/@types/node/timers/promises.d.ts +97 -0
  90. data/node_modules/@types/node/timers.d.ts +240 -0
  91. data/node_modules/@types/node/tls.d.ts +1220 -0
  92. data/node_modules/@types/node/trace_events.d.ts +197 -0
  93. data/node_modules/@types/node/tty.d.ts +208 -0
  94. data/node_modules/@types/node/url.d.ts +969 -0
  95. data/node_modules/@types/node/util.d.ts +2301 -0
  96. data/node_modules/@types/node/v8.d.ts +808 -0
  97. data/node_modules/@types/node/vm.d.ts +922 -0
  98. data/node_modules/@types/node/wasi.d.ts +181 -0
  99. data/node_modules/@types/node/worker_threads.d.ts +712 -0
  100. data/node_modules/@types/node/zlib.d.ts +539 -0
  101. data/node_modules/fsevents/LICENSE +22 -0
  102. data/node_modules/fsevents/README.md +83 -0
  103. data/node_modules/fsevents/fsevents.d.ts +46 -0
  104. data/node_modules/fsevents/fsevents.js +82 -0
  105. data/node_modules/fsevents/fsevents.node +0 -0
  106. data/node_modules/fsevents/package.json +62 -0
  107. data/node_modules/playwright/.eslintrc.js +6 -0
  108. data/node_modules/playwright/LICENSE +202 -0
  109. data/node_modules/playwright/NOTICE +5 -0
  110. data/node_modules/playwright/README.md +169 -0
  111. data/node_modules/playwright/ThirdPartyNotices.txt +4356 -0
  112. data/node_modules/playwright/cli.js +19 -0
  113. data/node_modules/playwright/index.d.ts +17 -0
  114. data/node_modules/playwright/index.js +17 -0
  115. data/node_modules/playwright/index.mjs +18 -0
  116. data/node_modules/playwright/jsx-runtime.js +41 -0
  117. data/node_modules/playwright/jsx-runtime.mjs +21 -0
  118. data/node_modules/playwright/lib/common/config.js +256 -0
  119. data/node_modules/playwright/lib/common/configLoader.js +321 -0
  120. data/node_modules/playwright/lib/common/esmLoaderHost.js +93 -0
  121. data/node_modules/playwright/lib/common/expectBundle.js +27 -0
  122. data/node_modules/playwright/lib/common/expectBundleImpl.js +389 -0
  123. data/node_modules/playwright/lib/common/fixtures.js +323 -0
  124. data/node_modules/playwright/lib/common/globals.js +48 -0
  125. data/node_modules/playwright/lib/common/ipc.js +48 -0
  126. data/node_modules/playwright/lib/common/poolBuilder.js +79 -0
  127. data/node_modules/playwright/lib/common/process.js +140 -0
  128. data/node_modules/playwright/lib/common/suiteUtils.js +133 -0
  129. data/node_modules/playwright/lib/common/test.js +311 -0
  130. data/node_modules/playwright/lib/common/testLoader.js +102 -0
  131. data/node_modules/playwright/lib/common/testType.js +284 -0
  132. data/node_modules/playwright/lib/fsWatcher.js +69 -0
  133. data/node_modules/playwright/lib/index.js +888 -0
  134. data/node_modules/playwright/lib/internalsForTest.js +28 -0
  135. data/node_modules/playwright/lib/isomorphic/events.js +72 -0
  136. data/node_modules/playwright/lib/isomorphic/folders.js +25 -0
  137. data/node_modules/playwright/lib/isomorphic/stringInternPool.js +58 -0
  138. data/node_modules/playwright/lib/isomorphic/teleReceiver.js +504 -0
  139. data/node_modules/playwright/lib/isomorphic/teleSuiteUpdater.js +149 -0
  140. data/node_modules/playwright/lib/isomorphic/testServerConnection.js +210 -0
  141. data/node_modules/playwright/lib/isomorphic/testServerInterface.js +5 -0
  142. data/node_modules/playwright/lib/isomorphic/testTree.js +272 -0
  143. data/node_modules/playwright/lib/loader/loaderMain.js +58 -0
  144. data/node_modules/playwright/lib/matchers/expect.js +297 -0
  145. data/node_modules/playwright/lib/matchers/matcherHint.js +50 -0
  146. data/node_modules/playwright/lib/matchers/matchers.js +449 -0
  147. data/node_modules/playwright/lib/matchers/toBeTruthy.js +55 -0
  148. data/node_modules/playwright/lib/matchers/toEqual.js +57 -0
  149. data/node_modules/playwright/lib/matchers/toMatchSnapshot.js +383 -0
  150. data/node_modules/playwright/lib/matchers/toMatchText.js +76 -0
  151. data/node_modules/playwright/lib/plugins/gitCommitInfoPlugin.js +78 -0
  152. data/node_modules/playwright/lib/plugins/index.js +19 -0
  153. data/node_modules/playwright/lib/plugins/webServerPlugin.js +187 -0
  154. data/node_modules/playwright/lib/program.js +346 -0
  155. data/node_modules/playwright/lib/reporters/base.js +553 -0
  156. data/node_modules/playwright/lib/reporters/blob.js +133 -0
  157. data/node_modules/playwright/lib/reporters/dot.js +82 -0
  158. data/node_modules/playwright/lib/reporters/empty.js +42 -0
  159. data/node_modules/playwright/lib/reporters/github.js +115 -0
  160. data/node_modules/playwright/lib/reporters/html.js +623 -0
  161. data/node_modules/playwright/lib/reporters/internalReporter.js +123 -0
  162. data/node_modules/playwright/lib/reporters/json.js +243 -0
  163. data/node_modules/playwright/lib/reporters/junit.js +233 -0
  164. data/node_modules/playwright/lib/reporters/line.js +108 -0
  165. data/node_modules/playwright/lib/reporters/list.js +222 -0
  166. data/node_modules/playwright/lib/reporters/markdown.js +76 -0
  167. data/node_modules/playwright/lib/reporters/merge.js +477 -0
  168. data/node_modules/playwright/lib/reporters/multiplexer.js +90 -0
  169. data/node_modules/playwright/lib/reporters/reporterV2.js +118 -0
  170. data/node_modules/playwright/lib/reporters/teleEmitter.js +268 -0
  171. data/node_modules/playwright/lib/reporters/versions/blobV1.js +5 -0
  172. data/node_modules/playwright/lib/runner/dispatcher.js +532 -0
  173. data/node_modules/playwright/lib/runner/failureTracker.js +60 -0
  174. data/node_modules/playwright/lib/runner/loadUtils.js +308 -0
  175. data/node_modules/playwright/lib/runner/loaderHost.js +85 -0
  176. data/node_modules/playwright/lib/runner/processHost.js +175 -0
  177. data/node_modules/playwright/lib/runner/projectUtils.js +203 -0
  178. data/node_modules/playwright/lib/runner/reporters.js +151 -0
  179. data/node_modules/playwright/lib/runner/runner.js +179 -0
  180. data/node_modules/playwright/lib/runner/sigIntWatcher.js +100 -0
  181. data/node_modules/playwright/lib/runner/taskRunner.js +147 -0
  182. data/node_modules/playwright/lib/runner/tasks.js +407 -0
  183. data/node_modules/playwright/lib/runner/testGroups.js +136 -0
  184. data/node_modules/playwright/lib/runner/testServer.js +605 -0
  185. data/node_modules/playwright/lib/runner/uiModeReporter.js +31 -0
  186. data/node_modules/playwright/lib/runner/vcs.js +55 -0
  187. data/node_modules/playwright/lib/runner/watchMode.js +398 -0
  188. data/node_modules/playwright/lib/runner/workerHost.js +85 -0
  189. data/node_modules/playwright/lib/third_party/tsconfig-loader.js +134 -0
  190. data/node_modules/playwright/lib/transform/babelBundle.js +28 -0
  191. data/node_modules/playwright/lib/transform/babelBundleImpl.js +2032 -0
  192. data/node_modules/playwright/lib/transform/compilationCache.js +254 -0
  193. data/node_modules/playwright/lib/transform/esmLoader.js +117 -0
  194. data/node_modules/playwright/lib/transform/esmUtils.js +32 -0
  195. data/node_modules/playwright/lib/transform/portTransport.js +81 -0
  196. data/node_modules/playwright/lib/transform/transform.js +267 -0
  197. data/node_modules/playwright/lib/util.js +356 -0
  198. data/node_modules/playwright/lib/utilsBundle.js +28 -0
  199. data/node_modules/playwright/lib/utilsBundleImpl.js +102 -0
  200. data/node_modules/playwright/lib/worker/fixtureRunner.js +279 -0
  201. data/node_modules/playwright/lib/worker/testInfo.js +397 -0
  202. data/node_modules/playwright/lib/worker/testTracing.js +314 -0
  203. data/node_modules/playwright/lib/worker/timeoutManager.js +153 -0
  204. data/node_modules/playwright/lib/worker/workerMain.js +637 -0
  205. data/node_modules/playwright/node_modules/.bin/playwright-core +1 -0
  206. data/node_modules/playwright/package.json +66 -0
  207. data/node_modules/playwright/test.d.ts +18 -0
  208. data/node_modules/playwright/test.js +24 -0
  209. data/node_modules/playwright/test.mjs +33 -0
  210. data/node_modules/playwright/types/test.d.ts +8444 -0
  211. data/node_modules/playwright/types/testReporter.d.ts +749 -0
  212. data/node_modules/playwright-core/LICENSE +202 -0
  213. data/node_modules/playwright-core/NOTICE +5 -0
  214. data/node_modules/playwright-core/README.md +3 -0
  215. data/node_modules/playwright-core/ThirdPartyNotices.txt +1548 -0
  216. data/node_modules/playwright-core/bin/PrintDeps.exe +0 -0
  217. data/node_modules/playwright-core/bin/README.md +2 -0
  218. data/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
  219. data/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +40 -0
  220. data/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
  221. data/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
  222. data/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +40 -0
  223. data/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
  224. data/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
  225. data/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +40 -0
  226. data/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
  227. data/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
  228. data/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +40 -0
  229. data/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
  230. data/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
  231. data/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +40 -0
  232. data/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
  233. data/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
  234. data/node_modules/playwright-core/browsers.json +53 -0
  235. data/node_modules/playwright-core/cli.js +18 -0
  236. data/node_modules/playwright-core/index.d.ts +17 -0
  237. data/node_modules/playwright-core/index.js +33 -0
  238. data/node_modules/playwright-core/index.mjs +28 -0
  239. data/node_modules/playwright-core/lib/androidServerImpl.js +69 -0
  240. data/node_modules/playwright-core/lib/browserServerImpl.js +92 -0
  241. data/node_modules/playwright-core/lib/cli/driver.js +95 -0
  242. data/node_modules/playwright-core/lib/cli/program.js +577 -0
  243. data/node_modules/playwright-core/lib/cli/programWithTestStub.js +67 -0
  244. data/node_modules/playwright-core/lib/client/accessibility.js +50 -0
  245. data/node_modules/playwright-core/lib/client/android.js +473 -0
  246. data/node_modules/playwright-core/lib/client/api.js +279 -0
  247. data/node_modules/playwright-core/lib/client/artifact.js +79 -0
  248. data/node_modules/playwright-core/lib/client/browser.js +145 -0
  249. data/node_modules/playwright-core/lib/client/browserContext.js +541 -0
  250. data/node_modules/playwright-core/lib/client/browserType.js +241 -0
  251. data/node_modules/playwright-core/lib/client/cdpSession.js +53 -0
  252. data/node_modules/playwright-core/lib/client/channelOwner.js +231 -0
  253. data/node_modules/playwright-core/lib/client/clientHelper.js +57 -0
  254. data/node_modules/playwright-core/lib/client/clientInstrumentation.js +50 -0
  255. data/node_modules/playwright-core/lib/client/clock.js +68 -0
  256. data/node_modules/playwright-core/lib/client/connection.js +330 -0
  257. data/node_modules/playwright-core/lib/client/consoleMessage.js +55 -0
  258. data/node_modules/playwright-core/lib/client/coverage.js +41 -0
  259. data/node_modules/playwright-core/lib/client/dialog.js +57 -0
  260. data/node_modules/playwright-core/lib/client/download.js +62 -0
  261. data/node_modules/playwright-core/lib/client/electron.js +135 -0
  262. data/node_modules/playwright-core/lib/client/elementHandle.js +321 -0
  263. data/node_modules/playwright-core/lib/client/errors.js +77 -0
  264. data/node_modules/playwright-core/lib/client/eventEmitter.js +314 -0
  265. data/node_modules/playwright-core/lib/client/events.js +94 -0
  266. data/node_modules/playwright-core/lib/client/fetch.js +396 -0
  267. data/node_modules/playwright-core/lib/client/fileChooser.js +45 -0
  268. data/node_modules/playwright-core/lib/client/frame.js +504 -0
  269. data/node_modules/playwright-core/lib/client/harRouter.js +99 -0
  270. data/node_modules/playwright-core/lib/client/input.js +111 -0
  271. data/node_modules/playwright-core/lib/client/jsHandle.js +129 -0
  272. data/node_modules/playwright-core/lib/client/jsonPipe.js +35 -0
  273. data/node_modules/playwright-core/lib/client/localUtils.js +35 -0
  274. data/node_modules/playwright-core/lib/client/locator.js +441 -0
  275. data/node_modules/playwright-core/lib/client/network.js +604 -0
  276. data/node_modules/playwright-core/lib/client/page.js +725 -0
  277. data/node_modules/playwright-core/lib/client/playwright.js +77 -0
  278. data/node_modules/playwright-core/lib/client/selectors.js +67 -0
  279. data/node_modules/playwright-core/lib/client/stream.js +54 -0
  280. data/node_modules/playwright-core/lib/client/tracing.js +138 -0
  281. data/node_modules/playwright-core/lib/client/types.js +24 -0
  282. data/node_modules/playwright-core/lib/client/video.js +51 -0
  283. data/node_modules/playwright-core/lib/client/waiter.js +158 -0
  284. data/node_modules/playwright-core/lib/client/webError.js +37 -0
  285. data/node_modules/playwright-core/lib/client/worker.js +71 -0
  286. data/node_modules/playwright-core/lib/client/writableStream.js +54 -0
  287. data/node_modules/playwright-core/lib/common/socksProxy.js +569 -0
  288. data/node_modules/playwright-core/lib/common/timeoutSettings.js +73 -0
  289. data/node_modules/playwright-core/lib/common/types.js +5 -0
  290. data/node_modules/playwright-core/lib/generated/clockSource.js +7 -0
  291. data/node_modules/playwright-core/lib/generated/consoleApiSource.js +7 -0
  292. data/node_modules/playwright-core/lib/generated/injectedScriptSource.js +7 -0
  293. data/node_modules/playwright-core/lib/generated/recorderSource.js +7 -0
  294. data/node_modules/playwright-core/lib/generated/utilityScriptSource.js +7 -0
  295. data/node_modules/playwright-core/lib/image_tools/colorUtils.js +98 -0
  296. data/node_modules/playwright-core/lib/image_tools/compare.js +108 -0
  297. data/node_modules/playwright-core/lib/image_tools/imageChannel.js +70 -0
  298. data/node_modules/playwright-core/lib/image_tools/stats.js +102 -0
  299. data/node_modules/playwright-core/lib/inProcessFactory.js +54 -0
  300. data/node_modules/playwright-core/lib/inprocess.js +20 -0
  301. data/node_modules/playwright-core/lib/outofprocess.js +67 -0
  302. data/node_modules/playwright-core/lib/protocol/debug.js +27 -0
  303. data/node_modules/playwright-core/lib/protocol/serializers.js +173 -0
  304. data/node_modules/playwright-core/lib/protocol/transport.js +82 -0
  305. data/node_modules/playwright-core/lib/protocol/validator.js +2694 -0
  306. data/node_modules/playwright-core/lib/protocol/validatorPrimitives.js +139 -0
  307. data/node_modules/playwright-core/lib/remote/playwrightConnection.js +274 -0
  308. data/node_modules/playwright-core/lib/remote/playwrightServer.js +110 -0
  309. data/node_modules/playwright-core/lib/server/accessibility.js +62 -0
  310. data/node_modules/playwright-core/lib/server/android/android.js +441 -0
  311. data/node_modules/playwright-core/lib/server/android/backendAdb.js +172 -0
  312. data/node_modules/playwright-core/lib/server/artifact.js +104 -0
  313. data/node_modules/playwright-core/lib/server/bidi/bidiBrowser.js +296 -0
  314. data/node_modules/playwright-core/lib/server/bidi/bidiConnection.js +206 -0
  315. data/node_modules/playwright-core/lib/server/bidi/bidiExecutionContext.js +162 -0
  316. data/node_modules/playwright-core/lib/server/bidi/bidiFirefox.js +110 -0
  317. data/node_modules/playwright-core/lib/server/bidi/bidiInput.js +174 -0
  318. data/node_modules/playwright-core/lib/server/bidi/bidiNetworkManager.js +304 -0
  319. data/node_modules/playwright-core/lib/server/bidi/bidiPage.js +456 -0
  320. data/node_modules/playwright-core/lib/server/bidi/third_party/bidiDeserializer.js +93 -0
  321. data/node_modules/playwright-core/lib/server/bidi/third_party/bidiKeyboard.js +238 -0
  322. data/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocol.js +139 -0
  323. data/node_modules/playwright-core/lib/server/bidi/third_party/bidiSerializer.js +144 -0
  324. data/node_modules/playwright-core/lib/server/browser.js +137 -0
  325. data/node_modules/playwright-core/lib/server/browserContext.js +684 -0
  326. data/node_modules/playwright-core/lib/server/browserType.js +307 -0
  327. data/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
  328. data/node_modules/playwright-core/lib/server/chromium/chromium.js +362 -0
  329. data/node_modules/playwright-core/lib/server/chromium/chromiumSwitches.js +44 -0
  330. data/node_modules/playwright-core/lib/server/chromium/crAccessibility.js +237 -0
  331. data/node_modules/playwright-core/lib/server/chromium/crBrowser.js +515 -0
  332. data/node_modules/playwright-core/lib/server/chromium/crConnection.js +228 -0
  333. data/node_modules/playwright-core/lib/server/chromium/crCoverage.js +246 -0
  334. data/node_modules/playwright-core/lib/server/chromium/crDevTools.js +104 -0
  335. data/node_modules/playwright-core/lib/server/chromium/crDragDrop.js +143 -0
  336. data/node_modules/playwright-core/lib/server/chromium/crExecutionContext.js +156 -0
  337. data/node_modules/playwright-core/lib/server/chromium/crInput.js +171 -0
  338. data/node_modules/playwright-core/lib/server/chromium/crNetworkManager.js +767 -0
  339. data/node_modules/playwright-core/lib/server/chromium/crPage.js +1128 -0
  340. data/node_modules/playwright-core/lib/server/chromium/crPdf.js +153 -0
  341. data/node_modules/playwright-core/lib/server/chromium/crProtocolHelper.js +133 -0
  342. data/node_modules/playwright-core/lib/server/chromium/crServiceWorker.js +112 -0
  343. data/node_modules/playwright-core/lib/server/chromium/defaultFontFamilies.js +145 -0
  344. data/node_modules/playwright-core/lib/server/chromium/videoRecorder.js +155 -0
  345. data/node_modules/playwright-core/lib/server/clock.js +125 -0
  346. data/node_modules/playwright-core/lib/server/codegen/csharp.js +299 -0
  347. data/node_modules/playwright-core/lib/server/codegen/java.js +235 -0
  348. data/node_modules/playwright-core/lib/server/codegen/javascript.js +223 -0
  349. data/node_modules/playwright-core/lib/server/codegen/jsonl.js +47 -0
  350. data/node_modules/playwright-core/lib/server/codegen/language.js +76 -0
  351. data/node_modules/playwright-core/lib/server/codegen/languages.js +30 -0
  352. data/node_modules/playwright-core/lib/server/codegen/python.js +265 -0
  353. data/node_modules/playwright-core/lib/server/codegen/types.js +5 -0
  354. data/node_modules/playwright-core/lib/server/console.js +57 -0
  355. data/node_modules/playwright-core/lib/server/cookieStore.js +112 -0
  356. data/node_modules/playwright-core/lib/server/debugController.js +234 -0
  357. data/node_modules/playwright-core/lib/server/debugger.js +132 -0
  358. data/node_modules/playwright-core/lib/server/deviceDescriptors.js +26 -0
  359. data/node_modules/playwright-core/lib/server/deviceDescriptorsSource.json +1669 -0
  360. data/node_modules/playwright-core/lib/server/dialog.js +70 -0
  361. data/node_modules/playwright-core/lib/server/dispatchers/androidDispatcher.js +193 -0
  362. data/node_modules/playwright-core/lib/server/dispatchers/artifactDispatcher.js +118 -0
  363. data/node_modules/playwright-core/lib/server/dispatchers/browserContextDispatcher.js +351 -0
  364. data/node_modules/playwright-core/lib/server/dispatchers/browserDispatcher.js +170 -0
  365. data/node_modules/playwright-core/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
  366. data/node_modules/playwright-core/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
  367. data/node_modules/playwright-core/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
  368. data/node_modules/playwright-core/lib/server/dispatchers/dialogDispatcher.js +44 -0
  369. data/node_modules/playwright-core/lib/server/dispatchers/dispatcher.js +395 -0
  370. data/node_modules/playwright-core/lib/server/dispatchers/electronDispatcher.js +93 -0
  371. data/node_modules/playwright-core/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
  372. data/node_modules/playwright-core/lib/server/dispatchers/frameDispatcher.js +286 -0
  373. data/node_modules/playwright-core/lib/server/dispatchers/jsHandleDispatcher.js +102 -0
  374. data/node_modules/playwright-core/lib/server/dispatchers/jsonPipeDispatcher.js +59 -0
  375. data/node_modules/playwright-core/lib/server/dispatchers/localUtilsDispatcher.js +413 -0
  376. data/node_modules/playwright-core/lib/server/dispatchers/networkDispatchers.js +221 -0
  377. data/node_modules/playwright-core/lib/server/dispatchers/pageDispatcher.js +358 -0
  378. data/node_modules/playwright-core/lib/server/dispatchers/playwrightDispatcher.js +106 -0
  379. data/node_modules/playwright-core/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  380. data/node_modules/playwright-core/lib/server/dispatchers/streamDispatcher.js +62 -0
  381. data/node_modules/playwright-core/lib/server/dispatchers/tracingDispatcher.js +54 -0
  382. data/node_modules/playwright-core/lib/server/dispatchers/writableStreamDispatcher.js +58 -0
  383. data/node_modules/playwright-core/lib/server/dom.js +845 -0
  384. data/node_modules/playwright-core/lib/server/download.js +53 -0
  385. data/node_modules/playwright-core/lib/server/electron/electron.js +296 -0
  386. data/node_modules/playwright-core/lib/server/electron/loader.js +57 -0
  387. data/node_modules/playwright-core/lib/server/errors.js +68 -0
  388. data/node_modules/playwright-core/lib/server/fetch.js +660 -0
  389. data/node_modules/playwright-core/lib/server/fileChooser.js +42 -0
  390. data/node_modules/playwright-core/lib/server/fileUploadUtils.js +75 -0
  391. data/node_modules/playwright-core/lib/server/firefox/ffAccessibility.js +216 -0
  392. data/node_modules/playwright-core/lib/server/firefox/ffBrowser.js +458 -0
  393. data/node_modules/playwright-core/lib/server/firefox/ffConnection.js +168 -0
  394. data/node_modules/playwright-core/lib/server/firefox/ffExecutionContext.js +138 -0
  395. data/node_modules/playwright-core/lib/server/firefox/ffInput.js +150 -0
  396. data/node_modules/playwright-core/lib/server/firefox/ffNetworkManager.js +233 -0
  397. data/node_modules/playwright-core/lib/server/firefox/ffPage.js +556 -0
  398. data/node_modules/playwright-core/lib/server/firefox/firefox.js +110 -0
  399. data/node_modules/playwright-core/lib/server/formData.js +75 -0
  400. data/node_modules/playwright-core/lib/server/frameSelectors.js +171 -0
  401. data/node_modules/playwright-core/lib/server/frames.js +1654 -0
  402. data/node_modules/playwright-core/lib/server/har/harRecorder.js +139 -0
  403. data/node_modules/playwright-core/lib/server/har/harTracer.js +531 -0
  404. data/node_modules/playwright-core/lib/server/helper.js +103 -0
  405. data/node_modules/playwright-core/lib/server/index.js +114 -0
  406. data/node_modules/playwright-core/lib/server/input.js +311 -0
  407. data/node_modules/playwright-core/lib/server/instrumentation.js +70 -0
  408. data/node_modules/playwright-core/lib/server/isomorphic/utilityScriptSerializers.js +226 -0
  409. data/node_modules/playwright-core/lib/server/javascript.js +306 -0
  410. data/node_modules/playwright-core/lib/server/launchApp.js +91 -0
  411. data/node_modules/playwright-core/lib/server/macEditingCommands.js +139 -0
  412. data/node_modules/playwright-core/lib/server/network.js +617 -0
  413. data/node_modules/playwright-core/lib/server/page.js +825 -0
  414. data/node_modules/playwright-core/lib/server/pipeTransport.js +85 -0
  415. data/node_modules/playwright-core/lib/server/playwright.js +85 -0
  416. data/node_modules/playwright-core/lib/server/progress.js +102 -0
  417. data/node_modules/playwright-core/lib/server/protocolError.js +49 -0
  418. data/node_modules/playwright-core/lib/server/recorder/contextRecorder.js +316 -0
  419. data/node_modules/playwright-core/lib/server/recorder/recorderActions.js +5 -0
  420. data/node_modules/playwright-core/lib/server/recorder/recorderApp.js +190 -0
  421. data/node_modules/playwright-core/lib/server/recorder/recorderCollection.js +127 -0
  422. data/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +177 -0
  423. data/node_modules/playwright-core/lib/server/recorder/recorderUtils.js +71 -0
  424. data/node_modules/playwright-core/lib/server/recorder/throttledFile.js +46 -0
  425. data/node_modules/playwright-core/lib/server/recorder.js +324 -0
  426. data/node_modules/playwright-core/lib/server/registry/browserFetcher.js +168 -0
  427. data/node_modules/playwright-core/lib/server/registry/dependencies.js +322 -0
  428. data/node_modules/playwright-core/lib/server/registry/index.js +924 -0
  429. data/node_modules/playwright-core/lib/server/registry/nativeDeps.js +490 -0
  430. data/node_modules/playwright-core/lib/server/registry/oopDownloadBrowserMain.js +138 -0
  431. data/node_modules/playwright-core/lib/server/screenshotter.js +348 -0
  432. data/node_modules/playwright-core/lib/server/selectors.js +73 -0
  433. data/node_modules/playwright-core/lib/server/socksClientCertificatesInterceptor.js +328 -0
  434. data/node_modules/playwright-core/lib/server/socksInterceptor.js +100 -0
  435. data/node_modules/playwright-core/lib/server/trace/recorder/snapshotter.js +171 -0
  436. data/node_modules/playwright-core/lib/server/trace/recorder/snapshotterInjected.js +493 -0
  437. data/node_modules/playwright-core/lib/server/trace/recorder/tracing.js +486 -0
  438. data/node_modules/playwright-core/lib/server/trace/test/inMemorySnapshotter.js +93 -0
  439. data/node_modules/playwright-core/lib/server/trace/viewer/traceViewer.js +216 -0
  440. data/node_modules/playwright-core/lib/server/transport.js +191 -0
  441. data/node_modules/playwright-core/lib/server/types.js +24 -0
  442. data/node_modules/playwright-core/lib/server/usKeyboardLayout.js +555 -0
  443. data/node_modules/playwright-core/lib/server/webkit/webkit.js +87 -0
  444. data/node_modules/playwright-core/lib/server/webkit/wkAccessibility.js +194 -0
  445. data/node_modules/playwright-core/lib/server/webkit/wkBrowser.js +328 -0
  446. data/node_modules/playwright-core/lib/server/webkit/wkConnection.js +173 -0
  447. data/node_modules/playwright-core/lib/server/webkit/wkExecutionContext.js +146 -0
  448. data/node_modules/playwright-core/lib/server/webkit/wkInput.js +169 -0
  449. data/node_modules/playwright-core/lib/server/webkit/wkInterceptableRequest.js +162 -0
  450. data/node_modules/playwright-core/lib/server/webkit/wkPage.js +1216 -0
  451. data/node_modules/playwright-core/lib/server/webkit/wkProvisionalPage.js +94 -0
  452. data/node_modules/playwright-core/lib/server/webkit/wkWorkers.js +104 -0
  453. data/node_modules/playwright-core/lib/third_party/diff_match_patch.js +2222 -0
  454. data/node_modules/playwright-core/lib/third_party/pixelmatch.js +255 -0
  455. data/node_modules/playwright-core/lib/utils/ascii.js +31 -0
  456. data/node_modules/playwright-core/lib/utils/comparators.js +171 -0
  457. data/node_modules/playwright-core/lib/utils/crypto.js +174 -0
  458. data/node_modules/playwright-core/lib/utils/debug.js +46 -0
  459. data/node_modules/playwright-core/lib/utils/debugLogger.js +91 -0
  460. data/node_modules/playwright-core/lib/utils/env.js +49 -0
  461. data/node_modules/playwright-core/lib/utils/eventsHelper.js +38 -0
  462. data/node_modules/playwright-core/lib/utils/expectUtils.js +33 -0
  463. data/node_modules/playwright-core/lib/utils/fileUtils.js +205 -0
  464. data/node_modules/playwright-core/lib/utils/happy-eyeballs.js +181 -0
  465. data/node_modules/playwright-core/lib/utils/headers.js +52 -0
  466. data/node_modules/playwright-core/lib/utils/hostPlatform.js +133 -0
  467. data/node_modules/playwright-core/lib/utils/httpServer.js +236 -0
  468. data/node_modules/playwright-core/lib/utils/index.js +368 -0
  469. data/node_modules/playwright-core/lib/utils/isomorphic/cssParser.js +250 -0
  470. data/node_modules/playwright-core/lib/utils/isomorphic/cssTokenizer.js +979 -0
  471. data/node_modules/playwright-core/lib/utils/isomorphic/locatorGenerators.js +651 -0
  472. data/node_modules/playwright-core/lib/utils/isomorphic/locatorParser.js +179 -0
  473. data/node_modules/playwright-core/lib/utils/isomorphic/locatorUtils.js +62 -0
  474. data/node_modules/playwright-core/lib/utils/isomorphic/mimeType.js +29 -0
  475. data/node_modules/playwright-core/lib/utils/isomorphic/selectorParser.js +397 -0
  476. data/node_modules/playwright-core/lib/utils/isomorphic/stringUtils.js +139 -0
  477. data/node_modules/playwright-core/lib/utils/isomorphic/traceUtils.js +39 -0
  478. data/node_modules/playwright-core/lib/utils/isomorphic/urlMatch.js +120 -0
  479. data/node_modules/playwright-core/lib/utils/linuxUtils.js +78 -0
  480. data/node_modules/playwright-core/lib/utils/manualPromise.js +109 -0
  481. data/node_modules/playwright-core/lib/utils/multimap.js +75 -0
  482. data/node_modules/playwright-core/lib/utils/network.js +160 -0
  483. data/node_modules/playwright-core/lib/utils/processLauncher.js +248 -0
  484. data/node_modules/playwright-core/lib/utils/profiler.js +53 -0
  485. data/node_modules/playwright-core/lib/utils/rtti.js +44 -0
  486. data/node_modules/playwright-core/lib/utils/semaphore.js +51 -0
  487. data/node_modules/playwright-core/lib/utils/spawnAsync.js +45 -0
  488. data/node_modules/playwright-core/lib/utils/stackTrace.js +121 -0
  489. data/node_modules/playwright-core/lib/utils/task.js +58 -0
  490. data/node_modules/playwright-core/lib/utils/time.js +37 -0
  491. data/node_modules/playwright-core/lib/utils/timeoutRunner.js +66 -0
  492. data/node_modules/playwright-core/lib/utils/traceUtils.js +44 -0
  493. data/node_modules/playwright-core/lib/utils/userAgent.js +105 -0
  494. data/node_modules/playwright-core/lib/utils/wsServer.js +127 -0
  495. data/node_modules/playwright-core/lib/utils/zipFile.js +75 -0
  496. data/node_modules/playwright-core/lib/utils/zones.js +62 -0
  497. data/node_modules/playwright-core/lib/utilsBundle.js +82 -0
  498. data/node_modules/playwright-core/lib/utilsBundleImpl/index.js +53 -0
  499. data/node_modules/playwright-core/lib/utilsBundleImpl/xdg-open +1066 -0
  500. data/node_modules/playwright-core/lib/vite/htmlReport/index.html +66 -0
  501. data/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-aW6Vz3gf.js +24 -0
  502. data/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-ez37Vkbh.css +1 -0
  503. data/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  504. data/node_modules/playwright-core/lib/vite/recorder/assets/index-B-MT5gKo.css +1 -0
  505. data/node_modules/playwright-core/lib/vite/recorder/assets/index-DCpXOVIh.js +47 -0
  506. data/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
  507. data/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
  508. data/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-eFKCUIu2.js +24 -0
  509. data/node_modules/playwright-core/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +1 -0
  510. data/node_modules/playwright-core/lib/vite/traceViewer/assets/workbench-D0cirtfA.js +72 -0
  511. data/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-BeNbaIVa.js +9 -0
  512. data/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.ez37Vkbh.css +1 -0
  513. data/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  514. data/node_modules/playwright-core/lib/vite/traceViewer/embedded.BkuvsLJp.js +2 -0
  515. data/node_modules/playwright-core/lib/vite/traceViewer/embedded.html +16 -0
  516. data/node_modules/playwright-core/lib/vite/traceViewer/embedded.w7WN2u1R.css +1 -0
  517. data/node_modules/playwright-core/lib/vite/traceViewer/index.C968kAiC.js +2 -0
  518. data/node_modules/playwright-core/lib/vite/traceViewer/index.CrbWWHbf.css +1 -0
  519. data/node_modules/playwright-core/lib/vite/traceViewer/index.html +27 -0
  520. data/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
  521. data/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +21 -0
  522. data/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +3 -0
  523. data/node_modules/playwright-core/lib/vite/traceViewer/uiMode.BkFnr4V0.js +10 -0
  524. data/node_modules/playwright-core/lib/vite/traceViewer/uiMode.D3cNFP6u.css +1 -0
  525. data/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
  526. data/node_modules/playwright-core/lib/vite/traceViewer/workbench.DjbIuxix.css +1 -0
  527. data/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.DSXBckUd.css +32 -0
  528. data/node_modules/playwright-core/lib/zipBundle.js +25 -0
  529. data/node_modules/playwright-core/lib/zipBundleImpl.js +5 -0
  530. data/node_modules/playwright-core/package.json +44 -0
  531. data/node_modules/playwright-core/types/protocol.d.ts +21500 -0
  532. data/node_modules/playwright-core/types/structs.d.ts +45 -0
  533. data/node_modules/playwright-core/types/types.d.ts +21431 -0
  534. data/node_modules/undici-types/LICENSE +21 -0
  535. data/node_modules/undici-types/README.md +6 -0
  536. data/node_modules/undici-types/agent.d.ts +31 -0
  537. data/node_modules/undici-types/api.d.ts +43 -0
  538. data/node_modules/undici-types/balanced-pool.d.ts +29 -0
  539. data/node_modules/undici-types/cache.d.ts +36 -0
  540. data/node_modules/undici-types/client.d.ts +108 -0
  541. data/node_modules/undici-types/connector.d.ts +34 -0
  542. data/node_modules/undici-types/content-type.d.ts +21 -0
  543. data/node_modules/undici-types/cookies.d.ts +28 -0
  544. data/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
  545. data/node_modules/undici-types/dispatcher.d.ts +255 -0
  546. data/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
  547. data/node_modules/undici-types/errors.d.ts +149 -0
  548. data/node_modules/undici-types/eventsource.d.ts +63 -0
  549. data/node_modules/undici-types/fetch.d.ts +209 -0
  550. data/node_modules/undici-types/file.d.ts +39 -0
  551. data/node_modules/undici-types/filereader.d.ts +54 -0
  552. data/node_modules/undici-types/formdata.d.ts +108 -0
  553. data/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  554. data/node_modules/undici-types/global-origin.d.ts +7 -0
  555. data/node_modules/undici-types/handlers.d.ts +15 -0
  556. data/node_modules/undici-types/header.d.ts +4 -0
  557. data/node_modules/undici-types/index.d.ts +71 -0
  558. data/node_modules/undici-types/interceptors.d.ts +15 -0
  559. data/node_modules/undici-types/mock-agent.d.ts +50 -0
  560. data/node_modules/undici-types/mock-client.d.ts +25 -0
  561. data/node_modules/undici-types/mock-errors.d.ts +12 -0
  562. data/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  563. data/node_modules/undici-types/mock-pool.d.ts +25 -0
  564. data/node_modules/undici-types/package.json +55 -0
  565. data/node_modules/undici-types/patch.d.ts +71 -0
  566. data/node_modules/undici-types/pool-stats.d.ts +19 -0
  567. data/node_modules/undici-types/pool.d.ts +39 -0
  568. data/node_modules/undici-types/proxy-agent.d.ts +28 -0
  569. data/node_modules/undici-types/readable.d.ts +60 -0
  570. data/node_modules/undici-types/retry-agent.d.ts +8 -0
  571. data/node_modules/undici-types/retry-handler.d.ts +116 -0
  572. data/node_modules/undici-types/util.d.ts +18 -0
  573. data/node_modules/undici-types/webidl.d.ts +222 -0
  574. data/node_modules/undici-types/websocket.d.ts +152 -0
  575. data/pokeedex.gemspec +32 -0
  576. data/spec/fixtures/pokemon_com/responses/GET-200-bulbasaur.html +2262 -0
  577. data/spec/fixtures/pokemon_com/responses/GET-404-not-found.html +808 -0
  578. data/spec/pokeedex/configuration_spec.rb +37 -0
  579. data/spec/pokeedex/database_spec.rb +21 -0
  580. data/spec/pokeedex/exceptions_spec.rb +11 -0
  581. data/spec/pokeedex/pokemon/base_spec.rb +15 -0
  582. data/spec/pokeedex/pokemon/decorators/base_spec.rb +63 -0
  583. data/spec/pokeedex/pokemon/model/base_spec.rb +36 -0
  584. data/spec/pokeedex/pokemon/scrapper/fetchers/base_spec.rb +36 -0
  585. data/spec/pokeedex/pokemon/scrapper/parsers/base_spec.rb +49 -0
  586. data/spec/pokeedex/pokemon/scrapper/pokedex_spec.rb +71 -0
  587. data/spec/pokeedex/pokemon/searcher/base.rb +81 -0
  588. data/spec/pokeedex_spec.rb +7 -0
  589. data/spec/spec_helper.rb +42 -0
  590. data/yarn.lock +41 -0
  591. metadata +731 -0
@@ -0,0 +1,969 @@
1
+ /**
2
+ * The `node:url` module provides utilities for URL resolution and parsing. It can
3
+ * be accessed using:
4
+ *
5
+ * ```js
6
+ * import url from 'node:url';
7
+ * ```
8
+ * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/url.js)
9
+ */
10
+ declare module "url" {
11
+ import { Blob as NodeBlob } from "node:buffer";
12
+ import { ClientRequestArgs } from "node:http";
13
+ import { ParsedUrlQuery, ParsedUrlQueryInput } from "node:querystring";
14
+ // Input to `url.format`
15
+ interface UrlObject {
16
+ auth?: string | null | undefined;
17
+ hash?: string | null | undefined;
18
+ host?: string | null | undefined;
19
+ hostname?: string | null | undefined;
20
+ href?: string | null | undefined;
21
+ pathname?: string | null | undefined;
22
+ protocol?: string | null | undefined;
23
+ search?: string | null | undefined;
24
+ slashes?: boolean | null | undefined;
25
+ port?: string | number | null | undefined;
26
+ query?: string | null | ParsedUrlQueryInput | undefined;
27
+ }
28
+ // Output of `url.parse`
29
+ interface Url {
30
+ auth: string | null;
31
+ hash: string | null;
32
+ host: string | null;
33
+ hostname: string | null;
34
+ href: string;
35
+ path: string | null;
36
+ pathname: string | null;
37
+ protocol: string | null;
38
+ search: string | null;
39
+ slashes: boolean | null;
40
+ port: string | null;
41
+ query: string | null | ParsedUrlQuery;
42
+ }
43
+ interface UrlWithParsedQuery extends Url {
44
+ query: ParsedUrlQuery;
45
+ }
46
+ interface UrlWithStringQuery extends Url {
47
+ query: string | null;
48
+ }
49
+ interface FileUrlToPathOptions {
50
+ /**
51
+ * `true` if the `path` should be return as a windows filepath, `false` for posix, and `undefined` for the system default.
52
+ * @default undefined
53
+ * @since v22.1.0
54
+ */
55
+ windows?: boolean | undefined;
56
+ }
57
+ interface PathToFileUrlOptions {
58
+ /**
59
+ * `true` if the `path` should be return as a windows filepath, `false` for posix, and `undefined` for the system default.
60
+ * @default undefined
61
+ * @since v22.1.0
62
+ */
63
+ windows?: boolean | undefined;
64
+ }
65
+ /**
66
+ * The `url.parse()` method takes a URL string, parses it, and returns a URL
67
+ * object.
68
+ *
69
+ * A `TypeError` is thrown if `urlString` is not a string.
70
+ *
71
+ * A `URIError` is thrown if the `auth` property is present but cannot be decoded.
72
+ *
73
+ * `url.parse()` uses a lenient, non-standard algorithm for parsing URL
74
+ * strings. It is prone to security issues such as [host name spoofing](https://hackerone.com/reports/678487) and incorrect handling of usernames and passwords. Do not use with untrusted
75
+ * input. CVEs are not issued for `url.parse()` vulnerabilities. Use the `WHATWG URL` API instead.
76
+ * @since v0.1.25
77
+ * @deprecated Use the WHATWG URL API instead.
78
+ * @param urlString The URL string to parse.
79
+ * @param [parseQueryString=false] If `true`, the `query` property will always be set to an object returned by the {@link querystring} module's `parse()` method. If `false`, the `query` property
80
+ * on the returned URL object will be an unparsed, undecoded string.
81
+ * @param [slashesDenoteHost=false] If `true`, the first token after the literal string `//` and preceding the next `/` will be interpreted as the `host`. For instance, given `//foo/bar`, the
82
+ * result would be `{host: 'foo', pathname: '/bar'}` rather than `{pathname: '//foo/bar'}`.
83
+ */
84
+ function parse(urlString: string): UrlWithStringQuery;
85
+ function parse(
86
+ urlString: string,
87
+ parseQueryString: false | undefined,
88
+ slashesDenoteHost?: boolean,
89
+ ): UrlWithStringQuery;
90
+ function parse(urlString: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery;
91
+ function parse(urlString: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url;
92
+ /**
93
+ * The `url.format()` method returns a formatted URL string derived from `urlObject`.
94
+ *
95
+ * ```js
96
+ * const url = require('node:url');
97
+ * url.format({
98
+ * protocol: 'https',
99
+ * hostname: 'example.com',
100
+ * pathname: '/some/path',
101
+ * query: {
102
+ * page: 1,
103
+ * format: 'json',
104
+ * },
105
+ * });
106
+ *
107
+ * // => 'https://example.com/some/path?page=1&format=json'
108
+ * ```
109
+ *
110
+ * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`.
111
+ *
112
+ * The formatting process operates as follows:
113
+ *
114
+ * * A new empty string `result` is created.
115
+ * * If `urlObject.protocol` is a string, it is appended as-is to `result`.
116
+ * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown.
117
+ * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII
118
+ * colon (`:`) character, the literal string `:` will be appended to `result`.
119
+ * * If either of the following conditions is true, then the literal string `//` will be appended to `result`:
120
+ * * `urlObject.slashes` property is true;
121
+ * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or `file`;
122
+ * * If the value of the `urlObject.auth` property is truthy, and either `urlObject.host` or `urlObject.hostname` are not `undefined`, the value of `urlObject.auth` will be coerced into a string
123
+ * and appended to `result` followed by the literal string `@`.
124
+ * * If the `urlObject.host` property is `undefined` then:
125
+ * * If the `urlObject.hostname` is a string, it is appended to `result`.
126
+ * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string,
127
+ * an `Error` is thrown.
128
+ * * If the `urlObject.port` property value is truthy, and `urlObject.hostname` is not `undefined`:
129
+ * * The literal string `:` is appended to `result`, and
130
+ * * The value of `urlObject.port` is coerced to a string and appended to `result`.
131
+ * * Otherwise, if the `urlObject.host` property value is truthy, the value of `urlObject.host` is coerced to a string and appended to `result`.
132
+ * * If the `urlObject.pathname` property is a string that is not an empty string:
133
+ * * If the `urlObject.pathname` _does not start_ with an ASCII forward slash
134
+ * (`/`), then the literal string `'/'` is appended to `result`.
135
+ * * The value of `urlObject.pathname` is appended to `result`.
136
+ * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown.
137
+ * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result` followed by the output of calling the
138
+ * `querystring` module's `stringify()` method passing the value of `urlObject.query`.
139
+ * * Otherwise, if `urlObject.search` is a string:
140
+ * * If the value of `urlObject.search` _does not start_ with the ASCII question
141
+ * mark (`?`) character, the literal string `?` is appended to `result`.
142
+ * * The value of `urlObject.search` is appended to `result`.
143
+ * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown.
144
+ * * If the `urlObject.hash` property is a string:
145
+ * * If the value of `urlObject.hash` _does not start_ with the ASCII hash (`#`)
146
+ * character, the literal string `#` is appended to `result`.
147
+ * * The value of `urlObject.hash` is appended to `result`.
148
+ * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a
149
+ * string, an `Error` is thrown.
150
+ * * `result` is returned.
151
+ * @since v0.1.25
152
+ * @legacy Use the WHATWG URL API instead.
153
+ * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`.
154
+ */
155
+ function format(urlObject: URL, options?: URLFormatOptions): string;
156
+ /**
157
+ * The `url.format()` method returns a formatted URL string derived from `urlObject`.
158
+ *
159
+ * ```js
160
+ * const url = require('node:url');
161
+ * url.format({
162
+ * protocol: 'https',
163
+ * hostname: 'example.com',
164
+ * pathname: '/some/path',
165
+ * query: {
166
+ * page: 1,
167
+ * format: 'json',
168
+ * },
169
+ * });
170
+ *
171
+ * // => 'https://example.com/some/path?page=1&format=json'
172
+ * ```
173
+ *
174
+ * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`.
175
+ *
176
+ * The formatting process operates as follows:
177
+ *
178
+ * * A new empty string `result` is created.
179
+ * * If `urlObject.protocol` is a string, it is appended as-is to `result`.
180
+ * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown.
181
+ * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII
182
+ * colon (`:`) character, the literal string `:` will be appended to `result`.
183
+ * * If either of the following conditions is true, then the literal string `//` will be appended to `result`:
184
+ * * `urlObject.slashes` property is true;
185
+ * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or `file`;
186
+ * * If the value of the `urlObject.auth` property is truthy, and either `urlObject.host` or `urlObject.hostname` are not `undefined`, the value of `urlObject.auth` will be coerced into a string
187
+ * and appended to `result` followed by the literal string `@`.
188
+ * * If the `urlObject.host` property is `undefined` then:
189
+ * * If the `urlObject.hostname` is a string, it is appended to `result`.
190
+ * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string,
191
+ * an `Error` is thrown.
192
+ * * If the `urlObject.port` property value is truthy, and `urlObject.hostname` is not `undefined`:
193
+ * * The literal string `:` is appended to `result`, and
194
+ * * The value of `urlObject.port` is coerced to a string and appended to `result`.
195
+ * * Otherwise, if the `urlObject.host` property value is truthy, the value of `urlObject.host` is coerced to a string and appended to `result`.
196
+ * * If the `urlObject.pathname` property is a string that is not an empty string:
197
+ * * If the `urlObject.pathname` _does not start_ with an ASCII forward slash
198
+ * (`/`), then the literal string `'/'` is appended to `result`.
199
+ * * The value of `urlObject.pathname` is appended to `result`.
200
+ * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown.
201
+ * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result` followed by the output of calling the
202
+ * `querystring` module's `stringify()` method passing the value of `urlObject.query`.
203
+ * * Otherwise, if `urlObject.search` is a string:
204
+ * * If the value of `urlObject.search` _does not start_ with the ASCII question
205
+ * mark (`?`) character, the literal string `?` is appended to `result`.
206
+ * * The value of `urlObject.search` is appended to `result`.
207
+ * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown.
208
+ * * If the `urlObject.hash` property is a string:
209
+ * * If the value of `urlObject.hash` _does not start_ with the ASCII hash (`#`)
210
+ * character, the literal string `#` is appended to `result`.
211
+ * * The value of `urlObject.hash` is appended to `result`.
212
+ * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a
213
+ * string, an `Error` is thrown.
214
+ * * `result` is returned.
215
+ * @since v0.1.25
216
+ * @legacy Use the WHATWG URL API instead.
217
+ * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`.
218
+ */
219
+ function format(urlObject: UrlObject | string): string;
220
+ /**
221
+ * The `url.resolve()` method resolves a target URL relative to a base URL in a
222
+ * manner similar to that of a web browser resolving an anchor tag.
223
+ *
224
+ * ```js
225
+ * const url = require('node:url');
226
+ * url.resolve('/one/two/three', 'four'); // '/one/two/four'
227
+ * url.resolve('http://example.com/', '/one'); // 'http://example.com/one'
228
+ * url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'
229
+ * ```
230
+ *
231
+ * To achieve the same result using the WHATWG URL API:
232
+ *
233
+ * ```js
234
+ * function resolve(from, to) {
235
+ * const resolvedUrl = new URL(to, new URL(from, 'resolve://'));
236
+ * if (resolvedUrl.protocol === 'resolve:') {
237
+ * // `from` is a relative URL.
238
+ * const { pathname, search, hash } = resolvedUrl;
239
+ * return pathname + search + hash;
240
+ * }
241
+ * return resolvedUrl.toString();
242
+ * }
243
+ *
244
+ * resolve('/one/two/three', 'four'); // '/one/two/four'
245
+ * resolve('http://example.com/', '/one'); // 'http://example.com/one'
246
+ * resolve('http://example.com/one', '/two'); // 'http://example.com/two'
247
+ * ```
248
+ * @since v0.1.25
249
+ * @legacy Use the WHATWG URL API instead.
250
+ * @param from The base URL to use if `to` is a relative URL.
251
+ * @param to The target URL to resolve.
252
+ */
253
+ function resolve(from: string, to: string): string;
254
+ /**
255
+ * Returns the [Punycode](https://tools.ietf.org/html/rfc5891#section-4.4) ASCII serialization of the `domain`. If `domain` is an
256
+ * invalid domain, the empty string is returned.
257
+ *
258
+ * It performs the inverse operation to {@link domainToUnicode}.
259
+ *
260
+ * ```js
261
+ * import url from 'node:url';
262
+ *
263
+ * console.log(url.domainToASCII('español.com'));
264
+ * // Prints xn--espaol-zwa.com
265
+ * console.log(url.domainToASCII('中文.com'));
266
+ * // Prints xn--fiq228c.com
267
+ * console.log(url.domainToASCII('xn--iñvalid.com'));
268
+ * // Prints an empty string
269
+ * ```
270
+ * @since v7.4.0, v6.13.0
271
+ */
272
+ function domainToASCII(domain: string): string;
273
+ /**
274
+ * Returns the Unicode serialization of the `domain`. If `domain` is an invalid
275
+ * domain, the empty string is returned.
276
+ *
277
+ * It performs the inverse operation to {@link domainToASCII}.
278
+ *
279
+ * ```js
280
+ * import url from 'node:url';
281
+ *
282
+ * console.log(url.domainToUnicode('xn--espaol-zwa.com'));
283
+ * // Prints español.com
284
+ * console.log(url.domainToUnicode('xn--fiq228c.com'));
285
+ * // Prints 中文.com
286
+ * console.log(url.domainToUnicode('xn--iñvalid.com'));
287
+ * // Prints an empty string
288
+ * ```
289
+ * @since v7.4.0, v6.13.0
290
+ */
291
+ function domainToUnicode(domain: string): string;
292
+ /**
293
+ * This function ensures the correct decodings of percent-encoded characters as
294
+ * well as ensuring a cross-platform valid absolute path string.
295
+ *
296
+ * ```js
297
+ * import { fileURLToPath } from 'node:url';
298
+ *
299
+ * const __filename = fileURLToPath(import.meta.url);
300
+ *
301
+ * new URL('file:///C:/path/').pathname; // Incorrect: /C:/path/
302
+ * fileURLToPath('file:///C:/path/'); // Correct: C:\path\ (Windows)
303
+ *
304
+ * new URL('file://nas/foo.txt').pathname; // Incorrect: /foo.txt
305
+ * fileURLToPath('file://nas/foo.txt'); // Correct: \\nas\foo.txt (Windows)
306
+ *
307
+ * new URL('file:///你好.txt').pathname; // Incorrect: /%E4%BD%A0%E5%A5%BD.txt
308
+ * fileURLToPath('file:///你好.txt'); // Correct: /你好.txt (POSIX)
309
+ *
310
+ * new URL('file:///hello world').pathname; // Incorrect: /hello%20world
311
+ * fileURLToPath('file:///hello world'); // Correct: /hello world (POSIX)
312
+ * ```
313
+ * @since v10.12.0
314
+ * @param url The file URL string or URL object to convert to a path.
315
+ * @return The fully-resolved platform-specific Node.js file path.
316
+ */
317
+ function fileURLToPath(url: string | URL, options?: FileUrlToPathOptions): string;
318
+ /**
319
+ * This function ensures that `path` is resolved absolutely, and that the URL
320
+ * control characters are correctly encoded when converting into a File URL.
321
+ *
322
+ * ```js
323
+ * import { pathToFileURL } from 'node:url';
324
+ *
325
+ * new URL('/foo#1', 'file:'); // Incorrect: file:///foo#1
326
+ * pathToFileURL('/foo#1'); // Correct: file:///foo%231 (POSIX)
327
+ *
328
+ * new URL('/some/path%.c', 'file:'); // Incorrect: file:///some/path%.c
329
+ * pathToFileURL('/some/path%.c'); // Correct: file:///some/path%25.c (POSIX)
330
+ * ```
331
+ * @since v10.12.0
332
+ * @param path The path to convert to a File URL.
333
+ * @return The file URL object.
334
+ */
335
+ function pathToFileURL(path: string, options?: PathToFileUrlOptions): URL;
336
+ /**
337
+ * This utility function converts a URL object into an ordinary options object as
338
+ * expected by the `http.request()` and `https.request()` APIs.
339
+ *
340
+ * ```js
341
+ * import { urlToHttpOptions } from 'node:url';
342
+ * const myURL = new URL('https://a:b@測試?abc#foo');
343
+ *
344
+ * console.log(urlToHttpOptions(myURL));
345
+ * /*
346
+ * {
347
+ * protocol: 'https:',
348
+ * hostname: 'xn--g6w251d',
349
+ * hash: '#foo',
350
+ * search: '?abc',
351
+ * pathname: '/',
352
+ * path: '/?abc',
353
+ * href: 'https://a:b@xn--g6w251d/?abc#foo',
354
+ * auth: 'a:b'
355
+ * }
356
+ *
357
+ * ```
358
+ * @since v15.7.0, v14.18.0
359
+ * @param url The `WHATWG URL` object to convert to an options object.
360
+ * @return Options object
361
+ */
362
+ function urlToHttpOptions(url: URL): ClientRequestArgs;
363
+ interface URLFormatOptions {
364
+ /**
365
+ * `true` if the serialized URL string should include the username and password, `false` otherwise.
366
+ * @default true
367
+ */
368
+ auth?: boolean | undefined;
369
+ /**
370
+ * `true` if the serialized URL string should include the fragment, `false` otherwise.
371
+ * @default true
372
+ */
373
+ fragment?: boolean | undefined;
374
+ /**
375
+ * `true` if the serialized URL string should include the search query, `false` otherwise.
376
+ * @default true
377
+ */
378
+ search?: boolean | undefined;
379
+ /**
380
+ * `true` if Unicode characters appearing in the host component of the URL string should be encoded directly as opposed to
381
+ * being Punycode encoded.
382
+ * @default false
383
+ */
384
+ unicode?: boolean | undefined;
385
+ }
386
+ /**
387
+ * Browser-compatible `URL` class, implemented by following the WHATWG URL
388
+ * Standard. [Examples of parsed URLs](https://url.spec.whatwg.org/#example-url-parsing) may be found in the Standard itself.
389
+ * The `URL` class is also available on the global object.
390
+ *
391
+ * In accordance with browser conventions, all properties of `URL` objects
392
+ * are implemented as getters and setters on the class prototype, rather than as
393
+ * data properties on the object itself. Thus, unlike `legacy urlObject`s,
394
+ * using the `delete` keyword on any properties of `URL` objects (e.g. `delete myURL.protocol`, `delete myURL.pathname`, etc) has no effect but will still
395
+ * return `true`.
396
+ * @since v7.0.0, v6.13.0
397
+ */
398
+ class URL {
399
+ /**
400
+ * Creates a `'blob:nodedata:...'` URL string that represents the given `Blob` object and can be used to retrieve the `Blob` later.
401
+ *
402
+ * ```js
403
+ * const {
404
+ * Blob,
405
+ * resolveObjectURL,
406
+ * } = require('node:buffer');
407
+ *
408
+ * const blob = new Blob(['hello']);
409
+ * const id = URL.createObjectURL(blob);
410
+ *
411
+ * // later...
412
+ *
413
+ * const otherBlob = resolveObjectURL(id);
414
+ * console.log(otherBlob.size);
415
+ * ```
416
+ *
417
+ * The data stored by the registered `Blob` will be retained in memory until `URL.revokeObjectURL()` is called to remove it.
418
+ *
419
+ * `Blob` objects are registered within the current thread. If using Worker
420
+ * Threads, `Blob` objects registered within one Worker will not be available
421
+ * to other workers or the main thread.
422
+ * @since v16.7.0
423
+ * @experimental
424
+ */
425
+ static createObjectURL(blob: NodeBlob): string;
426
+ /**
427
+ * Removes the stored `Blob` identified by the given ID. Attempting to revoke a
428
+ * ID that isn't registered will silently fail.
429
+ * @since v16.7.0
430
+ * @experimental
431
+ * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.
432
+ */
433
+ static revokeObjectURL(id: string): void;
434
+ /**
435
+ * Checks if an `input` relative to the `base` can be parsed to a `URL`.
436
+ *
437
+ * ```js
438
+ * const isValid = URL.canParse('/foo', 'https://example.org/'); // true
439
+ *
440
+ * const isNotValid = URL.canParse('/foo'); // false
441
+ * ```
442
+ * @since v19.9.0
443
+ * @param input The absolute or relative input URL to parse. If `input` is relative, then `base` is required. If `input` is absolute, the `base` is ignored. If `input` is not a string, it is
444
+ * `converted to a string` first.
445
+ * @param base The base URL to resolve against if the `input` is not absolute. If `base` is not a string, it is `converted to a string` first.
446
+ */
447
+ static canParse(input: string, base?: string): boolean;
448
+ /**
449
+ * Parses a string as a URL. If `base` is provided, it will be used as the base URL for the purpose of resolving non-absolute `input` URLs.
450
+ * Returns `null` if `input` is not a valid.
451
+ * @param input The absolute or relative input URL to parse. If `input` is relative, then `base` is required. If `input` is absolute, the `base` is ignored. If `input` is not a string, it is
452
+ * `converted to a string` first.
453
+ * @param base The base URL to resolve against if the `input` is not absolute. If `base` is not a string, it is `converted to a string` first.
454
+ * @since v22.1.0
455
+ */
456
+ static parse(input: string, base?: string): URL | null;
457
+ constructor(input: string | { toString: () => string }, base?: string | URL);
458
+ /**
459
+ * Gets and sets the fragment portion of the URL.
460
+ *
461
+ * ```js
462
+ * const myURL = new URL('https://example.org/foo#bar');
463
+ * console.log(myURL.hash);
464
+ * // Prints #bar
465
+ *
466
+ * myURL.hash = 'baz';
467
+ * console.log(myURL.href);
468
+ * // Prints https://example.org/foo#baz
469
+ * ```
470
+ *
471
+ * Invalid URL characters included in the value assigned to the `hash` property
472
+ * are `percent-encoded`. The selection of which characters to
473
+ * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.
474
+ */
475
+ hash: string;
476
+ /**
477
+ * Gets and sets the host portion of the URL.
478
+ *
479
+ * ```js
480
+ * const myURL = new URL('https://example.org:81/foo');
481
+ * console.log(myURL.host);
482
+ * // Prints example.org:81
483
+ *
484
+ * myURL.host = 'example.com:82';
485
+ * console.log(myURL.href);
486
+ * // Prints https://example.com:82/foo
487
+ * ```
488
+ *
489
+ * Invalid host values assigned to the `host` property are ignored.
490
+ */
491
+ host: string;
492
+ /**
493
+ * Gets and sets the host name portion of the URL. The key difference between`url.host` and `url.hostname` is that `url.hostname` does _not_ include the
494
+ * port.
495
+ *
496
+ * ```js
497
+ * const myURL = new URL('https://example.org:81/foo');
498
+ * console.log(myURL.hostname);
499
+ * // Prints example.org
500
+ *
501
+ * // Setting the hostname does not change the port
502
+ * myURL.hostname = 'example.com';
503
+ * console.log(myURL.href);
504
+ * // Prints https://example.com:81/foo
505
+ *
506
+ * // Use myURL.host to change the hostname and port
507
+ * myURL.host = 'example.org:82';
508
+ * console.log(myURL.href);
509
+ * // Prints https://example.org:82/foo
510
+ * ```
511
+ *
512
+ * Invalid host name values assigned to the `hostname` property are ignored.
513
+ */
514
+ hostname: string;
515
+ /**
516
+ * Gets and sets the serialized URL.
517
+ *
518
+ * ```js
519
+ * const myURL = new URL('https://example.org/foo');
520
+ * console.log(myURL.href);
521
+ * // Prints https://example.org/foo
522
+ *
523
+ * myURL.href = 'https://example.com/bar';
524
+ * console.log(myURL.href);
525
+ * // Prints https://example.com/bar
526
+ * ```
527
+ *
528
+ * Getting the value of the `href` property is equivalent to calling {@link toString}.
529
+ *
530
+ * Setting the value of this property to a new value is equivalent to creating a
531
+ * new `URL` object using `new URL(value)`. Each of the `URL` object's properties will be modified.
532
+ *
533
+ * If the value assigned to the `href` property is not a valid URL, a `TypeError` will be thrown.
534
+ */
535
+ href: string;
536
+ /**
537
+ * Gets the read-only serialization of the URL's origin.
538
+ *
539
+ * ```js
540
+ * const myURL = new URL('https://example.org/foo/bar?baz');
541
+ * console.log(myURL.origin);
542
+ * // Prints https://example.org
543
+ * ```
544
+ *
545
+ * ```js
546
+ * const idnURL = new URL('https://測試');
547
+ * console.log(idnURL.origin);
548
+ * // Prints https://xn--g6w251d
549
+ *
550
+ * console.log(idnURL.hostname);
551
+ * // Prints xn--g6w251d
552
+ * ```
553
+ */
554
+ readonly origin: string;
555
+ /**
556
+ * Gets and sets the password portion of the URL.
557
+ *
558
+ * ```js
559
+ * const myURL = new URL('https://abc:xyz@example.com');
560
+ * console.log(myURL.password);
561
+ * // Prints xyz
562
+ *
563
+ * myURL.password = '123';
564
+ * console.log(myURL.href);
565
+ * // Prints https://abc:123@example.com/
566
+ * ```
567
+ *
568
+ * Invalid URL characters included in the value assigned to the `password` property
569
+ * are `percent-encoded`. The selection of which characters to
570
+ * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.
571
+ */
572
+ password: string;
573
+ /**
574
+ * Gets and sets the path portion of the URL.
575
+ *
576
+ * ```js
577
+ * const myURL = new URL('https://example.org/abc/xyz?123');
578
+ * console.log(myURL.pathname);
579
+ * // Prints /abc/xyz
580
+ *
581
+ * myURL.pathname = '/abcdef';
582
+ * console.log(myURL.href);
583
+ * // Prints https://example.org/abcdef?123
584
+ * ```
585
+ *
586
+ * Invalid URL characters included in the value assigned to the `pathname` property are `percent-encoded`. The selection of which characters
587
+ * to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.
588
+ */
589
+ pathname: string;
590
+ /**
591
+ * Gets and sets the port portion of the URL.
592
+ *
593
+ * The port value may be a number or a string containing a number in the range `0` to `65535` (inclusive). Setting the value to the default port of the `URL` objects given `protocol` will
594
+ * result in the `port` value becoming
595
+ * the empty string (`''`).
596
+ *
597
+ * The port value can be an empty string in which case the port depends on
598
+ * the protocol/scheme:
599
+ *
600
+ * <omitted>
601
+ *
602
+ * Upon assigning a value to the port, the value will first be converted to a
603
+ * string using `.toString()`.
604
+ *
605
+ * If that string is invalid but it begins with a number, the leading number is
606
+ * assigned to `port`.
607
+ * If the number lies outside the range denoted above, it is ignored.
608
+ *
609
+ * ```js
610
+ * const myURL = new URL('https://example.org:8888');
611
+ * console.log(myURL.port);
612
+ * // Prints 8888
613
+ *
614
+ * // Default ports are automatically transformed to the empty string
615
+ * // (HTTPS protocol's default port is 443)
616
+ * myURL.port = '443';
617
+ * console.log(myURL.port);
618
+ * // Prints the empty string
619
+ * console.log(myURL.href);
620
+ * // Prints https://example.org/
621
+ *
622
+ * myURL.port = 1234;
623
+ * console.log(myURL.port);
624
+ * // Prints 1234
625
+ * console.log(myURL.href);
626
+ * // Prints https://example.org:1234/
627
+ *
628
+ * // Completely invalid port strings are ignored
629
+ * myURL.port = 'abcd';
630
+ * console.log(myURL.port);
631
+ * // Prints 1234
632
+ *
633
+ * // Leading numbers are treated as a port number
634
+ * myURL.port = '5678abcd';
635
+ * console.log(myURL.port);
636
+ * // Prints 5678
637
+ *
638
+ * // Non-integers are truncated
639
+ * myURL.port = 1234.5678;
640
+ * console.log(myURL.port);
641
+ * // Prints 1234
642
+ *
643
+ * // Out-of-range numbers which are not represented in scientific notation
644
+ * // will be ignored.
645
+ * myURL.port = 1e10; // 10000000000, will be range-checked as described below
646
+ * console.log(myURL.port);
647
+ * // Prints 1234
648
+ * ```
649
+ *
650
+ * Numbers which contain a decimal point,
651
+ * such as floating-point numbers or numbers in scientific notation,
652
+ * are not an exception to this rule.
653
+ * Leading numbers up to the decimal point will be set as the URL's port,
654
+ * assuming they are valid:
655
+ *
656
+ * ```js
657
+ * myURL.port = 4.567e21;
658
+ * console.log(myURL.port);
659
+ * // Prints 4 (because it is the leading number in the string '4.567e21')
660
+ * ```
661
+ */
662
+ port: string;
663
+ /**
664
+ * Gets and sets the protocol portion of the URL.
665
+ *
666
+ * ```js
667
+ * const myURL = new URL('https://example.org');
668
+ * console.log(myURL.protocol);
669
+ * // Prints https:
670
+ *
671
+ * myURL.protocol = 'ftp';
672
+ * console.log(myURL.href);
673
+ * // Prints ftp://example.org/
674
+ * ```
675
+ *
676
+ * Invalid URL protocol values assigned to the `protocol` property are ignored.
677
+ */
678
+ protocol: string;
679
+ /**
680
+ * Gets and sets the serialized query portion of the URL.
681
+ *
682
+ * ```js
683
+ * const myURL = new URL('https://example.org/abc?123');
684
+ * console.log(myURL.search);
685
+ * // Prints ?123
686
+ *
687
+ * myURL.search = 'abc=xyz';
688
+ * console.log(myURL.href);
689
+ * // Prints https://example.org/abc?abc=xyz
690
+ * ```
691
+ *
692
+ * Any invalid URL characters appearing in the value assigned the `search` property will be `percent-encoded`. The selection of which
693
+ * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.
694
+ */
695
+ search: string;
696
+ /**
697
+ * Gets the `URLSearchParams` object representing the query parameters of the
698
+ * URL. This property is read-only but the `URLSearchParams` object it provides
699
+ * can be used to mutate the URL instance; to replace the entirety of query
700
+ * parameters of the URL, use the {@link search} setter. See `URLSearchParams` documentation for details.
701
+ *
702
+ * Use care when using `.searchParams` to modify the `URL` because,
703
+ * per the WHATWG specification, the `URLSearchParams` object uses
704
+ * different rules to determine which characters to percent-encode. For
705
+ * instance, the `URL` object will not percent encode the ASCII tilde (`~`)
706
+ * character, while `URLSearchParams` will always encode it:
707
+ *
708
+ * ```js
709
+ * const myURL = new URL('https://example.org/abc?foo=~bar');
710
+ *
711
+ * console.log(myURL.search); // prints ?foo=~bar
712
+ *
713
+ * // Modify the URL via searchParams...
714
+ * myURL.searchParams.sort();
715
+ *
716
+ * console.log(myURL.search); // prints ?foo=%7Ebar
717
+ * ```
718
+ */
719
+ readonly searchParams: URLSearchParams;
720
+ /**
721
+ * Gets and sets the username portion of the URL.
722
+ *
723
+ * ```js
724
+ * const myURL = new URL('https://abc:xyz@example.com');
725
+ * console.log(myURL.username);
726
+ * // Prints abc
727
+ *
728
+ * myURL.username = '123';
729
+ * console.log(myURL.href);
730
+ * // Prints https://123:xyz@example.com/
731
+ * ```
732
+ *
733
+ * Any invalid URL characters appearing in the value assigned the `username` property will be `percent-encoded`. The selection of which
734
+ * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce.
735
+ */
736
+ username: string;
737
+ /**
738
+ * The `toString()` method on the `URL` object returns the serialized URL. The
739
+ * value returned is equivalent to that of {@link href} and {@link toJSON}.
740
+ */
741
+ toString(): string;
742
+ /**
743
+ * The `toJSON()` method on the `URL` object returns the serialized URL. The
744
+ * value returned is equivalent to that of {@link href} and {@link toString}.
745
+ *
746
+ * This method is automatically called when an `URL` object is serialized
747
+ * with [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).
748
+ *
749
+ * ```js
750
+ * const myURLs = [
751
+ * new URL('https://www.example.com'),
752
+ * new URL('https://test.example.org'),
753
+ * ];
754
+ * console.log(JSON.stringify(myURLs));
755
+ * // Prints ["https://www.example.com/","https://test.example.org/"]
756
+ * ```
757
+ */
758
+ toJSON(): string;
759
+ }
760
+ /**
761
+ * The `URLSearchParams` API provides read and write access to the query of a `URL`. The `URLSearchParams` class can also be used standalone with one of the
762
+ * four following constructors.
763
+ * The `URLSearchParams` class is also available on the global object.
764
+ *
765
+ * The WHATWG `URLSearchParams` interface and the `querystring` module have
766
+ * similar purpose, but the purpose of the `querystring` module is more
767
+ * general, as it allows the customization of delimiter characters (`&#x26;` and `=`).
768
+ * On the other hand, this API is designed purely for URL query strings.
769
+ *
770
+ * ```js
771
+ * const myURL = new URL('https://example.org/?abc=123');
772
+ * console.log(myURL.searchParams.get('abc'));
773
+ * // Prints 123
774
+ *
775
+ * myURL.searchParams.append('abc', 'xyz');
776
+ * console.log(myURL.href);
777
+ * // Prints https://example.org/?abc=123&#x26;abc=xyz
778
+ *
779
+ * myURL.searchParams.delete('abc');
780
+ * myURL.searchParams.set('a', 'b');
781
+ * console.log(myURL.href);
782
+ * // Prints https://example.org/?a=b
783
+ *
784
+ * const newSearchParams = new URLSearchParams(myURL.searchParams);
785
+ * // The above is equivalent to
786
+ * // const newSearchParams = new URLSearchParams(myURL.search);
787
+ *
788
+ * newSearchParams.append('a', 'c');
789
+ * console.log(myURL.href);
790
+ * // Prints https://example.org/?a=b
791
+ * console.log(newSearchParams.toString());
792
+ * // Prints a=b&#x26;a=c
793
+ *
794
+ * // newSearchParams.toString() is implicitly called
795
+ * myURL.search = newSearchParams;
796
+ * console.log(myURL.href);
797
+ * // Prints https://example.org/?a=b&#x26;a=c
798
+ * newSearchParams.delete('a');
799
+ * console.log(myURL.href);
800
+ * // Prints https://example.org/?a=b&#x26;a=c
801
+ * ```
802
+ * @since v7.5.0, v6.13.0
803
+ */
804
+ class URLSearchParams implements Iterable<[string, string]> {
805
+ constructor(
806
+ init?:
807
+ | URLSearchParams
808
+ | string
809
+ | Record<string, string | readonly string[]>
810
+ | Iterable<[string, string]>
811
+ | ReadonlyArray<[string, string]>,
812
+ );
813
+ /**
814
+ * Append a new name-value pair to the query string.
815
+ */
816
+ append(name: string, value: string): void;
817
+ /**
818
+ * If `value` is provided, removes all name-value pairs
819
+ * where name is `name` and value is `value`.
820
+ *
821
+ * If `value` is not provided, removes all name-value pairs whose name is `name`.
822
+ */
823
+ delete(name: string, value?: string): void;
824
+ /**
825
+ * Returns an ES6 `Iterator` over each of the name-value pairs in the query.
826
+ * Each item of the iterator is a JavaScript `Array`. The first item of the `Array` is the `name`, the second item of the `Array` is the `value`.
827
+ *
828
+ * Alias for `urlSearchParams[@@iterator]()`.
829
+ */
830
+ entries(): IterableIterator<[string, string]>;
831
+ /**
832
+ * Iterates over each name-value pair in the query and invokes the given function.
833
+ *
834
+ * ```js
835
+ * const myURL = new URL('https://example.org/?a=b&#x26;c=d');
836
+ * myURL.searchParams.forEach((value, name, searchParams) => {
837
+ * console.log(name, value, myURL.searchParams === searchParams);
838
+ * });
839
+ * // Prints:
840
+ * // a b true
841
+ * // c d true
842
+ * ```
843
+ * @param fn Invoked for each name-value pair in the query
844
+ * @param thisArg To be used as `this` value for when `fn` is called
845
+ */
846
+ forEach<TThis = this>(
847
+ fn: (this: TThis, value: string, name: string, searchParams: URLSearchParams) => void,
848
+ thisArg?: TThis,
849
+ ): void;
850
+ /**
851
+ * Returns the value of the first name-value pair whose name is `name`. If there
852
+ * are no such pairs, `null` is returned.
853
+ * @return or `null` if there is no name-value pair with the given `name`.
854
+ */
855
+ get(name: string): string | null;
856
+ /**
857
+ * Returns the values of all name-value pairs whose name is `name`. If there are
858
+ * no such pairs, an empty array is returned.
859
+ */
860
+ getAll(name: string): string[];
861
+ /**
862
+ * Checks if the `URLSearchParams` object contains key-value pair(s) based on `name` and an optional `value` argument.
863
+ *
864
+ * If `value` is provided, returns `true` when name-value pair with
865
+ * same `name` and `value` exists.
866
+ *
867
+ * If `value` is not provided, returns `true` if there is at least one name-value
868
+ * pair whose name is `name`.
869
+ */
870
+ has(name: string, value?: string): boolean;
871
+ /**
872
+ * Returns an ES6 `Iterator` over the names of each name-value pair.
873
+ *
874
+ * ```js
875
+ * const params = new URLSearchParams('foo=bar&#x26;foo=baz');
876
+ * for (const name of params.keys()) {
877
+ * console.log(name);
878
+ * }
879
+ * // Prints:
880
+ * // foo
881
+ * // foo
882
+ * ```
883
+ */
884
+ keys(): IterableIterator<string>;
885
+ /**
886
+ * Sets the value in the `URLSearchParams` object associated with `name` to `value`. If there are any pre-existing name-value pairs whose names are `name`,
887
+ * set the first such pair's value to `value` and remove all others. If not,
888
+ * append the name-value pair to the query string.
889
+ *
890
+ * ```js
891
+ * const params = new URLSearchParams();
892
+ * params.append('foo', 'bar');
893
+ * params.append('foo', 'baz');
894
+ * params.append('abc', 'def');
895
+ * console.log(params.toString());
896
+ * // Prints foo=bar&#x26;foo=baz&#x26;abc=def
897
+ *
898
+ * params.set('foo', 'def');
899
+ * params.set('xyz', 'opq');
900
+ * console.log(params.toString());
901
+ * // Prints foo=def&#x26;abc=def&#x26;xyz=opq
902
+ * ```
903
+ */
904
+ set(name: string, value: string): void;
905
+ /**
906
+ * The total number of parameter entries.
907
+ * @since v19.8.0
908
+ */
909
+ readonly size: number;
910
+ /**
911
+ * Sort all existing name-value pairs in-place by their names. Sorting is done
912
+ * with a [stable sorting algorithm](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability), so relative order between name-value pairs
913
+ * with the same name is preserved.
914
+ *
915
+ * This method can be used, in particular, to increase cache hits.
916
+ *
917
+ * ```js
918
+ * const params = new URLSearchParams('query[]=abc&#x26;type=search&#x26;query[]=123');
919
+ * params.sort();
920
+ * console.log(params.toString());
921
+ * // Prints query%5B%5D=abc&#x26;query%5B%5D=123&#x26;type=search
922
+ * ```
923
+ * @since v7.7.0, v6.13.0
924
+ */
925
+ sort(): void;
926
+ /**
927
+ * Returns the search parameters serialized as a string, with characters
928
+ * percent-encoded where necessary.
929
+ */
930
+ toString(): string;
931
+ /**
932
+ * Returns an ES6 `Iterator` over the values of each name-value pair.
933
+ */
934
+ values(): IterableIterator<string>;
935
+ [Symbol.iterator](): IterableIterator<[string, string]>;
936
+ }
937
+ import { URL as _URL, URLSearchParams as _URLSearchParams } from "url";
938
+ global {
939
+ interface URLSearchParams extends _URLSearchParams {}
940
+ interface URL extends _URL {}
941
+ interface Global {
942
+ URL: typeof _URL;
943
+ URLSearchParams: typeof _URLSearchParams;
944
+ }
945
+ /**
946
+ * `URL` class is a global reference for `require('url').URL`
947
+ * https://nodejs.org/api/url.html#the-whatwg-url-api
948
+ * @since v10.0.0
949
+ */
950
+ var URL: typeof globalThis extends {
951
+ onmessage: any;
952
+ URL: infer T;
953
+ } ? T
954
+ : typeof _URL;
955
+ /**
956
+ * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`
957
+ * https://nodejs.org/api/url.html#class-urlsearchparams
958
+ * @since v10.0.0
959
+ */
960
+ var URLSearchParams: typeof globalThis extends {
961
+ onmessage: any;
962
+ URLSearchParams: infer T;
963
+ } ? T
964
+ : typeof _URLSearchParams;
965
+ }
966
+ }
967
+ declare module "node:url" {
968
+ export * from "url";
969
+ }