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,1264 @@
1
+ /**
2
+ * The `fs/promises` API provides asynchronous file system methods that return
3
+ * promises.
4
+ *
5
+ * The promise APIs use the underlying Node.js threadpool to perform file
6
+ * system operations off the event loop thread. These operations are not
7
+ * synchronized or threadsafe. Care must be taken when performing multiple
8
+ * concurrent modifications on the same file or data corruption may occur.
9
+ * @since v10.0.0
10
+ */
11
+ declare module "fs/promises" {
12
+ import { Abortable } from "node:events";
13
+ import { Stream } from "node:stream";
14
+ import { ReadableStream } from "node:stream/web";
15
+ import {
16
+ BigIntStats,
17
+ BigIntStatsFs,
18
+ BufferEncodingOption,
19
+ constants as fsConstants,
20
+ CopyOptions,
21
+ Dir,
22
+ Dirent,
23
+ GlobOptions,
24
+ GlobOptionsWithFileTypes,
25
+ GlobOptionsWithoutFileTypes,
26
+ MakeDirectoryOptions,
27
+ Mode,
28
+ ObjectEncodingOptions,
29
+ OpenDirOptions,
30
+ OpenMode,
31
+ PathLike,
32
+ ReadStream,
33
+ ReadVResult,
34
+ RmDirOptions,
35
+ RmOptions,
36
+ StatFsOptions,
37
+ StatOptions,
38
+ Stats,
39
+ StatsFs,
40
+ TimeLike,
41
+ WatchEventType,
42
+ WatchOptions,
43
+ WriteStream,
44
+ WriteVResult,
45
+ } from "node:fs";
46
+ import { Interface as ReadlineInterface } from "node:readline";
47
+ interface FileChangeInfo<T extends string | Buffer> {
48
+ eventType: WatchEventType;
49
+ filename: T | null;
50
+ }
51
+ interface FlagAndOpenMode {
52
+ mode?: Mode | undefined;
53
+ flag?: OpenMode | undefined;
54
+ }
55
+ interface FileReadResult<T extends NodeJS.ArrayBufferView> {
56
+ bytesRead: number;
57
+ buffer: T;
58
+ }
59
+ interface FileReadOptions<T extends NodeJS.ArrayBufferView = Buffer> {
60
+ /**
61
+ * @default `Buffer.alloc(0xffff)`
62
+ */
63
+ buffer?: T;
64
+ /**
65
+ * @default 0
66
+ */
67
+ offset?: number | null;
68
+ /**
69
+ * @default `buffer.byteLength`
70
+ */
71
+ length?: number | null;
72
+ position?: number | null;
73
+ }
74
+ interface CreateReadStreamOptions {
75
+ encoding?: BufferEncoding | null | undefined;
76
+ autoClose?: boolean | undefined;
77
+ emitClose?: boolean | undefined;
78
+ start?: number | undefined;
79
+ end?: number | undefined;
80
+ highWaterMark?: number | undefined;
81
+ }
82
+ interface CreateWriteStreamOptions {
83
+ encoding?: BufferEncoding | null | undefined;
84
+ autoClose?: boolean | undefined;
85
+ emitClose?: boolean | undefined;
86
+ start?: number | undefined;
87
+ highWaterMark?: number | undefined;
88
+ flush?: boolean | undefined;
89
+ }
90
+ interface ReadableWebStreamOptions {
91
+ /**
92
+ * Whether to open a normal or a `'bytes'` stream.
93
+ * @since v20.0.0
94
+ */
95
+ type?: "bytes" | undefined;
96
+ }
97
+ // TODO: Add `EventEmitter` close
98
+ interface FileHandle {
99
+ /**
100
+ * The numeric file descriptor managed by the {FileHandle} object.
101
+ * @since v10.0.0
102
+ */
103
+ readonly fd: number;
104
+ /**
105
+ * Alias of `filehandle.writeFile()`.
106
+ *
107
+ * When operating on file handles, the mode cannot be changed from what it was set
108
+ * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`.
109
+ * @since v10.0.0
110
+ * @return Fulfills with `undefined` upon success.
111
+ */
112
+ appendFile(
113
+ data: string | Uint8Array,
114
+ options?:
115
+ | (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined })
116
+ | BufferEncoding
117
+ | null,
118
+ ): Promise<void>;
119
+ /**
120
+ * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html).
121
+ * @since v10.0.0
122
+ * @param uid The file's new owner's user id.
123
+ * @param gid The file's new group's group id.
124
+ * @return Fulfills with `undefined` upon success.
125
+ */
126
+ chown(uid: number, gid: number): Promise<void>;
127
+ /**
128
+ * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html).
129
+ * @since v10.0.0
130
+ * @param mode the file mode bit mask.
131
+ * @return Fulfills with `undefined` upon success.
132
+ */
133
+ chmod(mode: Mode): Promise<void>;
134
+ /**
135
+ * Unlike the 16 KiB default `highWaterMark` for a `stream.Readable`, the stream
136
+ * returned by this method has a default `highWaterMark` of 64 KiB.
137
+ *
138
+ * `options` can include `start` and `end` values to read a range of bytes from
139
+ * the file instead of the entire file. Both `start` and `end` are inclusive and
140
+ * start counting at 0, allowed values are in the
141
+ * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `start` is
142
+ * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from
143
+ * the current file position. The `encoding` can be any one of those accepted by `Buffer`.
144
+ *
145
+ * If the `FileHandle` points to a character device that only supports blocking
146
+ * reads (such as keyboard or sound card), read operations do not finish until data
147
+ * is available. This can prevent the process from exiting and the stream from
148
+ * closing naturally.
149
+ *
150
+ * By default, the stream will emit a `'close'` event after it has been
151
+ * destroyed. Set the `emitClose` option to `false` to change this behavior.
152
+ *
153
+ * ```js
154
+ * import { open } from 'node:fs/promises';
155
+ *
156
+ * const fd = await open('/dev/input/event0');
157
+ * // Create a stream from some character device.
158
+ * const stream = fd.createReadStream();
159
+ * setTimeout(() => {
160
+ * stream.close(); // This may not close the stream.
161
+ * // Artificially marking end-of-stream, as if the underlying resource had
162
+ * // indicated end-of-file by itself, allows the stream to close.
163
+ * // This does not cancel pending read operations, and if there is such an
164
+ * // operation, the process may still not be able to exit successfully
165
+ * // until it finishes.
166
+ * stream.push(null);
167
+ * stream.read(0);
168
+ * }, 100);
169
+ * ```
170
+ *
171
+ * If `autoClose` is false, then the file descriptor won't be closed, even if
172
+ * there's an error. It is the application's responsibility to close it and make
173
+ * sure there's no file descriptor leak. If `autoClose` is set to true (default
174
+ * behavior), on `'error'` or `'end'` the file descriptor will be closed
175
+ * automatically.
176
+ *
177
+ * An example to read the last 10 bytes of a file which is 100 bytes long:
178
+ *
179
+ * ```js
180
+ * import { open } from 'node:fs/promises';
181
+ *
182
+ * const fd = await open('sample.txt');
183
+ * fd.createReadStream({ start: 90, end: 99 });
184
+ * ```
185
+ * @since v16.11.0
186
+ */
187
+ createReadStream(options?: CreateReadStreamOptions): ReadStream;
188
+ /**
189
+ * `options` may also include a `start` option to allow writing data at some
190
+ * position past the beginning of the file, allowed values are in the
191
+ * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than
192
+ * replacing it may require the `flags` `open` option to be set to `r+` rather than
193
+ * the default `r`. The `encoding` can be any one of those accepted by `Buffer`.
194
+ *
195
+ * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'` the file descriptor will be closed automatically. If `autoClose` is false,
196
+ * then the file descriptor won't be closed, even if there's an error.
197
+ * It is the application's responsibility to close it and make sure there's no
198
+ * file descriptor leak.
199
+ *
200
+ * By default, the stream will emit a `'close'` event after it has been
201
+ * destroyed. Set the `emitClose` option to `false` to change this behavior.
202
+ * @since v16.11.0
203
+ */
204
+ createWriteStream(options?: CreateWriteStreamOptions): WriteStream;
205
+ /**
206
+ * Forces all currently queued I/O operations associated with the file to the
207
+ * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details.
208
+ *
209
+ * Unlike `filehandle.sync` this method does not flush modified metadata.
210
+ * @since v10.0.0
211
+ * @return Fulfills with `undefined` upon success.
212
+ */
213
+ datasync(): Promise<void>;
214
+ /**
215
+ * Request that all data for the open file descriptor is flushed to the storage
216
+ * device. The specific implementation is operating system and device specific.
217
+ * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail.
218
+ * @since v10.0.0
219
+ * @return Fulfills with `undefined` upon success.
220
+ */
221
+ sync(): Promise<void>;
222
+ /**
223
+ * Reads data from the file and stores that in the given buffer.
224
+ *
225
+ * If the file is not modified concurrently, the end-of-file is reached when the
226
+ * number of bytes read is zero.
227
+ * @since v10.0.0
228
+ * @param buffer A buffer that will be filled with the file data read.
229
+ * @param offset The location in the buffer at which to start filling.
230
+ * @param length The number of bytes to read.
231
+ * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an
232
+ * integer, the current file position will remain unchanged.
233
+ * @return Fulfills upon success with an object with two properties:
234
+ */
235
+ read<T extends NodeJS.ArrayBufferView>(
236
+ buffer: T,
237
+ offset?: number | null,
238
+ length?: number | null,
239
+ position?: number | null,
240
+ ): Promise<FileReadResult<T>>;
241
+ read<T extends NodeJS.ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;
242
+ /**
243
+ * Returns a `ReadableStream` that may be used to read the files data.
244
+ *
245
+ * An error will be thrown if this method is called more than once or is called
246
+ * after the `FileHandle` is closed or closing.
247
+ *
248
+ * ```js
249
+ * import {
250
+ * open,
251
+ * } from 'node:fs/promises';
252
+ *
253
+ * const file = await open('./some/file/to/read');
254
+ *
255
+ * for await (const chunk of file.readableWebStream())
256
+ * console.log(chunk);
257
+ *
258
+ * await file.close();
259
+ * ```
260
+ *
261
+ * While the `ReadableStream` will read the file to completion, it will not
262
+ * close the `FileHandle` automatically. User code must still call the`fileHandle.close()` method.
263
+ * @since v17.0.0
264
+ * @experimental
265
+ */
266
+ readableWebStream(options?: ReadableWebStreamOptions): ReadableStream;
267
+ /**
268
+ * Asynchronously reads the entire contents of a file.
269
+ *
270
+ * If `options` is a string, then it specifies the `encoding`.
271
+ *
272
+ * The `FileHandle` has to support reading.
273
+ *
274
+ * If one or more `filehandle.read()` calls are made on a file handle and then a `filehandle.readFile()` call is made, the data will be read from the current
275
+ * position till the end of the file. It doesn't always read from the beginning
276
+ * of the file.
277
+ * @since v10.0.0
278
+ * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the
279
+ * data will be a string.
280
+ */
281
+ readFile(
282
+ options?: {
283
+ encoding?: null | undefined;
284
+ flag?: OpenMode | undefined;
285
+ } | null,
286
+ ): Promise<Buffer>;
287
+ /**
288
+ * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
289
+ * The `FileHandle` must have been opened for reading.
290
+ * @param options An object that may contain an optional flag.
291
+ * If a flag is not provided, it defaults to `'r'`.
292
+ */
293
+ readFile(
294
+ options:
295
+ | {
296
+ encoding: BufferEncoding;
297
+ flag?: OpenMode | undefined;
298
+ }
299
+ | BufferEncoding,
300
+ ): Promise<string>;
301
+ /**
302
+ * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically.
303
+ * The `FileHandle` must have been opened for reading.
304
+ * @param options An object that may contain an optional flag.
305
+ * If a flag is not provided, it defaults to `'r'`.
306
+ */
307
+ readFile(
308
+ options?:
309
+ | (ObjectEncodingOptions & {
310
+ flag?: OpenMode | undefined;
311
+ })
312
+ | BufferEncoding
313
+ | null,
314
+ ): Promise<string | Buffer>;
315
+ /**
316
+ * Convenience method to create a `readline` interface and stream over the file.
317
+ * See `filehandle.createReadStream()` for the options.
318
+ *
319
+ * ```js
320
+ * import { open } from 'node:fs/promises';
321
+ *
322
+ * const file = await open('./some/file/to/read');
323
+ *
324
+ * for await (const line of file.readLines()) {
325
+ * console.log(line);
326
+ * }
327
+ * ```
328
+ * @since v18.11.0
329
+ */
330
+ readLines(options?: CreateReadStreamOptions): ReadlineInterface;
331
+ /**
332
+ * @since v10.0.0
333
+ * @return Fulfills with an {fs.Stats} for the file.
334
+ */
335
+ stat(
336
+ opts?: StatOptions & {
337
+ bigint?: false | undefined;
338
+ },
339
+ ): Promise<Stats>;
340
+ stat(
341
+ opts: StatOptions & {
342
+ bigint: true;
343
+ },
344
+ ): Promise<BigIntStats>;
345
+ stat(opts?: StatOptions): Promise<Stats | BigIntStats>;
346
+ /**
347
+ * Truncates the file.
348
+ *
349
+ * If the file was larger than `len` bytes, only the first `len` bytes will be
350
+ * retained in the file.
351
+ *
352
+ * The following example retains only the first four bytes of the file:
353
+ *
354
+ * ```js
355
+ * import { open } from 'node:fs/promises';
356
+ *
357
+ * let filehandle = null;
358
+ * try {
359
+ * filehandle = await open('temp.txt', 'r+');
360
+ * await filehandle.truncate(4);
361
+ * } finally {
362
+ * await filehandle?.close();
363
+ * }
364
+ * ```
365
+ *
366
+ * If the file previously was shorter than `len` bytes, it is extended, and the
367
+ * extended part is filled with null bytes (`'\0'`):
368
+ *
369
+ * If `len` is negative then `0` will be used.
370
+ * @since v10.0.0
371
+ * @param [len=0]
372
+ * @return Fulfills with `undefined` upon success.
373
+ */
374
+ truncate(len?: number): Promise<void>;
375
+ /**
376
+ * Change the file system timestamps of the object referenced by the `FileHandle` then fulfills the promise with no arguments upon success.
377
+ * @since v10.0.0
378
+ */
379
+ utimes(atime: TimeLike, mtime: TimeLike): Promise<void>;
380
+ /**
381
+ * Asynchronously writes data to a file, replacing the file if it already exists. `data` can be a string, a buffer, an
382
+ * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an
383
+ * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object.
384
+ * The promise is fulfilled with no arguments upon success.
385
+ *
386
+ * If `options` is a string, then it specifies the `encoding`.
387
+ *
388
+ * The `FileHandle` has to support writing.
389
+ *
390
+ * It is unsafe to use `filehandle.writeFile()` multiple times on the same file
391
+ * without waiting for the promise to be fulfilled (or rejected).
392
+ *
393
+ * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the
394
+ * current position till the end of the file. It doesn't always write from the
395
+ * beginning of the file.
396
+ * @since v10.0.0
397
+ */
398
+ writeFile(
399
+ data: string | Uint8Array,
400
+ options?:
401
+ | (ObjectEncodingOptions & FlagAndOpenMode & Abortable & { flush?: boolean | undefined })
402
+ | BufferEncoding
403
+ | null,
404
+ ): Promise<void>;
405
+ /**
406
+ * Write `buffer` to the file.
407
+ *
408
+ * The promise is fulfilled with an object containing two properties:
409
+ *
410
+ * It is unsafe to use `filehandle.write()` multiple times on the same file
411
+ * without waiting for the promise to be fulfilled (or rejected). For this
412
+ * scenario, use `filehandle.createWriteStream()`.
413
+ *
414
+ * On Linux, positional writes do not work when the file is opened in append mode.
415
+ * The kernel ignores the position argument and always appends the data to
416
+ * the end of the file.
417
+ * @since v10.0.0
418
+ * @param offset The start position from within `buffer` where the data to write begins.
419
+ * @param [length=buffer.byteLength - offset] The number of bytes from `buffer` to write.
420
+ * @param [position='null'] The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current
421
+ * position. See the POSIX pwrite(2) documentation for more detail.
422
+ */
423
+ write<TBuffer extends Uint8Array>(
424
+ buffer: TBuffer,
425
+ offset?: number | null,
426
+ length?: number | null,
427
+ position?: number | null,
428
+ ): Promise<{
429
+ bytesWritten: number;
430
+ buffer: TBuffer;
431
+ }>;
432
+ write(
433
+ data: string,
434
+ position?: number | null,
435
+ encoding?: BufferEncoding | null,
436
+ ): Promise<{
437
+ bytesWritten: number;
438
+ buffer: string;
439
+ }>;
440
+ /**
441
+ * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file.
442
+ *
443
+ * The promise is fulfilled with an object containing a two properties:
444
+ *
445
+ * It is unsafe to call `writev()` multiple times on the same file without waiting
446
+ * for the promise to be fulfilled (or rejected).
447
+ *
448
+ * On Linux, positional writes don't work when the file is opened in append mode.
449
+ * The kernel ignores the position argument and always appends the data to
450
+ * the end of the file.
451
+ * @since v12.9.0
452
+ * @param [position='null'] The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current
453
+ * position.
454
+ */
455
+ writev(buffers: readonly NodeJS.ArrayBufferView[], position?: number): Promise<WriteVResult>;
456
+ /**
457
+ * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s
458
+ * @since v13.13.0, v12.17.0
459
+ * @param [position='null'] The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position.
460
+ * @return Fulfills upon success an object containing two properties:
461
+ */
462
+ readv(buffers: readonly NodeJS.ArrayBufferView[], position?: number): Promise<ReadVResult>;
463
+ /**
464
+ * Closes the file handle after waiting for any pending operation on the handle to
465
+ * complete.
466
+ *
467
+ * ```js
468
+ * import { open } from 'node:fs/promises';
469
+ *
470
+ * let filehandle;
471
+ * try {
472
+ * filehandle = await open('thefile.txt', 'r');
473
+ * } finally {
474
+ * await filehandle?.close();
475
+ * }
476
+ * ```
477
+ * @since v10.0.0
478
+ * @return Fulfills with `undefined` upon success.
479
+ */
480
+ close(): Promise<void>;
481
+ /**
482
+ * An alias for {@link FileHandle.close()}.
483
+ * @since v20.4.0
484
+ */
485
+ [Symbol.asyncDispose](): Promise<void>;
486
+ }
487
+ const constants: typeof fsConstants;
488
+ /**
489
+ * Tests a user's permissions for the file or directory specified by `path`.
490
+ * The `mode` argument is an optional integer that specifies the accessibility
491
+ * checks to be performed. `mode` should be either the value `fs.constants.F_OK` or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`, `fs.constants.W_OK`, and `fs.constants.X_OK`
492
+ * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for
493
+ * possible values of `mode`.
494
+ *
495
+ * If the accessibility check is successful, the promise is fulfilled with no
496
+ * value. If any of the accessibility checks fail, the promise is rejected
497
+ * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and
498
+ * written by the current process.
499
+ *
500
+ * ```js
501
+ * import { access, constants } from 'node:fs/promises';
502
+ *
503
+ * try {
504
+ * await access('/etc/passwd', constants.R_OK | constants.W_OK);
505
+ * console.log('can access');
506
+ * } catch {
507
+ * console.error('cannot access');
508
+ * }
509
+ * ```
510
+ *
511
+ * Using `fsPromises.access()` to check for the accessibility of a file before
512
+ * calling `fsPromises.open()` is not recommended. Doing so introduces a race
513
+ * condition, since other processes may change the file's state between the two
514
+ * calls. Instead, user code should open/read/write the file directly and handle
515
+ * the error raised if the file is not accessible.
516
+ * @since v10.0.0
517
+ * @param [mode=fs.constants.F_OK]
518
+ * @return Fulfills with `undefined` upon success.
519
+ */
520
+ function access(path: PathLike, mode?: number): Promise<void>;
521
+ /**
522
+ * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it
523
+ * already exists.
524
+ *
525
+ * No guarantees are made about the atomicity of the copy operation. If an
526
+ * error occurs after the destination file has been opened for writing, an attempt
527
+ * will be made to remove the destination.
528
+ *
529
+ * ```js
530
+ * import { copyFile, constants } from 'node:fs/promises';
531
+ *
532
+ * try {
533
+ * await copyFile('source.txt', 'destination.txt');
534
+ * console.log('source.txt was copied to destination.txt');
535
+ * } catch {
536
+ * console.error('The file could not be copied');
537
+ * }
538
+ *
539
+ * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
540
+ * try {
541
+ * await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
542
+ * console.log('source.txt was copied to destination.txt');
543
+ * } catch {
544
+ * console.error('The file could not be copied');
545
+ * }
546
+ * ```
547
+ * @since v10.0.0
548
+ * @param src source filename to copy
549
+ * @param dest destination filename of the copy operation
550
+ * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g.
551
+ * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`)
552
+ * @return Fulfills with `undefined` upon success.
553
+ */
554
+ function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise<void>;
555
+ /**
556
+ * Opens a `FileHandle`.
557
+ *
558
+ * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail.
559
+ *
560
+ * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented
561
+ * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains
562
+ * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams).
563
+ * @since v10.0.0
564
+ * @param [flags='r'] See `support of file system `flags``.
565
+ * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created.
566
+ * @return Fulfills with a {FileHandle} object.
567
+ */
568
+ function open(path: PathLike, flags?: string | number, mode?: Mode): Promise<FileHandle>;
569
+ /**
570
+ * Renames `oldPath` to `newPath`.
571
+ * @since v10.0.0
572
+ * @return Fulfills with `undefined` upon success.
573
+ */
574
+ function rename(oldPath: PathLike, newPath: PathLike): Promise<void>;
575
+ /**
576
+ * Truncates (shortens or extends the length) of the content at `path` to `len` bytes.
577
+ * @since v10.0.0
578
+ * @param [len=0]
579
+ * @return Fulfills with `undefined` upon success.
580
+ */
581
+ function truncate(path: PathLike, len?: number): Promise<void>;
582
+ /**
583
+ * Removes the directory identified by `path`.
584
+ *
585
+ * Using `fsPromises.rmdir()` on a file (not a directory) results in the
586
+ * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR` error on POSIX.
587
+ *
588
+ * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`.
589
+ * @since v10.0.0
590
+ * @return Fulfills with `undefined` upon success.
591
+ */
592
+ function rmdir(path: PathLike, options?: RmDirOptions): Promise<void>;
593
+ /**
594
+ * Removes files and directories (modeled on the standard POSIX `rm` utility).
595
+ * @since v14.14.0
596
+ * @return Fulfills with `undefined` upon success.
597
+ */
598
+ function rm(path: PathLike, options?: RmOptions): Promise<void>;
599
+ /**
600
+ * Asynchronously creates a directory.
601
+ *
602
+ * The optional `options` argument can be an integer specifying `mode` (permission
603
+ * and sticky bits), or an object with a `mode` property and a `recursive` property indicating whether parent directories should be created. Calling `fsPromises.mkdir()` when `path` is a directory
604
+ * that exists results in a
605
+ * rejection only when `recursive` is false.
606
+ *
607
+ * ```js
608
+ * import { mkdir } from 'node:fs/promises';
609
+ *
610
+ * try {
611
+ * const projectFolder = new URL('./test/project/', import.meta.url);
612
+ * const createDir = await mkdir(projectFolder, { recursive: true });
613
+ *
614
+ * console.log(`created ${createDir}`);
615
+ * } catch (err) {
616
+ * console.error(err.message);
617
+ * }
618
+ * ```
619
+ * @since v10.0.0
620
+ * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`.
621
+ */
622
+ function mkdir(
623
+ path: PathLike,
624
+ options: MakeDirectoryOptions & {
625
+ recursive: true;
626
+ },
627
+ ): Promise<string | undefined>;
628
+ /**
629
+ * Asynchronous mkdir(2) - create a directory.
630
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
631
+ * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
632
+ * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
633
+ */
634
+ function mkdir(
635
+ path: PathLike,
636
+ options?:
637
+ | Mode
638
+ | (MakeDirectoryOptions & {
639
+ recursive?: false | undefined;
640
+ })
641
+ | null,
642
+ ): Promise<void>;
643
+ /**
644
+ * Asynchronous mkdir(2) - create a directory.
645
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
646
+ * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders
647
+ * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`.
648
+ */
649
+ function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise<string | undefined>;
650
+ /**
651
+ * Reads the contents of a directory.
652
+ *
653
+ * The optional `options` argument can be a string specifying an encoding, or an
654
+ * object with an `encoding` property specifying the character encoding to use for
655
+ * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned
656
+ * will be passed as `Buffer` objects.
657
+ *
658
+ * If `options.withFileTypes` is set to `true`, the returned array will contain `fs.Dirent` objects.
659
+ *
660
+ * ```js
661
+ * import { readdir } from 'node:fs/promises';
662
+ *
663
+ * try {
664
+ * const files = await readdir(path);
665
+ * for (const file of files)
666
+ * console.log(file);
667
+ * } catch (err) {
668
+ * console.error(err);
669
+ * }
670
+ * ```
671
+ * @since v10.0.0
672
+ * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`.
673
+ */
674
+ function readdir(
675
+ path: PathLike,
676
+ options?:
677
+ | (ObjectEncodingOptions & {
678
+ withFileTypes?: false | undefined;
679
+ recursive?: boolean | undefined;
680
+ })
681
+ | BufferEncoding
682
+ | null,
683
+ ): Promise<string[]>;
684
+ /**
685
+ * Asynchronous readdir(3) - read a directory.
686
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
687
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
688
+ */
689
+ function readdir(
690
+ path: PathLike,
691
+ options:
692
+ | {
693
+ encoding: "buffer";
694
+ withFileTypes?: false | undefined;
695
+ recursive?: boolean | undefined;
696
+ }
697
+ | "buffer",
698
+ ): Promise<Buffer[]>;
699
+ /**
700
+ * Asynchronous readdir(3) - read a directory.
701
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
702
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
703
+ */
704
+ function readdir(
705
+ path: PathLike,
706
+ options?:
707
+ | (ObjectEncodingOptions & {
708
+ withFileTypes?: false | undefined;
709
+ recursive?: boolean | undefined;
710
+ })
711
+ | BufferEncoding
712
+ | null,
713
+ ): Promise<string[] | Buffer[]>;
714
+ /**
715
+ * Asynchronous readdir(3) - read a directory.
716
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
717
+ * @param options If called with `withFileTypes: true` the result data will be an array of Dirent.
718
+ */
719
+ function readdir(
720
+ path: PathLike,
721
+ options: ObjectEncodingOptions & {
722
+ withFileTypes: true;
723
+ recursive?: boolean | undefined;
724
+ },
725
+ ): Promise<Dirent[]>;
726
+ /**
727
+ * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is
728
+ * fulfilled with the`linkString` upon success.
729
+ *
730
+ * The optional `options` argument can be a string specifying an encoding, or an
731
+ * object with an `encoding` property specifying the character encoding to use for
732
+ * the link path returned. If the `encoding` is set to `'buffer'`, the link path
733
+ * returned will be passed as a `Buffer` object.
734
+ * @since v10.0.0
735
+ * @return Fulfills with the `linkString` upon success.
736
+ */
737
+ function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
738
+ /**
739
+ * Asynchronous readlink(2) - read value of a symbolic link.
740
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
741
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
742
+ */
743
+ function readlink(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
744
+ /**
745
+ * Asynchronous readlink(2) - read value of a symbolic link.
746
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
747
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
748
+ */
749
+ function readlink(path: PathLike, options?: ObjectEncodingOptions | string | null): Promise<string | Buffer>;
750
+ /**
751
+ * Creates a symbolic link.
752
+ *
753
+ * The `type` argument is only used on Windows platforms and can be one of `'dir'`, `'file'`, or `'junction'`. If the `type` argument is not a string, Node.js will
754
+ * autodetect `target` type and use `'file'` or `'dir'`. If the `target` does not
755
+ * exist, `'file'` will be used. Windows junction points require the destination
756
+ * path to be absolute. When using `'junction'`, the `target` argument will
757
+ * automatically be normalized to absolute path. Junction points on NTFS volumes
758
+ * can only point to directories.
759
+ * @since v10.0.0
760
+ * @param [type='null']
761
+ * @return Fulfills with `undefined` upon success.
762
+ */
763
+ function symlink(target: PathLike, path: PathLike, type?: string | null): Promise<void>;
764
+ /**
765
+ * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link,
766
+ * in which case the link itself is stat-ed, not the file that it refers to.
767
+ * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail.
768
+ * @since v10.0.0
769
+ * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`.
770
+ */
771
+ function lstat(
772
+ path: PathLike,
773
+ opts?: StatOptions & {
774
+ bigint?: false | undefined;
775
+ },
776
+ ): Promise<Stats>;
777
+ function lstat(
778
+ path: PathLike,
779
+ opts: StatOptions & {
780
+ bigint: true;
781
+ },
782
+ ): Promise<BigIntStats>;
783
+ function lstat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
784
+ /**
785
+ * @since v10.0.0
786
+ * @return Fulfills with the {fs.Stats} object for the given `path`.
787
+ */
788
+ function stat(
789
+ path: PathLike,
790
+ opts?: StatOptions & {
791
+ bigint?: false | undefined;
792
+ },
793
+ ): Promise<Stats>;
794
+ function stat(
795
+ path: PathLike,
796
+ opts: StatOptions & {
797
+ bigint: true;
798
+ },
799
+ ): Promise<BigIntStats>;
800
+ function stat(path: PathLike, opts?: StatOptions): Promise<Stats | BigIntStats>;
801
+ /**
802
+ * @since v19.6.0, v18.15.0
803
+ * @return Fulfills with the {fs.StatFs} object for the given `path`.
804
+ */
805
+ function statfs(
806
+ path: PathLike,
807
+ opts?: StatFsOptions & {
808
+ bigint?: false | undefined;
809
+ },
810
+ ): Promise<StatsFs>;
811
+ function statfs(
812
+ path: PathLike,
813
+ opts: StatFsOptions & {
814
+ bigint: true;
815
+ },
816
+ ): Promise<BigIntStatsFs>;
817
+ function statfs(path: PathLike, opts?: StatFsOptions): Promise<StatsFs | BigIntStatsFs>;
818
+ /**
819
+ * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail.
820
+ * @since v10.0.0
821
+ * @return Fulfills with `undefined` upon success.
822
+ */
823
+ function link(existingPath: PathLike, newPath: PathLike): Promise<void>;
824
+ /**
825
+ * If `path` refers to a symbolic link, then the link is removed without affecting
826
+ * the file or directory to which that link refers. If the `path` refers to a file
827
+ * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail.
828
+ * @since v10.0.0
829
+ * @return Fulfills with `undefined` upon success.
830
+ */
831
+ function unlink(path: PathLike): Promise<void>;
832
+ /**
833
+ * Changes the permissions of a file.
834
+ * @since v10.0.0
835
+ * @return Fulfills with `undefined` upon success.
836
+ */
837
+ function chmod(path: PathLike, mode: Mode): Promise<void>;
838
+ /**
839
+ * Changes the permissions on a symbolic link.
840
+ *
841
+ * This method is only implemented on macOS.
842
+ * @deprecated Since v10.0.0
843
+ * @return Fulfills with `undefined` upon success.
844
+ */
845
+ function lchmod(path: PathLike, mode: Mode): Promise<void>;
846
+ /**
847
+ * Changes the ownership on a symbolic link.
848
+ * @since v10.0.0
849
+ * @return Fulfills with `undefined` upon success.
850
+ */
851
+ function lchown(path: PathLike, uid: number, gid: number): Promise<void>;
852
+ /**
853
+ * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a
854
+ * symbolic link, then the link is not dereferenced: instead, the timestamps of
855
+ * the symbolic link itself are changed.
856
+ * @since v14.5.0, v12.19.0
857
+ * @return Fulfills with `undefined` upon success.
858
+ */
859
+ function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;
860
+ /**
861
+ * Changes the ownership of a file.
862
+ * @since v10.0.0
863
+ * @return Fulfills with `undefined` upon success.
864
+ */
865
+ function chown(path: PathLike, uid: number, gid: number): Promise<void>;
866
+ /**
867
+ * Change the file system timestamps of the object referenced by `path`.
868
+ *
869
+ * The `atime` and `mtime` arguments follow these rules:
870
+ *
871
+ * * Values can be either numbers representing Unix epoch time, `Date`s, or a
872
+ * numeric string like `'123456789.0'`.
873
+ * * If the value can not be converted to a number, or is `NaN`, `Infinity`, or `-Infinity`, an `Error` will be thrown.
874
+ * @since v10.0.0
875
+ * @return Fulfills with `undefined` upon success.
876
+ */
877
+ function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise<void>;
878
+ /**
879
+ * Determines the actual location of `path` using the same semantics as the `fs.realpath.native()` function.
880
+ *
881
+ * Only paths that can be converted to UTF8 strings are supported.
882
+ *
883
+ * The optional `options` argument can be a string specifying an encoding, or an
884
+ * object with an `encoding` property specifying the character encoding to use for
885
+ * the path. If the `encoding` is set to `'buffer'`, the path returned will be
886
+ * passed as a `Buffer` object.
887
+ *
888
+ * On Linux, when Node.js is linked against musl libc, the procfs file system must
889
+ * be mounted on `/proc` in order for this function to work. Glibc does not have
890
+ * this restriction.
891
+ * @since v10.0.0
892
+ * @return Fulfills with the resolved path upon success.
893
+ */
894
+ function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
895
+ /**
896
+ * Asynchronous realpath(3) - return the canonicalized absolute pathname.
897
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
898
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
899
+ */
900
+ function realpath(path: PathLike, options: BufferEncodingOption): Promise<Buffer>;
901
+ /**
902
+ * Asynchronous realpath(3) - return the canonicalized absolute pathname.
903
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
904
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
905
+ */
906
+ function realpath(
907
+ path: PathLike,
908
+ options?: ObjectEncodingOptions | BufferEncoding | null,
909
+ ): Promise<string | Buffer>;
910
+ /**
911
+ * Creates a unique temporary directory. A unique directory name is generated by
912
+ * appending six random characters to the end of the provided `prefix`. Due to
913
+ * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some
914
+ * platforms, notably the BSDs, can return more than six random characters, and
915
+ * replace trailing `X` characters in `prefix` with random characters.
916
+ *
917
+ * The optional `options` argument can be a string specifying an encoding, or an
918
+ * object with an `encoding` property specifying the character encoding to use.
919
+ *
920
+ * ```js
921
+ * import { mkdtemp } from 'node:fs/promises';
922
+ * import { join } from 'node:path';
923
+ * import { tmpdir } from 'node:os';
924
+ *
925
+ * try {
926
+ * await mkdtemp(join(tmpdir(), 'foo-'));
927
+ * } catch (err) {
928
+ * console.error(err);
929
+ * }
930
+ * ```
931
+ *
932
+ * The `fsPromises.mkdtemp()` method will append the six randomly selected
933
+ * characters directly to the `prefix` string. For instance, given a directory `/tmp`, if the intention is to create a temporary directory _within_ `/tmp`, the `prefix` must end with a trailing
934
+ * platform-specific path separator
935
+ * (`require('node:path').sep`).
936
+ * @since v10.0.0
937
+ * @return Fulfills with a string containing the file system path of the newly created temporary directory.
938
+ */
939
+ function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
940
+ /**
941
+ * Asynchronously creates a unique temporary directory.
942
+ * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
943
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
944
+ */
945
+ function mkdtemp(prefix: string, options: BufferEncodingOption): Promise<Buffer>;
946
+ /**
947
+ * Asynchronously creates a unique temporary directory.
948
+ * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory.
949
+ * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used.
950
+ */
951
+ function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
952
+ /**
953
+ * Asynchronously writes data to a file, replacing the file if it already exists. `data` can be a string, a buffer, an
954
+ * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface), or an
955
+ * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object.
956
+ *
957
+ * The `encoding` option is ignored if `data` is a buffer.
958
+ *
959
+ * If `options` is a string, then it specifies the encoding.
960
+ *
961
+ * The `mode` option only affects the newly created file. See `fs.open()` for more details.
962
+ *
963
+ * Any specified `FileHandle` has to support writing.
964
+ *
965
+ * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file
966
+ * without waiting for the promise to be settled.
967
+ *
968
+ * Similarly to `fsPromises.readFile` \- `fsPromises.writeFile` is a convenience
969
+ * method that performs multiple `write` calls internally to write the buffer
970
+ * passed to it. For performance sensitive code consider using `fs.createWriteStream()` or `filehandle.createWriteStream()`.
971
+ *
972
+ * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`.
973
+ * Cancelation is "best effort", and some amount of data is likely still
974
+ * to be written.
975
+ *
976
+ * ```js
977
+ * import { writeFile } from 'node:fs/promises';
978
+ * import { Buffer } from 'node:buffer';
979
+ *
980
+ * try {
981
+ * const controller = new AbortController();
982
+ * const { signal } = controller;
983
+ * const data = new Uint8Array(Buffer.from('Hello Node.js'));
984
+ * const promise = writeFile('message.txt', data, { signal });
985
+ *
986
+ * // Abort the request before the promise settles.
987
+ * controller.abort();
988
+ *
989
+ * await promise;
990
+ * } catch (err) {
991
+ * // When a request is aborted - err is an AbortError
992
+ * console.error(err);
993
+ * }
994
+ * ```
995
+ *
996
+ * Aborting an ongoing request does not abort individual operating
997
+ * system requests but rather the internal buffering `fs.writeFile` performs.
998
+ * @since v10.0.0
999
+ * @param file filename or `FileHandle`
1000
+ * @return Fulfills with `undefined` upon success.
1001
+ */
1002
+ function writeFile(
1003
+ file: PathLike | FileHandle,
1004
+ data:
1005
+ | string
1006
+ | NodeJS.ArrayBufferView
1007
+ | Iterable<string | NodeJS.ArrayBufferView>
1008
+ | AsyncIterable<string | NodeJS.ArrayBufferView>
1009
+ | Stream,
1010
+ options?:
1011
+ | (ObjectEncodingOptions & {
1012
+ mode?: Mode | undefined;
1013
+ flag?: OpenMode | undefined;
1014
+ /**
1015
+ * If all data is successfully written to the file, and `flush`
1016
+ * is `true`, `filehandle.sync()` is used to flush the data.
1017
+ * @default false
1018
+ */
1019
+ flush?: boolean | undefined;
1020
+ } & Abortable)
1021
+ | BufferEncoding
1022
+ | null,
1023
+ ): Promise<void>;
1024
+ /**
1025
+ * Asynchronously append data to a file, creating the file if it does not yet
1026
+ * exist. `data` can be a string or a `Buffer`.
1027
+ *
1028
+ * If `options` is a string, then it specifies the `encoding`.
1029
+ *
1030
+ * The `mode` option only affects the newly created file. See `fs.open()` for more details.
1031
+ *
1032
+ * The `path` may be specified as a `FileHandle` that has been opened
1033
+ * for appending (using `fsPromises.open()`).
1034
+ * @since v10.0.0
1035
+ * @param path filename or {FileHandle}
1036
+ * @return Fulfills with `undefined` upon success.
1037
+ */
1038
+ function appendFile(
1039
+ path: PathLike | FileHandle,
1040
+ data: string | Uint8Array,
1041
+ options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null,
1042
+ ): Promise<void>;
1043
+ /**
1044
+ * Asynchronously reads the entire contents of a file.
1045
+ *
1046
+ * If no encoding is specified (using `options.encoding`), the data is returned
1047
+ * as a `Buffer` object. Otherwise, the data will be a string.
1048
+ *
1049
+ * If `options` is a string, then it specifies the encoding.
1050
+ *
1051
+ * When the `path` is a directory, the behavior of `fsPromises.readFile()` is
1052
+ * platform-specific. On macOS, Linux, and Windows, the promise will be rejected
1053
+ * with an error. On FreeBSD, a representation of the directory's contents will be
1054
+ * returned.
1055
+ *
1056
+ * An example of reading a `package.json` file located in the same directory of the
1057
+ * running code:
1058
+ *
1059
+ * ```js
1060
+ * import { readFile } from 'node:fs/promises';
1061
+ * try {
1062
+ * const filePath = new URL('./package.json', import.meta.url);
1063
+ * const contents = await readFile(filePath, { encoding: 'utf8' });
1064
+ * console.log(contents);
1065
+ * } catch (err) {
1066
+ * console.error(err.message);
1067
+ * }
1068
+ * ```
1069
+ *
1070
+ * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a
1071
+ * request is aborted the promise returned is rejected with an `AbortError`:
1072
+ *
1073
+ * ```js
1074
+ * import { readFile } from 'node:fs/promises';
1075
+ *
1076
+ * try {
1077
+ * const controller = new AbortController();
1078
+ * const { signal } = controller;
1079
+ * const promise = readFile(fileName, { signal });
1080
+ *
1081
+ * // Abort the request before the promise settles.
1082
+ * controller.abort();
1083
+ *
1084
+ * await promise;
1085
+ * } catch (err) {
1086
+ * // When a request is aborted - err is an AbortError
1087
+ * console.error(err);
1088
+ * }
1089
+ * ```
1090
+ *
1091
+ * Aborting an ongoing request does not abort individual operating
1092
+ * system requests but rather the internal buffering `fs.readFile` performs.
1093
+ *
1094
+ * Any specified `FileHandle` has to support reading.
1095
+ * @since v10.0.0
1096
+ * @param path filename or `FileHandle`
1097
+ * @return Fulfills with the contents of the file.
1098
+ */
1099
+ function readFile(
1100
+ path: PathLike | FileHandle,
1101
+ options?:
1102
+ | ({
1103
+ encoding?: null | undefined;
1104
+ flag?: OpenMode | undefined;
1105
+ } & Abortable)
1106
+ | null,
1107
+ ): Promise<Buffer>;
1108
+ /**
1109
+ * Asynchronously reads the entire contents of a file.
1110
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
1111
+ * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
1112
+ * @param options An object that may contain an optional flag.
1113
+ * If a flag is not provided, it defaults to `'r'`.
1114
+ */
1115
+ function readFile(
1116
+ path: PathLike | FileHandle,
1117
+ options:
1118
+ | ({
1119
+ encoding: BufferEncoding;
1120
+ flag?: OpenMode | undefined;
1121
+ } & Abortable)
1122
+ | BufferEncoding,
1123
+ ): Promise<string>;
1124
+ /**
1125
+ * Asynchronously reads the entire contents of a file.
1126
+ * @param path A path to a file. If a URL is provided, it must use the `file:` protocol.
1127
+ * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically.
1128
+ * @param options An object that may contain an optional flag.
1129
+ * If a flag is not provided, it defaults to `'r'`.
1130
+ */
1131
+ function readFile(
1132
+ path: PathLike | FileHandle,
1133
+ options?:
1134
+ | (
1135
+ & ObjectEncodingOptions
1136
+ & Abortable
1137
+ & {
1138
+ flag?: OpenMode | undefined;
1139
+ }
1140
+ )
1141
+ | BufferEncoding
1142
+ | null,
1143
+ ): Promise<string | Buffer>;
1144
+ /**
1145
+ * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail.
1146
+ *
1147
+ * Creates an `fs.Dir`, which contains all further functions for reading from
1148
+ * and cleaning up the directory.
1149
+ *
1150
+ * The `encoding` option sets the encoding for the `path` while opening the
1151
+ * directory and subsequent read operations.
1152
+ *
1153
+ * Example using async iteration:
1154
+ *
1155
+ * ```js
1156
+ * import { opendir } from 'node:fs/promises';
1157
+ *
1158
+ * try {
1159
+ * const dir = await opendir('./');
1160
+ * for await (const dirent of dir)
1161
+ * console.log(dirent.name);
1162
+ * } catch (err) {
1163
+ * console.error(err);
1164
+ * }
1165
+ * ```
1166
+ *
1167
+ * When using the async iterator, the `fs.Dir` object will be automatically
1168
+ * closed after the iterator exits.
1169
+ * @since v12.12.0
1170
+ * @return Fulfills with an {fs.Dir}.
1171
+ */
1172
+ function opendir(path: PathLike, options?: OpenDirOptions): Promise<Dir>;
1173
+ /**
1174
+ * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory.
1175
+ *
1176
+ * ```js
1177
+ * const { watch } = require('node:fs/promises');
1178
+ *
1179
+ * const ac = new AbortController();
1180
+ * const { signal } = ac;
1181
+ * setTimeout(() => ac.abort(), 10000);
1182
+ *
1183
+ * (async () => {
1184
+ * try {
1185
+ * const watcher = watch(__filename, { signal });
1186
+ * for await (const event of watcher)
1187
+ * console.log(event);
1188
+ * } catch (err) {
1189
+ * if (err.name === 'AbortError')
1190
+ * return;
1191
+ * throw err;
1192
+ * }
1193
+ * })();
1194
+ * ```
1195
+ *
1196
+ * On most platforms, `'rename'` is emitted whenever a filename appears or
1197
+ * disappears in the directory.
1198
+ *
1199
+ * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`.
1200
+ * @since v15.9.0, v14.18.0
1201
+ * @return of objects with the properties:
1202
+ */
1203
+ function watch(
1204
+ filename: PathLike,
1205
+ options:
1206
+ | (WatchOptions & {
1207
+ encoding: "buffer";
1208
+ })
1209
+ | "buffer",
1210
+ ): AsyncIterable<FileChangeInfo<Buffer>>;
1211
+ /**
1212
+ * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.
1213
+ * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.
1214
+ * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.
1215
+ * If `encoding` is not supplied, the default of `'utf8'` is used.
1216
+ * If `persistent` is not supplied, the default of `true` is used.
1217
+ * If `recursive` is not supplied, the default of `false` is used.
1218
+ */
1219
+ function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable<FileChangeInfo<string>>;
1220
+ /**
1221
+ * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`.
1222
+ * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol.
1223
+ * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options.
1224
+ * If `encoding` is not supplied, the default of `'utf8'` is used.
1225
+ * If `persistent` is not supplied, the default of `true` is used.
1226
+ * If `recursive` is not supplied, the default of `false` is used.
1227
+ */
1228
+ function watch(
1229
+ filename: PathLike,
1230
+ options: WatchOptions | string,
1231
+ ): AsyncIterable<FileChangeInfo<string>> | AsyncIterable<FileChangeInfo<Buffer>>;
1232
+ /**
1233
+ * Asynchronously copies the entire directory structure from `src` to `dest`,
1234
+ * including subdirectories and files.
1235
+ *
1236
+ * When copying a directory to another directory, globs are not supported and
1237
+ * behavior is similar to `cp dir1/ dir2/`.
1238
+ * @since v16.7.0
1239
+ * @experimental
1240
+ * @param src source path to copy.
1241
+ * @param dest destination path to copy to.
1242
+ * @return Fulfills with `undefined` upon success.
1243
+ */
1244
+ function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise<void>;
1245
+ /**
1246
+ * Retrieves the files matching the specified pattern.
1247
+ */
1248
+ function glob(pattern: string | string[]): AsyncIterableIterator<string>;
1249
+ function glob(
1250
+ pattern: string | string[],
1251
+ opt: GlobOptionsWithFileTypes,
1252
+ ): AsyncIterableIterator<Dirent>;
1253
+ function glob(
1254
+ pattern: string | string[],
1255
+ opt: GlobOptionsWithoutFileTypes,
1256
+ ): AsyncIterableIterator<string>;
1257
+ function glob(
1258
+ pattern: string | string[],
1259
+ opt: GlobOptions,
1260
+ ): AsyncIterableIterator<Dirent> | AsyncIterableIterator<string>;
1261
+ }
1262
+ declare module "node:fs/promises" {
1263
+ export * from "fs/promises";
1264
+ }