diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-05 12:42:44 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-05 12:42:44 -0700 |
| commit | 94b912b649150b9863a62096ba4740b2cc8ad21a (patch) | |
| tree | 1882236fc980fa5946d3089a2f2e4670f3a70580 | |
| parent | ab0ddcaeb1fc37351d14b89100e07d3a343ba9e1 (diff) | |
| download | lizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.tar.gz lizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.zip | |
Factor
| -rw-r--r-- | .gitignore | 39 | ||||
| -rw-r--r-- | Dockerfile | 25 | ||||
| -rw-r--r-- | eleventy.config.js | 40 | ||||
| -rw-r--r-- | html/assets/bellevue.jpeg (renamed from src/assets/bellevue.jpeg) | bin | 377844 -> 377844 bytes | |||
| -rw-r--r-- | html/assets/bread.jpeg (renamed from src/assets/bread.jpeg) | bin | 206615 -> 206615 bytes | |||
| -rw-r--r-- | html/assets/critter.jpeg (renamed from src/assets/critter.jpeg) | bin | 181598 -> 181598 bytes | |||
| -rw-r--r-- | html/assets/euler.png (renamed from src/assets/euler.png) | bin | 297917 -> 297917 bytes | |||
| -rw-r--r-- | html/assets/fourier.png (renamed from src/assets/fourier.png) | bin | 461309 -> 461309 bytes | |||
| -rw-r--r-- | html/assets/godel.png (renamed from src/assets/godel.png) | bin | 466399 -> 466399 bytes | |||
| -rw-r--r-- | html/assets/gus.jpeg | bin | 0 -> 148667 bytes | |||
| -rw-r--r-- | html/assets/julia.png (renamed from src/assets/julia.png) | bin | 263809 -> 263809 bytes | |||
| -rw-r--r-- | html/assets/lambda.png (renamed from src/assets/lambda.png) | bin | 179682 -> 179682 bytes | |||
| -rw-r--r-- | html/assets/penguin.gif (renamed from src/assets/penguin.gif) | bin | 53409 -> 53409 bytes | |||
| -rw-r--r-- | html/assets/petting_basil.mp4 (renamed from src/assets/petting_basil.mp4) | bin | 1816422 -> 1816422 bytes | |||
| -rw-r--r-- | html/assets/scooters_on_ceiling.jpeg (renamed from src/assets/scooters_on_ceiling.jpeg) | bin | 493630 -> 493630 bytes | |||
| -rw-r--r-- | html/assets/tabloid.png (renamed from src/assets/tabloid.png) | bin | 254486 -> 254486 bytes | |||
| -rw-r--r-- | html/assets/turing.png (renamed from src/assets/turing.png) | bin | 133163 -> 133163 bytes | |||
| -rw-r--r-- | html/index.html | 216 | ||||
| -rw-r--r-- | html/toys/euler-golf/css/styles.css (renamed from src/toys/euler-golf/css/styles.css) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/index.html (renamed from src/toys/euler-golf/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/controls.js (renamed from src/toys/euler-golf/js/controls.js) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/cx.js (renamed from src/toys/euler-golf/js/cx.js) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/game.js (renamed from src/toys/euler-golf/js/game.js) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/json-ds.js (renamed from src/toys/euler-golf/js/json-ds.js) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/modal-vanilla.min.js (renamed from src/toys/euler-golf/js/modal-vanilla.min.js) | 0 | ||||
| -rw-r--r-- | html/toys/euler-golf/js/sol.js (renamed from src/toys/euler-golf/js/sol.js) | 0 | ||||
| -rw-r--r-- | html/toys/fourier/index.html (renamed from src/toys/fourier/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/fourier/js/script.js (renamed from src/toys/fourier/js/script.js) | 0 | ||||
| -rw-r--r-- | html/toys/godel/index.html (renamed from src/toys/godel/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/godel/js/compiler.js (renamed from src/toys/godel/js/compiler.js) | 0 | ||||
| -rw-r--r-- | html/toys/godel/js/godel-worker.js (renamed from src/toys/godel/js/godel-worker.js) | 0 | ||||
| -rw-r--r-- | html/toys/godel/js/main.js (renamed from src/toys/godel/js/main.js) | 0 | ||||
| -rw-r--r-- | html/toys/godel/js/parser.js (renamed from src/toys/godel/js/parser.js) | 0 | ||||
| -rw-r--r-- | html/toys/godel/js/ui.js (renamed from src/toys/godel/js/ui.js) | 0 | ||||
| -rw-r--r-- | html/toys/index.html | 0 | ||||
| -rw-r--r-- | html/toys/julia/index.html (renamed from src/toys/julia/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/julia/julia.js (renamed from src/toys/julia/julia.js) | 9 | ||||
| -rw-r--r-- | html/toys/tabloid/index.html (renamed from src/toys/tabloid/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/tabloid/js/main.js (renamed from src/toys/tabloid/js/main.js) | 0 | ||||
| -rw-r--r-- | html/toys/tabloid/js/playground.js (renamed from src/toys/tabloid/js/playground.js) | 0 | ||||
| -rw-r--r-- | html/toys/tabloid/js/samples.js (renamed from src/toys/tabloid/js/samples.js) | 0 | ||||
| -rw-r--r-- | html/toys/tabloid/js/tabloid.js (renamed from src/toys/tabloid/js/tabloid.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/css/styles.css (renamed from src/toys/turing/css/styles.css) | 0 | ||||
| -rw-r--r-- | html/toys/turing/index.html (renamed from src/toys/turing/index.html) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/machine.js (renamed from src/toys/turing/js/machine.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/main.js (renamed from src/toys/turing/js/main.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/parser.js (renamed from src/toys/turing/js/parser.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/samples.js (renamed from src/toys/turing/js/samples.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/tape.js (renamed from src/toys/turing/js/tape.js) | 0 | ||||
| -rw-r--r-- | html/toys/turing/js/ui.js (renamed from src/toys/turing/js/ui.js) | 0 | ||||
| -rw-r--r-- | package-lock.json | 1730 | ||||
| -rw-r--r-- | package.json | 17 | ||||
| -rw-r--r-- | src/_layouts/base.njk | 103 | ||||
| -rw-r--r-- | src/about.njk | 35 | ||||
| -rw-r--r-- | src/assets/gus.jpeg | bin | 274894 -> 0 bytes | |||
| -rw-r--r-- | src/blinkies/add.njk | 176 | ||||
| -rw-r--r-- | src/blinkies/submitted.njk | 9 | ||||
| -rw-r--r-- | src/feed.njk | 32 | ||||
| -rw-r--r-- | src/index.njk | 33 | ||||
| -rw-r--r-- | src/resume.njk | 6 | ||||
| -rw-r--r-- | src/toys.md | 94 |
61 files changed, 237 insertions, 2327 deletions
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b91c6ad..0000000 --- a/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -node_modules/ -_site/ -.DS_Store -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db - -# IDE -.vscode -.idea -*.swp -*.swo -*~ -.vim - -# Environment -.env -.env.local - -# Node and Build -node_modules/ -dist/ -npm-debug.log -yarn-error.log -*.log - -# Docker -.docker - -# Claude -.claude - -# Temporary files -*.tmp -*.log - - @@ -1,17 +1,18 @@ -FROM node:22-alpine AS builder +#FROM node:22-alpine AS builder +# +#WORKDIR /app +# +#COPY package*.json ./ +#RUN npm install +# +#COPY . . +# +#RUN npm run build -WORKDIR /app +FROM nginx:alpine AS lizdotcoffee -COPY package*.json ./ -RUN npm install - -COPY . . - -RUN npm run build - -FROM nginx:alpine as lizdotcoffee - -COPY --from=builder /app/_site /usr/share/nginx/html +# COPY --from=builder /app/_site /usr/share/nginx/html +COPY html /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 diff --git a/eleventy.config.js b/eleventy.config.js deleted file mode 100644 index a12047a..0000000 --- a/eleventy.config.js +++ /dev/null @@ -1,40 +0,0 @@ -import pluginRss from "@11ty/eleventy-plugin-rss"; -import markdownIt from "markdown-it"; -import { outdent } from "outdent"; - -export default function(eleventyConfig) { - eleventyConfig.addPlugin(pluginRss); - - eleventyConfig.addPassthroughCopy("src/assets"); - eleventyConfig.addPassthroughCopy("src/toys"); - - // Configure markdown-it - const md = markdownIt({ - html: true, - breaks: false, - linkify: true - }); - - eleventyConfig.setLibrary("md", md); - - // Add markdown shortcode - eleventyConfig.addPairedShortcode("markdown", (content) => { - return md.render(outdent`${content}`); - }); - - // Add posts collection - eleventyConfig.addCollection("posts", (collectionApi) => { - return collectionApi.getFilteredByGlob("src/posts/**/*.md"); - }); - - return { - dir: { - input: "src", - output: "_site", - includes: "_includes", - layouts: "_layouts" - }, - markdownTemplateEngine: "njk", - htmlTemplateEngine: "njk" - }; -} diff --git a/src/assets/bellevue.jpeg b/html/assets/bellevue.jpeg Binary files differindex 0c68197..0c68197 100644 --- a/src/assets/bellevue.jpeg +++ b/html/assets/bellevue.jpeg diff --git a/src/assets/bread.jpeg b/html/assets/bread.jpeg Binary files differindex e9f4021..e9f4021 100644 --- a/src/assets/bread.jpeg +++ b/html/assets/bread.jpeg diff --git a/src/assets/critter.jpeg b/html/assets/critter.jpeg Binary files differindex 168dde4..168dde4 100644 --- a/src/assets/critter.jpeg +++ b/html/assets/critter.jpeg diff --git a/src/assets/euler.png b/html/assets/euler.png Binary files differindex 9ae56f3..9ae56f3 100644 --- a/src/assets/euler.png +++ b/html/assets/euler.png diff --git a/src/assets/fourier.png b/html/assets/fourier.png Binary files differindex 0e7f221..0e7f221 100644 --- a/src/assets/fourier.png +++ b/html/assets/fourier.png diff --git a/src/assets/godel.png b/html/assets/godel.png Binary files differindex 22c3f45..22c3f45 100644 --- a/src/assets/godel.png +++ b/html/assets/godel.png diff --git a/html/assets/gus.jpeg b/html/assets/gus.jpeg Binary files differnew file mode 100644 index 0000000..c75d559 --- /dev/null +++ b/html/assets/gus.jpeg diff --git a/src/assets/julia.png b/html/assets/julia.png Binary files differindex 1d259b5..1d259b5 100644 --- a/src/assets/julia.png +++ b/html/assets/julia.png diff --git a/src/assets/lambda.png b/html/assets/lambda.png Binary files differindex 4f07e8c..4f07e8c 100644 --- a/src/assets/lambda.png +++ b/html/assets/lambda.png diff --git a/src/assets/penguin.gif b/html/assets/penguin.gif Binary files differindex 48bd0e2..48bd0e2 100644 --- a/src/assets/penguin.gif +++ b/html/assets/penguin.gif diff --git a/src/assets/petting_basil.mp4 b/html/assets/petting_basil.mp4 Binary files differindex 0ed34ba..0ed34ba 100644 --- a/src/assets/petting_basil.mp4 +++ b/html/assets/petting_basil.mp4 diff --git a/src/assets/scooters_on_ceiling.jpeg b/html/assets/scooters_on_ceiling.jpeg Binary files differindex 2b1e856..2b1e856 100644 --- a/src/assets/scooters_on_ceiling.jpeg +++ b/html/assets/scooters_on_ceiling.jpeg diff --git a/src/assets/tabloid.png b/html/assets/tabloid.png Binary files differindex 5fd489a..5fd489a 100644 --- a/src/assets/tabloid.png +++ b/html/assets/tabloid.png diff --git a/src/assets/turing.png b/html/assets/turing.png Binary files differindex 51ae5a5..51ae5a5 100644 --- a/src/assets/turing.png +++ b/html/assets/turing.png diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..6199372 --- /dev/null +++ b/html/index.html @@ -0,0 +1,216 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<link rel="icon" href="https://adelie.liz.coffee/img/favicon.ico" /> +<title>liz.coffee</title> +<style> + @font-face { + font-family: 'Latin Modern'; + font-style: normal; font-weight: normal; font-display: swap; + src: url('https://cdn.jsdelivr.net/gh/vincentdoerig/latex-css@1.10.0/fonts/LM-regular.woff2') format('woff2'); + } + @font-face { + font-family: 'Latin Modern'; + font-style: italic; font-weight: normal; font-display: swap; + src: url('https://cdn.jsdelivr.net/gh/vincentdoerig/latex-css@1.10.0/fonts/LM-italic.woff2') format('woff2'); + } + @font-face { + font-family: 'Latin Modern'; + font-style: normal; font-weight: bold; font-display: swap; + src: url('https://cdn.jsdelivr.net/gh/vincentdoerig/latex-css@1.10.0/fonts/LM-bold.woff2') format('woff2'); + } + @font-face { + font-family: 'Latin Modern'; + font-style: italic; font-weight: bold; font-display: swap; + src: url('https://cdn.jsdelivr.net/gh/vincentdoerig/latex-css@1.10.0/fonts/LM-bold-italic.woff2') format('woff2'); + } + + :root { + --ink: #1a1a1a; + --link: #003399; + --stain: 150, 62, 22; + } + + * { margin: 0; padding: 0; box-sizing: border-box; } + + html { background: #54575c; } + + body { + font-family: 'Latin Modern', 'Computer Modern Serif', 'CMU Serif', Georgia, serif; + color: var(--ink); + font-size: 15.5px; + line-height: 1.45; + padding: 2.5rem 0.75rem 4rem; + } + + .page { + position: relative; + max-width: 51rem; + margin: 0 auto; + background: #fffdf7; + box-shadow: 0 0 4px rgba(0,0,0,.45), 0 10px 30px rgba(0,0,0,.35); + padding: 4.5rem 5.5rem 3.5rem; + overflow: hidden; + } + @media (max-width: 700px) { + .page { padding: 3rem 1.4rem 2.5rem; } + .arxiv { display: none; } + } + + .arxiv { + position: absolute; + left: 1.1rem; top: 24rem; + transform: rotate(180deg); + writing-mode: vertical-rl; + font-family: 'Latin Modern', Georgia, serif; + font-size: .95rem; + letter-spacing: .02em; + color: #333; + } + + .stain { position: absolute; border-radius: 50%; pointer-events: none; } + .stain.ring { + border: 9px solid rgba(var(--stain), .13); + box-shadow: + inset 0 0 6px 2px rgba(var(--stain), .10), + 0 0 5px 1px rgba(var(--stain), .07), + inset 8px 4px 12px rgba(var(--stain), .08); + filter: blur(.4px); + } + .stain.blotch { + background: radial-gradient(ellipse at 40% 40%, + rgba(var(--stain), .16) 0%, + rgba(var(--stain), .08) 45%, + rgba(var(--stain), .13) 62%, + rgba(var(--stain), 0) 72%); + filter: blur(.6px); + } + .stain.drop { background: rgba(var(--stain), .11); filter: blur(.5px); } + + #stain1 { width: 190px; height: 178px; top: -48px; right: -55px; transform: rotate(12deg); } + #stain1b { width: 145px; height: 140px; top: -22px; right: -30px; } + #stain2 { width: 120px; height: 112px; top: 44rem; left: -58px; transform: rotate(-9deg); border-width: 12px; } + #stain3 { width: 16px; height: 13px; top: 46.5rem; left: 70px; } + #stain3b { width: 8px; height: 8px; top: 45.5rem; left: 92px; } + #stain4 { width: 230px; height: 215px; bottom: 6rem; right: -80px; transform: rotate(31deg); } + #stain5 { width: 11px; height: 10px; bottom: 16rem; right: 130px; } + + .center { text-align: center; } + h1 { + font-size: 1.55rem; font-weight: normal; + text-align: center; + margin: 1.2rem auto 1.6rem; + max-width: 36rem; + line-height: 1.3; + } + .authorblock { text-align: center; margin-bottom: .4rem; } + .authorblock .author { font-size: 1.1rem; } + .authorblock .affil { font-style: italic; font-size: .95rem; margin-top: .15rem; } + .date { text-align: center; font-size: .95rem; margin: .8rem 0 1.6rem; } + tt, .tt { font-family: 'CMU Typewriter Text', ui-monospace, 'Cascadia Mono', Menlo, monospace; font-size: .88em; } + + .navline { text-align: center; margin-bottom: 2.2rem; } + .navline a { margin: 0 .35rem; } + + a { color: var(--link); text-decoration: none; } + a:hover { text-decoration: underline; } + + .abstract { max-width: 38rem; margin: 0 auto 2rem; } + .abstract .head { text-align: center; font-weight: bold; font-size: .95rem; margin-bottom: .5rem; } + .abstract p { font-size: .92rem; text-align: justify; hyphens: auto; } + + .epigraph { + max-width: 22rem; margin: 0 0 2rem auto; + font-style: italic; font-size: .92rem; text-align: right; + } + .epigraph .src { font-style: normal; font-size: .88rem; } + + h2 { + font-size: 1.15rem; font-weight: bold; + margin: 1.9rem 0 .8rem; + } + h2 .no { margin-right: 1em; } + + p { text-align: justify; hyphens: auto; margin-bottom: .75rem; } + p.indent { text-indent: 1.6em; margin-bottom: 0; } + +</style> +</head> +<body> + +<div class="page"> + <div class="stain blotch" id="stain1"></div> + <div class="stain ring" id="stain1b"></div> + <div class="stain ring" id="stain2"></div> + <div class="stain drop" id="stain3"></div> + <div class="stain drop" id="stain3b"></div> + <div class="stain ring" id="stain4"></div> + <div class="stain drop" id="stain5"></div> + + <div class="arxiv">arXiv:2607.0404v3 [cs.DOG] <span id="arxiv-date">5 Jul 2026</span></div> + + <div class="authorblock"> + <div class="author">Elizabeth / Alexander Hunt (she/he)</div> + <div class="affil">Department of Penguins</div> + <div><a class="tt" href="mailto:me@liz.coffee">me@liz.coffee</a></div> + </div> + <div class="date" id="today">July 4, 2026</div> + + <div class="navline tt"> + [<a href="https://code.liz.coffee">code</a>] · + [<a href="https://linkedin.com/in/emprespresso">linkedin</a>] · + [<a href="https://instagram.com/emprespresso">instagram</a>] · + [<a href="https://x.com/emprespresso">twitter</a>] + </div> + + <div class="abstract"> + <div class="head">Abstract</div> + <p>We introduce the author and establish some of her fundamental properties. If it's a proof you're looking for, well, the sourdough did that.</p> + <div class="center"><img src="assets/bread.jpeg" width="400"><br><em>Fig. 1 - The bread, proven. Also, baked.</em></div> + </div> + + <h2>1. Introduction</h2> + <p> + The author is a programmer at a Big Ol' Tech™ company in Seattle. She was previously at USU studying CS and Math, thankfully escaping from BYU-I at 16. + </p> + <p class="indent">She enjoys recreational programming and studying outside of work; some of her interests are in functional programming, compilers/PLs, game programming, overengineering her homelab, and low level fun. She hacks on some LISP, drives Emacs, and is generally fond of free software (from 2021 to 2023 she was the president of the <a href="https://linux.usu.edu">Free Software and Linux Club</a>).</p> + <p class="indent"> + When not computing, she runs, bikes, watches anime, rides trains, bakes bread, daydreams about going back to school. On rare occassions when nostalgic, she is heard practicing violin. She is overly fascinated by penguins and visits them when possible. + </p> + <p class="indent"> + The author is also the advisor to PhD (PHuckin-cuteass Dog) candidate Gus, whose current work involves proving something about squirrels. + <br><br> + <div class="center"><img src="assets/gus.jpeg" height="400"><br><em>Fig. 2 - PhD Candidate.</em></div> + </p> + + <!-- + <h2>2. Webtoys</h2> + <p>Some hacky little toys left around.</p> + + <ul style="margin-left: 2rem"> + <li><a href="/toys/tabloid">Tabloid IDE (now including closures!)</a></li> + <li><a href="/toys/turing">Turing Machine</a></li> + <li><a href="https://the-abstraction-engine.pages.dev">The Abstraction Engine</a></li> + <li><a href="/toys/godel">Godel Number Explorer</a></li> + <li><a href="/toys/julia">Julia Set Viewer (gpu.js accelerated)</a></li> + <li><a href="/toys/fourier">Discrete Fourier Transform Playground</a></li> + </ul> + --> + <footer style="display: flex; align-items: center; justify-content: center;"> + <img width="100" src="/assets/penguin.gif"> + <a href="https://liz.coffee"><img src="https://adelie.liz.coffee/img/blinkies/liz--coffee.gif" width="150" height="20"></a> + </footer> +</div> + +<script> + const d = new Date(); + const long = d.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }); + document.getElementById('today').textContent = long; + document.getElementById('arxiv-date').textContent = + d.getDate() + ' ' + d.toLocaleDateString('en-US', { month: 'short' }) + ' ' + d.getFullYear(); +</script> + +</body> +</html> diff --git a/src/toys/euler-golf/css/styles.css b/html/toys/euler-golf/css/styles.css index 219012d..219012d 100644 --- a/src/toys/euler-golf/css/styles.css +++ b/html/toys/euler-golf/css/styles.css diff --git a/src/toys/euler-golf/index.html b/html/toys/euler-golf/index.html index 8164823..8164823 100644 --- a/src/toys/euler-golf/index.html +++ b/html/toys/euler-golf/index.html diff --git a/src/toys/euler-golf/js/controls.js b/html/toys/euler-golf/js/controls.js index 7f606cc..7f606cc 100644 --- a/src/toys/euler-golf/js/controls.js +++ b/html/toys/euler-golf/js/controls.js diff --git a/src/toys/euler-golf/js/cx.js b/html/toys/euler-golf/js/cx.js index 371415d..371415d 100644 --- a/src/toys/euler-golf/js/cx.js +++ b/html/toys/euler-golf/js/cx.js diff --git a/src/toys/euler-golf/js/game.js b/html/toys/euler-golf/js/game.js index 5e123a0..5e123a0 100644 --- a/src/toys/euler-golf/js/game.js +++ b/html/toys/euler-golf/js/game.js diff --git a/src/toys/euler-golf/js/json-ds.js b/html/toys/euler-golf/js/json-ds.js index dc7e88e..dc7e88e 100644 --- a/src/toys/euler-golf/js/json-ds.js +++ b/html/toys/euler-golf/js/json-ds.js diff --git a/src/toys/euler-golf/js/modal-vanilla.min.js b/html/toys/euler-golf/js/modal-vanilla.min.js index 0d314c7..0d314c7 100644 --- a/src/toys/euler-golf/js/modal-vanilla.min.js +++ b/html/toys/euler-golf/js/modal-vanilla.min.js diff --git a/src/toys/euler-golf/js/sol.js b/html/toys/euler-golf/js/sol.js index b4e527f..b4e527f 100644 --- a/src/toys/euler-golf/js/sol.js +++ b/html/toys/euler-golf/js/sol.js diff --git a/src/toys/fourier/index.html b/html/toys/fourier/index.html index ccb8f48..ccb8f48 100644 --- a/src/toys/fourier/index.html +++ b/html/toys/fourier/index.html diff --git a/src/toys/fourier/js/script.js b/html/toys/fourier/js/script.js index 8d5af31..8d5af31 100644 --- a/src/toys/fourier/js/script.js +++ b/html/toys/fourier/js/script.js diff --git a/src/toys/godel/index.html b/html/toys/godel/index.html index 50a680a..50a680a 100644 --- a/src/toys/godel/index.html +++ b/html/toys/godel/index.html diff --git a/src/toys/godel/js/compiler.js b/html/toys/godel/js/compiler.js index d15c0f4..d15c0f4 100644 --- a/src/toys/godel/js/compiler.js +++ b/html/toys/godel/js/compiler.js diff --git a/src/toys/godel/js/godel-worker.js b/html/toys/godel/js/godel-worker.js index 1ba9da4..1ba9da4 100644 --- a/src/toys/godel/js/godel-worker.js +++ b/html/toys/godel/js/godel-worker.js diff --git a/src/toys/godel/js/main.js b/html/toys/godel/js/main.js index b752206..b752206 100644 --- a/src/toys/godel/js/main.js +++ b/html/toys/godel/js/main.js diff --git a/src/toys/godel/js/parser.js b/html/toys/godel/js/parser.js index a9436b6..a9436b6 100644 --- a/src/toys/godel/js/parser.js +++ b/html/toys/godel/js/parser.js diff --git a/src/toys/godel/js/ui.js b/html/toys/godel/js/ui.js index 97e5209..97e5209 100644 --- a/src/toys/godel/js/ui.js +++ b/html/toys/godel/js/ui.js diff --git a/html/toys/index.html b/html/toys/index.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/html/toys/index.html diff --git a/src/toys/julia/index.html b/html/toys/julia/index.html index 9d9de51..9d9de51 100644 --- a/src/toys/julia/index.html +++ b/html/toys/julia/index.html diff --git a/src/toys/julia/julia.js b/html/toys/julia/julia.js index 38bcd4d..0744e6f 100644 --- a/src/toys/julia/julia.js +++ b/html/toys/julia/julia.js @@ -3,7 +3,14 @@ const MAX_ZOOM = 4; const C_THRESHOLD = Math.sqrt(2)/2; const SLIDER_DIV = 2000*C_THRESHOLD; -const gpu = new GPU.GPU(); +function initGPU() { + try { + return new window.GPU.GPU(); + } catch (e) { + return new GPU(); + } +} +const gpu = initGPU(); const buildRender = (width, height) => gpu.createKernel(function (maxIterations, cr, ci, centerX, centerY, zoom, colorMultipliers) { let zx = (this.output.x / this.output.y) * (centerX + (4 * this.thread.x / this.output.x - 2) * (zoom / 4)); let zy = centerY + (4 * this.thread.y / this.output.y - 2) * (zoom / 4); diff --git a/src/toys/tabloid/index.html b/html/toys/tabloid/index.html index 61ec937..61ec937 100644 --- a/src/toys/tabloid/index.html +++ b/html/toys/tabloid/index.html diff --git a/src/toys/tabloid/js/main.js b/html/toys/tabloid/js/main.js index 1f0b5dd..1f0b5dd 100644 --- a/src/toys/tabloid/js/main.js +++ b/html/toys/tabloid/js/main.js diff --git a/src/toys/tabloid/js/playground.js b/html/toys/tabloid/js/playground.js index d6ff71a..d6ff71a 100644 --- a/src/toys/tabloid/js/playground.js +++ b/html/toys/tabloid/js/playground.js diff --git a/src/toys/tabloid/js/samples.js b/html/toys/tabloid/js/samples.js index dc7bd58..dc7bd58 100644 --- a/src/toys/tabloid/js/samples.js +++ b/html/toys/tabloid/js/samples.js diff --git a/src/toys/tabloid/js/tabloid.js b/html/toys/tabloid/js/tabloid.js index 468ee9a..468ee9a 100644 --- a/src/toys/tabloid/js/tabloid.js +++ b/html/toys/tabloid/js/tabloid.js diff --git a/src/toys/turing/css/styles.css b/html/toys/turing/css/styles.css index 2407cb4..2407cb4 100644 --- a/src/toys/turing/css/styles.css +++ b/html/toys/turing/css/styles.css diff --git a/src/toys/turing/index.html b/html/toys/turing/index.html index 838c5bf..838c5bf 100644 --- a/src/toys/turing/index.html +++ b/html/toys/turing/index.html diff --git a/src/toys/turing/js/machine.js b/html/toys/turing/js/machine.js index 6af4be6..6af4be6 100644 --- a/src/toys/turing/js/machine.js +++ b/html/toys/turing/js/machine.js diff --git a/src/toys/turing/js/main.js b/html/toys/turing/js/main.js index c9f37fc..c9f37fc 100644 --- a/src/toys/turing/js/main.js +++ b/html/toys/turing/js/main.js diff --git a/src/toys/turing/js/parser.js b/html/toys/turing/js/parser.js index dd65613..dd65613 100644 --- a/src/toys/turing/js/parser.js +++ b/html/toys/turing/js/parser.js diff --git a/src/toys/turing/js/samples.js b/html/toys/turing/js/samples.js index 0998ee4..0998ee4 100644 --- a/src/toys/turing/js/samples.js +++ b/html/toys/turing/js/samples.js diff --git a/src/toys/turing/js/tape.js b/html/toys/turing/js/tape.js index fd05366..fd05366 100644 --- a/src/toys/turing/js/tape.js +++ b/html/toys/turing/js/tape.js diff --git a/src/toys/turing/js/ui.js b/html/toys/turing/js/ui.js index ae01a4b..ae01a4b 100644 --- a/src/toys/turing/js/ui.js +++ b/html/toys/turing/js/ui.js diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index cecfa92..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1730 +0,0 @@ -{ - "name": "lizdotcoffee", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "lizdotcoffee", - "version": "1.0.0", - "dependencies": { - "markdown-it": "^14.1.0", - "outdent": "^0.8.0" - }, - "devDependencies": { - "@11ty/eleventy": "^3.1.2", - "@11ty/eleventy-plugin-rss": "^2.0.4" - } - }, - "node_modules/@11ty/dependency-tree": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.1.tgz", - "integrity": "sha512-6EPI9ZkGU4BX2KNZpWlf4WdV3vrmIWQpn//nAXicTzdPubI3jZlmFdqEv0Yj5M7oavRUGNzw9GbV9cBxhulZWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.1" - } - }, - "node_modules/@11ty/dependency-tree-esm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.3.tgz", - "integrity": "sha512-zlcfZq5WC9ksnLeLBROshNeE9P1jvOAPvUY9787cND/7SKf+QM7RGjNyF5taoCQww12B6Dx0Y9cwXsNbRipzlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.7", - "acorn": "^8.15.0", - "dependency-graph": "^1.0.0", - "normalize-path": "^3.0.0" - } - }, - "node_modules/@11ty/eleventy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.2.tgz", - "integrity": "sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/dependency-tree": "^4.0.0", - "@11ty/dependency-tree-esm": "^2.0.0", - "@11ty/eleventy-dev-server": "^2.0.8", - "@11ty/eleventy-plugin-bundle": "^3.0.6", - "@11ty/eleventy-utils": "^2.0.7", - "@11ty/lodash-custom": "^4.17.21", - "@11ty/posthtml-urls": "^1.0.1", - "@11ty/recursive-copy": "^4.0.2", - "@sindresorhus/slugify": "^2.2.1", - "bcp-47-normalize": "^2.3.0", - "chokidar": "^3.6.0", - "debug": "^4.4.1", - "dependency-graph": "^1.0.0", - "entities": "^6.0.1", - "filesize": "^10.1.6", - "gray-matter": "^4.0.3", - "iso-639-1": "^3.1.5", - "js-yaml": "^4.1.0", - "kleur": "^4.1.5", - "liquidjs": "^10.21.1", - "luxon": "^3.6.1", - "markdown-it": "^14.1.0", - "minimist": "^1.2.8", - "moo": "^0.5.2", - "node-retrieve-globals": "^6.0.1", - "nunjucks": "^3.2.4", - "picomatch": "^4.0.2", - "please-upgrade-node": "^3.2.0", - "posthtml": "^0.16.6", - "posthtml-match-helper": "^2.0.3", - "semver": "^7.7.2", - "slugify": "^1.6.6", - "tinyglobby": "^0.2.14" - }, - "bin": { - "eleventy": "cmd.cjs" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-dev-server": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz", - "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.1", - "chokidar": "^3.6.0", - "debug": "^4.4.0", - "finalhandler": "^1.3.1", - "mime": "^3.0.0", - "minimist": "^1.2.8", - "morphdom": "^2.7.4", - "please-upgrade-node": "^3.2.0", - "send": "^1.1.0", - "ssri": "^11.0.0", - "urlpattern-polyfill": "^10.0.0", - "ws": "^8.18.1" - }, - "bin": { - "eleventy-dev-server": "cmd.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-bundle": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", - "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.2", - "debug": "^4.4.0", - "posthtml-match-helper": "^2.0.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-rss": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-2.0.4.tgz", - "integrity": "sha512-LF60sGVlxGTryQe3hTifuzrwF8R7XbrNsM2xfcDcNMSliLN4kmB+7zvoLRySRx0AQDjqhPTAeeeT0ra6/9zHUQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@11ty/eleventy-utils": "^2.0.0", - "@11ty/posthtml-urls": "^1.0.1", - "debug": "^4.4.0", - "posthtml": "^0.16.6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-utils": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz", - "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/lodash-custom": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", - "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/posthtml-urls": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.2.tgz", - "integrity": "sha512-0vaV3Wt0surZ+oS1VdKKe0axeeupuM+l7W/Z866WFQwF+dGg2Tc/nmhk/5l74/Y55P8KyImnLN9CdygNw2huHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "evaluate-value": "^2.0.0", - "http-equiv-refresh": "^2.0.1", - "list-to-array": "^1.1.0", - "parse-srcset": "^1.0.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@11ty/recursive-copy": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.3.tgz", - "integrity": "sha512-SX48BTLEGX8T/OsKWORsHAAeiDsbFl79Oa/0Wg/mv/d27b7trCVZs7fMHvpSgDvZz/fZqx5rDk8+nx5oyT7xBw==", - "dev": true, - "license": "ISC", - "dependencies": { - "errno": "^1.0.0", - "junk": "^3.1.0", - "maximatch": "^0.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@sindresorhus/slugify": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", - "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/transliterate": "^1.0.0", - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/transliterate": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", - "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/a-sync-waterfall": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", - "dev": true, - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/bcp-47": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", - "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/bcp-47-match": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", - "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/bcp-47-normalize": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", - "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "bcp-47": "^2.0.0", - "bcp-47-match": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", - "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz", - "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esm-import-transformer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz", - "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.15.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/evaluate-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", - "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/filesize": { - "version": "10.1.6", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", - "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 10.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-equiv-refresh": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", - "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-json": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/iso-639-1": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.5.tgz", - "integrity": "sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/liquidjs": { - "version": "10.24.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.24.0.tgz", - "integrity": "sha512-TAUNAdgwaAXjjcUFuYVJm9kOVH7zc0mTKxsG9t9Lu4qdWjB2BEblyVIYpjWcmJLMGgiYqnGNJjpNMHx0gp/46A==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^10.0.0" - }, - "bin": { - "liquid": "bin/liquid.js", - "liquidjs": "bin/liquid.js" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/liquidjs" - } - }, - "node_modules/list-to-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", - "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", - "dev": true, - "license": "MIT" - }, - "node_modules/luxon": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", - "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/maximatch": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", - "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/morphdom": { - "version": "2.7.7", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.7.tgz", - "integrity": "sha512-04GmsiBcalrSCNmzfo+UjU8tt3PhZJKzcOy+r1FlGA7/zri8wre3I1WkYN9PT3sIeIKfW9bpyElA+VzOg2E24g==", - "dev": true, - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-retrieve-globals": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz", - "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.1", - "acorn-walk": "^8.3.4", - "esm-import-transformer": "^3.0.3" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nunjucks": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", - "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - }, - "bin": { - "nunjucks-precompile": "bin/precompile" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "chokidar": "^3.3.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/nunjucks/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/outdent": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", - "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==", - "license": "MIT" - }, - "node_modules/parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/posthtml": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", - "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "posthtml-parser": "^0.11.0", - "posthtml-render": "^3.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/posthtml-match-helper": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz", - "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "posthtml": "^0.16.6" - } - }, - "node_modules/posthtml-parser": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", - "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "htmlparser2": "^7.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/posthtml-render": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", - "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-json": "^2.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true, - "license": "MIT" - }, - "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", - "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/urlpattern-polyfill": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", - "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 340f77b..0000000 --- a/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "lizdotcoffee", - "version": "1.0.0", - "type": "module", - "scripts": { - "dev": "eleventy --serve", - "build": "eleventy" - }, - "devDependencies": { - "@11ty/eleventy": "^3.1.2", - "@11ty/eleventy-plugin-rss": "^2.0.4" - }, - "dependencies": { - "markdown-it": "^14.1.0", - "outdent": "^0.8.0" - } -} diff --git a/src/_layouts/base.njk b/src/_layouts/base.njk deleted file mode 100644 index 21e8bae..0000000 --- a/src/_layouts/base.njk +++ /dev/null @@ -1,103 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="icon" href="https://adelie.liz.coffee/img/favicon.ico" /> - <title>{% if title %}{{ title }} - {% endif %}liz.coffee</title> - - <!-- Open Graph Meta Tags --> - <meta property="og:title" content="{% if title %}{{ title }} - {% endif %}liz.coffee"> - <meta property="og:site_name" content="liz.coffee"> - <meta property="og:type" content="{% if ogType %}{{ ogType }}{% else %}website{% endif %}"> - <meta property="og:url" content="https://liz.coffee{{ page.url }}"> - {% if description %} - <meta property="og:description" content="{{ description }}"> - <meta name="description" content="{{ description }}"> - {% endif %} - {% if ogImage %} - <meta property="og:image" content="{{ ogImage }}"> - {% else %} - <meta property="og:image" content="https://adelie.liz.coffee/img/favicon.ico"> - {% endif %} - - <!-- Twitter Card Meta Tags --> - <meta name="twitter:card" content="summary"> - <meta name="twitter:site" content="@emprespresso"> - <meta name="twitter:creator" content="@emprespresso"> - <meta name="twitter:title" content="{% if title %}{{ title }} - {% endif %}liz.coffee"> - {% if description %} - <meta name="twitter:description" content="{{ description }}"> - {% endif %} - {% if ogImage %} - <meta name="twitter:image" content="{{ ogImage }}"> - {% else %} - <meta name="twitter:image" content="https://adelie.liz.coffee/img/favicon.ico"> - {% endif %} - <link rel="stylesheet" href="https://adelie.liz.coffee/bundle.css"> - <link rel="alternate" type="application/atom+xml" title="liz.coffee" href="/feed.xml"> - <style> - .blinkie { - image-rendering: optimizeSpeed; - image-rendering: -moz-crisp-edges; - image-rendering: -o-crisp-edges; - image-rendering: -webkit-optimize-contrast; - image-rendering: pixelated; - image-rendering: optimize-contrast; - -ms-interpolation-mode: nearest-neighbor; - width: 150px; - height: 20px; - } - .blinkies { - display: flex; - justify-content: left; - flex-wrap: wrap; - max-width: 900px; - gap: 10px 10px; - } - .blinkie-linky:hover { - text-decoration: none !important; - } - - </style> - {% if pageStyles %} - <style>{{ pageStyles | safe }}</style> - {% endif %} -</head> -<body> - <header> - <nav> - <a href="/">Home</a> - <a href="/about">About Me</a> - <a href="/toys">Toys</a> - <a href="/resume">Resume</a> - </nav> - <input type="checkbox" id="theme-toggle" class="toggle" aria-label="Toggle dark mode" /> - </header> - <main> - <article> - {{ content | safe }} - </article> - </main> - <footer> - <div class="blinkies"> - <a class="blinkie-linky" href="https://liz.coffee"> - <img class="blinkie" src="https://adelie.liz.coffee/img/blinkies/liz--coffee.gif"> - </a> - <a class="blinkie-linky" href="https://x.com/realLucina"> - <img class="blinkie" src="https://adelie.liz.coffee/img/blinkies/lucina.gif"> - </a> - <img class="blinkie" src="https://adelie.liz.coffee/img/blinkies/boys.gif"> - </div> - <div class="text-center"> - <img width="100" src="/assets/penguin.gif" /> - <p>add <a href="/blinkies/add">your very own blinkie</a>!</p> - </div> - </footer> - - <script type="module" src="https://adelie.liz.coffee/bundle.js"></script> - {% if pageScripts %} - <script>{{ pageScripts | safe }}</script> - {% endif %} -</body> -</html> diff --git a/src/about.njk b/src/about.njk deleted file mode 100644 index bfe1d7f..0000000 --- a/src/about.njk +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: base.njk -title: About ---- - -{% markdown %} - -## About Me - -<div class="text-center"> - <img width="300" src="/assets/bellevue.jpeg" /> - <img width="300" src="/assets/critter.jpeg" /> - - <p><small><i>bellevue, washington across the water and a small critter.</i></small></p> -</div> - -I'm a 22 year old programmer with a few years of industry experience under my belt. Currently at AWS. -I graduated from Utah State University in 2023 at 20 with a degree in CS and a minor in math. -I live in Seattle with my partners and my dog. - - -<div class="text-center"> - <img width="300" src="/assets/bread.jpeg" /> - <img width="300" src="/assets/scooters_on_ceiling.jpeg" /> - - <p><small><i>sourdough bread, and some lime scooters where they ought to be parked.</i></small></p> -</div> - -I love running. -I also love baking sourdough bread. -I obsess and read as much as I can about, objectively, the most fascinating creatures there are - penguins. - -I love taking long train rides, anime, Rubik's cubes, thocky and soft mechanical keyboards, collecting stickers and stuffed animals, loud thundery storms, etc. - -{% endmarkdown %} diff --git a/src/assets/gus.jpeg b/src/assets/gus.jpeg Binary files differdeleted file mode 100644 index 1cdae76..0000000 --- a/src/assets/gus.jpeg +++ /dev/null diff --git a/src/blinkies/add.njk b/src/blinkies/add.njk deleted file mode 100644 index 95d29df..0000000 --- a/src/blinkies/add.njk +++ /dev/null @@ -1,176 +0,0 @@ ---- -layout: base.njk -title: Add a Blinkie! ---- - -<h2>Add your very own blinkie!</h2> -<p> - Please allow us 1 to 10 business days to process your request. Your engagement - is very important to our shareholders. -</p> -<p> - <small> - Want to create your own blinkie? Check out <a href="https://blinkies.pixelwavestudio.net/" target="_blank" rel="noopener noreferrer">Pixel Wave Studio</a>! - Need inspiration? Browse <a href="https://adriansblinkiecollection.neocities.org/" target="_blank" rel="noopener noreferrer">Adrian's Blinkie Collection</a>. - </small> -</p> - -<form - id="form" - method="POST" - action="https://posthook.liz.coffee/hook/add-a-blinkie" - enctype="multipart/form-data" -> - <div class="form-group"> - <label for="name">Name *</label> - <input - type="text" - id="name" - name="name" - placeholder="Elizabeth..." - required - /> - </div> - <br /> - - <div class="form-group"> - <label for="email">Email</label> - <p> - <small> - In case something goes wrong or you want to update the blinkie in the future and need to email <a href="mailto:me@liz.coffee">me</a>. - </small> - </p> - <input - type="email" - id="email" - name="email" - placeholder="me@liz.coffee..." - /> - </div> - <br /> - - <div class="form-group"> - <label for="justification">Justification *</label> - <p> - <small> - Please explain why you think this blinkie is a good addition to this site. - "I am cool as fuck yo" is a valid reason. - </small> - </p> - <input - type="text" - id="justification" - name="justification" - placeholder="I am cool as fuck yo..." - required - /> - </div> - <br /> - - <div class="form-group"> - <label for="link">Link</label> - <p> - <small> - Optional link to direct visitors to when they click the blinkie. - </small> - </p> - <input - type="url" - id="link" - name="link" - placeholder="https://..." - /> - </div> - <br /> - - <div class="form-group"> - <label for="gif">Blinkie *</label> - <p><small>Blinkie gif in 150px:20px or equivalent aspect ratio.</small></p> - <input - type="file" - id="gif" - name="gif" - accept="image/gif" - required - /> - <label for="gif" class="file-input-button"> - Browse Files - </label> - - </div> - <br /> - - <div - class="h-captcha" - data-sitekey="70fc31c2-32a4-4304-8b5a-b492eba656ec" - ></div> - - <br /> - - <input type="hidden" name="_redirect" value="https://liz.coffee/blinkies/submitted/" /> - <input id="_token" type="hidden" name="_token" /> - - <button type="submit">Submit</button> -</form> - -<script src="https://hcaptcha.com/1/api.js" async defer></script> - -<script> - const form = document.getElementById("form"); - const tokenInput = document.getElementById("_token"); - const fileInput = document.getElementById("gif"); - const fileName = document.getElementById("file-name"); - const fileGroup = document.getElementById("file-group"); - - fileInput.addEventListener("change", () => { - if (fileInput.files.length > 0) { - fileName.textContent = fileInput.files[0].name; - fileGroup.classList.add("has-file"); - } else { - fileName.textContent = "No file selected"; - fileGroup.classList.remove("has-file"); - } - }); - - form.addEventListener("submit", async (event) => { - event.preventDefault(); - const hcaptchaResponse = hcaptcha.getResponse(); - if (!hcaptchaResponse) { - alert("Please complete the hCaptcha before submitting."); - return; - } - try { - const tokenRes = await fetch( - "https://posthook.liz.coffee/hook/add-a-blinkie/token", - { credentials: "omit" } - ); - const tokenData = await tokenRes.json(); - const csrfToken = tokenData?.ok?.token; - if (!csrfToken) throw new Error("Missing token"); - tokenInput.value = csrfToken; - - const formData = new FormData(form); - const submitRes = await fetch(form.action, { - method: "POST", - body: formData, - headers: { - "H-Captcha-Response": hcaptchaResponse, - "X-CSRF-Token": csrfToken, - }, - redirect: "manual", - credentials: "omit", - }); - - const redirectUrl = formData.get("_redirect"); - if (typeof redirectUrl === "string" && redirectUrl.length > 0) { - window.location.assign(redirectUrl); - return; - } - const text = await submitRes.text(); - if (!submitRes.ok) throw new Error(text || "Submit failed"); - } catch (err) { - alert("Something went wrong. Please try again."); - hcaptcha.reset(); - } - }); -</script> diff --git a/src/blinkies/submitted.njk b/src/blinkies/submitted.njk deleted file mode 100644 index f06afa5..0000000 --- a/src/blinkies/submitted.njk +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: base.njk -title: Blinkie Sent! ---- - -<h2>Thank you!</h2> -<p>Thank you for submitting a blinkie!</p> - -<p>Our shareholders will extract your labor value and perhaps add it to the larger blinkie economy. You may go <a href="/">Home</a></p> diff --git a/src/feed.njk b/src/feed.njk deleted file mode 100644 index a8ae238..0000000 --- a/src/feed.njk +++ /dev/null @@ -1,32 +0,0 @@ ---- -permalink: /feed.xml -eleventyExcludeFromCollections: true -metadata: - title: liz.coffee - subtitle: elizabeth's ramblings - url: https://liz.coffee/ - feedUrl: https://liz.coffee/feed.xml - author: - name: emprespresso ---- -<?xml version="1.0" encoding="utf-8"?> -<feed xmlns="http://www.w3.org/2005/Atom"> - <title>{{ metadata.title }}</title> - <subtitle>{{ metadata.subtitle }}</subtitle> - <link href="{{ metadata.feedUrl }}" rel="self"/> - <link href="{{ metadata.url }}"/> - <updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated> - <id>{{ metadata.url }}</id> - <author> - <name>{{ metadata.author.name }}</name> - </author> - {%- for post in collections.posts | reverse -%} - <entry> - <title>{{ post.data.title }}</title> - <link href="{{ metadata.url }}{{ post.url }}"/> - <updated>{{ post.date | dateToRfc3339 }}</updated> - <id>{{ metadata.url }}{{ post.url }}</id> - <content type="html">{{ post.templateContent | htmlToAbsoluteUrls(metadata.url) }}</content> - </entry> - {%- endfor -%} -</feed> diff --git a/src/index.njk b/src/index.njk deleted file mode 100644 index aaae563..0000000 --- a/src/index.njk +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: base.njk -title: Home ---- - -<h2>Liz Dot Coffee</h2> - -<p> - Hello! My name is Elizabeth/Alex (she/he). This is me on the best day of my life, meeting and petting penguins in San Diego. This other guy? That's Gus. -</p> -<div class="text-center"> - <video height="300" autoplay loop controls muted playsinline> - <source src="/assets/petting_basil.mp4" type="video/mp4"> - Your browser does not support the video tag. - </video> - <img height="300" src="/assets/gus.jpeg" /> -</div> - -<br /> -<p>Together we run, bake bread, and chase squirrels. Sometimes I do computers while he snoozes.</p> - -<p>You can find me on the internet at these places:</p> -<ul> - <li><a rel="me" href="https://twitter.com/emprespresso">twitter</a></li> - <li><a rel="me" href="https://www.linkedin.com/in/emprespresso/">linkedin</a></li> - <li><a rel="me" href="https://www.instagram.com/emprespresso/">instagram</a></li> - <li><a rel="me" href="https://github.com/emprespresso">github</a> (Although, I try to do most of my side projecting <a href="https://code.liz.coffee">on my own infra</a>)</li> - <li><a rel="me" href="mailto:me@liz.coffee">me@liz.coffee</a></li> -</ul> - -<blockquote> - "Right," Holden said. "No coffee. This is a terrible, terrible planet." -</blockquote> diff --git a/src/resume.njk b/src/resume.njk deleted file mode 100644 index 6d3bdd1..0000000 --- a/src/resume.njk +++ /dev/null @@ -1,6 +0,0 @@ ---- -layout: base.njk -title: Resume ---- - -I'll add this if I need to. diff --git a/src/toys.md b/src/toys.md deleted file mode 100644 index 0351468..0000000 --- a/src/toys.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -layout: base.njk -title: Toys -description: A collection of little interactive toys and experiments ---- - -## Toys! - -These are the web-based toys I've ported over (so far) from my old website. New and improved! - ---- - -#### The Abstraction Engine - -<div class="text-center"> - <img src="/assets/lambda.png" style="max-width:500px;width:100%;"> -</div> - -A game inspired by [Baba Is You](https://store.steampowered.com/app/736260/Baba_Is_You/). Your character is a Lambda and you aim to eat the [Curry](https://en.wikipedia.org/wiki/Currying) by writing real lambda-calculus terms and applying them to other lambda-calculus terms to solve puzzles. The core is a [custom ECS engine and lambda calculus interpreter in typescript](https://code.liz.coffee/the-abstraction-engine-ts.git/). So far I've only gotten two levels as a "tech demo" showcasing basic functionality. But the groundwork was put in place to get a [fixed-point-combinator](https://en.wikipedia.org/wiki/Fixed-point_combinator) level written. - -Due to the game's inner complexity and the fact that I just keep getting discouraged, I've been procrastinating making a full rewrite and release of this on real platforms as my first "published" game. Hopefully I get there some day soon. Maybe I just need to set myself a deadline. - -[Play now](https://the-abstraction-engine.pages.dev)! - ---- - -#### Tabloid Closures - -<div class="text-center"> - <img src="/assets/tabloid.png" style="max-width:500px;width:100%;"> -</div> - -For fun (and procrastination) I added closures to the [Tabloid](https://tabloid.vercel.app/) esoteric programming language and wrote lambda-calculus-inspired primitives of pair/cons, then extended them to -valid merge sort and binary tree traversal programs. - -[It is horribly inefficient](/toys/tabloid). - ---- - -#### Gödel Number Playground - -<div class="text-center"> - <img src="/assets/godel.png" style="max-width:500px;width:100%;"> -</div> - -A PEG grammar (I'd hardly call this a compiler) which computes the [Gödel number](https://en.wikipedia.org/wiki/G%C3%B6del_numbering) from a valid L program. - -[View your favorite L program's Gödel number here](/toys/godel). - ---- - -#### Turing Machine - -<div class="text-center"> - <img src="/assets/turing.png" style="max-width:500px;width:100%"> -</div> - -[I swear the tape is infinite](/toys/turing). - ---- - -#### Euler Golf 2 - -<div class="text-center"> - <img src="/assets/euler.png" style="max-width:500px;width:100%"> -</div> - -Euler Golf 2 is a reimplemetation and solver of [Val Hovey's Euler Golf](https://valhovey.github.io/EulerGolf). - -[Play now!](/toys/euler-golf) - ---- - -#### Julia Explorer - -<div class="text-center"> - <img src="/assets/julia.png" style="max-width:500px;width:100%"> -</div> - -A quick experiment with [GPU.js](https://gpu.rocks/#/). - -[Explore julia set fractals in real time](/toys/julia). - ---- - -#### A Fourier New Year - -<div class="text-center"> - <img src="/assets/fourier.png" style="max-width:500px;width:100%"> -</div> - -A quick app I hacked together for some friends on Discord at the time to explore a discrete fourier transform of the function of their mood wrt time for the year. - -[Drag your mouse on a canvas here](/toys/fourier)! |
