{"_id":"poteto","_rev":"26-bfcea2da728a755626a6708bfc16dc3c","name":"poteto","dist-tags":{"latest":"0.9.3"},"versions":{"0.0.1":{"name":"poteto","version":"0.0.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["node","fetch","fs","URL","file","http"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.0.1","gitHead":"4bcef4ed1233f566af7aa3d6a7e5b9a24255add2","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-kowRcIIBMOAnNxJhPQsijiE+9gj6mPBGHsT3H8npPs/M43x0m8y+kWzQYsthotB+ynLpk6sEYkqMiU/IWhkn7Q==","shasum":"55da6dc60bc7dd93be2907ee35be7e028f0848f1","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.0.1.tgz","fileCount":8,"unpackedSize":49164,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDI+C3/fvNAdQffaP9JxQrvxKarRz4UvTq2UwwS6Me8HAiEAwenUv4VIErnXuPfTtPiOH9TQqfNMJc/QgMiFgBhrNSU="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.0.1_1692210660072_0.3845064909150351"},"_hasShrinkwrap":false},"0.0.2":{"name":"poteto","version":"0.0.2","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.0.2","gitHead":"f011d2328b4dbbcdfa0d53403668b50a5a1278d2","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-nCidoxQ5G+74ZFujpjYvJjw/cUW9Fdd3W3drFZtJaz/3Zkntd6iNU2xQxo4D7chj0f+oPdDlsWVTsQJZ8h9BAg==","shasum":"a19b21322a8d7196f449da5195a83c6a67078399","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.0.2.tgz","fileCount":9,"unpackedSize":54138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEYMVprCU1Euq5+bNpNOHkfrF2mHPDI3MoYoazKAk4nQIhAI3ipgODK8AhHJNqPgO2cSdzPQWyEJi1OyIasjLwneMm"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.0.2_1692221113067_0.31247812812617304"},"_hasShrinkwrap":false},"0.0.3":{"name":"poteto","version":"0.0.3","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.0.3","gitHead":"52e79669d5d7fbc2b496fff9a0cf39306f94e82a","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-x3kA1MNSNDwj6Qoyf16Qp9NIOrZs4ocgyXSKGQSYN6HaLlhvAe8BkUTAH9Vx/aHjoISOSkdiLhsKLCuW543Pug==","shasum":"fec117ee9d066a8b3045c7d37f3620e691e6841a","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.0.3.tgz","fileCount":13,"unpackedSize":57994,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0DMxSp4G9XnEXuXE1hsuV0pu4rTA5uA+JNpgPR1gvrwIgPd3yMJUscBY1KXL1VFvjviNWhnDiV2BuAVE6KBpF1xo="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.0.3_1692263923608_0.18744044929191284"},"_hasShrinkwrap":false},"0.0.4":{"name":"poteto","version":"0.0.4","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.0.4","gitHead":"f644a94737b1acc69692b673f197a580b9e932d6","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-K8+0bp8m0TO2pJVv/NDi88DYfHpyTC5zzMDSotHLc9KXKb8bzg3V7AlohnOWSUFKY05y04WsHu9jX4uttUQ/kw==","shasum":"a71c036c50d85e5e99f37749aa2358bf81b65589","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.0.4.tgz","fileCount":14,"unpackedSize":59531,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHOkw1zt5BfEQtcGTuIUv3za2tpYIPftwvBi6QABUYqAIhAOZxartIsZ+LWFT+6vb7wAs7gIG02fMOUOu4wUVsjfEU"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.0.4_1692278050913_0.7685866402946393"},"_hasShrinkwrap":false},"0.1.0":{"name":"poteto","version":"0.1.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.1.0","gitHead":"986503f8a384338469a246b2bfe121dc7b0748c4","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-OWAvfNpXoQbyMYGs3k2umzK/YuSIfL7WumDzdyblFYuqbj5XUNow06/Ulm0YBnXB2/GGc/dwUrnV8gWLor+tyw==","shasum":"cd8aa9ce2371bc7d5b12a4119fb7cf5da5bdc590","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.1.0.tgz","fileCount":14,"unpackedSize":63221,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4wcB4R0IF9g8G2DMSN9M8O83c/qwS/Qi40udh3BfF0gIgApqCNRFYmGibrDIDjl5PLRTi9vlsl3kQOm+/UzvVAuQ="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.1.0_1692370055061_0.8511508285131237"},"_hasShrinkwrap":false},"0.2.0":{"name":"poteto","version":"0.2.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.2.0","gitHead":"cc6db63198e3583784c21fda715ffd9d790b6129","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-jbymQEPwSopo2biFPPsaPOzojBU4iFfQ8scfvrU67cE2ijxo2whHPEpNYOMkzZZyebXis95+KckuGtrAiZIw4A==","shasum":"bf29f7aecda96c5049d4ddb7c611d09d08a9ba61","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.2.0.tgz","fileCount":15,"unpackedSize":65129,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICpcaVP3pze1g2vj+rF4anupwFRSys44sGhCUF4sPsw+AiEA5xf69N6Q2GZKr1YPVdTWclNGXoA1eZJPV4/sbLTDgs4="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.2.0_1692437926502_0.7125955580838126"},"_hasShrinkwrap":false},"0.2.1":{"name":"poteto","version":"0.2.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.2.1","gitHead":"72aee25f3b56aae9def5958288ab02c0743e300d","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-Usxgbc1Nz6w6zcQI74sIwSEFq9HBVzNfysmyZm64Zb6tUU5iec5Shf6PHseJPg4+whrGtTAawlAYY0gZlylSHQ==","shasum":"a0604a3095e60c167918e47717dc718669c7713f","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.2.1.tgz","fileCount":15,"unpackedSize":65171,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDE3vmfz4gtr01iwcK5t3FDp6zc56+jKZ9clcqfjrQiMAiBx2AVg0phFnqXZI65rW31oG46UMwXJ0G5Id5blWp55Mg=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.2.1_1692438779754_0.07500765112982477"},"_hasShrinkwrap":false},"0.2.2":{"name":"poteto","version":"0.2.2","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","_id":"poteto@0.2.2","gitHead":"ce0ebff4a3b0a0aa990a9ce44790e3ea56e3dd2b","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-MemvrDx5igdnAryeMhLynE01a+XyqPUBowsxzBxre86Y/0mxgl7BhnmfMAtgZBelOOTlZ7otezjFoAl5fpiP2A==","shasum":"bf2711cb1397c436c9fdef6b2b5554c4b5666df1","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.2.2.tgz","fileCount":16,"unpackedSize":65533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfBd/Ltzz78/+UDkLxNCTJyfCxHcih3mA6iF0J/3NoJwIgaH2LAMFWclRlDgAG+8zamMwBU1l8pD5TKyscV1WP9Io="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.2.2_1692441039257_0.624052300963102"},"_hasShrinkwrap":false},"0.3.0":{"name":"poteto","version":"0.3.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.3.0","gitHead":"70c275f60a8267fe85fe7228de555876fdd1c01f","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-LRVDo6SiOJQb4Ph6OfOxgqBaTdI01gNwFdzlE5pGpuOztiv6YHUFQcaP47mRhtCmBPVXDypwX9Rz0N7/gOxG9g==","shasum":"cea908691ae9b1daf8315a9ff992748a2a6f7d6c","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.3.0.tgz","fileCount":18,"unpackedSize":68291,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwmCziLt89rDRvhYRgvY+WMo2UT5N7sVxE0BsfdvBtrgIhAOt6W2ynek0u5HcX3qMszJjKqL2893AkmQoAu01Xqghk"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.3.0_1692458852322_0.5158739091127562"},"_hasShrinkwrap":false},"0.4.0":{"name":"poteto","version":"0.4.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.4.0","gitHead":"1811d58d7334e999fd052e3dd23824f9951b3876","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-tPNFC4m0CB+uKZs1c4cfBfmff4KP9qndtg/fjoOSHWdVsupFVuwQZ6pGOhwsv2B3RVjBm2CdrJKqNPg8S+NwFw==","shasum":"0dc67fd30214fa2cd173ace0c805fbc041108715","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.4.0.tgz","fileCount":18,"unpackedSize":69194,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDwrnpMtLwzFxtXOXAVlgdRTjGYSJ8BmFCT4H646CqlAIgUiSKmlwM0XB/mXVhCOopd5FYMOpL27YLDXz9zJGgs4M="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.4.0_1692469225508_0.9365038847504326"},"_hasShrinkwrap":false},"0.4.1":{"name":"poteto","version":"0.4.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.4.1","gitHead":"0c1c73611c8990f7624db02adaf584a5ce3bfe8e","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-XTQlMqBY/QyiJjgRVuwC9wDEcdAwRQXBPwRInjK74dmvuwBbi0Gh7h2WvbESRSjHeCr9waudUEuFO8kGZcI12g==","shasum":"98221ee3f21573ccf060963d8958c6e9045ccd77","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.4.1.tgz","fileCount":18,"unpackedSize":69486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHdhQfzbFHT+LeThUMumQYlMeotEt8A8a4mG6svOiW5xAiEAkDvyK9WDJDgEHLkKv09ELYIlTgNuDIPT3D4m7u/dyUM="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.4.1_1692470354290_0.23162831585084231"},"_hasShrinkwrap":false},"0.5.0":{"name":"poteto","version":"0.5.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.5.0","gitHead":"d650c84fa4c40244352c3a4b704528af2820afb2","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-XZLiD/NmPJAL/GnP6FR9+FleiAeqOPSLl130LTzD9VipUZBwXQCNCxDdNt8TN0ypryMRbZPhPWprL1U2H1suew==","shasum":"dbd54345308abf608488eda2cd9ce81ff8ca4984","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.5.0.tgz","fileCount":19,"unpackedSize":70053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQjC5eL/U986bHG4R+BUP2uTHkFaOthFakx+O/f50tPgIhAMldg+JYH21u6hmP3g593R9fza90k39WNSJNmD0ivb/c"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.5.0_1692526872766_0.8844822801172854"},"_hasShrinkwrap":false},"0.5.1":{"name":"poteto","version":"0.5.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.5.1","gitHead":"8553e9406960283de870c01f954c75877963dba4","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-F108UoRaM18BDnXB8pHT7/riwVFl7icnZj51ubW65bPY8qqvdIFw4RNDUqrFdcI7lVx+MOqYxPTc0l/RzqtZtQ==","shasum":"0fb31fc8023c76178b7b64108d2b3573a8e9f087","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.5.1.tgz","fileCount":20,"unpackedSize":71995,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEZmyVu80wO4nH2FnPb4sQf13TyFNWCiDImBWAIZrANRAiA7WovLxBfktaNNqpMdnwuBsfNHyIk42SQZcgyppUsvfA=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.5.1_1692537378908_0.40987210349858727"},"_hasShrinkwrap":false},"0.6.0":{"name":"poteto","version":"0.6.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":"./index.mjs","bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.6.0","gitHead":"4bdb1cb9a4c6d457c4c395b88c670f821d94fc92","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-xramhaWEMzFjfkAGPTDgKP/gSpqHEjPPZ/P3Al1U6DvLCOACT6DoT1XwMojHvxQNbwjxARxBKlG85FDcxU7xhA==","shasum":"73ad08f0133b0af5d0c68da46693c16bab5a0964","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.6.0.tgz","fileCount":25,"unpackedSize":74770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVJdShoAhou3IEKHBkd/yVcBqTwlxgjJN4sFa16373GQIhAJul3GhdXGA5/76x6AfbSe5SKeURM8jU0jkePxi/FEkY"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.6.0_1692797206689_0.8443945766112553"},"_hasShrinkwrap":false},"0.7.0":{"name":"poteto","version":"0.7.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","imports":{"#*":"./lib/*"},"exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.0","gitHead":"8d51c2973e97a9c2a72b50b62833d480c007f262","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-Zx/4gkRW2UDktbz01EXZg4zQa0TDrFqSFCF47V/p/2qRklKNZQrT2wNVMvHYs8cko7+Y155CIXg83SXaShzY7g==","shasum":"3882a169b5313aa1a19206d89f537402e9fb308c","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.0.tgz","fileCount":32,"unpackedSize":77077,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfenCXHhPXIESdI+HltiiFXGyDVchMbO6un/LMJrk/pAiBf156V+6g9WQMfyim4q87RyQUoNkFE5+CyZzRxEvCRRQ=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.0_1693055768842_0.6636602721760627"},"_hasShrinkwrap":false},"0.7.1":{"name":"poteto","version":"0.7.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","imports":{"#*":"./lib/*"},"exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.1","gitHead":"4ec76475894e10e37422a07a4a23950fddb8e5d4","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-my/g8jbuLbsXvrexAq5+lYpKJjwPDl/1V+xNplGR/a5ATM/v/0GE4iKe7YOIHDvR4keDFYcNMW+XodjBEYcewA==","shasum":"f2e27cfc7e938ad6dfa2431b7a9ce781650b63f3","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.1.tgz","fileCount":32,"unpackedSize":79182,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9mpU5kpv3ftsZls+DF/+yuMFIiDpgH3pZ0iMnjuX2WAiADgkgRx0bWJ8e3OG0mzs2KAtSNRCxjy8ec3/hzmBhJjA=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.1_1693059446170_0.5921130577623241"},"_hasShrinkwrap":false},"0.7.2":{"name":"poteto","version":"0.7.2","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","imports":{"#*":"./lib/*"},"exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.2","gitHead":"0e7907c98f6c6bb85bc5e84cd947006258a3330b","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-2lFWx93p06kT97K2x2ZnRyoKGC/BsZBtf0Rv0BIhiX9WSi0Brx0QmnAtMGrTPW3YV+8qzKgC8x65FnU7DoZBaw==","shasum":"2cf8b467d97e9b6d024f680d2b9664dc1ff6801e","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.2.tgz","fileCount":32,"unpackedSize":81017,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGlyHLENh4/Rb+gwMd97Rcq8uocHYX1KeH7A5JBUZBznAiBAuE8DIJkekEZQVnQq98I3K0OGSXiKZ9+0SBKgGvdybg=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.2_1693066282969_0.8331821090756903"},"_hasShrinkwrap":false},"0.7.3":{"name":"poteto","version":"0.7.3","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","imports":{"#*":"./lib/*"},"exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.3","gitHead":"b861d5d4225d1b77ef3286f24adcf63f980c4a72","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-oTXN63yaWuT0+eNiWTgJfk39V95UX1yzWckDUTf9Ktobt+AmUKyZFbHVPofiBjRPq9dE1cNLZxZ73oAV2rQMhQ==","shasum":"7491af54c3cd5a91188ea23d368c526e9cf9bcc5","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.3.tgz","fileCount":32,"unpackedSize":83401,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlfabDL5SFA3JnYT7PEj1+3Sid2HH/Jwj0NnNNB03qzQIgBiVxS9VlNwg0uYT098Am7Pn1t8vMdq4D+qkXjVkggJg="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.3_1693145669117_0.6539308216841402"},"_hasShrinkwrap":false},"0.7.4":{"name":"poteto","version":"0.7.4","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","imports":{"#*":"./lib/*"},"exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.4","gitHead":"6f5af0b7beaf8de44a7595b81c732bf884a3e0f4","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-JTeVOp6WfMD3YcPXszHsDGMJVBUuSNIvrcigrrHYL1mCax8ISVq5v9grwvLHouOfmjwE+af1nUQS6yYO81QCtg==","shasum":"fb406424f0f022de8afa592d1ff866560104495a","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.4.tgz","fileCount":32,"unpackedSize":83871,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJF1g67LiM217xbHqSDKLYzwTfAyCt9i57n6O+HeEneAIgDdO2Znv2JeStSKSlYLkJ/+5fK1c/UUsgAQC2EIOn2dI="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.4_1693211377246_0.9245146787347924"},"_hasShrinkwrap":false},"0.7.5":{"name":"poteto","version":"0.7.5","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.7.5","gitHead":"53ddf579e4fc8e2a3ad2b45245f40b207636c62c","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-yEj2EWS2LIqr9lS3f+hjd72WhnVsLAJO6t50mq4uVuBwkv7NYVZs15bPyuo3YxDn3zHvj8yptVSUkN3596IWKA==","shasum":"55c041d04dccc2a8d741818b14ffccc5084320e9","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.7.5.tgz","fileCount":32,"unpackedSize":83836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJZUANOr/l94ahaZn7ya3Ds1L+5BoWCf8FwEpDEpI9uAIhANGcfG0aL0VyvyY6/JWlhDxCbYorOVCJkEC4Tfhy44Dz"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.7.5_1693223555873_0.21721585976514546"},"_hasShrinkwrap":false},"0.8.1":{"name":"poteto","version":"0.8.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.8.1","gitHead":"fe4b786dac17e1f635536378c3d4bb22c563a554","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-RdKGRH15gWe1pYLz3irEGSlI5EPhn2NmMZcvg1BCWgR6uoKAmGNjom+/lteOeCYoeXb+gVMQoZfqXrgGdcKbbw==","shasum":"5f80fabe2c49bedfd0198847fe93efcafd6be7d1","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.8.1.tgz","fileCount":32,"unpackedSize":84139,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElFpH6HSJmDjYNU0VBJJccMedKh/bnSWh6g9IDxFR31AiEAh/1vu57Ba3DrzMHvC1TDhXCNzoZuMdpUIICYiNa/S80="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.8.1_1693238820041_0.7635129802179144"},"_hasShrinkwrap":false},"0.9.0":{"name":"poteto","version":"0.9.0","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.9.0","gitHead":"5db650f026ffee5e7a97963ec773d59c212e3088","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-euWYIU17aiyQCN5vprXhK+iwTBB4sjsi8pGyZvjI//BS676yyelxl1qRTL2v0J90KYS1uYZbK00hmZQxuQtbMA==","shasum":"c547fe3103faf922daea1d12f930b4b0733253d1","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.9.0.tgz","fileCount":33,"unpackedSize":85517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYKl7ioiZAV4stoxLidJzTD6BOgsUhfw6V/FCfddaNvAiEA6FS0FtjkkPCEV9Avy5p06QlR/6BD2UPkS4yy/G3cmMM="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.9.0_1693314751182_0.610025865132992"},"_hasShrinkwrap":false},"0.9.1":{"name":"poteto","version":"0.9.1","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.9.1","gitHead":"d9cff86197b1608cef4ac013c295cbd3369a701d","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-qd/SlUYcGYAvYuzrFWUUyReMVHYpZOn+AgkALKfcUQJFNYH3VuT21RekildzHDyf12TN4XAVUA4XgvnNpBdfYA==","shasum":"e20bbd1177d13d92f0472de66fa44891daa564b9","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.9.1.tgz","fileCount":33,"unpackedSize":85286,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBlFbjucKOgFQm8zeSwVLOevVDLT6OARVqDzjaA4F8DFAiAnvkQ9Zv6gn46bYVaXsMTxQ6NosVkVdgcBWt3kZLu1jA=="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.9.1_1693484803358_0.6856059985706819"},"_hasShrinkwrap":false},"0.9.2":{"name":"poteto","version":"0.9.2","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.9.2","gitHead":"a7d2b610f898caa3d46c088ec2772c1fc6e4bbdf","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-yONYhLZIi5X4iPPVhRDKIuR+I0ljFYorthn+3Rb/w227x8QrhX7gIBIlnrC9HEPvA6/E4UF3ZPGvzGBrIapAzw==","shasum":"dd40348c497eac1182c3ffffa6a41e4fb74f509f","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.9.2.tgz","fileCount":33,"unpackedSize":86406,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj6L0kyqD5Y6lVOOp0xfWrMmhKd5J9mZ08I9xhDDfBiwIhAJhjI20OLnLpAC6WivPcrPkb0TeR4p/5pI+xyIvgXal9"}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.9.2_1693807609793_0.8195325643482323"},"_hasShrinkwrap":false},"0.9.3":{"name":"poteto","version":"0.9.3","description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","type":"module","exports":{".":"./index.mjs","./factory":"./alt/factory.mjs","./internal":"./alt/internal.mjs","./polyfill":"./alt/polyfill.mjs","./ponyfill":"./alt/ponyfill.mjs"},"bin":{"poteto-cat":"bin/poteto-cat.mjs","poteto-dog":"bin/poteto-dog.mjs","poteto-ls":"bin/poteto-ls.mjs","poteto-put":"bin/poteto-put.mjs","poteto-rm":"bin/poteto-rm.mjs"},"private":false,"scripts":{"test":"node --test","lint":"eslint . --ext .mjs"},"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"license":"GPL-3.0-or-later","bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"homepage":"https://github.com/LiviaMedeiros/poteto#readme","devDependencies":{"eslint":"*"},"_id":"poteto@0.9.3","gitHead":"29f54fbf2a0791fe4b95ea2ee7f2d579cb1f0521","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-e83AJ9KXZOs5RFv96pnF4nAzDfnFkHBhbYAyCDXm15tocFZ4sw7EEyjMu9wry7mIApx6kBwMCFwm4tNiLLaZIg==","shasum":"95b9d361c11fdb9ddc5dc21e0f8f1a4c747306d2","tarball":"https://registry.npmjs.org/poteto/-/poteto-0.9.3.tgz","fileCount":33,"unpackedSize":89624,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1xZwzX1cQoXN+VEGxiEYSVRXoK2m6ixSe6zDuttjjrAiEA7TB16N5CcQecIRtxiMhblKt76GXoMw9ALMhoc8lBFJQ="}]},"_npmUser":{"name":"liviamedeiros","email":"livia@cirno.name"},"directories":{},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/poteto_0.9.3_1693841234468_0.7638952542822619"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-16T18:31:00.072Z","0.0.1":"2023-08-16T18:31:00.225Z","modified":"2023-09-04T15:27:14.799Z","0.0.2":"2023-08-16T21:25:13.243Z","0.0.3":"2023-08-17T09:18:43.821Z","0.0.4":"2023-08-17T13:14:11.172Z","0.1.0":"2023-08-18T14:47:35.264Z","0.2.0":"2023-08-19T09:38:46.691Z","0.2.1":"2023-08-19T09:52:59.977Z","0.2.2":"2023-08-19T10:30:39.431Z","0.3.0":"2023-08-19T15:27:32.492Z","0.4.0":"2023-08-19T18:20:25.819Z","0.4.1":"2023-08-19T18:39:14.535Z","0.5.0":"2023-08-20T10:21:12.969Z","0.5.1":"2023-08-20T13:16:19.180Z","0.6.0":"2023-08-23T13:26:46.903Z","0.7.0":"2023-08-26T13:16:09.062Z","0.7.1":"2023-08-26T14:17:26.448Z","0.7.2":"2023-08-26T16:11:23.167Z","0.7.3":"2023-08-27T14:14:29.360Z","0.7.4":"2023-08-28T08:29:37.439Z","0.7.5":"2023-08-28T11:52:36.101Z","0.8.0":"2023-08-28T16:03:53.103Z","0.8.1":"2023-08-28T16:07:00.224Z","0.9.0":"2023-08-29T13:12:31.421Z","0.9.1":"2023-08-31T12:26:43.527Z","0.9.2":"2023-09-04T06:06:50.022Z","0.9.3":"2023-09-04T15:27:14.629Z"},"maintainers":[{"name":"liviamedeiros","email":"livia@cirno.name"}],"description":"HTTP-alike fetch for FILE protocol, e.g. fetch('file:///usr/bin/node')","homepage":"https://github.com/LiviaMedeiros/poteto#readme","keywords":["nodejs","fetch","URL","http","fs","file","polyfill","ponyfill"],"repository":{"type":"git","url":"git+https://github.com/LiviaMedeiros/poteto.git"},"author":{"name":"LiviaMedeiros","email":"livia@cirno.name","url":"https://github.com/LiviaMedeiros"},"bugs":{"url":"https://github.com/LiviaMedeiros/poteto/issues"},"license":"GPL-3.0-or-later","readme":"[![GPLv3 License](https://img.shields.io/github/license/LiviaMedeiros/poteto)](https://github.com/LiviaMedeiros/poteto/blob/HEAD/LICENSE)\n[![npm](https://img.shields.io/npm/v/poteto.svg)](https://npmjs.com/package/poteto)\n[![Node.js CI](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-node-ci.yml/badge.svg)](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-node-ci.yml)\n[![Deno CI](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-deno-ci.yml/badge.svg)](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-deno-ci.yml)\n[![lint](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-lint.yml/badge.svg)](https://github.com/LiviaMedeiros/poteto/actions/workflows/github-lint.yml)\n\n# poteto\n\n`poteto` allows `fetch` to work with local files over non-standartized `file:` protocol.\n\nIt can work as `fetch` polyfill (setting [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) over [`globalThis.fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch) and [`globalThis.Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)) or as ponyfill (providing a separate drop-in replacements for them).\n\nIt can understand:\n\n- `URL` instance having `.protocol === 'file:'`\n- string or any other object with a stringifier, such as:\n  - absolute URL having `file` protocol, e.g. `file:///usr/bin/node`\n  - relative URL having `file` protocol, e.g. `file:file.ext`, `file:../subdir/file.ext` [^RelativeFileURL]\n  - relative URL, including:\n    - relative URL starting from directory or file name, e.g. `file.ext` or `subdir/file.ext`\n    - relative URL starting from `.`, e.g. `./file.ext` or `../subdir/file.ext`\n    - URL with absolute pathname starting from `/`, e.g. `/usr/bin/node`\n    - schemeless URL starting from `///`, e.g. `///usr/bin/node`\n    - empty string, which is equivalent to `file:` or `.`\n\n...and work with them in somewhat HTTP-compatible manner.\n\nRelative paths are resolved against CWD[^CWD].\n\nURLs that are normally supported by standard `fetch` are fetched like usual.\n\nZero dependencies. Can work with Node.js's builtin `fetch` or with user-provided implementation.\n\n[^RelativeFileURL]: Note that unary `URL` constructor in Node.js resolves these as absolute paths, i.e. `new URL('file:file.txt').href === new URL('file:./file.txt').href === new URL('file:../file.txt').href === 'file:///file.txt'`. But if `baseURL` is provided, it's interpreted as relative path.\n\n[^CWD]: Current Working Directory\n\n# Installation\n\n```console\n$ npm i poteto\n```\n\n# Usage\n\n```mjs\nimport poteto from 'poteto';\n\n// read files with GET\n{\n  const text = await poteto(import.meta.url).then(r => r.text());\n  const json = await poteto('node_modules/poteto/package.json').then(r => r.json());\n  const buffer = await poteto('/usr/bin/node').then(r => r.arrayBuffer());\n}\n\n// read files with READ in memory-efficient stream-based way\n{\n  const { body } = await poteto('/dev/urandom', { method: 'READ' });\n}\n\n// read file ranges and validate result using SRI\n{\n  const text = await poteto('./node_modules/poteto/LICENSE', {\n    headers: {\n      'Range': 'bytes=34264-34266,17303-17304,19991-19991',\n    },\n    integrity: 'sha512-pmndJoYi4kwRRbKcFCVXRnwT0nF/4d73zYKnqredfUIhfKddjRqL3Zbi+CjjkyMIX2e2HQEkV89kZeWdhj1MJQ==',\n  }).then(r => r.text());\n}\n\n// write files with PUT\n{\n  const { status } = await poteto('file:./new_file.txt', {\n    method: 'PUT',\n    body: 'new ifel contents',\n  });\n}\n\n// write partial file range with POST\n{\n  const { statusText } = await poteto('new_file.txt', {\n    method: 'POST',\n    body: 'fileUNUSED',\n    headers: {\n      'Range': 'bytes=4-7',\n    },\n  });\n}\n\n// write files with WRITE for no particular reason\n{\n  const potentialErrorMessage = await poteto('./new_file.txt', {\n    method: 'WRITE',\n    body: 'newer file contents',\n  }).then(r => r.text());\n}\n\n// append to files with APPEND\n{\n  const { ok } = await poteto('oops/../new_file.txt', {\n    method: 'APPEND',\n    body: '\\nbut wait, there is more\\n',\n  });\n}\n\n// list files and directories with LIST\n{\n  const filenames = await poteto('.', { method: 'LIST' }).then(r => r.json());\n}\n\n// get stats without reading the file with HEAD\n// (GET, READ and LIST also return fs stats)\n{\n  const { headers } = await poteto('file:package.json', { method: 'HEAD' });\n  const filesize = headers.get('Content-Length');\n  const mtimeHTTPdate = headers.get('Last-Modified');\n  const mtimeTemporal = new Temporal.Instant(headers.get('X-Poteto-MtimeNs'));\n}\n\n// make conditional request (also supports ETag and If-None-Match)\n{\n  const response = await poteto('file:///var/log/auth.log', {\n    headers: {\n      'If-Modified-Since': 'Wed, 07 Aug 2019 10:00:12 GMT',\n    },\n  });\n  const isNotModified = response.status === 304;\n}\n\n// get symlink destination using manual redirect\n{\n  const { headers } = await poteto('/etc/mtab', { redirect: 'manual' });\n  const location = headers.get('Location');\n}\n\n// get errors as JSON\n{\n  const errorInfo = await poteto('file:///non/existent/path', {\n    method: 'PUT',\n    body: 'some data',\n    headers: {\n      'Accept': 'application/json',\n    },\n  }).then(r => r.json());\n}\n\n// and do usual fetches transparently\n{\n  const response = await poteto('https://github.com/LiviaMedeiros/poteto', {\n    headers: {\n      'User-Agent': 'Poteto',\n    },\n  });\n}\n```\n\n# Methods\n\n## HTTP-alike methods\n\n### `GET`\n\nReads file. Supports [`If-Modified-Since`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since), [`If-Unmodified-Since`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since), [`If-None-Match`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match), [`If-Match`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match), [`Range`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range), and SRI[^SRI].\n\nReturns `HTTP 200` or `HTTP 206` and file body; or `HTTP 304`.\n\n### `HEAD`\n\nReturns [`fs.Stats`](https://nodejs.org/api/fs.html#class-fsstats) of file in headers. Note that `GET` also does it.\n\nReturns `HTTP 200` without body.\n\n### `DELETE`\n\nDeletes file or directory.\n\nReturns `HTTP 204`.\n\n### `POST` and `PUT`\n\nWrites request body to file. Supports [`Range`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range) header (only one range is allowed).\n\n`POST` opens file with `r+` flag while `PUT` uses `w+`. Which means:\n- `POST` can write partial file range in existing file without rewriting, but `PUT` will truncate the end and fill beginning with NUL bytes.\n- `PUT` will create new files or overwrite existing ones, but `POST` will return `HTTP 404` if the file doesn't exist yet.\n\nReturns `HTTP 201`.\n\n## POTETO methods\n\nThese are case-sensitive.\n\n### `APPEND`\n\nAppends request body to file.\n\nReturns `HTTP 201`.\n\n### `LIST`\n\nReads directory contents. Also gets [`fs.Stats`](https://nodejs.org/api/fs.html#class-fsstats) for the directory.\n\nReturns `HTTP 200` with JSON response, containing array of items. Subdirectory names will have trailing `/`.\n\n### `READ`\n\nReads file. See [Why there is `GET` and `READ`](#why-there-is-put-and-write).\n\nReturns `HTTP 200` and file body.\n\n### `WRITE`\n\nAlias to [`PUT`](#post-and-put).\n\nReturns `HTTP 201`.\n\n# Response headers\n\nThe following HTTP headers are supported:\n\n- `Server` with fixed value `poteto`\n- `Accept-Ranges` with fixed value `bytes`\n- `Date` with RFC 7231 date of forming the response headers\n- `Content-Length` with filesize in bytes if applicable\n- `Last-Modified` with RFC 7231 date of last file modification if applicable\n- `ETag` with weak entity tag if applicable [^ETag]\n\nPoteto-specific headers are be prefixed with `X-Poteto-` prefix. For example, filesize can be accessed via `X-Poteto-Size` header.\n\n[^ETag]: Weak [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) is calculated from device id, inode, filesize and last modification time. Length is variable.\n\n# Error handling\n\nIf there is an error and it's known, returned promise is resolved with `Response` having reasonable HTTP status. For example, `ENOENT` translates to `HTTP 404` and `EACCES` translates to `HTTP 403`.\n\nThe headers contain error information. If `Accept` header is `application/json`, the body will contain serialized error as JSON; otherwise, it will contain its `.message`.\n\nIf the error is unknown, returned promise is rejected with it.\n\n# Redirect handling\n\nIf `request.redirect === 'follow'` (default), symlinks will be quietly resolved.\n\nIf `request.redirect === 'error'`, returned promise will be rejected with `TypeError`.\n\nIf `request.redirect === 'manual'`, returned promise will be resolved with `HTTP 302` response with target URL in `Location` header.\n\n# Subpaths\n\nSubpath imports allow to add `poteto` to the project in different ways.\n\n## `poteto/polyfill`\n\n```mjs\nimport 'poteto/polyfill';\n\nawait fetch('/dev/null');\n(new Request('/dev/null')).url === 'file:///dev/null'\n```\nReplaces `globalThis.fetch` and `globalThis.Request` with proxies.\nConstructing `Request` with applicable URL results in regular `Request` instance but with fully-resolved `file:` URL.\nFor non-`file:` URLs, it works transparently.\n\n## `poteto/ponyfill`\n\n```mjs\nimport ponyfill from 'poteto/ponyfill';\nimport { fetch as potetoFetch, Request as PotetoRequest } from 'poteto/ponyfill';\n\nponyfill === potetoFetch;\n```\n\nProvides separate AsyncFunction `fetch` and Class `Request` that use `globalThis.fetch` and `globalThis.Request` internally but do not allow to indirectly mutate them.\n\n## `poteto/factory`\n\n```mjs\nimport { proxify, wrap } from 'poteto/factory';\n\nconst mutableFetch = proxify(fetch);\nconst independentFetch = wrap(fetch);\n```\n\n`proxify` allows to make poteto-like proxy around user-specified `fetch` function. This will use proxified `Request` internally.\n`wrap` returns a new function that will use user-specified `fetch` function as fallback for non-`file:` URLs. This will use `PotetoRequest` class that extends `Request`.\n\n## `poteto/internal`\n\n```mjs\nimport { methods, execute } from 'poteto/internal';\n\nmethods.set('HELLO', async (url, request) => new Response('WORLD'));\n\nawait execute(new Request('file:///dev/zero', { method: 'HELLO' }));\n```\n\nExposes internal Map `methods` and AsyncFunction `execute`.\n\n`methods` has methods in a form of functions that take the `URL` instance as first argument and `Request` instance as second. This was made for convenience, because `request.url` exposes string instead of `URL` instance.\n\n`execute(request[, url])` performs fetch using the methods map. Unlike in other imports, this one does not fallback for non-`file:` URL and executes request anyway. Optional `url` parameter allows to override first argument passing to the method.\n\n# Rationale\n\nSometimes we just want to be able to read local and remote files in the same manner.\nSome other languages have similar capabilities, for example, `file_get_contents()` in PHP can read files over http(s).\n\nSometimes we want to avoid explicitly using `node:fs` for trivial reading operation.\n\nSometimes we want convenience methods such as `response.json()`\n\nSometimes we don't want to switch context of thinking between `node:fs` and Fetch API.\n\nSometimes we have urlstring pointing on file instead of pathstring or `URL` instance.\n\nSometimes we have relative URL rather than relative path.\n\nSometimes we want to read a file requested by URL and have appropriate HTTP `Response` to return.\n\n# HTTP-alike `file:`\n\nRight now `file` protocol is not standartized, and HTTP entities such as status codes, headers and algorithms are not related to it.\n\nHowever, some projections such as `GET` => `read file`, `ENOENT` => `404 Not Found`, `Accept: application/json` => `return data as json` are intuitive enough to be implemented, so here we are.\n\n# CLI tools\n\nThere are a few things in `/bin/` that work as minimalistic examples.\n\n### `poteto-cat fileurl1[, fileurl2[, ...]]`\n\nWorks as [`cat(1)`](https://man7.org/linux/man-pages/man1/cat.1.html): reads files in order, concatenates and prints on the stdout.\n\nUses `GET` method (hence, can be used with `https:` URLs as is).\n\n### `poteto-dog fileurl1[, fileurl2[, ...]]`\n\nLike `poteto-cat`, but insane: reads everything in async, and prints chunks on the stdout as fast as it can. If there are multiple files, depending on I/O, they may partially diffuse.\n\nUses `READ` method (depending on web server, can be used with `https:` URLs, but not recommended).\n\n### `poteto-ls [dirurl1[, dirurl2[, ...]]]`\n\nWorks like recursive [`ls(1)`](https://man7.org/linux/man-pages/man1/ls.1.html): reads directories recursively, and outputs as pretty-printed JSON.\n\n<details>\n<summary>Example output</summary>\n\n```json\n// poteto-ls lib testdir\n{\n \"lib/\": [\n  \"constants.mjs\",\n  \"fs.mjs\",\n  \"generic.mjs\",\n  \"http.mjs\",\n  \"methods.mjs\",\n  \"poteto.mjs\",\n  \"request.mjs\",\n  \"sri.mjs\"\n ],\n \"testdir/\": [\n  \".keep\",\n  {\n   \"bin/\": [\n    \".keep\"\n   ]\n  },\n  {\n   \"redirect/\": [\n    \".keep\",\n    \"link1\",\n    \"link2\",\n    \"target\"\n   ]\n  },\n  {\n   \"sequence/\": [\n    \".keep\"\n   ]\n  }\n ]\n}\n```\n\n</details>\n\nUses `LIST` method, don't use on `https:` URLs.\n\n### `poteto-put fileurl`\n\nReads data from stdin and prints to file. Overwrites existing files, can create new files, can read from interactive (keyboard) input.\n\nUses `PUT` method, can be used with `https:` URL.\n\n### `poteto-rm fileurl1[, fileurl2[, ...]]`\n\nWorks like [`rm()`](https://man7.org/linux/man-pages/man1/rm.1.html): deletes files. Not recursive, not interactive.\n\nUses `DELETE` method, can be used with `https:` URLs.\n\n# FAQ\n\n## Why there is `GET` and `READ`\n\n`GET` loads the whole file in memory before responding. This might be significantly faster, but also means that getting 1Gb file will require >1Gb of memory to be used, no matter what.\n\nAlso `GET` supports `Range` header and SRI[^SRI], and might support other features that require checking file body (e.g. magic to determine `Content-Type`).\n\n`READ` is stream-based. If the file body might not be consumed, or consumed partially, or consumed chunk-by-chunk, it will not allocate unnecessarily big amounts of memory.\n\n~~Also `READ` leaks filehandles.~~\n\n[^SRI]: [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)\n\n## Why there is `PUT` and `WRITE`\n\nJust to mirror `GET` and `READ`. `PUT` is preferable.\n\n## Why is it called like that\n\nNo particular reason.\n\n## Can this be used in production\n\nWhy not, but be aware that there is no standard at the moment.\n\n# License\n\n[GPL-3.0-or-later](https://github.com/LiviaMedeiros/poteto/blob/HEAD/LICENSE)\n","readmeFilename":"README.md"}