initial commit

pull/1/head
Drake 1 year ago
commit 8a75b94439

1
.gitignore vendored

@ -0,0 +1 @@
wattpad-app*

@ -0,0 +1,5 @@
{
"deno.enable": true,
"deno.unstable": true,
"editor.formatOnSave": true
}

@ -0,0 +1,10 @@
# wattpad-deno
early library for accessing Wattpad using Deno
## Q&A
### Why?
Why not
### Docs?
The API *should* be pretty self-explanitory, if anything through deno.land's built in docs generator

@ -0,0 +1,7 @@
{
"fmt": {
"options": {
"indentWidth": 4
}
}
}

@ -0,0 +1,443 @@
{
"version": "2",
"remote": {
"https://deno.land/std@0.122.0/_util/assert.ts": "2f868145a042a11d5ad0a3c748dcf580add8a0dbc0e876eaa0026303a5488f58",
"https://deno.land/std@0.122.0/_util/os.ts": "dfb186cc4e968c770ab6cc3288bd65f4871be03b93beecae57d657232ecffcac",
"https://deno.land/std@0.122.0/fmt/colors.ts": "8368ddf2d48dfe413ffd04cdbb7ae6a1009cf0dccc9c7ff1d76259d9c61a0621",
"https://deno.land/std@0.122.0/path/_constants.ts": "1247fee4a79b70c89f23499691ef169b41b6ccf01887a0abd131009c5581b853",
"https://deno.land/std@0.122.0/path/_interface.ts": "1fa73b02aaa24867e481a48492b44f2598cd9dfa513c7b34001437007d3642e4",
"https://deno.land/std@0.122.0/path/_util.ts": "2e06a3b9e79beaf62687196bd4b60a4c391d862cfa007a20fc3a39f778ba073b",
"https://deno.land/std@0.122.0/path/common.ts": "f41a38a0719a1e85aa11c6ba3bea5e37c15dd009d705bd8873f94c833568cbc4",
"https://deno.land/std@0.122.0/path/glob.ts": "7bf2349e818e332a830f3d8874c3f45dd7580b6c742ed50dbf6282d84ab18405",
"https://deno.land/std@0.122.0/path/mod.ts": "4465dc494f271b02569edbb4a18d727063b5dbd6ed84283ff906260970a15d12",
"https://deno.land/std@0.122.0/path/posix.ts": "34349174b9cd121625a2810837a82dd8b986bbaaad5ade690d1de75bbb4555b2",
"https://deno.land/std@0.122.0/path/separator.ts": "8fdcf289b1b76fd726a508f57d3370ca029ae6976fcde5044007f062e643ff1c",
"https://deno.land/std@0.122.0/path/win32.ts": "11549e8c6df8307a8efcfa47ad7b2a75da743eac7d4c89c9723a944661c8bd2e",
"https://deno.land/std@0.153.0/_deno_unstable.ts": "4ddb8672d49d58b5bbc4a5a7a2f1b3bce4fd06aa4c8b8476728334391667de7b",
"https://deno.land/std@0.153.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
"https://deno.land/std@0.153.0/async/abortable.ts": "87aa7230be8360c24ad437212311c9e8d4328854baec27b4c7abb26e85515c06",
"https://deno.land/std@0.153.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0",
"https://deno.land/std@0.153.0/async/debounce.ts": "de5433bff08a2bb61416fc53b3bd2d5867090c8a815465e5b4a10a77495b1051",
"https://deno.land/std@0.153.0/async/deferred.ts": "c01de44b9192359cebd3fe93273fcebf9e95110bf3360023917da9a2d1489fae",
"https://deno.land/std@0.153.0/async/delay.ts": "d5a169caede8e1c5d46b3f25eab97db5fd1ab193fc82a53bafd3642ac42ca3c7",
"https://deno.land/std@0.153.0/async/mod.ts": "dd0a8ed4f3984ffabe2fcca7c9f466b7932d57b1864ffee148a5d5388316db6b",
"https://deno.land/std@0.153.0/async/mux_async_iterator.ts": "3447b28a2a582224a3d4d3596bccbba6e85040da3b97ed64012f7decce98d093",
"https://deno.land/std@0.153.0/async/pool.ts": "ef9eb97b388543acbf0ac32647121e4dbe629236899586c4d4311a8770fbb239",
"https://deno.land/std@0.153.0/async/tee.ts": "d27680d911816fcb3d231e16d690e7588079e66a9b2e5ce8cc354db94fdce95f",
"https://deno.land/std@0.153.0/bytes/bytes_list.ts": "aba5e2369e77d426b10af1de0dcc4531acecec27f9b9056f4f7bfbf8ac147ab4",
"https://deno.land/std@0.153.0/bytes/equals.ts": "3c3558c3ae85526f84510aa2b48ab2ad7bdd899e2e0f5b7a8ffc85acb3a6043a",
"https://deno.land/std@0.153.0/bytes/mod.ts": "763f97d33051cc3f28af1a688dfe2830841192a9fea0cbaa55f927b49d49d0bf",
"https://deno.land/std@0.153.0/fmt/colors.ts": "ff7dc9c9f33a72bd48bc24b21bbc1b4545d8494a431f17894dbc5fe92a938fc4",
"https://deno.land/std@0.153.0/io/buffer.ts": "8232dcd8c4c7f14b95f28444454ad63750267be23e0fd7f88320c68b0f87a3b5",
"https://deno.land/std@0.153.0/io/types.d.ts": "0cae3a62da7a37043661746c65c021058bae020b54e50c0e774916e5d4baee43",
"https://deno.land/std@0.153.0/node/_utils.ts": "6a695598008a7bdf820b0785f3bc2fcbedbb48803365ae787e523e05b182cf73",
"https://deno.land/std@0.153.0/node/perf_hooks.ts": "521454a3e74f0af6a2aad91fa59a22a2c7be19698106a0fbbbcf22ac33764105",
"https://deno.land/std@0.153.0/streams/conversion.ts": "fc4eb76a14148c43f0b85e903a5a1526391aa40ed9434dc21e34f88304eb823e",
"https://deno.land/std@0.153.0/testing/_diff.ts": "141f978a283defc367eeee3ff7b58aa8763cf7c8e0c585132eae614468e9d7b8",
"https://deno.land/std@0.153.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832",
"https://deno.land/std@0.153.0/testing/asserts.ts": "d6595cfc330b4233546a047a0d7d57940771aa9d97a172ceb91e84ae6200b3af",
"https://deno.land/std@0.157.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
"https://deno.land/std@0.157.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934",
"https://deno.land/std@0.157.0/encoding/hex.ts": "4cc5324417cbb4ac9b828453d35aed45b9cc29506fad658f1f138d981ae33795",
"https://deno.land/std@0.157.0/fmt/colors.ts": "ff7dc9c9f33a72bd48bc24b21bbc1b4545d8494a431f17894dbc5fe92a938fc4",
"https://deno.land/std@0.157.0/fs/_util.ts": "fdc156f897197f261a1c096dcf8ff9267ed0ff42bd5b31f55053a4763a4bae3b",
"https://deno.land/std@0.157.0/fs/copy.ts": "73bdf24f4322648d9bc38ef983b818637ba368351d17aa03644209d3ce3eac31",
"https://deno.land/std@0.157.0/fs/empty_dir.ts": "c15a0aaaf40f8c21cca902aa1e01a789ad0c2fd1b7e2eecf4957053c5dbf707f",
"https://deno.land/std@0.157.0/fs/ensure_dir.ts": "76395fc1c989ca8d2de3aedfa8240eb8f5225cde20f926de957995b063135b80",
"https://deno.land/std@0.157.0/fs/ensure_file.ts": "b8e32ea63aa21221d0219760ba3f741f682d7f7d68d0d24a3ec067c338568152",
"https://deno.land/std@0.157.0/fs/ensure_link.ts": "5cc1c04f18487d7d1edf4c5469705f30b61390ffd24ad7db6df85e7209b32bb2",
"https://deno.land/std@0.157.0/fs/ensure_symlink.ts": "5273557b8c50be69477aa9cb003b54ff2240a336db52a40851c97abce76b96ab",
"https://deno.land/std@0.157.0/fs/eol.ts": "b92f0b88036de507e7e6fbedbe8f666835ea9dcbf5ac85917fa1fadc919f83a5",
"https://deno.land/std@0.157.0/fs/exists.ts": "3661a679d9018338df5df7cd9fc7cd918f5e447e7304a5391f849a893ce24107",
"https://deno.land/std@0.157.0/fs/expand_glob.ts": "333a8b9b0726b6909e5af30fb99c68e5b0e734d37af8cbc2ad1f062f26ca4d50",
"https://deno.land/std@0.157.0/fs/mod.ts": "354a6f972ef4e00c4dd1f1339a8828ef0764c1c23d3c0010af3fcc025d8655b0",
"https://deno.land/std@0.157.0/fs/move.ts": "6d7fa9da60dbc7a32dd7fdbc2ff812b745861213c8e92ba96dace0669b0c378c",
"https://deno.land/std@0.157.0/fs/walk.ts": "d6c73a2a2fb5fde60150ce27cff3fff420e72e5bb84131b4919c9a41d74712ce",
"https://deno.land/std@0.157.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
"https://deno.land/std@0.157.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
"https://deno.land/std@0.157.0/path/_util.ts": "d16be2a16e1204b65f9d0dfc54a9bc472cafe5f4a190b3c8471ec2016ccd1677",
"https://deno.land/std@0.157.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633",
"https://deno.land/std@0.157.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee",
"https://deno.land/std@0.157.0/path/mod.ts": "56fec03ad0ebd61b6ab39ddb9b0ddb4c4a5c9f2f4f632e09dd37ec9ebfd722ac",
"https://deno.land/std@0.157.0/path/posix.ts": "c1f7afe274290ea0b51da07ee205653b2964bd74909a82deb07b69a6cc383aaa",
"https://deno.land/std@0.157.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9",
"https://deno.land/std@0.157.0/path/win32.ts": "bd7549042e37879c68ff2f8576a25950abbfca1d696d41d82c7bca0b7e6f452c",
"https://deno.land/std@0.161.0/fmt/colors.ts": "9e36a716611dcd2e4865adea9c4bec916b5c60caad4cdcdc630d4974e6bb8bd4",
"https://deno.land/std@0.161.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c",
"https://deno.land/std@0.161.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832",
"https://deno.land/std@0.161.0/testing/asserts.ts": "1e340c589853e82e0807629ba31a43c84ebdcdeca910c4a9705715dfdb0f5ce8",
"https://deno.land/std@0.167.0/fmt/colors.ts": "03ad95e543d2808bc43c17a3dd29d25b43d0f16287fe562a0be89bf632454a12",
"https://deno.land/std@0.167.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c",
"https://deno.land/std@0.167.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832",
"https://deno.land/std@0.167.0/testing/asserts.ts": "51353e79437361d4b02d8e32f3fc83b22231bc8f8d4c841d86fd32b0b0afe940",
"https://deno.land/std@0.170.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272",
"https://deno.land/std@0.170.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934",
"https://deno.land/std@0.170.0/node/_utils.ts": "1085a229e910b3a6672f3c3be05507591811dc67be2ae2188e9fc9ef4376b172",
"https://deno.land/std@0.170.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f",
"https://deno.land/std@0.170.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519",
"https://deno.land/std@0.170.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2",
"https://deno.land/std@0.170.0/node/internal_binding/uv.ts": "27922aaec43de314afd99dfca1ce8f4d51ced9f5195e4917b54d387766404f61",
"https://deno.land/std@0.170.0/node/perf_hooks.ts": "521454a3e74f0af6a2aad91fa59a22a2c7be19698106a0fbbbcf22ac33764105",
"https://deno.land/std@0.97.0/_util/assert.ts": "2f868145a042a11d5ad0a3c748dcf580add8a0dbc0e876eaa0026303a5488f58",
"https://deno.land/std@0.97.0/_util/os.ts": "e282950a0eaa96760c0cf11e7463e66babd15ec9157d4c9ed49cc0925686f6a7",
"https://deno.land/std@0.97.0/encoding/base64.ts": "eecae390f1f1d1cae6f6c6d732ede5276bf4b9cd29b1d281678c054dc5cc009e",
"https://deno.land/std@0.97.0/encoding/hex.ts": "f952e0727bddb3b2fd2e6889d104eacbd62e92091f540ebd6459317a61932d9b",
"https://deno.land/std@0.97.0/fs/_util.ts": "f2ce811350236ea8c28450ed822a5f42a0892316515b1cd61321dec13569c56b",
"https://deno.land/std@0.97.0/fs/ensure_dir.ts": "b7c103dc41a3d1dbbb522bf183c519c37065fdc234831a4a0f7d671b1ed5fea7",
"https://deno.land/std@0.97.0/fs/exists.ts": "b0d2e31654819cc2a8d37df45d6b14686c0cc1d802e9ff09e902a63e98b85a00",
"https://deno.land/std@0.97.0/hash/_wasm/hash.ts": "cb6ad1ab429f8ac9d6eae48f3286e08236d662e1a2e5cfd681ba1c0f17375895",
"https://deno.land/std@0.97.0/hash/_wasm/wasm.js": "94b1b997ae6fb4e6d2156bcea8f79cfcd1e512a91252b08800a92071e5e84e1a",
"https://deno.land/std@0.97.0/hash/hasher.ts": "57a9ec05dd48a9eceed319ac53463d9873490feea3832d58679df6eec51c176b",
"https://deno.land/std@0.97.0/hash/mod.ts": "5d032bd34186cda2f8d17fc122d621430953a6030d4b3f11172004715e3e2441",
"https://deno.land/std@0.97.0/path/_constants.ts": "1247fee4a79b70c89f23499691ef169b41b6ccf01887a0abd131009c5581b853",
"https://deno.land/std@0.97.0/path/_interface.ts": "1fa73b02aaa24867e481a48492b44f2598cd9dfa513c7b34001437007d3642e4",
"https://deno.land/std@0.97.0/path/_util.ts": "2e06a3b9e79beaf62687196bd4b60a4c391d862cfa007a20fc3a39f778ba073b",
"https://deno.land/std@0.97.0/path/common.ts": "eaf03d08b569e8a87e674e4e265e099f237472b6fd135b3cbeae5827035ea14a",
"https://deno.land/std@0.97.0/path/glob.ts": "314ad9ff263b895795208cdd4d5e35a44618ca3c6dd155e226fb15d065008652",
"https://deno.land/std@0.97.0/path/mod.ts": "4465dc494f271b02569edbb4a18d727063b5dbd6ed84283ff906260970a15d12",
"https://deno.land/std@0.97.0/path/posix.ts": "f56c3c99feb47f30a40ce9d252ef6f00296fa7c0fcb6dd81211bdb3b8b99ca3b",
"https://deno.land/std@0.97.0/path/separator.ts": "8fdcf289b1b76fd726a508f57d3370ca029ae6976fcde5044007f062e643ff1c",
"https://deno.land/std@0.97.0/path/win32.ts": "77f7b3604e0de40f3a7c698e8a79e7f601dc187035a1c21cb1e596666ce112f8",
"https://deno.land/x/another_cookiejar@v5.0.1/cookie.ts": "2be7548d01a3a9df97deb187761a843a77fd824057478919abf1e1e89ae1eb2e",
"https://deno.land/x/another_cookiejar@v5.0.1/cookie_jar.ts": "e47d7b2c608bcd9600fd26825b600946f16ae167216cea71935049188d2fc6d1",
"https://deno.land/x/another_cookiejar@v5.0.1/fetch_wrapper.ts": "4fbca1e77383cf7da4703798e06a1129b21120f4d01c3a4c0801674dd7b6d53b",
"https://deno.land/x/another_cookiejar@v5.0.1/mod.ts": "eff949014965771f2cd447fe78625a1ad28b59333afa40640f02c0922534d89a",
"https://deno.land/x/axiod@0.26.2/helpers.ts": "467f2ca75608f368c8092e800eab0d6d79b3fa42346372be62a5b93acf50fe7e",
"https://deno.land/x/axiod@0.26.2/interfaces.ts": "1b5a7b70b1e7faecd2f251ad080bd87188fba585e2de667af472c4d72abf636e",
"https://deno.land/x/axiod@0.26.2/mod.ts": "1175ec90a040d764b9940753f8d8e3f37a2328a0536eed48e411a8f1a3e9e5cb",
"https://deno.land/x/axiod@0.26.2/mods/url-join.ts": "c925b2dd0bd490093d084bd4c74a9502260e014d5e760a4951b3e7c8ab3ca43f",
"https://deno.land/x/cache@0.2.13/cache.ts": "4005aad54fb9aac9ff02526ffa798032e57f2d7966905fdeb7949263b1c95f2f",
"https://deno.land/x/cache@0.2.13/deps.ts": "6f14e76a1a09f329e3f3830c6e72bd10b53a89a75769d5ea886e5d8603e503e6",
"https://deno.land/x/cache@0.2.13/directories.ts": "ef48531cab3f827252e248596d15cede0de179a2fb15392ae24cf8034519994f",
"https://deno.land/x/cache@0.2.13/file.ts": "5abe7d80c6ac594c98e66eb4262962139f48cd9c49dbe2a77e9608760508a09a",
"https://deno.land/x/cache@0.2.13/file_fetcher.ts": "5c793cc83a5b9377679ec313b2a2321e51bf7ed15380fa82d387f1cdef3b924f",
"https://deno.land/x/cache@0.2.13/helpers.ts": "d1545d6432277b7a0b5ea254d1c51d572b6452a8eadd9faa7ad9c5586a1725c4",
"https://deno.land/x/cache@0.2.13/mod.ts": "3188250d3a013ef6c9eb060e5284cf729083af7944a29e60bb3d8597dd20ebcd",
"https://deno.land/x/deno_dom@v0.1.36-alpha/build/deno-wasm/deno-wasm.js": "3fa41dba4813e6d4b024a53a146b76e1afcbdf218fc02063442378c61239ed14",
"https://deno.land/x/deno_dom@v0.1.36-alpha/deno-dom-native.ts": "7c350b149092f5ff094faf599c2541373a756ccab929832199958ec0e321f90a",
"https://deno.land/x/deno_dom@v0.1.36-alpha/deno-dom-wasm.ts": "bfd999a493a6974e9fca4d331bee03bfb68cfc600c662cd0b48b21d67a2a8ba0",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/api.ts": "0ff5790f0a3eeecb4e00b7d8fbfa319b165962cf6d0182a65ba90f158d74f7d7",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/constructor-lock.ts": "59714df7e0571ec7bd338903b1f396202771a6d4d7f55a452936bd0de9deb186",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/deserialize.ts": "f4d34514ca00473ca428b69ad437ba345925744b5d791cb9552e2d7a0e7b0439",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/document-fragment.ts": "a40c6e18dd0efcf749a31552c1c9a6f7fa614452245e86ee38fc92ba0235e5ae",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/document.ts": "b8f4e4ccabaaa063d6562a0f2f8dea9c0419515d63d8bd79bfde95f7cd64bd93",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/dom-parser.ts": "609097b426f8c2358f3e5d2bca55ed026cf26cdf86562e94130dfdb0f2537f92",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/element.ts": "4a267c24d0e20b70741a14ab371a7511a4f3db682d3a1d229adaa66a46445fff",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/elements/html-template-element.ts": "19ad97c55222115e8daaca2788b9c98cc31a7f9d2547ed5bca0c56a4a12bfec8",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/html-collection.ts": "ae90197f5270c32074926ad6cf30ee07d274d44596c7e413c354880cebce8565",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/node-list.ts": "4c6e4b4585301d4147addaccd90cb5f5a80e8d6290a1ba7058c5e3dfea16e15d",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/node.ts": "3069e6fc93ac4111a136ed68199d76673339842b9751610ba06f111ba7dc10a7",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/custom-api.ts": "852696bd58e534bc41bd3be9e2250b60b67cd95fd28ed16b1deff1d548531a71",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/nwsapi-types.ts": "c43b36c36acc5d32caabaa54fda8c9d239b2b0fcbce9a28efb93c84aa1021698",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/nwsapi.js": "985d7d8fc1eabbb88946b47a1c44c1b2d4aa79ff23c21424219f1528fa27a2ff",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/selectors.ts": "83eab57be2290fb48e3130533448c93c6c61239f2a2f3b85f1917f80ca0fdc75",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/sizzle-types.ts": "78149e2502409989ce861ed636b813b059e16bc267bb543e7c2b26ef43e4798b",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/selectors/sizzle.js": "c3aed60c1045a106d8e546ac2f85cc82e65f62d9af2f8f515210b9212286682a",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/utils-types.ts": "96db30e3e4a75b194201bb9fa30988215da7f91b380fca6a5143e51ece2a8436",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/utils.ts": "ecd889ba74f3ce282620d8ca1d4d5e0365e6cc86101d2352f3bbf936ae496e2c",
"https://deno.land/x/deno_dom@v0.1.36-alpha/src/parser.ts": "b65eb7e673fa7ca611de871de109655f0aa9fa35ddc1de73df1a5fc2baafc332",
"https://deno.land/x/plug@0.5.2/deps.ts": "0f53866f60dc4f89bbc3be9d096f7501f2068a51923db220f43f0ad284b6b892",
"https://deno.land/x/plug@0.5.2/mod.ts": "ca0f207510399c27ed1d38b4c4a2d9389f1d69a0213d836fdd2418779b331251",
"https://deno.land/x/plug@0.5.2/plug.ts": "e495c772bc3b19eb30d820bb83f1b75f6047e3009e19d9a5d81dbe68ca642fd9",
"https://deno.land/x/plug@1.0.0-rc.3/deps.ts": "ea73ca429e71624fdae0fe9393fe5056b9404d058ef45688eda4150112cf85d3",
"https://deno.land/x/plug@1.0.0-rc.3/download.ts": "81d1aef0595e018514f1d70a5c52b0267d81685e2dccb5459f8427b29f3f3736",
"https://deno.land/x/plug@1.0.0-rc.3/mod.ts": "6db7edf982efedf8c9e1002754fbb109c22201fd8fb89ba715fe70171b5e821c",
"https://deno.land/x/plug@1.0.0-rc.3/types.ts": "d8eb738fc6ed883e6abf77093442c2f0b71af9090f15c7613621d4039e410ee1",
"https://deno.land/x/plug@1.0.0-rc.3/util.ts": "e53018a487292d11036efeae9da81eb82ef47f9e53d0ba83f545b0220350155a",
"https://deno.land/x/url_join@1.0.0/mod.ts": "d3c7007e3ab15594e54d5b90dce623b3e274a726e0cdf57858e7ecab77a0166c",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/build/deno-wasm/deno-wasm.js": "3fa41dba4813e6d4b024a53a146b76e1afcbdf218fc02063442378c61239ed14",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/deno-dom-native.ts": "69e7714229512f47b2049a2c81e39830499ecb105e9741908a935a24f281618b",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/deno-dom-wasm.ts": "bfd999a493a6974e9fca4d331bee03bfb68cfc600c662cd0b48b21d67a2a8ba0",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/api.ts": "0ff5790f0a3eeecb4e00b7d8fbfa319b165962cf6d0182a65ba90f158d74f7d7",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/constructor-lock.ts": "59714df7e0571ec7bd338903b1f396202771a6d4d7f55a452936bd0de9deb186",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/deserialize.ts": "f4d34514ca00473ca428b69ad437ba345925744b5d791cb9552e2d7a0e7b0439",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/document-fragment.ts": "a40c6e18dd0efcf749a31552c1c9a6f7fa614452245e86ee38fc92ba0235e5ae",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/document.ts": "bcb96378097106d82e0d1a356496baea1b73f92dd7d492e6ed655016025665df",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/dom-parser.ts": "609097b426f8c2358f3e5d2bca55ed026cf26cdf86562e94130dfdb0f2537f92",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/element.ts": "312ae401081e6ce11cf62a854c0f78388e4be46579c1fdd9c1d118bc9c79db38",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/elements/html-template-element.ts": "19ad97c55222115e8daaca2788b9c98cc31a7f9d2547ed5bca0c56a4a12bfec8",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/html-collection.ts": "ae90197f5270c32074926ad6cf30ee07d274d44596c7e413c354880cebce8565",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/node-list.ts": "4c6e4b4585301d4147addaccd90cb5f5a80e8d6290a1ba7058c5e3dfea16e15d",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/node.ts": "3069e6fc93ac4111a136ed68199d76673339842b9751610ba06f111ba7dc10a7",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/custom-api.ts": "852696bd58e534bc41bd3be9e2250b60b67cd95fd28ed16b1deff1d548531a71",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/nwsapi-types.ts": "c43b36c36acc5d32caabaa54fda8c9d239b2b0fcbce9a28efb93c84aa1021698",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/nwsapi.js": "985d7d8fc1eabbb88946b47a1c44c1b2d4aa79ff23c21424219f1528fa27a2ff",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/selectors.ts": "83eab57be2290fb48e3130533448c93c6c61239f2a2f3b85f1917f80ca0fdc75",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/sizzle-types.ts": "78149e2502409989ce861ed636b813b059e16bc267bb543e7c2b26ef43e4798b",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/selectors/sizzle.js": "c3aed60c1045a106d8e546ac2f85cc82e65f62d9af2f8f515210b9212286682a",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/utils-types.ts": "96db30e3e4a75b194201bb9fa30988215da7f91b380fca6a5143e51ece2a8436",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/dom/utils.ts": "ecd889ba74f3ce282620d8ca1d4d5e0365e6cc86101d2352f3bbf936ae496e2c",
"https://denopkg.dev/gh/Ruthenic/deno-dom@master/src/parser.ts": "b65eb7e673fa7ca611de871de109655f0aa9fa35ddc1de73df1a5fc2baafc332",
"https://esm.sh/linkedom@0.14.19": "a96fc473ebd724245a97d4800cbcf496b7ddd531af808962660a88b97793d893",
"https://esm.sh/linkedom@0.14.21/cached": "1552ee98e2ed95e87c09027b389958900a8438ca81507695728b8b9550231c00",
"https://esm.sh/v102/boolbase@1.0.0/deno/boolbase.js": "c2de9c6051e43e825cebf96303dccc8c84d84db898ee48f19cb64a52df887f31",
"https://esm.sh/v102/canvas@2.11.0/deno/canvas.js": "ba8bb6858d36755f3af3f5bdbfa10c6a838b299aa02c82324a61621cbe35fd9c",
"https://esm.sh/v102/css-select@5.1.0/deno/css-select.js": "a49ee3c29bce78fce1557e270017dd62888c89027aaf362da7005374b383b337",
"https://esm.sh/v102/css-what@6.1.0/deno/css-what.js": "b748f3252b086c97e0acf4dcb786fd65e786d9c269e095a6454bbc9cd64bcfe3",
"https://esm.sh/v102/cssom@0.5.0/deno/cssom.js": "7e95364494c05d636ba66d7a2bfaddfa9a2b0de1b53e9dc54ff7073451bba060",
"https://esm.sh/v102/dom-serializer@2.0.0/deno/dom-serializer.js": "7b619bd86ce1a05b485fa4cbbd4d0b9032bfef77ee044ec3a36b62739ebed7af",
"https://esm.sh/v102/domelementtype@2.3.0/deno/domelementtype.js": "2bbc5ada9929825ac019e137ffdb26fcf04e3eaccaf0e8d6786cd1b8bb8b8f63",
"https://esm.sh/v102/domhandler@5.0.3/deno/domhandler.js": "cf188b785084294631e5dbc6edfda23be1eb3fff095282537ae55225114395e8",
"https://esm.sh/v102/domutils@3.0.1/deno/domutils.js": "b27f8aa0607c839757013be7f35beecb6825457d383cf87f4903148175d6aab5",
"https://esm.sh/v102/entities@4.4.0/deno/entities.js": "ecd597a9def9f23216f11eb50f806d1c9afc634a882891e4b7596513766a50be",
"https://esm.sh/v102/entities@4.4.0/deno/lib/decode.js": "899639d51d3861f1dae620e9dfa4b8ca1651d34a1c9465dcfd7226dba31c2459",
"https://esm.sh/v102/entities@4.4.0/deno/lib/escape.js": "3046762ed5a3ccdbb174c5595b1c15d3c0bde7e897130434d0dfca63a1af1aea",
"https://esm.sh/v102/htmlparser2@8.0.1/deno/htmlparser2.js": "500441e6c34b3d5dca24d12a23d461085c6770d24708718829b6617b9a4c9084",
"https://esm.sh/v102/linkedom@0.14.21/cached~.d.ts": "854cdc32752c20a63ea380b17a93c803d6d1e06fa939fdc231732a7b35e8a906",
"https://esm.sh/v102/linkedom@0.14.21/deno/cached.js": "2d5f7dadf0b6c492e8997031bd7682f0a92d4f06989f2cc702777939899e0a65",
"https://esm.sh/v102/nth-check@2.1.1/deno/nth-check.js": "a7aa78a04c30f4cddecb2f157b46b3b996e7589f3c817fcdcf5bcc403649c67e",
"https://esm.sh/v102/uhyphen@0.1.0/deno/uhyphen.js": "05a78ded7abcd93e04fed282d654f9fa316f8a576753a9c79a9b150d531821ea",
"https://esm.sh/v96/boolbase@1.0.0/deno/boolbase.js": "c2de9c6051e43e825cebf96303dccc8c84d84db898ee48f19cb64a52df887f31",
"https://esm.sh/v96/canvas@2.10.1/deno/canvas.js": "44b5ad0c70281fbf1ca4fafde5cda71d165827dbc8802b9c6cbb38cf97233394",
"https://esm.sh/v96/css-select@5.1.0/deno/css-select.js": "a766f5ee925e10ac94c0052c0368e2a5fc13987221616e7b1b0056a1747d1d7a",
"https://esm.sh/v96/css-what@6.1.0/deno/css-what.js": "b748f3252b086c97e0acf4dcb786fd65e786d9c269e095a6454bbc9cd64bcfe3",
"https://esm.sh/v96/cssom@0.5.0/deno/cssom.js": "7e95364494c05d636ba66d7a2bfaddfa9a2b0de1b53e9dc54ff7073451bba060",
"https://esm.sh/v96/dom-serializer@2.0.0/deno/dom-serializer.js": "ebe65563995bb49e5e54be0cbb971e265f10c9c24bb050d131b7b3c6182331c3",
"https://esm.sh/v96/domelementtype@2.3.0/deno/domelementtype.js": "2bbc5ada9929825ac019e137ffdb26fcf04e3eaccaf0e8d6786cd1b8bb8b8f63",
"https://esm.sh/v96/domhandler@5.0.3/deno/domhandler.js": "4440785feffcb09a799691bfbd75718071f02631095f768571533f0515c033aa",
"https://esm.sh/v96/domutils@3.0.1/deno/domutils.js": "c82f83e472a51f46a57b3239d140df1fecb09c00d6b96faa906b7a0dd3b3a261",
"https://esm.sh/v96/entities@4.4.0/deno/entities.js": "05161bf9af2902fe664003cf33daaf2fbf0068de6b2c4db1239c0cb883bfd0db",
"https://esm.sh/v96/entities@4.4.0/deno/lib/decode.js": "899639d51d3861f1dae620e9dfa4b8ca1651d34a1c9465dcfd7226dba31c2459",
"https://esm.sh/v96/entities@4.4.0/deno/lib/escape.js": "3046762ed5a3ccdbb174c5595b1c15d3c0bde7e897130434d0dfca63a1af1aea",
"https://esm.sh/v96/htmlparser2@8.0.1/deno/htmlparser2.js": "be465a6dfc67caf8e6447b3803de14bdc1917151b24be07d6d84099fecb8e110",
"https://esm.sh/v96/linkedom@0.14.19/deno/linkedom.js": "0a0470f1f3bacc7ebe03dc873e086756279e786489b22cba5da70af0718172a3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/dom/parser.d.ts": "c60ecc623dd93910a50668a20b55f1d9ad5caa23af936a7f59a478e23467492e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/anchor-element.d.ts": "8bcaf1ecf73af8bacb5cb382a1b75c1641175ba740d9d97c4d1d7c85e392d548",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/area-element.d.ts": "4765fbd1d58f74eea1cbf9da977cf0ec6ac4794fe749e6ac5ba42835bf38fb5e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/audio-element.d.ts": "70f90797244ac0d7f1d7217a4cf5d084ce9c5a452778fe6bfbfc13f385735871",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/base-element.d.ts": "ed768f82ae3bf6c4c5f1df97f011ebf77524799fed2e533e50f8b7276e183ffa",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/body-element.d.ts": "5e9c88404224db99e0360df2928c73a1f89a92a10d6702bdd8575192055d20c6",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/br-element.d.ts": "321ac70ae41868699160733c1e0c04fec51eb906ee6d4c9a9ef94df637ee83f3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/button-element.d.ts": "89487823edff51acb77bf8c0ae8bccd8d0573c509804affc49d3caa322903998",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/canvas-element.d.ts": "6d4ae26166480992fc5ab74dab48f639cb5268c76d8997bc754df5b1f2ad3ce5",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/d-list-element.d.ts": "a7a2e26ced2012dbdfcdeec871b4d82bf1efa9999ee82bc926536ee45d80a1c6",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/data-element.d.ts": "12f3a09d7a498cf55a1a4cec066f70d1a93436b35b88514a5c7ab0ad770341e9",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/data-list-element.d.ts": "a7395992018e0c10f3d543a80eb67c37112e051e00dd5907d6d9c391141da805",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/details-element.d.ts": "6286d6da09f2dacac76dc6f8e4041756ab4b3505d621db36f5e2bac042d7e25d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/directory-element.d.ts": "0a518d3d8cf7f11f1dd310e9e8f200f7042dd97aa852bc71af693cf4fa573f36",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/div-element.d.ts": "118d866590eb246b40615b1cc8074c66e4d7c412153db798c55f9c0a4f51636e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/document.d.ts": "fc6fe89143f5950527dc99f9280a614c9ecd735f43fa01a20050a5c0cc5c6bff",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/element.d.ts": "e66e87b06a83e45cc84606cdc32ce9876edf92314098b449cc649f989cb1b251",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/embed-element.d.ts": "fc246c0748d16b67147e8c753a9b9fab44d4205ed1b49dce99d05cef2b590b12",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/field-set-element.d.ts": "28e314a5030ae5fe19cf4347400c852eba85b95c0127bbe84ed71dbb9cee0328",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/font-element.d.ts": "abdfc7c7470c0bd9fb126d20be30e0ef151814519f708545ea412fee4f6e3296",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/form-element.d.ts": "18ae8498ff895f67df10604361664c4d0a67a40db81a32b048a9ae62ec1b62b9",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/frame-element.d.ts": "c88c7e73b2964143160ec23b3af1b29850417e3a2ef0f01bdef721c59c50029c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/frame-set-element.d.ts": "7eb75209ba210df7e94c8a9c9d36f5471b298cf2793208a2d73e8b43dbd91657",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/head-element.d.ts": "625bf945dc118e6f0fd12333229b0b1e29a8b9b691f69bd9c0c9dbd518f81c4d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/heading-element.d.ts": "4ad75e197c314290cd046d98d9ad47c893d0d397061e064329eec9f84a7de433",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/hr-element.d.ts": "54c27af4acdbaa3f38530a133fc5ec0c83815d0ff113c8d63d8a3deb090d59af",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/html-element.d.ts": "dce00833bff283a3e87881732f8b695cb7482f653f94b89244bc2ce7c5961f05",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/i-frame-element.d.ts": "1bf5e3f36bb2722f490b59fbe8cae942fd98ec40a26308f2161c0bc6840c0ad1",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/image-element.d.ts": "ad0cdfff322512a09c24112d28b89f0e665185888ca3e7656503a6993eb80fd7",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/input-element.d.ts": "f144d79007c635b50503b716a98f571a44010fbb38d60887e432ac7740e1ecc0",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/label-element.d.ts": "5aa7ccd180c2c82bc7e91de763fa72045519cd3a6ce2fce2d2ac52c7614fdc37",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/legend-element.d.ts": "08961496114ecdb2b6ce94ba2a3ad6fe52347ef0259b71a51fadafb5071f4559",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/li-element.d.ts": "dbed42b386b14b5ad080fdeed5c8d52c863cf0ae79fd16dab12942570c869720",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/link-element.d.ts": "3d1128f1bd85f6a2ab609c9a4a54caf8da9b7bddd4da2e5d0a7a03915ac61078",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/map-element.d.ts": "ee8a122664f5e7937855242611e1d6f3aec6a12aa7776db16bfcf33471c1019d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/marquee-element.d.ts": "2c514bf878714c18802c21a62a0f1a47eb934d7a0e084ab5a9fd1f368c7ca77e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/media-element.d.ts": "692752290db080fd3fd61a484c723e27fa12e09cec860226c33f15f5dfd6eade",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/menu-element.d.ts": "938097501f10421adf13a58599dd45b2b85e859d204e69930148475f7f271261",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/meta-element.d.ts": "1a8700cdd03e1a07673b58f857b19abcdfeb42f713dfba428610279aa9065d88",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/meter-element.d.ts": "6b60ff238d9a07e1caa5ba3f672dcfa9dd223880b885791ba027671f895507c7",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/mod-element.d.ts": "a90121eb8c57de494645ae6e3157e56b89c6a591056c1ec86f4f8a71e45c417a",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/o-list-element.d.ts": "daa7c3a48cf33711ee9c8c865472234940d8c39fc2155e155810a27f30e3f72f",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/object-element.d.ts": "04c5591672ad18e8ed193b0910806cf44bba02acb7fc2fee5248c88bad31413a",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/opt-group-element.d.ts": "81862f0a756fdef5e4226bfa0e44a692aa0aa1c8356269c8922aeb39be0313b7",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/option-element.d.ts": "4829e7caa4f8e3551b531de58566a91d7e0efd2605571e072c966ca961b2f542",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/output-element.d.ts": "afd533d5daeaa340896f9c86e73d7e09fa3713fe0cb18b735884edb86ac69c0a",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/paragraph-element.d.ts": "7960c75a2dd967b9ea64b86aebd8f8a462f396e5a770e9edadae10d7abbcd9c3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/param-element.d.ts": "759f3e84e3754b60f13bedbaf8ce46babed258c3db83962f7d6baadceb6596b7",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/picture-element.d.ts": "d1f62e149cf25d0780bb461061c0f5cba1de4cdc33a7230fb098a546481345d6",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/pre-element.d.ts": "c2158d28051ff2aa37fd6afebbe4c924c3850558ff3781de102ff9cfca863836",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/progress-element.d.ts": "5d0489c331e2d7c0c0d1b0d5f2af97e31e2057541f8064b2ea52e54d69f4d8fa",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/quote-element.d.ts": "632a4b97dba3c766b772b484a8911aa8b07476d4c42be775b9ed35575fe3e4b1",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/script-element.d.ts": "33daccf0d6628606b374d49386e57db60ebb7cb12830a5e57a37fb756cb443bd",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/select-element.d.ts": "3dd222dba61e9944aa7c92a54248b6115078a98f52681b6d6a17afb534a9ee52",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/slot-element.d.ts": "f999de45d259f653704bfd15658657ebe490580f91ac186c384a9b5c552d51bd",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/source-element.d.ts": "86c50009cce58291eb3d31db5f5f1ffd1cf97fd492339e698e8310f7b047695c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/span-element.d.ts": "bff95167f92ba81a026c00f24ad1201a4189b5ac3c18fdaf77f756e870f26b43",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/style-element.d.ts": "d8c64b600cb250bd526e27dc836b1cabb7c51ed5aca763b229962db625486203",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/table-caption-element.d.ts": "6f263985ce6576dbebbe14e158438681a8aae1137a5db2a6916b0d69400fa010",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/table-cell-element.d.ts": "713525429c03310678949df4b38e32af3d5b3dd82663e4ee19b611b235ad9c28",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/table-element.d.ts": "551cd35d7365e942d2e0cb9e079f8e7721d425e9b804b980a2d2c3585db3f8ec",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/table-row-element.d.ts": "a8ce834d27f9fb61dfc67f03fb904be8bd9e28264b7370984c775f2f387b3733",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/template-element.d.ts": "72f70880b9969dd95caafeedb41f4bc81eed973225eeee246d5443b0d0a47d6c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/text-area-element.d.ts": "e39590b80494126fbc210e824e72c4017db141803c040d852d7e4d516e9a8524",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/text-element.d.ts": "e63bdaf90cb0e0e6aadd561138c10b5af0b439731c30bee08b8aedac8f6e128d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/time-element.d.ts": "d48e2ae898d80d511df518542eb8b0338de692ce0337e650a10db24340c43be4",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/title-element.d.ts": "e81579998e8268a3653cdf2dc90dccdd572bfcb5644e5f1a32bb1aa107db853c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/track-element.d.ts": "63fba63c9504f130734bfba63ab3ff54e51b45234d2283367b854cdc82ad45e2",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/u-list-element.d.ts": "bd62f62d2463032396e3f1419a8b5ddfb220fadcddedf7129f87fc2f7ef86e73",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/unknown-element.d.ts": "0c41fb108a65b6342e96d7c99fea70a22c5fbc6c7ddbf4bb030a565fd8d87ad8",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/html/video-element.d.ts": "ba3ee0bc838d5f3e73f046ecf6c283429c54119b291d23ef8680628b377895fa",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/index.d.ts": "58d4397286fc0a6f5d8c3d6578856ef224be4e2a20454a010cfdb51715b4f3cd",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/attr.d.ts": "e482a921ee1d52a58d0a6a38b0ae809d56f0337c0af00dead493a1dbedf0b84b",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/character-data.d.ts": "ca4fa979cbda03fb04c3750e622e25f1de9f6105c6f5edbe605d613f38d55a7d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/comment.d.ts": "41e605477ec2351afd251bebc0f6fe4d70626d02b0bcbee14155fbae406896ef",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/custom-event.d.ts": "602e060b6aa63bf2d372e754e39108a040c5d4031442f1e614e0d75ed99c311e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/document-fragment.d.ts": "d12fc6d3ddb81992d887421afb0eb8b2733a54242861e617f71020a8282349d2",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/document-type.d.ts": "ba234f9e4fe4cf16982a99e2f4ac94403b7c08056c20b741fb30acfdcc6c4936",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/document.d.ts": "7c97ad5c03ee08a8d30f38ab5f62cf5c4ee8cd5bb6b92736dcc7aa76c1b744ab",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/element.d.ts": "37defcced20532b3c232a6c7998b2d46b143652266210bbb2b7571442786d15f",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/event-target.d.ts": "9e62fe82312dbc8a6b9d19646b0c725e9261d04368f3ea79466dc6a3aee5631c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/event.d.ts": "d3fcbd9d89fe1774e5f5fee11b6bf9d3ec5da6b1aede32777f8cc6dc4b91c4b7",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/input-event.d.ts": "35d488c8642c7411a344cf987efe3bd4db8f3c03796366e21d5bbc2a0f9732f3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/node-filter.d.ts": "2bd69d15b31d736ae79b7eaf1ef7c3afafbfc06b133834ff7bcc32392e6532ca",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/node-list.d.ts": "f863a5b544f2d8d87aeaa3ec7afa3b02e212f5dfc066aebf41baba35696a6ea1",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/node.d.ts": "3ad81885b5715bdfea5e891a9eb3b2ec41e35b945dcffed14d9d44ce91e1119e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/range.d.ts": "c8a3032c9efbb99774c822b9eb6c070f5c6be3accd34bba638213d5235ad3f9d",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/shadow-root.d.ts": "96529a699f5f89854afd85d7459b35d74fa11518d0ca22cb5d32e302319fb5d3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/text.d.ts": "11683771207a5278618f0c35b426032a928e3bf1ce0537e394ec280a84a33785",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/interface/tree-walker.d.ts": "9c5bcc71b93f1ad7eff8e2bf507be72bb2955a11eab51a207c92cf12c8930ce6",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/mixin/non-element-parent-node.d.ts": "1d683e9ccbed8b6fbcd13a888edadec24b34637ea2fed0a699d74fff2d292b2e",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/mixin/parent-node.d.ts": "362df767f8769e15556b98bf28ec28ba2c015bc83920a234adb2c19f82352f9c",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/shared/constants.d.ts": "8bea98798af7f562283dccbeb08d54c8f2189cccd39e14780a5fda38186562c3",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/shared/facades.d.ts": "778b38f730bbe14613ba523dc27acaf9f7e9e2c2b3ce55f8aefc0d9feec7530a",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/shared/html-classes.d.ts": "ce71e0198a0e2604d3970a78d96a5335f48ec02ed9bebed4bde35ae1647110c2",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/shared/parse-json.d.ts": "05795e5530dbb90eed84938242a49d94588e6b4cedad1396f6867ebba1de3671",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/shared/symbols.d.ts": "0c2d4f2518cfea21985c2640c8d9d465746481bb9cfbabfcd75e5f7fbeab3a64",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/svg/document.d.ts": "f2600431b63e35ed333bc824816f43a5b037407e79d1f031004f8bea892eea41",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/svg/element.d.ts": "c4995ccffb6cfece153fde1ed04abb6ed195e834ea2c5126f15fa7d9b3667030",
"https://esm.sh/v96/linkedom@0.14.19/types/esm/xml/document.d.ts": "6ba70daf6c217340e7d49cd4789f68563a11d4e4116019454ebc57960a38cc5e",
"https://esm.sh/v96/nth-check@2.1.1/deno/nth-check.js": "833e7ffafe43bdcb303074414eebbb45868f68c387c9ddc337e281453fca7f44",
"https://esm.sh/v96/uhyphen@0.1.0/deno/uhyphen.js": "05a78ded7abcd93e04fed282d654f9fa316f8a576753a9c79a9b150d531821ea"
},
"npm": {
"specifiers": {
"fetch-cookie": "fetch-cookie@2.1.0",
"linkedom": "linkedom@0.14.21"
},
"packages": {
"boolbase@1.0.0": {
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
"dependencies": {}
},
"css-select@5.1.0": {
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
"dependencies": {
"boolbase": "boolbase@1.0.0",
"css-what": "css-what@6.1.0",
"domhandler": "domhandler@5.0.3",
"domutils": "domutils@3.0.1",
"nth-check": "nth-check@2.1.1"
}
},
"css-what@6.1.0": {
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
"dependencies": {}
},
"cssom@0.5.0": {
"integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
"dependencies": {}
},
"dom-serializer@2.0.0": {
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dependencies": {
"domelementtype": "domelementtype@2.3.0",
"domhandler": "domhandler@5.0.3",
"entities": "entities@4.4.0"
}
},
"domelementtype@2.3.0": {
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"dependencies": {}
},
"domhandler@5.0.3": {
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": { "domelementtype": "domelementtype@2.3.0" }
},
"domutils@3.0.1": {
"integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
"dependencies": {
"dom-serializer": "dom-serializer@2.0.0",
"domelementtype": "domelementtype@2.3.0",
"domhandler": "domhandler@5.0.3"
}
},
"entities@4.4.0": {
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
"dependencies": {}
},
"fetch-cookie@2.1.0": {
"integrity": "sha512-39+cZRbWfbibmj22R2Jy6dmTbAWC+oqun1f1FzQaNurkPDUP4C38jpeZbiXCR88RKRVDp8UcDrbFXkNhN+NjYg==",
"dependencies": {
"set-cookie-parser": "set-cookie-parser@2.5.1",
"tough-cookie": "tough-cookie@4.1.2"
}
},
"html-escaper@3.0.3": {
"integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==",
"dependencies": {}
},
"htmlparser2@8.0.1": {
"integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
"dependencies": {
"domelementtype": "domelementtype@2.3.0",
"domhandler": "domhandler@5.0.3",
"domutils": "domutils@3.0.1",
"entities": "entities@4.4.0"
}
},
"linkedom@0.14.21": {
"integrity": "sha512-V+c0AAFMTVJA2iAhrdd+u44lL0TjL6hBenVB061VQ6BHqTAHtXw1v5F1/CHGKtwg0OHm+hrGbepb9ZSFJ7lJkg==",
"dependencies": {
"css-select": "css-select@5.1.0",
"cssom": "cssom@0.5.0",
"html-escaper": "html-escaper@3.0.3",
"htmlparser2": "htmlparser2@8.0.1",
"uhyphen": "uhyphen@0.1.0"
}
},
"nth-check@2.1.1": {
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dependencies": { "boolbase": "boolbase@1.0.0" }
},
"psl@1.9.0": {
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
"dependencies": {}
},
"punycode@2.1.1": {
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dependencies": {}
},
"querystringify@2.2.0": {
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dependencies": {}
},
"requires-port@1.0.0": {
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dependencies": {}
},
"set-cookie-parser@2.5.1": {
"integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==",
"dependencies": {}
},
"tough-cookie@4.1.2": {
"integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
"dependencies": {
"psl": "psl@1.9.0",
"punycode": "punycode@2.1.1",
"universalify": "universalify@0.2.0",
"url-parse": "url-parse@1.5.10"
}
},
"uhyphen@0.1.0": {
"integrity": "sha512-o0QVGuFg24FK765Qdd5kk0zU/U4dEsCtN/GSiwNI9i8xsSVtjIAOdTaVhLwZ1nrbWxFVMxNDDl+9fednsOMsBw==",
"dependencies": {}
},
"universalify@0.2.0": {
"integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
"dependencies": {}
},
"url-parse@1.5.10": {
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dependencies": {
"querystringify": "querystringify@2.2.0",
"requires-port": "requires-port@1.0.0"
}
}
}
}
}

