From e569fe38cf6cda72a32076b991076e467fc2316c Mon Sep 17 00:00:00 2001 From: Okiki Ojo Date: Sun, 30 Jul 2023 17:35:21 +0000 Subject: [PATCH] chore: ... --- deno.jsonc | 7 + deno.lock | 298 ++++++++++++++++++ mod.ts | 16 +- script/build.ts | 12 + .../.well-known}/ai-plugin.json | 0 {.well-known => static/.well-known}/logo.png | Bin .../.well-known}/openapi.yaml | 0 {favicon => static/favicon}/favicon.ico | Bin {favicon => static/favicon}/favicon.svg | 0 static/index.html | 154 +++++++++ 10 files changed, 481 insertions(+), 6 deletions(-) create mode 100644 deno.jsonc create mode 100644 deno.lock create mode 100644 script/build.ts rename {.well-known => static/.well-known}/ai-plugin.json (100%) rename {.well-known => static/.well-known}/logo.png (100%) rename {.well-known => static/.well-known}/openapi.yaml (100%) rename {favicon => static/favicon}/favicon.ico (100%) rename {favicon => static/favicon}/favicon.svg (100%) create mode 100644 static/index.html diff --git a/deno.jsonc b/deno.jsonc new file mode 100644 index 0000000..3058694 --- /dev/null +++ b/deno.jsonc @@ -0,0 +1,7 @@ +{ + "tasks": { + "build": "deno run -A script/build.ts", + "start": "deno run -A --unstable mod.ts", + "dev": "deno run -A --unstable --watch mod.ts", + } +} \ No newline at end of file diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..ecd5f14 --- /dev/null +++ b/deno.lock @@ -0,0 +1,298 @@ +{ + "version": "2", + "remote": { + "https://deno.land/std@0.193.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.193.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.193.0/async/deferred.ts": "42790112f36a75a57db4a96d33974a936deb7b04d25c6084a9fa8a49f135def8", + "https://deno.land/std@0.193.0/bytes/bytes_list.ts": "31d664f4d42fa922066405d0e421c56da89d751886ee77bbe25a88bf0310c9d0", + "https://deno.land/std@0.193.0/bytes/concat.ts": "d26d6f3d7922e6d663dacfcd357563b7bf4a380ce5b9c2bbe0c8586662f25ce2", + "https://deno.land/std@0.193.0/bytes/copy.ts": "939d89e302a9761dcf1d9c937c7711174ed74c59eef40a1e4569a05c9de88219", + "https://deno.land/std@0.193.0/bytes/ends_with.ts": "4228811ebc71615d27f065c54b5e815ec1972538772b0f413c0efe05245b472e", + "https://deno.land/std@0.193.0/bytes/equals.ts": "fc190cce412b2136979181b163ec7e05f7e7a947e39102eee4b8c0d62519ddf9", + "https://deno.land/std@0.193.0/bytes/includes_needle.ts": "76a8163126fb2f8bf86fd7f22192c3bb04bf6a20b987a095127c2ca08adf3ba6", + "https://deno.land/std@0.193.0/bytes/index_of_needle.ts": "9c06610e9611b5647ac25952e71a22e09227c9f1b8cbeeb33399bf8bf8a7f649", + "https://deno.land/std@0.193.0/bytes/last_index_of_needle.ts": "f1602f221c3b678bc4f1e1c88a70a15ab7da32c21751dbbc6c957c956951d784", + "https://deno.land/std@0.193.0/bytes/mod.ts": "e869bba1e7a2e3a9cc6c2d55471888429a544e70a840c087672e656e7ba21815", + "https://deno.land/std@0.193.0/bytes/repeat.ts": "6f5e490d8d72bcbf8d84a6bb04690b9b3eb5822c5a11687bca73a2318a842294", + "https://deno.land/std@0.193.0/bytes/starts_with.ts": "3e607a70c9c09f5140b7a7f17a695221abcc7244d20af3eb47ccbb63f5885135", + "https://deno.land/std@0.193.0/crypto/keystack.ts": "877ab0f19eb7d37ad6495190d3c3e39f58e9c52e0b6a966f82fd6df67ca55f90", + "https://deno.land/std@0.193.0/crypto/timing_safe_equal.ts": "0fae34ee02264f309ae0b6e54e9746a7aba3996e5454903ed106967a7a9ef665", + "https://deno.land/std@0.193.0/encoding/base64.ts": "144ae6234c1fbe5b68666c711dc15b1e9ee2aef6d42b3b4345bf9a6c91d70d0d", + "https://deno.land/std@0.193.0/encoding/base64url.ts": "2ed4ba122b20fedf226c5d337cf22ee2024fa73a8f85d915d442af7e9ce1fae1", + "https://deno.land/std@0.193.0/http/_negotiation/common.ts": "14d1a52427ab258a4b7161cd80e1d8a207b7cc64b46e911780f57ead5f4323c6", + "https://deno.land/std@0.193.0/http/_negotiation/encoding.ts": "ff747d107277c88cb7a6a62a08eeb8d56dad91564cbcccb30694d5dc126dcc53", + "https://deno.land/std@0.193.0/http/_negotiation/language.ts": "7bcddd8db3330bdb7ce4fc00a213c5547c1968139864201efd67ef2d0d51887d", + "https://deno.land/std@0.193.0/http/_negotiation/media_type.ts": "58847517cd549384ad677c0fe89e0a4815be36fe7a303ea63cee5f6a1d7e1692", + "https://deno.land/std@0.193.0/http/cookie_map.ts": "d148a5eaf35f19905dd5104126fa47ac71105306dd42f129732365e43108b28a", + "https://deno.land/std@0.193.0/http/etag.ts": "6ad8abbbb1045aabf2307959a2c5565054a8bf01c9824ddee836b1ff22706a58", + "https://deno.land/std@0.193.0/http/http_errors.ts": "bbda34819060af86537cecc9dc8e045f877130808b7e7acde4197c5328e852d0", + "https://deno.land/std@0.193.0/http/http_status.ts": "8a7bcfe3ac025199ad804075385e57f63d055b2aed539d943ccc277616d6f932", + "https://deno.land/std@0.193.0/http/method.ts": "e66c2a015cb46c21ab0bb3589aa4fca43143a506cb324ffdfd42d2edef7bc0c4", + "https://deno.land/std@0.193.0/http/negotiation.ts": "46e74a6bad4b857333a58dc5b50fe8e5a4d5267e97292293ea65f980bd918086", + "https://deno.land/std@0.193.0/http/server_sent_event.ts": "1f3597d175e8935123306a24d7f4423a463667a70953d17b4115af1880459d55", + "https://deno.land/std@0.193.0/http/user_agent.ts": "6f4308670f261118cc6a1518bf37431a5b4f21322b4a4edf0963e182264ce404", + "https://deno.land/std@0.193.0/io/buf_reader.ts": "06fff3337091c49e99ebd2dd790c9a90364c087a2953ea081667400fd6c6cebb", + "https://deno.land/std@0.193.0/io/buf_writer.ts": "48c33c8f00b61dcbc7958706741cec8e59810bd307bc6a326cbd474fe8346dfd", + "https://deno.land/std@0.193.0/io/buffer.ts": "17f4410eaaa60a8a85733e8891349a619eadfbbe42e2f319283ce2b8f29723ab", + "https://deno.land/std@0.193.0/io/copy_n.ts": "0cc7ce07c75130f6fc18621ec1911c36e147eb9570664fee0ea12b1988167590", + "https://deno.land/std@0.193.0/io/limited_reader.ts": "6c9a216f8eef39c1ee2a6b37a29372c8fc63455b2eeb91f06d9646f8f759fc8b", + "https://deno.land/std@0.193.0/io/mod.ts": "2665bcccc1fd6e8627cca167c3e92aaecbd9897556b6f69e6d258070ef63fd9b", + "https://deno.land/std@0.193.0/io/multi_reader.ts": "9c2a0a31686c44b277e16da1d97b4686a986edcee48409b84be25eedbc39b271", + "https://deno.land/std@0.193.0/io/read_delim.ts": "c02b93cc546ae8caad8682ae270863e7ace6daec24c1eddd6faabc95a9d876a3", + "https://deno.land/std@0.193.0/io/read_int.ts": "7cb8bcdfaf1107586c3bacc583d11c64c060196cb070bb13ae8c2061404f911f", + "https://deno.land/std@0.193.0/io/read_lines.ts": "c526c12a20a9386dc910d500f9cdea43cba974e853397790bd146817a7eef8cc", + "https://deno.land/std@0.193.0/io/read_long.ts": "f0aaa420e3da1261c5d33c5e729f09922f3d9fa49f046258d4ff7a00d800c71e", + "https://deno.land/std@0.193.0/io/read_range.ts": "28152daf32e43dd9f7d41d8466852b0d18ad766cd5c4334c91fef6e1b3a74eb5", + "https://deno.land/std@0.193.0/io/read_short.ts": "805cb329574b850b84bf14a92c052c59b5977a492cd780c41df8ad40826c1a20", + "https://deno.land/std@0.193.0/io/read_string_delim.ts": "5dc9f53bdf78e7d4ee1e56b9b60352238ab236a71c3e3b2a713c3d78472a53ce", + "https://deno.land/std@0.193.0/io/slice_long_to_bytes.ts": "48d9bace92684e880e46aa4a2520fc3867f9d7ce212055f76ecc11b22f9644b7", + "https://deno.land/std@0.193.0/io/string_reader.ts": "da0f68251b3d5b5112485dfd4d1b1936135c9b4d921182a7edaf47f74c25cc8f", + "https://deno.land/std@0.193.0/io/string_writer.ts": "8a03c5858c24965a54c6538bed15f32a7c72f5704a12bda56f83a40e28e5433e", + "https://deno.land/std@0.193.0/media_types/_db.ts": "7606d83e31f23ce1a7968cbaee852810c2cf477903a095696cdc62eaab7ce570", + "https://deno.land/std@0.193.0/media_types/_util.ts": "916efbd30b6148a716f110e67a4db29d6949bf4048997b754415dd7e42c52378", + "https://deno.land/std@0.193.0/media_types/content_type.ts": "ad98a5aa2d95f5965b2796072284258710a25e520952376ed432b0937ce743bc", + "https://deno.land/std@0.193.0/media_types/extension.ts": "a7cd28c9417143387cdfed27d4e8607ebcf5b1ec27eb8473d5b000144689fe65", + "https://deno.land/std@0.193.0/media_types/extensions_by_type.ts": "43806d6a52a0d6d965ada9d20e60a982feb40bc7a82268178d94edb764694fed", + "https://deno.land/std@0.193.0/media_types/format_media_type.ts": "f5e1073c05526a6f5a516ac5c5587a1abd043bf1039c71cde1166aa4328c8baf", + "https://deno.land/std@0.193.0/media_types/get_charset.ts": "18b88274796fda5d353806bf409eb1d2ddb3f004eb4bd311662c4cdd8ac173db", + "https://deno.land/std@0.193.0/media_types/mod.ts": "d3f0b99f85053bc0b98ecc24eaa3546dfa09b856dc0bbaf60d8956d2cdd710c8", + "https://deno.land/std@0.193.0/media_types/parse_media_type.ts": "835c4112e1357e95b4f10d7cdea5ae1801967e444f48673ff8f1cb4d32af9920", + "https://deno.land/std@0.193.0/media_types/type_by_extension.ts": "daa801eb0f11cdf199445d0f1b656cf116d47dcf9e5b85cc1e6b4469f5ee0432", + "https://deno.land/std@0.193.0/media_types/vendor/mime-db.v1.52.0.ts": "6925bbcae81ca37241e3f55908d0505724358cda3384eaea707773b2c7e99586", + "https://deno.land/std@0.193.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.193.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.193.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.193.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.193.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.193.0/path/mod.ts": "f065032a7189404fdac3ad1a1551a9ac84751d2f25c431e101787846c86c79ef", + "https://deno.land/std@0.193.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.193.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.193.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", + "https://deno.land/std@0.193.0/streams/_common.ts": "f45cba84f0d813de3326466095539602364a9ba521f804cc758f7a475cda692d", + "https://deno.land/std@0.193.0/streams/buffer.ts": "d5b3d7d0299114e5b2ea895a8bf202a687fd915c5282f8096c7bae23b5a04407", + "https://deno.land/std@0.193.0/streams/byte_slice_stream.ts": "225d57263a34325d7c96cb3dafeb478eec0e6fd05cd0458d678752eadd132bb4", + "https://deno.land/std@0.193.0/streams/copy.ts": "75cbc795ff89291df22ddca5252de88b2e16d40c85d02840593386a8a1454f71", + "https://deno.land/std@0.193.0/streams/delimiter_stream.ts": "f69e849b3d1f59f02424497273f411105a6f76a9f13da92aeeb9a2d554236814", + "https://deno.land/std@0.193.0/streams/early_zip_readable_streams.ts": "4005fa74162b943f79899e5d7cb96adcbc0a6b867f9144974ed12d30e0a556e1", + "https://deno.land/std@0.193.0/streams/iterate_reader.ts": "bbec1d45c2df2c0c5920bad0549351446fdc8e0886d99e95959b259dbcdb6072", + "https://deno.land/std@0.193.0/streams/limited_bytes_transform_stream.ts": "05dc592ffaab83257494d22dd53917e56243c26e5e3129b3f13ddbbbc4785048", + "https://deno.land/std@0.193.0/streams/limited_transform_stream.ts": "d69ab790232c1b86f53621ad41ef03c235f2abb4b7a1cd51960ad6e12ee55e38", + "https://deno.land/std@0.193.0/streams/merge_readable_streams.ts": "dc2db0cbf1b14d999aa2aa2a2a1ba24ce58953878f29845ed9319321d0a01fab", + "https://deno.land/std@0.193.0/streams/mod.ts": "c07ec010e700b9ea887dc36ca08729828bc7912f711e4054e24d33fd46282252", + "https://deno.land/std@0.193.0/streams/read_all.ts": "ee319772fb0fd28302f97343cc48dfcf948f154fd0d755d8efe65814b70533be", + "https://deno.land/std@0.193.0/streams/readable_stream_from_iterable.ts": "cd4bb9e9bf6dbe84c213beb1f5085c326624421671473e410cfaecad15f01865", + "https://deno.land/std@0.193.0/streams/readable_stream_from_reader.ts": "bfc416c4576a30aac6b9af22c9dc292c20c6742141ee7c55b5e85460beb0c54e", + "https://deno.land/std@0.193.0/streams/reader_from_iterable.ts": "55f68110dce3f8f2c87b834d95f153bc904257fc65175f9f2abe78455cb8047c", + "https://deno.land/std@0.193.0/streams/reader_from_stream_reader.ts": "fa4971e5615a010e49492c5d1688ca1a4d17472a41e98b498ab89a64ebd7ac73", + "https://deno.land/std@0.193.0/streams/text_delimiter_stream.ts": "20e680ab8b751390e359288ce764f9c47d164af11a263870746eeca4bc7d976b", + "https://deno.land/std@0.193.0/streams/text_line_stream.ts": "0f2c4b33a5fdb2476f2e060974cba1347cefe99a4af33c28a57524b1a34750fa", + "https://deno.land/std@0.193.0/streams/to_transform_stream.ts": "7f55fc0b14cf3ed0f8d10d8f41d05bdc40726e44a65c37f58705d10a615f0159", + "https://deno.land/std@0.193.0/streams/writable_stream_from_writer.ts": "56fff5c82fb736fdd669b567cc0b2bbbe0351002cd13254eae26c366e2bed89a", + "https://deno.land/std@0.193.0/streams/write_all.ts": "aec90152978581ea62d56bb53a5cbf487e6a89c902f87c5969681ffbdf32b998", + "https://deno.land/std@0.193.0/streams/writer_from_stream_writer.ts": "07c7ee025151a190f37fc42cbb01ff93afc949119ebddc6e0d0df14df1bf6950", + "https://deno.land/std@0.193.0/streams/zip_readable_streams.ts": "a9d81aa451240f79230add674809dbee038d93aabe286e2d9671e66591fc86ca", + "https://deno.land/std@0.196.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.196.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", + "https://deno.land/std@0.196.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", + "https://deno.land/std@0.196.0/bytes/copy.ts": "939d89e302a9761dcf1d9c937c7711174ed74c59eef40a1e4569a05c9de88219", + "https://deno.land/std@0.196.0/io/buffer.ts": "4d6883daeb2e698579c4064170515683d69f40f3de019bfe46c5cf31e74ae793", + "https://deno.land/std@0.196.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.196.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.196.0/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.196.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.196.0/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.196.0/path/mod.ts": "f065032a7189404fdac3ad1a1551a9ac84751d2f25c431e101787846c86c79ef", + "https://deno.land/std@0.196.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.196.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.196.0/path/win32.ts": "4fca292f8d116fd6d62f243b8a61bd3d6835a9f0ede762ba5c01afe7c3c0aa12", + "https://deno.land/std@0.196.0/yaml/_error.ts": "b59e2c76ce5a47b1b9fa0ff9f96c1dd92ea1e1b17ce4347ece5944a95c3c1a84", + "https://deno.land/std@0.196.0/yaml/_loader/loader.ts": "47b9592efcb390b58b1903cc471bfdf1fc71a0d2d2b31e37b5cae7d8804c7aed", + "https://deno.land/std@0.196.0/yaml/_loader/loader_state.ts": "0841870b467169269d7c2dfa75cd288c319bc06f65edd9e42c29e5fced91c7a4", + "https://deno.land/std@0.196.0/yaml/_mark.ts": "dcd8585dee585e024475e9f3fe27d29740670fb64ebb970388094cad0fc11d5d", + "https://deno.land/std@0.196.0/yaml/_state.ts": "ef03d55ec235d48dcfbecc0ab3ade90bfae69a61094846e08003421c2cf5cfc6", + "https://deno.land/std@0.196.0/yaml/_type/binary.ts": "d34d8c8d8ed521e270cfede3401c425b971af4f6c69da1e2cb32b172d42c7da7", + "https://deno.land/std@0.196.0/yaml/_type/bool.ts": "5bfa75da84343d45347b521ba4e5aeace9fe6f53447405290d53315a3fc20e66", + "https://deno.land/std@0.196.0/yaml/_type/float.ts": "056bd3cb9c5586238b20517511014fb24b0e36f98f9f6073e12da308b6b9808a", + "https://deno.land/std@0.196.0/yaml/_type/function.ts": "ff574fe84a750695302864e1c31b93f12d14ada4bde79a5f93197fc33ad17471", + "https://deno.land/std@0.196.0/yaml/_type/int.ts": "563ad074f0fa7aecf6b6c3d84135bcc95a8269dcc15de878de20ce868fd773fa", + "https://deno.land/std@0.196.0/yaml/_type/map.ts": "7b105e4ab03a361c61e7e335a0baf4d40f06460b13920e5af3fb2783a1464000", + "https://deno.land/std@0.196.0/yaml/_type/merge.ts": "8192bf3e4d637f32567917f48bb276043da9cf729cf594e5ec191f7cd229337e", + "https://deno.land/std@0.196.0/yaml/_type/mod.ts": "060e2b3d38725094b77ea3a3f05fc7e671fced8e67ca18e525be98c4aa8f4bbb", + "https://deno.land/std@0.196.0/yaml/_type/nil.ts": "606e8f0c44d73117c81abec822f89ef81e40f712258c74f186baa1af659b8887", + "https://deno.land/std@0.196.0/yaml/_type/omap.ts": "cfe59a294726f5cea705c39a61fd2b08199cf48f4ccd6b040cb550ec0f38d0a1", + "https://deno.land/std@0.196.0/yaml/_type/pairs.ts": "0032fdfe57558d21696a4f8cf5b5cfd1f698743177080affc18629685c905666", + "https://deno.land/std@0.196.0/yaml/_type/regexp.ts": "1ce118de15b2da43b4bd8e4395f42d448b731acf3bdaf7c888f40789f9a95f8b", + "https://deno.land/std@0.196.0/yaml/_type/seq.ts": "95333abeec8a7e4d967b8c8328b269e342a4bbdd2585395549b9c4f58c8533a2", + "https://deno.land/std@0.196.0/yaml/_type/set.ts": "f28ba44e632ef2a6eb580486fd47a460445eeddbdf1dbc739c3e62486f566092", + "https://deno.land/std@0.196.0/yaml/_type/str.ts": "a67a3c6e429d95041399e964015511779b1130ea5889fa257c48457bd3446e31", + "https://deno.land/std@0.196.0/yaml/_type/timestamp.ts": "706ea80a76a73e48efaeb400ace087da1f927647b53ad6f754f4e06d51af087f", + "https://deno.land/std@0.196.0/yaml/_type/undefined.ts": "94a316ca450597ccbc6750cbd79097ad0d5f3a019797eed3c841a040c29540ba", + "https://deno.land/std@0.196.0/yaml/_utils.ts": "26b311f0d42a7ce025060bd6320a68b50e52fd24a839581eb31734cd48e20393", + "https://deno.land/std@0.196.0/yaml/parse.ts": "1fbbda572bf3fff578b6482c0d8b85097a38de3176bf3ab2ca70c25fb0c960ef", + "https://deno.land/std@0.196.0/yaml/schema.ts": "96908b78dc50c340074b93fc1598d5e7e2fe59103f89ff81e5a49b2dedf77a67", + "https://deno.land/std@0.196.0/yaml/schema/core.ts": "fa406f18ceedc87a50e28bb90ec7a4c09eebb337f94ef17468349794fa828639", + "https://deno.land/std@0.196.0/yaml/schema/default.ts": "0047e80ae8a4a93293bc4c557ae8a546aabd46bb7165b9d9b940d57b4d88bde9", + "https://deno.land/std@0.196.0/yaml/schema/extended.ts": "0784416bf062d20a1626b53c03380e265b3e39b9409afb9f4cb7d659fd71e60d", + "https://deno.land/std@0.196.0/yaml/schema/failsafe.ts": "d219ab5febc43f770917d8ec37735a4b1ad671149846cbdcade767832b42b92b", + "https://deno.land/std@0.196.0/yaml/schema/json.ts": "5f41dd7c2f1ad545ef6238633ce9ee3d444dfc5a18101e1768bd5504bf90e5e5", + "https://deno.land/std@0.196.0/yaml/schema/mod.ts": "4472e827bab5025e92bc2eb2eeefa70ecbefc64b2799b765c69af84822efef32", + "https://deno.land/std@0.196.0/yaml/type.ts": "1aabb8e0a3f4229ce0a3526256f68826d9bdf65a36c8a3890ead8011fcba7670", + "https://deno.land/x/cors@v1.2.2/abcCors.ts": "cdf83a7eaa69a1bf3ab910d18b9422217902fac47601adcaf0afac5a61845d48", + "https://deno.land/x/cors@v1.2.2/attainCors.ts": "7d6aba0f942495cc31119604e0895c9bb8edd8f8baa7fe78e6c655bd0b4cbf59", + "https://deno.land/x/cors@v1.2.2/cors.ts": "0e2d9167e3685f9bcf48f565e312b6e1883fa458f7337e5ce7bc2e3b29767980", + "https://deno.land/x/cors@v1.2.2/mithCors.ts": "3a359d6e716e0410ede278ab54d875b293a2d66d838aaa7cfbf9ddc1e9e990d3", + "https://deno.land/x/cors@v1.2.2/mod.ts": "2b351913f56d77ad80cb3b8633d4539c9eeddb426dae79437ada0e6a9cb4f1a6", + "https://deno.land/x/cors@v1.2.2/oakCors.ts": "1348dc7673c61b85d2e80559a7b44f8e0246eaa6bcc6ec744fafe5d9b13b5c71", + "https://deno.land/x/cors@v1.2.2/opineCors.ts": "fb5790115c26b7061d84b8d6c17d258a1e241bcab75b0bc3ca1fdb2e57bc5072", + "https://deno.land/x/cors@v1.2.2/types.ts": "97546633ccc7f0df7a29bacba5d91dc6f61decdd1b65258300244dba905d34b8", + "https://deno.land/x/htm@0.2.1/html.tsx": "afcf0500d9199e8efe6877d9e7bf4f7907d0bba09906b6036cfe5e90458083b3", + "https://deno.land/x/htm@0.2.1/jsx.ts": "2dfbc2b208981b9348aee02494ba064eac72f686d2e5ecc19d7f3fcdb9734e3d", + "https://deno.land/x/htm@0.2.1/mod.ts": "d930056a7c8c645bea5f9c116d65bc309d12cfebafa8db98f7c406e1984caaec", + "https://deno.land/x/htm@0.2.1/plugins/color-scheme.ts": "e6aae324f7d28e2ad3a9c9dfa5665ba0e4cec2e05fabb04989dc124c0b5f6e36", + "https://deno.land/x/oak@v12.6.0/application.ts": "3028d3f6fa5ee743de013881550d054372c11d83c45099c2d794033786d27008", + "https://deno.land/x/oak@v12.6.0/body.ts": "1899761b97fc9d776f3710b2637fb047ba29b968609afc6c0e5219b1108e703c", + "https://deno.land/x/oak@v12.6.0/buf_reader.ts": "26640736541598dbd9f2b84a9d0595756afff03c9ca55b66eef1911f7798b56d", + "https://deno.land/x/oak@v12.6.0/content_disposition.ts": "8b8c3cb2fba7138cd5b7f82fc3b5ea39b33db924a824b28261659db7e164621e", + "https://deno.land/x/oak@v12.6.0/context.ts": "895a2d40186b89c28ba3947bf08a9335f1a11fc33133f760082536b74c53d1ca", + "https://deno.land/x/oak@v12.6.0/deps.ts": "6c601cd79f39489ad37d87587ad0c6fe53d838946ffa5a3e7e9600e7a01dc6d9", + "https://deno.land/x/oak@v12.6.0/etag.ts": "32e47726b41698aefdd71faac5aaf2907c9bdd41ef18a7693863be4f8fee115d", + "https://deno.land/x/oak@v12.6.0/forwarded.ts": "e656f96a85574e2a6ee54dc35efc9f72d543c9ae0923760ef426ee7369eef01c", + "https://deno.land/x/oak@v12.6.0/headers.ts": "769fd042d34fbcd5667cbd745b5c65d335cc8430e822dbf1f87d65313cab4b47", + "https://deno.land/x/oak@v12.6.0/helpers.ts": "6b03c6a2be06ec775d54449e442a2bac234aa952948ca758356eab6dc87af618", + "https://deno.land/x/oak@v12.6.0/http_server_native.ts": "6232bed3d7bc17136d1a7f7685a6f8a79c943694463f71cf743eac58e75ec34c", + "https://deno.land/x/oak@v12.6.0/http_server_native_request.ts": "552b174b5e13e92de8897d5b6f716b1e5a53543115481d65a651a41e4ca29ec9", + "https://deno.land/x/oak@v12.6.0/isMediaType.ts": "62d638abcf837ece3a8f07a4b7ca59794135cb0d4b73194c7d5837efd4161005", + "https://deno.land/x/oak@v12.6.0/mediaTyper.ts": "042b853fc8e9c3f6c628dd389e03ef481552bf07242efc3f8a1af042102a6105", + "https://deno.land/x/oak@v12.6.0/middleware.ts": "c7f7a0424a6dd99a00e4b8d7d6e131efc0facc8dea781845d713b63df8ef1862", + "https://deno.land/x/oak@v12.6.0/middleware/proxy.ts": "6f2799cf60d926e7a8d13ff757a59d7f0f930407db7ee9b81e7c064138eb89ff", + "https://deno.land/x/oak@v12.6.0/mod.ts": "f6aa47ad1b6099470c9a884cccad9d3ac0fd242ba940896291ab76cd26cf554b", + "https://deno.land/x/oak@v12.6.0/multipart.ts": "1484e01b98f5135f2aa09f7d0ce1e7be39109bf9f045ac660e941619d04e3d29", + "https://deno.land/x/oak@v12.6.0/range.ts": "1ca15fc1ac21c650c34e6997a75af2af9d9d8eb6fe2d5d1dadeac3dfd4a9c152", + "https://deno.land/x/oak@v12.6.0/request.ts": "794e5e12c2d369c2b8a6c998be5ca96c6e0315cae73069b85bc537901811073c", + "https://deno.land/x/oak@v12.6.0/response.ts": "7172285e58947057f36d6536b52a9cdffbdb03616555fa8e94b87f469a105f8a", + "https://deno.land/x/oak@v12.6.0/router.ts": "0f53d6249f9e8f89f2522b2b810b9302d0f22593c184b16b24b03bf2b7d42ea1", + "https://deno.land/x/oak@v12.6.0/send.ts": "5ec49f106294593f468317a0c885da4f3274bf6d0fe9e16a7304391730b4f4fb", + "https://deno.land/x/oak@v12.6.0/structured_clone.ts": "c3888b14d1eec558345bfbf13d0993d59bd45aaa8588444e35dd558c3a921cd8", + "https://deno.land/x/oak@v12.6.0/testing.ts": "37d684d57bb8e5150fb5eb2677e66b04dcb422709cf2c5a74c1df94d52aa02e2", + "https://deno.land/x/oak@v12.6.0/util.ts": "0a3fdffb114859c2de84e1783efa3a544af4d2af8c6f08e0d25655de9d3e69bb", + "https://deno.land/x/path_to_regexp@v6.2.1/index.ts": "894060567837bae8fc9c5cbd4d0a05e9024672083d5883b525c031eea940e556", + "https://esm.sh/@amoutonbrady/lz-string@0.1.0": "fe80913334aa57bb64d5127a855f90f5527e7bbf64c5b627304a55fc6b5c3ee2", + "https://esm.sh/@stefanprobst/remark-shiki@2.2.1": "2ce9cb0918b0e75cb456603169de2abe57cefc683d0fd47d3a1bb7baf6df2fe5", + "https://esm.sh/rehype-raw@6.1.1": "3d47f840027aaec6187c13222e0cd34b0e2503f31f3949ad3e719fd6d94fd527", + "https://esm.sh/rehype-stringify@9.0.3": "ac99c749744048282d25689fd7d896958b4206456bc37b53bc85cfce1286c34e", + "https://esm.sh/remark-gfm@3.0.1": "665786707831e17f9f14e6a029c3cd00491d76c0d9bfae7a53978de3e6e9ebfb", + "https://esm.sh/remark-parse@10.0.2": "74ae3bfb72d8d19c210e68d6f34f243a7d82403db99c14e67c63e45aba61ae85", + "https://esm.sh/remark-rehype@10.1.0": "f76689dc1ac61b3908e8cd9d33548d870d894b8b68a94ef24ff9dece781d7fdc", + "https://esm.sh/typescript@5.1.6": "9401d2b334bac752a28f8df2a1e5255e1ab32f550db48d7f73746a56c67dcef8", + "https://esm.sh/unified@10.1.2": "9742c7de1dd3c0b17a1024bbd122ccd9655330ed8c7f634d9bffda8e48531718", + "https://esm.sh/v129/buffer-from@1.1.2/denonext/buffer-from.mjs": "078451542b62cb4261c01a01ff7e9bc0f94bef4eb710831d40e1f92c4dfe3883", + "https://esm.sh/v129/comma-separated-tokens@2.0.3/denonext/comma-separated-tokens.mjs": "ad5df8a36487e0a63d15bbbb6bab8b153e08583d0d5eb6d0058cd0fc619252e0", + "https://esm.sh/v129/hast-util-from-parse5@7.1.2/denonext/hast-util-from-parse5.mjs": "217d345c03b943692facd299a948bcab4a74a9275b142cab1985a40de4e05c05", + "https://esm.sh/v129/hast-util-parse-selector@3.1.1/denonext/hast-util-parse-selector.mjs": "df576c8298a048d9aad89506f5884db91bc249bb6e221b9fd3b228eb40980a62", + "https://esm.sh/v129/hast-util-raw@7.2.3/denonext/hast-util-raw.mjs": "c3ce13860ae7bb5bf7e56ec03160a077452f7ad2165191656afe39e535c24849", + "https://esm.sh/v129/hast-util-to-parse5@7.1.0/denonext/hast-util-to-parse5.mjs": "321b6af153c81e5c5221c87cf0427ae8101ac91de0c0c3347d1c5daad9c59b17", + "https://esm.sh/v129/hastscript@7.2.0/denonext/hastscript.mjs": "8998b04df73b0edcefcf44b2676446e7b296525dc2ab26b39d2cdc450c932765", + "https://esm.sh/v129/html-void-elements@2.0.1/denonext/html-void-elements.mjs": "10f57d4f9d680bf2de32538d6aaf879f20d4ee02dd57879aa232319d6c984f54", + "https://esm.sh/v129/node_inspector.js": "c45566d90f93c4a12cc70cb4de9b8c926fa6250ca63e1483c71d62237d78777c", + "https://esm.sh/v129/parse5@6.0.1/denonext/lib/parser.js": "7b1d88ec671395f2523e0e2ddec282bdc78bbca43835416c6bca5fc079bb317e", + "https://esm.sh/v129/property-information@6.2.0/denonext/property-information.mjs": "c36042799161605d2ba2af318abf697a41e77e7ef5c80f5740de470db7776b9c", + "https://esm.sh/v129/rehype-raw@6.1.1/denonext/rehype-raw.mjs": "392939841f18281830f86d427c71bc6bba890ac98d605f711ecd73aff1948f6f", + "https://esm.sh/v129/source-map-support@0.5.21/denonext/source-map-support.mjs": "0e8f4e6a007c1b74c4f23d6e84d514cc5662f181cf38b822a3786d0ba1033d64", + "https://esm.sh/v129/source-map@0.6.1/denonext/source-map.mjs": "ccff3bb06dea7c01a2c83cf12113697592e418fd06b55ae2bb4cb0a4e51a98b8", + "https://esm.sh/v129/space-separated-tokens@2.0.2/denonext/space-separated-tokens.mjs": "f30773a9959cacfe7511c250e5d125a9f88ee00d3aef6e87b4d17fe49806b276", + "https://esm.sh/v129/typescript@5.1.6/denonext/typescript.mjs": "c77f6ade017f0c3e5826d44fe3f05c9b56298e9e2a3977d175708dedc2982dae", + "https://esm.sh/v129/unist-util-is@5.2.1/denonext/unist-util-is.mjs": "771abea65db57c71e2a3d98200242c362337617e63881fc9954e891dde32277c", + "https://esm.sh/v129/unist-util-position@4.0.4/denonext/unist-util-position.mjs": "be87a00f3663c09267443ef900692719014d966ef84969cb9ad7b9cfc4cd6157", + "https://esm.sh/v129/unist-util-visit-parents@5.1.3/denonext/unist-util-visit-parents.mjs": "27c8ec6b5e26c8a87d811eb79028478547bea53327ecf30f31d1e7e3911b0784", + "https://esm.sh/v129/unist-util-visit@4.1.2/denonext/unist-util-visit.mjs": "b42a79d035f9afff975a0c302185386cfc7dd0f4fc30db055a84a8296bff39ee", + "https://esm.sh/v129/vfile-location@4.1.0/denonext/vfile-location.mjs": "aa64a017e8059406f649f12a564162b61f1fa6ac0e4498c250e4309a9bc617bf", + "https://esm.sh/v129/web-namespaces@2.0.1/denonext/web-namespaces.mjs": "bc6ee363bbe40abddca68678e849584981176d9bde3728b4c5d47a5241dac7bf", + "https://esm.sh/v129/zwitch@2.0.4/denonext/zwitch.mjs": "c0e8c246a1f38b425335ea78cc366a7801d3ef89701229a35f85a51310e6e49f", + "https://esm.sh/v130/@amoutonbrady/lz-string@0.1.0/denonext/lz-string.mjs": "159ca261a05b2cc2a7e16f959bed07e9f5200dffb8a61eb2273c25870249c5f7", + "https://esm.sh/v130/@stefanprobst/remark-shiki@2.2.1/denonext/remark-shiki.mjs": "cda892ea52d3cf91654115c3486f9e4be247555ee6c75061f17282432353069e", + "https://esm.sh/v130/bail@2.0.2/denonext/bail.mjs": "cab740cf24417dfad8567cbb78a49ae7e492ecca299f2b3185520805aba4d073", + "https://esm.sh/v130/ccount@2.0.1/denonext/ccount.mjs": "7b32092651a866fcc992c028982ce5e911356da7653baa3febb1a8ccb93e30f8", + "https://esm.sh/v130/character-entities-html4@2.1.0/denonext/character-entities-html4.mjs": "0b4e64d1b0152acbeec6d854eadce6ceb2de05b0f459ad47485afa206f745f10", + "https://esm.sh/v130/character-entities-legacy@3.0.0/denonext/character-entities-legacy.mjs": "5da76ada1554e4956dc6b702ba92b56a3faf158b24bf45279c522e85f5d9cd21", + "https://esm.sh/v130/character-entities@2.0.2/denonext/character-entities.mjs": "9e8657f056310ac3ca8058eaf96cef695ee13a4bf6c302674796a882464f305c", + "https://esm.sh/v130/comma-separated-tokens@2.0.3/denonext/comma-separated-tokens.mjs": "ad5df8a36487e0a63d15bbbb6bab8b153e08583d0d5eb6d0058cd0fc619252e0", + "https://esm.sh/v130/decode-named-character-reference@1.0.2/denonext/decode-named-character-reference.mjs": "b1394c7ef994f6f25cf1e6b9c5606921a1d63b30fb4a5c677130096ff01a88ef", + "https://esm.sh/v130/escape-string-regexp@5.0.0/denonext/escape-string-regexp.mjs": "6080dd39c43a11f999a41172a27b8c58572d747d8276c039d93d4be8b21747a5", + "https://esm.sh/v130/extend@3.0.2/denonext/extend.mjs": "6ab9e4890dfa54ec88fa326fca525c211141d6da72188f54e9610d1281219c9e", + "https://esm.sh/v130/hast-util-to-html@8.0.4/denonext/hast-util-to-html.mjs": "4fab7c60e26520389f1f4f3ab96c294b91f519181938004c4326cb09c1f1d389", + "https://esm.sh/v130/hast-util-whitespace@2.0.1/denonext/hast-util-whitespace.mjs": "0d45cf1a1b1d7ba26d5a3f2fda8c929b02ef701786e656ade327d8c3f7b390bb", + "https://esm.sh/v130/html-void-elements@2.0.1/denonext/html-void-elements.mjs": "10f57d4f9d680bf2de32538d6aaf879f20d4ee02dd57879aa232319d6c984f54", + "https://esm.sh/v130/is-buffer@2.0.5/denonext/is-buffer.mjs": "87d027d2c668d773b7037bd49fc1c12ed6af26b9f176aacf338c7901237b8867", + "https://esm.sh/v130/is-plain-obj@4.1.0/denonext/is-plain-obj.mjs": "d3d86a7174ad7935de7b00f904b6424c103bce530c502efb7f42114cbb1a555f", + "https://esm.sh/v130/json5@2.2.3/denonext/json5.mjs": "2124ca68e182d9de859a72e9415bbc4702b8f0bb002a7a22ea06d6684a3e562b", + "https://esm.sh/v130/markdown-table@3.0.3/denonext/markdown-table.mjs": "1dd9cb2d2d95fc440cc10489ac77bf979c944e76070997d962e05f627f45df0e", + "https://esm.sh/v130/mdast-util-definitions@5.1.2/denonext/mdast-util-definitions.mjs": "f7b9e06dd9879cb3a5b9789606978141129ac19100011275cb989b13050d9ff5", + "https://esm.sh/v130/mdast-util-find-and-replace@2.2.2/denonext/mdast-util-find-and-replace.mjs": "8c4246bd8a61a842b9ef4797f655c3746a9c93bf2c3007b3a0013d79b7ada112", + "https://esm.sh/v130/mdast-util-from-markdown@1.3.1/denonext/mdast-util-from-markdown.mjs": "3db239e24c04aa54ff1a902607091e75ceabf742957495832c86105ac2e02f34", + "https://esm.sh/v130/mdast-util-gfm-autolink-literal@1.0.3/denonext/mdast-util-gfm-autolink-literal.mjs": "8579137ae11989e5a2913a7ce1f75cac6c0dfca07888dd8c23d17572b6f1ec21", + "https://esm.sh/v130/mdast-util-gfm-footnote@1.0.2/denonext/mdast-util-gfm-footnote.mjs": "fe0b64d54002a2bb508a44359e701fb241f5ae27619f30244848316df3ce4682", + "https://esm.sh/v130/mdast-util-gfm-strikethrough@1.0.3/denonext/mdast-util-gfm-strikethrough.mjs": "e62da64b6687c9312b05e0aedadc17bfa60929a950667360d91670c509599be2", + "https://esm.sh/v130/mdast-util-gfm-table@1.0.7/denonext/mdast-util-gfm-table.mjs": "94028829acad28830096b41cdcc32400cc6b56684edb3acd371c2667cffa473a", + "https://esm.sh/v130/mdast-util-gfm-task-list-item@1.0.2/denonext/mdast-util-gfm-task-list-item.mjs": "c977846c6da61edebe3cb85e9e410a0d7db08e6bb2880d4d9edb560d61896269", + "https://esm.sh/v130/mdast-util-gfm@2.0.2/denonext/mdast-util-gfm.mjs": "267f43e9c5027b10e0b3f2dee22212efc4a85710d83ec31e5557c3b364351a92", + "https://esm.sh/v130/mdast-util-to-hast@12.3.0/denonext/mdast-util-to-hast.mjs": "b8b9484e4ddb8159d6ae6203dfd7a9b2dff385b4cf9c54d2cdc7f9eb14ffe457", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/handle/inline-code.js": "3422bf53f674376874415f159bf7a07e938c4d0d5b8b7542c98748009075be7d", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/handle/list-item.js": "3db183cad97c344db70eebf0ea5df747739e022ff4f56b9d4037619f2db09698", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/association.js": "d7179407d756d55a9a7f9181ea8cffbbe480d0d54692f802a7b181926f7df7da", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/container-flow.js": "3735de16d58105c485c3eb304a700407b6108d81812c7623c50803dc68fa9498", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/container-phrasing.js": "d37cbf5f47656c0dca1c974e7438383f1ad0d2f376ec8351d25a89ee46ff050f", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/indent-lines.js": "f0c00ce02a330300bc74968470617e408bcdf48dd85e640e79aab57ed443bf4f", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/safe.js": "ce43e3a9f314dbf8ac8536857f81ae7ff1a8b15a78caa91a2ca07cb53d4d843b", + "https://esm.sh/v130/mdast-util-to-markdown@1.5.0/denonext/lib/util/track.js": "a91cdbfc1a4aed4b623ec3a5a553745b55fa8554722304ce31a4b6b98645d33d", + "https://esm.sh/v130/mdast-util-to-string@3.2.0/denonext/mdast-util-to-string.mjs": "64fef8fd2a9fdb8abcff4ff6c086c273123c0833c13e465d6c9f82332d1e239c", + "https://esm.sh/v130/micromark-core-commonmark@1.1.0/denonext/micromark-core-commonmark.mjs": "3812985f18babd446cb8b7a68f266388977a0a19bf6fc9b439da230fdd0b05bf", + "https://esm.sh/v130/micromark-extension-gfm-autolink-literal@1.0.5/denonext/micromark-extension-gfm-autolink-literal.mjs": "38655b57bd3d2070c44c16fa3ab49027001c7a06dcabd52f4f3c2019f5e21fb7", + "https://esm.sh/v130/micromark-extension-gfm-footnote@1.1.2/denonext/micromark-extension-gfm-footnote.mjs": "d69e09b68de0a5c6469fb1cc25dca999c84f619861480e95426140c92e733d80", + "https://esm.sh/v130/micromark-extension-gfm-strikethrough@1.0.7/denonext/micromark-extension-gfm-strikethrough.mjs": "b143cc13e6c89ed2a78f647cfe5a2232eb4c09d66faa4fc98c4c82455456b8b6", + "https://esm.sh/v130/micromark-extension-gfm-table@1.0.7/denonext/micromark-extension-gfm-table.mjs": "3d08e3d1e1e38f18b7a4b0fc0f30eeba711c51bb3713e85fa984235c604fa041", + "https://esm.sh/v130/micromark-extension-gfm-tagfilter@1.0.2/denonext/micromark-extension-gfm-tagfilter.mjs": "b5d2226cdadb016da79889a312bdd56561f7dd8c1a444efe92d79bba635ae119", + "https://esm.sh/v130/micromark-extension-gfm-task-list-item@1.0.5/denonext/micromark-extension-gfm-task-list-item.mjs": "50e952779ba21f625b8a5c6cf49a7af91ce80371d0e5268410899f832c9748b1", + "https://esm.sh/v130/micromark-extension-gfm@2.0.3/denonext/micromark-extension-gfm.mjs": "72cdf1ae0151ee4885ce4153bf11cd81a5a3093b7076b7ff4855fac08585d7bb", + "https://esm.sh/v130/micromark-factory-destination@1.1.0/denonext/micromark-factory-destination.mjs": "b3ceb4309ad8d8330925a7c6edebcfa4c0ddc7c84ed489d94e96a5c3e093511a", + "https://esm.sh/v130/micromark-factory-label@1.1.0/denonext/micromark-factory-label.mjs": "4f9bf7eff9d1eec92ab4e0712ed260e85d58dc8ae5f993f224f8271f6028cdca", + "https://esm.sh/v130/micromark-factory-space@1.1.0/denonext/micromark-factory-space.mjs": "5393b2277e50dcdff86d4587382172b9e521e2ae30e069b6435355fe7080c430", + "https://esm.sh/v130/micromark-factory-title@1.1.0/denonext/micromark-factory-title.mjs": "b9841cafb1462f2882579f01b0e3b9aa76b7eef72d30c01f3e9ba684b4d553d1", + "https://esm.sh/v130/micromark-factory-whitespace@1.1.0/denonext/micromark-factory-whitespace.mjs": "e0ef57848a03b21a7b8fb1ec8ddfb265daf86a55457118d9335cb3133fe2701a", + "https://esm.sh/v130/micromark-util-character@1.2.0/denonext/micromark-util-character.mjs": "be2f95646c829378e2f33d0e8b03e7e057f2387cd54f9c18c3d48a87fbc909c9", + "https://esm.sh/v130/micromark-util-chunked@1.1.0/denonext/micromark-util-chunked.mjs": "896f816c52b791283f998076bcea3ff9a4bbd2bf858d96be6079400939ae8c9d", + "https://esm.sh/v130/micromark-util-classify-character@1.1.0/denonext/micromark-util-classify-character.mjs": "874e90c60a044ca592c1c0f0ea525d4d5f33bf0f66564ad4ec72f6e89b298f9e", + "https://esm.sh/v130/micromark-util-combine-extensions@1.1.0/denonext/micromark-util-combine-extensions.mjs": "59c02a19ca424380e735a81835598ce0b71aab347b4e3276efc87f3ba3f2d7c5", + "https://esm.sh/v130/micromark-util-decode-numeric-character-reference@1.1.0/denonext/micromark-util-decode-numeric-character-reference.mjs": "d9d2a8fc3648db44a49c0284d088db354b39c5623e1497c4127ad103594a7948", + "https://esm.sh/v130/micromark-util-decode-string@1.1.0/denonext/micromark-util-decode-string.mjs": "850b60e967dc0f1e17d54d1b4a81e9e6a71bb822d4c00da073e45b425d4c6374", + "https://esm.sh/v130/micromark-util-encode@1.1.0/denonext/micromark-util-encode.mjs": "e9c399d8913ebe2b736a8259fb061740fd8ad632e7f933e27fb67f442c7e48e3", + "https://esm.sh/v130/micromark-util-html-tag-name@1.2.0/denonext/micromark-util-html-tag-name.mjs": "81ed9b1fe3f6dd5290991b4bf39d034ddfd6cdbb4f5352ab61769e4c2eb3fbd3", + "https://esm.sh/v130/micromark-util-normalize-identifier@1.1.0/denonext/micromark-util-normalize-identifier.mjs": "27b873a22954a139d8215b722b0a867b4f1f718cd261ea3f884f997a0d3e0e08", + "https://esm.sh/v130/micromark-util-resolve-all@1.1.0/denonext/micromark-util-resolve-all.mjs": "ee8f55a86b2bfcc1be3d15bbd8b106755a51916ae4c75c962cc044f6b2a22d46", + "https://esm.sh/v130/micromark-util-sanitize-uri@1.2.0/denonext/micromark-util-sanitize-uri.mjs": "c2dc3925ffe931d1c2c37784e382fca717d1ad4f807471629bde6e8b6338d5f4", + "https://esm.sh/v130/micromark-util-subtokenize@1.1.0/denonext/micromark-util-subtokenize.mjs": "5fdbca9aa001299b9ab13fc35d8d5f47fee55793703bfd914bce03246b887212", + "https://esm.sh/v130/micromark@3.2.0/denonext/lib/parse.js": "06948bf2586f66f4f96c12a10386a3cb20d8b72a0d738953cf5913e55ce06d16", + "https://esm.sh/v130/micromark@3.2.0/denonext/lib/postprocess.js": "bc1177cff416aa55b6dfd44b7341cda767b6fee28842782f20bc50ff4cad4b88", + "https://esm.sh/v130/micromark@3.2.0/denonext/lib/preprocess.js": "786db83c43e9d21f14bc37b6c05f061ca4a1db862ffed10c07ca1e6843f73fae", + "https://esm.sh/v130/parse-numeric-range@1.3.0/denonext/parse-numeric-range.mjs": "3653264a361cd54f32acf63c3f21f2e171626e13534393574cfb51b7fccfa552", + "https://esm.sh/v130/property-information@6.2.0/denonext/property-information.mjs": "c36042799161605d2ba2af318abf697a41e77e7ef5c80f5740de470db7776b9c", + "https://esm.sh/v130/rehype-stringify@9.0.3/denonext/rehype-stringify.mjs": "37513e88865941a6cf52e39507e3f73c97caf7e39aea230de6ca26d64616340e", + "https://esm.sh/v130/remark-gfm@3.0.1/denonext/remark-gfm.mjs": "cf0544949eb6b88f7d2dfcf6219b0fdfc33ccb8ae4e8bb173eb9a59aff61d42b", + "https://esm.sh/v130/remark-parse@10.0.2/denonext/remark-parse.mjs": "5ae8f0ed28dca030e5c3226cbd0f24ab23c01813d1ee3dc0929880b99817a32b", + "https://esm.sh/v130/remark-rehype@10.1.0/denonext/remark-rehype.mjs": "e744f1ccdf3a6bbbd8d7ae916149c4989edae9fa65e2a90bb1c3a636b18e1935", + "https://esm.sh/v130/space-separated-tokens@2.0.2/denonext/space-separated-tokens.mjs": "f30773a9959cacfe7511c250e5d125a9f88ee00d3aef6e87b4d17fe49806b276", + "https://esm.sh/v130/stringify-entities@4.0.3/denonext/stringify-entities.mjs": "86bd540c7d057b4907424f9848969af84d635ff5e187b57c18d015c0d96c91dc", + "https://esm.sh/v130/trim-lines@3.0.1/denonext/trim-lines.mjs": "f01a20253341eb2554f307ab05bc9cd93d6f33bcbb24fde2fc9fcd857564283e", + "https://esm.sh/v130/trough@2.1.0/denonext/trough.mjs": "d7c1b66bf8739a28bcc6bbf17919f6b54b7b25cceabfb0e694d192232c83f1fd", + "https://esm.sh/v130/unified@10.1.2/denonext/unified.mjs": "9051f93376e2b1c427c065813ee1185103c0d60a4c42c546534f970fbe91199f", + "https://esm.sh/v130/unist-util-generated@2.0.1/denonext/unist-util-generated.mjs": "ff9c54405f6aedb39847fd975a3f528129089e74dd61e9408d5b1b09d8a13dc1", + "https://esm.sh/v130/unist-util-is@5.2.1/denonext/unist-util-is.mjs": "771abea65db57c71e2a3d98200242c362337617e63881fc9954e891dde32277c", + "https://esm.sh/v130/unist-util-position@4.0.4/denonext/unist-util-position.mjs": "be87a00f3663c09267443ef900692719014d966ef84969cb9ad7b9cfc4cd6157", + "https://esm.sh/v130/unist-util-stringify-position@3.0.3/denonext/unist-util-stringify-position.mjs": "e3b2256d68ec8d5ceeb204afe84492e69182ad264a876309a33def43aa34111d", + "https://esm.sh/v130/unist-util-visit-parents@5.1.3/denonext/unist-util-visit-parents.mjs": "0b767f059a8111c7a5ae52050a7eb6d7ac4a90ef0223d5a049bf177f1b1c9992", + "https://esm.sh/v130/unist-util-visit@4.1.2/denonext/unist-util-visit.mjs": "b77a640889c989aa87d92c75d5ce2735553e036784a00900f2f5ac2a7094b008", + "https://esm.sh/v130/vfile-message@3.1.4/denonext/vfile-message.mjs": "76abbcd2afa0e61d3511799e5118c9471c4bce770e85fae04c4c0b4c74d5447f", + "https://esm.sh/v130/vfile@5.3.7/denonext/vfile.mjs": "165e0f0d2c0a5db9cc1347175c75ee88bff56b143cd21216b625a3141cccbe0d", + "https://esm.sh/v130/zwitch@2.0.4/denonext/zwitch.mjs": "c0e8c246a1f38b425335ea78cc366a7801d3ef89701229a35f85a51310e6e49f", + "https://unpkg.com/shiki@0.14.3/dist/index.browser.mjs": "e701176f99cb93cfb15f0ebbdafcc996b89fc11ade576470b2f6a3feeef22b78" + } +} diff --git a/mod.ts b/mod.ts index c0710d4..6997eed 100644 --- a/mod.ts +++ b/mod.ts @@ -1,9 +1,10 @@ // Import necessary modules from dependencies import { cors, oak, parse, path, } from "./deps.ts"; -import { getDocs } from "./docs.tsx"; import { twoslasher } from "./vendor/twoslash.ts"; import type { TwoSlashOptions } from "./vendor/twoslash.ts"; +import "./script/build.ts" + // Destructure necessary components from oak (similar to Express.js in Node.js) const { Application, Router, send, isHttpError, Status } = oak; @@ -27,9 +28,12 @@ const router = new Router(); // Define routes router // Root route - .get("/", (context) => { - // Respond with a JSON object - context.response.body = getDocs; + .get("/", async (context) => { + // Use the send function from oak to serve static files + // This is similar to express.static in Express.js + await send(context, "/index.html", { + root: join(__dirname, `./static`), + }); context.response.headers.set("Content-Type", "text/html"); }) // Root static route @@ -49,7 +53,7 @@ router // Route openapi.json for a future swagger ui docs route .get("/.well-known/openapi.json", async (context) => { const uint8arr = await Deno.readFile( - join(__dirname, `./.well-known/openapi.yaml`), + join(__dirname, `./static/.well-known/openapi.yaml`), ); context.response.body = await parse( new TextDecoder().decode(uint8arr), @@ -61,7 +65,7 @@ router // Use the send function from oak to serve static files // This is similar to express.static in Express.js await send(context, fileName, { - root: join(__dirname, `./${staticPath}`), + root: join(__dirname, `./static/${staticPath}`), }); }) // Route for handling OPTIONS requests to /twoslash diff --git a/script/build.ts b/script/build.ts new file mode 100644 index 0000000..9749c31 --- /dev/null +++ b/script/build.ts @@ -0,0 +1,12 @@ +import { getDocs } from "../docs.tsx"; +import { path } from "../deps.ts"; + + // Destructure necessary path utilities from path (similar to path in Node.js) +const { dirname, fromFileUrl, join } = path; + +// Get the directory of the current module file +// This is similar to __dirname in Node.js, but Deno uses URLs for modules, so we need to convert from a file URL to a path +const __dirname = dirname(fromFileUrl(import.meta.url)); + +const stream = (await getDocs())!; +await Deno.writeFile(join(__dirname, `../static/index.html`), stream); \ No newline at end of file diff --git a/.well-known/ai-plugin.json b/static/.well-known/ai-plugin.json similarity index 100% rename from .well-known/ai-plugin.json rename to static/.well-known/ai-plugin.json diff --git a/.well-known/logo.png b/static/.well-known/logo.png similarity index 100% rename from .well-known/logo.png rename to static/.well-known/logo.png diff --git a/.well-known/openapi.yaml b/static/.well-known/openapi.yaml similarity index 100% rename from .well-known/openapi.yaml rename to static/.well-known/openapi.yaml diff --git a/favicon/favicon.ico b/static/favicon/favicon.ico similarity index 100% rename from favicon/favicon.ico rename to static/favicon/favicon.ico diff --git a/favicon/favicon.svg b/static/favicon/favicon.svg similarity index 100% rename from favicon/favicon.svg rename to static/favicon/favicon.svg diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..7e33cee --- /dev/null +++ b/static/index.html @@ -0,0 +1,154 @@ +Intro. - Typescript Code Analyzer API

ai-typescript-check

+

GitHub | Docs | License

+

ai-typescript-check is a ChatGPT plugin and API that provides linting, auto-completion, error checking, and type checking for TypeScript, JSX/TSX, and JavaScript files. It uses a modified version of @typescript/twoslash. Meaning all the typescript twoslash tips and tricks all work out of the box.

+

While primarily designed as a ChatGPT plugin for type checking TypeScript code, ai-typescript-check can also be used as a standalone API for type checking in any coding environment. We welcome your feedback and suggestions. You can check out the OpenAPI Spec to learn more about the API .well-known/open-api.yaml or using the website at ts-check.okikio.dev/.well-known/openapi.yaml

+

Install ChatGPT Plugin

+

From Store:

+
    +
  1. Navigate to the official OpenAI plugin store.
  2. +
  3. Search for this plugin.
  4. +
  5. Click on the plugin to view its details.
  6. +
  7. Click on the "Install" button to add the plugin to your ChatGPT.
  8. +
+

Manually:

+
    +
  1. Navigate to the official OpenAI plugin store.
  2. +
  3. Click on the "Install an unverified plugin" link.
  4. +
  5. Enter the official API URL ts-check.okikio.dev and click "Find Plugin".
  6. +
  7. ChatGPT will then walk you through the steps of installing the plugin, if it's not yet on the store.
  8. +
  9. Create a new chat using GPT-4 with Plugins.
  10. +
  11. Enable the "Typescript Code Analyzer API" plugin and start.
  12. +
+

Usage

+

Prompt

+
+

Type check transferables

+
import { hasTransferables } from "transferables" 
+
+

Response

+
+

The TypeScript code:

+
import { hasTransferables } from "transferables"
+

imports a function named hasTransferables from a module named "transferables". The function hasTransferables takes up to three parameters:

+
    +
  1. obj: unknown - The object to check for transferables.
  2. +
  3. streams?: boolean - An optional parameter that, if true, includes streams in the check for transferables.
  4. +
  5. maxCount?: number - An optional parameter that limits the number of iterations the function will perform when checking for transferables.
  6. +
+

The function returns a boolean value indicating whether the input contains at least one transferable object, up to a maximum number of iterations.

+

Please note that the function hasTransferables is imported but not used in your code, which is why the TypeScript compiler is giving a warning.

+

Here is the type information for hasTransferables:

+
(alias) function hasTransferables(obj: unknown, streams?: boolean, maxCount?: number): boolean
+

And here is the documentation for the function:

+
Quickly checks to see if input contains at least one transferable object, up to a max number of iterations
+

You can see the code in the TypeScript playground here.

+
+

Here's this exmaple on ChatGPT: https://chat.openai.com/share/a94731fb-b599-4896-b754-e9771c2b1e99

+

API

+

To utilize ai-typescript-check, please follow the steps below:

+
// Instantiate a new FormData object
+const formData = new FormData();
+formData.append("code", "import { hasTransferables } from \"transferables\"");
+formData.append("extension", "ts");
+
+// Initiate a POST request to the API
+const res = await fetch("https://ts-check.okikio.dev/twoslash", {
+  method: "POST",
+  body: formData
+})
+
+// Output the response
+console.log({
+  json: await res.json()
+})
+

Alternatively, you can pass the options as a query parameter:

+
// Define the options
+const options = JSON.stringify({
+  "code": `import { hasTransferables } from "transferables"`,
+  "extension": "ts"
+});
+
+// Initiate a GET request to the API
+const res = await fetch(`https://ts-check.okikio.dev/twoslash?options=${options}`)
+
+// Output the response
+console.log({
+  json: await res.json()
+})
+

Response

+

The API will return a JSON object containing the following information:

+ +

Here's an example response:

+
{
+  "code": "import { hasTransferables } from \"transferables\"",
+  "extension": "ts",
+  "highlights": [],
+  "queries": [],
+  "staticQuickInfos": [
+    {
+      "text": "(alias) function hasTransferables(obj: unknown, streams?: boolean, maxCount?: number): boolean\nimport hasTransferables",
+      "docs": "Quickly checks to see if input contains at least one transferable object, up to a max number of iterations\nThanks @aaorris for the help optimizing perf.",
+      "start": 9,
+      "length": 16,
+      "line": 0,
+      "character": 9,
+      "targetString": "hasTransferables"
+    }
+  ],
+  "errors": [],
+  "warnings": [
+    {
+      "category": 2,
+      "code": 6133,
+      "length": 48,
+      "line": 0,
+      "character": 0,
+      "renderedMessage": "'hasTransferables' is declared but its value is never read.",
+      "id": "warn-6133-0-48"
+    }
+  ],
+  "playgroundURL": "https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAbzgCwIYGcAqVUDt0BmApjgEYA2R6cAvnAVBCHAEQw77FmXotA",
+  "tags": []
+}
+

API Reference

+

ai-typescript-check provides two main API endpoints: POST /twoslash and GET /twoslash. Both endpoints accept TwoSlashOptions as input and return TwoSlashReturn as output.

+

POST /twoslash

+

This endpoint is designed for processing larger code inputs. It accepts TwoSlashOptions as JSON/FormData and returns TwoSlashReturn JSON. It supports ts, js, tsx, jsx.

+

Request Body

+

The request body should be a JSON object or FormData with the following properties:

+ +

Response

+

The response is a TwoSlashReturn JSON object with details about the code.

+

GET /twoslash

+

This endpoint is designed for processing smaller amounts of code that are 254 characters in length or less. It accepts TwoSlashOptions as JSON/FormData and returns TwoSlashReturn JSON. It supports ts, js, tsx, jsx.

+

Query Parameters

+

The query parameters should include the options parameter with the same properties as the request body for the POST endpoint.

+

Response

+

The response is a TwoSlashReturn JSON object with details about the code.

+

Error Handling

+

In the event of an error during the processing of your code, the API will return a TwoslashError JSON object with details about the error. This object includes the following properties:

+ +

License

+

ai-typescript-check is licensed under the MIT License.

\ No newline at end of file -- 2.51.2