diff --git a/.github/screenshot.png b/.github/screenshot.png index db2a761..3f32451 100644 Binary files a/.github/screenshot.png and b/.github/screenshot.png differ diff --git a/README.md b/README.md index 3825a91..f385d07 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# Example: Shared Shopping List +# Example: Screenshot app -This repository demonstrates some essential concept of the [UIX](https://uix.unyt.org) framework such as [pointers](https://unyt.org/glossary#pointer), [SSR](https://unyt.org/glossary#ssr) and [Web components](https://unyt.org/glossary#web-components) using the example of a **shared shopping list**. +This repository demonstrates some essential concept of the [UIX](https://uix.unyt.org) framework such as [Realm Imports](https://unyt.org/glossary#realm-import) and [Web components](https://unyt.org/glossary#web-components) using the example of a **website screenshot app**. -The repository includes persistent data storage and implements both [front-end](https://unyt.org/glossary#back-end) and [back-end](https://unyt.org/glossary#back-end) rendering with [hydration](https://unyt.org/glossary#hydration). +The repository includes persistent file storage and implements [front-end](https://unyt.org/glossary#back-end). ## Installation 1. Install the **UIX command line tool** following the [Getting Started](https://docs.unyt.org/manual/uix/getting-started#the-uix-command-line-tool) guide in our documentation. @@ -11,7 +11,7 @@ The repository includes persistent data storage and implements both [front-end]( 2. Clone this repository to your local machine: ```bash - $ git clone https://github.com/unyt-org/example-shared-list.git + $ git clone https://github.com/unyt-org/example-website-screenshot.git ``` 3. Run the project local ```bash @@ -24,48 +24,37 @@ This diagram outlines the UIX default project structure. We split our code base in [back-end](https://unyt.org/glossary#back-end), [front-end](https://unyt.org/glossary#front-end), and commons folder. ``` . -└── example-shared-list/ +└── example-website-screenshot/ ├── backend/ │ ├── .dx // Config file for deployment │ └── entrypoint.tsx // Back-end entrypoint ├── common/ │ ├── compoments/ - │ │ ├── List.scss // List style declaration - │ │ ├── List.tsx // List component - │ │ ├── Overview.scss // Overview style declaration - │ │ └── Overview.tsx // Overview component - │ └── theme.ts // Global style theme + │ │ ├── MainPage.scss // Main style declaration + │ │ └── MainPage.tsx // Main component ├── frontend/ │ ├── entrypoint.css // Front-end style declaration │ └── entrypoint.tsx // Front-end entrypoint ├── app.dx // Endpoint config file - └── deno.json // Deno config file + └── deno.json // Deno config file ``` ## Features -* Support for multiple synced lists -* Items can be checked/unchecked -* Items contain name, amount and unit -* Items can be added and removed -* Unchecked items can be auto-removed +* Take screenshot on the back-end +* Display of screenshot on front-end +* Auto caching support +* Exposes UIX.FileProvider on `/image/*`-route ## Preview ## Explanation -### Concept of Pointers -In [UIX](https://uix.unyt.org), [Pointers](https://unyt.org/glossary#pointer) are a fundamental concept for managing shared data across different parts of your application. Pointers allow different components or [endpoints](https://unyt.org/glossary#endpoint) to access and modify the same data. In the context of our shared shopping list, a Pointer could represent the list of items to buy. +### Persistent Storage of Files +To provide a seamless experience, our screenshot app demonstrates how to persistently store files. This means that even if the application is restarted, previous screenshots will be stored. -Pointers are synchronized over the [Supranet](https://unyt.org/glossary#supranet), based on our powerful [DATEX](https://datex.unyt.org) networking protocol that ensures real-time updates and consistency across endpoints. When one user adds or removes an item from the shopping list, the changes are propagated to all connected endpoints through the Supranet, keeping the data in sync. - -### Persistent Storage of Pointer Data -To provide a seamless experience, our shared shopping list app also demonstrates how to persistently store Pointer data. This means that even if the application is restarted, the shopping list will be up-to-date. - -### Front-End Rendering and Hydration -UIX supports both front-end and back-end rendering with hydration. Front-end rendering allows us to create a dynamic and interactive user interface on the client side. When a user interacts with the shopping list (e.g., adds or removes items), the changes are reflected in real-time. - -Hydration is the process of converting the initial HTML content sent from the server into a fully interactive UI on the client side. This ensures that the app is ready for user interactions as soon as it loads. +### File Provider +To access files the back-end exposes a route via UIX.FileProvider to serve static files. --- diff --git a/app.dx b/app.dx index 4974895..6ea6afb 100644 --- a/app.dx +++ b/app.dx @@ -1,4 +1,4 @@ -name: "SharedList Example", +name: "Website Screenshot Example", icon_path: "https://cdn.unyt.org/unyt-resources/logos/unyt/square-dark-background.png"; plugin git_deploy ( diff --git a/backend/.dx b/backend/.dx index 366d003..f798781 100644 --- a/backend/.dx +++ b/backend/.dx @@ -1,7 +1,7 @@ use stage from #public.uix; endpoint: stage { - prod: @+example_list + prod: @+example_screenshot }, location: stage { @@ -9,5 +9,5 @@ location: stage { }, domain: stage { - prod: 'shared-list.unyt.app' + prod: 'screenshot.unyt.app' } \ No newline at end of file diff --git a/backend/Capture.ts b/backend/Capture.ts new file mode 100644 index 0000000..8d54634 --- /dev/null +++ b/backend/Capture.ts @@ -0,0 +1,24 @@ +import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts"; + +export default class Capture { + static async take(url: string | URL, fullPage = false, size = { + width: 1920, + height: 1080 + }) { + const browser = await puppeteer.launch({ + headless: true, + ignoreHTTPSErrors: true, + timeout: 60_000, + }); + const page = await browser.newPage(); + await page.setViewport(size); + await page.goto(url.toString(), { + waitUntil: "networkidle2" + }); + const result = await page.screenshot({ + fullPage + }) as Buffer; + await browser.close(); + return result; + } +} \ No newline at end of file diff --git a/backend/entrypoint.tsx b/backend/entrypoint.tsx index 93704a9..be0de49 100644 --- a/backend/entrypoint.tsx +++ b/backend/entrypoint.tsx @@ -1,10 +1,39 @@ import { UIX } from "uix/uix.ts"; -import "common/theme.ts"; -import { Overview } from "common/components/Overview.tsx"; -import { listStorage } from "backend/lists.ts"; +import { UIX_CACHE_PATH } from "uix/uix_all.ts"; +import Capture from './Capture.ts'; +import { Path } from "uix/utils/path.ts"; +import { timeout } from "unyt_core/datex_all.ts"; -// The frontend routes definition +@endpoint export class Screenshot { + @timeout(40_000) + @property static async take(url: string | URL, config?: { + width: number, + height: number, + fullSize?: boolean + }): Promise { + const fileName = `${url.toString().replaceAll(/[^a-zA-Z0-9\?\-\.]+/g, '_')}.png`; + const filePath = UIX_CACHE_PATH.getChildPath(fileName); + if (filePath.fs_exists) + return this.getImage(filePath); + + const fileData = await Capture.take( + url, + config?.fullSize, { + width: config?.width ?? 1920, + height: config?.height ?? 1080 + } + ); + await Deno.writeFile(filePath, fileData); + return this.getImage(filePath); + } + + static getImage(filePath: Path<`${string}:`, boolean>) { + return as HTMLImageElement; + } +} + +// The backend routes definition export default { - '/': UIX.renderStatic(), // On '/'-route display the overview component - '*': null // Letting the frontend handle all other routes + '/': null, + '/image/*': new UIX.FileProvider(UIX_CACHE_PATH) } satisfies UIX.Entrypoint; \ No newline at end of file diff --git a/backend/lists.ts b/backend/lists.ts deleted file mode 100644 index afed62d..0000000 --- a/backend/lists.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Datex } from "unyt_core/datex.ts"; - -// Declaration of list storage map as persistent pointer with default list -export const listStorage: Map = eternalVar('listStorage') ?? $$(new Map([[ - "jonas", - $$({ - title: "Jonas Shopping List", - items: $$(new Set([ - $$({ - name: "Milk", - amount: 1, - type: "Bottle", - checked: false - }), - $$({ - name: "Butter", - amount: 4, - type: "Piece", - checked: false - }), - $$({ - name: "Beer", - amount: 2, - type: "Bottle", - checked: false - }) - ])) - }) -]])); - - -// The list item type definition -export type ListItem = { - name: string, - checked?: boolean, - amount?: number, - type?: string -} - -// The shared list type definition -export type SharedList = { - title: string, - items: Set> -} - -// Expose this class as public endpoint property -@endpoint export class Lists { - - @property static async get(id: string): Promise { - if (!listStorage.has(id)) { - // create new list - const newList: SharedList = { - title: id, - items: $$(new Set()) - } - listStorage.set(id, $$(newList)); - } - return listStorage.get(id)!; - } - -} \ No newline at end of file diff --git a/common/components/List.scss b/common/components/List.scss deleted file mode 100644 index 7f97afc..0000000 --- a/common/components/List.scss +++ /dev/null @@ -1,123 +0,0 @@ - -:host { - &>div { - box-sizing: border-box; - padding: 10px; - margin: auto; - border-left: 1px solid gray; - border-right: 1px solid gray; - background-color: var(--bg_lighter); - max-width: 700px; - display: flex; - flex-direction: column; - width: calc(100% - 20px); - @media (max-width: 480px) { - border: 0px; - width: 100%; - } - height: 100%; - &>.header { - &>h1 { - text-align: center; - } - } - &>ol { - margin: 0; - padding: 0; - &>li { - cursor: pointer; - box-sizing: border-box; - list-style: none; - width: 100%; - padding: 20px; - padding-left: 0; - border-bottom: 1px solid gray; - display: flex; - align-items: center; - font-size: larger; - &>input { - margin-right: 10px; - width: 20px; - height: 20px; - } - &>span { - margin-left: 6px; - font-size: medium; - } - &[data-checked] { - opacity: 0.4; - text-decoration: line-through; - } - } - } - .button { - cursor: pointer; - &.add-button { - border: 2px solid var(--accent); - background-color: var(--accent); - } - &.remove-button { - border: 2px solid var(--green); - background-color: var(--green); - } - padding: 10px; - width: 80%; - margin: auto; - margin-bottom: 0; - text-align: center; - color: white; - border-radius: 10px; - margin-top: 20px; - &:hover { - background-color: transparent; - } - } - } - .dialog { - display: none; - &.active { - display: flex; - } - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - margin: auto; - width: 500px; - height: fit-content; - padding: 40px; - background-color: var(--bg_color); - border: 1px solid gray; - border-radius: 10px; - justify-content: center; - align-items: center; - flex-direction: column; - grid-gap: 20px; - gap: 20px; - input, select { - box-sizing: border-box; - padding: 20px; - width: 100%; - background-color: transparent; - border: 2px solid gray; - border-radius: 6px; - font-size: large; - } - div { - background-color: var(--accent); - padding: 10px; - font-size: larger; - border-radius: 10px; - display: flex; - width: 100px; - justify-content: center; - align-items: center; - cursor: pointer; - color: white; - &:hover { - opacity: 0.7; - } - } - } -} diff --git a/common/components/List.tsx b/common/components/List.tsx deleted file mode 100644 index 2656907..0000000 --- a/common/components/List.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { UIX } from "uix"; -import { type SharedList } from "backend/lists.ts"; -import { map, always } from "unyt_core/functions.ts"; - -@UIX.template(function(this: List) { - return
-
-