@ -0,0 +1,8 @@
import Wattpad from "./src/classes/Wattpad.ts";
export default Wattpad;
import Chapter from "./src/classes/Chapter.ts";
import Search from "./src/classes/Search.ts";
import Story from "./src/classes/Story.ts";
const VERSION = "v0.0.1";
export { Chapter, Search, Story, VERSION, Wattpad };

@ -0,0 +1,59 @@
import { Part as PartType } from "../types.d.ts";
import { newSession } from "../utils/http.ts";
export default class Chapter {
#session: ReturnType<typeof newSession>;
id: string;
workID: string;
/**
* internal part JSON; includes more detailed info
*/
partJSON: PartType;
/**
* name of the part
*/
name = "";
/**
* exact html of the part
*/
html = "";
/**
* the html of the part converted to markdown
*/
text = "";
constructor(
workId: string,
part: PartType,
session: ReturnType<typeof newSession>,
) {
this.#session = session;
this.workID = workId;
this.partJSON = part;
this.id = part.id.toString();
this.name = part.title;
}
async init() {
const html = await (await this.#session.get("/apiv2/storytext", false, {
params: new URLSearchParams({
id: this.id,
}),
})).text();
this.html = html;
// pseudo-parse html to markdown with regex
this.text = html
.replaceAll(
/<p( data-p-id=".{32}")?( style="(text-align):(left|right|center);")?>/g,
"",
) //strip starting paragraph tags (they're useless)
.replaceAll(/<\/?(em|i)>/g, "*") // i/emphasis tags -> md italics
.replaceAll(/<\/?strong>/g, "**") // strong tag -> md bold
.replaceAll(/<\/?u>/g, "__") // u tag -> discord md underline (the normal spec doesn't support underlines)
.replaceAll(/<\/p>/g, "\n") // make ending p tags into newlines, to be consistent with wattpad rendering
.replaceAll(/<br>/g, "\n") // make line break tags into real newlines
.trim();
}
}

