From b00871fc07e39cdfb359cd8ee41fbcdd4523a21f Mon Sep 17 00:00:00 2001 From: Richard Osborne Date: Sun, 5 Apr 2026 13:33:09 +0100 Subject: [PATCH] Initial commit from create-tui --- .gitignore | 34 ++++++++ README.md | 15 ++++ bun.lock | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++ bun.lockb | Bin 0 -> 39051 bytes package.json | 18 +++++ src/index.ts | 20 +++++ tsconfig.json | 28 +++++++ 7 files changed, 332 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 bun.lock create mode 100755 bun.lockb create mode 100644 package.json create mode 100644 src/index.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81649dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# dependencies (bun install) +node_modules + +# output +out +dist +*.tgz + +# code coverage +coverage +*.lcov + +# logs +logs +*.log +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# caches +.eslintcache +.cache +*.tsbuildinfo + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..65dfd5e --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# core + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun dev +``` + +This project was created using `bun create tui`. [create-tui](https://git.new/create-tui) is the easiest way to get started with OpenTUI. diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..b03778c --- /dev/null +++ b/bun.lock @@ -0,0 +1,217 @@ +{ + "lockfileVersion": 1, + "configVersion": 0, + "workspaces": { + "": { + "name": "react", + "dependencies": { + "@opentui/core": "^0.1.95", + }, + "devDependencies": { + "@types/bun": "latest", + }, + "peerDependencies": { + "typescript": "^5", + }, + }, + }, + "packages": { + "@dimforge/rapier2d-simd-compat": ["@dimforge/rapier2d-simd-compat@0.17.3", "", {}, "sha512-bijvwWz6NHsNj5e5i1vtd3dU2pDhthSaTUZSh14DUGGKJfw8eMnlWZsxwHBxB/a3AXVNDjL9abuHw1k9FGR+jg=="], + + "@jimp/core": ["@jimp/core@1.6.0", "", { "dependencies": { "@jimp/file-ops": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "await-to-js": "^3.0.0", "exif-parser": "^0.1.12", "file-type": "^16.0.0", "mime": "3" } }, "sha512-EQQlKU3s9QfdJqiSrZWNTxBs3rKXgO2W+GxNXDtwchF3a4IqxDheFX1ti+Env9hdJXDiYLp2jTRjlxhPthsk8w=="], + + "@jimp/diff": ["@jimp/diff@1.6.0", "", { "dependencies": { "@jimp/plugin-resize": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "pixelmatch": "^5.3.0" } }, "sha512-+yUAQ5gvRC5D1WHYxjBHZI7JBRusGGSLf8AmPRPCenTzh4PA+wZ1xv2+cYqQwTfQHU5tXYOhA0xDytfHUf1Zyw=="], + + "@jimp/file-ops": ["@jimp/file-ops@1.6.0", "", {}, "sha512-Dx/bVDmgnRe1AlniRpCKrGRm5YvGmUwbDzt+MAkgmLGf+jvBT75hmMEZ003n9HQI/aPnm/YKnXjg/hOpzNCpHQ=="], + + "@jimp/js-bmp": ["@jimp/js-bmp@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "bmp-ts": "^1.0.9" } }, "sha512-FU6Q5PC/e3yzLyBDXupR3SnL3htU7S3KEs4e6rjDP6gNEOXRFsWs6YD3hXuXd50jd8ummy+q2WSwuGkr8wi+Gw=="], + + "@jimp/js-gif": ["@jimp/js-gif@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "gifwrap": "^0.10.1", "omggif": "^1.0.10" } }, "sha512-N9CZPHOrJTsAUoWkWZstLPpwT5AwJ0wge+47+ix3++SdSL/H2QzyMqxbcDYNFe4MoI5MIhATfb0/dl/wmX221g=="], + + "@jimp/js-jpeg": ["@jimp/js-jpeg@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "jpeg-js": "^0.4.4" } }, "sha512-6vgFDqeusblf5Pok6B2DUiMXplH8RhIKAryj1yn+007SIAQ0khM1Uptxmpku/0MfbClx2r7pnJv9gWpAEJdMVA=="], + + "@jimp/js-png": ["@jimp/js-png@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "pngjs": "^7.0.0" } }, "sha512-AbQHScy3hDDgMRNfG0tPjL88AV6qKAILGReIa3ATpW5QFjBKpisvUaOqhzJ7Reic1oawx3Riyv152gaPfqsBVg=="], + + "@jimp/js-tiff": ["@jimp/js-tiff@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "utif2": "^4.1.0" } }, "sha512-zhReR8/7KO+adijj3h0ZQUOiun3mXUv79zYEAKvE0O+rP7EhgtKvWJOZfRzdZSNv0Pu1rKtgM72qgtwe2tFvyw=="], + + "@jimp/plugin-blit": ["@jimp/plugin-blit@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-M+uRWl1csi7qilnSK8uxK4RJMSuVeBiO1AY0+7APnfUbQNZm6hCe0CCFv1Iyw1D/Dhb8ph8fQgm5mwM0eSxgVA=="], + + "@jimp/plugin-blur": ["@jimp/plugin-blur@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/utils": "1.6.0" } }, "sha512-zrM7iic1OTwUCb0g/rN5y+UnmdEsT3IfuCXCJJNs8SZzP0MkZ1eTvuwK9ZidCuMo4+J3xkzCidRwYXB5CyGZTw=="], + + "@jimp/plugin-circle": ["@jimp/plugin-circle@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "zod": "^3.23.8" } }, "sha512-xt1Gp+LtdMKAXfDp3HNaG30SPZW6AQ7dtAtTnoRKorRi+5yCJjKqXRgkewS5bvj8DEh87Ko1ydJfzqS3P2tdWw=="], + + "@jimp/plugin-color": ["@jimp/plugin-color@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "tinycolor2": "^1.6.0", "zod": "^3.23.8" } }, "sha512-J5q8IVCpkBsxIXM+45XOXTrsyfblyMZg3a9eAo0P7VPH4+CrvyNQwaYatbAIamSIN1YzxmO3DkIZXzRjFSz1SA=="], + + "@jimp/plugin-contain": ["@jimp/plugin-contain@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/plugin-blit": "1.6.0", "@jimp/plugin-resize": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-oN/n+Vdq/Qg9bB4yOBOxtY9IPAtEfES8J1n9Ddx+XhGBYT1/QTU/JYkGaAkIGoPnyYvmLEDqMz2SGihqlpqfzQ=="], + + "@jimp/plugin-cover": ["@jimp/plugin-cover@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/plugin-crop": "1.6.0", "@jimp/plugin-resize": "1.6.0", "@jimp/types": "1.6.0", "zod": "^3.23.8" } }, "sha512-Iow0h6yqSC269YUJ8HC3Q/MpCi2V55sMlbkkTTx4zPvd8mWZlC0ykrNDeAy9IJegrQ7v5E99rJwmQu25lygKLA=="], + + "@jimp/plugin-crop": ["@jimp/plugin-crop@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-KqZkEhvs+21USdySCUDI+GFa393eDIzbi1smBqkUPTE+pRwSWMAf01D5OC3ZWB+xZsNla93BDS9iCkLHA8wang=="], + + "@jimp/plugin-displace": ["@jimp/plugin-displace@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-4Y10X9qwr5F+Bo5ME356XSACEF55485j5nGdiyJ9hYzjQP9nGgxNJaZ4SAOqpd+k5sFaIeD7SQ0Occ26uIng5Q=="], + + "@jimp/plugin-dither": ["@jimp/plugin-dither@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0" } }, "sha512-600d1RxY0pKwgyU0tgMahLNKsqEcxGdbgXadCiVCoGd6V6glyCvkNrnnwC0n5aJ56Htkj88PToSdF88tNVZEEQ=="], + + "@jimp/plugin-fisheye": ["@jimp/plugin-fisheye@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-E5QHKWSCBFtpgZarlmN3Q6+rTQxjirFqo44ohoTjzYVrDI6B6beXNnPIThJgPr0Y9GwfzgyarKvQuQuqCnnfbA=="], + + "@jimp/plugin-flip": ["@jimp/plugin-flip@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "zod": "^3.23.8" } }, "sha512-/+rJVDuBIVOgwoyVkBjUFHtP+wmW0r+r5OQ2GpatQofToPVbJw1DdYWXlwviSx7hvixTWLKVgRWQ5Dw862emDg=="], + + "@jimp/plugin-hash": ["@jimp/plugin-hash@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/js-bmp": "1.6.0", "@jimp/js-jpeg": "1.6.0", "@jimp/js-png": "1.6.0", "@jimp/js-tiff": "1.6.0", "@jimp/plugin-color": "1.6.0", "@jimp/plugin-resize": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "any-base": "^1.1.0" } }, "sha512-wWzl0kTpDJgYVbZdajTf+4NBSKvmI3bRI8q6EH9CVeIHps9VWVsUvEyb7rpbcwVLWYuzDtP2R0lTT6WeBNQH9Q=="], + + "@jimp/plugin-mask": ["@jimp/plugin-mask@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "zod": "^3.23.8" } }, "sha512-Cwy7ExSJMZszvkad8NV8o/Z92X2kFUFM8mcDAhNVxU0Q6tA0op2UKRJY51eoK8r6eds/qak3FQkXakvNabdLnA=="], + + "@jimp/plugin-print": ["@jimp/plugin-print@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/js-jpeg": "1.6.0", "@jimp/js-png": "1.6.0", "@jimp/plugin-blit": "1.6.0", "@jimp/types": "1.6.0", "parse-bmfont-ascii": "^1.0.6", "parse-bmfont-binary": "^1.0.6", "parse-bmfont-xml": "^1.1.6", "simple-xml-to-json": "^1.2.2", "zod": "^3.23.8" } }, "sha512-zarTIJi8fjoGMSI/M3Xh5yY9T65p03XJmPsuNet19K/Q7mwRU6EV2pfj+28++2PV2NJ+htDF5uecAlnGyxFN2A=="], + + "@jimp/plugin-quantize": ["@jimp/plugin-quantize@1.6.0", "", { "dependencies": { "image-q": "^4.0.0", "zod": "^3.23.8" } }, "sha512-EmzZ/s9StYQwbpG6rUGBCisc3f64JIhSH+ncTJd+iFGtGo0YvSeMdAd+zqgiHpfZoOL54dNavZNjF4otK+mvlg=="], + + "@jimp/plugin-resize": ["@jimp/plugin-resize@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/types": "1.6.0", "zod": "^3.23.8" } }, "sha512-uSUD1mqXN9i1SGSz5ov3keRZ7S9L32/mAQG08wUwZiEi5FpbV0K8A8l1zkazAIZi9IJzLlTauRNU41Mi8IF9fA=="], + + "@jimp/plugin-rotate": ["@jimp/plugin-rotate@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/plugin-crop": "1.6.0", "@jimp/plugin-resize": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-JagdjBLnUZGSG4xjCLkIpQOZZ3Mjbg8aGCCi4G69qR+OjNpOeGI7N2EQlfK/WE8BEHOW5vdjSyglNqcYbQBWRw=="], + + "@jimp/plugin-threshold": ["@jimp/plugin-threshold@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/plugin-color": "1.6.0", "@jimp/plugin-hash": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0", "zod": "^3.23.8" } }, "sha512-M59m5dzLoHOVWdM41O8z9SyySzcDn43xHseOH0HavjsfQsT56GGCC4QzU1banJidbUrePhzoEdS42uFE8Fei8w=="], + + "@jimp/types": ["@jimp/types@1.6.0", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-7UfRsiKo5GZTAATxm2qQ7jqmUXP0DxTArztllTcYdyw6Xi5oT4RaoXynVtCD4UyLK5gJgkZJcwonoijrhYFKfg=="], + + "@jimp/utils": ["@jimp/utils@1.6.0", "", { "dependencies": { "@jimp/types": "1.6.0", "tinycolor2": "^1.6.0" } }, "sha512-gqFTGEosKbOkYF/WFj26jMHOI5OH2jeP1MmC/zbK6BF6VJBf8rIC5898dPfSzZEbSA0wbbV5slbntWVc5PKLFA=="], + + "@opentui/core": ["@opentui/core@0.1.95", "", { "dependencies": { "bun-ffi-structs": "0.1.2", "diff": "8.0.2", "jimp": "1.6.0", "marked": "17.0.1", "yoga-layout": "3.2.1" }, "optionalDependencies": { "@dimforge/rapier2d-simd-compat": "^0.17.3", "@opentui/core-darwin-arm64": "0.1.95", "@opentui/core-darwin-x64": "0.1.95", "@opentui/core-linux-arm64": "0.1.95", "@opentui/core-linux-x64": "0.1.95", "@opentui/core-win32-arm64": "0.1.95", "@opentui/core-win32-x64": "0.1.95", "bun-webgpu": "0.1.5", "planck": "^1.4.2", "three": "0.177.0" }, "peerDependencies": { "web-tree-sitter": "0.25.10" } }, "sha512-Ha73I+PPSy6Jk8CTZgdGRHU+nnmrPAs7m6w0k6ge1/kWbcNcZB0lY67sWQMdoa6bSINQMNWg7SjbNCC9B/0exg=="], + + "@opentui/core-darwin-arm64": ["@opentui/core-darwin-arm64@0.1.95", "", { "os": "darwin", "cpu": "arm64" }, "sha512-92joqr0ucGaIBCl9uYhe5DwAPbgGMTaCsCeY8Yf3VQ72wjGbOTwnC1TvU5wC6bUmiyqfijCqMyuUnj83teIVVQ=="], + + "@opentui/core-darwin-x64": ["@opentui/core-darwin-x64@0.1.95", "", { "os": "darwin", "cpu": "x64" }, "sha512-+TLL3Kp3x7DTWEAkCAYe+RjRhl58QndoeXMstZNS8GQyrjSpUuivzwidzAz0HZK9SbZJfvaxZmXsToAIdI2fag=="], + + "@opentui/core-linux-arm64": ["@opentui/core-linux-arm64@0.1.95", "", { "os": "linux", "cpu": "arm64" }, "sha512-dAYeRqh7P8o0xFZleDDR1Abt4gSvCISqw6syOrbH3dl7pMbVdGgzA5stM9jqMgdPUVE7Ngumo17C23ehkGv93A=="], + + "@opentui/core-linux-x64": ["@opentui/core-linux-x64@0.1.95", "", { "os": "linux", "cpu": "x64" }, "sha512-O54TCgK8E7j2NKrDXUOTZqO4sb8JjeAfnhrStxAMMEw4RFCGWx3p3wLesqR16uKfFFJFDyoh2OWZ698tO88EAA=="], + + "@opentui/core-win32-arm64": ["@opentui/core-win32-arm64@0.1.95", "", { "os": "win32", "cpu": "arm64" }, "sha512-T1RlZ6U/95eYDN6rUm4SLOVA5LBR7iL3TcBroQhV/883bVczXIBPhriEXQayup5FsAemnQba1BzMNvy6128SUw=="], + + "@opentui/core-win32-x64": ["@opentui/core-win32-x64@0.1.95", "", { "os": "win32", "cpu": "x64" }, "sha512-lH2FHO0HSP2xWT+ccoz0BkLYFsMm7e6OYOh63BUHHh5b7ispnzP4aTyxiaLWrfJwdL0M9rp5cLIY32bhBKF2oA=="], + + "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], + + "@types/bun": ["@types/bun@1.2.20", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="], + + "@types/node": ["@types/node@24.3.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow=="], + + "@types/react": ["@types/react@19.1.11", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ=="], + + "@webgpu/types": ["@webgpu/types@0.1.64", "", {}, "sha512-84kRIAGV46LJTlJZWxShiOrNL30A+9KokD7RB3dRCIqODFjodS5tCD5yyiZ8kIReGVZSDfA3XkkwyyOIF6K62A=="], + + "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], + + "any-base": ["any-base@1.1.0", "", {}, "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="], + + "await-to-js": ["await-to-js@3.0.0", "", {}, "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "bmp-ts": ["bmp-ts@1.0.9", "", {}, "sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + + "bun-ffi-structs": ["bun-ffi-structs@0.1.2", "", { "peerDependencies": { "typescript": "^5" } }, "sha512-Lh1oQAYHDcnesJauieA4UNkWGXY9hYck7OA5IaRwE3Bp6K2F2pJSNYqq+hIy7P3uOvo3km3oxS8304g5gDMl/w=="], + + "bun-types": ["bun-types@1.2.20", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="], + + "bun-webgpu": ["bun-webgpu@0.1.5", "", { "dependencies": { "@webgpu/types": "^0.1.60" }, "optionalDependencies": { "bun-webgpu-darwin-arm64": "^0.1.5", "bun-webgpu-darwin-x64": "^0.1.5", "bun-webgpu-linux-x64": "^0.1.5", "bun-webgpu-win32-x64": "^0.1.5" } }, "sha512-91/K6S5whZKX7CWAm9AylhyKrLGRz6BUiiPiM/kXadSnD4rffljCD/q9cNFftm5YXhx4MvLqw33yEilxogJvwA=="], + + "bun-webgpu-darwin-arm64": ["bun-webgpu-darwin-arm64@0.1.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-qM7W5IaFpWYGPDcNiQ8DOng3noQ97gxpH2MFH1mGsdKwI0T4oy++egSh5Z7s6AQx8WKgc9GzAsTUM4KZkFdacw=="], + + "bun-webgpu-darwin-x64": ["bun-webgpu-darwin-x64@0.1.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-oVoIsme27pcXB68YxnQSAgdNGCa4A3PGWYIBUewOh9VnJaoik4JenGb5Yy+svGE+ETFhQXV9nhHqgMPsDRrO6A=="], + + "bun-webgpu-linux-x64": ["bun-webgpu-linux-x64@0.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-+SYt09k+xDEl/GfcU7L1zdNgm7IlvAFKV5Xl/auBwuprKG5UwXNhjRlRAWfhTMCUZWN+NDf8E+ZQx0cQi9K2/g=="], + + "bun-webgpu-win32-x64": ["bun-webgpu-win32-x64@0.1.5", "", { "os": "win32", "cpu": "x64" }, "sha512-zvnUl4EAsQbKsmZVu+lEJcH8axQ7MiCfqg2OmnHd6uw1THABmHaX0GbpKiHshdgadNN2Nf+4zDyTJB5YMcAdrA=="], + + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + + "diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], + + "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], + + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + + "exif-parser": ["exif-parser@0.1.12", "", {}, "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="], + + "file-type": ["file-type@16.5.4", "", { "dependencies": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", "token-types": "^4.1.1" } }, "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw=="], + + "gifwrap": ["gifwrap@0.10.1", "", { "dependencies": { "image-q": "^4.0.0", "omggif": "^1.0.10" } }, "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "image-q": ["image-q@4.0.0", "", { "dependencies": { "@types/node": "16.9.1" } }, "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw=="], + + "jimp": ["jimp@1.6.0", "", { "dependencies": { "@jimp/core": "1.6.0", "@jimp/diff": "1.6.0", "@jimp/js-bmp": "1.6.0", "@jimp/js-gif": "1.6.0", "@jimp/js-jpeg": "1.6.0", "@jimp/js-png": "1.6.0", "@jimp/js-tiff": "1.6.0", "@jimp/plugin-blit": "1.6.0", "@jimp/plugin-blur": "1.6.0", "@jimp/plugin-circle": "1.6.0", "@jimp/plugin-color": "1.6.0", "@jimp/plugin-contain": "1.6.0", "@jimp/plugin-cover": "1.6.0", "@jimp/plugin-crop": "1.6.0", "@jimp/plugin-displace": "1.6.0", "@jimp/plugin-dither": "1.6.0", "@jimp/plugin-fisheye": "1.6.0", "@jimp/plugin-flip": "1.6.0", "@jimp/plugin-hash": "1.6.0", "@jimp/plugin-mask": "1.6.0", "@jimp/plugin-print": "1.6.0", "@jimp/plugin-quantize": "1.6.0", "@jimp/plugin-resize": "1.6.0", "@jimp/plugin-rotate": "1.6.0", "@jimp/plugin-threshold": "1.6.0", "@jimp/types": "1.6.0", "@jimp/utils": "1.6.0" } }, "sha512-YcwCHw1kiqEeI5xRpDlPPBGL2EOpBKLwO4yIBJcXWHPj5PnA5urGq0jbyhM5KoNpypQ6VboSoxc9D8HyfvngSg=="], + + "jpeg-js": ["jpeg-js@0.4.4", "", {}, "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="], + + "marked": ["marked@17.0.1", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg=="], + + "mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="], + + "omggif": ["omggif@1.0.10", "", {}, "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="], + + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + + "parse-bmfont-ascii": ["parse-bmfont-ascii@1.0.6", "", {}, "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="], + + "parse-bmfont-binary": ["parse-bmfont-binary@1.0.6", "", {}, "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="], + + "parse-bmfont-xml": ["parse-bmfont-xml@1.1.6", "", { "dependencies": { "xml-parse-from-string": "^1.0.0", "xml2js": "^0.5.0" } }, "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA=="], + + "peek-readable": ["peek-readable@4.1.0", "", {}, "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg=="], + + "pixelmatch": ["pixelmatch@5.3.0", "", { "dependencies": { "pngjs": "^6.0.0" }, "bin": { "pixelmatch": "bin/pixelmatch" } }, "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q=="], + + "planck": ["planck@1.4.2", "", { "peerDependencies": { "stage-js": "^1.0.0-alpha.12" } }, "sha512-mNbhnV3g8X2rwGxzcesjmN8BDA6qfXgQxXVMkWau9MCRlQY0RLNEkyHlVp6yFy/X6qrzAXyNONCnZ1cGDLrNew=="], + + "pngjs": ["pngjs@7.0.0", "", {}, "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow=="], + + "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], + + "readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], + + "readable-web-to-node-stream": ["readable-web-to-node-stream@3.0.4", "", { "dependencies": { "readable-stream": "^4.7.0" } }, "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + + "simple-xml-to-json": ["simple-xml-to-json@1.2.3", "", {}, "sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA=="], + + "stage-js": ["stage-js@1.0.0-alpha.17", "", {}, "sha512-AzlMO+t51v6cFvKZ+Oe9DJnL1OXEH5s9bEy6di5aOrUpcP7PCzI/wIeXF0u3zg0L89gwnceoKxrLId0ZpYnNXw=="], + + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + + "strtok3": ["strtok3@6.3.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" } }, "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw=="], + + "three": ["three@0.177.0", "", {}, "sha512-EiXv5/qWAaGI+Vz2A+JfavwYCMdGjxVsrn3oBwllUoqYeaBO75J63ZfyaQKoiLrqNHoTlUc6PFgMXnS0kI45zg=="], + + "tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="], + + "token-types": ["token-types@4.2.1", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ=="], + + "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], + + "undici-types": ["undici-types@7.10.0", "", {}, "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag=="], + + "utif2": ["utif2@4.1.0", "", { "dependencies": { "pako": "^1.0.11" } }, "sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w=="], + + "web-tree-sitter": ["web-tree-sitter@0.26.0", "", {}, "sha512-wGGAMnJEMF8wy33iEGxSvnyEOfVLzSaa3x6g66aEHsL/hsgFb6IVPrpacIordAMz198pE9qReCEqFUuM0pnfwg=="], + + "xml-parse-from-string": ["xml-parse-from-string@1.0.1", "", {}, "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="], + + "xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="], + + "xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + + "yoga-layout": ["yoga-layout@3.2.1", "", {}, "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ=="], + + "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + + "image-q/@types/node": ["@types/node@16.9.1", "", {}, "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="], + + "pixelmatch/pngjs": ["pngjs@6.0.0", "", {}, "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="], + } +} diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..0d0c083576b27d2d0d55e9828e4e065d41da60c5 GIT binary patch literal 39051 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9a81a8 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "subs-please-browser", + "module": "src/index.tsx", + "type": "module", + "private": true, + "scripts": { + "dev": "bun run --watch src/index.ts" + }, + "devDependencies": { + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5" + }, + "dependencies": { + "@opentui/core": "^0.1.95" + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..32ad41a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,20 @@ +import { + ASCIIFont, + Box, + createCliRenderer, + Text, + TextAttributes, +} from "@opentui/core"; + +const renderer = await createCliRenderer({ exitOnCtrlC: true }); + +renderer.root.add( + Box( + { alignItems: "center", justifyContent: "center", flexGrow: 1 }, + Box( + { justifyContent: "center", alignItems: "flex-end" }, + ASCIIFont({ font: "tiny", text: "OpenTUI" }), + Text({ content: "What will you build?", attributes: TextAttributes.DIM }), + ), + ), +); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..d4467c8 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "Preserve", + "moduleDetection": "force", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}