{this.options.$.list.$.title}

-
-
    - { - map(this.options.list.items, (item, index) => -
  1. - - - {item.$.amount} {item.$.type}{always(()=>item.amount! > 1 ? 's': '')} -
  2. - ) - } -
-
this.toggleDialog())}> - Add Item -
-
this.removeChecked())}> - Cleanup -
-
- - - -
this.addItem())}>Add
-
-
-}) -export class List extends UIX.BaseComponent { - /** references to the DOM elements */ - @id declare name: HTMLInputElement; - @id declare amount: HTMLInputElement; - @id declare type: HTMLOptionElement; - @id declare dialog: HTMLDivElement; - - // Life-cycle method that is called when the component is displayed - protected override onDisplay(): void | Promise { - console.info("The list pointer", this.options.list) - } - - // Method to toggle the dialog - private toggleDialog(value?: boolean) { - this.dialog.classList.toggle("active", value); - } - - // Cleanup method that removes all checked items - private removeChecked() { - for (const item of [...this.options.list.items]) { - if (item.checked) { - console.info("Deleting item:", item) - this.options.list.items.delete(item) - } - } - } - - // Method that adds an item to the list - private addItem() { - if (!this.name.value) - return alert("Please enter a name"); - - this.options.list.items.add($$({ - checked: false, - name: this.name.value, - amount: Number(this.amount.value), - type: this.type.value, - })); - - this.toggleDialog(false); - } -} \ No newline at end of file diff --git a/common/components/MainPage.scss b/common/components/MainPage.scss new file mode 100644 index 0000000..8d9fbd5 --- /dev/null +++ b/common/components/MainPage.scss @@ -0,0 +1,72 @@ + +:host { + &>div { + display: flex; + flex-direction: column; + font-size: x-large; + padding: 10px; + width: 70%; + margin: auto; + align-items: center; + margin-top: 40px; + text-align: center; + &>h1 { + &>b { + color: var(--yellow); + } + margin-bottom: 0; + } + &>input, &>div:first-of-type { + width: 100%; + padding: 20px; + background-color: var(--text_highlight); + color: var(--bg_dark); + font-size: 20px; + height: 30px; + border: none; + margin-top: 60px; + border-radius: 10px; + display: flex; + justify-content: center; + align-items: center; + } + #submit { + opacity: 0.4; + &.active { + opacity: 1; + } + } + &>div:first-of-type { + margin-top: 10px; + background-color: var(--accent); + color: var(--text_highlight); + font-size: 26px; + cursor: pointer; + border: 3px solid var(--accent); + transition: background-color 0.2s; + &.active:hover { + background-color: transparent; + } + } + &>p { + margin-top: 50px; + align-items: flex-start; + display: flex; + width: 120%; + } + img { + width: 120%; + display: flex; + border-radius: 6px; + } + #images { + flex-direction: column; + grid-gap: 20px; + gap: 20px; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 30px; + } + } +} diff --git a/common/components/MainPage.tsx b/common/components/MainPage.tsx new file mode 100644 index 0000000..fd23220 --- /dev/null +++ b/common/components/MainPage.tsx @@ -0,0 +1,42 @@ +import { UIX } from "uix"; +import { Screenshot } from 'backend/entrypoint.tsx'; + +@UIX.template(function(this: MainPage) { + return
+

UIX Screenshot App

+ Get a screenshot of any given URL. + + +
this.capture())} class="submit active">Capture
+ +

Screenshot