@ -0,0 +1,57 @@
import { SearchResults } from "../types.d.ts";
import { newSession } from "../utils/http.ts";
import Work from "./Story.ts";
export interface SearchParameters {
query: string;
isTitle?: boolean;
limit?: number;
}
export interface PrivateSearchParameters {
query: string;
isTitle: boolean;
limit: number;
}
export default class Search {
#opts: PrivateSearchParameters = {
query: "",
isTitle: false,
limit: 30,
};
#session: ReturnType<typeof newSession>;
results: Work[] = [];
constructor(
opts: SearchParameters,
session: ReturnType<typeof newSession>,
) {
this.#session = session;
Object.assign(this.#opts, opts);
}
async update(pageNum: number) {
this.results = [];
const res: SearchResults =
await (await this.#session.get("/v4/search/stories", true, {
params: new URLSearchParams({
query: this.#opts.isTitle
? `title: ${this.#opts.query}`
: this.#opts.query,
limit: this.#opts.limit.toString(),
offset: (pageNum * this.#opts.limit).toString(),
}),
})).json();
for (let i = 0; i < res.stories.length; i++) {
const work = new Work(
res.stories[i].id,
this.#session,
);
this.results.push(work);
}
}
}

@ -0,0 +1,72 @@
import Chapter from "./Chapter.ts";
import { ID, StoryJSON } from "../types.d.ts";
import { newSession } from "../utils/http.ts";
export default class Story {
#session: ReturnType<typeof newSession>;
/**
* ID of the work
*/
id: string;
/**
* internal story JSON; access for more detailed information
*/
storyJSON!: StoryJSON;
/**
* the name of the work
*/
name = "";
/**
* a list of Chapters in the work
*/
chapters: Chapter[] = [];
/**
* a list of tags in the work
*/
tags: string[] = [];
/**
* the approximate date the work was created
*/
created?: Date;
/**
* the approximate date the work was last updated
*/
updated?: Date;
/**
* represents a work on AO3
* @param id the ID of the work
* @param body the HTML body of the work (in text)
* @param session an axiod session (used for fetching additional details)
*/
constructor(
id: ID,
session: ReturnType<typeof newSession>,
) {
this.#session = session;
this.id = id.toString();
}
async init() {
this.storyJSON = await (await this.#session.get(
`/api/v3/stories/${this.id}`,
false,
{
params: new URLSearchParams({
drafts: "0",
include_deleted: "1",
fields:
"id,title,length,createDate,modifyDate,voteCount,readCount,commentCount,url,promoted,sponsor,language,user,description,cover,highlight_colour,completed,isPaywalled,paidModel,categories,numParts,readingPosition,deleted,dateAdded,lastPublishedPart(createDate),tags,copyright,rating,story_text_url(text),,parts(id,title,voteCount,commentCount,videoId,readCount,photoUrl,modifyDate,length,voted,deleted,text_url(text),dedication,url,wordCount),isAdExempt,tagRankings",
}),
},
)).json();
this.name = this.storyJSON.title;
this.tags = this.storyJSON.tags;
this.created = new Date(this.storyJSON.createDate);
this.updated = new Date(this.storyJSON.modifyDate);
this.chapters = this.storyJSON.parts.map((part) =>
new Chapter(this.storyJSON.id, part, this.#session)
);
}
}

