From 4c9ef37cf1d8d71e3689cd625565ed69ccbbabed Mon Sep 17 00:00:00 2001 From: Dmitry Verkhoturov Date: Sat, 22 Aug 2026 00:05:56 +0100 Subject: [PATCH] Move the site from eleventy to hugo (#2179) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move the site from eleventy to hugo The site is built by a single static binary. No node, no package manager, no lockfile, and the toolchain it needed is gone: eleventy, tailwind, postcss, markdown-it and its three plugins, date-fns, prism, npm-run-all, cross-env and html-minifier-terser. Hugo covers most of that itself. Chroma replaces prism, goldmark replaces markdown-it, `--minify` replaces html-minifier-terser, and fingerprinted asset URLs replace the cache-busting `version` shortcode that stamped `Date.now()` into every stylesheet link. `assets/styles.css` is hand-written, since tailwind was the only reason left to keep a package manager. The palette and the light and dark values are custom properties at the top of the file; the minified stylesheet is 15 kB against tailwind's 46 kB, and the whole build 1.0 MB against 1.2 MB. It was matched to the old one by comparing computed styles rather than by eye, which is how the heading weights and line heights, the list marker colour, and the home page heading and sign-off were caught: the last of those had been carried by tailwind utilities written into the markup. The `::: note` container becomes a `note` shortcode taking the emoji to show. Its closer needs a blank line after it, because a shortcode is not a block rule the way `markdown-it-container` was, and without one goldmark keeps the callout inside the open paragraph. The `overflow-x` wrapper around tables and the heading anchors are goldmark render hooks. Syntax guessing is off. Chroma detected a systemd unit file as gdscript and a chat transcript as mysql, and colouring a snippet as the wrong language is worse than not colouring it. The two chroma themes are scoped to opposite sides of the theme switch rather than layered, because they do not declare the same properties on the same tokens: github gives Error a background github-dark never overrides, and styles Punctuation where github-dark leaves it alone. Layered, either leaves a light value applying on a dark page. `[frontmatter] lastmod` resolves through git, then front matter, then file modification time. Without that chain `.Lastmod` falls back to `.Date`, which is zero when a page carries no date, and every page reads `Jan 01, 0001`. `enableGitInfo` is off because the image build context is `site/` alone, where hugo fails hard rather than degrading; `HUGO_ENABLEGITINFO=true` gives real per-page commit dates locally. Three fixes fall out of the move rather than being sought: - `/docs/` redirected nowhere. The stub was a markdown file whose permalink was a template expression while `markdownTemplateEngine` was false, so it never rendered and the URL 404'd. It is an alias now - `/docs/contributing/` pointed at `/docs/contributing/development/`, which has never existed. It points at the backend page - the 404 page was built to `/404/` and nothing served it. Hugo writes it to `/404.html` and reproxy is told to use it The mobile documentation menu is a checkbox and label. `visibility: hidden` on the checkbox, which is what the old `invisible` utility set, takes it out of the tab order, and a label is not focusable on its own, so the menu could not be opened from the keyboard at all. The checkbox is clipped rather than hidden, and its label shows a focus ring. Content is unchanged. Every code block on every page is byte-identical to the eleventy output; the only prose difference is that two example values, `mysite.com` and a quoted `https://demo.remark42.com`, are no longer turned into links, goldmark's linkify being narrower than markdown-it's. `backend/README.md` and `frontend/apps/remark42/README.md` are symlinks into the docs tree and follow it to `site/content/`, as does the path `release.yml` watches. `frontend/CLAUDE.md` described the site as a node and yarn project in four places. * Keep the heading anchors markdown-it generated Goldmark strips punctuation markdown-it kept, so 22 headings holding a dot, slash, apostrophe, question mark, bracket or em dash would take a new id and any link into one from outside the repository would stop resolving. Those headings carry their previous id as well, as an empty target emitted ahead of the heading by the render hook, from a map of content path to old anchor in `data/anchor_aliases.json`. The map was built by matching heading text between the two builds rather than by position, so it survives a heading being added or moved. The hook rather than markdown, because goldmark's `{#id}` attribute syntax cannot express these: it accepts dots, apostrophes and em dashes but treats a slash, a question mark, a bracket or a percent sign as heading text, which is 11 of the 22. The ids are stored percent-decoded, since a browser decodes a fragment before matching, so `#children%E2%80%99s-privacy` finds `children’s-privacy`. Verified by navigating to the awkward ones against the built image and measuring where the page settles: each lands 112px down, which is the header offset the target carries. Three pages carried no title, so the docs template rendered an empty `

` above the heading their markdown already had. They take their titles from that heading text, so neither the wording nor its anchor changes, and the template's `

` carries an id. One in-page link pointed at an anchor goldmark no longer generates. The heading render hook emits no permalink anchor. The one it replaced was an empty `` with `pointer-events: none`, so it could not be clicked, and its only job was a `::before` spacer that `scroll-margin-top` on the heading already does. Being an `` it stayed in the tab order, so every heading was an unexplained keyboard stop: eight on the installation page alone. Fragment navigation still lands 112px down, clear of the fixed header. * Harden the site image build and its CI The architecture guard could not fire. `${TARGETARCH:-amd64}` defaulted before the `unsupported arch` branch was reachable, so a build without buildkit put an amd64 hugo inside an aarch64 image and ran only because Docker Desktop emulates it. Reproduced with `--build-arg TARGETARCH=`: `/etc/apk/arch` reported aarch64 and `hugo version` linux/amd64. An empty value is an error now. `Dockerfile.dev` had the same defect and no smoke step to catch it, so it would have failed at `compose up`. The hugo tarball is verified against the release's own `checksums.txt`, and the match is asserted present before it is used: piping grep straight into `sha256sum -c` left the guarantee resting on what the checker does with empty input. Busybox exits 1 there, so it did fail closed, but nothing in the line said so. Verified against a checksums file that does not list the tarball: the build stops before the install. Hugo exits 0 on an empty content tree and emits a two-page shell, which would have been copied, pushed and deployed. The build asserts the home page and a docs page exist. `site/**` pull requests were never built. The only building job is gated on `github.ref == 'refs/heads/master'`, so on a pull request every job skipped and rendered in the checks list the same way a pass does, and the image was first built on the run that also deploys it. A `validate` job builds it with `push: false`, needing no secrets so it works on a fork. `.github/dependabot.yml` watched `/site` for npm packages that are gone. That entry is a docker one, which tracks the alpine base. It does not track the hugo pin and cannot: the docker ecosystem reads `FROM` references, and `ARG HUGO_VERSION` is a bare string in a download URL, so that one is a manual bump and `site/README.md` says so. `Dockerfile.dev` carries a `COPY`, so the dev image works without the compose bind mount, and compose runs as the invoking user rather than root, which on linux left root-owned `public/` and `resources/` in the checkout. Recorded in the backlog: `master` has `required_status_checks` off with an empty check list, so the new job surfaces a red X and does not block a merge. That is a settings decision rather than a code fix. --- .github/dependabot.yml | 12 +- .github/workflows/ci-site.yml | 29 +- .github/workflows/release.yml | 2 +- backend/README.md | 2 +- docs/backlog/site-checks-do-not-gate-merge.md | 19 + docs/backlog/site-pr-build-never-runs.md | 35 - frontend/CLAUDE.md | 14 +- frontend/apps/remark42/README.md | 2 +- site/.dockerignore | 8 +- site/.eleventy.js | 118 - site/.eleventyignore | 3 - site/.gitignore | 6 +- site/.nvmrc | 1 - site/.prettierignore | 3 - site/.prettierrc | 14 - site/Dockerfile | 33 +- site/Dockerfile.dev | 29 +- site/README.md | 70 +- .../includes/inline.njk => assets/inline.js} | 2 +- site/{src/includes => assets}/script.js | 0 site/assets/styles.css | 987 ++++++ .../{src/pages/index.md => content/_index.md} | 6 +- site/{src/pages => content}/demo.md | 3 +- site/content/docs/_index.md | 6 + site/content/docs/backup/_index.md | 6 + .../docs/backup/backup/index.md | 2 + .../docs/backup/migration/index.md | 0 .../docs/backup/restore/index.md | 0 .../docs/backup/url-migration/index.md | 0 site/content/docs/configuration/_index.md | 6 + .../docs/configuration/authorization/index.md | 0 .../configuration/email/images/email_auth.png | Bin .../email/images/email_notifications.png | Bin .../email/images/error_template.png | Bin .../docs/configuration/email/index.md | 0 .../docs/configuration/frontend/_index.md} | 14 +- .../docs/configuration/frontend/spa.md | 4 +- .../docs/configuration/notifications/index.md | 0 .../docs/configuration/parameters/index.md | 2 +- .../docs/configuration/telegram/index.md | 0 site/content/docs/contributing/_index.md | 6 + .../docs/contributing/api/index.md | 0 .../docs/contributing/backend/index.md | 6 +- .../docs/contributing/frontend/index.md | 16 +- .../docs/contributing/translations/index.md | 4 +- site/content/docs/getting-started/_index.md | 6 + .../getting-started/installation/index.md | 7 +- site/content/docs/manuals/_index.md | 6 + .../admin-interface/images/admin-blocking.png | Bin .../admin-interface/images/admin-delete.png | Bin .../admin-interface/images/admin-primary.png | Bin .../admin-interface/images/admin-settings.png | Bin .../docs/manuals/admin-interface/index.md | 0 .../manuals/integration-with-astro/index.md | 4 +- .../manuals/integration-with-gatsby/index.md | 4 +- .../docs/manuals/kubernetes/index.md | 0 .../docs/manuals/nginx/index.md | 0 .../docs/manuals/reproxy/index.md | 0 .../docs/manuals/separate-domain/index.md | 0 .../docs/manuals/spam/index.md | 0 .../docs/manuals/subdomain/index.md | 2 + site/{src/pages => content}/privacy.md | 2 - site/data/anchor_aliases.json | 36 + site/{src/docs => data}/nav.json | 0 site/docker-compose.yml | 10 +- site/hugo.toml | 39 + site/layouts/404.html | 6 + site/layouts/_markup/render-heading.html | 12 + site/layouts/_markup/render-table.html | 26 + site/layouts/baseof.html | 11 + site/layouts/demo.html | 22 + site/layouts/docs/all.html | 13 + site/layouts/home.html | 3 + site/layouts/page.html | 9 + site/layouts/partials/docs-aside.html | 29 + site/layouts/partials/footer.html | 3 + site/layouts/partials/head.html | 16 + site/layouts/partials/header.html | 22 + site/layouts/shortcodes/note.html | 5 + site/package.json | 51 - site/postcss.config.js | 6 - site/public/robots.txt | 2 - site/src/data/site.json | 10 - site/src/docs/backup/index.md | 4 - site/src/docs/configuration/index.md | 4 - site/src/docs/contributing/index.md | 4 - site/src/docs/docs.11tydata.js | 4 - site/src/docs/getting-started/index.md | 4 - site/src/docs/manuals/index.md | 4 - site/src/includes/components/docs-aside.njk | 42 - site/src/includes/components/footer.njk | 3 - site/src/includes/components/head.njk | 20 - site/src/includes/components/header.njk | 24 - site/src/layouts/404.njk | 8 - site/src/layouts/base.njk | 11 - site/src/layouts/demo.njk | 19 - site/src/layouts/docs.njk | 32 - site/src/layouts/home.njk | 7 - site/src/layouts/page.njk | 13 - site/src/layouts/redirect.njk | 13 - site/src/pages/404.md | 5 - site/src/pages/redirects.md | 20 - site/src/styles.css | 202 -- .../android-chrome-192x192.png | Bin .../android-chrome-512x512.png | Bin site/{public => static}/apple-touch-icon.png | Bin site/{public => static}/favicon-16x16.png | Bin site/{public => static}/favicon-32x32.png | Bin site/{public => static}/favicon.ico | Bin site/static/robots.txt | 2 + site/{public => static}/site.webmanifest | 0 site/tailwind.config.js | 111 - site/yarn.lock | 2724 ----------------- 113 files changed, 1495 insertions(+), 3617 deletions(-) create mode 100644 docs/backlog/site-checks-do-not-gate-merge.md delete mode 100644 docs/backlog/site-pr-build-never-runs.md delete mode 100644 site/.eleventy.js delete mode 100644 site/.eleventyignore delete mode 100644 site/.nvmrc delete mode 100644 site/.prettierignore delete mode 100644 site/.prettierrc rename site/{src/includes/inline.njk => assets/inline.js} (97%) rename site/{src/includes => assets}/script.js (100%) create mode 100644 site/assets/styles.css rename site/{src/pages/index.md => content/_index.md} (92%) rename site/{src/pages => content}/demo.md (72%) create mode 100644 site/content/docs/_index.md create mode 100644 site/content/docs/backup/_index.md rename site/{src => content}/docs/backup/backup/index.md (98%) rename site/{src => content}/docs/backup/migration/index.md (100%) rename site/{src => content}/docs/backup/restore/index.md (100%) rename site/{src => content}/docs/backup/url-migration/index.md (100%) create mode 100644 site/content/docs/configuration/_index.md rename site/{src => content}/docs/configuration/authorization/index.md (100%) rename site/{src => content}/docs/configuration/email/images/email_auth.png (100%) rename site/{src => content}/docs/configuration/email/images/email_notifications.png (100%) rename site/{src => content}/docs/configuration/email/images/error_template.png (100%) rename site/{src => content}/docs/configuration/email/index.md (100%) rename site/{src/docs/configuration/frontend/index.md => content/docs/configuration/frontend/_index.md} (98%) rename site/{src => content}/docs/configuration/frontend/spa.md (97%) rename site/{src => content}/docs/configuration/notifications/index.md (100%) rename site/{src => content}/docs/configuration/parameters/index.md (99%) rename site/{src => content}/docs/configuration/telegram/index.md (100%) create mode 100644 site/content/docs/contributing/_index.md rename site/{src => content}/docs/contributing/api/index.md (100%) rename site/{src => content}/docs/contributing/backend/index.md (98%) rename site/{src => content}/docs/contributing/frontend/index.md (98%) rename site/{src => content}/docs/contributing/translations/index.md (99%) create mode 100644 site/content/docs/getting-started/_index.md rename site/{src => content}/docs/getting-started/installation/index.md (98%) create mode 100644 site/content/docs/manuals/_index.md rename site/{src => content}/docs/manuals/admin-interface/images/admin-blocking.png (100%) rename site/{src => content}/docs/manuals/admin-interface/images/admin-delete.png (100%) rename site/{src => content}/docs/manuals/admin-interface/images/admin-primary.png (100%) rename site/{src => content}/docs/manuals/admin-interface/images/admin-settings.png (100%) rename site/{src => content}/docs/manuals/admin-interface/index.md (100%) rename site/{src => content}/docs/manuals/integration-with-astro/index.md (99%) rename site/{src => content}/docs/manuals/integration-with-gatsby/index.md (99%) rename site/{src => content}/docs/manuals/kubernetes/index.md (100%) rename site/{src => content}/docs/manuals/nginx/index.md (100%) rename site/{src => content}/docs/manuals/reproxy/index.md (100%) rename site/{src => content}/docs/manuals/separate-domain/index.md (100%) rename site/{src => content}/docs/manuals/spam/index.md (100%) rename site/{src => content}/docs/manuals/subdomain/index.md (99%) rename site/{src/pages => content}/privacy.md (98%) create mode 100644 site/data/anchor_aliases.json rename site/{src/docs => data}/nav.json (100%) create mode 100644 site/hugo.toml create mode 100644 site/layouts/404.html create mode 100644 site/layouts/_markup/render-heading.html create mode 100644 site/layouts/_markup/render-table.html create mode 100644 site/layouts/baseof.html create mode 100644 site/layouts/demo.html create mode 100644 site/layouts/docs/all.html create mode 100644 site/layouts/home.html create mode 100644 site/layouts/page.html create mode 100644 site/layouts/partials/docs-aside.html create mode 100644 site/layouts/partials/footer.html create mode 100644 site/layouts/partials/head.html create mode 100644 site/layouts/partials/header.html create mode 100644 site/layouts/shortcodes/note.html delete mode 100644 site/package.json delete mode 100644 site/postcss.config.js delete mode 100644 site/public/robots.txt delete mode 100644 site/src/data/site.json delete mode 100644 site/src/docs/backup/index.md delete mode 100644 site/src/docs/configuration/index.md delete mode 100644 site/src/docs/contributing/index.md delete mode 100644 site/src/docs/docs.11tydata.js delete mode 100644 site/src/docs/getting-started/index.md delete mode 100644 site/src/docs/manuals/index.md delete mode 100644 site/src/includes/components/docs-aside.njk delete mode 100644 site/src/includes/components/footer.njk delete mode 100644 site/src/includes/components/head.njk delete mode 100644 site/src/includes/components/header.njk delete mode 100644 site/src/layouts/404.njk delete mode 100644 site/src/layouts/base.njk delete mode 100644 site/src/layouts/demo.njk delete mode 100644 site/src/layouts/docs.njk delete mode 100644 site/src/layouts/home.njk delete mode 100644 site/src/layouts/page.njk delete mode 100644 site/src/layouts/redirect.njk delete mode 100644 site/src/pages/404.md delete mode 100644 site/src/pages/redirects.md delete mode 100644 site/src/styles.css rename site/{public => static}/android-chrome-192x192.png (100%) rename site/{public => static}/android-chrome-512x512.png (100%) rename site/{public => static}/apple-touch-icon.png (100%) rename site/{public => static}/favicon-16x16.png (100%) rename site/{public => static}/favicon-32x32.png (100%) rename site/{public => static}/favicon.ico (100%) create mode 100644 site/static/robots.txt rename site/{public => static}/site.webmanifest (100%) delete mode 100644 site/tailwind.config.js delete mode 100644 site/yarn.lock diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2a6e0735..1fb6a48d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -56,15 +56,11 @@ updates: dependency-type: "production" "NPM modules updates for tests": dependency-type: "development" - - package-ecosystem: "npm" + - package-ecosystem: "docker" directory: "/site" - open-pull-requests-limit: 0 - ignore: - - dependency-name: "*" schedule: interval: "monthly" groups: - "NPM modules updates": - dependency-type: "production" - "NPM modules updates for tests": - dependency-type: "development" + "Site image updates": + patterns: + - "*" diff --git a/.github/workflows/ci-site.yml b/.github/workflows/ci-site.yml index f91e1949..361be584 100644 --- a/.github/workflows/ci-site.yml +++ b/.github/workflows/ci-site.yml @@ -19,6 +19,33 @@ concurrency: cancel-in-progress: true jobs: + validate: + name: Build site image (pull request) + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: checkout + uses: actions/checkout@v7 + with: + persist-credentials: false + + - name: set up docker buildx + uses: docker/setup-buildx-action@v4 + + - name: build image without pushing + uses: docker/build-push-action@v7 + with: + context: ./site + load: true + push: false + cache-from: | + type=gha,scope=site-pr + type=gha,scope=site-linux/amd64 + cache-to: type=gha,scope=site-pr,mode=max,ignore-error=true + build: name: Build site image (${{ matrix.platform }}) if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') @@ -60,7 +87,7 @@ jobs: context: ./site platforms: ${{ matrix.platform }} cache-from: type=gha,scope=site-${{ matrix.platform }} - cache-to: type=gha,scope=site-${{ matrix.platform }},mode=max + cache-to: type=gha,scope=site-${{ matrix.platform }},mode=max,ignore-error=true outputs: type=image,name=ghcr.io/umputun/remark42-site,push-by-digest=true,name-canonical=true,push=true - name: export digest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 935db34b..079c3638 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ on: - "README.md" - "LICENSE" - "CLAUDE.md" - - "site/src/docs/getting-started/installation/index.md" + - "site/content/docs/getting-started/installation/index.md" permissions: contents: read diff --git a/backend/README.md b/backend/README.md index 1da0a78d..e554e794 120000 --- a/backend/README.md +++ b/backend/README.md @@ -1 +1 @@ -../site/src/docs/contributing/backend/index.md \ No newline at end of file +../site/content/docs/contributing/backend/index.md \ No newline at end of file diff --git a/docs/backlog/site-checks-do-not-gate-merge.md b/docs/backlog/site-checks-do-not-gate-merge.md new file mode 100644 index 00000000..8df6c73c --- /dev/null +++ b/docs/backlog/site-checks-do-not-gate-merge.md @@ -0,0 +1,19 @@ +--- +worth: yes +where: repository settings, not a file +added: 2026-08-21 +--- +# nothing on master is a required status check + +`master` is protected, but `required_status_checks` is `{"checks": [], "contexts": [], "enforcement_level": "off"}`, +and the only ruleset on the branch ("Copilot review for default branch", id 15225632) carries just +`deletion`, `non_fast_forward` and `copilot_code_review`. Verified with +`gh api repos/umputun/remark42/branches/master`. + +Every workflow in the repository is therefore advisory. A red X on any backend, frontend or site job +shows in the checks list and does not stop the merge button, so a pull request that fails CI can still +be merged by anyone who does not read the list. + +Fix: configure required status checks on `master` for the jobs that should block. Worth deciding +deliberately rather than by default, since it also governs what happens to Dependabot pull requests +and to any job that turns out to be flaky. diff --git a/docs/backlog/site-pr-build-never-runs.md b/docs/backlog/site-pr-build-never-runs.md deleted file mode 100644 index 02cbd89b..00000000 --- a/docs/backlog/site-pr-build-never-runs.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -worth: yes -where: .github/workflows/ci-site.yml:24 -added: 2026-08-11 ---- -# site/** pull requests get no build validation - -`ci-site.yml` declares a `pull_request` trigger on `site/**` (lines 12-15), but the only job that -installs and builds is gated: - -```yaml -if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') -``` - -On a pull request `github.ref` is `refs/pull/N/merge`, so `build` skips, and `merge` (`needs: build`) -and `deploy` skip with it. The trigger is dead: it produces a run in which every job is skipped, which -renders in the checks list the same way a pass does. No required status checks are configured on -master either, so nothing else catches it. - -Consequence: a `site/yarn.lock` that fails `yarn --frozen-lockfile` first fails on the master run -after merge, which is the same run that rebuilds and deploys remark42.com. `site/Dockerfile:5-6` is -the only place the lockfile is exercised, and it runs post-merge. - -Fix: add a PR-only job mirroring `.github/workflows/ci-build.yml`'s existing pattern, using -`docker/build-push-action` with `context: ./site`, `load: true`, no `outputs:`, and no -`docker/login-action`. - -Constraint any fix must preserve: the current gate exists because `build` pushes to ghcr using -`secrets.PKG_TOKEN`, which must not run for pull requests, since fork PRs receive no secrets. -Relaxing the `if` on its own is not sufficient and would break fork PRs. - -Surfaced while reviewing PR #2141 (a dependabot js-yaml lockfile bump), where all three site jobs -reported as skipped and nothing verified the lockfile before merge. `site/**` PRs are mostly -generated lockfile bumps, which is exactly the class a frozen-lockfile install catches and a human -reviewer cannot. diff --git a/frontend/CLAUDE.md b/frontend/CLAUDE.md index 00f560dc..78b7c71b 100644 --- a/frontend/CLAUDE.md +++ b/frontend/CLAUDE.md @@ -7,12 +7,10 @@ Non-obvious constraints in the frontend toolchain and widget. Read before bumpin CI staying green does **not** mean every pin is consistent — `.nvmrc` in particular is never read by CI, so it can silently drift. After changing the node or pnpm version, grep the whole repo and update every one of these, not just the ones CI exercises: - `Dockerfile` (production image) — `FROM node:X-alpine` and `npm i -g pnpm@X.Y.Z` -- `site/Dockerfile`, `site/Dockerfile.dev` — `FROM node:X-alpine` (site uses yarn, not pnpm) -- `frontend/.nvmrc`, `site/.nvmrc` — not read by CI at all; only matters to a human running `nvm use` locally. This is the one that drifted unnoticed: it sat at `16` through the whole node-20 migration because nothing red ever pointed at it. +- `frontend/.nvmrc` — not read by CI at all; only matters to a human running `nvm use` locally. This is the one that drifted unnoticed: it sat at `16` through the whole node-20 migration because nothing red ever pointed at it. - Every `package.json`'s `packageManager` field (`frontend/package.json`, `frontend/apps/remark42/package.json`) and `frontend/apps/remark42/package.json`'s `engines` block - `pnpm/action-setup@vN` blocks in `.github/workflows/ci-frontend.yml` (5) and `release.yml` (2) — pin `version:` to the **exact** patch (e.g. `10.10.0`), matching `packageManager`, not just the major. A floating major here is silent in CI (it just resolves to whatever the latest patch is at run time) but breaks the "Dockerfile and CI use the same pnpm" guarantee. - `node:` matrices in `.github/workflows/ci-frontend.yml` (every entry, not just the first) and the `node-version:` values in `release.yml` -- `site/package.json`'s `engines.node` and `engines.yarn` (site uses yarn, so its `packageManager` moves independently) When bumping pnpm/node, also re-check `frontend/apps/remark42/package.json`'s `engines` field — it's separate from `packageManager` and won't update itself. @@ -55,21 +53,17 @@ without `import { h }` would type-check and lint clean, then throw at runtime, b These were deliberately not bumped because each is a config-migration or bundle-changing major, not a drop-in update — don't bump them opportunistically inside an unrelated dependency PR: - `eslint` 8 (9/10 need flat-config migration), `stylelint` 14 (16 has breaking rule changes), `babel` 7, `jest` 28 (30 needs config changes) -- `redux` 4, `tailwindcss` 3.4 (v4 is a full config rewrite), `@11ty/eleventy` 2 (v3 is an ESM migration) in `site/` - -## `html-minifier` is abandoned — use `html-minifier-terser` - -`site/.eleventy.js` uses `html-minifier-terser` (a maintained fork), not `html-minifier` (unpatched ReDoS advisory, no fix ever released). The eleventy transform had to become `async` for this fork's API. +- `redux` 4 ## Verifying a build didn't regress There's no automated build-output diff in CI. Before merging a dependency PR that touches the bundler/build tooling, manually diff the build output against a clean `master` checkout: - `apps/remark42`: expect webpack module-id numbers and css-module class tokens (e.g. `.F_A` → `.L_A`) to differ — that's normal churn from a webpack/css-loader bump. HTML, CSS values, and translation content should be byte-identical. -- `site`: expect the `?v=` cache-bust query string to differ on every HTML file — that's expected. Anything else differing is a real regression. +- `site`: asset URLs carry a content hash, so a stylesheet or script change moves the filename on every page referencing it. Anything else differing is a real regression. ## Where the alerts actually were -When clearing Dependabot/audit alerts, check whether the flagged package is actually reachable from production code or only from the dev/test toolchain — `pnpm audit`/`yarn audit` don't distinguish. Several alerts here were in build-time-only tooling (webpack-dev-server, laravel-mix-equivalent dev deps) with no patched release available; those are lower-risk than a runtime dependency with the same severity label. +When clearing Dependabot/audit alerts, check whether the flagged package is actually reachable from production code or only from the dev/test toolchain — `pnpm audit` does not distinguish. Several alerts here were in build-time-only tooling (webpack-dev-server, laravel-mix-equivalent dev deps) with no patched release available; those are lower-risk than a runtime dependency with the same severity label. ## Don't import `preact/compat` diff --git a/frontend/apps/remark42/README.md b/frontend/apps/remark42/README.md index cdbca6e0..dc9439e6 120000 --- a/frontend/apps/remark42/README.md +++ b/frontend/apps/remark42/README.md @@ -1 +1 @@ -../../../site/src/docs/contributing/frontend/index.md \ No newline at end of file +../../../site/content/docs/contributing/frontend/index.md \ No newline at end of file diff --git a/site/.dockerignore b/site/.dockerignore index 0fe12e2d..59619a31 100644 --- a/site/.dockerignore +++ b/site/.dockerignore @@ -1,5 +1,9 @@ -node_modules +.git .gitignore -.prettierrc .dockerignore Dockerfile +Dockerfile.dev +docker-compose.yml +build +public +resources diff --git a/site/.eleventy.js b/site/.eleventy.js deleted file mode 100644 index 0f8d966f..00000000 --- a/site/.eleventy.js +++ /dev/null @@ -1,118 +0,0 @@ -const { format } = require('date-fns') -const htmlmin = require('html-minifier-terser') -const syntaxHighlightPlugin = require('@11ty/eleventy-plugin-syntaxhighlight') - -function noteContainer() { - const { utils } = require('markdown-it')() - const elementRegexp = /^note\s+(.*)$/ - - return { - validate(params) { - return params.trim().match(elementRegexp) - }, - - render(tokens, idx) { - const { info, nesting } = tokens[idx] - const matches = info.trim().match(elementRegexp) - - if (nesting === 1) { - const icon = utils.escapeHtml(matches[1]) - - return `` - }, - } -} - -function markdownTableWrapper(md) { - md.renderer.rules.table_open = function (tokens, idx, options, _, self) { - return ( - `
` + self.renderToken(tokens, idx, options) - ) - } - md.renderer.rules.table_close = function (tokens, idx, options, _, self) { - return self.renderToken(tokens, idx, options) + `
` - } -} - -function getMarkdownLib() { - const markdownIt = require('markdown-it') - const markdownItAnchor = require('markdown-it-anchor') - const markdownItContainer = require('markdown-it-container') - - return markdownIt({ - html: true, - breaks: true, - linkify: true, - }) - .use(markdownItAnchor, { - permalink: markdownItAnchor.permalink.linkInsideHeader({ - placement: 'before', - class: 'header-anchor', - symbol: '', - }), - }) - .use(markdownItContainer, 'note', noteContainer()) - .use(markdownTableWrapper) -} - -module.exports = function (eleventyConfig) { - // TODO: create version with commit sha and current version of Remark42 - eleventyConfig.addShortcode('version', () => `${Date.now()}`) - eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`) - eleventyConfig.setUseGitIgnore(false) - eleventyConfig.addWatchTarget('./.tmp/style.css') - eleventyConfig.addPassthroughCopy({ './.tmp/style.css': './style.css' }) - eleventyConfig.addPassthroughCopy({ './public': './' }) - eleventyConfig.addPassthroughCopy('./src/**/*.{gif,jpg,png,svg}') - - eleventyConfig.addCollection('pages', (collection) => - collection.getFilteredByGlob('pages/*.md') - ) - - eleventyConfig.addFilter('humanizeDate', (date) => - format(new Date(date), 'LLL dd, yyyy') - ) - - eleventyConfig.addFilter('robotizeDate', (date) => - format(new Date(date), 'yyyy-MM-dd') - ) - - eleventyConfig.addFilter( - 'debug', - (content = {}) => `
${JSON.stringify(content, null, 2)}
` - ) - - // Minify HTML output - eleventyConfig.addTransform('htmlmin', async function (content, outputPath) { - // outputPath is falsy for templates rendered without a written file (e.g. permalink: false) - if (!outputPath || !outputPath.endsWith('.html')) { - return content - } - - return htmlmin.minify(content, { - removeComments: true, - collapseWhitespace: true, - }) - }) - - eleventyConfig.setLibrary('md', getMarkdownLib()) - eleventyConfig.addPlugin(syntaxHighlightPlugin) - - eleventyConfig.addCollection('docs', (collection) => - collection.getFilteredByGlob('src/docs/**/*.md') - ) - - return { - markdownTemplateEngine: false, - dir: { - input: 'src', - output: 'build', - data: 'data', - layouts: 'layouts', - includes: 'includes', - }, - } -} diff --git a/site/.eleventyignore b/site/.eleventyignore deleted file mode 100644 index be2ef528..00000000 --- a/site/.eleventyignore +++ /dev/null @@ -1,3 +0,0 @@ -build -node_modules -yarn-*.log diff --git a/site/.gitignore b/site/.gitignore index 4356424a..57de61f4 100644 --- a/site/.gitignore +++ b/site/.gitignore @@ -1,4 +1,4 @@ -node_modules -yarn-*.log -.tmp +public build +resources +.hugo_build.lock diff --git a/site/.nvmrc b/site/.nvmrc deleted file mode 100644 index 209e3ef4..00000000 --- a/site/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -20 diff --git a/site/.prettierignore b/site/.prettierignore deleted file mode 100644 index 006399ed..00000000 --- a/site/.prettierignore +++ /dev/null @@ -1,3 +0,0 @@ -build -public/site.webmanifest -src/docs/configuration/parameters/index.md diff --git a/site/.prettierrc b/site/.prettierrc deleted file mode 100644 index a50eccd1..00000000 --- a/site/.prettierrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "semi": false, - "singleQuote": true, - "arrowParens": "always", - "useTabs": true, - "overrides": [ - { - "files": "*.md", - "options": { - "singleQuote": false - } - } - ] -} diff --git a/site/Dockerfile b/site/Dockerfile index ed71aad3..930899a8 100644 --- a/site/Dockerfile +++ b/site/Dockerfile @@ -1,10 +1,33 @@ -FROM node:20-alpine AS build +FROM alpine:3.22 AS build + +ARG HUGO_VERSION=0.165.0 +ARG TARGETARCH + +# the extended build is glibc-linked and will not run on alpine; nothing here needs +# sass or webp, so the plain static build is the one to use +RUN apk add --no-cache ca-certificates \ + && case "${TARGETARCH}" in \ + amd64) HUGO_ARCH=amd64 ;; \ + arm64) HUGO_ARCH=arm64 ;; \ + "") echo "TARGETARCH is empty; build with buildkit" >&2; exit 1 ;; \ + *) echo "unsupported arch ${TARGETARCH}" >&2; exit 1 ;; \ + esac \ + && HUGO_TAR="hugo_${HUGO_VERSION}_linux-${HUGO_ARCH}.tar.gz" \ + && BASE="https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}" \ + && wget -qO "/tmp/${HUGO_TAR}" "${BASE}/${HUGO_TAR}" \ + && wget -qO /tmp/checksums.txt "${BASE}/hugo_${HUGO_VERSION}_checksums.txt" \ + && grep " ${HUGO_TAR}$" /tmp/checksums.txt > /tmp/expected.sha256 \ + && test -s /tmp/expected.sha256 \ + && (cd /tmp && sha256sum -c expected.sha256) \ + && tar -xzf "/tmp/${HUGO_TAR}" -C /usr/local/bin hugo \ + && rm -f "/tmp/${HUGO_TAR}" /tmp/checksums.txt /tmp/expected.sha256 \ + && hugo version WORKDIR /site COPY ./ /site -RUN yarn --frozen-lockfile -RUN yarn build -RUN ls -la /site +RUN hugo --minify --destination /site/build \ + && test -s /site/build/index.html \ + && test -s /site/build/docs/getting-started/installation/index.html FROM ghcr.io/umputun/reproxy LABEL org.opencontainers.image.authors="Umputun " \ @@ -18,4 +41,4 @@ LABEL org.opencontainers.image.authors="Umputun " \ COPY --from=build /site/build /srv/site EXPOSE 8080 USER app -ENTRYPOINT ["/srv/reproxy", "--assets.location=/srv/site"] +ENTRYPOINT ["/srv/reproxy", "--assets.location=/srv/site", "--assets.not-found=404.html"] diff --git a/site/Dockerfile.dev b/site/Dockerfile.dev index 92174656..fab7ec43 100644 --- a/site/Dockerfile.dev +++ b/site/Dockerfile.dev @@ -1,7 +1,28 @@ -FROM node:20-alpine AS build +FROM alpine:3.22 + +ARG HUGO_VERSION=0.165.0 +ARG TARGETARCH + +# the extended build is glibc-linked and will not run on alpine; nothing here +# needs sass or webp, so the plain static build is the one to use +RUN apk add --no-cache ca-certificates \ + && case "${TARGETARCH}" in \ + amd64) HUGO_ARCH=amd64 ;; \ + arm64) HUGO_ARCH=arm64 ;; \ + "") echo "TARGETARCH is empty; build with buildkit" >&2; exit 1 ;; \ + *) echo "unsupported arch ${TARGETARCH}" >&2; exit 1 ;; \ + esac \ + && HUGO_TAR="hugo_${HUGO_VERSION}_linux-${HUGO_ARCH}.tar.gz" \ + && BASE="https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}" \ + && wget -qO "/tmp/${HUGO_TAR}" "${BASE}/${HUGO_TAR}" \ + && wget -qO /tmp/checksums.txt "${BASE}/hugo_${HUGO_VERSION}_checksums.txt" \ + && grep " ${HUGO_TAR}$" /tmp/checksums.txt > /tmp/expected.sha256 \ + && test -s /tmp/expected.sha256 \ + && (cd /tmp && sha256sum -c expected.sha256) \ + && tar -xzf "/tmp/${HUGO_TAR}" -C /usr/local/bin hugo \ + && rm -f "/tmp/${HUGO_TAR}" /tmp/checksums.txt /tmp/expected.sha256 WORKDIR /site COPY ./ /site -RUN yarn --frozen-lockfile - -CMD yarn start +EXPOSE 1313 +CMD ["hugo", "server", "--bind", "0.0.0.0", "--port", "1313", "--baseURL", "http://127.0.0.1:1313/", "--appendPort=false"] diff --git a/site/README.md b/site/README.md index 813b2558..7bf656e4 100644 --- a/site/README.md +++ b/site/README.md @@ -1,44 +1,68 @@ # Remark42 site -## Work on your local environment +Sources for [remark42.com](https://remark42.com), built with [Hugo](https://gohugo.io). -Requirements: +## Requirements -- [Node.js v20](https://nodejs.org/en/) or higher - install from package or with Homebrew -- Yarn 1.22 or higher - once you have Node.js, run `npm i -g yarn` +Hugo, the plain build; nothing here needs the extended one. The version the published image builds with is `ARG HUGO_VERSION` in `Dockerfile`, and any release at or above it works locally. Nothing updates that pin automatically: Dependabot's docker ecosystem reads `FROM` references, and the Hugo version is a bare string in a download URL, so bumping it is a manual edit. `brew install hugo`, or see the [installation guide](https://gohugo.io/installation/). Nothing else: no Node, no package manager. -### Development - -Install dependencies and start the development server: +## Development ```shell -yarn -yarn dev +hugo server ``` -### Build +Serves the site on and rebuilds on change. + +Alternatively, without installing Hugo: ```shell -yarn build +docker compose up ``` -## Work with Docker Compose - -### Build - -Install dependencies and run development server inside Docker: +## Build ```shell -docker compose build -docker compose up server +hugo --minify --cleanDestinationDir --destination build ``` -Then serve files from `./build` with your favorite server +Writes the static site to `build/`, which is what the Docker image serves. `--cleanDestinationDir` matters on a rebuild: without it a page you deleted, and the fingerprinted stylesheets of earlier builds, stay behind. -### Development +## Layout -```shell -docker compose up --build server +| Path | Contents | +| --------------------- | -------------------------------------------------------------------- | +| `content/` | Pages as markdown. `content/docs/` is the documentation tree | +| `layouts/` | Templates. `partials/`, `shortcodes/` and `_markup/` render hooks | +| `assets/` | `styles.css` and the scripts, fingerprinted at build time | +| `static/` | Files copied to the site root as-is: favicons, manifest, `robots.txt` | +| `data/nav.json` | The documentation sidebar | +| `hugo.toml` | Site configuration | + +## Writing docs + +A page is a markdown file with a `title` in its front matter. A directory becomes a section when it holds `_index.md`, and a page that carries its own images is a directory with `index.md` and the images beside it. + +Adding a page to the sidebar means adding an entry to `data/nav.json`; the paths there are relative to `/docs`. + +Callouts use the `note` shortcode, which takes the emoji to show: + +```markdown +{{< note "💡" >}} +Anything markdown here. +{{< /note >}} ``` -Then head to http://localhost:8080 +Two documentation pages are symlinked into the repository as `backend/README.md` and `frontend/apps/remark42/README.md`, so moving or renaming `content/docs/contributing/backend/index.md` or `content/docs/contributing/frontend/index.md` means repointing those symlinks. + +## Styling + +`assets/styles.css` is hand-written, with the palette and light/dark values as custom properties at the top. The dark theme is applied by a `dark` class on ``, set before first paint by `assets/inline.js` and toggled by `assets/script.js`. + +Code highlighting is Hugo's built-in Chroma. The rules at the end of the stylesheet come from `hugo gen chromastyles --style=github` and `--style=github-dark`. + +## Dates + +The "Updated" line on a documentation page comes from `.Lastmod`. `hugo.toml` resolves it through `[frontmatter] lastmod`, which tries git, then a `lastmod` in the page's front matter, then the file's modification time; without that chain it would resolve to `.Date` and every page would read `Jan 01, 0001`. A deployed page therefore shows the build date, since a checkout does not preserve modification times. + +`HUGO_ENABLEGITINFO=true hugo` gives real per-page commit dates. It is off by default because the image build context is `site/` alone, where there is no `.git` for Hugo to read and it fails rather than falling back. diff --git a/site/src/includes/inline.njk b/site/assets/inline.js similarity index 97% rename from site/src/includes/inline.njk rename to site/assets/inline.js index 136d1a8f..44c2eeca 100644 --- a/site/src/includes/inline.njk +++ b/site/assets/inline.js @@ -54,7 +54,7 @@ const cachedVersion = readVersionCache() if (cachedVersion) { applyVersion(cachedVersion) } else { - fetch('{{ site.githubApiUrl }}/releases/latest') + fetch('{{ site.Params.githubApiUrl }}/releases/latest') .then((r) => (r.ok ? r.json() : Promise.reject(new Error('HTTP ' + r.status)))) .then((d) => { if (!d || !d.tag_name) return diff --git a/site/src/includes/script.js b/site/assets/script.js similarity index 100% rename from site/src/includes/script.js rename to site/assets/script.js diff --git a/site/assets/styles.css b/site/assets/styles.css new file mode 100644 index 00000000..77933ba2 --- /dev/null +++ b/site/assets/styles.css @@ -0,0 +1,987 @@ +/* ---------------------------------------------------------------- tokens */ + +:root { + --brand-100: #e0fbf8; + --brand-300: #4be7dc; + --brand-400: #1ccac1; + --brand-500: #16a29f; + --brand-600: #157f7f; + --brand-800: #125254; + --brand-900: #134b4e; + + --gray-50: #f9fafb; + --gray-100: #f3f4f6; + --gray-200: #e5e7eb; + --gray-300: #d1d5db; + --gray-400: #9ca3af; + --gray-500: #6b7280; + --gray-600: #4b5563; + --gray-700: #374151; + --gray-800: #1f2937; + --neutral-800: #262626; + --neutral-900: #171717; + + --bg: #fff; + --bg-raised: var(--gray-50); + --bg-code: var(--gray-100); + --fg: var(--gray-800); + --fg-muted: var(--gray-500); + --fg-heading: var(--brand-900); + --fg-subheading: var(--gray-700); + --accent: var(--brand-500); + --accent-hover: var(--brand-600); + --accent-soft-bg: var(--brand-100); + --accent-soft-fg: var(--brand-600); + --code-fg: var(--brand-800); + --border: var(--gray-200); + --border-soft: var(--gray-100); + --marker: var(--gray-300); + + --container-padding: 1rem; + --header-height: 6rem; + --radius: 0.25rem; + --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; +} + +.dark { + --bg: var(--neutral-900); + --bg-raised: var(--neutral-800); + --bg-code: var(--gray-800); + --fg: var(--gray-100); + --fg-muted: var(--gray-400); + --fg-heading: var(--brand-100); + --fg-subheading: var(--gray-200); + --accent: var(--brand-400); + --accent-hover: var(--brand-300); + --accent-soft-bg: var(--brand-900); + --accent-soft-fg: var(--brand-400); + --code-fg: var(--brand-300); + --border: var(--gray-600); + --border-soft: var(--gray-800); +} + +/* ------------------------------------------------------------------ base */ + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + height: 100%; + -webkit-text-size-adjust: 100%; + scroll-behavior: smooth; +} + +body { + margin: 0; + min-height: 100%; + display: flex; + flex-direction: column; + background-color: var(--bg); + color: var(--fg); + font-family: var(--font-sans); + line-height: 1.5; +} + +a { + color: inherit; +} + +img, +svg { + max-width: 100%; + height: auto; + display: block; +} + +button { + font: inherit; + color: inherit; + background: none; + border: 0; + padding: 0; + cursor: pointer; +} + +code, +pre, +kbd { + font-family: var(--font-mono); +} + +:where(a, button, input, summary):focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + *, + *::before, + *::after { + transition-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + } +} + +/* ---------------------------------------------------------------- layout */ + +.container { + width: 100%; + margin-inline: auto; + padding-inline: var(--container-padding); +} + +@media (min-width: 768px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1200px; + } +} + +.main { + position: relative; + flex: 1 0 auto; + display: flex; + flex-wrap: wrap; + padding-top: var(--header-height); +} + +@media (min-width: 768px) { + .main { + padding-top: 5rem; + } +} + +/* ---------------------------------------------------------------- header */ + +.site-header { + position: fixed; + inset: 0 0 auto 0; + z-index: 20; + background-color: color-mix(in srgb, var(--bg) 80%, transparent); + backdrop-filter: blur(4px); + color: var(--fg-muted); +} + +@media (min-width: 768px) { + .site-header { + padding-block: 0.5rem; + } +} + +.site-header__inner { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.site-header__brand { + order: 1; + margin: 0.25rem 1rem 0 0; + padding-block: 0.25rem; + font-size: 1.5rem; + font-weight: 800; + text-decoration: none; + color: var(--accent); + transition: color 0.15s; +} + +.site-header__brand:hover { + color: var(--accent-hover); +} + +.site-header__nav { + order: 3; + width: 100%; + margin-top: 0.25rem; + padding-block: 0.25rem; + display: flex; + gap: 0.5rem; +} + +@media (min-width: 768px) { + .site-header__nav { + order: 2; + width: auto; + } +} + +.site-header__nav a { + font-weight: 500; + line-height: 1.25rem; + text-decoration: none; + border-bottom: 1px solid var(--border); + transition: + color 0.15s, + border-color 0.15s; +} + +.site-header__nav a:hover { + color: var(--accent-hover); + border-bottom-color: var(--accent); +} + +.site-header__actions { + order: 2; + margin-left: auto; + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.25rem 1rem; +} + +@media (min-width: 768px) { + .site-header__actions { + order: 3; + } +} + +.site-header__icon { + display: flex; + align-items: center; + text-decoration: none; +} + +.site-header__icon:hover, +.site-header__theme:hover { + color: var(--fg); +} + +.site-header__version { + margin-right: 0.5rem; + font-size: 0.875rem; +} + +.site-header__theme:hover { + color: #facc15; +} + +/* ---------------------------------------------------------------- footer */ + +.site-footer { + flex-shrink: 0; + margin-top: 1.5rem; + padding-block: 1rem; + text-align: center; + font-size: 0.875rem; +} + +.site-footer a { + opacity: 0.7; + text-decoration: underline; +} + +/* ------------------------------------------------------------ docs aside */ + +.docs-aside { + flex-shrink: 0; + width: 100%; + max-width: 260px; +} + +@media (min-width: 768px) { + .docs-aside { + position: relative; + width: 25%; + } +} + +.docs-aside__state { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + border: 0; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; +} + +.docs-aside__state:focus-visible + .docs-aside__toggle { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +.docs-aside__toggle { + display: flex; + align-items: center; + margin-bottom: 2rem; + padding-block: 0.5rem; + border-block: 1px solid var(--border-soft); + color: var(--fg-muted); + font-weight: 500; + cursor: pointer; +} + +.docs-aside__nav { + display: none; +} + +.docs-aside__state:checked ~ .docs-aside__nav { + display: block; +} + +@media (min-width: 768px) { + .docs-aside__toggle { + display: none; + } + + .docs-aside__nav { + display: block; + margin-right: 2.5rem; + } +} + +.docs-aside__section { + margin: 0 0 0.5rem; + font-size: 0.875rem; + font-weight: 600; + text-transform: uppercase; + color: var(--fg-muted); +} + +.docs-aside__list { + margin: 0 0 2rem; + padding: 0; + list-style: none; + font-weight: 500; +} + +.docs-aside__list--nested { + margin: 0 0 0 1rem; + font-weight: 400; +} + +.docs-aside__list li { + margin-block: 0.25rem; +} + +.docs-aside__link { + display: block; + margin-inline: -0.5rem; + padding: 0.25rem 0.5rem; + border-radius: var(--radius); + text-decoration: none; + color: var(--fg-muted); +} + +.docs-aside__link:hover { + color: var(--fg); +} + +.docs-aside__link.is-current { + background-color: var(--accent-soft-bg); + color: var(--accent-soft-fg); +} + +.burger-icon { + position: relative; + display: inline-block; + width: 1rem; + height: 1rem; + margin-right: 0.75rem; +} + +.burger-icon span { + position: absolute; + left: 0; + width: 100%; + height: 2px; + border-radius: var(--radius); + background-color: var(--gray-400); + transition: all 0.15s; +} + +.burger-icon span:nth-child(1) { + top: 0; +} + +.burger-icon span:nth-child(2) { + top: 7px; +} + +.burger-icon span:nth-child(3) { + bottom: 0; +} + +.docs-aside__state:checked ~ .docs-aside__toggle .burger-icon span:nth-child(1) { + top: 7px; + left: -3px; + transform: rotate(-45deg) scaleX(0.7); +} + +.docs-aside__state:checked ~ .docs-aside__toggle .burger-icon span:nth-child(2) { + transform: scale(0); + transition-duration: 0.075s; +} + +.docs-aside__state:checked ~ .docs-aside__toggle .burger-icon span:nth-child(3) { + top: 7px; + left: 4px; + bottom: auto; + transform: rotate(45deg) scaleX(0.7); +} + +/* ---------------------------------------------------------- docs article */ + +.docs { + overflow: hidden; +} + +@media (min-width: 768px) { + .docs { + width: 75%; + } +} + +.docs__article { + min-width: 0; +} + +.docs__title { + margin: 0 0 1.5rem; + font-size: 1.5rem; + font-weight: 700; + line-height: 1.111; + color: var(--fg-heading); +} + +@media (min-width: 768px) { + .docs__title { + margin-bottom: 2rem; + font-size: 2.25rem; + } +} + +.docs__meta { + display: flex; + justify-content: flex-end; + gap: 0.75rem; + margin-top: 1rem; + margin-right: 0.25rem; + font-size: 0.875rem; + line-height: 1.25rem; + color: var(--fg-muted); +} + +.docs__meta a { + border-bottom: 1px solid transparent; + text-decoration: none; + transition: border-color 0.15s; +} + +.docs__meta a:hover { + border-bottom-color: currentColor; +} + +/* -------------------------------------------------------- page and home */ + +.page { + flex: 1 1 auto; + max-width: 48rem; + margin-inline: auto; +} + +.page__header { + padding-block: 3rem 2.5rem; + margin-bottom: 2.5rem; + border-bottom: 1px solid var(--border-soft); + text-align: center; +} + +.page__title { + margin: 0 0 0.5rem; + font-size: 1.5rem; + font-weight: 700; +} + +@media (min-width: 768px) { + .page__title { + font-size: 1.875rem; + } +} + +.page__description { + margin: 0; + color: var(--fg-muted); +} + +.home { + margin-top: 2.5rem; + margin-inline: auto; +} + +.prose h1.home__title { + text-align: center; + font-weight: 800; +} + +.home__signature { + text-align: right; + font-style: italic; +} + +.demo-widget { + max-width: 42rem; + margin-inline: auto; +} + +.not-found { + position: relative; + margin: auto; + text-align: center; +} + +.not-found__code { + display: block; + margin-bottom: 1rem; + font-size: 8rem; + font-weight: 900; + line-height: 1; + color: var(--border-soft); +} + +@media (min-width: 768px) { + .not-found__code { + font-size: 200px; + } +} + +.not-found__text { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + white-space: nowrap; + font-size: 2.25rem; + font-weight: 700; + color: var(--fg); +} + +/* ------------------------------------------------------------------ note */ + +.note { + position: relative; + display: flex; + gap: 0.75rem; + margin-block: 1.25rem; + padding: 0.75rem 1rem; + background-color: var(--bg-raised); + border-radius: var(--radius); +} + +.note__icon { + flex-shrink: 0; + font-size: 1.25rem; + line-height: 1.6; +} + +.note__body > :first-child { + margin-top: 0; +} + +.note__body > :last-child { + margin-bottom: 0; +} + +/* ----------------------------------------------------------------- prose */ + +.prose { + max-width: 65ch; + color: var(--fg); + line-height: 1.75; +} + +.docs .prose { + max-width: 100%; +} + +.prose > :first-child { + margin-top: 0; +} + +.prose > :last-child { + margin-bottom: 0; +} + +.prose p, +.prose ul, +.prose ol, +.prose dl, +.prose blockquote, +.prose pre, +.prose .table-wrapper { + margin-block: 1.25em; +} + +.prose h1, +.prose h2, +.prose h3, +.prose h4, +.prose h5, +.prose h6 { + margin-top: 2em; + margin-bottom: 1em; + scroll-margin-top: calc(var(--header-height) + 1rem); +} + +.prose h1, +.prose h2 { + color: var(--fg-heading); +} + +.prose h3, +.prose h4, +.prose h5, +.prose h6 { + color: var(--fg-subheading); +} + +.prose h1 { + margin-top: 0; + font-size: 2.25em; + font-weight: 700; + line-height: 1.111; +} + +.prose h2 { + font-size: 1.5em; + font-weight: 700; + line-height: 1.333; +} + +.prose h3 { + font-size: 1.25em; + font-weight: 600; + line-height: 1.6; +} + +.prose h4, +.prose h5, +.prose h6 { + font-size: 1em; + font-weight: 600; + line-height: 1.5; +} + +.prose a { + color: var(--accent); + text-decoration: underline; + text-underline-offset: 2px; +} + +.prose a:hover { + color: var(--accent-hover); +} + +.prose strong { + font-weight: 600; + color: var(--fg-subheading); +} + +.prose ul, +.prose ol { + padding-left: 1.625em; +} + +.prose li { + margin-block: 0.5em; +} + +.prose li::marker { + color: var(--marker); +} + +.prose li > ul, +.prose li > ol { + margin-block: 0.5em; +} + +.prose ul { + list-style: disc; +} + +.prose ol { + list-style: decimal; +} + +.prose blockquote { + padding-left: 1em; + border-left: 4px solid var(--border); + color: var(--fg-muted); + font-style: italic; +} + +.prose hr { + margin-block: 3em; + border: 0; + border-top: 1px solid var(--border); +} + +.prose code { + font-size: 0.875em; + font-weight: 300; + color: var(--code-fg); + overflow-wrap: break-word; +} + +.prose strong code { + font-weight: 700; + color: #ca8a04; +} + +.dark .prose strong code { + color: #facc15; +} + +.prose pre { + /* an unlabelled fence gets no .chroma wrapper, so the panel is set here and the + highlighted blocks inherit the same background from it */ + background-color: var(--bg-code); + color: var(--fg); + padding: 0.85em 1.15em; + border-radius: var(--radius); + overflow-x: auto; + font-size: 0.875em; + line-height: 1.7; +} + +.prose pre code { + font-size: inherit; + font-weight: inherit; + color: inherit; + background: none; + padding: 0; +} + +.prose img { + margin-block: 2em; + border-radius: var(--radius); +} + +.prose kbd { + padding: 0.15em 0.4em; + border: 1px solid var(--border); + border-radius: var(--radius); + font-size: 0.85em; +} + +/* ---------------------------------------------------------------- tables */ + +.table-wrapper { + overflow-x: auto; +} + +.prose table { + width: 100%; + border-collapse: collapse; + font-size: 0.875em; + line-height: 1.6; +} + +.prose thead { + border-bottom: 1px solid var(--border); + color: var(--fg-subheading); +} + +.prose th { + padding: 0.6em; + font-weight: 600; + text-align: left; + vertical-align: bottom; +} + +.prose td { + padding: 0.6em; + vertical-align: top; +} + +.prose tbody tr { + border-bottom: 1px solid var(--border-soft); +} + +/* -------------------------------------------------------- header anchors */ + +/* an empty target carrying a heading's previous id; needs the heading's own offset so + landing on it does not put the heading under the fixed header */ +.legacy-anchor { + display: block; + height: 0; + scroll-margin-top: calc(var(--header-height) + 1rem); +} + + +/* ------------------------------------------------- syntax highlighting */ + +/* generated with `hugo gen chromastyles --style=github` and `--style=github-dark`, + with each theme background swapped for the --bg-code token. the two sets are + scoped to opposite sides of the theme switch rather than layered, because the + themes do not declare the same properties on the same tokens: github styles + Punctuation and github-dark does not, and github gives Error a background that + github-dark leaves alone. Layered, either of those leaves a light value applying + on a dark page. */ + +:root:not(.dark) .chroma { background-color:var(--bg-code);-webkit-text-size-adjust:none; } +:root:not(.dark) .chroma .err { color:#f6f8fa;background-color:#82071e } +:root:not(.dark) .chroma .lnlinks { outline:none;text-decoration:none;color:inherit } +:root:not(.dark) .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; } +:root:not(.dark) .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; } +:root:not(.dark) .chroma .hl { background-color:#dedede } +:root:not(.dark) .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f } +:root:not(.dark) .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f } +:root:not(.dark) .chroma .line { display:flex; } +:root:not(.dark) .chroma .k { color:#cf222e } +:root:not(.dark) .chroma .kc { color:#cf222e } +:root:not(.dark) .chroma .kd { color:#cf222e } +:root:not(.dark) .chroma .kn { color:#cf222e } +:root:not(.dark) .chroma .kp { color:#cf222e } +:root:not(.dark) .chroma .kr { color:#cf222e } +:root:not(.dark) .chroma .kt { color:#cf222e } +:root:not(.dark) .chroma .na { color:#1f2328 } +:root:not(.dark) .chroma .nc { color:#1f2328 } +:root:not(.dark) .chroma .no { color:#0550ae } +:root:not(.dark) .chroma .nd { color:#0550ae } +:root:not(.dark) .chroma .ni { color:#6639ba } +:root:not(.dark) .chroma .nl { color:#900;font-weight:bold } +:root:not(.dark) .chroma .nn { color:#24292e } +:root:not(.dark) .chroma .nx { color:#1f2328 } +:root:not(.dark) .chroma .nt { color:#0550ae } +:root:not(.dark) .chroma .nb { color:#6639ba } +:root:not(.dark) .chroma .bp { color:#6a737d } +:root:not(.dark) .chroma .nv { color:#953800 } +:root:not(.dark) .chroma .vc { color:#953800 } +:root:not(.dark) .chroma .vg { color:#953800 } +:root:not(.dark) .chroma .vi { color:#953800 } +:root:not(.dark) .chroma .vm { color:#953800 } +:root:not(.dark) .chroma .nf { color:#6639ba } +:root:not(.dark) .chroma .fm { color:#6639ba } +:root:not(.dark) .chroma .s { color:#0a3069 } +:root:not(.dark) .chroma .sa { color:#0a3069 } +:root:not(.dark) .chroma .sb { color:#0a3069 } +:root:not(.dark) .chroma .sc { color:#0a3069 } +:root:not(.dark) .chroma .dl { color:#0a3069 } +:root:not(.dark) .chroma .sd { color:#0a3069 } +:root:not(.dark) .chroma .s2 { color:#0a3069 } +:root:not(.dark) .chroma .se { color:#0a3069 } +:root:not(.dark) .chroma .sh { color:#0a3069 } +:root:not(.dark) .chroma .si { color:#0a3069 } +:root:not(.dark) .chroma .sx { color:#0a3069 } +:root:not(.dark) .chroma .sr { color:#0a3069 } +:root:not(.dark) .chroma .s1 { color:#0a3069 } +:root:not(.dark) .chroma .ss { color:#032f62 } +:root:not(.dark) .chroma .m { color:#0550ae } +:root:not(.dark) .chroma .mb { color:#0550ae } +:root:not(.dark) .chroma .mf { color:#0550ae } +:root:not(.dark) .chroma .mh { color:#0550ae } +:root:not(.dark) .chroma .mi { color:#0550ae } +:root:not(.dark) .chroma .il { color:#0550ae } +:root:not(.dark) .chroma .mo { color:#0550ae } +:root:not(.dark) .chroma .o { color:#0550ae } +:root:not(.dark) .chroma .ow { color:#0550ae } +:root:not(.dark) .chroma .or { color:#0550ae } +:root:not(.dark) .chroma .p { color:#1f2328 } +:root:not(.dark) .chroma .c { color:#57606a } +:root:not(.dark) .chroma .ch { color:#57606a } +:root:not(.dark) .chroma .cm { color:#57606a } +:root:not(.dark) .chroma .c1 { color:#57606a } +:root:not(.dark) .chroma .cs { color:#57606a } +:root:not(.dark) .chroma .cp { color:#57606a } +:root:not(.dark) .chroma .cpf { color:#57606a } +:root:not(.dark) .chroma .gd { color:#82071e;background-color:#ffebe9 } +:root:not(.dark) .chroma .ge { color:#1f2328 } +:root:not(.dark) .chroma .gi { color:#116329;background-color:#dafbe1 } +:root:not(.dark) .chroma .go { color:#1f2328 } +:root:not(.dark) .chroma .gl { text-decoration:underline } +:root:not(.dark) .chroma .w { color:#fff } + +:root.dark .chroma { color:#e6edf3;background-color:var(--bg-code);-webkit-text-size-adjust:none; } +:root.dark .chroma .err { color:#f85149 } +:root.dark .chroma .lnlinks { outline:none;text-decoration:none;color:inherit } +:root.dark .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; } +:root.dark .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; } +:root.dark .chroma .hl { background-color:#6e7681 } +:root.dark .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679 } +:root.dark .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681 } +:root.dark .chroma .line { display:flex; } +:root.dark .chroma .k { color:#ff7b72 } +:root.dark .chroma .kc { color:#79c0ff } +:root.dark .chroma .kd { color:#ff7b72 } +:root.dark .chroma .kn { color:#ff7b72 } +:root.dark .chroma .kp { color:#79c0ff } +:root.dark .chroma .kr { color:#ff7b72 } +:root.dark .chroma .kt { color:#ff7b72 } +:root.dark .chroma .nc { color:#f0883e;font-weight:bold } +:root.dark .chroma .no { color:#79c0ff;font-weight:bold } +:root.dark .chroma .nd { color:#d2a8ff;font-weight:bold } +:root.dark .chroma .ni { color:#ffa657 } +:root.dark .chroma .ne { color:#f0883e;font-weight:bold } +:root.dark .chroma .nl { color:#79c0ff;font-weight:bold } +:root.dark .chroma .nn { color:#ff7b72 } +:root.dark .chroma .nx { color:#e6edf3 } +:root.dark .chroma .py { color:#79c0ff } +:root.dark .chroma .nt { color:#7ee787 } +:root.dark .chroma .nv { color:#79c0ff } +:root.dark .chroma .vc { color:#79c0ff } +:root.dark .chroma .vg { color:#79c0ff } +:root.dark .chroma .vi { color:#79c0ff } +:root.dark .chroma .vm { color:#79c0ff } +:root.dark .chroma .nf { color:#d2a8ff;font-weight:bold } +:root.dark .chroma .fm { color:#d2a8ff;font-weight:bold } +:root.dark .chroma .l { color:#a5d6ff } +:root.dark .chroma .ld { color:#79c0ff } +:root.dark .chroma .s { color:#a5d6ff } +:root.dark .chroma .sa { color:#79c0ff } +:root.dark .chroma .sb { color:#a5d6ff } +:root.dark .chroma .sc { color:#a5d6ff } +:root.dark .chroma .dl { color:#79c0ff } +:root.dark .chroma .sd { color:#a5d6ff } +:root.dark .chroma .s2 { color:#a5d6ff } +:root.dark .chroma .se { color:#79c0ff } +:root.dark .chroma .sh { color:#79c0ff } +:root.dark .chroma .si { color:#a5d6ff } +:root.dark .chroma .sx { color:#a5d6ff } +:root.dark .chroma .sr { color:#79c0ff } +:root.dark .chroma .s1 { color:#a5d6ff } +:root.dark .chroma .ss { color:#a5d6ff } +:root.dark .chroma .m { color:#a5d6ff } +:root.dark .chroma .mb { color:#a5d6ff } +:root.dark .chroma .mf { color:#a5d6ff } +:root.dark .chroma .mh { color:#a5d6ff } +:root.dark .chroma .mi { color:#a5d6ff } +:root.dark .chroma .il { color:#a5d6ff } +:root.dark .chroma .mo { color:#a5d6ff } +:root.dark .chroma .o { color:#ff7b72;font-weight:bold } +:root.dark .chroma .ow { color:#ff7b72;font-weight:bold } +:root.dark .chroma .or { color:#ff7b72;font-weight:bold } +:root.dark .chroma .c { color:#8b949e;font-style:italic } +:root.dark .chroma .ch { color:#8b949e;font-style:italic } +:root.dark .chroma .cm { color:#8b949e;font-style:italic } +:root.dark .chroma .c1 { color:#8b949e;font-style:italic } +:root.dark .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic } +:root.dark .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic } +:root.dark .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic } +:root.dark .chroma .gd { color:#ffa198;background-color:#490202 } +:root.dark .chroma .ge { font-style:italic } +:root.dark .chroma .gr { color:#ffa198 } +:root.dark .chroma .gh { color:#79c0ff;font-weight:bold } +:root.dark .chroma .gi { color:#56d364;background-color:#0f5323 } +:root.dark .chroma .go { color:#8b949e } +:root.dark .chroma .gp { color:#8b949e } +:root.dark .chroma .gs { font-weight:bold } +:root.dark .chroma .gu { color:#79c0ff } +:root.dark .chroma .gt { color:#ff7b72 } +:root.dark .chroma .gl { text-decoration:underline } +:root.dark .chroma .w { color:#6e7681 } diff --git a/site/src/pages/index.md b/site/content/_index.md similarity index 92% rename from site/src/pages/index.md rename to site/content/_index.md index 14902546..6caeb3db 100644 --- a/site/src/pages/index.md +++ b/site/content/_index.md @@ -1,10 +1,8 @@ --- -layout: home.njk -permalink: index.html title: Remark42 – Privacy-focused lightweight commenting engine --- -

Privacy-focused lightweight commenting engine

+

Privacy-focused lightweight commenting engine

Remark42 allows you to have a self-hosted, lightweight, and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments. @@ -45,4 +43,4 @@ Remark42 allows you to have a self-hosted, lightweight, and simple (yet function - Cookie lifespan can be restricted to session-only. - All potentially sensitive data stored by Remark42 hashed and encrypted. -
— The Remark42 Team
+
— The Remark42 Team
diff --git a/site/src/pages/demo.md b/site/content/demo.md similarity index 72% rename from site/src/pages/demo.md rename to site/content/demo.md index c4f37276..b9f59ab8 100644 --- a/site/src/pages/demo.md +++ b/site/content/demo.md @@ -1,6 +1,5 @@ --- -layout: demo.njk -permalink: demo/index.html +layout: demo title: Demo description: This is a page with working Remark42. Feel free to sign in and try its features. --- diff --git a/site/content/docs/_index.md b/site/content/docs/_index.md new file mode 100644 index 00000000..c2ffaa48 --- /dev/null +++ b/site/content/docs/_index.md @@ -0,0 +1,6 @@ +--- +title: Documentation +build: + render: never + list: never +--- diff --git a/site/content/docs/backup/_index.md b/site/content/docs/backup/_index.md new file mode 100644 index 00000000..a18b0fa4 --- /dev/null +++ b/site/content/docs/backup/_index.md @@ -0,0 +1,6 @@ +--- +title: Backup +build: + render: never + list: never +--- diff --git a/site/src/docs/backup/backup/index.md b/site/content/docs/backup/backup/index.md similarity index 98% rename from site/src/docs/backup/backup/index.md rename to site/content/docs/backup/backup/index.md index c18aebfa..bb34af1b 100644 --- a/site/src/docs/backup/backup/index.md +++ b/site/content/docs/backup/backup/index.md @@ -1,5 +1,7 @@ --- title: Automatic and Manual Backup +aliases: + - /docs/backup/ --- ## Automatic diff --git a/site/src/docs/backup/migration/index.md b/site/content/docs/backup/migration/index.md similarity index 100% rename from site/src/docs/backup/migration/index.md rename to site/content/docs/backup/migration/index.md diff --git a/site/src/docs/backup/restore/index.md b/site/content/docs/backup/restore/index.md similarity index 100% rename from site/src/docs/backup/restore/index.md rename to site/content/docs/backup/restore/index.md diff --git a/site/src/docs/backup/url-migration/index.md b/site/content/docs/backup/url-migration/index.md similarity index 100% rename from site/src/docs/backup/url-migration/index.md rename to site/content/docs/backup/url-migration/index.md diff --git a/site/content/docs/configuration/_index.md b/site/content/docs/configuration/_index.md new file mode 100644 index 00000000..f9eb2463 --- /dev/null +++ b/site/content/docs/configuration/_index.md @@ -0,0 +1,6 @@ +--- +title: Configuration +build: + render: never + list: never +--- diff --git a/site/src/docs/configuration/authorization/index.md b/site/content/docs/configuration/authorization/index.md similarity index 100% rename from site/src/docs/configuration/authorization/index.md rename to site/content/docs/configuration/authorization/index.md diff --git a/site/src/docs/configuration/email/images/email_auth.png b/site/content/docs/configuration/email/images/email_auth.png similarity index 100% rename from site/src/docs/configuration/email/images/email_auth.png rename to site/content/docs/configuration/email/images/email_auth.png diff --git a/site/src/docs/configuration/email/images/email_notifications.png b/site/content/docs/configuration/email/images/email_notifications.png similarity index 100% rename from site/src/docs/configuration/email/images/email_notifications.png rename to site/content/docs/configuration/email/images/email_notifications.png diff --git a/site/src/docs/configuration/email/images/error_template.png b/site/content/docs/configuration/email/images/error_template.png similarity index 100% rename from site/src/docs/configuration/email/images/error_template.png rename to site/content/docs/configuration/email/images/error_template.png diff --git a/site/src/docs/configuration/email/index.md b/site/content/docs/configuration/email/index.md similarity index 100% rename from site/src/docs/configuration/email/index.md rename to site/content/docs/configuration/email/index.md diff --git a/site/src/docs/configuration/frontend/index.md b/site/content/docs/configuration/frontend/_index.md similarity index 98% rename from site/src/docs/configuration/frontend/index.md rename to site/content/docs/configuration/frontend/_index.md index 052622fd..0c20b86d 100644 --- a/site/src/docs/configuration/frontend/index.md +++ b/site/content/docs/configuration/frontend/_index.md @@ -1,5 +1,7 @@ --- title: Frontend Configuration +aliases: + - /docs/configuration/ --- ## Configuration @@ -62,9 +64,9 @@ Add following snippet in the place where you want to see Remark42 widget. The co
``` -::: note 💡 +{{< note "💡" >}} **Note:** The initialization script should be placed after the code mentioned above. -::: +{{< /note >}} You can place any placeholder content inside the `remark42` div — it will be automatically removed once the comments widget has loaded. This is useful for showing a loading indicator or message while the widget initialises: @@ -106,9 +108,9 @@ Add this snippet to the bottom of web page, or adjust already present `remark_co ``` -::: note 💡 +{{< note "💡" >}} **Note:** If you want to render not only last comments widget you need to add all of the names of widget that you want to initialize. -::: +{{< /note >}} And then add this node in the place where you want to see last comments widget: @@ -133,9 +135,9 @@ Add this snippet to the bottom of web page, or adjust already present `remark_co ``` -::: note 💡 +{{< note "💡" >}} **Note:** If you want to render not only comments widget you need to add all of the names of widget that you want to initialize. -::: +{{< /note >}} And then add a node like this in the place where you want to see a number of comments: diff --git a/site/src/docs/configuration/frontend/spa.md b/site/content/docs/configuration/frontend/spa.md similarity index 97% rename from site/src/docs/configuration/frontend/spa.md rename to site/content/docs/configuration/frontend/spa.md index 4ab4db5a..e963689a 100644 --- a/site/src/docs/configuration/frontend/spa.md +++ b/site/content/docs/configuration/frontend/spa.md @@ -1,4 +1,6 @@ -## API for Single-Page Application +--- +title: API for Single-Page Application +--- Add the following JavaScript to your `index.html`, which in this case, it is identical to `` diff --git a/site/src/docs/configuration/notifications/index.md b/site/content/docs/configuration/notifications/index.md similarity index 100% rename from site/src/docs/configuration/notifications/index.md rename to site/content/docs/configuration/notifications/index.md diff --git a/site/src/docs/configuration/parameters/index.md b/site/content/docs/configuration/parameters/index.md similarity index 99% rename from site/src/docs/configuration/parameters/index.md rename to site/content/docs/configuration/parameters/index.md index f87dea7e..bfbdc806 100644 --- a/site/src/docs/configuration/parameters/index.md +++ b/site/content/docs/configuration/parameters/index.md @@ -79,7 +79,7 @@ services: | image.resize-height | IMAGE_RESIZE_HEIGHT | `900` | height of a resized image | | auth.ttl.jwt | AUTH_TTL_JWT | `5m` | JWT TTL | | auth.ttl.cookie | AUTH_TTL_COOKIE | `200h` | cookie TTL | -| auth.send-jwt-header | AUTH_SEND_JWT_HEADER | `false` | send JWT as a header instead of a server-set cookie; with this enabled, frontend stores the JWT in a client-side cookie. [See security considerations](#security-considerations-for-auth.send-jwt-header). | +| auth.send-jwt-header | AUTH_SEND_JWT_HEADER | `false` | send JWT as a header instead of a server-set cookie; with this enabled, frontend stores the JWT in a client-side cookie. [See security considerations](#security-considerations-for-authsend-jwt-header). | | auth.same-site | AUTH_SAME_SITE | `default` | set same site policy for cookies (`default`, `none`, `lax` or `strict`) | | auth.apple.cid | AUTH_APPLE_CID | | Apple client ID (App ID or Services ID) | | auth.apple.tid | AUTH_APPLE_TID | | Apple service ID | diff --git a/site/src/docs/configuration/telegram/index.md b/site/content/docs/configuration/telegram/index.md similarity index 100% rename from site/src/docs/configuration/telegram/index.md rename to site/content/docs/configuration/telegram/index.md diff --git a/site/content/docs/contributing/_index.md b/site/content/docs/contributing/_index.md new file mode 100644 index 00000000..70f72709 --- /dev/null +++ b/site/content/docs/contributing/_index.md @@ -0,0 +1,6 @@ +--- +title: Contributing +build: + render: never + list: never +--- diff --git a/site/src/docs/contributing/api/index.md b/site/content/docs/contributing/api/index.md similarity index 100% rename from site/src/docs/contributing/api/index.md rename to site/content/docs/contributing/api/index.md diff --git a/site/src/docs/contributing/backend/index.md b/site/content/docs/contributing/backend/index.md similarity index 98% rename from site/src/docs/contributing/backend/index.md rename to site/content/docs/contributing/backend/index.md index f4578fdf..a34b8055 100644 --- a/site/src/docs/contributing/backend/index.md +++ b/site/content/docs/contributing/backend/index.md @@ -1,5 +1,7 @@ --- title: Backend Development Guidelines +aliases: + - /docs/contributing/ --- You can use a fully functional local version to develop and test both frontend and backend. It requires at least 2GB RAM or swap enabled. @@ -16,9 +18,9 @@ docker compose -f compose-private.yml up --build It starts Remark42 on `127.0.0.1:8080` and adds local OAuth2 provider "Dev". To access the UI demo page go to . By default, you would be logged in as `dev_user`, defined as admin. You can tweak any of the [supported parameters](https://remark42.com/docs/configuration/parameters/) in corresponded yml file. -::: note 🚨 +{{< note "🚨" >}} Please use `127.0.0.1` and not `localhost` to access the server; otherwise, CORS will prevent your browser from authentication to work correctly. You could alter the address for dev auth with the `REMARK_URL` environment variable. -::: +{{< /note >}} Backend Docker Compose config (`compose-dev-backend.yml`) by default skips running frontend related tests. Frontend Docker Compose config (`compose-dev-frontend.yml`) by default skips running backend related tests and sets `NODE_ENV=development` for frontend build. diff --git a/site/src/docs/contributing/frontend/index.md b/site/content/docs/contributing/frontend/index.md similarity index 98% rename from site/src/docs/contributing/frontend/index.md rename to site/content/docs/contributing/frontend/index.md index 5c9901ad..4e460aaf 100644 --- a/site/src/docs/contributing/frontend/index.md +++ b/site/content/docs/contributing/frontend/index.md @@ -6,11 +6,11 @@ title: Frontend Development Guidelines Frontend for Remark42 is built with [Preact](https://preactjs.com) and [Redux](https://redux.js.org). -::: note 💡 +{{< note "💡" >}} We highly recommend checking out Preact [documentation](https://preactjs.com/guide/v10/getting-started). React libraries are not usable here: the store bindings and the i18n helpers are small local modules under `app/`. -::: +{{< /note >}} In order to inject Remark42 widgets into websites we use `iframe` and `postMessage` for communication between a site and the widget. Simple widgets like [counter widget](https://remark42.com/docs/configuration/frontend/#counter-widget) can be injected as a script because it doesn't have its own interface. @@ -27,9 +27,9 @@ You must have at least 2GB RAM or swap enabled for building. Running `pnpm i` will set up pre-commit hooks into your git repository. They are used to reformat your frontend code using `prettier` and lint with `eslint` and `stylelint` before every commit. -::: note 🚨 +{{< note "🚨" >}} Please use `127.0.0.1` and not `localhost` to access the server; otherwise, CORS will prevent your browser from authentication to work correctly. You could alter the address for dev auth with the `REMARK_URL` environment variable. -::: +{{< /note >}} ## Development @@ -45,9 +45,9 @@ You can attach the frontend to the locally running backend from `frontend/apps/r npx cross-env REMARK_URL=http://127.0.0.1:8080 pnpm dev:custom ``` -::: note ℹ️ +{{< note "ℹ️" >}} If you want to redefine env variables such as `PORT` on your local instance, you can add the `.env` file to the `./frontend` folder and rewrite variables as you wish. For such functional, we use `dotenv`. -::: +{{< /note >}} ### Run frontend with backend locally @@ -78,9 +78,9 @@ It starts Remark42 backend on `127.0.0.1:8080` and adds local OAuth2 provider "D Frontend Docker Compose config (`compose-dev-frontend.yml`) by default skips running backend related tests. -::: note 🚨 +{{< note "🚨" >}} Before submitting your changes as a Pull Request, run the backend using the `docker compose -f compose-dev-frontend.yml build --build-arg SKIP_FRONTEND_BUILD=""; docker compose -f compose-private.yml up` command and test your changes against , frontend, built statically (unlike frontend on port 9000, which runs dynamically). That is how Remark42 authors will test your changes once you submit them. -::: +{{< /note >}} ## Static build diff --git a/site/src/docs/contributing/translations/index.md b/site/content/docs/contributing/translations/index.md similarity index 99% rename from site/src/docs/contributing/translations/index.md rename to site/content/docs/contributing/translations/index.md index 6c36e64f..141b8cc4 100644 --- a/site/src/docs/contributing/translations/index.md +++ b/site/content/docs/contributing/translations/index.md @@ -16,7 +16,7 @@ directory with `.json` extension and content like following: } ``` -::: note 🚨 +{{< note "🚨" >}} Translations support `{name}` placeholders and paired tags such as `
text`. ICU plural, select and typed-argument syntax is not supported: a message using one either falls back to English or shows the raw syntax on the page, depending on the message. Apostrophe quoting is not @@ -31,7 +31,7 @@ CI checks every value's tags and placeholders against the English string it tran renders the two messages that carry a link. It cannot tell that an ICU form is unsupported, since that is ordinary text to it, so open your translation in the interface before sending it. -::: +{{< /note >}} ### Add a new translation diff --git a/site/content/docs/getting-started/_index.md b/site/content/docs/getting-started/_index.md new file mode 100644 index 00000000..2bd1e9ea --- /dev/null +++ b/site/content/docs/getting-started/_index.md @@ -0,0 +1,6 @@ +--- +title: Getting Started +build: + render: never + list: never +--- diff --git a/site/src/docs/getting-started/installation/index.md b/site/content/docs/getting-started/installation/index.md similarity index 98% rename from site/src/docs/getting-started/installation/index.md rename to site/content/docs/getting-started/installation/index.md index 0986a5f3..fdc30c70 100644 --- a/site/src/docs/getting-started/installation/index.md +++ b/site/content/docs/getting-started/installation/index.md @@ -1,5 +1,8 @@ --- title: Installation +aliases: + - /docs/getting-started/ + - /docs/ --- ## System Requirements @@ -107,9 +110,9 @@ After that place the code snippet right after config. ``` -::: note 💡 +{{< note "💡" >}} **Note:** You can place the config with the snippet in any place of the HTML code of your site. If it is closer to start of the HTML (for example in ``) it will start loading sooner and show comments faster. -::: +{{< /note >}} Put the next code snippet on a page of your site where you want to have comments: diff --git a/site/content/docs/manuals/_index.md b/site/content/docs/manuals/_index.md new file mode 100644 index 00000000..390a9b49 --- /dev/null +++ b/site/content/docs/manuals/_index.md @@ -0,0 +1,6 @@ +--- +title: Manuals +build: + render: never + list: never +--- diff --git a/site/src/docs/manuals/admin-interface/images/admin-blocking.png b/site/content/docs/manuals/admin-interface/images/admin-blocking.png similarity index 100% rename from site/src/docs/manuals/admin-interface/images/admin-blocking.png rename to site/content/docs/manuals/admin-interface/images/admin-blocking.png diff --git a/site/src/docs/manuals/admin-interface/images/admin-delete.png b/site/content/docs/manuals/admin-interface/images/admin-delete.png similarity index 100% rename from site/src/docs/manuals/admin-interface/images/admin-delete.png rename to site/content/docs/manuals/admin-interface/images/admin-delete.png diff --git a/site/src/docs/manuals/admin-interface/images/admin-primary.png b/site/content/docs/manuals/admin-interface/images/admin-primary.png similarity index 100% rename from site/src/docs/manuals/admin-interface/images/admin-primary.png rename to site/content/docs/manuals/admin-interface/images/admin-primary.png diff --git a/site/src/docs/manuals/admin-interface/images/admin-settings.png b/site/content/docs/manuals/admin-interface/images/admin-settings.png similarity index 100% rename from site/src/docs/manuals/admin-interface/images/admin-settings.png rename to site/content/docs/manuals/admin-interface/images/admin-settings.png diff --git a/site/src/docs/manuals/admin-interface/index.md b/site/content/docs/manuals/admin-interface/index.md similarity index 100% rename from site/src/docs/manuals/admin-interface/index.md rename to site/content/docs/manuals/admin-interface/index.md diff --git a/site/src/docs/manuals/integration-with-astro/index.md b/site/content/docs/manuals/integration-with-astro/index.md similarity index 99% rename from site/src/docs/manuals/integration-with-astro/index.md rename to site/content/docs/manuals/integration-with-astro/index.md index 06a48858..e2c0e2ed 100644 --- a/site/src/docs/manuals/integration-with-astro/index.md +++ b/site/content/docs/manuals/integration-with-astro/index.md @@ -1,4 +1,6 @@ -# Using Remark42 in Astro +--- +title: Using Remark42 in Astro +--- [Astro](https://astro.build/) is an all-in-one web framework for building fast, content-focused websites. diff --git a/site/src/docs/manuals/integration-with-gatsby/index.md b/site/content/docs/manuals/integration-with-gatsby/index.md similarity index 99% rename from site/src/docs/manuals/integration-with-gatsby/index.md rename to site/content/docs/manuals/integration-with-gatsby/index.md index 49bbec46..d716b912 100644 --- a/site/src/docs/manuals/integration-with-gatsby/index.md +++ b/site/content/docs/manuals/integration-with-gatsby/index.md @@ -1,4 +1,6 @@ -# Using Remark42 in Gatsby projects +--- +title: Using Remark42 in Gatsby projects +--- ## React component written in Javascript diff --git a/site/src/docs/manuals/kubernetes/index.md b/site/content/docs/manuals/kubernetes/index.md similarity index 100% rename from site/src/docs/manuals/kubernetes/index.md rename to site/content/docs/manuals/kubernetes/index.md diff --git a/site/src/docs/manuals/nginx/index.md b/site/content/docs/manuals/nginx/index.md similarity index 100% rename from site/src/docs/manuals/nginx/index.md rename to site/content/docs/manuals/nginx/index.md diff --git a/site/src/docs/manuals/reproxy/index.md b/site/content/docs/manuals/reproxy/index.md similarity index 100% rename from site/src/docs/manuals/reproxy/index.md rename to site/content/docs/manuals/reproxy/index.md diff --git a/site/src/docs/manuals/separate-domain/index.md b/site/content/docs/manuals/separate-domain/index.md similarity index 100% rename from site/src/docs/manuals/separate-domain/index.md rename to site/content/docs/manuals/separate-domain/index.md diff --git a/site/src/docs/manuals/spam/index.md b/site/content/docs/manuals/spam/index.md similarity index 100% rename from site/src/docs/manuals/spam/index.md rename to site/content/docs/manuals/spam/index.md diff --git a/site/src/docs/manuals/subdomain/index.md b/site/content/docs/manuals/subdomain/index.md similarity index 99% rename from site/src/docs/manuals/subdomain/index.md rename to site/content/docs/manuals/subdomain/index.md index f447c2dc..ace5f8ac 100644 --- a/site/src/docs/manuals/subdomain/index.md +++ b/site/content/docs/manuals/subdomain/index.md @@ -1,5 +1,7 @@ --- title: Configure Instance without Subdomain +aliases: + - /docs/manuals/ --- ## How to configure remark42 without a subdomain diff --git a/site/src/pages/privacy.md b/site/content/privacy.md similarity index 98% rename from site/src/pages/privacy.md rename to site/content/privacy.md index 1fe81c47..5c5096a5 100644 --- a/site/src/pages/privacy.md +++ b/site/content/privacy.md @@ -1,6 +1,4 @@ --- -layout: page.njk -permalink: privacy/index.html title: Privacy Policy --- diff --git a/site/data/anchor_aliases.json b/site/data/anchor_aliases.json new file mode 100644 index 00000000..17e25ddf --- /dev/null +++ b/site/data/anchor_aliases.json @@ -0,0 +1,36 @@ +{ + "docs/backup/restore/index.md": { + "importrestore-without-removing-existing-comments": "import/restore-without-removing-existing-comments" + }, + "docs/configuration/email/index.md": { + "email_confirmation_loginhtmltmpl--login-confirmation": "email_confirmation_login.html.tmpl-—-login-confirmation", + "email_confirmation_subscriptionhtmltmpl--subscription-confirmation": "email_confirmation_subscription.html.tmpl-—-subscription-confirmation", + "email_replyhtmltmpl--comment-notification": "email_reply.html.tmpl-—-comment-notification", + "fgribreausmtp-to-sendgrid-gateway": "fgribreau/smtp-to-sendgrid-gateway", + "mailgun-or-sendgrid-without-exposing-your-servers-ip": "mailgun-or-sendgrid-without-exposing-your-server's-ip", + "stevenolenmailgun-smtp-server": "stevenolen/mailgun-smtp-server" + }, + "docs/configuration/parameters/index.md": { + "security-considerations-for-authsend-jwt-header": "security-considerations-for-auth.send-jwt-header" + }, + "docs/manuals/integration-with-astro/index.md": { + "astro-component-card": "astro-component-(card)", + "astro-layout-page": "astro-layout-(page)", + "blogcardastro-partial-astro-component": "blogcard.astro-(partial-astro-component)", + "blogpagelayoutastro-partial-astro-layout": "blogpagelayout.astro-(partial-astro-layout)", + "commenttsx": "comment.tsx", + "here-how-to-use-it-in-your-astro-component": "here-how-to-use-it-in-your-astro-component.", + "remark42-countersvelte": "remark42-counter.svelte", + "remark42-embedsvelte": "remark42-embed.svelte", + "svelte-component-counter": "svelte-component-(counter)", + "svelte-component-embedded-frame": "svelte-component-(embedded-frame)", + "w-reactpreact-components": "w/-react/preact-components", + "w-svelte-components": "w/-svelte-components" + }, + "docs/manuals/separate-domain/index.md": { + "what-doesnt-work-so-far": "what-doesn't-work-so-far?" + }, + "privacy.md": { + "childrens-privacy": "children’s-privacy" + } +} diff --git a/site/src/docs/nav.json b/site/data/nav.json similarity index 100% rename from site/src/docs/nav.json rename to site/data/nav.json diff --git a/site/docker-compose.yml b/site/docker-compose.yml index ab1b3ec9..62034bfd 100644 --- a/site/docker-compose.yml +++ b/site/docker-compose.yml @@ -12,10 +12,12 @@ services: max-size: '10m' max-file: '5' + # without this the bind mount below leaves root-owned public/ and resources/ + # in the checkout on linux; docker desktop remaps ownership and hides it + user: '${UID:-1000}:${GID:-1000}' + ports: - - '3001:3001' - - '8080:8080' + - '1313:1313' volumes: - - ./src:/site/src - - ./build:/site/build + - ./:/site diff --git a/site/hugo.toml b/site/hugo.toml new file mode 100644 index 00000000..35dee1d1 --- /dev/null +++ b/site/hugo.toml @@ -0,0 +1,39 @@ +baseURL = "https://remark42.com/" +locale = "en-us" +title = "Remark42" +disableKinds = ["taxonomy", "term", "rss", "sitemap"] + +# off by default: the image build context is site/ alone, so there is no .git for +# hugo to read and it fails rather than degrading. HUGO_ENABLEGITINFO=true turns it +# on for a local build, where it gives real per-page commit dates instead of mtimes +enableGitInfo = false + +[frontmatter] + # without this lastmod resolves to .Date, which is zero when a page carries no + # date, and every docs page renders "Jan 01, 0001" + lastmod = [":git", "lastmod", ":fileModTime", ":default"] + +[params] + description = "Remark42 is a self-hosted, lightweight, and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments." + githubUrl = "https://github.com/umputun/remark42" + githubApiUrl = "https://api.github.com/repos/umputun/remark42" + githubBranch = "master" + remark42Host = "https://demo.remark42.com" + +[markup.goldmark.renderer] + # the docs embed raw html, and a single newline is a line break as it was before + unsafe = true + hardWraps = true + +[markup.goldmark.extensions] + # quotes and dashes stay as written: the docs quote shell snippets inline, + # where a curly quote would be wrong + typographer = false + +[markup.highlight] + # emit classes rather than inline styles, so the stylesheet can theme them + noClasses = false + # an unlabelled fence renders plain. guessing gets it wrong: a systemd unit is + # detected as gdscript and an env-var block as mysql, and colouring a snippet + # as the wrong language is worse than not colouring it + guessSyntax = false diff --git a/site/layouts/404.html b/site/layouts/404.html new file mode 100644 index 00000000..49ced76a --- /dev/null +++ b/site/layouts/404.html @@ -0,0 +1,6 @@ +{{ define "main" }} +

+ 404 + Page Not Found +

+{{ end }} diff --git a/site/layouts/_markup/render-heading.html b/site/layouts/_markup/render-heading.html new file mode 100644 index 00000000..9836175f --- /dev/null +++ b/site/layouts/_markup/render-heading.html @@ -0,0 +1,12 @@ +{{- /* markdown-it built anchors that kept punctuation goldmark strips, so a heading whose id + changed also carries its previous one as an empty target. data/anchor_aliases.json maps + content path -> current anchor -> previous anchor. */ -}} +{{- $legacy := "" -}} +{{- with .Page.File -}} + {{- with index (hugo.Data.anchor_aliases | default dict) .Path -}} + {{- $legacy = index . $.Anchor -}} + {{- end -}} +{{- end -}} +{{- with $legacy }} +{{ end -}} +{{ .Text }} diff --git a/site/layouts/_markup/render-table.html b/site/layouts/_markup/render-table.html new file mode 100644 index 00000000..1f45fbbd --- /dev/null +++ b/site/layouts/_markup/render-table.html @@ -0,0 +1,26 @@ +
+ + {{- with .THead }} + + {{- range . }} + + {{- range . }} + {{ .Text }} + {{- end }} + + {{- end }} + + {{- end }} + {{- with .TBody }} + + {{- range . }} + + {{- range . }} + {{ .Text }} + {{- end }} + + {{- end }} + + {{- end }} +
+
diff --git a/site/layouts/baseof.html b/site/layouts/baseof.html new file mode 100644 index 00000000..70771834 --- /dev/null +++ b/site/layouts/baseof.html @@ -0,0 +1,11 @@ + + +{{ partial "head.html" . }} + + {{ partial "header.html" . }} +
+ {{ block "main" . }}{{ end }} +
+ {{ partial "footer.html" . }} + + diff --git a/site/layouts/demo.html b/site/layouts/demo.html new file mode 100644 index 00000000..af97c672 --- /dev/null +++ b/site/layouts/demo.html @@ -0,0 +1,22 @@ +{{ define "main" }} +
+ +
{{ .Content }}
+
+ + + +
+{{ end }} diff --git a/site/layouts/docs/all.html b/site/layouts/docs/all.html new file mode 100644 index 00000000..6214cd97 --- /dev/null +++ b/site/layouts/docs/all.html @@ -0,0 +1,13 @@ +{{ define "main" }} +{{ partial "docs-aside.html" . }} +
+
+

{{ .Title }}

+
{{ .Content }}
+
+ Updated + Edit +
+
+
+{{ end }} diff --git a/site/layouts/home.html b/site/layouts/home.html new file mode 100644 index 00000000..c5ac3cee --- /dev/null +++ b/site/layouts/home.html @@ -0,0 +1,3 @@ +{{ define "main" }} +
{{ .Content }}
+{{ end }} diff --git a/site/layouts/page.html b/site/layouts/page.html new file mode 100644 index 00000000..73119080 --- /dev/null +++ b/site/layouts/page.html @@ -0,0 +1,9 @@ +{{ define "main" }} +
+ +
{{ .Content }}
+
+{{ end }} diff --git a/site/layouts/partials/docs-aside.html b/site/layouts/partials/docs-aside.html new file mode 100644 index 00000000..d6219c3d --- /dev/null +++ b/site/layouts/partials/docs-aside.html @@ -0,0 +1,29 @@ + diff --git a/site/layouts/partials/footer.html b/site/layouts/partials/footer.html new file mode 100644 index 00000000..03e0068f --- /dev/null +++ b/site/layouts/partials/footer.html @@ -0,0 +1,3 @@ + diff --git a/site/layouts/partials/head.html b/site/layouts/partials/head.html new file mode 100644 index 00000000..a4b9de0c --- /dev/null +++ b/site/layouts/partials/head.html @@ -0,0 +1,16 @@ +{{- $style := resources.Get "styles.css" | resources.Minify | resources.Fingerprint -}} +{{- $script := resources.Get "script.js" | resources.Minify | resources.Fingerprint -}} +{{- $inline := resources.Get "inline.js" | resources.ExecuteAsTemplate "inline.js" . | resources.Minify -}} + + + + + + + + {{ with .Title }}{{ . }} | {{ site.Title }}{{ else }}{{ site.Title }}{{ end }} + + + + + diff --git a/site/layouts/partials/header.html b/site/layouts/partials/header.html new file mode 100644 index 00000000..bf3b7c99 --- /dev/null +++ b/site/layouts/partials/header.html @@ -0,0 +1,22 @@ + diff --git a/site/layouts/shortcodes/note.html b/site/layouts/shortcodes/note.html new file mode 100644 index 00000000..bb34c0cc --- /dev/null +++ b/site/layouts/shortcodes/note.html @@ -0,0 +1,5 @@ +{{- $icon := .Get 0 | default "💡" -}} + diff --git a/site/package.json b/site/package.json deleted file mode 100644 index a8a8327c..00000000 --- a/site/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "remark42-site", - "version": "0.0.0", - "repository": "https://github.com/umputun/remark42/site", - "homepage": "https://remark42.com", - "author": "Pavel Mineev ", - "license": "MIT", - "private": true, - "engines": { - "node": ">=20.11.1", - "yarn": ">=1.22" - }, - "packageManager": "yarn@1.22.22", - "scripts": { - "start": "npm-run-all dev", - "dev": "npm-run-all -l clean build:css -p dev:css dev:11ty", - "dev:css": "tailwindcss -i ./src/styles.css -o .tmp/style.css -w", - "dev:11ty": "eleventy --serve --watch --quiet", - "build": "cross-env NODE_ENV=production run-s clean build:css build:11ty --print-label", - "build:css": "tailwindcss -i ./src/styles.css -o .tmp/style.css", - "build:11ty": "eleventy", - "clean": "rm -rf .tmp/* build/*" - }, - "devDependencies": { - "@11ty/eleventy": "^2.0.1", - "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2", - "@tailwindcss/typography": "^0.5.20", - "cross-env": "^10.1.0", - "date-fns": "^4.4.0", - "markdown-it": "^14.2.0", - "markdown-it-anchor": "^9.2.0", - "markdown-it-container": "^4.0.0", - "npm-run-all": "^4.1.5", - "prettier": "^3.9.4", - "tailwindcss": "^3.4.15", - "html-minifier-terser": "^7.2.0" - }, - "resolutions": { - "cross-spawn": ">=7.0.6", - "minimatch": ">=3.1.4", - "shell-quote": ">=1.8.4", - "brace-expansion": ">=1.1.12", - "glob": ">=10.5.0 <11.0.0", - "liquidjs": ">=10.26.0", - "linkify-it": ">=5.0.2 <6.0.0", - "ws": ">=8.21.0", - "postcss": ">=8.5.23 <9.0.0", - "yaml": ">=2.8.3", - "markdown-it": ">=14.2.0" - } -} diff --git a/site/postcss.config.js b/site/postcss.config.js deleted file mode 100644 index 1b69d43b..00000000 --- a/site/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/site/public/robots.txt b/site/public/robots.txt deleted file mode 100644 index da27e09e..00000000 --- a/site/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: /404/index.html diff --git a/site/src/data/site.json b/site/src/data/site.json deleted file mode 100644 index 8e45c6ba..00000000 --- a/site/src/data/site.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "Remark42", - "subtitle": "Privacy focused lightweight commenting system", - "description": "Remark42 is a self-hosted, lightweight, and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments.", - "url": "https://remark42.com", - "githubUrl": "https://github.com/umputun/remark42", - "githubApiUrl": "https://api.github.com/repos/umputun/remark42", - "githubBranch": "master", - "remark42Host": "https://demo.remark42.com" -} diff --git a/site/src/docs/backup/index.md b/site/src/docs/backup/index.md deleted file mode 100644 index 63a9442c..00000000 --- a/site/src/docs/backup/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: redirect.njk -destination: /docs/backup/backup/ ---- diff --git a/site/src/docs/configuration/index.md b/site/src/docs/configuration/index.md deleted file mode 100644 index 8545c090..00000000 --- a/site/src/docs/configuration/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: redirect.njk -destination: /docs/configuration/frontend/ ---- diff --git a/site/src/docs/contributing/index.md b/site/src/docs/contributing/index.md deleted file mode 100644 index 15dfcfd2..00000000 --- a/site/src/docs/contributing/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: redirect.njk -destination: /docs/contributing/development/ ---- diff --git a/site/src/docs/docs.11tydata.js b/site/src/docs/docs.11tydata.js deleted file mode 100644 index a1f3cc80..00000000 --- a/site/src/docs/docs.11tydata.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - nav: require('./nav.json'), - layout: 'docs.njk', -} diff --git a/site/src/docs/getting-started/index.md b/site/src/docs/getting-started/index.md deleted file mode 100644 index d3bd6003..00000000 --- a/site/src/docs/getting-started/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: redirect.njk -destination: /docs/getting-started/installation/ ---- diff --git a/site/src/docs/manuals/index.md b/site/src/docs/manuals/index.md deleted file mode 100644 index 6d9143f1..00000000 --- a/site/src/docs/manuals/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: redirect.njk -destination: /docs/manuals/subdomain/ ---- diff --git a/site/src/includes/components/docs-aside.njk b/site/src/includes/components/docs-aside.njk deleted file mode 100644 index 3159cbdd..00000000 --- a/site/src/includes/components/docs-aside.njk +++ /dev/null @@ -1,42 +0,0 @@ -{% macro navItem(entry) %} -
  • - - {{ entry.title }} - - {% if entry.children %} - - {% endif %} -
  • -{% endmacro %} - - diff --git a/site/src/includes/components/footer.njk b/site/src/includes/components/footer.njk deleted file mode 100644 index 6f5928ba..00000000 --- a/site/src/includes/components/footer.njk +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/site/src/includes/components/head.njk b/site/src/includes/components/head.njk deleted file mode 100644 index ce224e47..00000000 --- a/site/src/includes/components/head.njk +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - {% if title %} - {{ title }} | {{ site.name }} - {% else %} - {{ renderData.title or site.name }} - {% endif %} - - - - {% set js %} - {% include "script.js" %} - {% endset %} - - diff --git a/site/src/includes/components/header.njk b/site/src/includes/components/header.njk deleted file mode 100644 index fb0f69a1..00000000 --- a/site/src/includes/components/header.njk +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    - - {{ site.name }} - - -
    - - - - - - - -
    -
    -
    diff --git a/site/src/layouts/404.njk b/site/src/layouts/404.njk deleted file mode 100644 index 0caa84d4..00000000 --- a/site/src/layouts/404.njk +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: base.njk ---- - -

    -
    404
    -
    Page Not Found
    -

    diff --git a/site/src/layouts/base.njk b/site/src/layouts/base.njk deleted file mode 100644 index b73ae51e..00000000 --- a/site/src/layouts/base.njk +++ /dev/null @@ -1,11 +0,0 @@ - - - {% include "components/head.njk" %} - - {% include "components/header.njk" %} -
    - {{ layoutContent | safe }} -
    - {% include "components/footer.njk" %} - - diff --git a/site/src/layouts/demo.njk b/site/src/layouts/demo.njk deleted file mode 100644 index d331d94d..00000000 --- a/site/src/layouts/demo.njk +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: page.njk ---- - -{{ content | safe }} - -
    - - - diff --git a/site/src/layouts/docs.njk b/site/src/layouts/docs.njk deleted file mode 100644 index 20371f21..00000000 --- a/site/src/layouts/docs.njk +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: base.njk ---- - -{% include "components/docs-aside.njk" %} -
    -
    - {# TODO: implement table of content - - #} -
    -

    {{ title }}

    -
    {{ layoutContent | safe }}
    -
    -
    - - Updated - - Edit -
    -
    - {# TODO: implement navigation to next page of the docs - #} -
    diff --git a/site/src/layouts/home.njk b/site/src/layouts/home.njk deleted file mode 100644 index 4de65a55..00000000 --- a/site/src/layouts/home.njk +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: base.njk ---- - -
    - {{ content |safe }} -
    diff --git a/site/src/layouts/page.njk b/site/src/layouts/page.njk deleted file mode 100644 index 0b8f5661..00000000 --- a/site/src/layouts/page.njk +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: base.njk ---- - -
    -
    -

    {{ title }}

    -

    {{ description }}

    -
    -
    - {{ content | safe }} -
    -
    diff --git a/site/src/layouts/redirect.njk b/site/src/layouts/redirect.njk deleted file mode 100644 index ed069557..00000000 --- a/site/src/layouts/redirect.njk +++ /dev/null @@ -1,13 +0,0 @@ -{% if not destination %} - {% set destination = redirect.destination %} -{% endif %} - - - - - - - - you should be redirecting to {{ destination }} - - diff --git a/site/src/pages/404.md b/site/src/pages/404.md deleted file mode 100644 index 63de3ff6..00000000 --- a/site/src/pages/404.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: 404.njk -permalink: 404/index.html -title: Page Not Found ---- diff --git a/site/src/pages/redirects.md b/site/src/pages/redirects.md deleted file mode 100644 index fca88d10..00000000 --- a/site/src/pages/redirects.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -# This file does hijinx with the "pagination" system to generate many small pages from one set of data... -# and uses that do to redirect from some URLs to others. -# We use this to try to keep old links working. -# -# There's limited power to this approach (it only works for specific pages listed; it can't glob), -# but those are limitations inherent to an approach that works via static site gen, rather than via server configuration. -# The related upside of an approach that works via static site gen is the portability. -pagination: - data: redirects - size: 1 - alias: redirect -# Add your redirection tuples to this list! -redirects: - - { "from": "/docs/", "destination": "/docs/getting-started/installation/" } -# The "permalink" attribute determines where the output page will be located. -permalink: "{{ redirect.from }}" -# The "redirect" layout just has a small html header with the meta tags that do redirection. -layout: redirect ---- diff --git a/site/src/styles.css b/site/src/styles.css deleted file mode 100644 index 4a7d09f8..00000000 --- a/site/src/styles.css +++ /dev/null @@ -1,202 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -.prose code { - @apply before:hidden after:hidden text-brand-800 dark:text-brand-300 font-light; -} -.prose strong code { - @apply font-bold text-yellow-600 dark:text-yellow-400; -} - -.burger-icon { - @apply relative inline-block w-4 h-4 mr-3; -} - -.burger-icon div { - @apply absolute bg-gray-400 rounded transition-all transform w-full h-[2px]; -} - -.burger-icon div:nth-child(1) { - @apply left-0 top-0; -} - -.burger-icon div:nth-child(2) { - @apply left-0 top-[7px]; -} - -.burger-icon div:nth-child(3) { - @apply left-0 bottom-0; -} - -.menu-state:checked ~ nav { - @apply block; -} - -.menu-state:checked ~ label .burger-icon div:nth-child(1) { - @apply -rotate-45 scale-x-[0.7] top-[7px] left-[-3px]; -} -.menu-state:checked ~ label .burger-icon div:nth-child(2) { - @apply scale-0 duration-75; -} -.menu-state:checked ~ label .burger-icon div:nth-child(3) { - @apply rotate-45 scale-x-[0.7] top-[7px] left-[4px]; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata, -.token.punctuation { - @apply text-gray-700 dark:text-gray-300; -} - -.token.punctuation { - @apply text-brand-800 dark:text-brand-200; -} - -.token.delimiter.important, -.token.selector .parent, -.token.tag, -.token.tag .token.punctuation { - @apply text-brand-600 dark:text-brand-300 font-semibold; -} - -.token.attr-name, -.token.boolean, -.token.boolean.important, -.token.number, -.token.constant, -.token.selector .token.attribute { - @apply font-normal text-yellow-600 dark:text-yellow-500; -} - -.token.class-name, -.token.key, -.token.parameter, -.token.property, -.token.property-access, -.token.variable { - @apply text-yellow-600 dark:text-yellow-400; -} - -.token.attr-value, -.token.inserted, -.token.color, -.token.selector .token.value, -.token.string, -.token.string .token.url-link { - @apply text-brand-800 dark:text-brand-300 font-normal; -} - -.token.builtin, -.token.keyword-array, -.token.package, -.token.regex { - color: #af00af; -} - -.token.function, -.token.selector .token.class, -.token.selector .token.id { - color: #7c00aa; -} - -.token.atrule .token.rule, -.token.combinator, -.token.keyword, -.token.operator, -.token.pseudo-class, -.token.pseudo-element, -.token.selector, -.token.unit { - @apply text-pink-700 dark:text-pink-300; -} - -.token.deleted, -.token.important { - color: #c22f2e; -} - -.token.keyword-this, -.token.this { - color: #005a8e; -} - -.token.important, -.token.keyword-this, -.token.this, -.token.bold { - font-weight: bold; -} - -.token.delimiter.important { - font-weight: inherit; -} - -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.language-markdown .token.title, -.language-markdown .token.title .token.punctuation { - color: #005a8e; - font-weight: bold; -} - -.language-markdown .token.blockquote.punctuation { - color: #af00af; -} - -.language-markdown .token.code { - color: #006d6d; -} - -.language-markdown .token.hr.punctuation { - color: #005a8e; -} - -.language-markdown .token.url > .token.content { - color: #116b00; -} - -.language-markdown .token.url-link { - color: #755f00; -} - -.language-markdown .token.list.punctuation { - color: #af00af; -} - -.language-markdown .token.table-header { - color: #111b27; -} - -.language-json .token.operator { - color: #111b27; -} - -.language-scss .token.variable { - color: #006d6d; -} - -/* overrides color-values for the Show Invisibles plugin - * https://prismjs.com/plugins/show-invisibles/ - */ -.token.tab:not(:empty):before, -.token.cr:before, -.token.lf:before, -.token.space:before { - color: #3c526d; -} - -.header-anchor { - @apply pointer-events-none; -} -.header-anchor::before { - @apply content-[''] block h-24 -mt-24 invisible md:h-16 md:-mt-16; -} diff --git a/site/public/android-chrome-192x192.png b/site/static/android-chrome-192x192.png similarity index 100% rename from site/public/android-chrome-192x192.png rename to site/static/android-chrome-192x192.png diff --git a/site/public/android-chrome-512x512.png b/site/static/android-chrome-512x512.png similarity index 100% rename from site/public/android-chrome-512x512.png rename to site/static/android-chrome-512x512.png diff --git a/site/public/apple-touch-icon.png b/site/static/apple-touch-icon.png similarity index 100% rename from site/public/apple-touch-icon.png rename to site/static/apple-touch-icon.png diff --git a/site/public/favicon-16x16.png b/site/static/favicon-16x16.png similarity index 100% rename from site/public/favicon-16x16.png rename to site/static/favicon-16x16.png diff --git a/site/public/favicon-32x32.png b/site/static/favicon-32x32.png similarity index 100% rename from site/public/favicon-32x32.png rename to site/static/favicon-32x32.png diff --git a/site/public/favicon.ico b/site/static/favicon.ico similarity index 100% rename from site/public/favicon.ico rename to site/static/favicon.ico diff --git a/site/static/robots.txt b/site/static/robots.txt new file mode 100644 index 00000000..e9966494 --- /dev/null +++ b/site/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /404.html diff --git a/site/public/site.webmanifest b/site/static/site.webmanifest similarity index 100% rename from site/public/site.webmanifest rename to site/static/site.webmanifest diff --git a/site/tailwind.config.js b/site/tailwind.config.js deleted file mode 100644 index bbd54733..00000000 --- a/site/tailwind.config.js +++ /dev/null @@ -1,111 +0,0 @@ -const colors = require('tailwindcss/colors') -const { spacing } = require('tailwindcss/defaultTheme') - -module.exports = { - content: ['.eleventy.js', 'src/**/*.{njk,md,html,js}'], - mode: 'jit', - darkMode: 'class', - theme: { - extend: { - colors: { - neutral: colors.neutral, - brand: { - 50: '#edfdfb', - 100: '#e0fbf8', - 200: '#aef4ee', - 300: '#4be7dc', - 400: '#1ccac1', - 500: '#16a29f', - 600: '#157f7f', - 700: '#126263', - 800: '#125254', - 900: '#134b4e', - }, - }, - container: { - center: true, - padding: spacing[4], - screens: { - sm: '100%', - md: '1024px', - lg: '1200px', - xl: false, - }, - }, - typography: (theme) => ({ - DEFAULT: { - css: { - 'h1, h2': { color: theme('colors.brand.900') }, - 'h3,h4,h5,h6': { color: theme('colors.gray.700') }, - pre: { - color: theme('colors.gray.500'), - backgroundColor: theme('colors.gray.100'), - }, - }, - }, - dark: { - css: [ - { - color: theme('colors.gray.300'), - a: { - color: theme('colors.gray.200'), - }, - strong: { - color: theme('colors.gray.200'), - }, - 'ol > li::before': { - color: theme('colors.gray.400'), - }, - 'ul > li::before': { - backgroundColor: theme('colors.gray.600'), - }, - hr: { - borderColor: theme('colors.gray.300'), - }, - blockquote: { - color: theme('colors.gray.300'), - borderLeftColor: theme('colors.gray.600'), - }, - h1: { - color: theme('colors.gray.200'), - }, - h2: { - color: theme('colors.gray.200'), - }, - h3: { - color: theme('colors.gray.200'), - }, - h4: { - color: theme('colors.gray.200'), - }, - 'figure figcaption': { - color: theme('colors.gray.400'), - }, - code: { - color: theme('colors.gray.200'), - }, - 'a code': { - color: theme('colors.gray.200'), - }, - pre: { - backgroundColor: theme('colors.gray.800'), - }, - thead: { - color: theme('colors.gray.200'), - borderBottomColor: theme('colors.gray.400'), - }, - 'tbody tr': { - borderBottomColor: theme('colors.gray.600'), - }, - hr: { - borderColor: theme('colors.gray.500'), - }, - }, - ], - }, - }), - }, - }, - variants: {}, - plugins: [require('@tailwindcss/typography')], -} diff --git a/site/yarn.lock b/site/yarn.lock deleted file mode 100644 index bb7ab0b2..00000000 --- a/site/yarn.lock +++ /dev/null @@ -1,2724 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@11ty/dependency-tree@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz#b3c8fa6c91c4a29257e70dd19d26cca75cde89d2" - integrity sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg== - -"@11ty/eleventy-dev-server@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz#87c2cf182ed22f90ac2793e1e1337a0d9e32b318" - integrity sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg== - dependencies: - "@11ty/eleventy-utils" "^1.0.1" - chokidar "^3.5.3" - debug "^4.3.4" - dev-ip "^1.0.1" - finalhandler "^1.2.0" - mime "^3.0.0" - minimist "^1.2.8" - morphdom "^2.7.0" - please-upgrade-node "^3.2.0" - ssri "^8.0.1" - ws "^8.13.0" - -"@11ty/eleventy-plugin-syntaxhighlight@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@11ty/eleventy-plugin-syntaxhighlight/-/eleventy-plugin-syntaxhighlight-5.0.2.tgz#22688060cb05cc25ce1a51cce0f87033aa8b2477" - integrity sha512-T6xVVRDJuHlrFMHbUiZkHjj5o1IlLzZW+1IL9eUsyXFU7rY2ztcYhZew/64vmceFFpQwzuSfxQOXxTJYmKkQ+A== - dependencies: - prismjs "^1.30.0" - -"@11ty/eleventy-utils@^1.0.1": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz#fb70305aed2499eba93b7d1d31de045efe3997fa" - integrity sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g== - dependencies: - normalize-path "^3.0.0" - -"@11ty/eleventy@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@11ty/eleventy/-/eleventy-2.0.1.tgz#d96104c401a83b59f69a207c96aa53ad42131b15" - integrity sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw== - dependencies: - "@11ty/dependency-tree" "^2.0.1" - "@11ty/eleventy-dev-server" "^1.0.4" - "@11ty/eleventy-utils" "^1.0.1" - "@11ty/lodash-custom" "^4.17.21" - "@iarna/toml" "^2.2.5" - "@sindresorhus/slugify" "^1.1.2" - bcp-47-normalize "^1.1.1" - chokidar "^3.5.3" - cross-spawn "^7.0.3" - debug "^4.3.4" - dependency-graph "^0.11.0" - ejs "^3.1.9" - fast-glob "^3.2.12" - graceful-fs "^4.2.11" - gray-matter "^4.0.3" - hamljs "^0.6.2" - handlebars "^4.7.7" - is-glob "^4.0.3" - iso-639-1 "^2.1.15" - kleur "^4.1.5" - liquidjs "^10.7.0" - luxon "^3.3.0" - markdown-it "^13.0.1" - micromatch "^4.0.5" - minimist "^1.2.8" - moo "^0.5.2" - multimatch "^5.0.0" - mustache "^4.2.0" - normalize-path "^3.0.0" - nunjucks "^3.2.3" - path-to-regexp "^6.2.1" - please-upgrade-node "^3.2.0" - posthtml "^0.16.6" - posthtml-urls "^1.0.0" - pug "^3.0.2" - recursive-copy "^2.0.14" - semver "^7.3.8" - slugify "^1.6.6" - -"@11ty/lodash-custom@^4.17.21": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz#a8d2e25a47ee3bb58b71cde4edc2ae8dd3d1b269" - integrity sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw== - -"@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11" - integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== - dependencies: - "@babel/types" "^7.26.0" - -"@babel/types@^7.26.0", "@babel/types@^7.6.1", "@babel/types@^7.9.6": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" - integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@epic-web/invariant@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@epic-web/invariant/-/invariant-1.0.0.tgz#1073e5dee6dd540410784990eb73e4acd25c9813" - integrity sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA== - -"@iarna/toml@^2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.24": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jridgewell/trace-mapping@^0.3.25": - version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@sindresorhus/slugify@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-1.1.2.tgz#c2c0129298b8caace2d9156176fe244d0e83156c" - integrity sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA== - dependencies: - "@sindresorhus/transliterate" "^0.1.1" - escape-string-regexp "^4.0.0" - -"@sindresorhus/transliterate@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz#ffce368271d153550e87de81486004f2637425af" - integrity sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w== - dependencies: - escape-string-regexp "^2.0.0" - lodash.deburr "^4.1.0" - -"@tailwindcss/typography@^0.5.20": - version "0.5.20" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.20.tgz#9feb7fb1d5f2f7b5360c22e24651210db74c34df" - integrity sha512-hwbzQuNUfcPvbegQFatVPl/MY/tcM9KLl963hQ5laJKPh81TEZ1+dNG9PirGvcaDBkp+BCshExAyKVPW91dozw== - dependencies: - postcss-selector-parser "6.0.10" - -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -a-sync-waterfall@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" - integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.15.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.17.0.tgz#1785adb84faf8d8add10369b93826fc2bd08f1fe" - integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -any-promise@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" - integrity sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ== - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asap@^2.0.3, asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -assert-never@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.3.0.tgz#c53cf3ad8fcdb67f400a941dea66dac7fe82dd2e" - integrity sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ== - -async@^3.2.3: - version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -babel-walk@3.0.0-canary-5: - version "3.0.0-canary-5" - resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" - integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== - dependencies: - "@babel/types" "^7.9.6" - -balanced-match@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" - integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== - -bcp-47-match@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bcp-47-match/-/bcp-47-match-1.0.3.tgz#cb8d03071389a10aff2062b862d6575ffd7cd7ef" - integrity sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w== - -bcp-47-normalize@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz#d2c76218d132f223c44e4a06a7224be3030f8ec3" - integrity sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A== - dependencies: - bcp-47 "^1.0.0" - bcp-47-match "^1.0.0" - -bcp-47@^1.0.0: - version "1.0.8" - resolved "https://registry.yarnpkg.com/bcp-47/-/bcp-47-1.0.8.tgz#bf63ae4269faabe7c100deac0811121a48b6a561" - integrity sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag== - dependencies: - is-alphabetical "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -brace-expansion@>=1.1.12, brace-expansion@^5.0.5: - version "5.0.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.7.tgz#1b0e46965b479dad65af737b4a02790a05498337" - integrity sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA== - dependencies: - balanced-match "^4.0.2" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-parser@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== - dependencies: - is-regex "^1.0.3" - -chokidar@^3.5.3, chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -clean-css@~5.3.2: - version "5.3.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" - integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== - dependencies: - source-map "~0.6.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -constantinople@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" - integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== - dependencies: - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.1" - -cross-env@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-10.1.0.tgz#cfd2a6200df9ed75bfb9cb3d7ce609c13ea21783" - integrity sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw== - dependencies: - "@epic-web/invariant" "^1.0.0" - cross-spawn "^7.0.6" - -cross-spawn@>=7.0.6, cross-spawn@^6.0.5, cross-spawn@^7.0.0, cross-spawn@^7.0.3, cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -date-fns@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.4.0.tgz#806539edf45c616b2b76b5f78b88c56ed3c7e036" - integrity sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -dependency-graph@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" - integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== - -dev-ip@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" - integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -doctypes@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^4.2.0, domhandler@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.9: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -errno@^0.1.2: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.2.1, es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -fast-glob@^3.2.12, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - 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.1" - unpipe "~1.0.0" - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== - dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -"glob@>=10.5.0 <11.0.0", glob@^10.3.10, glob@^7.1.3: - version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" - integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -globalthis@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -gopd@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.1.0.tgz#df8f0839c2d48caefc32a025a49294d39606c912" - integrity sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA== - dependencies: - get-intrinsic "^1.2.4" - -graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.2.11: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -hamljs@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/hamljs/-/hamljs-0.6.2.tgz#7b7116cf6dbe7278e42b3f6ef8725a33e177c8e3" - integrity sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg== - -handlebars@^4.7.7: - version "4.7.9" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f" - integrity sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-minifier-terser@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" - integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== - dependencies: - camel-case "^4.1.2" - clean-css "~5.3.2" - commander "^10.0.0" - entities "^4.4.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.15.1" - -htmlparser2@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" - integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - -http-equiv-refresh@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz#8ec538866042be5f3f7afa737d198d94beb1b07b" - integrity sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w== - -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== - dependencies: - is-typed-array "^1.1.13" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-expression@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" - integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== - dependencies: - acorn "^7.1.1" - object-assign "^4.1.1" - -is-extendable@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-json@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" - integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA== - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-promise@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.0.tgz#41b9d266e7eb7451312c64efc37e8a7d453077cf" - integrity sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA== - dependencies: - call-bind "^1.0.7" - gopd "^1.1.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -iso-639-1@^2.1.15: - version "2.1.15" - resolved "https://registry.yarnpkg.com/iso-639-1/-/iso-639-1-2.1.15.tgz#20cf78a4f691aeb802c16f17a6bad7d99271e85d" - integrity sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jiti@^1.21.6: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -js-stringify@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== - -js-yaml@^3.13.1: - version "3.15.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.15.1.tgz#24bc95028f361cdaaa84745b06a109c4486773c0" - integrity sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -jstransformer@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== - dependencies: - is-promise "^2.0.0" - promise "^7.0.1" - -junk@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592" - integrity sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - -lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lilconfig@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" - integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -"linkify-it@>=5.0.2 <6.0.0", linkify-it@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.2.tgz#d3be0a693af3da9df3883f1e346a0e97461a8c19" - integrity sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q== - dependencies: - uc.micro "^2.0.0" - -liquidjs@>=10.26.0, liquidjs@^10.7.0: - version "10.27.1" - resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.27.1.tgz#4cd3ac2a8590bae0d415572161978b26f72e944b" - integrity sha512-ylE+1q2kSef1UxAyxqbyuWM3FRWS1v48JK1Y3CoW3bD6TSNXZh0+GsVnihujEpKyR+Jejx2aRAFfC3AHm9rElg== - dependencies: - commander "^10.0.0" - -list-to-array@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/list-to-array/-/list-to-array-1.1.0.tgz#ca7dff640606433cac75cbe8446acd864b15bf6f" - integrity sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -lodash.deburr@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" - integrity sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ== - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -luxon@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20" - integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ== - -markdown-it-anchor@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-9.2.0.tgz#89375d9a2a79336403ab7c4fd36b1965cc45e5c8" - integrity sha512-sa2ErMQ6kKOA4l31gLGYliFQrMKkqSO0ZJgGhDHKijPf0pNFM9vghjAh3gn26pS4JDRs7Iwa9S36gxm3vgZTzg== - -markdown-it-container@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-4.0.0.tgz#3912394f7da6e8ef3b43a0f58b1d0ded851f2a38" - integrity sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw== - -markdown-it@>=14.2.0, markdown-it@^13.0.1, markdown-it@^14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.2.0.tgz#06d48d9035e77d5b1c85adb315482fc8240289ef" - integrity sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ== - dependencies: - argparse "^2.0.1" - entities "^4.4.0" - linkify-it "^5.0.1" - mdurl "^2.0.0" - punycode.js "^2.3.1" - uc.micro "^2.1.0" - -maximatch@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2" - integrity sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A== - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -mdurl@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -minimatch@>=3.1.4, minimatch@^3.0.0, minimatch@^3.0.4, minimatch@^3.1.2, minimatch@^5.0.1, minimatch@^9.0.4: - version "10.2.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" - integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== - dependencies: - brace-expansion "^5.0.5" - -minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass@^3.1.1: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -moo@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" - integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== - -morphdom@^2.7.0: - version "2.7.4" - resolved "https://registry.yarnpkg.com/morphdom/-/morphdom-2.7.4.tgz#c61d511e935cc25ca588dfaa752461f27865865e" - integrity sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multimatch@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" - integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -mustache@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" - integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoid@^3.3.17: - version "3.3.18" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.18.tgz#f66a2de1199ffde0fcf21c8a5f13106b1c081913" - integrity sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -nunjucks@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.4.tgz#f0878eef528ce7b0aa35d67cc6898635fd74649e" - integrity sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ== - dependencies: - a-sync-waterfall "^1.0.0" - asap "^2.0.3" - commander "^5.1.0" - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -object-inspect@^1.13.1: - version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-srcset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" - integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-to-regexp@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" - integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" - integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" - integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== - dependencies: - lilconfig "^3.0.0" - yaml "^2.3.4" - -postcss-nested@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" - integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== - dependencies: - postcss-selector-parser "^6.1.1" - -postcss-selector-parser@6.0.10: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -"postcss@>=8.5.23 <9.0.0", postcss@^8.4.47: - version "8.5.26" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.26.tgz#6e75135780c7e10df3433bf2266c552d35c8c620" - integrity sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ== - dependencies: - nanoid "^3.3.17" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -posthtml-parser@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a" - integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== - dependencies: - htmlparser2 "^7.1.1" - -posthtml-render@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205" - integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== - dependencies: - is-json "^2.0.1" - -posthtml-urls@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/posthtml-urls/-/posthtml-urls-1.0.0.tgz#3102d7b9e5c2fbdf19c8ec7ca825600dad3b9164" - integrity sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w== - dependencies: - http-equiv-refresh "^1.0.0" - list-to-array "^1.1.0" - parse-srcset "^1.0.2" - promise-each "^2.2.0" - -posthtml@^0.16.6: - version "0.16.6" - resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59" - integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== - dependencies: - posthtml-parser "^0.11.0" - posthtml-render "^3.0.0" - -prettier@^3.9.4: - version "3.9.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.4.tgz#a9c477cf1614376bd1f6bbc593d8c0d414bcec87" - integrity sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg== - -prismjs@^1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" - integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== - -promise-each@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60" - integrity sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg== - dependencies: - any-promise "^0.1.0" - -promise@^7.0.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -pug-attrs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" - integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== - dependencies: - constantinople "^4.0.1" - js-stringify "^1.0.2" - pug-runtime "^3.0.0" - -pug-code-gen@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.3.tgz#58133178cb423fe1716aece1c1da392a75251520" - integrity sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw== - dependencies: - constantinople "^4.0.1" - doctypes "^1.1.0" - js-stringify "^1.0.2" - pug-attrs "^3.0.0" - pug-error "^2.1.0" - pug-runtime "^3.0.1" - void-elements "^3.1.0" - with "^7.0.0" - -pug-error@^2.0.0, pug-error@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.1.0.tgz#17ea37b587b6443d4b8f148374ec27b54b406e55" - integrity sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg== - -pug-filters@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" - integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== - dependencies: - constantinople "^4.0.1" - jstransformer "1.0.0" - pug-error "^2.0.0" - pug-walk "^2.0.0" - resolve "^1.15.1" - -pug-lexer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" - integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== - dependencies: - character-parser "^2.2.0" - is-expression "^4.0.0" - pug-error "^2.0.0" - -pug-linker@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" - integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== - dependencies: - pug-error "^2.0.0" - pug-walk "^2.0.0" - -pug-load@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" - integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== - dependencies: - object-assign "^4.1.1" - pug-walk "^2.0.0" - -pug-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" - integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== - dependencies: - pug-error "^2.0.0" - token-stream "1.0.0" - -pug-runtime@^3.0.0, pug-runtime@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" - integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== - -pug-strip-comments@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" - integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== - dependencies: - pug-error "^2.0.0" - -pug-walk@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" - integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== - -pug@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.3.tgz#e18324a314cd022883b1e0372b8af3a1a99f7597" - integrity sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g== - dependencies: - pug-code-gen "^3.0.3" - pug-filters "^4.0.0" - pug-lexer "^5.0.1" - pug-linker "^4.0.0" - pug-load "^3.0.0" - pug-parser "^6.0.0" - pug-runtime "^3.0.1" - pug-strip-comments "^2.0.0" - -punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -recursive-copy@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/recursive-copy/-/recursive-copy-2.0.14.tgz#6358af3b5f8da89562f000db44720c4daa94b6d7" - integrity sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog== - dependencies: - errno "^0.1.2" - graceful-fs "^4.1.4" - junk "^1.0.1" - maximatch "^0.1.0" - mkdirp "^0.5.1" - pify "^2.3.0" - promise "^7.0.1" - rimraf "^2.7.1" - slash "^1.0.0" - -regexp.prototype.flags@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.2" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.15.1, resolve@^1.22.8: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^7.3.8: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@>=1.8.4, shell-quote@^1.6.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.9.0.tgz#e108b1a136586d5964edb3300016d4bedba0fe57" - integrity sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA== - -side-channel@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - -slugify@^1.6.6: - version "1.6.6" - resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" - integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.20" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" - integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.padend@^3.0.0: - version "3.1.6" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" - integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -sucrase@^3.35.0: - version "3.35.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" - integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "^10.3.10" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tailwindcss@^3.4.15: - version "3.4.15" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.15.tgz#04808bf4bf1424b105047d19e7d4bfab368044a9" - integrity sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.6.0" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.3.2" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.21.6" - lilconfig "^2.1.0" - micromatch "^4.0.8" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.1.1" - postcss "^8.4.47" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.2" - postcss-nested "^6.2.0" - postcss-selector-parser "^6.1.2" - resolve "^1.22.8" - sucrase "^3.35.0" - -terser@^5.15.1: - version "5.48.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.48.0.tgz#8b391171cfbb7ac4a88f9f04ba1cfabc54f643db" - integrity sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -token-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -tslib@^2.0.3: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -uglify-js@^3.1.4: - version "3.19.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" - integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -void-elements@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -with@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" - integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== - dependencies: - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - assert-never "^1.2.1" - babel-walk "3.0.0-canary-5" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@>=8.21.0, ws@^8.13.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" - integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@>=2.8.3, yaml@^2.3.4: - version "2.9.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.9.0.tgz#78274afd93598a1dfdd6130df6a566defcbf9aa4" - integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==