+
+
+}) +export class MainPage extends UIX.BaseComponent { + @id declare url: HTMLInputElement; + @id declare images: HTMLDivElement; + @id declare submit: HTMLDivElement; + + private async capture() { + if (!this.submit.classList.contains("active")) + return; + + const url = this.url.value.startsWith("http") ? + this.url.value : + `https://${this.url.value}`; + + this.url.disabled = true; + this.submit.classList.toggle("active", false); + try { + const image = await Screenshot.take(url); + this.images.prepend(image); + } catch (error) { + console.error(error); + alert("Oups, could not create screenshot!"); + } finally { + this.submit.classList.toggle("active", true); + this.url.disabled = false; + } + } +} \ No newline at end of file diff --git a/common/components/Overview.scss b/common/components/Overview.scss deleted file mode 100644 index c959bf7..0000000 --- a/common/components/Overview.scss +++ /dev/null @@ -1,13 +0,0 @@ - -:host { - &>div { - display: flex; - flex-direction: column; - font-size: x-large; - margin-top: 40px; - padding: 10px; - text-align: center; - grid-gap: 20px; - gap: 20px; - } -} diff --git a/common/components/Overview.tsx b/common/components/Overview.tsx deleted file mode 100644 index c41a0e1..0000000 --- a/common/components/Overview.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { UIX } from "uix"; -import { SharedList } from "backend/lists.ts"; -import { map } from "unyt_core/functions.ts"; - -@UIX.template(function(this: Overview) { - return
-

Overview

- { - map(this.options.lists, ([key, val]) => ( - {val.title} - )) - } -
-}) -export class Overview extends UIX.BaseComponent<{lists: Map}> {} \ No newline at end of file diff --git a/common/theme.ts b/common/theme.ts deleted file mode 100644 index 3defe1a..0000000 --- a/common/theme.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { UIX } from "uix"; - -UIX.Theme.setDarkTheme(UIX.Theme.extend(UIX.Theme.DARK, 'unyt-dark', { - unyt_razzmatazz: '#ff0059', - unyt_sky_blue: '#2AAAD7', - accent: '#2AAAD7', - text_accent_1: "#ffffff", - bg_color: "#1a1e2a", - bg_darker: "rgba(255, 255, 255, 0.6)", - bg_lighter: "#1d2231", - text: "#ababab", - outline: "rgb(61, 65, 77)", - - accent_1: '#2aaad7', - accent_2: '#9c74e4', - accent_3: '#e474bf', - accent_4: '#e47474', - accent_5: '#e4ad74' -})) - - -UIX.Theme.setLightTheme(UIX.Theme.extend(UIX.Theme.LIGHT, 'unyt-light', { - unyt_razzmatazz: '#ff0059', - unyt_sky_blue: '#2AAAD7', - text_highlight: "#000000", - accent: '#2AAAD7', - text_accent_1: "#000000", - bg_color: "white", - bg_darker: "rgba(255, 255, 255, 0.6)", - bg_lighter: "#f9f9f9", - bg_content_dark: "#dddddd", - outline: "#e8e8e8", - - accent_1: '#2aaad7', - accent_2: '#9c74e4', - accent_3: '#e474bf', - accent_4: '#e47474', - accent_5: '#e4ad74' -})) - - -// default mode is dark mode -once(() => UIX.Theme.setMode("dark")); \ No newline at end of file diff --git a/deno.lock b/deno.lock index 0b237a1..6f9d8fa 100644 --- a/deno.lock +++ b/deno.lock @@ -22,6 +22,7 @@ "https://deno.land/std@0.140.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", "https://deno.land/std@0.140.0/hash/sha256.ts": "803846c7a5a8a5a97f31defeb37d72f519086c880837129934f5d6f72102a8e8", "https://deno.land/std@0.140.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", + "https://deno.land/std@0.140.0/io/types.d.ts": "01f60ae7ec02675b5dbed150d258fc184a78dfe5c209ef53ba4422b46b58822c", "https://deno.land/std@0.140.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", "https://deno.land/std@0.140.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", "https://deno.land/std@0.140.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", @@ -159,6 +160,138 @@ "https://deno.land/std@0.177.0/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", "https://deno.land/std@0.177.0/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", "https://deno.land/std@0.177.0/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", + "https://deno.land/std@0.177.1/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462", + "https://deno.land/std@0.177.1/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.177.1/async/abortable.ts": "73acfb3ed7261ce0d930dbe89e43db8d34e017b063cf0eaa7d215477bf53442e", + "https://deno.land/std@0.177.1/async/deadline.ts": "c5facb0b404eede83e38bd2717ea8ab34faa2ffb20ef87fd261fcba32ba307aa", + "https://deno.land/std@0.177.1/async/debounce.ts": "adab11d04ca38d699444ac8a9d9856b4155e8dda2afd07ce78276c01ea5a4332", + "https://deno.land/std@0.177.1/async/deferred.ts": "42790112f36a75a57db4a96d33974a936deb7b04d25c6084a9fa8a49f135def8", + "https://deno.land/std@0.177.1/async/delay.ts": "73aa04cec034c84fc748c7be49bb15cac3dd43a57174bfdb7a4aec22c248f0dd", + "https://deno.land/std@0.177.1/async/mod.ts": "f04344fa21738e5ad6bea37a6bfffd57c617c2d372bb9f9dcfd118a1b622e576", + "https://deno.land/std@0.177.1/async/mux_async_iterator.ts": "70c7f2ee4e9466161350473ad61cac0b9f115cff4c552eaa7ef9d50c4cbb4cc9", + "https://deno.land/std@0.177.1/async/pool.ts": "fd082bd4aaf26445909889435a5c74334c017847842ec035739b4ae637ae8260", + "https://deno.land/std@0.177.1/async/retry.ts": "5efa3ba450ac0c07a40a82e2df296287b5013755d232049efd7ea2244f15b20f", + "https://deno.land/std@0.177.1/async/tee.ts": "47e42d35f622650b02234d43803d0383a89eb4387e1b83b5a40106d18ae36757", + "https://deno.land/std@0.177.1/bytes/index_of_needle.ts": "65c939607df609374c4415598fa4dad04a2f14c4d98cd15775216f0aaf597f24", + "https://deno.land/std@0.177.1/crypto/timing_safe_equal.ts": "8d69ab611c67fe51b6127d97fcfb4d8e7d0e1b6b4f3e0cc4ab86744c3691f965", + "https://deno.land/std@0.177.1/encoding/base64.ts": "7de04c2f8aeeb41453b09b186480be90f2ff357613b988e99fabb91d2eeceba1", + "https://deno.land/std@0.177.1/encoding/base64url.ts": "3f1178f6446834457b16bfde8b559c1cd3481727fe384d3385e4a9995dc2d851", + "https://deno.land/std@0.177.1/flags/mod.ts": "d1cdefa18472ef69858a17df5cf7c98445ed27ac10e1460183081303b0ebc270", + "https://deno.land/std@0.177.1/fmt/printf.ts": "e5b426cd6ad13df5d408e9c375c025d59de30e380c5534715bd892df874ab057", + "https://deno.land/std@0.177.1/node/_core.ts": "9a58c0ef98ee77e9b8fcc405511d1b37a003a705eb6a9b6e95f75434d8009adc", + "https://deno.land/std@0.177.1/node/_events.d.ts": "1347437fd6b084d7c9a4e16b9fe7435f00b030970086482edeeb3b179d0775af", + "https://deno.land/std@0.177.1/node/_events.mjs": "d4ba4e629abe3db9f1b14659fd5c282b7da8b2b95eaf13238eee4ebb142a2448", + "https://deno.land/std@0.177.1/node/_global.d.ts": "2d88342f38b4083b858998e27c706725fb03a74aa14ef8d985dc18438b5188e4", + "https://deno.land/std@0.177.1/node/_next_tick.ts": "9a3cf107d59b019a355d3cf32275b4c6157282e4b68ea85b46a799cb1d379305", + "https://deno.land/std@0.177.1/node/_process/exiting.ts": "6e336180aaabd1192bf99ffeb0d14b689116a3dec1dfb34a2afbacd6766e98ab", + "https://deno.land/std@0.177.1/node/_process/process.ts": "c96bb1f6253824c372f4866ee006dcefda02b7050d46759736e403f862d91051", + "https://deno.land/std@0.177.1/node/_process/stdio.mjs": "cf17727eac8da3a665851df700b5aca6a12bacc3ebbf33e63e4b919f80ba44a6", + "https://deno.land/std@0.177.1/node/_process/streams.mjs": "408777fba99580567f3ee82ee584ca79012cc550f8dacb8c5ec633b58cd0c1ca", + "https://deno.land/std@0.177.1/node/_stream.d.ts": "112e1a0677cd6db932c3ce0e6e5bbdc7a2ac1874572f449044ecc82afcf5ee2e", + "https://deno.land/std@0.177.1/node/_stream.mjs": "d6e2c86c1158ac65b4c2ca4fa019d7e84374ff12e21e2175345fe68c0823efe3", + "https://deno.land/std@0.177.1/node/_util/_util_callbackify.ts": "a7ffe799ac5f54f3a780ee1c9b190b94dc7dc8afbb430c0e1c73756638d25d64", + "https://deno.land/std@0.177.1/node/_utils.ts": "7fd55872a0cf9275e3c080a60e2fa6d45b8de9e956ebcde9053e72a344185884", + "https://deno.land/std@0.177.1/node/buffer.ts": "85617be2063eccaf177dbb84c7580d1e32023724ed14bd9df4e453b152a26167", + "https://deno.land/std@0.177.1/node/events.ts": "d2de352d509de11a375e2cb397d6b98f5fed4e562fc1d41be33214903a38e6b0", + "https://deno.land/std@0.177.1/node/internal/buffer.d.ts": "bdfa991cd88cb02fd08bf8235d2618550e3e511c970b2a8f2e1a6885a2793cac", + "https://deno.land/std@0.177.1/node/internal/buffer.mjs": "e92303a3cc6d9aaabcd270a937ad9319825d9ba08cb332650944df4562029b27", + "https://deno.land/std@0.177.1/node/internal/crypto/_keys.ts": "8f3c3b5a141aa0331a53c205e9338655f1b3b307a08085fd6ff6dda6f7c4190b", + "https://deno.land/std@0.177.1/node/internal/crypto/constants.ts": "544d605703053218499b08214f2e25cf4310651d535b7ab995891c4b7a217693", + "https://deno.land/std@0.177.1/node/internal/error_codes.ts": "8495e33f448a484518d76fa3d41d34fc20fe03c14b30130ad8e936b0035d4b8b", + "https://deno.land/std@0.177.1/node/internal/errors.ts": "1c699b8a3cb93174f697a348c004b1c6d576b66688eac8a48ebb78e65c720aae", + "https://deno.land/std@0.177.1/node/internal/fixed_queue.ts": "62bb119afa5b5ae8fc0c7048b50502347bec82e2588017d0b250c4671d6eff8f", + "https://deno.land/std@0.177.1/node/internal/hide_stack_frames.ts": "9dd1bad0a6e62a1042ce3a51eb1b1ecee2f246907bff44835f86e8f021de679a", + "https://deno.land/std@0.177.1/node/internal/net.ts": "5538d31b595ac63d4b3e90393168bc65ace2f332c3317cffa2fd780070b2d86c", + "https://deno.land/std@0.177.1/node/internal/normalize_encoding.mjs": "fd1d9df61c44d7196432f6e8244621468715131d18cc79cd299fc78ac549f707", + "https://deno.land/std@0.177.1/node/internal/options.ts": "888f267c3fe8f18dc7b2f2fbdbe7e4a0fd3302ff3e99f5d6645601e924f3e3fb", + "https://deno.land/std@0.177.1/node/internal/primordials.mjs": "a72d86b5aa55d3d50b8e916b6a59b7cc0dc5a31da8937114b4a113ad5aa08c74", + "https://deno.land/std@0.177.1/node/internal/process/per_thread.mjs": "10142bbb13978c2f8f79778ad90f3a67a8ea6d8d2970f3dfc6bf2c6fff0162a2", + "https://deno.land/std@0.177.1/node/internal/readline/callbacks.mjs": "bdb129b140c3b21b5e08cdc3d8e43517ad818ac03f75197338d665cca1cbaed3", + "https://deno.land/std@0.177.1/node/internal/readline/utils.mjs": "c3dbf3a97c01ed14052cca3848f09e2fc24818c1822ceed57c33b9f0840f3b87", + "https://deno.land/std@0.177.1/node/internal/streams/destroy.mjs": "b665fc71178919a34ddeac8389d162a81b4bc693ff7dc2557fa41b3a91011967", + "https://deno.land/std@0.177.1/node/internal/streams/end-of-stream.mjs": "a4fb1c2e32d58dff440d4e716e2c4daaa403b3095304a028bb428575cfeed716", + "https://deno.land/std@0.177.1/node/internal/streams/utils.mjs": "f2fe2e6bdc506da24c758970890cc2a21642045b129dee618bd3827c60dd9e33", + "https://deno.land/std@0.177.1/node/internal/util.mjs": "f7fe2e1ca5e66f550ad0856b9f5ee4d666f0c071fe212ea7fc7f37cfa81f97a5", + "https://deno.land/std@0.177.1/node/internal/util/comparisons.ts": "9a7d95401b3d1c99ec5b12250cf6dec75efc75764b4a18be257dd8bfbe67496e", + "https://deno.land/std@0.177.1/node/internal/util/debuglog.ts": "a2392980a65cc6916afc17fa6686242ee0e3b47bd98c792ff59358560b24185e", + "https://deno.land/std@0.177.1/node/internal/util/inspect.mjs": "11d7c9cab514b8e485acc3978c74b837263ff9c08ae4537fa18ad56bae633259", + "https://deno.land/std@0.177.1/node/internal/util/types.ts": "0e587b44ec5e017cf228589fc5ce9983b75beece6c39409c34170cfad49d6417", + "https://deno.land/std@0.177.1/node/internal/validators.mjs": "e02f2b02dd072a5d623970292588d541204dc82207b4c58985d933a5f4b382e6", + "https://deno.land/std@0.177.1/node/internal_binding/_libuv_winerror.ts": "30c9569603d4b97a1f1a034d88a3f74800d5ea1f12fcc3d225c9899d4e1a518b", + "https://deno.land/std@0.177.1/node/internal_binding/_listen.ts": "c6038be47116f7755c01fd98340a0d1e8e66ef874710ab59ed3f5607d50d7a25", + "https://deno.land/std@0.177.1/node/internal_binding/_node.ts": "cb2389b0eab121df99853eb6a5e3a684e4537e065fb8bf2cca0cbf219ce4e32e", + "https://deno.land/std@0.177.1/node/internal_binding/_timingSafeEqual.ts": "7d9732464d3c669ff07713868ce5d25bc974a06112edbfb5f017fc3c70c0853e", + "https://deno.land/std@0.177.1/node/internal_binding/_utils.ts": "7c58a2fbb031a204dee9583ba211cf9c67922112fe77e7f0b3226112469e9fe1", + "https://deno.land/std@0.177.1/node/internal_binding/_winerror.ts": "3e8cfdfe22e89f13d2b28529bab35155e6b1730c0221ec5a6fc7077dc037be13", + "https://deno.land/std@0.177.1/node/internal_binding/ares.ts": "bdd34c679265a6c115a8cfdde000656837a0a0dcdb0e4c258e622e136e9c31b8", + "https://deno.land/std@0.177.1/node/internal_binding/async_wrap.ts": "0dc5ae64eea2c9e57ab17887ef1573922245167ffe38e3685c28d636f487f1b7", + "https://deno.land/std@0.177.1/node/internal_binding/buffer.ts": "31729e0537921d6c730ad0afea44a7e8a0a1044d070ade8368226cb6f7390c8b", + "https://deno.land/std@0.177.1/node/internal_binding/cares_wrap.ts": "9b7247772167f8ed56acd0244a232d9d50e8d7c9cfc379f77f3d54cecc2f32ab", + "https://deno.land/std@0.177.1/node/internal_binding/config.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/connection_wrap.ts": "7dd089ea46de38e4992d0f43a09b586e4cf04878fb06863c1cb8cb2ece7da521", + "https://deno.land/std@0.177.1/node/internal_binding/constants.ts": "21ff9d1ee71d0a2086541083a7711842fc6ae25e264dbf45c73815aadce06f4c", + "https://deno.land/std@0.177.1/node/internal_binding/contextify.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/credentials.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/crypto.ts": "29e8f94f283a2e7d4229d3551369c6a40c2af9737fad948cb9be56bef6c468cd", + "https://deno.land/std@0.177.1/node/internal_binding/errors.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/fs.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/fs_dir.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/fs_event_wrap.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/handle_wrap.ts": "adf0b8063da2c54f26edd5e8ec50296a4d38e42716a70a229f14654b17a071d9", + "https://deno.land/std@0.177.1/node/internal_binding/heap_utils.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/http_parser.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/icu.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/inspector.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/js_stream.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/messaging.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/mod.ts": "9fc65f7af1d35e2d3557539a558ea9ad7a9954eefafe614ad82d94bddfe25845", + "https://deno.land/std@0.177.1/node/internal_binding/module_wrap.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/native_module.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/natives.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/node_file.ts": "21edbbc95653e45514aff252b6cae7bf127a4338cbc5f090557d258aa205d8a5", + "https://deno.land/std@0.177.1/node/internal_binding/node_options.ts": "0b5cb0bf4379a39278d7b7bb6bb2c2751baf428fe437abe5ed3e8441fae1f18b", + "https://deno.land/std@0.177.1/node/internal_binding/options.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/os.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/performance.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/pipe_wrap.ts": "30e3a63954313f9d5bbc2ac02c7f9be4b1204c493e47f6e1b9c7366994e6ea6d", + "https://deno.land/std@0.177.1/node/internal_binding/process_methods.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/report.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/serdes.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/signal_wrap.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/spawn_sync.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/stream_wrap.ts": "452bff74d1db280a0cd78c75a95bb6d163e849e06e9638c4af405d40296bd050", + "https://deno.land/std@0.177.1/node/internal_binding/string_decoder.ts": "54c3c1cbd5a9254881be58bf22637965dc69535483014dab60487e299cb95445", + "https://deno.land/std@0.177.1/node/internal_binding/symbols.ts": "4dee2f3a400d711fd57fa3430b8de1fdb011e08e260b81fef5b81cc06ed77129", + "https://deno.land/std@0.177.1/node/internal_binding/task_queue.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/tcp_wrap.ts": "d298d855e862fc9a5c94e13ad982fde99f6d8a56620a4772681b7226f5a15c91", + "https://deno.land/std@0.177.1/node/internal_binding/timers.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/tls_wrap.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/trace_events.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/tty_wrap.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/types.ts": "2187595a58d2cf0134f4db6cc2a12bf777f452f52b15b6c3aed73fa072aa5fc3", + "https://deno.land/std@0.177.1/node/internal_binding/udp_wrap.ts": "b77d7024aef1282b9fe6e1f6c8064ab8a7b9ecbae0bc08a36f2b30dcbb1d2752", + "https://deno.land/std@0.177.1/node/internal_binding/url.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/util.ts": "808ff3b92740284184ab824adfc420e75398c88c8bccf5111f0c24ac18c48f10", + "https://deno.land/std@0.177.1/node/internal_binding/uv.ts": "eb0048e30af4db407fb3f95563e30d70efd6187051c033713b0a5b768593a3a3", + "https://deno.land/std@0.177.1/node/internal_binding/v8.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/worker.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/internal_binding/zlib.ts": "37d293009d1718205bf28e878e54a9f1ca24c1c320cee2416c20dc054104c6ea", + "https://deno.land/std@0.177.1/node/process.ts": "6608012d6d51a17a7346f36079c574b9b9f81f1b5c35436489ad089f39757466", + "https://deno.land/std@0.177.1/node/stream.ts": "09e348302af40dcc7dc58aa5e40fdff868d11d8d6b0cfb85cbb9c75b9fe450c7", + "https://deno.land/std@0.177.1/node/string_decoder.ts": "1a17e3572037c512cc5fc4b29076613e90f225474362d18da908cb7e5ccb7e88", + "https://deno.land/std@0.177.1/node/util.ts": "4c12edeafde7e50dfe2d4022e383decb422c77858b938b093698cb7250c9e125", + "https://deno.land/std@0.177.1/node/util/types.ts": "461b2e1118fd32456967e14b99f01c892dee1e94d144d6b96e9d94eb086a9574", + "https://deno.land/std@0.177.1/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.177.1/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.177.1/path/_util.ts": "d7abb1e0dea065f427b89156e28cdeb32b045870acdf865833ba808a73b576d0", + "https://deno.land/std@0.177.1/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.177.1/path/glob.ts": "d479e0a695621c94d3fd7fe7abd4f9499caf32a8de13f25073451c6ef420a4e1", + "https://deno.land/std@0.177.1/path/mod.ts": "4b83694ac500d7d31b0cdafc927080a53dc0c3027eb2895790fb155082b0d232", + "https://deno.land/std@0.177.1/path/posix.ts": "8b7c67ac338714b30c816079303d0285dd24af6b284f7ad63da5b27372a2c94d", + "https://deno.land/std@0.177.1/path/separator.ts": "0fb679739d0d1d7bf45b68dacfb4ec7563597a902edbaf3c59b50d5bcadd93b1", + "https://deno.land/std@0.177.1/path/win32.ts": "d186344e5583bcbf8b18af416d13d82b35a317116e6460a5a3953508c3de5bba", + "https://deno.land/std@0.177.1/streams/write_all.ts": "3b2e1ce44913f966348ce353d02fa5369e94115181037cd8b602510853ec3033", + "https://deno.land/std@0.177.1/types.d.ts": "220ed56662a0bd393ba5d124aa6ae2ad36a00d2fcbc0e8666a65f4606aaa9784", "https://deno.land/std@0.201.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", "https://deno.land/std@0.201.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", "https://deno.land/std@0.201.0/async/abortable.ts": "fd682fa46f3b7b16b4606a5ab52a7ce309434b76f820d3221bdfb862719a15d7", @@ -172,7 +305,109 @@ "https://deno.land/std@0.201.0/async/retry.ts": "296fb9c323e1325a69bee14ba947e7da7409a8dd9dd646d70cb51ea0d301f24e", "https://deno.land/std@0.201.0/async/tee.ts": "47e42d35f622650b02234d43803d0383a89eb4387e1b83b5a40106d18ae36757", "https://deno.land/std@0.201.0/datetime/to_imf.ts": "8f9c0af8b167031ffe2e03da01a12a3b0672cc7562f89c61942a0ab0129771b2", + "https://deno.land/std@0.201.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", + "https://deno.land/std@0.201.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978", + "https://deno.land/std@0.201.0/fs/ensure_dir.ts": "dc64c4c75c64721d4e3fb681f1382f803ff3d2868f08563ff923fdd20d071c40", "https://deno.land/std@0.201.0/http/cookie.ts": "d965ca071376732663738861bc5dd524df5d8ee69658de40dbfe41c39e379aa4", + "https://deno.land/std@0.201.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", + "https://deno.land/std@0.201.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.201.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", + "https://deno.land/std@0.201.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", + "https://deno.land/std@0.201.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", + "https://deno.land/std@0.201.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", + "https://deno.land/std@0.201.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", + "https://deno.land/std@0.201.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", + "https://deno.land/std@0.201.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", + "https://deno.land/std@0.201.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", + "https://deno.land/std@0.201.0/path/_os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3", + "https://deno.land/std@0.201.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", + "https://deno.land/std@0.201.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", + "https://deno.land/std@0.201.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", + "https://deno.land/std@0.201.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", + "https://deno.land/std@0.201.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", + "https://deno.land/std@0.201.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", + "https://deno.land/std@0.201.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", + "https://deno.land/std@0.201.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", + "https://deno.land/std@0.201.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", + "https://deno.land/std@0.201.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", + "https://deno.land/std@0.201.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", + "https://deno.land/std@0.201.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", + "https://deno.land/std@0.201.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", + "https://deno.land/std@0.201.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", + "https://deno.land/std@0.201.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", + "https://deno.land/std@0.201.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", + "https://deno.land/std@0.201.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", + "https://deno.land/std@0.201.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", + "https://deno.land/std@0.201.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", + "https://deno.land/std@0.201.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", + "https://deno.land/std@0.201.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", + "https://deno.land/std@0.201.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", + "https://deno.land/std@0.201.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", + "https://deno.land/std@0.201.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", + "https://deno.land/std@0.201.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", + "https://deno.land/std@0.69.0/_util/assert.ts": "e1f76e77c5ccb5a8e0dbbbe6cce3a56d2556c8cb5a9a8802fc9565af72462149", + "https://deno.land/std@0.69.0/fs/_util.ts": "68508c05d5a02678179a02beabf2b3eac5b16c5a9cbd1c272686d8101bb2679d", + "https://deno.land/std@0.69.0/fs/copy.ts": "b562e8f482cb8459bb011cbd769769bbdb4f6bc966effd277c06edbdbe41b72e", + "https://deno.land/std@0.69.0/fs/ensure_dir.ts": "54cf0cfb16160857116d1bdff98214ad0189275fe2f089607fdc06c52ac79cc4", + "https://deno.land/std@0.69.0/fs/exists.ts": "5429dce6587bfcdde06a7a2a1fd5ad932c17d74ca082e67934fa646cff1d2e57", + "https://deno.land/std@0.69.0/path/_constants.ts": "aba480c4a2c098b6374fdd5951fea13ecc8aaaf8b8aa4dae1871baa50243d676", + "https://deno.land/std@0.69.0/path/_interface.ts": "5876f91d35fd42624893a4aaddaee352144e1f46e719f1dde6511bab7c3c1029", + "https://deno.land/std@0.69.0/path/_util.ts": "f0fa012d40ae9b6acbef03908e534eb11e694de6470fb4d78ea4f38829e735ab", + "https://deno.land/std@0.69.0/path/common.ts": "e4ec66a7416d56f60331b66e27a8a4f08c7b1cf48e350271cb69754a01cf5c04", + "https://deno.land/std@0.69.0/path/glob.ts": "43cc45e8649a35a199c4106dfdf66206f46dfd8e2e626a746512c1a1376fde99", + "https://deno.land/std@0.69.0/path/mod.ts": "6de8885c2534757097818e302becd1cefcbc4c28ac022cc279e612ee04e8cfd1", + "https://deno.land/std@0.69.0/path/posix.ts": "40c387415fca91b3482214cf74880c415cda90b337bebd2c9d4b62d2097bc146", + "https://deno.land/std@0.69.0/path/separator.ts": "9dd15d46ff84a16e13554f56af7fee1f85f8d0f379efbbe60ac066a60561f036", + "https://deno.land/std@0.69.0/path/win32.ts": "9e200471f24fb560d22e74b238133cb75ebb57bead933de1cc5aefed4cda3346", + "https://deno.land/std@0.91.0/_util/assert.ts": "2f868145a042a11d5ad0a3c748dcf580add8a0dbc0e876eaa0026303a5488f58", + "https://deno.land/std@0.91.0/_util/os.ts": "e282950a0eaa96760c0cf11e7463e66babd15ec9157d4c9ed49cc0925686f6a7", + "https://deno.land/std@0.91.0/encoding/base64.ts": "eecae390f1f1d1cae6f6c6d732ede5276bf4b9cd29b1d281678c054dc5cc009e", + "https://deno.land/std@0.91.0/encoding/hex.ts": "f952e0727bddb3b2fd2e6889d104eacbd62e92091f540ebd6459317a61932d9b", + "https://deno.land/std@0.91.0/fs/_util.ts": "f2ce811350236ea8c28450ed822a5f42a0892316515b1cd61321dec13569c56b", + "https://deno.land/std@0.91.0/fs/ensure_dir.ts": "f21262e788a707aaa2dd22064da7cd40e3b2f0f067e9b2aed1b288091170cc05", + "https://deno.land/std@0.91.0/fs/exists.ts": "b0d2e31654819cc2a8d37df45d6b14686c0cc1d802e9ff09e902a63e98b85a00", + "https://deno.land/std@0.91.0/hash/_wasm/hash.ts": "cb6ad1ab429f8ac9d6eae48f3286e08236d662e1a2e5cfd681ba1c0f17375895", + "https://deno.land/std@0.91.0/hash/_wasm/wasm.js": "94b1b997ae6fb4e6d2156bcea8f79cfcd1e512a91252b08800a92071e5e84e1a", + "https://deno.land/std@0.91.0/hash/hasher.ts": "57a9ec05dd48a9eceed319ac53463d9873490feea3832d58679df6eec51c176b", + "https://deno.land/std@0.91.0/hash/mod.ts": "5d032bd34186cda2f8d17fc122d621430953a6030d4b3f11172004715e3e2441", + "https://deno.land/std@0.91.0/path/_constants.ts": "1247fee4a79b70c89f23499691ef169b41b6ccf01887a0abd131009c5581b853", + "https://deno.land/std@0.91.0/path/_interface.ts": "1fa73b02aaa24867e481a48492b44f2598cd9dfa513c7b34001437007d3642e4", + "https://deno.land/std@0.91.0/path/_util.ts": "2e06a3b9e79beaf62687196bd4b60a4c391d862cfa007a20fc3a39f778ba073b", + "https://deno.land/std@0.91.0/path/common.ts": "eaf03d08b569e8a87e674e4e265e099f237472b6fd135b3cbeae5827035ea14a", + "https://deno.land/std@0.91.0/path/glob.ts": "4a524c1c9da3e79a9fdabdc6e850cd9e41bdf31e442856ffa19c5b123268ca95", + "https://deno.land/std@0.91.0/path/mod.ts": "4465dc494f271b02569edbb4a18d727063b5dbd6ed84283ff906260970a15d12", + "https://deno.land/std@0.91.0/path/posix.ts": "f56c3c99feb47f30a40ce9d252ef6f00296fa7c0fcb6dd81211bdb3b8b99ca3b", + "https://deno.land/std@0.91.0/path/separator.ts": "8fdcf289b1b76fd726a508f57d3370ca029ae6976fcde5044007f062e643ff1c", + "https://deno.land/std@0.91.0/path/win32.ts": "77f7b3604e0de40f3a7c698e8a79e7f601dc187035a1c21cb1e596666ce112f8", + "https://deno.land/std@0.93.0/_util/assert.ts": "2f868145a042a11d5ad0a3c748dcf580add8a0dbc0e876eaa0026303a5488f58", + "https://deno.land/std@0.93.0/_util/os.ts": "e282950a0eaa96760c0cf11e7463e66babd15ec9157d4c9ed49cc0925686f6a7", + "https://deno.land/std@0.93.0/bytes/mod.ts": "1ae1ccfe98c4b979f12b015982c7444f81fcb921bea7aa215bf37d84f46e1e13", + "https://deno.land/std@0.93.0/encoding/base64.ts": "eecae390f1f1d1cae6f6c6d732ede5276bf4b9cd29b1d281678c054dc5cc009e", + "https://deno.land/std@0.93.0/fmt/printf.ts": "7ec612e9b89958b8f7710129f74f502327aad285a9e48ee5297f5882fbc3a078", + "https://deno.land/std@0.93.0/fs/_util.ts": "f2ce811350236ea8c28450ed822a5f42a0892316515b1cd61321dec13569c56b", + "https://deno.land/std@0.93.0/fs/copy.ts": "631bbafbfe6cba282158abc8aeb7e8251cc69a7ec28ce12878ea1b75fec2add4", + "https://deno.land/std@0.93.0/fs/ensure_dir.ts": "b7c103dc41a3d1dbbb522bf183c519c37065fdc234831a4a0f7d671b1ed5fea7", + "https://deno.land/std@0.93.0/fs/exists.ts": "b0d2e31654819cc2a8d37df45d6b14686c0cc1d802e9ff09e902a63e98b85a00", + "https://deno.land/std@0.93.0/fs/walk.ts": "8d37f2164a7397668842a7cb5d53b9e7bcd216462623b1b96abe519f76d7f8b9", + "https://deno.land/std@0.93.0/io/buffer.ts": "2a92f02c1d8daaebaf13e5678ea5969c89f4fab533f687b9e7e86f49f11c3118", + "https://deno.land/std@0.93.0/io/bufio.ts": "729ea49afacd27ed0687451c694752dcaa68250871d1c957ca886ef5d82c461f", + "https://deno.land/std@0.93.0/io/ioutil.ts": "275fa440494df9b4b3aa656301ced2eeac533feec128b3a39b2b40f4cd957e42", + "https://deno.land/std@0.93.0/io/mod.ts": "ae04a3f647845dd8ce0a523c208f80636d0640d9e5c730f0e6272cf86c1c0855", + "https://deno.land/std@0.93.0/io/readers.ts": "17403919724fef2f343c88555606368868a5c752a1099ad801f6a381c170f62d", + "https://deno.land/std@0.93.0/io/streams.ts": "61c441d9d60eda8d5a3782517042536ce87ffd29a8bb72bdab4bdb5fe048e877", + "https://deno.land/std@0.93.0/io/util.ts": "843ccf667ff291ba2315c2419a54b4e76dbc7c0f6c3152f640eac4dc954e3753", + "https://deno.land/std@0.93.0/io/writers.ts": "5453864be11da42dc91f19eb14c0a0e27e9e7f21f5c7174f5419921a6ab64fda", + "https://deno.land/std@0.93.0/path/_constants.ts": "1247fee4a79b70c89f23499691ef169b41b6ccf01887a0abd131009c5581b853", + "https://deno.land/std@0.93.0/path/_interface.ts": "1fa73b02aaa24867e481a48492b44f2598cd9dfa513c7b34001437007d3642e4", + "https://deno.land/std@0.93.0/path/_util.ts": "2e06a3b9e79beaf62687196bd4b60a4c391d862cfa007a20fc3a39f778ba073b", + "https://deno.land/std@0.93.0/path/common.ts": "eaf03d08b569e8a87e674e4e265e099f237472b6fd135b3cbeae5827035ea14a", + "https://deno.land/std@0.93.0/path/glob.ts": "4a524c1c9da3e79a9fdabdc6e850cd9e41bdf31e442856ffa19c5b123268ca95", + "https://deno.land/std@0.93.0/path/mod.ts": "4465dc494f271b02569edbb4a18d727063b5dbd6ed84283ff906260970a15d12", + "https://deno.land/std@0.93.0/path/posix.ts": "f56c3c99feb47f30a40ce9d252ef6f00296fa7c0fcb6dd81211bdb3b8b99ca3b", + "https://deno.land/std@0.93.0/path/separator.ts": "8fdcf289b1b76fd726a508f57d3370ca029ae6976fcde5044007f062e643ff1c", + "https://deno.land/std@0.93.0/path/win32.ts": "77f7b3604e0de40f3a7c698e8a79e7f601dc187035a1c21cb1e596666ce112f8", + "https://deno.land/x/cache@0.2.12/deps.ts": "f992c28c82770eab287f0ea332eae502e397c78e5f27a0a4512f59dd54dee865", + "https://deno.land/x/cache@0.2.12/directories.ts": "ef48531cab3f827252e248596d15cede0de179a2fb15392ae24cf8034519994f", "https://deno.land/x/deno_cache@0.4.1/auth_tokens.ts": "5fee7e9155e78cedf3f6ff3efacffdb76ac1a76c86978658d9066d4fb0f7326e", "https://deno.land/x/deno_cache@0.4.1/cache.ts": "51f72f4299411193d780faac8c09d4e8cbee951f541121ef75fcc0e94e64c195", "https://deno.land/x/deno_cache@0.4.1/deno_dir.ts": "f2a9044ce8c7fe1109004cda6be96bf98b08f478ce77e7a07f866eff1bdd933f", @@ -183,19 +418,170 @@ "https://deno.land/x/deno_cache@0.4.1/http_cache.ts": "f632e0d6ec4a5d61ae3987737a72caf5fcdb93670d21032ddb78df41131360cd", "https://deno.land/x/deno_cache@0.4.1/mod.ts": "ef1cda9235a93b89cb175fe648372fc0f785add2a43aa29126567a05e3e36195", "https://deno.land/x/deno_cache@0.4.1/util.ts": "8cb686526f4be5205b92c819ca2ce82220aa0a8dd3613ef0913f6dc269dbbcfe", + "https://deno.land/x/deno_graph@0.26.0/lib/deno_graph.generated.js": "2f7ca85b2ceb80ec4b3d1b7f3a504956083258610c7b9a1246238c5b7c68f62d", + "https://deno.land/x/deno_graph@0.26.0/lib/loader.ts": "380e37e71d0649eb50176a9786795988fc3c47063a520a54b616d7727b0f8629", + "https://deno.land/x/deno_graph@0.26.0/lib/media_type.ts": "222626d524fa2f9ebcc0ec7c7a7d5dfc74cc401cc46790f7c5e0eab0b0787707", + "https://deno.land/x/deno_graph@0.26.0/lib/snippets/deno_graph-de651bc9c240ed8d/src/deno_apis.js": "41192baaa550a5c6a146280fae358cede917ae16ec4e4315be51bef6631ca892", + "https://deno.land/x/deno_graph@0.26.0/lib/types.d.ts": "2bbdbf895321d1df8db511fab00160a0211c09c2e7cac56c522dd6e9ed6d2ef7", + "https://deno.land/x/deno_graph@0.26.0/mod.ts": "11131ae166580a1c7fa8506ff553751465a81c263d94443f18f353d0c320bc14", + "https://deno.land/x/deno_shot@1.3/mod.ts": "03a335d7fcf48c2ed00d31ce6dd435d9a3ad39387419141763e6a17ae67e1bcf", + "https://deno.land/x/deno_shot@1.3/src/Config.ts": "369e8ba9e25e037e9230cb2c28a2f5269d23a7a58d3f86841686b48ea266395b", + "https://deno.land/x/deno_shot@1.3/src/utils.ts": "1be1da0a8d0a8952e22083e21e9c9fe524658345652ec742f3333a01715dcc1c", "https://deno.land/x/denosass@1.0.6/mod.ts": "5e9c142055d658f3acb2b370d0b412c783ed4b27db830f387525fb7f69a7ab3d", "https://deno.land/x/denosass@1.0.6/src/deps.ts": "cb5fa11799e3def8b593be3b5939d2755a2c7f1f4987f3af1bc4ad90922d3715", "https://deno.land/x/denosass@1.0.6/src/mod.ts": "d2b63172f98238f77831995a5d6c8a06af5252ad8fbe7b9ec40b60eae86f2164", "https://deno.land/x/denosass@1.0.6/src/types/module.types.ts": "7a5027482ded1d2967fbe690ef8f928446c5de8811c3333f9b09ae6e8122f9ba", "https://deno.land/x/denosass@1.0.6/src/wasm/grass.deno.js": "a72432ce8d6b8f9c31e31c71415fdca03fe36aa22417e414bc81e2e21a8a687b", + "https://deno.land/x/ink@1.3/htmlToAnsi.ts": "e261ae5f71f202e3f685f07b5dd64c48d3d06196fe055d803c8b6b878c3a96ed", + "https://deno.land/x/ink@1.3/imageToAnsi.ts": "f68e961380d301aa69a16fac647d13f7925062af69a15f595af13025bf6b8d86", + "https://deno.land/x/ink@1.3/mod.ts": "0f4896daf3ea816f3f70a63aca91a856d7ddb517f8d75b28e2c69584445c0f3f", + "https://deno.land/x/ink@1.3/models/BackgroundColorStyle.ts": "9b454790718fb9d07d2b3e2dc9147a203c41d6986427a285a0e8cdc239cd2b8b", + "https://deno.land/x/ink@1.3/models/ColorStyle.ts": "630d9a22b4c43cf01d230b18aa1ca0ba4a7ec0825edcb86d78a303641a0d0666", + "https://deno.land/x/ink@1.3/models/FontStyle.ts": "f4975422a06751e7c38561cf02c15ecc0cf6f9101f3eec5f85f6bb564d6896ce", + "https://deno.land/x/ink@1.3/models/IStyleBase.ts": "dae2c6e5fbd1462fd3f821ba9d6cde337f251eeb5c20083ee37e64b5c7a3031a", + "https://deno.land/x/ink@1.3/models/StyleBase.ts": "eab8ac11e1706cfc4a69d28a3d0b8fef5b6fb8f435d346d2af5c0a6a00d43ddf", + "https://deno.land/x/ink@1.3/tsdom/styleparser.ts": "18d3f30a47fdad5c253d6ad12ca9a044f596a48418efbbce513c4b44568ff0f6", + "https://deno.land/x/ink@1.3/tsdom/tsdom.ts": "e09fe2fa550f2e341cd47042344fb042269b154fea27185194040b75d2cea02f", + "https://deno.land/x/ink@1.3/utils.ts": "38814b9f85c33d13665964796b9fd80238dd1fc75d9770016fad1a473128c480", "https://deno.land/x/input@2.0.3/history.ts": "3cad3fee1e2f86d4202ca6ab49f1a5609aff2323ff762cc637e1da3edbef9608", "https://deno.land/x/input@2.0.3/index.ts": "f9539661733886f9497873a640a79be4f996ea2d40408b68e74691353f5a5539", "https://deno.land/x/input@2.0.3/printer.ts": "60339de0f3d98ca9ad2cb4e3b047d0b680e27ed7ceb987d82d96fc00f7ab04d1", "https://deno.land/x/input@2.0.3/types.ts": "915079a7187073c9c9c99863ab4e4a4c7341e25bf5d4a2e02c33f8b896dd0c69", + "https://deno.land/x/jpegts@1.1/lib/decoder.ts": "b8823ee917fc99a1e085c353b2cd4ca1fbaacaaf1f80be94175e42487666c822", + "https://deno.land/x/jpegts@1.1/lib/encoder.ts": "d75fc5ae88f77e1fa349af08d7a46937add31a03b6d3605ff4d2e3303eb32b3b", + "https://deno.land/x/jpegts@1.1/lib/image.ts": "32255e99b6c1bf4e72e13367516a0d878ba9d195d81fac1f145ce4c11e951962", + "https://deno.land/x/jpegts@1.1/lib/pixel.ts": "19f7f28f09514157be87d01d1d12915cc17c787d8c1707899d2f5570ac6a12fe", + "https://deno.land/x/jpegts@1.1/mod.ts": "2014257f7269bcc822a4d6eb871e5002b347f13a641c12d45c1a61586374f127", "https://deno.land/x/mimetypes@v1.0.0/mod.ts": "abd1ea614b32cfa7fd50b46f6e070617696664698b8a34935dc807f3035ad408", "https://deno.land/x/mimetypes@v1.0.0/src/mime.ts": "7cd7590eae6127dc1abfe710900fc749e94d5c715ffe8a148e59fe20ee21a9a5", "https://deno.land/x/port@1.0.0/mod.ts": "2dc04ce1ccf133ae09205e30b550044c4c6f64a1a7d00ea91c66dbb9f6cc00f5", "https://deno.land/x/port@1.0.0/types.ts": "42d6ae4147d5d67408d60209da070ddfa79ec8389c6cab1b8002df0cf6c03af6", + "https://deno.land/x/puppeteer@16.2.0/mod.ts": "52a47aa1850fc0a8255d6c8c462f4ab7e43104d342e6de7bda334221ca8bdcac", + "https://deno.land/x/puppeteer@16.2.0/src/deno/BrowserFetcher.ts": "6be7a586667b429138994a4955b2339fc58af9b6d08378672c8a2b052045e308", + "https://deno.land/x/puppeteer@16.2.0/src/deno/BrowserRunner.ts": "a32b6d2df712afce5f0707aabb6fbcd1e9b1b20e90fc5c34daa081960a638e62", + "https://deno.land/x/puppeteer@16.2.0/src/deno/LaunchOptions.ts": "16a89285fade2690d50eaa3b81e1412cb6c4c4f0a4ac77484a8c016b5f860f9f", + "https://deno.land/x/puppeteer@16.2.0/src/deno/Launcher.ts": "aed1359406480cac72c82fd6944c5de098b1b08ed3c0bf750f4bb2ea75ec1f93", + "https://deno.land/x/puppeteer@16.2.0/src/deno/Puppeteer.ts": "cd01ac2f8b9e8fa9f30ceab1864fbccf20ea7c447794912248e83684706ad0ec", + "https://deno.land/x/puppeteer@16.2.0/src/initialize-deno.ts": "b19511d8fcddd0ed2f6f0938ec0d791f0549da4269cd07a9b05798d66ee23764", + "https://deno.land/x/puppeteer@16.2.0/src/mod.ts": "72d600588db0da6039b8a86f735328b3250512b1e48431ea2971f6a7da74033e", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Accessibility.d.ts": "1662e9ac35b9dad3534c55d0bd8b238fee6df9d8a5fec6ddeebdaf895de7cae2", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Accessibility.js": "0b68faa6d65f98309900d21027f3923876c78034efe8d62c149862a5f1f9f696", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.d.ts": "42324d5a97c762a74b12ff5735901929295bb4dc40f27a6dbe4e3cbfe55bd1fb", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/AriaQueryHandler.js": "0c89b1fc865afde7085d2eb59d3e133a5e4de9700abdb233e0c139bc878c4148", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Browser.d.ts": "606c69aa5aa3fba56dcf57afc15e5c88dc20e1f02b417afd63adc495329b0888", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Browser.js": "5a4246bc69be030ee4c04622c265f22316fe3e126f602d8412854496dabd610b", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/BrowserConnector.d.ts": "455968f88d63852fcf29bbb87c5b5e182a0d6485d288bb129c64acdeecf785c8", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/BrowserConnector.js": "bf35821f0daa788409c821a785d08853651f5fb3009802df83236a9798c9cb0c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.d.ts": "45cd3fb4d5fe4ba47f0902ecced0c37d0ee64f9c7eaa401ee28911e7e1fe4519", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js": "1a5a83d8953f578caa07909b17544a10aec33e3690552c2d6bc191aec0c74ccb", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ChromeTargetManager.d.ts": "90fb76475277fe27b556d1b59f9579b8bd3b64d96727e645f4cbc72d62db262d", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ChromeTargetManager.js": "574ad8b564eda146a73b4074ef83e70da73d80bef803b07ad6778de504b4b08c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Connection.d.ts": "e22ffb5a74eed5b043ccb38cccaf7c5b156a6c492676f159fbc48542c0d7088f", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Connection.js": "7b68d904e2b7f654324feb45e2ec17f642cb13b4bac0405bcf1beb46fcbd6232", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.d.ts": "66dcc087d1d6b0378874dbb19b89fa57016828931c4475cfae1d412b5c62b398", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ConnectionTransport.js": "81c099dd5b8c5dce1f078168614fddc90a56f7f3622c6c7eae624fa62522d661", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.d.ts": "c49c028666da2ca02f9c16607648319194c546585ffbc529be2b8fe0b3238cea", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ConsoleMessage.js": "82af42681337b3304c87f71e89caa90598edddb15a2d5d794a2b65b469a21461", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Coverage.d.ts": "36bc82394bcf34df4927c3743b6715fffb750e294790688310052ca508850f5e", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Coverage.js": "bebaee68ca9231d0f7f723bdc34b27b4145f5d162c45ae65cdaf039dce6fcb43", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Debug.d.ts": "3184694a3d2890738298dd24c8f7d13e8708bb919865a23039783c42b310eb5e", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Debug.js": "2db131d2d224f504bb083a33a43a2be103b3bdec4554c2efd18d84b0bc726691", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.d.ts": "71001e67308213022bf9e4cdb9c509e8f9288acb8970a7497735a5295c5ec211", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/DeviceDescriptors.js": "b53379c2756711961e8e574499052c9274a477cdc4ffb2e18440cba1d9e835d2", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Dialog.d.ts": "46198ecbb51c87fad578e7457c714ec83b59961f0573f79a97c74300adb2fd2d", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Dialog.js": "0c193b4703e6b799fb37da40a870023d83d605a55a08b9993efebc0670044dfd", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ElementHandle.d.ts": "dcbd5befecdea6c856a16943009d3f7e74d016aac1134af593f788cafc76b7b9", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ElementHandle.js": "1cc33711925f0a63088b25ca15846430e0004436f714f4eb8a5f26c51e5c64d5", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/EmulationManager.d.ts": "824d5b3aa23522d0c9a4131a4337787e3c194784ce44989a50092eea13467c48", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/EmulationManager.js": "8f46460f17e2066422fdbc84f8bebf21049c266f98413061c54901437e92e81b", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Errors.d.ts": "44ae763ec6ee6257abf80027fca5a58c2ce945346198b719753a3e6225f60954", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Errors.js": "e745fda7c9f59ac13aebec1c206074ee0f32beb5ef80d559f525d02af375a836", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/EventEmitter.d.ts": "e81e842c822b789d6660eeb45c5c86d2c301ce7d9656bed9cd8b709493e891fa", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/EventEmitter.js": "932e4374ca9c0d553f2ff1c12aa5e50432646105e2250753ce27c8dd2b0f0372", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ExecutionContext.d.ts": "4e2f596f6dfdbb66576f52bcb597f757d46826a07d6f220b4f82f5ebe1c84cff", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/ExecutionContext.js": "7d3112858a01ee84281b5a461c2b443c68353101a5db05dbce8f0e0160701b20", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FileChooser.d.ts": "953e7b82620408b803fb3f9c471fb2a76327172273b47b517dbfb289572a6e63", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FileChooser.js": "374afa00292e72740c341e9862049fc96583956410efa7e2d4277c469886ab59", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FirefoxTargetManager.d.ts": "051f1d884d23b59e2b8ad57540555e23e2931b2d1afaa2a7a58343d9c6c97577", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FirefoxTargetManager.js": "486925a2c4114c50b61e24e595b314795c6ccf8e922ac6de6158856f0ca74698", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Frame.d.ts": "9e93ed7c9eaa91b3a448ebb279d11330f250c8b99d2fb3c47bb217172857e0ee", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Frame.js": "4b1668171db1649e0c7e4d48db05d801e6b906d9015a9c524c26ea584b89ab96", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FrameManager.d.ts": "439fcc221cb8aabf53a9b8d624f8761c1e5b350c2dc10b414f73e838cbddc708", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/FrameManager.js": "787ec35f5513064b42e501a2b06162cd56f7cd177f69d3f46372c384dbbe3fa2", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/HTTPRequest.d.ts": "a4c626c3abb6a0b93fae60805a7e1998c009e1ca5e3fd33c5e356c4ad5028e41", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/HTTPRequest.js": "cd96da286e4484ece7c2852fd91490c0cb52b32494d11c519362a94c09d18dde", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/HTTPResponse.d.ts": "3a2252c91a93432ffd5784a8dd4fe0fc2a2fab7cddfa43277200337fa77820f0", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/HTTPResponse.js": "9cc7dd5bc9e87027dcd36a048c36a2651c295a1124be26733064812fbaadda7b", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Input.d.ts": "6ff105299caa6543b8370c566b308dab0275f0f783b6a86798c696280926c7a8", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Input.js": "b06a0dde90317937cac17beca95c7e53af2eca1e125a433f3f3ba7364d75a83b", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/IsolatedWorld.d.ts": "0d30f35fb6f87d802b3f2d5a3e4e6c3b005aefb49b086036eb07f6a033ee3257", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/IsolatedWorld.js": "0c86c3e08c56992a71cdd2b6c00693aa283fa51ad3acc1b5dfece29d0150b53c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/JSHandle.d.ts": "78f3fde964a55b41ff1f10afbfa0142cfcc99b5aaaf53b1d2b217f8c05766927", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/JSHandle.js": "d24a93e0b93f8a67359d539b53caff6635a29fc74960c26624561abc94054c48", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/LifecycleWatcher.d.ts": "b6db92fd1beaa30900d4602c575778639767dd1965b12527ecc9332f3f9b9988", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/LifecycleWatcher.js": "ab1365f3a2b3c425c797e850f68e3b031684e51d1b361e3aba50a096ecbfbcf6", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkConditions.d.ts": "5145df6e709affca5ee386323d82d783d46e150b934897f8f5d48deeb0966a93", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkConditions.js": "81d878736d8b5f65fc634d51aa4f17c67c2e401d01c3ee2bfbba8a578da1b502", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkEventManager.d.ts": "101dd31c4fb2f89ffaae8cf2ba18fa2d4e563755afde7be9a0e0e7568db05414", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkEventManager.js": "9dd099fdb8f9c3ec3cdbd49663fbb211b3e113cff0a0e17e8d0528e1387a1b8d", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkManager.d.ts": "b8d8ea0274ab603e948c8027bb3797f3dce1e15c72be43d916283bfaa118d87a", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/NetworkManager.js": "cf7ee9cc6899e42d82080185da4992c90ebd800bb9bfe0c7339296bf759a75b5", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/PDFOptions.d.ts": "289f5fcfea36c03071528d688950d16cc1cbff2fb68ac71505444b3e0bd0be36", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/PDFOptions.js": "02444592eb17c3fe725a326db25bd4516bb8b2b156c07eed8f989c8fdf965180", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Page.d.ts": "a20aa6e7422d4f908b82c89cb88a5a66cfb8603d9af3ba01dcafbbdf3bb6e449", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Page.js": "42cd535eeedfe7f0e2b1c26879bbe131b22fa9005e6d20e79e0645326671db81", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Product.d.ts": "25aa123b17f453cbd5c8cadb91b05727715bb16426fca75ead6fb4e119c96b58", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Product.js": "bf93481a7be7d15bf474b7dd0352cbf5f2282e7b27bef423be9a2971f227a823", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Puppeteer.d.ts": "a6193baf81153a42114ca6cb60b19e98da4e5a131b2ea25bdb65405706a25302", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Puppeteer.js": "e9e414d0104a773ac05aba8643828bc17d9f14c3562fa1d26bea00d276f8da4c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/PuppeteerViewport.d.ts": "f2552415e42dccac9cf9c111e97d45600eca9c8649935dd3d6eebfe969d5045a", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/PuppeteerViewport.js": "bb396810641954eeb95e60d4340aef70c0e0bf9c87f8b2887786d54d5c8118a6", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/QueryHandler.d.ts": "8c3902ce2aaa3aeaa88792fd3a37a1bc779a5fa3c1a6ebec22dc9c35dc3a1a91", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/QueryHandler.js": "653d7c74199d12283482e2e44e8770414103b312d6718dd4316007fd46b5d091", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/SecurityDetails.d.ts": "7fe26f7f3231955a6a28b1e4a543aab7b64d275be09ff12c03f50bd9e5e762a4", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/SecurityDetails.js": "0c8c9b77d7216eb53f920d7b24e353693f7385d0e86b8f69c197df4142af2981", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Target.d.ts": "444c6212a28308fed9f5f962d49d090fe000926d5d74c7774b9d394d39a036fd", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Target.js": "6965637348b625dd50e5692db4ea2a3257e71e92e93743865acb9b778fb31bef", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TargetManager.d.ts": "47c756daee57880b41b23e381c78f2790a63a21cc77fb14d85cb210e2f86bc72", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TargetManager.js": "be195fd820c380b7a61f09810986bafd1ecc9e8a96f86e856191ebb14ca8fe05", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TaskQueue.d.ts": "f7d35b6f93b74c69e57466b05495618469c35c982d5b4eb85b933ef921cd6307", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TaskQueue.js": "99de891382620fd905b3cdb523900939f147497dea377367fe89962c25b4b392", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TimeoutSettings.d.ts": "3281100412958f7d8c5c60a8e44a4b037275043420d417ad2d815a4531517c32", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/TimeoutSettings.js": "a66ed134363732a20c4d6b15d303eb076268101be43beffac4947de01715260c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Tracing.d.ts": "afd4a5c08aabd9b2306b54e28d5e30925af5fb29ff3eefefbab812ea3b1cc566", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/Tracing.js": "402aa026afabf6569577dd0de0be693c05462d386b8bb83cdf6eb11231f55691", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/USKeyboardLayout.d.ts": "a52c2f7d7da6b8c5ae1738eea0c424a0f082555ad75e9a0ce0a730a324b9519b", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/USKeyboardLayout.js": "1a1138b5b503f9c285d767fd4ab364cd567eb034e8d1c64c11e5d2a8f4b9714a", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/WebWorker.d.ts": "5ba907a2203d5b6d2f2bc35fcbe980709a4648e41f3181efe5fba1a77e7cb985", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/WebWorker.js": "b115e1c40232afe9c71e7322b31bc2eb90cb02d0d576f54f692353b8677892be", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/fetch.d.ts": "e5b29135bcdc9bd94440a3c6e5908d99ec3023bdd3a12392200180349d1ba70f", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/fetch.js": "085b136a4cd76cc930b1512f1513854293fc76cfb7bd52dc024ecb1ca0d4eacf", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/types.d.ts": "d8d9f7cdc0259be0c0f3a1464104864b506f88bf0c089afc1606d893fc39b465", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/types.js": "2e960c2577695d154e0ff17f850dbd786beeb42bd7b96617c6fbadcc282d20a3", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/util.d.ts": "bf2a147ee9a5d0d44aceb51780cf42a059ca6bbfee43ecbb9f5ded1f9cec95d9", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/util.js": "c2a1bd2d6444bf0263861892bb960bd2111200134617bdb0ac8e1b5bc00cad37", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/generated/injected.d.ts": "2a8235f178feeec6ab58289a79ad94aea90257990d9d76fd63697ea0a0bcbec8", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/generated/injected.js": "19021fb0bbccb51d940b3fd9a1c2f3edf3f497cc5b439ddcd751578515be0510", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/generated/version.d.ts": "b64f2a10d2ad474ba928249deb633008d16fd0969c857bcc306fb79b60b039cc", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/generated/version.js": "98cdb536e79a80aebf533181f23aee2dc6a519b68cee450941d6f8522a17d1c3", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/revisions.d.ts": "bb8f55b8ad370bd9acc198c4d02b3bdcdf5ff3d3b86d254f06dcd0350c86a175", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/revisions.js": "73bab96295d98b96687a72ce0face0ca322e033fd892eb498e856e6087fbe98c", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/types.d.ts": "98abe69225bb1a5dee1984cd616bda3545cbeb455e25a5dfa6e220e208fe1e72", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/types.js": "6d3502ab9da8cf5c338812b84909010d392d7bd3454c1cbfe0903e53de3929c2", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/DeferredPromise.d.ts": "45a0e82ab748b18807f171ef8f578c00a5d73fd8fc3b816833bf0c1cfee2fbc9", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/DeferredPromise.js": "c9e7b394c04644d5b6705503ff1f80aabd64f6b918a25220ed88d37007741a13", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/ErrorLike.d.ts": "861ec22b350897c19fd3761d790b8c6e3aa48a606670325a06254000800ad409", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/ErrorLike.js": "d2867293d032857b9a8cbac7882deb88f53f607cdb7efaa5be67b326513979ac", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/assert.d.ts": "9f4b45a11749693d62b47cf7f479c30d1eaf6897b772882fb0c8a1260731b9dc", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/util/assert.js": "463158c2d8421c9afa844beabb02192a30cb49c08eb01190d68ded32e7205cbc", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/cache.ts": "5237f44a6df69fbc9d9ccece95454d5b323f859af15fc516cd62fe3063132fbf", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/devtools-protocol/types/protocol-mapping.d.ts": "6e5600e930991a0d1acbda6bede1bcdc4bf0dfe3a83337697e482d5826769f32", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/devtools-protocol/types/protocol.d.ts": "415f69940e1564ec8c438a3c356d966c83d2a934f7404ee741500cfb2b1de73a", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/mitt/src/index.d.ts": "efb749054001ef2ffc0c92dfad0550d5dcdf77ca307fb992192cf32559f8d017", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/mitt/src/index.js": "b19eeafe8c1f3a5cded4b88bb2fe44f1ce4af618a80fcc91a7241a10fe9eba91", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/std.ts": "f40a7715328679df890400a7ed5ca6d959695f416f15f164cf3ad30bf0b00e90", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/zip/mod.ts": "29165da19740460ef193cd4f148c936176f22e6422b193fe6b7b1f2be78394d5", + "https://deno.land/x/puppeteer@16.2.0/vendor/puppeteer-core/vendor/zip/types.ts": "1528d1279fbb64dd118c371331c641a3a5eff2b594336fb38a7659cf4c53b2d1", "https://dev.cdn.unyt.org/command-line-args/main.ts": "daa4a6fa6185d828ca885a8d20617ca4b121fc987f9f898a64b432a8a0a09658", "https://dev.cdn.unyt.org/uix/app/app.ts": "8d0f86a4f33750f315c0e07c957a088e76fbdd36ee44b80169a690d4a80c8407", "https://dev.cdn.unyt.org/uix/app/args.ts": "d894e6a62d70bb9535a1db4ba13988aab64990e67ab9d4b62a165a665e029366", @@ -211,7 +597,7 @@ "https://dev.cdn.unyt.org/uix/app/utils.ts": "95c6eccc46f3f27ab2949a018c2a990ed823432dfb97093b0c35a1545bb65ee8", "https://dev.cdn.unyt.org/uix/base/actions.ts": "cbbe680d3019c3ac0860cdd74842cd0ff9f7375694e407febb610c3786391584", "https://dev.cdn.unyt.org/uix/base/clipboard.ts": "d8b5b440d470c26175cb92b583d414ce5affd402468e48cb5c86233069ad1121", - "https://dev.cdn.unyt.org/uix/base/context.ts": "802ff7464ce8756c82a8c7b99ff2fd54b23dee0ce518c5e8ff98fb0b41883be5", + "https://dev.cdn.unyt.org/uix/base/context.ts": "32eee794b672177eed760c65bc1aff64a3700103296d93879546720b27033e4a", "https://dev.cdn.unyt.org/uix/base/debug.ts": "dd6fa9688d8ecba9131a2c99fd9eb67b3fcf6146c5978d4f377ff0b694af6bbc", "https://dev.cdn.unyt.org/uix/base/decorators.ts": "e337098ee71bebe5d1b2f81608ddc6cec414970813bf4d7a83ae9246472ae81c", "https://dev.cdn.unyt.org/uix/base/dom_pointer_source.ts": "9e7c663636890bbd9ac1ece9c54a9792f13b200463de61785dd8e209bc6ef0e3", @@ -220,7 +606,7 @@ "https://dev.cdn.unyt.org/uix/base/init.ts": "8313d82e61dd55daa1f457163ba032651e7ec40c03c04a04c4ef31881a8eba96", "https://dev.cdn.unyt.org/uix/base/open-graph.ts": "a11108b783f9fde1c147740665aaaf6925a2da55a9d3d0b14f7a8c5e72ad54ab", "https://dev.cdn.unyt.org/uix/base/res.ts": "dea7791e5541dbf22fd72651ae0e2df4c7b1818398483a1337e86969ad391acb", - "https://dev.cdn.unyt.org/uix/base/routing.ts": "6845d46317be0f24c785036eea86b5c0b60b6b394b18cd790c3c06c565b4b9b9", + "https://dev.cdn.unyt.org/uix/base/routing.ts": "cb3c1a25ea789054dbf73ffb8f6e79a62ff4eb7605ed9fc31481e402c8069915", "https://dev.cdn.unyt.org/uix/base/snippets.ts": "6afc08f899b3abb36a4e8f6ba57de330a000f22c45f065dd658281a27c1d3de1", "https://dev.cdn.unyt.org/uix/base/state.ts": "36bdf669c46958390fec3af583dc8d6cbc19348e94433c70c27703b61925511f", "https://dev.cdn.unyt.org/uix/base/std_loader.ts": "0b32875876e2d9caccd2ad0a677c3db023c3fb7041d115e08f70acb7348c6846", @@ -254,7 +640,7 @@ "https://dev.cdn.unyt.org/uix/components/webportal.ts": "d8925687760e091e6490f9e1be9f727d4e20f1a14cd304e6ee464fcd5c59e528", "https://dev.cdn.unyt.org/uix/elements/main.ts": "5a91aedf4c1b660f37027d1764a0f40579227ba38a7e8c2dff1546c50425b9bb", "https://dev.cdn.unyt.org/uix/html/anonymous_components.ts": "928313d80ace50faa7dbe1aac481a9d1d8028d1f51bcbc3fef51dc13c4ef53c6", - "https://dev.cdn.unyt.org/uix/html/attributes.ts": "d00817fda137640beaa730369b4938ddf1b079f7c40206a4b6f95cda71f068d7", + "https://dev.cdn.unyt.org/uix/html/attributes.ts": "91949f67748fcbdffa734f015b5d51e6d2703068f3b3c62ab4e49b950db4bf34", "https://dev.cdn.unyt.org/uix/html/datex_binding.ts": "b1cd93143324959a2ace4e56945f5d8b3310326d655ef3718fda85b5ce465b2a", "https://dev.cdn.unyt.org/uix/html/deno_css_style_sheet.ts": "ba7115cba18d2eedba62970ccbb926ce7e0f467b6adc1ccc997fbce177e7cb28", "https://dev.cdn.unyt.org/uix/html/deno_dom.ts": "651131cbf49834db91943fb89f9745d1d996cdb962e96aa5164124323b9f1680", @@ -309,7 +695,6 @@ "https://dev.cdn.unyt.org/unyt_core/datex.ts": "e14ca15dcf7a5766d4451c514fa732214177af71be84b06985bb7189dfbd43e1", "https://dev.cdn.unyt.org/unyt_core/datex_all.ts": "831953bd7394e3051a8327269eedaadaaa1f2923192e838d85ad8fe321d951b4", "https://dev.cdn.unyt.org/unyt_core/datex_short.ts": "e859e936d843391489ffd2c668e8c840a659e9f0ecaf31b6d849bd38431d8bd6", - "https://dev.cdn.unyt.org/unyt_core/functions.ts": "21e716bd62e48c81a7594fa5540f11c5f14c6c6e9eb67dfb63fd7ce727dde391", "https://dev.cdn.unyt.org/unyt_core/js_adapter/js_class_adapter.ts": "1601a6d7ccdeb26433d6f3c064b9328f18a29d63d188ba429d0dc8f11bf3ca61", "https://dev.cdn.unyt.org/unyt_core/js_adapter/legacy_decorators.ts": "a4e89ef74be48bf593d5788d680e807cd4da7992cdb0a8c80b881dca45f37fec", "https://dev.cdn.unyt.org/unyt_core/lib/localforage/drivers/indexeddb.js": "94a6cfe0f3bfbe677bae59127c991405d68c4c54ae4d3dbbdb56072a471ece02", @@ -390,6 +775,21 @@ "https://dev.cdn.unyt.org/unyt_core/utils/promises.ts": "b43d38724a2fd42d1d0a3cc479bc21f7a75ccee872f680c46f50e99839e17803", "https://dev.cdn.unyt.org/unyt_core/utils/utils.ts": "a6977fe040a4295c0c6006b4e1a0e414cfbb56ffe8f6b1e8b18274fdfbdc89b9", "https://dev.cdn.unyt.org/unyt_core/wasm/adapter/pkg/datex_wasm.js": "e9416983fb275de1cd28849c3cb85ba3d3be05032e9246c73fe217e7a2d422c5", + "https://esm.sh/jszip@3.5.0": "96b9bdfd143bc84889ce6930d0b5957015e1dcd9008be77ba6326672daa9d2b5", + "https://esm.sh/v131/core-util-is@1.0.3/deno/core-util-is.mjs": "3bbe7857652598c977ec7f17089e6b5f9a1930800102a2282a83f637a9380481", + "https://esm.sh/v131/immediate@3.0.6/deno/immediate.mjs": "d8a1a647205ada85c0aa9ce5b2d0d4eddc0286c8bc04ed69bf1fe60f2b2069e1", + "https://esm.sh/v131/inherits@2.0.4/deno/inherits.mjs": "b1b4bf6d4d407dd1d2493f74699fdcc9ea2d2910999787dfa5512f0200c20e37", + "https://esm.sh/v131/isarray@1.0.0/deno/isarray.mjs": "b5b5cc5e507bcc42bd70d0cccb8872f766cc545236b822609de66f35c5c5fe02", + "https://esm.sh/v131/jszip@3.5.0/deno/jszip.mjs": "b85f8cada8be759e13e369e730b90f81be101690abf499a42bc9b277ee6bce0d", + "https://esm.sh/v131/jszip@3.5.0/index.d.ts": "149cdc795c569ecbc83ac2bc9ae0beb926d55d1d90990db8f73bfd58446e8a9e", + "https://esm.sh/v131/lie@3.3.0/deno/lie.mjs": "313144b718316bf21ddfe80f23c8b24a7569514c0caecea877c2c9753fa24438", + "https://esm.sh/v131/node.ns.d.ts": "0fb081f0cd2150931bd54baa04f31466abd9ca701fd9060d07931402cf8367ba", + "https://esm.sh/v131/pako@1.0.11/deno/pako.mjs": "ad3b48946cdaac794f30e0c54ce7380261f0e9afb25311d8a52d8d837128aa21", + "https://esm.sh/v131/process-nextick-args@2.0.1/deno/process-nextick-args.mjs": "11557768877f553ae266206bf6396b318c7130930f7475384bfdbf19def6ec7a", + "https://esm.sh/v131/readable-stream@2.3.8/deno/readable-stream.mjs": "820c05ed207b0e591fd069472840f7abb8e3638540a35bfdb14710d0fcc4fb51", + "https://esm.sh/v131/safe-buffer@5.1.2/deno/safe-buffer.mjs": "e6681244e5bf8393032c2570356ea57556d4243c4f14087316bcc5da754c9e6c", + "https://esm.sh/v131/set-immediate-shim@1.0.1/deno/set-immediate-shim.mjs": "23d1f7e5f5ba079a2253c29be5636803cbb08aefbf35249dd293e3b4d015c57f", + "https://esm.sh/v131/util-deprecate@1.0.2/deno/util-deprecate.mjs": "50b70be1921f54febfaa6eae171a7131bf7aa3a2b522606e34e2f18eb36ebbc4", "https://jspm.dev.webproxy.unyt.org/npm:@jspm/core@2.0.1/_/0545670c.js": "468e254a0e5f7801333f217fcee046141186bd0a960018c893d73910bd754b71", "https://jspm.dev.webproxy.unyt.org/npm:@jspm/core@2.0.1/_/3fe460d2.js": "991599d7a4ccc93f3dc0808aa706e713fd80a80fc8d21ec1fd28a96832030572", "https://jspm.dev.webproxy.unyt.org/npm:@jspm/core@2.0.1/_/4a7b19f3.js": "0987e28a89045f13547cdfd42adfb114158c9e444544cbfa0737679e3d3863ce", diff --git a/frontend/entrypoint.tsx b/frontend/entrypoint.tsx index b5ef6f0..93b4024 100644 --- a/frontend/entrypoint.tsx +++ b/frontend/entrypoint.tsx @@ -1,12 +1,6 @@ import { UIX } from "uix/uix.ts"; -import { Lists, listStorage } from "../backend/lists.ts"; -import { List } from "../common/components/List.tsx"; -import "../common/theme.ts"; -import { Overview } from "common/components/Overview.tsx"; +import { MainPage } from "../common/components/MainPage.tsx"; export default { - '/:id': async (ctx) => { - const id = ctx.urlMatch.get("id")!; // get list id - return // render the list component - } + '/': } satisfies UIX.Entrypoint;