@ -0,0 +1,52 @@
import { SearchResults } from "../types.d.ts";
import { newSession } from "../utils/http.ts";
import Work from "./Story.ts";
export interface SearchParameters {
tags: string[];
limit?: number;
}
export interface PrivateSearchParameters {
tags: string[];
limit: number;
}
export default class Search {
#opts: PrivateSearchParameters = {
tags: [],
limit: 20,
};
#session: ReturnType<typeof newSession>;
results: Work[] = [];
constructor(
opts: SearchParameters,
session: ReturnType<typeof newSession>,
) {
this.#session = session;
Object.assign(this.#opts, opts);
}
async update(pageNum: number) {
this.results = [];
const res: SearchResults =
await (await this.#session.get("/v5/hotlist", true, {
params: new URLSearchParams({
tags: this.#opts.tags.join(","),
offset: (pageNum * this.#opts.limit).toString(),
limit: this.#opts.limit.toString(),
}),
})).json();
for (let i = 0; i < res.stories.length; i++) {
const work = new Work(
res.stories[i].id,
this.#session,
);
this.results.push(work);
}
}
}

@ -0,0 +1,40 @@
import Work from "./Story.ts";
import { ID } from "../types.d.ts";
import { DOMParser } from "https://deno.land/x/deno_dom@v0.1.36-alpha/deno-dom-wasm.ts";
import Search, { SearchParameters as QuerySearchParams } from "./Search.ts";
import TagSearch, { SearchParameters as TagSearchParams } from "./TagSearch.ts";
import { newSession, Options } from "../utils/http.ts";
export default class Wattpad {
session: ReturnType<typeof newSession>;
DOMParser = new DOMParser();
/**
* a representation of Wattpad in class form
*/
constructor(opts?: Options) {
if (opts && !opts.headers) {
opts.headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; rv:108.0) Gecko/20100101 Firefox/108.0",
};
}
this.session = newSession(opts ?? {});
}
/**
* gets a Story from an ID
* @returns {Promise<Work>} a Work class for the work
*/
async getWork(id: ID): Promise<Work> {
return new Work(id, this.session);
}
search(opts: QuerySearchParams) {
return new Search(opts, this.session);
}
tagSearch(opts: TagSearchParams) {
return new TagSearch(opts, this.session);
}
}

