diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-04-29 13:26:09 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-04-29 13:26:09 -0400 |
| commit | 042d4fa9523edb9b0613902d67452df10078c836 (patch) | |
| tree | 377a856295cdefa79ff5f807b1370c975e899e7a | |
| parent | 9d9614ad8a4a1d00f7df1b0e37ec32d324151335 (diff) | |
| download | xesite-yarn.tar.xz xesite-yarn.zip | |
fucking horrible typescript garbageyarn
Signed-off-by: Xe Iaso <me@xeiaso.net>
| -rw-r--r-- | flake.nix | 7 | ||||
| -rw-r--r-- | src/frontend/.gitignore | 3 | ||||
| -rw-r--r-- | src/frontend/build.mjs | 12 | ||||
| -rw-r--r-- | src/frontend/build.ts | 19 | ||||
| -rw-r--r-- | src/frontend/components/ConvSnippet.tsx | 3 | ||||
| -rw-r--r-- | src/frontend/components/MastodonShareButton.tsx | 32 | ||||
| -rw-r--r-- | src/frontend/components/NoFunAllowed.tsx | 7 | ||||
| -rw-r--r-- | src/frontend/components/Video.tsx | 22 | ||||
| -rw-r--r-- | src/frontend/components/WASITerm.tsx | 18 | ||||
| -rw-r--r-- | src/frontend/package-lock.json | 161 | ||||
| -rw-r--r-- | src/frontend/package.json | 37 | ||||
| -rw-r--r-- | src/frontend/tsconfig.json | 19 | ||||
| -rw-r--r-- | src/frontend/types/xeact.d.ts | 76 | ||||
| -rw-r--r-- | src/frontend/yarn.lock | 81 |
14 files changed, 430 insertions, 67 deletions
@@ -252,7 +252,8 @@ # frontend deno nodePackages.uglify-js - esbuild + nodejs + yarn zig # tools @@ -261,6 +262,10 @@ python311Packages.fonttools ]; + shellHook = '' + export PATH="$PATH":$(pwd)/src/frontend/node_modules/.bin + ''; + SITE_PREFIX = "devel."; CLACK_SET = "Ashlynn,Terry Davis,Dennis Ritchie"; ESBUILD_BINARY_PATH = "${pkgs.esbuild}/bin/esbuild"; diff --git a/src/frontend/.gitignore b/src/frontend/.gitignore index 5f98501..a3edb6a 100644 --- a/src/frontend/.gitignore +++ b/src/frontend/.gitignore @@ -1 +1,2 @@ -dist/*.js +dist/* +node_modules diff --git a/src/frontend/build.mjs b/src/frontend/build.mjs new file mode 100644 index 0000000..488e30f --- /dev/null +++ b/src/frontend/build.mjs @@ -0,0 +1,12 @@ +import * as esbuild from "esbuild"; + +const result = await esbuild.build({ + entryPoints: process.argv, + outdir: process.env.WRITE_TO + ? process.env.WRITE_TO + : "../../static/xeact", + bundle: true, + splitting: true, + format: "esm", + minifyWhitespace: !!process.env.MINIFY, +}); diff --git a/src/frontend/build.ts b/src/frontend/build.ts deleted file mode 100644 index ed36e2e..0000000 --- a/src/frontend/build.ts +++ /dev/null @@ -1,19 +0,0 @@ -import * as esbuild from "@esbuild"; -import { denoPlugin } from "@esbuild/deno"; - -const result = await esbuild.build({ - plugins: [denoPlugin({ - importMapURL: new URL("./import_map.json", import.meta.url), - })], - entryPoints: Deno.args, - outdir: Deno.env.get("WRITE_TO") - ? Deno.env.get("WRITE_TO") - : "../../static/xeact", - bundle: true, - splitting: true, - format: "esm", - minifyWhitespace: !!Deno.env.get("MINIFY"), -}); -console.log(result.outputFiles); - -esbuild.stop(); diff --git a/src/frontend/components/ConvSnippet.tsx b/src/frontend/components/ConvSnippet.tsx index 9644333..99c254e 100644 --- a/src/frontend/components/ConvSnippet.tsx +++ b/src/frontend/components/ConvSnippet.tsx @@ -1,6 +1,3 @@ -// @jsxImportSource xeact -// @jsxRuntime automatic - export interface ConvSnippetProps { name: string; mood: string; diff --git a/src/frontend/components/MastodonShareButton.tsx b/src/frontend/components/MastodonShareButton.tsx index d809ee9..a0d56f0 100644 --- a/src/frontend/components/MastodonShareButton.tsx +++ b/src/frontend/components/MastodonShareButton.tsx @@ -1,17 +1,15 @@ -// @jsxImportSource xeact -// @jsxRuntime automatic - -import { u, useState } from "xeact"; +import { u } from "@xeserv/xeact"; +import { useState } from 'preact/hooks'; export interface MastodonShareButtonProps { title: string; url: string; series?: string; - tags: string; + tags: string[]; } export default function MastodonShareButton( - { title, url = u(), series, tags }: MastodonShareButtonProps, + { title, url = u("", {}), series, tags }: MastodonShareButtonProps, ) { let defaultURL = localStorage["mastodon_instance"]; @@ -27,8 +25,8 @@ ${series ? "#" + series + " " : ""}${ tags ? tags.map((x) => "#" + x).join(" ") : "" } @cadey@pony.social`; - const [getURL, setURL] = useState(defaultURL); - const [getToot, setToot] = useState(tootTemplate); + const [theURL, setURL] = useState(defaultURL); + const [toot, setToot] = useState(tootTemplate); return ( <div> @@ -40,27 +38,33 @@ ${series ? "#" + series + " " : ""}${ type="text" placeholder="https://pony.social" value={defaultURL} - oninput={(e) => setURL(e.target.value)} + onInput={(e) => { + const target = e.target as HTMLInputElement; + setURL(target.value); + }} /> <br /> <textarea rows={6} cols={40} - oninput={(e) => setToot(e.target.value)} + onInput={(e) => { + const target = e.target as HTMLTextAreaElement; + setToot(target.value) + }} > - {getToot()} + {toot} </textarea> <br /> <button - onclick={() => { - let instanceURL = getURL(); + onClick={() => { + let instanceURL = theURL; if (!instanceURL.startsWith("https://")) { instanceURL = `https://${instanceURL}`; } localStorage["mastodon_instance"] = instanceURL; - const text = getToot(); + const text = toot; const mastodonURL = u(instanceURL + "/share", { text, visibility: "public", diff --git a/src/frontend/components/NoFunAllowed.tsx b/src/frontend/components/NoFunAllowed.tsx index 9f5c5f5..249bcbf 100644 --- a/src/frontend/components/NoFunAllowed.tsx +++ b/src/frontend/components/NoFunAllowed.tsx @@ -1,7 +1,4 @@ -// @jsxImportSource xeact -// @jsxRuntime automatic - -import { c } from "xeact"; +import { c } from "@xeserv/xeact"; const onclick = () => { Array.from(c("xeblog-slides-fluff")).forEach((el) => @@ -13,7 +10,7 @@ export default function NoFunAllowed() { const button = ( <button class="" - onclick={() => onclick()} + onClick={() => onclick()} > No fun allowed </button> diff --git a/src/frontend/components/Video.tsx b/src/frontend/components/Video.tsx index 812e6bd..1d83319 100644 --- a/src/frontend/components/Video.tsx +++ b/src/frontend/components/Video.tsx @@ -1,7 +1,5 @@ -// @jsxImportSource xeact -// @jsxRuntime automatic - -import Hls from "@hls.js"; +import Hls from "hls.js"; +import { h } from "@xeserv/xeact"; export interface VideoProps { path: string; @@ -9,16 +7,12 @@ export interface VideoProps { export default function Video({ path }: VideoProps) { const streamURL = - `https://cdn.xeiaso.net/file/christine-static/${path}/index.m3u8`; - const video = ( - <video style="width:100%" controls> - <source src={streamURL} type="application/vnd.apple.mpegurl" /> - <source - src="https://cdn.xeiaso.net/file/christine-static/blog/HLSBROKE.mp4" - type="video/mp4" - /> - </video> - ); + `https://cdn.xeiaso.net/file/christine-static/${path}/index.m3u8`; + const video: HTMLVideoElement = + h("video", {style: "width:100%", controls: true}, [ + h("source", {src: streamURL, type: "application/vnd.apple.mpegurl"}, []), + h("source", {src: "https://cdn.xeiaso.net/file/christine-static/blog/HLSBROKE.mp4", type: "video/mp4"}, []) + ]) as unknown as HTMLVideoElement; if (Hls.isSupported()) { const hls = new Hls(); diff --git a/src/frontend/components/WASITerm.tsx b/src/frontend/components/WASITerm.tsx index 5f7e7f9..644f293 100644 --- a/src/frontend/components/WASITerm.tsx +++ b/src/frontend/components/WASITerm.tsx @@ -1,9 +1,6 @@ -// @jsxImportSource xeact -// @jsxRuntime automatic - -import { t, x } from "xeact"; -import Terminal from "@xterm"; -import * as fitAdd from "@xterm/addon-fit"; +import { t, x, h } from "@xeserv/xeact"; +import { Terminal } from "xterm"; +import { FitAddon } from 'xterm-addon-fit'; import { Fd, File, PreopenDirectory, WASI } from "@bjorn3/browser_wasi_shim"; class XtermStdio extends Fd { @@ -41,16 +38,17 @@ export interface WASITermProps { } export default function WASITerm({ href, env, args }: WASITermProps) { - const root = <div style="max-width:80ch;max-height:20ch"></div>; + const root = h("div", {style:"max-width:80ch;max-height:20ch"}, []); const term = new Terminal({ convertEol: true, fontFamily: "Iosevka Curly Iaso", }); - const fit = new fitAdd.default(); - term.loadAddon(fit); - fit.fit(); + const fitAddon = new FitAddon(); + term.loadAddon(fitAddon); + term.open(root); + fitAddon.fit(); return ( <div> diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json new file mode 100644 index 0000000..0415190 --- /dev/null +++ b/src/frontend/package-lock.json @@ -0,0 +1,161 @@ +{ + "name": "xesite-frontend", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "xesite-frontend", + "version": "2.0.0", + "license": "Zlib", + "dependencies": { + "@bjorn3/browser_wasi_shim": "^0.2.8", + "@xeserv/xeact": "0.71.1", + "hls.js": "^1.4.0", + "preact": "^10.13.2", + "xterm": "^5.1.0", + "xterm-addon-fit": "^0.7.0" + }, + "devDependencies": { + "@types/node": "^18.16.3", + "esbuild": "0.17.13", + "prettier": "^2.8.8", + "typescript": "^5.0.4" + } + }, + "node_modules/@bjorn3/browser_wasi_shim": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@bjorn3/browser_wasi_shim/-/browser_wasi_shim-0.2.8.tgz", + "integrity": "sha512-omPjmPH2Yk/VM7739/BYtaU9JKuzHlmr6GwyGreaefIbhDgwJxO+NjjBZaEZ8/GjtC8dZXshJGfghJ/ZOPEuqg==", + "license": "MIT OR Apache-2.0" + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz", + "integrity": "sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@xeserv/xeact": { + "version": "0.71.1", + "resolved": "https://registry.npmjs.org/@xeserv/xeact/-/xeact-0.71.1.tgz", + "integrity": "sha512-5q3mvoVsx+AieAIGKbawXtAcPl/DDe+z69rUr3kZbL4BfwWMQAw3ttAJ4h5nORllrsV+2u2jElJg50TOI8FiVQ==", + "license": "mit" + }, + "node_modules/esbuild": { + "version": "0.17.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz", + "integrity": "sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.13", + "@esbuild/android-arm64": "0.17.13", + "@esbuild/android-x64": "0.17.13", + "@esbuild/darwin-arm64": "0.17.13", + "@esbuild/darwin-x64": "0.17.13", + "@esbuild/freebsd-arm64": "0.17.13", + "@esbuild/freebsd-x64": "0.17.13", + "@esbuild/linux-arm": "0.17.13", + "@esbuild/linux-arm64": "0.17.13", + "@esbuild/linux-ia32": "0.17.13", + "@esbuild/linux-loong64": "0.17.13", + "@esbuild/linux-mips64el": "0.17.13", + "@esbuild/linux-ppc64": "0.17.13", + "@esbuild/linux-riscv64": "0.17.13", + "@esbuild/linux-s390x": "0.17.13", + "@esbuild/linux-x64": "0.17.13", + "@esbuild/netbsd-x64": "0.17.13", + "@esbuild/openbsd-x64": "0.17.13", + "@esbuild/sunos-x64": "0.17.13", + "@esbuild/win32-arm64": "0.17.13", + "@esbuild/win32-ia32": "0.17.13", + "@esbuild/win32-x64": "0.17.13" + } + }, + "node_modules/hls.js": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.4.0.tgz", + "integrity": "sha512-VEjg7Rx5FlE9TB3MIn0HPgq3J+vR7EoQnjaqMCk/ISEaCOSZlAFh4g867f1QkSxZiq9kHeUZo+iH16X7VS3jKA==", + "license": "Apache-2.0" + }, + "node_modules/preact": { + "version": "10.13.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", + "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/xterm": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xterm/-/xterm-5.1.0.tgz", + "integrity": "sha512-LovENH4WDzpwynj+OTkLyZgJPeDom9Gra4DMlGAgz6pZhIDCQ+YuO7yfwanY+gVbn/mmZIStNOnVRU/ikQuAEQ==", + "license": "MIT" + }, + "node_modules/xterm-addon-fit": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.7.0.tgz", + "integrity": "sha512-tQgHGoHqRTgeROPnvmtEJywLKoC/V9eNs4bLLz7iyJr1aW/QFzRwfd3MGiJ6odJd9xEfxcW36/xRU47JkD5NKQ==", + "peerDependencies": { + "xterm": "^5.0.0" + } + } + } +} diff --git a/src/frontend/package.json b/src/frontend/package.json new file mode 100644 index 0000000..ef9a646 --- /dev/null +++ b/src/frontend/package.json @@ -0,0 +1,37 @@ +{ + "name": "xesite-frontend", + "version": "2.0.0", + "description": "The frontend for Xesite, now in node.js", + "main": "index.js", + "scripts": { + "test": "mocha" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Xe/site.git" + }, + "keywords": [ + "frontend", + "xeact" + ], + "author": "Xe Iaso <xesite@xeserv.us>", + "license": "Zlib", + "bugs": { + "url": "https://github.com/Xe/site/issues" + }, + "homepage": "https://github.com/Xe/site#readme", + "devDependencies": { + "@types/node": "^18.16.3", + "esbuild": "0.17.13", + "prettier": "^2.8.8", + "typescript": "^5.0.4" + }, + "dependencies": { + "@bjorn3/browser_wasi_shim": "^0.2.8", + "@xeserv/xeact": "0.71.1", + "hls.js": "^1.4.0", + "preact": "^10.13.2", + "xterm": "^5.1.0", + "xterm-addon-fit": "^0.7.0" + } +} diff --git a/src/frontend/tsconfig.json b/src/frontend/tsconfig.json new file mode 100644 index 0000000..0b3041c --- /dev/null +++ b/src/frontend/tsconfig.json @@ -0,0 +1,19 @@ +{ + // https://www.typescriptlang.org/tsconfig#compilerOptions + "compilerOptions": { + "esModuleInterop": true, + "lib": ["es2020", "es2022", "dom"], + "module": "es2022", + "preserveConstEnums": true, + "moduleResolution": "node", + "strict": true, + "sourceMap": true, + "target": "es2022", + "types": ["node"], + "outDir": "dist", + "jsx": "react-jsx", + "jsxImportSource": "preact" + }, + "include": ["components/**/*.tsx", "src/**/*", "tests/**/*", "types/**/*"], + "exclude": ["node_modules"] +} diff --git a/src/frontend/types/xeact.d.ts b/src/frontend/types/xeact.d.ts new file mode 100644 index 0000000..4b7656f --- /dev/null +++ b/src/frontend/types/xeact.d.ts @@ -0,0 +1,76 @@ +declare module "@xeserv/xeact" { +/** + * Creates a DOM element, assigns the properties of `data` to it, and appends all `children`. + * + * @type{function(string|Function, Object=, Node|Array.<Node|string>=)} + */ +export const h: (arg0: string | Function, arg1: any | undefined, arg2: (Node | Array<Node | string>) | undefined) => any; +/** + * Create a text node. + * + * Equivalent to `document.createTextNode(text)` + * + * @type{function(string): Text} + */ +export const t: (arg0: string) => Text; +/** + * Remove all child nodes from a DOM element. + * + * @type{function(Node)} + */ +export const x: (arg0: Node) => any; +/** + * Get all elements with the given ID. + * + * Equivalent to `document.getElementById(name)` + * + * @type{function(string): HTMLElement} + */ +export const g: (arg0: string) => HTMLElement; +/** + * Get all elements with the given class name. + * + * Equivalent to `document.getElementsByClassName(name)` + * + * @type{function(string): HTMLCollectionOf.<Element>} + */ +export const c: (arg0: string) => HTMLCollectionOf<Element>; +/** @type{function(string): HTMLCollectionOf.<Element>} */ +export const n: (arg0: string) => HTMLCollectionOf<Element>; +/** + * Generate a relative URL from `url`, appending all key-value pairs from `params` as URL-encoded parameters. + * + * @type{function(string=, Object=): string} + */ +export const u: (arg0: string | undefined, arg1: any | undefined) => string; +/** + * Get all elements matching the given HTML selector. + * + * Matches selectors with `document.querySelectorAll(selector)` + * + * @type{function(string): Array.<HTMLElement>} + */ +export const s: (arg0: string) => Array<HTMLElement>; +/** + * Takes a callback to run when all DOM content is loaded. + * + * Equivalent to `window.addEventListener('DOMContentLoaded', callback)` + * + * @type{function(function())} + */ +export const r: (arg0: () => any) => any; +/** + * Allows a stateful value to be tracked by consumers. + * + * This is the Xeact version of the React useState hook. + * + * @type{function(any): [function(): any, function(any): void]} + */ +export const useState: (arg0: any) => [() => any, (arg0: any) => void]; +/** + * Debounce an action for up to ms milliseconds. + * + * @type{function(number): function(function(any): void)} + */ + export const d: (arg0: number) => (arg0: (arg0: any) => void) => any; +} diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock new file mode 100644 index 0000000..9a95370 --- /dev/null +++ b/src/frontend/yarn.lock @@ -0,0 +1,81 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@bjorn3/browser_wasi_shim@^0.2.8": + version "0.2.8" + resolved "https://registry.npmjs.org/@bjorn3/browser_wasi_shim/-/browser_wasi_shim-0.2.8.tgz" + integrity sha512-omPjmPH2Yk/VM7739/BYtaU9JKuzHlmr6GwyGreaefIbhDgwJxO+NjjBZaEZ8/GjtC8dZXshJGfghJ/ZOPEuqg== + +"@esbuild/linux-x64@0.17.13": + version "0.17.13" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz" + integrity sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw== + +"@types/node@^18.16.3": + version "18.16.3" + resolved "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz" + integrity sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q== + +"@xeserv/xeact@0.71.1": + version "0.71.1" + resolved "https://registry.npmjs.org/@xeserv/xeact/-/xeact-0.71.1.tgz" + integrity sha512-5q3mvoVsx+AieAIGKbawXtAcPl/DDe+z69rUr3kZbL4BfwWMQAw3ttAJ4h5nORllrsV+2u2jElJg50TOI8FiVQ== + +esbuild@0.17.13: + version "0.17.13" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz" + integrity sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg== + optionalDependencies: + "@esbuild/android-arm" "0.17.13" + "@esbuild/android-arm64" "0.17.13" + "@esbuild/android-x64" "0.17.13" + "@esbuild/darwin-arm64" "0.17.13" + "@esbuild/darwin-x64" "0.17.13" + "@esbuild/freebsd-arm64" "0.17.13" + "@esbuild/freebsd-x64" "0.17.13" + "@esbuild/linux-arm" "0.17.13" + "@esbuild/linux-arm64" "0.17.13" + "@esbuild/linux-ia32" "0.17.13" + "@esbuild/linux-loong64" "0.17.13" + "@esbuild/linux-mips64el" "0.17.13" + "@esbuild/linux-ppc64" "0.17.13" + "@esbuild/linux-riscv64" "0.17.13" + "@esbuild/linux-s390x" "0.17.13" + "@esbuild/linux-x64" "0.17.13" + "@esbuild/netbsd-x64" "0.17.13" + "@esbuild/openbsd-x64" "0.17.13" + "@esbuild/sunos-x64" "0.17.13" + "@esbuild/win32-arm64" "0.17.13" + "@esbuild/win32-ia32" "0.17.13" + "@esbuild/win32-x64" "0.17.13" + +hls.js@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/hls.js/-/hls.js-1.4.0.tgz" + integrity sha512-VEjg7Rx5FlE9TB3MIn0HPgq3J+vR7EoQnjaqMCk/ISEaCOSZlAFh4g867f1QkSxZiq9kHeUZo+iH16X7VS3jKA== + +preact@^10.13.2: + version "10.13.2" + resolved "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz" + integrity sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw== + +prettier@^2.8.8: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +typescript@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + +xterm-addon-fit@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.7.0.tgz" + integrity sha512-tQgHGoHqRTgeROPnvmtEJywLKoC/V9eNs4bLLz7iyJr1aW/QFzRwfd3MGiJ6odJd9xEfxcW36/xRU47JkD5NKQ== + +xterm@^5.0.0, xterm@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/xterm/-/xterm-5.1.0.tgz" + integrity sha512-LovENH4WDzpwynj+OTkLyZgJPeDom9Gra4DMlGAgz6pZhIDCQ+YuO7yfwanY+gVbn/mmZIStNOnVRU/ikQuAEQ== |