118
src/types.d.ts vendored

@ -0,0 +1,118 @@
export type ID = BigInt | number | string;
export type {
DOMParser,
} from "https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/dom-parser.ts";
export type {
Element,
} from "https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/element.ts";
export type {
HTMLDocument,
} from "https://deno.land/x/deno_dom@v0.1.36-alpha/src/dom/document.ts";
export interface StoryJSON {
id: string;
title: string;
length: number;
createDate: string;
modifyDate: string;
voteCount: number;
readCount: number;
commentCount: number;
language: Language;
user: SearchUser;
description: string;
cover: string;
completed: boolean;
categories: number[];
tags: string[];
rating: number;
copyright: number;
url: string;
numParts: number;
lastPublishedPart: LastPublishedPart;
parts: Part[];
deleted: boolean;
tagRankings: TagRanking[];
highlight_colour: string;
promoted: boolean;
sponsor: any[];
isAdExempt: boolean;
story_text_url: TextURL;
isPaywalled: boolean;
paidModel: string;
}
export interface Language {
id: number;
name: string;
}
export interface LastPublishedPart {
createDate: string;
}
export interface Part {
id: number;
title: string;
url: string;
modifyDate: string;
length: number;
videoId: string;
photoUrl: string;
commentCount: number;
voteCount: number;
readCount: number;
wordCount: number;
text_url: TextURL;
deleted?: boolean;
}
export interface TextURL {
text: string;
}
export interface TagRanking {
name: string;
rank: number;
total: number;
}
export interface SearchUser {
name: string;
avatar: string;
fullname: string;
}
export interface SearchResults {
nextUrl: string;
stories: SearchStory[];
tags: SearchTag[];
total: number;
}
export interface SearchStory {
completed: boolean;
cover: string;
description: string;
id: string;
isPaywalled: boolean;
lastPublishedPart: LastPublishedPart;
mature: boolean;
numParts: number;
paidModel: null;
readCount: number;
tags: string[];
title: string;
user: SearchUser;
voteCount: number;
}
export interface SearchUser {
name: string;
}
export interface SearchTag {
count: number;
id: string;
name: string;
}

@ -0,0 +1,51 @@
// custom fetch wrappers.. for reasons
import {
CookieJar,
wrapFetch,
} from "https://deno.land/x/another_cookiejar@v5.0.1/mod.ts";
const cookieJar = new CookieJar();
const wrappedFetch = wrapFetch({
cookieJar,
});
export interface Options {
url?: string;
apiUrl?: string;
headers?: Record<string, string>;
}
const defaultOptions: Options = {
url: "https://wattpad.com",
apiUrl: "https://api.wattpad.com",
headers: {
"User-Agent":
`Mozilla/5.0 (Windows NT 10.0; rv:108.0) Gecko/20100101 Firefox/108.0`,
"Accept-Language": "en-US,en;q=0.5",
},
};
const newSession = (opts: Options) => {
opts = Object.assign(defaultOptions, opts);
return {
get: async (path: string, useAPI = false, opts2?: {
params?: URLSearchParams;
}) => {
const res = await wrappedFetch(
(useAPI ? opts.apiUrl : opts.url) + path + "?" +
opts2?.params ?? "",
{
headers: opts.headers,
},
);
if (res.status > 300) {
console.log(res);
throw new Error("Failed request, probably rate-limited");
}
return res;
},
};
};
export { newSession };

@ -0,0 +1,19 @@
import Wattpad from "./mod.ts";
const wp = new Wattpad();
/*const search = wp.search({
query: "bendy x reader",
});*/
const search = wp.tagSearch({
tags: [
"bendyxreader",
],
});
await search.update(0);
await search.results[0].init();
console.log(search.results[0]);
Loading…
Cancel
Save