├── .eslintignore
├── .github
└── workflows
│ └── publish.yaml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── CHANGELOG.md
├── README.md
├── demo
├── .gitignore
├── README.md
├── astro.config.mjs
├── package.json
├── pnpm-lock.yaml
├── public
│ └── favicon.svg
├── src
│ ├── env.d.ts
│ ├── lib
│ │ └── form.tsx
│ └── pages
│ │ └── index.astro
├── tailwind.config.cjs
└── tsconfig.json
├── package.json
├── pnpm-lock.yaml
├── src
├── client
│ └── index.ts
├── index.ts
├── result.ts
├── server
│ ├── index.ts
│ ├── multipart-form.ts
│ ├── request.ts
│ ├── response.ts
│ └── result.ts
└── utils.ts
├── test
└── index.ts
└── tsconfig.json
/.eslintignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
--------------------------------------------------------------------------------
/.github/workflows/publish.yaml:
--------------------------------------------------------------------------------
1 | name: "Check and publish to NPM"
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | jobs:
8 | publish:
9 | name: Publish
10 | runs-on: ubuntu-latest
11 | if: github.event_name == 'push' && github.ref == 'refs/heads/main'
12 | steps:
13 | - uses: actions/checkout@v3
14 | - name: node
15 | uses: actions/setup-node@v3
16 | with:
17 | node-version: 18
18 | registry-url: https://registry.npmjs.org
19 | - name: publish
20 | env:
21 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
22 | run: |
23 | npm i -g pnpm
24 | pnpm install --no-frozen-lockfile
25 | pnpm build
26 | pnpm release
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /dist
3 | .DS_Store
4 | .env
5 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | /dist
3 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "trailingComma": "none",
4 | "pluginSearchDirs": ["."]
5 | }
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ### 0.4.1
4 |
5 | - [Fix] Proper types for `result.inputValues` for `action()`
6 |
7 | ### 0.4.0
8 |
9 | - [Breaking] Rename `handleFormSubmission()` to `action()`
10 | - [Breaking] Rename `result.redirect_location` to `result.redirectLocation` for return type of `submitForm()`
11 |
12 | ### 0.3.2
13 |
14 | - Remove unused code
15 |
16 | ### 0.3.1
17 |
18 | - Remove `parse-multipart-data` dependency
19 | - Remove Node dependencies
20 |
21 | ### 0.3.0
22 |
23 | - Enable CSRF protection by default
24 | - [Breaking] Remove `redirected` from `handleFormSubmission` result, add `redirectLocation`
25 | - [Breaking] `inputValues` in `handleFormSubmission` result omits file values
26 | - Make body parameter for `resolve` optional
27 |
28 | ### 0.2.3
29 |
30 | - Update README
31 |
32 | ### 0.2.2
33 |
34 | - [Fix] Fix package.json
35 |
36 | ### 0.2.1
37 |
38 | - [Fix] Proper types for `handleFormSubmission`
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Astro form actions
2 |
3 | Use progressive form enhancement and handle form submissions in Astro. This library only uses native Web APIs and can be used in any runtime.
4 |
5 | ```
6 | npm i astro-form-actions
7 | pnpm add astro-form-actions
8 | yarn add astro-form-actions
9 | ```
10 |
11 | **Documentation: https://github.com/pilcrowOnPaper/astro-form-actions/wiki**
12 |
13 | **Demo: https://astro-form-actions.vercel.app**
14 |
15 | > Need a library to parse your forms? Check out my other project [Adria](https://github.com/pilcrowOnPaper/adria)!
16 |
17 | ### Features
18 |
19 | - Simple
20 | - Type inference
21 | - Supports multipart form data
22 | - Framework agnostic
23 |
24 | ## Overview
25 |
26 | This library is made up of 2 parts: server side and client side.
27 |
28 | ### Server side
29 |
30 | `handleFormSubmission` will handle all POST requests to the page.
31 |
32 | ```ts
33 | // inside .astro page
34 | import {
35 | handleFormSubmission,
36 | reject,
37 | resolve,
38 | redirect
39 | } from "astro-form-actions";
40 |
41 | const { response, error, inputValues, body } = await handleFormSubmission(
42 | Astro,
43 | async (formData) => {
44 | const message = formData.get("message");
45 | if (typeof notes !== "string")
46 | return reject(400, {
47 | message: "bad input"
48 | });
49 | // do some stuff
50 | return resolve({
51 | success: true
52 | });
53 | }
54 | );
55 | if (response) return response;
56 | ```
57 |
58 | ### Client side
59 |
60 | You can use a regular HTML form:
61 |
62 | ```html
63 |
67 | ```
68 |
69 | Or, by using component frameworks like Solid (or just even vanilla JS), you can use `submitForm` to make the submission.
70 |
71 | ```tsx
72 | import { submitForm } from "astro-form-actions/client";
73 |
74 | export default () => {
75 | return (
76 |
93 | );
94 | };
95 | ```
96 |
97 | ## Other
98 |
99 | Parts of the library is from https://github.com/nachomazzara/parse-multipart-data.
100 |
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | # build output
2 | dist/
3 |
4 | # dependencies
5 | node_modules/
6 |
7 | # logs
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | pnpm-debug.log*
12 |
13 |
14 | # environment variables
15 | .env
16 | .env.production
17 |
18 | # macOS-specific files
19 | .DS_Store
20 |
21 | .vscode/
22 | .vercel/
--------------------------------------------------------------------------------
/demo/README.md:
--------------------------------------------------------------------------------
1 | # Astro form actions demo
--------------------------------------------------------------------------------
/demo/astro.config.mjs:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'astro/config';
2 |
3 | import tailwind from "@astrojs/tailwind";
4 | import solidJs from "@astrojs/solid-js";
5 | import vercel from "@astrojs/vercel/serverless";
6 |
7 | export default defineConfig({
8 | integrations: [tailwind(), solidJs()],
9 | output: "server",
10 | adapter: vercel()
11 | });
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "astro-form-actions",
3 | "type": "module",
4 | "version": "0.0.1",
5 | "private": true,
6 | "scripts": {
7 | "dev": "astro dev",
8 | "start": "astro dev",
9 | "build": "astro build",
10 | "preview": "astro preview",
11 | "astro": "astro"
12 | },
13 | "dependencies": {
14 | "@astrojs/solid-js": "^1.2.3",
15 | "@astrojs/tailwind": "^2.1.3",
16 | "@astrojs/vercel": "^2.4.0",
17 | "astro": "^1.9.2",
18 | "astro-form-actions": "0.4.1",
19 | "solid-js": "^1.6.9",
20 | "tailwindcss": "^3.2.4"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/demo/public/favicon.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/demo/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/demo/src/lib/form.tsx:
--------------------------------------------------------------------------------
1 | import { createSignal } from "solid-js";
2 | import { submitForm } from "astro-form-actions/client";
3 |
4 | type ErrorData = {
5 | message: string;
6 | };
7 |
8 | export default ({
9 | error,
10 | notes
11 | }: {
12 | error: ErrorData | null;
13 | notes: string;
14 | }) => {
15 | const [errorMessage, setErrorMessage] = createSignal(error?.message ?? null);
16 | return (
17 |
43 | );
44 | };
45 |
--------------------------------------------------------------------------------
/demo/src/pages/index.astro:
--------------------------------------------------------------------------------
1 | ---
2 | import { action, reject, resolve, redirect } from "astro-form-actions";
3 | import Form from "../lib/form";
4 |
5 | const { response, error, inputValues } = await action(
6 | Astro,
7 | async (formData) => {
8 | const notes = formData.get("notes")
9 | if (typeof notes !== "string")
10 | return reject(400, {
11 | message: "bad input"
12 | });
13 | if (notes === "invalid")
14 | return reject(400, {
15 | message: "invalid input"
16 | });
17 | if (notes === "redirect")
18 | return redirect(
19 | 302,
20 | "https://github.com/pilcrowOnPaper/astro-form-actions"
21 | );
22 | Astro.cookies.set("notes", encodeURI(notes), {
23 | path: "/",
24 | httpOnly: true
25 | });
26 | return resolve({});
27 | }
28 | );
29 | if (response) return response;
30 | const storedNotes = decodeURI(Astro.cookies.get("notes").value ?? "");
31 | const notes = inputValues.notes ?? storedNotes;
32 | ---
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | Astro form actions demo
41 |
42 |
43 | Astro form actions
44 | This form works without JavaScript as well.
45 | Notes
46 |
47 | Github repo
51 |
52 |
53 |
--------------------------------------------------------------------------------
/demo/tailwind.config.cjs:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
4 | theme: {
5 | extend: {},
6 | },
7 | plugins: [],
8 | }
9 |
--------------------------------------------------------------------------------
/demo/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "astro/tsconfigs/strict",
3 | "compilerOptions": {
4 | "jsx": "preserve",
5 | "jsxImportSource": "solid-js"
6 | }
7 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "astro-form-actions",
3 | "version": "0.4.1",
4 | "description": "Forms in Astro made easy",
5 | "main": "index.js",
6 | "types": "index.d.ts",
7 | "module": "index.js",
8 | "type": "module",
9 | "files": [
10 | "**/*"
11 | ],
12 | "scripts": {
13 | "build": "shx rm -rf ./dist/* && tsc && shx cp ./package.json ./dist && shx cp ./README.md ./dist",
14 | "release": "pnpm build && cd dist && pnpm install --no-frozen-lockfile && pnpm publish --no-git-checks --access public && cd ../",
15 | "test": "pnpm exec ts-node --esm -T test/index.ts"
16 | },
17 | "keywords": [],
18 | "repository": {
19 | "type": "git",
20 | "url": "",
21 | "directory": "/"
22 | },
23 | "author": "",
24 | "license": "MIT",
25 | "exports": {
26 | ".": "./index.js",
27 | "./client": "./client/index.js"
28 | },
29 | "typesVersions": {
30 | "*": {
31 | "client": [
32 | "client/index.d.ts"
33 | ]
34 | }
35 | },
36 | "devDependencies": {
37 | "@types/node": "^18.11.18",
38 | "astro": "^1.9.2",
39 | "prettier": "^2.8.3",
40 | "shx": "^0.3.4",
41 | "ts-node": "^10.9.1",
42 | "typescript": "^4.9.4"
43 | },
44 | "peerDependencies": {
45 | "astro": "1.x"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@types/node': ^18.11.18
5 | astro: ^1.9.2
6 | prettier: ^2.8.3
7 | shx: ^0.3.4
8 | ts-node: ^10.9.1
9 | typescript: ^4.9.4
10 |
11 | devDependencies:
12 | '@types/node': 18.11.18
13 | astro: 1.9.2_zfha7dvnw4nti6zkbsmhmn6xo4
14 | prettier: 2.8.3
15 | shx: 0.3.4
16 | ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq
17 | typescript: 4.9.4
18 |
19 | packages:
20 |
21 | /@ampproject/remapping/2.2.0:
22 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
23 | engines: {node: '>=6.0.0'}
24 | dependencies:
25 | '@jridgewell/gen-mapping': 0.1.1
26 | '@jridgewell/trace-mapping': 0.3.9
27 | dev: true
28 |
29 | /@astrojs/compiler/0.31.4:
30 | resolution: {integrity: sha512-6bBFeDTtPOn4jZaiD3p0f05MEGQL9pw2Zbfj546oFETNmjJFWO3nzHz6/m+P53calknCvyVzZ5YhoBLIvzn5iw==}
31 | dev: true
32 |
33 | /@astrojs/language-server/0.28.3:
34 | resolution: {integrity: sha512-fPovAX/X46eE2w03jNRMpQ7W9m2mAvNt4Ay65lD9wl1Z5vIQYxlg7Enp9qP225muTr4jSVB5QiLumFJmZMAaVA==}
35 | hasBin: true
36 | dependencies:
37 | '@vscode/emmet-helper': 2.8.6
38 | events: 3.3.0
39 | prettier: 2.8.3
40 | prettier-plugin-astro: 0.7.2
41 | source-map: 0.7.4
42 | vscode-css-languageservice: 6.2.1
43 | vscode-html-languageservice: 5.0.3
44 | vscode-languageserver: 8.0.2
45 | vscode-languageserver-protocol: 3.17.2
46 | vscode-languageserver-textdocument: 1.0.8
47 | vscode-languageserver-types: 3.17.2
48 | vscode-uri: 3.0.7
49 | dev: true
50 |
51 | /@astrojs/markdown-remark/1.2.0:
52 | resolution: {integrity: sha512-Cb+uhSuukyfERknfJ8K4iJLeKJaiZWi1BTwPS4fzw0bc9kGKe5VeTRzd2E25+vaMnRTk0tN/y6QfYEMMN3Q97g==}
53 | dependencies:
54 | '@astrojs/micromark-extension-mdx-jsx': 1.0.3
55 | '@astrojs/prism': 1.0.2
56 | acorn: 8.8.1
57 | acorn-jsx: 5.3.2_acorn@8.8.1
58 | github-slugger: 1.5.0
59 | hast-util-to-html: 8.0.4
60 | import-meta-resolve: 2.2.1
61 | mdast-util-from-markdown: 1.2.0
62 | mdast-util-mdx-expression: 1.3.1
63 | mdast-util-mdx-jsx: 1.2.0
64 | micromark-extension-mdx-expression: 1.0.3
65 | micromark-extension-mdx-md: 1.0.0
66 | micromark-util-combine-extensions: 1.0.0
67 | rehype-raw: 6.1.1
68 | rehype-stringify: 9.0.3
69 | remark-gfm: 3.0.1
70 | remark-parse: 10.0.1
71 | remark-rehype: 10.1.0
72 | remark-smartypants: 2.0.0
73 | shiki: 0.11.1
74 | unified: 10.1.2
75 | unist-util-map: 3.1.2
76 | unist-util-visit: 4.1.1
77 | vfile: 5.3.6
78 | transitivePeerDependencies:
79 | - supports-color
80 | dev: true
81 |
82 | /@astrojs/micromark-extension-mdx-jsx/1.0.3:
83 | resolution: {integrity: sha512-O15+i2DGG0qb1R/1SYbFXgOKDGbYdV8iJMtuboVb1S9YFQfMOJxaCMco0bhXQI7PmZcQ4pZWIjT5oZ64dXUtRA==}
84 | dependencies:
85 | '@types/acorn': 4.0.6
86 | estree-util-is-identifier-name: 2.0.1
87 | micromark-factory-mdx-expression: 1.0.6
88 | micromark-factory-space: 1.0.0
89 | micromark-util-character: 1.1.0
90 | micromark-util-symbol: 1.0.1
91 | micromark-util-types: 1.0.2
92 | uvu: 0.5.6
93 | vfile-message: 3.1.3
94 | dev: true
95 |
96 | /@astrojs/prism/1.0.2:
97 | resolution: {integrity: sha512-o3cUVoAuALDqdN5puNlsN2eO4Yi1kDh68YO8V7o6U4Ts+J/mMayzlJ7JsgYAmob0xrf/XnADVgu8khfMv/w3uA==}
98 | engines: {node: ^14.18.0 || >=16.12.0}
99 | dependencies:
100 | prismjs: 1.29.0
101 | dev: true
102 |
103 | /@astrojs/telemetry/1.0.1:
104 | resolution: {integrity: sha512-SJVfZHp00f8VZsT1fsx1+6acJGUNt/84xZytV5znPzzNE8RXjlE0rv03llgTsEeUHYZc6uJah91jNojS7RldFg==}
105 | engines: {node: ^14.18.0 || >=16.12.0}
106 | dependencies:
107 | ci-info: 3.7.1
108 | debug: 4.3.4
109 | dlv: 1.1.3
110 | dset: 3.1.2
111 | is-docker: 3.0.0
112 | is-wsl: 2.2.0
113 | node-fetch: 3.3.0
114 | which-pm-runs: 1.1.0
115 | transitivePeerDependencies:
116 | - supports-color
117 | dev: true
118 |
119 | /@astrojs/webapi/1.1.1:
120 | resolution: {integrity: sha512-yeUvP27PoiBK/WCxyQzC4HLYZo4Hg6dzRd/dTsL50WGlAQVCwWcqzVJrIZKvzNDNaW/fIXutZTmdj6nec0PIGg==}
121 | dependencies:
122 | global-agent: 3.0.0
123 | node-fetch: 3.3.0
124 | dev: true
125 |
126 | /@babel/code-frame/7.18.6:
127 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
128 | engines: {node: '>=6.9.0'}
129 | dependencies:
130 | '@babel/highlight': 7.18.6
131 | dev: true
132 |
133 | /@babel/compat-data/7.20.10:
134 | resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==}
135 | engines: {node: '>=6.9.0'}
136 | dev: true
137 |
138 | /@babel/core/7.20.12:
139 | resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
140 | engines: {node: '>=6.9.0'}
141 | dependencies:
142 | '@ampproject/remapping': 2.2.0
143 | '@babel/code-frame': 7.18.6
144 | '@babel/generator': 7.20.7
145 | '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
146 | '@babel/helper-module-transforms': 7.20.11
147 | '@babel/helpers': 7.20.7
148 | '@babel/parser': 7.20.7
149 | '@babel/template': 7.20.7
150 | '@babel/traverse': 7.20.12
151 | '@babel/types': 7.20.7
152 | convert-source-map: 1.9.0
153 | debug: 4.3.4
154 | gensync: 1.0.0-beta.2
155 | json5: 2.2.3
156 | semver: 6.3.0
157 | transitivePeerDependencies:
158 | - supports-color
159 | dev: true
160 |
161 | /@babel/generator/7.20.7:
162 | resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==}
163 | engines: {node: '>=6.9.0'}
164 | dependencies:
165 | '@babel/types': 7.20.7
166 | '@jridgewell/gen-mapping': 0.3.2
167 | jsesc: 2.5.2
168 | dev: true
169 |
170 | /@babel/helper-annotate-as-pure/7.18.6:
171 | resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
172 | engines: {node: '>=6.9.0'}
173 | dependencies:
174 | '@babel/types': 7.20.7
175 | dev: true
176 |
177 | /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12:
178 | resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
179 | engines: {node: '>=6.9.0'}
180 | peerDependencies:
181 | '@babel/core': ^7.0.0
182 | dependencies:
183 | '@babel/compat-data': 7.20.10
184 | '@babel/core': 7.20.12
185 | '@babel/helper-validator-option': 7.18.6
186 | browserslist: 4.21.4
187 | lru-cache: 5.1.1
188 | semver: 6.3.0
189 | dev: true
190 |
191 | /@babel/helper-environment-visitor/7.18.9:
192 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
193 | engines: {node: '>=6.9.0'}
194 | dev: true
195 |
196 | /@babel/helper-function-name/7.19.0:
197 | resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
198 | engines: {node: '>=6.9.0'}
199 | dependencies:
200 | '@babel/template': 7.20.7
201 | '@babel/types': 7.20.7
202 | dev: true
203 |
204 | /@babel/helper-hoist-variables/7.18.6:
205 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
206 | engines: {node: '>=6.9.0'}
207 | dependencies:
208 | '@babel/types': 7.20.7
209 | dev: true
210 |
211 | /@babel/helper-module-imports/7.18.6:
212 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
213 | engines: {node: '>=6.9.0'}
214 | dependencies:
215 | '@babel/types': 7.20.7
216 | dev: true
217 |
218 | /@babel/helper-module-transforms/7.20.11:
219 | resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==}
220 | engines: {node: '>=6.9.0'}
221 | dependencies:
222 | '@babel/helper-environment-visitor': 7.18.9
223 | '@babel/helper-module-imports': 7.18.6
224 | '@babel/helper-simple-access': 7.20.2
225 | '@babel/helper-split-export-declaration': 7.18.6
226 | '@babel/helper-validator-identifier': 7.19.1
227 | '@babel/template': 7.20.7
228 | '@babel/traverse': 7.20.12
229 | '@babel/types': 7.20.7
230 | transitivePeerDependencies:
231 | - supports-color
232 | dev: true
233 |
234 | /@babel/helper-plugin-utils/7.20.2:
235 | resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
236 | engines: {node: '>=6.9.0'}
237 | dev: true
238 |
239 | /@babel/helper-simple-access/7.20.2:
240 | resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
241 | engines: {node: '>=6.9.0'}
242 | dependencies:
243 | '@babel/types': 7.20.7
244 | dev: true
245 |
246 | /@babel/helper-split-export-declaration/7.18.6:
247 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
248 | engines: {node: '>=6.9.0'}
249 | dependencies:
250 | '@babel/types': 7.20.7
251 | dev: true
252 |
253 | /@babel/helper-string-parser/7.19.4:
254 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
255 | engines: {node: '>=6.9.0'}
256 | dev: true
257 |
258 | /@babel/helper-validator-identifier/7.19.1:
259 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
260 | engines: {node: '>=6.9.0'}
261 | dev: true
262 |
263 | /@babel/helper-validator-option/7.18.6:
264 | resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
265 | engines: {node: '>=6.9.0'}
266 | dev: true
267 |
268 | /@babel/helpers/7.20.7:
269 | resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==}
270 | engines: {node: '>=6.9.0'}
271 | dependencies:
272 | '@babel/template': 7.20.7
273 | '@babel/traverse': 7.20.12
274 | '@babel/types': 7.20.7
275 | transitivePeerDependencies:
276 | - supports-color
277 | dev: true
278 |
279 | /@babel/highlight/7.18.6:
280 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
281 | engines: {node: '>=6.9.0'}
282 | dependencies:
283 | '@babel/helper-validator-identifier': 7.19.1
284 | chalk: 2.4.2
285 | js-tokens: 4.0.0
286 | dev: true
287 |
288 | /@babel/parser/7.20.7:
289 | resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
290 | engines: {node: '>=6.0.0'}
291 | hasBin: true
292 | dependencies:
293 | '@babel/types': 7.20.7
294 | dev: true
295 |
296 | /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12:
297 | resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
298 | engines: {node: '>=6.9.0'}
299 | peerDependencies:
300 | '@babel/core': ^7.0.0-0
301 | dependencies:
302 | '@babel/core': 7.20.12
303 | '@babel/helper-plugin-utils': 7.20.2
304 | dev: true
305 |
306 | /@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.12:
307 | resolution: {integrity: sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==}
308 | engines: {node: '>=6.9.0'}
309 | peerDependencies:
310 | '@babel/core': ^7.0.0-0
311 | dependencies:
312 | '@babel/core': 7.20.12
313 | '@babel/helper-annotate-as-pure': 7.18.6
314 | '@babel/helper-module-imports': 7.18.6
315 | '@babel/helper-plugin-utils': 7.20.2
316 | '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12
317 | '@babel/types': 7.20.7
318 | dev: true
319 |
320 | /@babel/template/7.20.7:
321 | resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
322 | engines: {node: '>=6.9.0'}
323 | dependencies:
324 | '@babel/code-frame': 7.18.6
325 | '@babel/parser': 7.20.7
326 | '@babel/types': 7.20.7
327 | dev: true
328 |
329 | /@babel/traverse/7.20.12:
330 | resolution: {integrity: sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==}
331 | engines: {node: '>=6.9.0'}
332 | dependencies:
333 | '@babel/code-frame': 7.18.6
334 | '@babel/generator': 7.20.7
335 | '@babel/helper-environment-visitor': 7.18.9
336 | '@babel/helper-function-name': 7.19.0
337 | '@babel/helper-hoist-variables': 7.18.6
338 | '@babel/helper-split-export-declaration': 7.18.6
339 | '@babel/parser': 7.20.7
340 | '@babel/types': 7.20.7
341 | debug: 4.3.4
342 | globals: 11.12.0
343 | transitivePeerDependencies:
344 | - supports-color
345 | dev: true
346 |
347 | /@babel/types/7.20.7:
348 | resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
349 | engines: {node: '>=6.9.0'}
350 | dependencies:
351 | '@babel/helper-string-parser': 7.19.4
352 | '@babel/helper-validator-identifier': 7.19.1
353 | to-fast-properties: 2.0.0
354 | dev: true
355 |
356 | /@cspotcode/source-map-support/0.8.1:
357 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
358 | engines: {node: '>=12'}
359 | dependencies:
360 | '@jridgewell/trace-mapping': 0.3.9
361 | dev: true
362 |
363 | /@emmetio/abbreviation/2.2.3:
364 | resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==}
365 | dependencies:
366 | '@emmetio/scanner': 1.0.0
367 | dev: true
368 |
369 | /@emmetio/css-abbreviation/2.1.4:
370 | resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==}
371 | dependencies:
372 | '@emmetio/scanner': 1.0.0
373 | dev: true
374 |
375 | /@emmetio/scanner/1.0.0:
376 | resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==}
377 | dev: true
378 |
379 | /@esbuild/android-arm/0.15.18:
380 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
381 | engines: {node: '>=12'}
382 | cpu: [arm]
383 | os: [android]
384 | requiresBuild: true
385 | dev: true
386 | optional: true
387 |
388 | /@esbuild/linux-loong64/0.15.18:
389 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
390 | engines: {node: '>=12'}
391 | cpu: [loong64]
392 | os: [linux]
393 | requiresBuild: true
394 | dev: true
395 | optional: true
396 |
397 | /@jridgewell/gen-mapping/0.1.1:
398 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
399 | engines: {node: '>=6.0.0'}
400 | dependencies:
401 | '@jridgewell/set-array': 1.1.2
402 | '@jridgewell/sourcemap-codec': 1.4.14
403 | dev: true
404 |
405 | /@jridgewell/gen-mapping/0.3.2:
406 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
407 | engines: {node: '>=6.0.0'}
408 | dependencies:
409 | '@jridgewell/set-array': 1.1.2
410 | '@jridgewell/sourcemap-codec': 1.4.14
411 | '@jridgewell/trace-mapping': 0.3.9
412 | dev: true
413 |
414 | /@jridgewell/resolve-uri/3.1.0:
415 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
416 | engines: {node: '>=6.0.0'}
417 | dev: true
418 |
419 | /@jridgewell/set-array/1.1.2:
420 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
421 | engines: {node: '>=6.0.0'}
422 | dev: true
423 |
424 | /@jridgewell/sourcemap-codec/1.4.14:
425 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
426 | dev: true
427 |
428 | /@jridgewell/trace-mapping/0.3.9:
429 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
430 | dependencies:
431 | '@jridgewell/resolve-uri': 3.1.0
432 | '@jridgewell/sourcemap-codec': 1.4.14
433 | dev: true
434 |
435 | /@ljharb/has-package-exports-patterns/0.0.2:
436 | resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==}
437 | dev: true
438 |
439 | /@nodelib/fs.scandir/2.1.5:
440 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
441 | engines: {node: '>= 8'}
442 | dependencies:
443 | '@nodelib/fs.stat': 2.0.5
444 | run-parallel: 1.2.0
445 | dev: true
446 |
447 | /@nodelib/fs.stat/2.0.5:
448 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
449 | engines: {node: '>= 8'}
450 | dev: true
451 |
452 | /@nodelib/fs.walk/1.2.8:
453 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
454 | engines: {node: '>= 8'}
455 | dependencies:
456 | '@nodelib/fs.scandir': 2.1.5
457 | fastq: 1.15.0
458 | dev: true
459 |
460 | /@pkgr/utils/2.3.1:
461 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==}
462 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
463 | dependencies:
464 | cross-spawn: 7.0.3
465 | is-glob: 4.0.3
466 | open: 8.4.0
467 | picocolors: 1.0.0
468 | tiny-glob: 0.2.9
469 | tslib: 2.4.1
470 | dev: true
471 |
472 | /@polka/url/1.0.0-next.21:
473 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
474 | dev: true
475 |
476 | /@proload/core/0.3.3:
477 | resolution: {integrity: sha512-7dAFWsIK84C90AMl24+N/ProHKm4iw0akcnoKjRvbfHifJZBLhaDsDus1QJmhG12lXj4e/uB/8mB/0aduCW+NQ==}
478 | dependencies:
479 | deepmerge: 4.2.2
480 | escalade: 3.1.1
481 | dev: true
482 |
483 | /@proload/plugin-tsm/0.2.1_@proload+core@0.3.3:
484 | resolution: {integrity: sha512-Ex1sL2BxU+g8MHdAdq9SZKz+pU34o8Zcl9PHWo2WaG9hrnlZme607PU6gnpoAYsDBpHX327+eu60wWUk+d/b+A==}
485 | peerDependencies:
486 | '@proload/core': ^0.3.2
487 | dependencies:
488 | '@proload/core': 0.3.3
489 | tsm: 2.3.0
490 | dev: true
491 |
492 | /@tsconfig/node10/1.0.9:
493 | resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
494 | dev: true
495 |
496 | /@tsconfig/node12/1.0.11:
497 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
498 | dev: true
499 |
500 | /@tsconfig/node14/1.0.3:
501 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
502 | dev: true
503 |
504 | /@tsconfig/node16/1.0.3:
505 | resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
506 | dev: true
507 |
508 | /@types/acorn/4.0.6:
509 | resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
510 | dependencies:
511 | '@types/estree': 1.0.0
512 | dev: true
513 |
514 | /@types/babel__core/7.1.20:
515 | resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==}
516 | dependencies:
517 | '@babel/parser': 7.20.7
518 | '@babel/types': 7.20.7
519 | '@types/babel__generator': 7.6.4
520 | '@types/babel__template': 7.4.1
521 | '@types/babel__traverse': 7.18.3
522 | dev: true
523 |
524 | /@types/babel__generator/7.6.4:
525 | resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
526 | dependencies:
527 | '@babel/types': 7.20.7
528 | dev: true
529 |
530 | /@types/babel__template/7.4.1:
531 | resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
532 | dependencies:
533 | '@babel/parser': 7.20.7
534 | '@babel/types': 7.20.7
535 | dev: true
536 |
537 | /@types/babel__traverse/7.18.3:
538 | resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==}
539 | dependencies:
540 | '@babel/types': 7.20.7
541 | dev: true
542 |
543 | /@types/debug/4.1.7:
544 | resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
545 | dependencies:
546 | '@types/ms': 0.7.31
547 | dev: true
548 |
549 | /@types/estree-jsx/0.0.1:
550 | resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==}
551 | dependencies:
552 | '@types/estree': 1.0.0
553 | dev: true
554 |
555 | /@types/estree-jsx/1.0.0:
556 | resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==}
557 | dependencies:
558 | '@types/estree': 1.0.0
559 | dev: true
560 |
561 | /@types/estree/1.0.0:
562 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
563 | dev: true
564 |
565 | /@types/hast/2.3.4:
566 | resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==}
567 | dependencies:
568 | '@types/unist': 2.0.6
569 | dev: true
570 |
571 | /@types/html-escaper/3.0.0:
572 | resolution: {integrity: sha512-OcJcvP3Yk8mjYwf/IdXZtTE1tb/u0WF0qa29ER07ZHCYUBZXSN29Z1mBS+/96+kNMGTFUAbSz9X+pHmHpZrTCw==}
573 | dev: true
574 |
575 | /@types/json5/0.0.30:
576 | resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==}
577 | dev: true
578 |
579 | /@types/mdast/3.0.10:
580 | resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
581 | dependencies:
582 | '@types/unist': 2.0.6
583 | dev: true
584 |
585 | /@types/ms/0.7.31:
586 | resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
587 | dev: true
588 |
589 | /@types/nlcst/1.0.0:
590 | resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==}
591 | dependencies:
592 | '@types/unist': 2.0.6
593 | dev: true
594 |
595 | /@types/node/18.11.18:
596 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
597 | dev: true
598 |
599 | /@types/parse5/6.0.3:
600 | resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
601 | dev: true
602 |
603 | /@types/resolve/1.20.2:
604 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
605 | dev: true
606 |
607 | /@types/unist/2.0.6:
608 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
609 | dev: true
610 |
611 | /@types/yargs-parser/21.0.0:
612 | resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
613 | dev: true
614 |
615 | /@vscode/emmet-helper/2.8.6:
616 | resolution: {integrity: sha512-IIB8jbiKy37zN8bAIHx59YmnIelY78CGHtThnibD/d3tQOKRY83bYVi9blwmZVUZh6l9nfkYH3tvReaiNxY9EQ==}
617 | dependencies:
618 | emmet: 2.3.6
619 | jsonc-parser: 2.3.1
620 | vscode-languageserver-textdocument: 1.0.8
621 | vscode-languageserver-types: 3.17.2
622 | vscode-uri: 2.1.2
623 | dev: true
624 |
625 | /@vscode/l10n/0.0.10:
626 | resolution: {integrity: sha512-E1OCmDcDWa0Ya7vtSjp/XfHFGqYJfh+YPC1RkATU71fTac+j1JjCcB3qwSzmlKAighx2WxhLlfhS0RwAN++PFQ==}
627 | dev: true
628 |
629 | /acorn-jsx/5.3.2_acorn@8.8.1:
630 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
631 | peerDependencies:
632 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
633 | dependencies:
634 | acorn: 8.8.1
635 | dev: true
636 |
637 | /acorn-walk/8.2.0:
638 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
639 | engines: {node: '>=0.4.0'}
640 | dev: true
641 |
642 | /acorn/8.8.1:
643 | resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
644 | engines: {node: '>=0.4.0'}
645 | hasBin: true
646 | dev: true
647 |
648 | /ansi-align/3.0.1:
649 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
650 | dependencies:
651 | string-width: 4.2.3
652 | dev: true
653 |
654 | /ansi-regex/5.0.1:
655 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
656 | engines: {node: '>=8'}
657 | dev: true
658 |
659 | /ansi-regex/6.0.1:
660 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
661 | engines: {node: '>=12'}
662 | dev: true
663 |
664 | /ansi-styles/3.2.1:
665 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
666 | engines: {node: '>=4'}
667 | dependencies:
668 | color-convert: 1.9.3
669 | dev: true
670 |
671 | /ansi-styles/4.3.0:
672 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
673 | engines: {node: '>=8'}
674 | dependencies:
675 | color-convert: 2.0.1
676 | dev: true
677 |
678 | /ansi-styles/6.2.1:
679 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
680 | engines: {node: '>=12'}
681 | dev: true
682 |
683 | /arg/4.1.3:
684 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
685 | dev: true
686 |
687 | /argparse/1.0.10:
688 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
689 | dependencies:
690 | sprintf-js: 1.0.3
691 | dev: true
692 |
693 | /array-iterate/2.0.1:
694 | resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
695 | dev: true
696 |
697 | /ast-types/0.14.2:
698 | resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==}
699 | engines: {node: '>=4'}
700 | dependencies:
701 | tslib: 2.4.1
702 | dev: true
703 |
704 | /astro/1.9.2_zfha7dvnw4nti6zkbsmhmn6xo4:
705 | resolution: {integrity: sha512-L+Ma0eR0Aa6QZg7RF0lEs+106Ye1/zukvtq3KtsYIogAojltlwllwU9X5CwMBzFwA55NxpNp4gSRh5US/xb+8Q==}
706 | engines: {node: ^14.18.0 || >=16.12.0, npm: '>=6.14.0'}
707 | hasBin: true
708 | dependencies:
709 | '@astrojs/compiler': 0.31.4
710 | '@astrojs/language-server': 0.28.3
711 | '@astrojs/markdown-remark': 1.2.0
712 | '@astrojs/telemetry': 1.0.1
713 | '@astrojs/webapi': 1.1.1
714 | '@babel/core': 7.20.12
715 | '@babel/generator': 7.20.7
716 | '@babel/parser': 7.20.7
717 | '@babel/plugin-transform-react-jsx': 7.20.7_@babel+core@7.20.12
718 | '@babel/traverse': 7.20.12
719 | '@babel/types': 7.20.7
720 | '@proload/core': 0.3.3
721 | '@proload/plugin-tsm': 0.2.1_@proload+core@0.3.3
722 | '@types/babel__core': 7.1.20
723 | '@types/html-escaper': 3.0.0
724 | '@types/yargs-parser': 21.0.0
725 | acorn: 8.8.1
726 | boxen: 6.2.1
727 | ci-info: 3.7.1
728 | common-ancestor-path: 1.0.1
729 | cookie: 0.5.0
730 | debug: 4.3.4
731 | deepmerge-ts: 4.2.2
732 | devalue: 4.2.2
733 | diff: 5.1.0
734 | es-module-lexer: 1.1.0
735 | estree-walker: 3.0.2
736 | execa: 6.1.0
737 | fast-glob: 3.2.12
738 | github-slugger: 2.0.0
739 | gray-matter: 4.0.3
740 | html-entities: 2.3.3
741 | html-escaper: 3.0.3
742 | import-meta-resolve: 2.2.1
743 | kleur: 4.1.5
744 | magic-string: 0.27.0
745 | mime: 3.0.0
746 | ora: 6.1.2
747 | path-browserify: 1.0.1
748 | path-to-regexp: 6.2.1
749 | postcss: 8.4.21
750 | postcss-load-config: 3.1.4_aesdjsunmf4wiehhujt67my7tu
751 | preferred-pm: 3.0.3
752 | prompts: 2.4.2
753 | recast: 0.20.5
754 | rehype: 12.0.1
755 | resolve: 1.22.1
756 | rollup: 2.79.1
757 | semver: 7.3.8
758 | shiki: 0.11.1
759 | sirv: 2.0.2
760 | slash: 4.0.0
761 | string-width: 5.1.2
762 | strip-ansi: 7.0.1
763 | supports-esm: 1.0.0
764 | tsconfig-resolver: 3.0.1
765 | typescript: 4.9.4
766 | unist-util-visit: 4.1.1
767 | vfile: 5.3.6
768 | vite: 3.2.5_@types+node@18.11.18
769 | vitefu: 0.2.4_vite@3.2.5
770 | yargs-parser: 21.1.1
771 | zod: 3.20.2
772 | transitivePeerDependencies:
773 | - '@types/node'
774 | - less
775 | - sass
776 | - stylus
777 | - sugarss
778 | - supports-color
779 | - terser
780 | - ts-node
781 | dev: true
782 |
783 | /bail/2.0.2:
784 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
785 | dev: true
786 |
787 | /balanced-match/1.0.2:
788 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
789 | dev: true
790 |
791 | /base64-js/1.5.1:
792 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
793 | dev: true
794 |
795 | /bl/5.1.0:
796 | resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
797 | dependencies:
798 | buffer: 6.0.3
799 | inherits: 2.0.4
800 | readable-stream: 3.6.0
801 | dev: true
802 |
803 | /boolean/3.2.0:
804 | resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
805 | dev: true
806 |
807 | /boxen/6.2.1:
808 | resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
809 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
810 | dependencies:
811 | ansi-align: 3.0.1
812 | camelcase: 6.3.0
813 | chalk: 4.1.2
814 | cli-boxes: 3.0.0
815 | string-width: 5.1.2
816 | type-fest: 2.19.0
817 | widest-line: 4.0.1
818 | wrap-ansi: 8.0.1
819 | dev: true
820 |
821 | /brace-expansion/1.1.11:
822 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
823 | dependencies:
824 | balanced-match: 1.0.2
825 | concat-map: 0.0.1
826 | dev: true
827 |
828 | /braces/3.0.2:
829 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
830 | engines: {node: '>=8'}
831 | dependencies:
832 | fill-range: 7.0.1
833 | dev: true
834 |
835 | /browserslist/4.21.4:
836 | resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
837 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
838 | hasBin: true
839 | dependencies:
840 | caniuse-lite: 1.0.30001445
841 | electron-to-chromium: 1.4.284
842 | node-releases: 2.0.8
843 | update-browserslist-db: 1.0.10_browserslist@4.21.4
844 | dev: true
845 |
846 | /buffer/6.0.3:
847 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
848 | dependencies:
849 | base64-js: 1.5.1
850 | ieee754: 1.2.1
851 | dev: true
852 |
853 | /camelcase/6.3.0:
854 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
855 | engines: {node: '>=10'}
856 | dev: true
857 |
858 | /caniuse-lite/1.0.30001445:
859 | resolution: {integrity: sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==}
860 | dev: true
861 |
862 | /ccount/2.0.1:
863 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
864 | dev: true
865 |
866 | /chalk/2.4.2:
867 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
868 | engines: {node: '>=4'}
869 | dependencies:
870 | ansi-styles: 3.2.1
871 | escape-string-regexp: 1.0.5
872 | supports-color: 5.5.0
873 | dev: true
874 |
875 | /chalk/4.1.2:
876 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
877 | engines: {node: '>=10'}
878 | dependencies:
879 | ansi-styles: 4.3.0
880 | supports-color: 7.2.0
881 | dev: true
882 |
883 | /chalk/5.2.0:
884 | resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
885 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
886 | dev: true
887 |
888 | /character-entities-html4/2.1.0:
889 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
890 | dev: true
891 |
892 | /character-entities-legacy/3.0.0:
893 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
894 | dev: true
895 |
896 | /character-entities/2.0.2:
897 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
898 | dev: true
899 |
900 | /character-reference-invalid/2.0.1:
901 | resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
902 | dev: true
903 |
904 | /ci-info/3.7.1:
905 | resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==}
906 | engines: {node: '>=8'}
907 | dev: true
908 |
909 | /cli-boxes/3.0.0:
910 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
911 | engines: {node: '>=10'}
912 | dev: true
913 |
914 | /cli-cursor/4.0.0:
915 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
916 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
917 | dependencies:
918 | restore-cursor: 4.0.0
919 | dev: true
920 |
921 | /cli-spinners/2.7.0:
922 | resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
923 | engines: {node: '>=6'}
924 | dev: true
925 |
926 | /clone/1.0.4:
927 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
928 | engines: {node: '>=0.8'}
929 | dev: true
930 |
931 | /color-convert/1.9.3:
932 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
933 | dependencies:
934 | color-name: 1.1.3
935 | dev: true
936 |
937 | /color-convert/2.0.1:
938 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
939 | engines: {node: '>=7.0.0'}
940 | dependencies:
941 | color-name: 1.1.4
942 | dev: true
943 |
944 | /color-name/1.1.3:
945 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
946 | dev: true
947 |
948 | /color-name/1.1.4:
949 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
950 | dev: true
951 |
952 | /comma-separated-tokens/2.0.3:
953 | resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
954 | dev: true
955 |
956 | /common-ancestor-path/1.0.1:
957 | resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
958 | dev: true
959 |
960 | /concat-map/0.0.1:
961 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
962 | dev: true
963 |
964 | /convert-source-map/1.9.0:
965 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
966 | dev: true
967 |
968 | /cookie/0.5.0:
969 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
970 | engines: {node: '>= 0.6'}
971 | dev: true
972 |
973 | /create-require/1.1.1:
974 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
975 | dev: true
976 |
977 | /cross-spawn/7.0.3:
978 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
979 | engines: {node: '>= 8'}
980 | dependencies:
981 | path-key: 3.1.1
982 | shebang-command: 2.0.0
983 | which: 2.0.2
984 | dev: true
985 |
986 | /data-uri-to-buffer/4.0.1:
987 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
988 | engines: {node: '>= 12'}
989 | dev: true
990 |
991 | /debug/4.3.4:
992 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
993 | engines: {node: '>=6.0'}
994 | peerDependencies:
995 | supports-color: '*'
996 | peerDependenciesMeta:
997 | supports-color:
998 | optional: true
999 | dependencies:
1000 | ms: 2.1.2
1001 | dev: true
1002 |
1003 | /decode-named-character-reference/1.0.2:
1004 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
1005 | dependencies:
1006 | character-entities: 2.0.2
1007 | dev: true
1008 |
1009 | /deepmerge-ts/4.2.2:
1010 | resolution: {integrity: sha512-Ka3Kb21tiWjvQvS9U+1Dx+aqFAHsdTnMdYptLTmC2VAmDFMugWMY1e15aTODstipmCun8iNuqeSfcx6rsUUk0Q==}
1011 | engines: {node: '>=12.4.0'}
1012 | dev: true
1013 |
1014 | /deepmerge/4.2.2:
1015 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
1016 | engines: {node: '>=0.10.0'}
1017 | dev: true
1018 |
1019 | /defaults/1.0.4:
1020 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
1021 | dependencies:
1022 | clone: 1.0.4
1023 | dev: true
1024 |
1025 | /define-lazy-prop/2.0.0:
1026 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
1027 | engines: {node: '>=8'}
1028 | dev: true
1029 |
1030 | /define-properties/1.1.4:
1031 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
1032 | engines: {node: '>= 0.4'}
1033 | dependencies:
1034 | has-property-descriptors: 1.0.0
1035 | object-keys: 1.1.1
1036 | dev: true
1037 |
1038 | /dequal/2.0.3:
1039 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1040 | engines: {node: '>=6'}
1041 | dev: true
1042 |
1043 | /detect-node/2.1.0:
1044 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
1045 | dev: true
1046 |
1047 | /devalue/4.2.2:
1048 | resolution: {integrity: sha512-Pkwd8qrI9O20VJ14fBNHu+on99toTNZFbgWRpZbC0zbDXpnE2WHYcrC1fHhMsF/3Ee+2yaW7vEujAT7fCYgqrA==}
1049 | dev: true
1050 |
1051 | /diff/4.0.2:
1052 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
1053 | engines: {node: '>=0.3.1'}
1054 | dev: true
1055 |
1056 | /diff/5.1.0:
1057 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
1058 | engines: {node: '>=0.3.1'}
1059 | dev: true
1060 |
1061 | /dlv/1.1.3:
1062 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
1063 | dev: true
1064 |
1065 | /dset/3.1.2:
1066 | resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==}
1067 | engines: {node: '>=4'}
1068 | dev: true
1069 |
1070 | /eastasianwidth/0.2.0:
1071 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
1072 | dev: true
1073 |
1074 | /electron-to-chromium/1.4.284:
1075 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
1076 | dev: true
1077 |
1078 | /emmet/2.3.6:
1079 | resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==}
1080 | dependencies:
1081 | '@emmetio/abbreviation': 2.2.3
1082 | '@emmetio/css-abbreviation': 2.1.4
1083 | dev: true
1084 |
1085 | /emoji-regex/8.0.0:
1086 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1087 | dev: true
1088 |
1089 | /emoji-regex/9.2.2:
1090 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1091 | dev: true
1092 |
1093 | /es-module-lexer/1.1.0:
1094 | resolution: {integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==}
1095 | dev: true
1096 |
1097 | /es6-error/4.1.1:
1098 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
1099 | dev: true
1100 |
1101 | /esbuild-android-64/0.15.18:
1102 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
1103 | engines: {node: '>=12'}
1104 | cpu: [x64]
1105 | os: [android]
1106 | requiresBuild: true
1107 | dev: true
1108 | optional: true
1109 |
1110 | /esbuild-android-arm64/0.15.18:
1111 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
1112 | engines: {node: '>=12'}
1113 | cpu: [arm64]
1114 | os: [android]
1115 | requiresBuild: true
1116 | dev: true
1117 | optional: true
1118 |
1119 | /esbuild-darwin-64/0.15.18:
1120 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
1121 | engines: {node: '>=12'}
1122 | cpu: [x64]
1123 | os: [darwin]
1124 | requiresBuild: true
1125 | dev: true
1126 | optional: true
1127 |
1128 | /esbuild-darwin-arm64/0.15.18:
1129 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
1130 | engines: {node: '>=12'}
1131 | cpu: [arm64]
1132 | os: [darwin]
1133 | requiresBuild: true
1134 | dev: true
1135 | optional: true
1136 |
1137 | /esbuild-freebsd-64/0.15.18:
1138 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
1139 | engines: {node: '>=12'}
1140 | cpu: [x64]
1141 | os: [freebsd]
1142 | requiresBuild: true
1143 | dev: true
1144 | optional: true
1145 |
1146 | /esbuild-freebsd-arm64/0.15.18:
1147 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
1148 | engines: {node: '>=12'}
1149 | cpu: [arm64]
1150 | os: [freebsd]
1151 | requiresBuild: true
1152 | dev: true
1153 | optional: true
1154 |
1155 | /esbuild-linux-32/0.15.18:
1156 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
1157 | engines: {node: '>=12'}
1158 | cpu: [ia32]
1159 | os: [linux]
1160 | requiresBuild: true
1161 | dev: true
1162 | optional: true
1163 |
1164 | /esbuild-linux-64/0.15.18:
1165 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
1166 | engines: {node: '>=12'}
1167 | cpu: [x64]
1168 | os: [linux]
1169 | requiresBuild: true
1170 | dev: true
1171 | optional: true
1172 |
1173 | /esbuild-linux-arm/0.15.18:
1174 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
1175 | engines: {node: '>=12'}
1176 | cpu: [arm]
1177 | os: [linux]
1178 | requiresBuild: true
1179 | dev: true
1180 | optional: true
1181 |
1182 | /esbuild-linux-arm64/0.15.18:
1183 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
1184 | engines: {node: '>=12'}
1185 | cpu: [arm64]
1186 | os: [linux]
1187 | requiresBuild: true
1188 | dev: true
1189 | optional: true
1190 |
1191 | /esbuild-linux-mips64le/0.15.18:
1192 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
1193 | engines: {node: '>=12'}
1194 | cpu: [mips64el]
1195 | os: [linux]
1196 | requiresBuild: true
1197 | dev: true
1198 | optional: true
1199 |
1200 | /esbuild-linux-ppc64le/0.15.18:
1201 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
1202 | engines: {node: '>=12'}
1203 | cpu: [ppc64]
1204 | os: [linux]
1205 | requiresBuild: true
1206 | dev: true
1207 | optional: true
1208 |
1209 | /esbuild-linux-riscv64/0.15.18:
1210 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
1211 | engines: {node: '>=12'}
1212 | cpu: [riscv64]
1213 | os: [linux]
1214 | requiresBuild: true
1215 | dev: true
1216 | optional: true
1217 |
1218 | /esbuild-linux-s390x/0.15.18:
1219 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
1220 | engines: {node: '>=12'}
1221 | cpu: [s390x]
1222 | os: [linux]
1223 | requiresBuild: true
1224 | dev: true
1225 | optional: true
1226 |
1227 | /esbuild-netbsd-64/0.15.18:
1228 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
1229 | engines: {node: '>=12'}
1230 | cpu: [x64]
1231 | os: [netbsd]
1232 | requiresBuild: true
1233 | dev: true
1234 | optional: true
1235 |
1236 | /esbuild-openbsd-64/0.15.18:
1237 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
1238 | engines: {node: '>=12'}
1239 | cpu: [x64]
1240 | os: [openbsd]
1241 | requiresBuild: true
1242 | dev: true
1243 | optional: true
1244 |
1245 | /esbuild-sunos-64/0.15.18:
1246 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
1247 | engines: {node: '>=12'}
1248 | cpu: [x64]
1249 | os: [sunos]
1250 | requiresBuild: true
1251 | dev: true
1252 | optional: true
1253 |
1254 | /esbuild-windows-32/0.15.18:
1255 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
1256 | engines: {node: '>=12'}
1257 | cpu: [ia32]
1258 | os: [win32]
1259 | requiresBuild: true
1260 | dev: true
1261 | optional: true
1262 |
1263 | /esbuild-windows-64/0.15.18:
1264 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
1265 | engines: {node: '>=12'}
1266 | cpu: [x64]
1267 | os: [win32]
1268 | requiresBuild: true
1269 | dev: true
1270 | optional: true
1271 |
1272 | /esbuild-windows-arm64/0.15.18:
1273 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
1274 | engines: {node: '>=12'}
1275 | cpu: [arm64]
1276 | os: [win32]
1277 | requiresBuild: true
1278 | dev: true
1279 | optional: true
1280 |
1281 | /esbuild/0.15.18:
1282 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
1283 | engines: {node: '>=12'}
1284 | hasBin: true
1285 | requiresBuild: true
1286 | optionalDependencies:
1287 | '@esbuild/android-arm': 0.15.18
1288 | '@esbuild/linux-loong64': 0.15.18
1289 | esbuild-android-64: 0.15.18
1290 | esbuild-android-arm64: 0.15.18
1291 | esbuild-darwin-64: 0.15.18
1292 | esbuild-darwin-arm64: 0.15.18
1293 | esbuild-freebsd-64: 0.15.18
1294 | esbuild-freebsd-arm64: 0.15.18
1295 | esbuild-linux-32: 0.15.18
1296 | esbuild-linux-64: 0.15.18
1297 | esbuild-linux-arm: 0.15.18
1298 | esbuild-linux-arm64: 0.15.18
1299 | esbuild-linux-mips64le: 0.15.18
1300 | esbuild-linux-ppc64le: 0.15.18
1301 | esbuild-linux-riscv64: 0.15.18
1302 | esbuild-linux-s390x: 0.15.18
1303 | esbuild-netbsd-64: 0.15.18
1304 | esbuild-openbsd-64: 0.15.18
1305 | esbuild-sunos-64: 0.15.18
1306 | esbuild-windows-32: 0.15.18
1307 | esbuild-windows-64: 0.15.18
1308 | esbuild-windows-arm64: 0.15.18
1309 | dev: true
1310 |
1311 | /escalade/3.1.1:
1312 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1313 | engines: {node: '>=6'}
1314 | dev: true
1315 |
1316 | /escape-string-regexp/1.0.5:
1317 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
1318 | engines: {node: '>=0.8.0'}
1319 | dev: true
1320 |
1321 | /escape-string-regexp/4.0.0:
1322 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1323 | engines: {node: '>=10'}
1324 | dev: true
1325 |
1326 | /escape-string-regexp/5.0.0:
1327 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
1328 | engines: {node: '>=12'}
1329 | dev: true
1330 |
1331 | /esprima/4.0.1:
1332 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
1333 | engines: {node: '>=4'}
1334 | hasBin: true
1335 | dev: true
1336 |
1337 | /estree-util-is-identifier-name/2.0.1:
1338 | resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==}
1339 | dev: true
1340 |
1341 | /estree-util-visit/1.2.0:
1342 | resolution: {integrity: sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==}
1343 | dependencies:
1344 | '@types/estree-jsx': 1.0.0
1345 | '@types/unist': 2.0.6
1346 | dev: true
1347 |
1348 | /estree-walker/3.0.2:
1349 | resolution: {integrity: sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==}
1350 | dev: true
1351 |
1352 | /events/3.3.0:
1353 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
1354 | engines: {node: '>=0.8.x'}
1355 | dev: true
1356 |
1357 | /execa/6.1.0:
1358 | resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
1359 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1360 | dependencies:
1361 | cross-spawn: 7.0.3
1362 | get-stream: 6.0.1
1363 | human-signals: 3.0.1
1364 | is-stream: 3.0.0
1365 | merge-stream: 2.0.0
1366 | npm-run-path: 5.1.0
1367 | onetime: 6.0.0
1368 | signal-exit: 3.0.7
1369 | strip-final-newline: 3.0.0
1370 | dev: true
1371 |
1372 | /extend-shallow/2.0.1:
1373 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
1374 | engines: {node: '>=0.10.0'}
1375 | dependencies:
1376 | is-extendable: 0.1.1
1377 | dev: true
1378 |
1379 | /extend/3.0.2:
1380 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
1381 | dev: true
1382 |
1383 | /fast-glob/3.2.12:
1384 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
1385 | engines: {node: '>=8.6.0'}
1386 | dependencies:
1387 | '@nodelib/fs.stat': 2.0.5
1388 | '@nodelib/fs.walk': 1.2.8
1389 | glob-parent: 5.1.2
1390 | merge2: 1.4.1
1391 | micromatch: 4.0.5
1392 | dev: true
1393 |
1394 | /fastq/1.15.0:
1395 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1396 | dependencies:
1397 | reusify: 1.0.4
1398 | dev: true
1399 |
1400 | /fetch-blob/3.2.0:
1401 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
1402 | engines: {node: ^12.20 || >= 14.13}
1403 | dependencies:
1404 | node-domexception: 1.0.0
1405 | web-streams-polyfill: 3.2.1
1406 | dev: true
1407 |
1408 | /fill-range/7.0.1:
1409 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1410 | engines: {node: '>=8'}
1411 | dependencies:
1412 | to-regex-range: 5.0.1
1413 | dev: true
1414 |
1415 | /find-up/4.1.0:
1416 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
1417 | engines: {node: '>=8'}
1418 | dependencies:
1419 | locate-path: 5.0.0
1420 | path-exists: 4.0.0
1421 | dev: true
1422 |
1423 | /find-up/5.0.0:
1424 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1425 | engines: {node: '>=10'}
1426 | dependencies:
1427 | locate-path: 6.0.0
1428 | path-exists: 4.0.0
1429 | dev: true
1430 |
1431 | /find-yarn-workspace-root2/1.2.16:
1432 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
1433 | dependencies:
1434 | micromatch: 4.0.5
1435 | pkg-dir: 4.2.0
1436 | dev: true
1437 |
1438 | /formdata-polyfill/4.0.10:
1439 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
1440 | engines: {node: '>=12.20.0'}
1441 | dependencies:
1442 | fetch-blob: 3.2.0
1443 | dev: true
1444 |
1445 | /fs.realpath/1.0.0:
1446 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1447 | dev: true
1448 |
1449 | /fsevents/2.3.2:
1450 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1451 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1452 | os: [darwin]
1453 | requiresBuild: true
1454 | dev: true
1455 | optional: true
1456 |
1457 | /function-bind/1.1.1:
1458 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1459 | dev: true
1460 |
1461 | /gensync/1.0.0-beta.2:
1462 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
1463 | engines: {node: '>=6.9.0'}
1464 | dev: true
1465 |
1466 | /get-intrinsic/1.1.3:
1467 | resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
1468 | dependencies:
1469 | function-bind: 1.1.1
1470 | has: 1.0.3
1471 | has-symbols: 1.0.3
1472 | dev: true
1473 |
1474 | /get-stream/6.0.1:
1475 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
1476 | engines: {node: '>=10'}
1477 | dev: true
1478 |
1479 | /github-slugger/1.5.0:
1480 | resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
1481 | dev: true
1482 |
1483 | /github-slugger/2.0.0:
1484 | resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
1485 | dev: true
1486 |
1487 | /glob-parent/5.1.2:
1488 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1489 | engines: {node: '>= 6'}
1490 | dependencies:
1491 | is-glob: 4.0.3
1492 | dev: true
1493 |
1494 | /glob/7.2.3:
1495 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1496 | dependencies:
1497 | fs.realpath: 1.0.0
1498 | inflight: 1.0.6
1499 | inherits: 2.0.4
1500 | minimatch: 3.1.2
1501 | once: 1.4.0
1502 | path-is-absolute: 1.0.1
1503 | dev: true
1504 |
1505 | /global-agent/3.0.0:
1506 | resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
1507 | engines: {node: '>=10.0'}
1508 | dependencies:
1509 | boolean: 3.2.0
1510 | es6-error: 4.1.1
1511 | matcher: 3.0.0
1512 | roarr: 2.15.4
1513 | semver: 7.3.8
1514 | serialize-error: 7.0.1
1515 | dev: true
1516 |
1517 | /globals/11.12.0:
1518 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
1519 | engines: {node: '>=4'}
1520 | dev: true
1521 |
1522 | /globalthis/1.0.3:
1523 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1524 | engines: {node: '>= 0.4'}
1525 | dependencies:
1526 | define-properties: 1.1.4
1527 | dev: true
1528 |
1529 | /globalyzer/0.1.0:
1530 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
1531 | dev: true
1532 |
1533 | /globrex/0.1.2:
1534 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
1535 | dev: true
1536 |
1537 | /graceful-fs/4.2.10:
1538 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
1539 | dev: true
1540 |
1541 | /gray-matter/4.0.3:
1542 | resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
1543 | engines: {node: '>=6.0'}
1544 | dependencies:
1545 | js-yaml: 3.14.1
1546 | kind-of: 6.0.3
1547 | section-matter: 1.0.0
1548 | strip-bom-string: 1.0.0
1549 | dev: true
1550 |
1551 | /has-flag/3.0.0:
1552 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
1553 | engines: {node: '>=4'}
1554 | dev: true
1555 |
1556 | /has-flag/4.0.0:
1557 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1558 | engines: {node: '>=8'}
1559 | dev: true
1560 |
1561 | /has-package-exports/1.3.0:
1562 | resolution: {integrity: sha512-e9OeXPQnmPhYoJ63lXC4wWe34TxEGZDZ3OQX9XRqp2VwsfLl3bQBy7VehLnd34g3ef8CmYlBLGqEMKXuz8YazQ==}
1563 | dependencies:
1564 | '@ljharb/has-package-exports-patterns': 0.0.2
1565 | dev: true
1566 |
1567 | /has-property-descriptors/1.0.0:
1568 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
1569 | dependencies:
1570 | get-intrinsic: 1.1.3
1571 | dev: true
1572 |
1573 | /has-symbols/1.0.3:
1574 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1575 | engines: {node: '>= 0.4'}
1576 | dev: true
1577 |
1578 | /has/1.0.3:
1579 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1580 | engines: {node: '>= 0.4.0'}
1581 | dependencies:
1582 | function-bind: 1.1.1
1583 | dev: true
1584 |
1585 | /hast-util-from-parse5/7.1.1:
1586 | resolution: {integrity: sha512-R6PoNcUs89ZxLJmMWsVbwSWuz95/9OriyQZ3e2ybwqGsRXzhA6gv49rgGmQvLbZuSNDv9fCg7vV7gXUsvtUFaA==}
1587 | dependencies:
1588 | '@types/hast': 2.3.4
1589 | '@types/unist': 2.0.6
1590 | hastscript: 7.2.0
1591 | property-information: 6.2.0
1592 | vfile: 5.3.6
1593 | vfile-location: 4.0.1
1594 | web-namespaces: 2.0.1
1595 | dev: true
1596 |
1597 | /hast-util-parse-selector/3.1.1:
1598 | resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==}
1599 | dependencies:
1600 | '@types/hast': 2.3.4
1601 | dev: true
1602 |
1603 | /hast-util-raw/7.2.3:
1604 | resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==}
1605 | dependencies:
1606 | '@types/hast': 2.3.4
1607 | '@types/parse5': 6.0.3
1608 | hast-util-from-parse5: 7.1.1
1609 | hast-util-to-parse5: 7.1.0
1610 | html-void-elements: 2.0.1
1611 | parse5: 6.0.1
1612 | unist-util-position: 4.0.3
1613 | unist-util-visit: 4.1.1
1614 | vfile: 5.3.6
1615 | web-namespaces: 2.0.1
1616 | zwitch: 2.0.4
1617 | dev: true
1618 |
1619 | /hast-util-to-html/8.0.4:
1620 | resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==}
1621 | dependencies:
1622 | '@types/hast': 2.3.4
1623 | '@types/unist': 2.0.6
1624 | ccount: 2.0.1
1625 | comma-separated-tokens: 2.0.3
1626 | hast-util-raw: 7.2.3
1627 | hast-util-whitespace: 2.0.1
1628 | html-void-elements: 2.0.1
1629 | property-information: 6.2.0
1630 | space-separated-tokens: 2.0.2
1631 | stringify-entities: 4.0.3
1632 | zwitch: 2.0.4
1633 | dev: true
1634 |
1635 | /hast-util-to-parse5/7.1.0:
1636 | resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==}
1637 | dependencies:
1638 | '@types/hast': 2.3.4
1639 | comma-separated-tokens: 2.0.3
1640 | property-information: 6.2.0
1641 | space-separated-tokens: 2.0.2
1642 | web-namespaces: 2.0.1
1643 | zwitch: 2.0.4
1644 | dev: true
1645 |
1646 | /hast-util-whitespace/2.0.1:
1647 | resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==}
1648 | dev: true
1649 |
1650 | /hastscript/7.2.0:
1651 | resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==}
1652 | dependencies:
1653 | '@types/hast': 2.3.4
1654 | comma-separated-tokens: 2.0.3
1655 | hast-util-parse-selector: 3.1.1
1656 | property-information: 6.2.0
1657 | space-separated-tokens: 2.0.2
1658 | dev: true
1659 |
1660 | /html-entities/2.3.3:
1661 | resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
1662 | dev: true
1663 |
1664 | /html-escaper/3.0.3:
1665 | resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
1666 | dev: true
1667 |
1668 | /html-void-elements/2.0.1:
1669 | resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
1670 | dev: true
1671 |
1672 | /human-signals/3.0.1:
1673 | resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
1674 | engines: {node: '>=12.20.0'}
1675 | dev: true
1676 |
1677 | /ieee754/1.2.1:
1678 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
1679 | dev: true
1680 |
1681 | /import-meta-resolve/2.2.1:
1682 | resolution: {integrity: sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==}
1683 | dev: true
1684 |
1685 | /inflight/1.0.6:
1686 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1687 | dependencies:
1688 | once: 1.4.0
1689 | wrappy: 1.0.2
1690 | dev: true
1691 |
1692 | /inherits/2.0.4:
1693 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1694 | dev: true
1695 |
1696 | /interpret/1.4.0:
1697 | resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
1698 | engines: {node: '>= 0.10'}
1699 | dev: true
1700 |
1701 | /is-alphabetical/2.0.1:
1702 | resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
1703 | dev: true
1704 |
1705 | /is-alphanumerical/2.0.1:
1706 | resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
1707 | dependencies:
1708 | is-alphabetical: 2.0.1
1709 | is-decimal: 2.0.1
1710 | dev: true
1711 |
1712 | /is-buffer/2.0.5:
1713 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
1714 | engines: {node: '>=4'}
1715 | dev: true
1716 |
1717 | /is-core-module/2.11.0:
1718 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
1719 | dependencies:
1720 | has: 1.0.3
1721 | dev: true
1722 |
1723 | /is-decimal/2.0.1:
1724 | resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
1725 | dev: true
1726 |
1727 | /is-docker/2.2.1:
1728 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
1729 | engines: {node: '>=8'}
1730 | hasBin: true
1731 | dev: true
1732 |
1733 | /is-docker/3.0.0:
1734 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
1735 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1736 | hasBin: true
1737 | dev: true
1738 |
1739 | /is-extendable/0.1.1:
1740 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
1741 | engines: {node: '>=0.10.0'}
1742 | dev: true
1743 |
1744 | /is-extglob/2.1.1:
1745 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1746 | engines: {node: '>=0.10.0'}
1747 | dev: true
1748 |
1749 | /is-fullwidth-code-point/3.0.0:
1750 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1751 | engines: {node: '>=8'}
1752 | dev: true
1753 |
1754 | /is-glob/4.0.3:
1755 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1756 | engines: {node: '>=0.10.0'}
1757 | dependencies:
1758 | is-extglob: 2.1.1
1759 | dev: true
1760 |
1761 | /is-hexadecimal/2.0.1:
1762 | resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
1763 | dev: true
1764 |
1765 | /is-interactive/2.0.0:
1766 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
1767 | engines: {node: '>=12'}
1768 | dev: true
1769 |
1770 | /is-number/7.0.0:
1771 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1772 | engines: {node: '>=0.12.0'}
1773 | dev: true
1774 |
1775 | /is-plain-obj/4.1.0:
1776 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
1777 | engines: {node: '>=12'}
1778 | dev: true
1779 |
1780 | /is-stream/3.0.0:
1781 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
1782 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1783 | dev: true
1784 |
1785 | /is-unicode-supported/1.3.0:
1786 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
1787 | engines: {node: '>=12'}
1788 | dev: true
1789 |
1790 | /is-wsl/2.2.0:
1791 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
1792 | engines: {node: '>=8'}
1793 | dependencies:
1794 | is-docker: 2.2.1
1795 | dev: true
1796 |
1797 | /isexe/2.0.0:
1798 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1799 | dev: true
1800 |
1801 | /js-tokens/4.0.0:
1802 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1803 | dev: true
1804 |
1805 | /js-yaml/3.14.1:
1806 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
1807 | hasBin: true
1808 | dependencies:
1809 | argparse: 1.0.10
1810 | esprima: 4.0.1
1811 | dev: true
1812 |
1813 | /jsesc/2.5.2:
1814 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
1815 | engines: {node: '>=4'}
1816 | hasBin: true
1817 | dev: true
1818 |
1819 | /json-stringify-safe/5.0.1:
1820 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
1821 | dev: true
1822 |
1823 | /json5/2.2.3:
1824 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1825 | engines: {node: '>=6'}
1826 | hasBin: true
1827 | dev: true
1828 |
1829 | /jsonc-parser/2.3.1:
1830 | resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==}
1831 | dev: true
1832 |
1833 | /jsonc-parser/3.2.0:
1834 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
1835 | dev: true
1836 |
1837 | /kind-of/6.0.3:
1838 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
1839 | engines: {node: '>=0.10.0'}
1840 | dev: true
1841 |
1842 | /kleur/3.0.3:
1843 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
1844 | engines: {node: '>=6'}
1845 | dev: true
1846 |
1847 | /kleur/4.1.5:
1848 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1849 | engines: {node: '>=6'}
1850 | dev: true
1851 |
1852 | /lilconfig/2.0.6:
1853 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
1854 | engines: {node: '>=10'}
1855 | dev: true
1856 |
1857 | /load-yaml-file/0.2.0:
1858 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
1859 | engines: {node: '>=6'}
1860 | dependencies:
1861 | graceful-fs: 4.2.10
1862 | js-yaml: 3.14.1
1863 | pify: 4.0.1
1864 | strip-bom: 3.0.0
1865 | dev: true
1866 |
1867 | /locate-path/5.0.0:
1868 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
1869 | engines: {node: '>=8'}
1870 | dependencies:
1871 | p-locate: 4.1.0
1872 | dev: true
1873 |
1874 | /locate-path/6.0.0:
1875 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1876 | engines: {node: '>=10'}
1877 | dependencies:
1878 | p-locate: 5.0.0
1879 | dev: true
1880 |
1881 | /log-symbols/5.1.0:
1882 | resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}
1883 | engines: {node: '>=12'}
1884 | dependencies:
1885 | chalk: 5.2.0
1886 | is-unicode-supported: 1.3.0
1887 | dev: true
1888 |
1889 | /longest-streak/3.1.0:
1890 | resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
1891 | dev: true
1892 |
1893 | /lru-cache/5.1.1:
1894 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1895 | dependencies:
1896 | yallist: 3.1.1
1897 | dev: true
1898 |
1899 | /lru-cache/6.0.0:
1900 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1901 | engines: {node: '>=10'}
1902 | dependencies:
1903 | yallist: 4.0.0
1904 | dev: true
1905 |
1906 | /magic-string/0.27.0:
1907 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
1908 | engines: {node: '>=12'}
1909 | dependencies:
1910 | '@jridgewell/sourcemap-codec': 1.4.14
1911 | dev: true
1912 |
1913 | /make-error/1.3.6:
1914 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
1915 | dev: true
1916 |
1917 | /markdown-table/3.0.3:
1918 | resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
1919 | dev: true
1920 |
1921 | /matcher/3.0.0:
1922 | resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
1923 | engines: {node: '>=10'}
1924 | dependencies:
1925 | escape-string-regexp: 4.0.0
1926 | dev: true
1927 |
1928 | /mdast-util-definitions/5.1.1:
1929 | resolution: {integrity: sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==}
1930 | dependencies:
1931 | '@types/mdast': 3.0.10
1932 | '@types/unist': 2.0.6
1933 | unist-util-visit: 4.1.1
1934 | dev: true
1935 |
1936 | /mdast-util-find-and-replace/2.2.1:
1937 | resolution: {integrity: sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==}
1938 | dependencies:
1939 | escape-string-regexp: 5.0.0
1940 | unist-util-is: 5.1.1
1941 | unist-util-visit-parents: 5.1.1
1942 | dev: true
1943 |
1944 | /mdast-util-from-markdown/1.2.0:
1945 | resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==}
1946 | dependencies:
1947 | '@types/mdast': 3.0.10
1948 | '@types/unist': 2.0.6
1949 | decode-named-character-reference: 1.0.2
1950 | mdast-util-to-string: 3.1.0
1951 | micromark: 3.1.0
1952 | micromark-util-decode-numeric-character-reference: 1.0.0
1953 | micromark-util-decode-string: 1.0.2
1954 | micromark-util-normalize-identifier: 1.0.0
1955 | micromark-util-symbol: 1.0.1
1956 | micromark-util-types: 1.0.2
1957 | unist-util-stringify-position: 3.0.2
1958 | uvu: 0.5.6
1959 | transitivePeerDependencies:
1960 | - supports-color
1961 | dev: true
1962 |
1963 | /mdast-util-gfm-autolink-literal/1.0.2:
1964 | resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==}
1965 | dependencies:
1966 | '@types/mdast': 3.0.10
1967 | ccount: 2.0.1
1968 | mdast-util-find-and-replace: 2.2.1
1969 | micromark-util-character: 1.1.0
1970 | dev: true
1971 |
1972 | /mdast-util-gfm-footnote/1.0.1:
1973 | resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==}
1974 | dependencies:
1975 | '@types/mdast': 3.0.10
1976 | mdast-util-to-markdown: 1.5.0
1977 | micromark-util-normalize-identifier: 1.0.0
1978 | dev: true
1979 |
1980 | /mdast-util-gfm-strikethrough/1.0.2:
1981 | resolution: {integrity: sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==}
1982 | dependencies:
1983 | '@types/mdast': 3.0.10
1984 | mdast-util-to-markdown: 1.5.0
1985 | dev: true
1986 |
1987 | /mdast-util-gfm-table/1.0.6:
1988 | resolution: {integrity: sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==}
1989 | dependencies:
1990 | '@types/mdast': 3.0.10
1991 | markdown-table: 3.0.3
1992 | mdast-util-from-markdown: 1.2.0
1993 | mdast-util-to-markdown: 1.5.0
1994 | transitivePeerDependencies:
1995 | - supports-color
1996 | dev: true
1997 |
1998 | /mdast-util-gfm-task-list-item/1.0.1:
1999 | resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==}
2000 | dependencies:
2001 | '@types/mdast': 3.0.10
2002 | mdast-util-to-markdown: 1.5.0
2003 | dev: true
2004 |
2005 | /mdast-util-gfm/2.0.1:
2006 | resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==}
2007 | dependencies:
2008 | mdast-util-from-markdown: 1.2.0
2009 | mdast-util-gfm-autolink-literal: 1.0.2
2010 | mdast-util-gfm-footnote: 1.0.1
2011 | mdast-util-gfm-strikethrough: 1.0.2
2012 | mdast-util-gfm-table: 1.0.6
2013 | mdast-util-gfm-task-list-item: 1.0.1
2014 | mdast-util-to-markdown: 1.5.0
2015 | transitivePeerDependencies:
2016 | - supports-color
2017 | dev: true
2018 |
2019 | /mdast-util-mdx-expression/1.3.1:
2020 | resolution: {integrity: sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==}
2021 | dependencies:
2022 | '@types/estree-jsx': 1.0.0
2023 | '@types/hast': 2.3.4
2024 | '@types/mdast': 3.0.10
2025 | mdast-util-from-markdown: 1.2.0
2026 | mdast-util-to-markdown: 1.5.0
2027 | transitivePeerDependencies:
2028 | - supports-color
2029 | dev: true
2030 |
2031 | /mdast-util-mdx-jsx/1.2.0:
2032 | resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==}
2033 | dependencies:
2034 | '@types/estree-jsx': 0.0.1
2035 | '@types/mdast': 3.0.10
2036 | mdast-util-to-markdown: 1.5.0
2037 | parse-entities: 4.0.0
2038 | stringify-entities: 4.0.3
2039 | unist-util-remove-position: 4.0.1
2040 | unist-util-stringify-position: 3.0.2
2041 | vfile-message: 3.1.3
2042 | dev: true
2043 |
2044 | /mdast-util-phrasing/3.0.0:
2045 | resolution: {integrity: sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg==}
2046 | dependencies:
2047 | '@types/mdast': 3.0.10
2048 | unist-util-is: 5.1.1
2049 | dev: true
2050 |
2051 | /mdast-util-to-hast/12.2.5:
2052 | resolution: {integrity: sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ==}
2053 | dependencies:
2054 | '@types/hast': 2.3.4
2055 | '@types/mdast': 3.0.10
2056 | mdast-util-definitions: 5.1.1
2057 | micromark-util-sanitize-uri: 1.1.0
2058 | trim-lines: 3.0.1
2059 | unist-builder: 3.0.0
2060 | unist-util-generated: 2.0.0
2061 | unist-util-position: 4.0.3
2062 | unist-util-visit: 4.1.1
2063 | dev: true
2064 |
2065 | /mdast-util-to-markdown/1.5.0:
2066 | resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==}
2067 | dependencies:
2068 | '@types/mdast': 3.0.10
2069 | '@types/unist': 2.0.6
2070 | longest-streak: 3.1.0
2071 | mdast-util-phrasing: 3.0.0
2072 | mdast-util-to-string: 3.1.0
2073 | micromark-util-decode-string: 1.0.2
2074 | unist-util-visit: 4.1.1
2075 | zwitch: 2.0.4
2076 | dev: true
2077 |
2078 | /mdast-util-to-string/3.1.0:
2079 | resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==}
2080 | dev: true
2081 |
2082 | /merge-stream/2.0.0:
2083 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2084 | dev: true
2085 |
2086 | /merge2/1.4.1:
2087 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2088 | engines: {node: '>= 8'}
2089 | dev: true
2090 |
2091 | /micromark-core-commonmark/1.0.6:
2092 | resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==}
2093 | dependencies:
2094 | decode-named-character-reference: 1.0.2
2095 | micromark-factory-destination: 1.0.0
2096 | micromark-factory-label: 1.0.2
2097 | micromark-factory-space: 1.0.0
2098 | micromark-factory-title: 1.0.2
2099 | micromark-factory-whitespace: 1.0.0
2100 | micromark-util-character: 1.1.0
2101 | micromark-util-chunked: 1.0.0
2102 | micromark-util-classify-character: 1.0.0
2103 | micromark-util-html-tag-name: 1.1.0
2104 | micromark-util-normalize-identifier: 1.0.0
2105 | micromark-util-resolve-all: 1.0.0
2106 | micromark-util-subtokenize: 1.0.2
2107 | micromark-util-symbol: 1.0.1
2108 | micromark-util-types: 1.0.2
2109 | uvu: 0.5.6
2110 | dev: true
2111 |
2112 | /micromark-extension-gfm-autolink-literal/1.0.3:
2113 | resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==}
2114 | dependencies:
2115 | micromark-util-character: 1.1.0
2116 | micromark-util-sanitize-uri: 1.1.0
2117 | micromark-util-symbol: 1.0.1
2118 | micromark-util-types: 1.0.2
2119 | uvu: 0.5.6
2120 | dev: true
2121 |
2122 | /micromark-extension-gfm-footnote/1.0.4:
2123 | resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==}
2124 | dependencies:
2125 | micromark-core-commonmark: 1.0.6
2126 | micromark-factory-space: 1.0.0
2127 | micromark-util-character: 1.1.0
2128 | micromark-util-normalize-identifier: 1.0.0
2129 | micromark-util-sanitize-uri: 1.1.0
2130 | micromark-util-symbol: 1.0.1
2131 | micromark-util-types: 1.0.2
2132 | uvu: 0.5.6
2133 | dev: true
2134 |
2135 | /micromark-extension-gfm-strikethrough/1.0.4:
2136 | resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==}
2137 | dependencies:
2138 | micromark-util-chunked: 1.0.0
2139 | micromark-util-classify-character: 1.0.0
2140 | micromark-util-resolve-all: 1.0.0
2141 | micromark-util-symbol: 1.0.1
2142 | micromark-util-types: 1.0.2
2143 | uvu: 0.5.6
2144 | dev: true
2145 |
2146 | /micromark-extension-gfm-table/1.0.5:
2147 | resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==}
2148 | dependencies:
2149 | micromark-factory-space: 1.0.0
2150 | micromark-util-character: 1.1.0
2151 | micromark-util-symbol: 1.0.1
2152 | micromark-util-types: 1.0.2
2153 | uvu: 0.5.6
2154 | dev: true
2155 |
2156 | /micromark-extension-gfm-tagfilter/1.0.1:
2157 | resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==}
2158 | dependencies:
2159 | micromark-util-types: 1.0.2
2160 | dev: true
2161 |
2162 | /micromark-extension-gfm-task-list-item/1.0.3:
2163 | resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==}
2164 | dependencies:
2165 | micromark-factory-space: 1.0.0
2166 | micromark-util-character: 1.1.0
2167 | micromark-util-symbol: 1.0.1
2168 | micromark-util-types: 1.0.2
2169 | uvu: 0.5.6
2170 | dev: true
2171 |
2172 | /micromark-extension-gfm/2.0.1:
2173 | resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==}
2174 | dependencies:
2175 | micromark-extension-gfm-autolink-literal: 1.0.3
2176 | micromark-extension-gfm-footnote: 1.0.4
2177 | micromark-extension-gfm-strikethrough: 1.0.4
2178 | micromark-extension-gfm-table: 1.0.5
2179 | micromark-extension-gfm-tagfilter: 1.0.1
2180 | micromark-extension-gfm-task-list-item: 1.0.3
2181 | micromark-util-combine-extensions: 1.0.0
2182 | micromark-util-types: 1.0.2
2183 | dev: true
2184 |
2185 | /micromark-extension-mdx-expression/1.0.3:
2186 | resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==}
2187 | dependencies:
2188 | micromark-factory-mdx-expression: 1.0.6
2189 | micromark-factory-space: 1.0.0
2190 | micromark-util-character: 1.1.0
2191 | micromark-util-events-to-acorn: 1.2.0
2192 | micromark-util-symbol: 1.0.1
2193 | micromark-util-types: 1.0.2
2194 | uvu: 0.5.6
2195 | dev: true
2196 |
2197 | /micromark-extension-mdx-md/1.0.0:
2198 | resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==}
2199 | dependencies:
2200 | micromark-util-types: 1.0.2
2201 | dev: true
2202 |
2203 | /micromark-factory-destination/1.0.0:
2204 | resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==}
2205 | dependencies:
2206 | micromark-util-character: 1.1.0
2207 | micromark-util-symbol: 1.0.1
2208 | micromark-util-types: 1.0.2
2209 | dev: true
2210 |
2211 | /micromark-factory-label/1.0.2:
2212 | resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==}
2213 | dependencies:
2214 | micromark-util-character: 1.1.0
2215 | micromark-util-symbol: 1.0.1
2216 | micromark-util-types: 1.0.2
2217 | uvu: 0.5.6
2218 | dev: true
2219 |
2220 | /micromark-factory-mdx-expression/1.0.6:
2221 | resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==}
2222 | dependencies:
2223 | micromark-factory-space: 1.0.0
2224 | micromark-util-character: 1.1.0
2225 | micromark-util-events-to-acorn: 1.2.0
2226 | micromark-util-symbol: 1.0.1
2227 | micromark-util-types: 1.0.2
2228 | unist-util-position-from-estree: 1.1.1
2229 | uvu: 0.5.6
2230 | vfile-message: 3.1.3
2231 | dev: true
2232 |
2233 | /micromark-factory-space/1.0.0:
2234 | resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==}
2235 | dependencies:
2236 | micromark-util-character: 1.1.0
2237 | micromark-util-types: 1.0.2
2238 | dev: true
2239 |
2240 | /micromark-factory-title/1.0.2:
2241 | resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==}
2242 | dependencies:
2243 | micromark-factory-space: 1.0.0
2244 | micromark-util-character: 1.1.0
2245 | micromark-util-symbol: 1.0.1
2246 | micromark-util-types: 1.0.2
2247 | uvu: 0.5.6
2248 | dev: true
2249 |
2250 | /micromark-factory-whitespace/1.0.0:
2251 | resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==}
2252 | dependencies:
2253 | micromark-factory-space: 1.0.0
2254 | micromark-util-character: 1.1.0
2255 | micromark-util-symbol: 1.0.1
2256 | micromark-util-types: 1.0.2
2257 | dev: true
2258 |
2259 | /micromark-util-character/1.1.0:
2260 | resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==}
2261 | dependencies:
2262 | micromark-util-symbol: 1.0.1
2263 | micromark-util-types: 1.0.2
2264 | dev: true
2265 |
2266 | /micromark-util-chunked/1.0.0:
2267 | resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==}
2268 | dependencies:
2269 | micromark-util-symbol: 1.0.1
2270 | dev: true
2271 |
2272 | /micromark-util-classify-character/1.0.0:
2273 | resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==}
2274 | dependencies:
2275 | micromark-util-character: 1.1.0
2276 | micromark-util-symbol: 1.0.1
2277 | micromark-util-types: 1.0.2
2278 | dev: true
2279 |
2280 | /micromark-util-combine-extensions/1.0.0:
2281 | resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==}
2282 | dependencies:
2283 | micromark-util-chunked: 1.0.0
2284 | micromark-util-types: 1.0.2
2285 | dev: true
2286 |
2287 | /micromark-util-decode-numeric-character-reference/1.0.0:
2288 | resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==}
2289 | dependencies:
2290 | micromark-util-symbol: 1.0.1
2291 | dev: true
2292 |
2293 | /micromark-util-decode-string/1.0.2:
2294 | resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==}
2295 | dependencies:
2296 | decode-named-character-reference: 1.0.2
2297 | micromark-util-character: 1.1.0
2298 | micromark-util-decode-numeric-character-reference: 1.0.0
2299 | micromark-util-symbol: 1.0.1
2300 | dev: true
2301 |
2302 | /micromark-util-encode/1.0.1:
2303 | resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==}
2304 | dev: true
2305 |
2306 | /micromark-util-events-to-acorn/1.2.0:
2307 | resolution: {integrity: sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==}
2308 | dependencies:
2309 | '@types/acorn': 4.0.6
2310 | '@types/estree': 1.0.0
2311 | estree-util-visit: 1.2.0
2312 | micromark-util-types: 1.0.2
2313 | uvu: 0.5.6
2314 | vfile-location: 4.0.1
2315 | vfile-message: 3.1.3
2316 | dev: true
2317 |
2318 | /micromark-util-html-tag-name/1.1.0:
2319 | resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==}
2320 | dev: true
2321 |
2322 | /micromark-util-normalize-identifier/1.0.0:
2323 | resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==}
2324 | dependencies:
2325 | micromark-util-symbol: 1.0.1
2326 | dev: true
2327 |
2328 | /micromark-util-resolve-all/1.0.0:
2329 | resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==}
2330 | dependencies:
2331 | micromark-util-types: 1.0.2
2332 | dev: true
2333 |
2334 | /micromark-util-sanitize-uri/1.1.0:
2335 | resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==}
2336 | dependencies:
2337 | micromark-util-character: 1.1.0
2338 | micromark-util-encode: 1.0.1
2339 | micromark-util-symbol: 1.0.1
2340 | dev: true
2341 |
2342 | /micromark-util-subtokenize/1.0.2:
2343 | resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==}
2344 | dependencies:
2345 | micromark-util-chunked: 1.0.0
2346 | micromark-util-symbol: 1.0.1
2347 | micromark-util-types: 1.0.2
2348 | uvu: 0.5.6
2349 | dev: true
2350 |
2351 | /micromark-util-symbol/1.0.1:
2352 | resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==}
2353 | dev: true
2354 |
2355 | /micromark-util-types/1.0.2:
2356 | resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==}
2357 | dev: true
2358 |
2359 | /micromark/3.1.0:
2360 | resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==}
2361 | dependencies:
2362 | '@types/debug': 4.1.7
2363 | debug: 4.3.4
2364 | decode-named-character-reference: 1.0.2
2365 | micromark-core-commonmark: 1.0.6
2366 | micromark-factory-space: 1.0.0
2367 | micromark-util-character: 1.1.0
2368 | micromark-util-chunked: 1.0.0
2369 | micromark-util-combine-extensions: 1.0.0
2370 | micromark-util-decode-numeric-character-reference: 1.0.0
2371 | micromark-util-encode: 1.0.1
2372 | micromark-util-normalize-identifier: 1.0.0
2373 | micromark-util-resolve-all: 1.0.0
2374 | micromark-util-sanitize-uri: 1.1.0
2375 | micromark-util-subtokenize: 1.0.2
2376 | micromark-util-symbol: 1.0.1
2377 | micromark-util-types: 1.0.2
2378 | uvu: 0.5.6
2379 | transitivePeerDependencies:
2380 | - supports-color
2381 | dev: true
2382 |
2383 | /micromatch/4.0.5:
2384 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2385 | engines: {node: '>=8.6'}
2386 | dependencies:
2387 | braces: 3.0.2
2388 | picomatch: 2.3.1
2389 | dev: true
2390 |
2391 | /mime/3.0.0:
2392 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
2393 | engines: {node: '>=10.0.0'}
2394 | hasBin: true
2395 | dev: true
2396 |
2397 | /mimic-fn/2.1.0:
2398 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
2399 | engines: {node: '>=6'}
2400 | dev: true
2401 |
2402 | /mimic-fn/4.0.0:
2403 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
2404 | engines: {node: '>=12'}
2405 | dev: true
2406 |
2407 | /minimatch/3.1.2:
2408 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2409 | dependencies:
2410 | brace-expansion: 1.1.11
2411 | dev: true
2412 |
2413 | /minimist/1.2.7:
2414 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
2415 | dev: true
2416 |
2417 | /mri/1.2.0:
2418 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
2419 | engines: {node: '>=4'}
2420 | dev: true
2421 |
2422 | /mrmime/1.0.1:
2423 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
2424 | engines: {node: '>=10'}
2425 | dev: true
2426 |
2427 | /ms/2.1.2:
2428 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2429 | dev: true
2430 |
2431 | /nanoid/3.3.4:
2432 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
2433 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2434 | hasBin: true
2435 | dev: true
2436 |
2437 | /nlcst-to-string/3.1.0:
2438 | resolution: {integrity: sha512-Y8HQWKw/zrHTCnu2zcFBN1dV6vN0NUG7s5fkEj380G8tF3R+vA2KG+tDl2QoHVQCTHGHVXwoni2RQkDSFQb1PA==}
2439 | dependencies:
2440 | '@types/nlcst': 1.0.0
2441 | dev: true
2442 |
2443 | /node-domexception/1.0.0:
2444 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
2445 | engines: {node: '>=10.5.0'}
2446 | dev: true
2447 |
2448 | /node-fetch/3.3.0:
2449 | resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==}
2450 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2451 | dependencies:
2452 | data-uri-to-buffer: 4.0.1
2453 | fetch-blob: 3.2.0
2454 | formdata-polyfill: 4.0.10
2455 | dev: true
2456 |
2457 | /node-releases/2.0.8:
2458 | resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==}
2459 | dev: true
2460 |
2461 | /npm-run-path/5.1.0:
2462 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
2463 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2464 | dependencies:
2465 | path-key: 4.0.0
2466 | dev: true
2467 |
2468 | /object-keys/1.1.1:
2469 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2470 | engines: {node: '>= 0.4'}
2471 | dev: true
2472 |
2473 | /once/1.4.0:
2474 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2475 | dependencies:
2476 | wrappy: 1.0.2
2477 | dev: true
2478 |
2479 | /onetime/5.1.2:
2480 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
2481 | engines: {node: '>=6'}
2482 | dependencies:
2483 | mimic-fn: 2.1.0
2484 | dev: true
2485 |
2486 | /onetime/6.0.0:
2487 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
2488 | engines: {node: '>=12'}
2489 | dependencies:
2490 | mimic-fn: 4.0.0
2491 | dev: true
2492 |
2493 | /open/8.4.0:
2494 | resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
2495 | engines: {node: '>=12'}
2496 | dependencies:
2497 | define-lazy-prop: 2.0.0
2498 | is-docker: 2.2.1
2499 | is-wsl: 2.2.0
2500 | dev: true
2501 |
2502 | /ora/6.1.2:
2503 | resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==}
2504 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2505 | dependencies:
2506 | bl: 5.1.0
2507 | chalk: 5.2.0
2508 | cli-cursor: 4.0.0
2509 | cli-spinners: 2.7.0
2510 | is-interactive: 2.0.0
2511 | is-unicode-supported: 1.3.0
2512 | log-symbols: 5.1.0
2513 | strip-ansi: 7.0.1
2514 | wcwidth: 1.0.1
2515 | dev: true
2516 |
2517 | /p-limit/2.3.0:
2518 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
2519 | engines: {node: '>=6'}
2520 | dependencies:
2521 | p-try: 2.2.0
2522 | dev: true
2523 |
2524 | /p-limit/3.1.0:
2525 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2526 | engines: {node: '>=10'}
2527 | dependencies:
2528 | yocto-queue: 0.1.0
2529 | dev: true
2530 |
2531 | /p-locate/4.1.0:
2532 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
2533 | engines: {node: '>=8'}
2534 | dependencies:
2535 | p-limit: 2.3.0
2536 | dev: true
2537 |
2538 | /p-locate/5.0.0:
2539 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2540 | engines: {node: '>=10'}
2541 | dependencies:
2542 | p-limit: 3.1.0
2543 | dev: true
2544 |
2545 | /p-try/2.2.0:
2546 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
2547 | engines: {node: '>=6'}
2548 | dev: true
2549 |
2550 | /parse-entities/4.0.0:
2551 | resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==}
2552 | dependencies:
2553 | '@types/unist': 2.0.6
2554 | character-entities: 2.0.2
2555 | character-entities-legacy: 3.0.0
2556 | character-reference-invalid: 2.0.1
2557 | decode-named-character-reference: 1.0.2
2558 | is-alphanumerical: 2.0.1
2559 | is-decimal: 2.0.1
2560 | is-hexadecimal: 2.0.1
2561 | dev: true
2562 |
2563 | /parse-latin/5.0.1:
2564 | resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==}
2565 | dependencies:
2566 | nlcst-to-string: 3.1.0
2567 | unist-util-modify-children: 3.1.0
2568 | unist-util-visit-children: 2.0.1
2569 | dev: true
2570 |
2571 | /parse5/6.0.1:
2572 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
2573 | dev: true
2574 |
2575 | /path-browserify/1.0.1:
2576 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
2577 | dev: true
2578 |
2579 | /path-exists/4.0.0:
2580 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2581 | engines: {node: '>=8'}
2582 | dev: true
2583 |
2584 | /path-is-absolute/1.0.1:
2585 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2586 | engines: {node: '>=0.10.0'}
2587 | dev: true
2588 |
2589 | /path-key/3.1.1:
2590 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2591 | engines: {node: '>=8'}
2592 | dev: true
2593 |
2594 | /path-key/4.0.0:
2595 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
2596 | engines: {node: '>=12'}
2597 | dev: true
2598 |
2599 | /path-parse/1.0.7:
2600 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2601 | dev: true
2602 |
2603 | /path-to-regexp/6.2.1:
2604 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
2605 | dev: true
2606 |
2607 | /picocolors/1.0.0:
2608 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2609 | dev: true
2610 |
2611 | /picomatch/2.3.1:
2612 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2613 | engines: {node: '>=8.6'}
2614 | dev: true
2615 |
2616 | /pify/4.0.1:
2617 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
2618 | engines: {node: '>=6'}
2619 | dev: true
2620 |
2621 | /pkg-dir/4.2.0:
2622 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
2623 | engines: {node: '>=8'}
2624 | dependencies:
2625 | find-up: 4.1.0
2626 | dev: true
2627 |
2628 | /postcss-load-config/3.1.4_aesdjsunmf4wiehhujt67my7tu:
2629 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
2630 | engines: {node: '>= 10'}
2631 | peerDependencies:
2632 | postcss: '>=8.0.9'
2633 | ts-node: '>=9.0.0'
2634 | peerDependenciesMeta:
2635 | postcss:
2636 | optional: true
2637 | ts-node:
2638 | optional: true
2639 | dependencies:
2640 | lilconfig: 2.0.6
2641 | postcss: 8.4.21
2642 | ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq
2643 | yaml: 1.10.2
2644 | dev: true
2645 |
2646 | /postcss/8.4.21:
2647 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
2648 | engines: {node: ^10 || ^12 || >=14}
2649 | dependencies:
2650 | nanoid: 3.3.4
2651 | picocolors: 1.0.0
2652 | source-map-js: 1.0.2
2653 | dev: true
2654 |
2655 | /preferred-pm/3.0.3:
2656 | resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==}
2657 | engines: {node: '>=10'}
2658 | dependencies:
2659 | find-up: 5.0.0
2660 | find-yarn-workspace-root2: 1.2.16
2661 | path-exists: 4.0.0
2662 | which-pm: 2.0.0
2663 | dev: true
2664 |
2665 | /prettier-plugin-astro/0.7.2:
2666 | resolution: {integrity: sha512-mmifnkG160BtC727gqoimoxnZT/dwr8ASxpoGGl6EHevhfblSOeu+pwH1LAm5Qu1MynizktztFujHHaijLCkww==}
2667 | engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'}
2668 | dependencies:
2669 | '@astrojs/compiler': 0.31.4
2670 | prettier: 2.8.3
2671 | sass-formatter: 0.7.5
2672 | synckit: 0.8.4
2673 | dev: true
2674 |
2675 | /prettier/2.8.3:
2676 | resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==}
2677 | engines: {node: '>=10.13.0'}
2678 | hasBin: true
2679 | dev: true
2680 |
2681 | /prismjs/1.29.0:
2682 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
2683 | engines: {node: '>=6'}
2684 | dev: true
2685 |
2686 | /prompts/2.4.2:
2687 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
2688 | engines: {node: '>= 6'}
2689 | dependencies:
2690 | kleur: 3.0.3
2691 | sisteransi: 1.0.5
2692 | dev: true
2693 |
2694 | /property-information/6.2.0:
2695 | resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==}
2696 | dev: true
2697 |
2698 | /queue-microtask/1.2.3:
2699 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2700 | dev: true
2701 |
2702 | /readable-stream/3.6.0:
2703 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
2704 | engines: {node: '>= 6'}
2705 | dependencies:
2706 | inherits: 2.0.4
2707 | string_decoder: 1.3.0
2708 | util-deprecate: 1.0.2
2709 | dev: true
2710 |
2711 | /recast/0.20.5:
2712 | resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==}
2713 | engines: {node: '>= 4'}
2714 | dependencies:
2715 | ast-types: 0.14.2
2716 | esprima: 4.0.1
2717 | source-map: 0.6.1
2718 | tslib: 2.4.1
2719 | dev: true
2720 |
2721 | /rechoir/0.6.2:
2722 | resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
2723 | engines: {node: '>= 0.10'}
2724 | dependencies:
2725 | resolve: 1.22.1
2726 | dev: true
2727 |
2728 | /rehype-parse/8.0.4:
2729 | resolution: {integrity: sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==}
2730 | dependencies:
2731 | '@types/hast': 2.3.4
2732 | hast-util-from-parse5: 7.1.1
2733 | parse5: 6.0.1
2734 | unified: 10.1.2
2735 | dev: true
2736 |
2737 | /rehype-raw/6.1.1:
2738 | resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==}
2739 | dependencies:
2740 | '@types/hast': 2.3.4
2741 | hast-util-raw: 7.2.3
2742 | unified: 10.1.2
2743 | dev: true
2744 |
2745 | /rehype-stringify/9.0.3:
2746 | resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==}
2747 | dependencies:
2748 | '@types/hast': 2.3.4
2749 | hast-util-to-html: 8.0.4
2750 | unified: 10.1.2
2751 | dev: true
2752 |
2753 | /rehype/12.0.1:
2754 | resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==}
2755 | dependencies:
2756 | '@types/hast': 2.3.4
2757 | rehype-parse: 8.0.4
2758 | rehype-stringify: 9.0.3
2759 | unified: 10.1.2
2760 | dev: true
2761 |
2762 | /remark-gfm/3.0.1:
2763 | resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==}
2764 | dependencies:
2765 | '@types/mdast': 3.0.10
2766 | mdast-util-gfm: 2.0.1
2767 | micromark-extension-gfm: 2.0.1
2768 | unified: 10.1.2
2769 | transitivePeerDependencies:
2770 | - supports-color
2771 | dev: true
2772 |
2773 | /remark-parse/10.0.1:
2774 | resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==}
2775 | dependencies:
2776 | '@types/mdast': 3.0.10
2777 | mdast-util-from-markdown: 1.2.0
2778 | unified: 10.1.2
2779 | transitivePeerDependencies:
2780 | - supports-color
2781 | dev: true
2782 |
2783 | /remark-rehype/10.1.0:
2784 | resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==}
2785 | dependencies:
2786 | '@types/hast': 2.3.4
2787 | '@types/mdast': 3.0.10
2788 | mdast-util-to-hast: 12.2.5
2789 | unified: 10.1.2
2790 | dev: true
2791 |
2792 | /remark-smartypants/2.0.0:
2793 | resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==}
2794 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2795 | dependencies:
2796 | retext: 8.1.0
2797 | retext-smartypants: 5.2.0
2798 | unist-util-visit: 4.1.1
2799 | dev: true
2800 |
2801 | /resolve/1.22.1:
2802 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
2803 | hasBin: true
2804 | dependencies:
2805 | is-core-module: 2.11.0
2806 | path-parse: 1.0.7
2807 | supports-preserve-symlinks-flag: 1.0.0
2808 | dev: true
2809 |
2810 | /restore-cursor/4.0.0:
2811 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
2812 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
2813 | dependencies:
2814 | onetime: 5.1.2
2815 | signal-exit: 3.0.7
2816 | dev: true
2817 |
2818 | /retext-latin/3.1.0:
2819 | resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==}
2820 | dependencies:
2821 | '@types/nlcst': 1.0.0
2822 | parse-latin: 5.0.1
2823 | unherit: 3.0.1
2824 | unified: 10.1.2
2825 | dev: true
2826 |
2827 | /retext-smartypants/5.2.0:
2828 | resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==}
2829 | dependencies:
2830 | '@types/nlcst': 1.0.0
2831 | nlcst-to-string: 3.1.0
2832 | unified: 10.1.2
2833 | unist-util-visit: 4.1.1
2834 | dev: true
2835 |
2836 | /retext-stringify/3.1.0:
2837 | resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==}
2838 | dependencies:
2839 | '@types/nlcst': 1.0.0
2840 | nlcst-to-string: 3.1.0
2841 | unified: 10.1.2
2842 | dev: true
2843 |
2844 | /retext/8.1.0:
2845 | resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==}
2846 | dependencies:
2847 | '@types/nlcst': 1.0.0
2848 | retext-latin: 3.1.0
2849 | retext-stringify: 3.1.0
2850 | unified: 10.1.2
2851 | dev: true
2852 |
2853 | /reusify/1.0.4:
2854 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2855 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2856 | dev: true
2857 |
2858 | /roarr/2.15.4:
2859 | resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
2860 | engines: {node: '>=8.0'}
2861 | dependencies:
2862 | boolean: 3.2.0
2863 | detect-node: 2.1.0
2864 | globalthis: 1.0.3
2865 | json-stringify-safe: 5.0.1
2866 | semver-compare: 1.0.0
2867 | sprintf-js: 1.1.2
2868 | dev: true
2869 |
2870 | /rollup/2.79.1:
2871 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
2872 | engines: {node: '>=10.0.0'}
2873 | hasBin: true
2874 | optionalDependencies:
2875 | fsevents: 2.3.2
2876 | dev: true
2877 |
2878 | /run-parallel/1.2.0:
2879 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2880 | dependencies:
2881 | queue-microtask: 1.2.3
2882 | dev: true
2883 |
2884 | /s.color/0.0.15:
2885 | resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==}
2886 | dev: true
2887 |
2888 | /sade/1.8.1:
2889 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
2890 | engines: {node: '>=6'}
2891 | dependencies:
2892 | mri: 1.2.0
2893 | dev: true
2894 |
2895 | /safe-buffer/5.2.1:
2896 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
2897 | dev: true
2898 |
2899 | /sass-formatter/0.7.5:
2900 | resolution: {integrity: sha512-NKFP8ddjhUYi6A/iD1cEtzkEs91U61kzqe3lY9SVNuvX7LGc88xnEN0mmsWL7Ol//YTi2GL/ol7b9XZ2+hgXuA==}
2901 | dependencies:
2902 | suf-log: 2.5.3
2903 | dev: true
2904 |
2905 | /section-matter/1.0.0:
2906 | resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
2907 | engines: {node: '>=4'}
2908 | dependencies:
2909 | extend-shallow: 2.0.1
2910 | kind-of: 6.0.3
2911 | dev: true
2912 |
2913 | /semver-compare/1.0.0:
2914 | resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
2915 | dev: true
2916 |
2917 | /semver/6.3.0:
2918 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
2919 | hasBin: true
2920 | dev: true
2921 |
2922 | /semver/7.3.8:
2923 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
2924 | engines: {node: '>=10'}
2925 | hasBin: true
2926 | dependencies:
2927 | lru-cache: 6.0.0
2928 | dev: true
2929 |
2930 | /serialize-error/7.0.1:
2931 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
2932 | engines: {node: '>=10'}
2933 | dependencies:
2934 | type-fest: 0.13.1
2935 | dev: true
2936 |
2937 | /shebang-command/2.0.0:
2938 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2939 | engines: {node: '>=8'}
2940 | dependencies:
2941 | shebang-regex: 3.0.0
2942 | dev: true
2943 |
2944 | /shebang-regex/3.0.0:
2945 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2946 | engines: {node: '>=8'}
2947 | dev: true
2948 |
2949 | /shelljs/0.8.5:
2950 | resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
2951 | engines: {node: '>=4'}
2952 | hasBin: true
2953 | dependencies:
2954 | glob: 7.2.3
2955 | interpret: 1.4.0
2956 | rechoir: 0.6.2
2957 | dev: true
2958 |
2959 | /shiki/0.11.1:
2960 | resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==}
2961 | dependencies:
2962 | jsonc-parser: 3.2.0
2963 | vscode-oniguruma: 1.7.0
2964 | vscode-textmate: 6.0.0
2965 | dev: true
2966 |
2967 | /shx/0.3.4:
2968 | resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==}
2969 | engines: {node: '>=6'}
2970 | hasBin: true
2971 | dependencies:
2972 | minimist: 1.2.7
2973 | shelljs: 0.8.5
2974 | dev: true
2975 |
2976 | /signal-exit/3.0.7:
2977 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
2978 | dev: true
2979 |
2980 | /sirv/2.0.2:
2981 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
2982 | engines: {node: '>= 10'}
2983 | dependencies:
2984 | '@polka/url': 1.0.0-next.21
2985 | mrmime: 1.0.1
2986 | totalist: 3.0.0
2987 | dev: true
2988 |
2989 | /sisteransi/1.0.5:
2990 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
2991 | dev: true
2992 |
2993 | /slash/4.0.0:
2994 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
2995 | engines: {node: '>=12'}
2996 | dev: true
2997 |
2998 | /source-map-js/1.0.2:
2999 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
3000 | engines: {node: '>=0.10.0'}
3001 | dev: true
3002 |
3003 | /source-map/0.6.1:
3004 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
3005 | engines: {node: '>=0.10.0'}
3006 | dev: true
3007 |
3008 | /source-map/0.7.4:
3009 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
3010 | engines: {node: '>= 8'}
3011 | dev: true
3012 |
3013 | /space-separated-tokens/2.0.2:
3014 | resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
3015 | dev: true
3016 |
3017 | /sprintf-js/1.0.3:
3018 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
3019 | dev: true
3020 |
3021 | /sprintf-js/1.1.2:
3022 | resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
3023 | dev: true
3024 |
3025 | /string-width/4.2.3:
3026 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3027 | engines: {node: '>=8'}
3028 | dependencies:
3029 | emoji-regex: 8.0.0
3030 | is-fullwidth-code-point: 3.0.0
3031 | strip-ansi: 6.0.1
3032 | dev: true
3033 |
3034 | /string-width/5.1.2:
3035 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
3036 | engines: {node: '>=12'}
3037 | dependencies:
3038 | eastasianwidth: 0.2.0
3039 | emoji-regex: 9.2.2
3040 | strip-ansi: 7.0.1
3041 | dev: true
3042 |
3043 | /string_decoder/1.3.0:
3044 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
3045 | dependencies:
3046 | safe-buffer: 5.2.1
3047 | dev: true
3048 |
3049 | /stringify-entities/4.0.3:
3050 | resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
3051 | dependencies:
3052 | character-entities-html4: 2.1.0
3053 | character-entities-legacy: 3.0.0
3054 | dev: true
3055 |
3056 | /strip-ansi/6.0.1:
3057 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
3058 | engines: {node: '>=8'}
3059 | dependencies:
3060 | ansi-regex: 5.0.1
3061 | dev: true
3062 |
3063 | /strip-ansi/7.0.1:
3064 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
3065 | engines: {node: '>=12'}
3066 | dependencies:
3067 | ansi-regex: 6.0.1
3068 | dev: true
3069 |
3070 | /strip-bom-string/1.0.0:
3071 | resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
3072 | engines: {node: '>=0.10.0'}
3073 | dev: true
3074 |
3075 | /strip-bom/3.0.0:
3076 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
3077 | engines: {node: '>=4'}
3078 | dev: true
3079 |
3080 | /strip-bom/4.0.0:
3081 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
3082 | engines: {node: '>=8'}
3083 | dev: true
3084 |
3085 | /strip-final-newline/3.0.0:
3086 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
3087 | engines: {node: '>=12'}
3088 | dev: true
3089 |
3090 | /suf-log/2.5.3:
3091 | resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
3092 | dependencies:
3093 | s.color: 0.0.15
3094 | dev: true
3095 |
3096 | /supports-color/5.5.0:
3097 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
3098 | engines: {node: '>=4'}
3099 | dependencies:
3100 | has-flag: 3.0.0
3101 | dev: true
3102 |
3103 | /supports-color/7.2.0:
3104 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3105 | engines: {node: '>=8'}
3106 | dependencies:
3107 | has-flag: 4.0.0
3108 | dev: true
3109 |
3110 | /supports-esm/1.0.0:
3111 | resolution: {integrity: sha512-96Am8CDqUaC0I2+C/swJ0yEvM8ZnGn4unoers/LSdE4umhX7mELzqyLzx3HnZAluq5PXIsGMKqa7NkqaeHMPcg==}
3112 | dependencies:
3113 | has-package-exports: 1.3.0
3114 | dev: true
3115 |
3116 | /supports-preserve-symlinks-flag/1.0.0:
3117 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3118 | engines: {node: '>= 0.4'}
3119 | dev: true
3120 |
3121 | /synckit/0.8.4:
3122 | resolution: {integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==}
3123 | engines: {node: ^14.18.0 || >=16.0.0}
3124 | dependencies:
3125 | '@pkgr/utils': 2.3.1
3126 | tslib: 2.4.1
3127 | dev: true
3128 |
3129 | /tiny-glob/0.2.9:
3130 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
3131 | dependencies:
3132 | globalyzer: 0.1.0
3133 | globrex: 0.1.2
3134 | dev: true
3135 |
3136 | /to-fast-properties/2.0.0:
3137 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
3138 | engines: {node: '>=4'}
3139 | dev: true
3140 |
3141 | /to-regex-range/5.0.1:
3142 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3143 | engines: {node: '>=8.0'}
3144 | dependencies:
3145 | is-number: 7.0.0
3146 | dev: true
3147 |
3148 | /totalist/3.0.0:
3149 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
3150 | engines: {node: '>=6'}
3151 | dev: true
3152 |
3153 | /trim-lines/3.0.1:
3154 | resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
3155 | dev: true
3156 |
3157 | /trough/2.1.0:
3158 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
3159 | dev: true
3160 |
3161 | /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq:
3162 | resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
3163 | hasBin: true
3164 | peerDependencies:
3165 | '@swc/core': '>=1.2.50'
3166 | '@swc/wasm': '>=1.2.50'
3167 | '@types/node': '*'
3168 | typescript: '>=2.7'
3169 | peerDependenciesMeta:
3170 | '@swc/core':
3171 | optional: true
3172 | '@swc/wasm':
3173 | optional: true
3174 | dependencies:
3175 | '@cspotcode/source-map-support': 0.8.1
3176 | '@tsconfig/node10': 1.0.9
3177 | '@tsconfig/node12': 1.0.11
3178 | '@tsconfig/node14': 1.0.3
3179 | '@tsconfig/node16': 1.0.3
3180 | '@types/node': 18.11.18
3181 | acorn: 8.8.1
3182 | acorn-walk: 8.2.0
3183 | arg: 4.1.3
3184 | create-require: 1.1.1
3185 | diff: 4.0.2
3186 | make-error: 1.3.6
3187 | typescript: 4.9.4
3188 | v8-compile-cache-lib: 3.0.1
3189 | yn: 3.1.1
3190 | dev: true
3191 |
3192 | /tsconfig-resolver/3.0.1:
3193 | resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==}
3194 | dependencies:
3195 | '@types/json5': 0.0.30
3196 | '@types/resolve': 1.20.2
3197 | json5: 2.2.3
3198 | resolve: 1.22.1
3199 | strip-bom: 4.0.0
3200 | type-fest: 0.13.1
3201 | dev: true
3202 |
3203 | /tslib/2.4.1:
3204 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
3205 | dev: true
3206 |
3207 | /tsm/2.3.0:
3208 | resolution: {integrity: sha512-++0HFnmmR+gMpDtKTnW3XJ4yv9kVGi20n+NfyQWB9qwJvTaIWY9kBmzek2YUQK5APTQ/1DTrXmm4QtFPmW9Rzw==}
3209 | engines: {node: '>=12'}
3210 | hasBin: true
3211 | dependencies:
3212 | esbuild: 0.15.18
3213 | dev: true
3214 |
3215 | /type-fest/0.13.1:
3216 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
3217 | engines: {node: '>=10'}
3218 | dev: true
3219 |
3220 | /type-fest/2.19.0:
3221 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
3222 | engines: {node: '>=12.20'}
3223 | dev: true
3224 |
3225 | /typescript/4.9.4:
3226 | resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
3227 | engines: {node: '>=4.2.0'}
3228 | hasBin: true
3229 | dev: true
3230 |
3231 | /unherit/3.0.1:
3232 | resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==}
3233 | dev: true
3234 |
3235 | /unified/10.1.2:
3236 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
3237 | dependencies:
3238 | '@types/unist': 2.0.6
3239 | bail: 2.0.2
3240 | extend: 3.0.2
3241 | is-buffer: 2.0.5
3242 | is-plain-obj: 4.1.0
3243 | trough: 2.1.0
3244 | vfile: 5.3.6
3245 | dev: true
3246 |
3247 | /unist-builder/3.0.0:
3248 | resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==}
3249 | dependencies:
3250 | '@types/unist': 2.0.6
3251 | dev: true
3252 |
3253 | /unist-util-generated/2.0.0:
3254 | resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==}
3255 | dev: true
3256 |
3257 | /unist-util-is/5.1.1:
3258 | resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==}
3259 | dev: true
3260 |
3261 | /unist-util-map/3.1.2:
3262 | resolution: {integrity: sha512-WLA2R6x/UaopedG2poaWLShf5LCi+BNa6mMkACdjft23PHou4v85PvZItjbO2XgXvukMP365PlL/DrbuMgr3eg==}
3263 | dependencies:
3264 | '@types/unist': 2.0.6
3265 | dev: true
3266 |
3267 | /unist-util-modify-children/3.1.0:
3268 | resolution: {integrity: sha512-L0UizdncPZ1NIwpmkwFdLo2NaK2Eb5LU/vaQ7lZGkAaOBZfsHp+8T/gVWPVmmMO1hj6gc+XeMoytut8jr7fdyA==}
3269 | dependencies:
3270 | '@types/unist': 2.0.6
3271 | array-iterate: 2.0.1
3272 | dev: true
3273 |
3274 | /unist-util-position-from-estree/1.1.1:
3275 | resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==}
3276 | dependencies:
3277 | '@types/unist': 2.0.6
3278 | dev: true
3279 |
3280 | /unist-util-position/4.0.3:
3281 | resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==}
3282 | dependencies:
3283 | '@types/unist': 2.0.6
3284 | dev: true
3285 |
3286 | /unist-util-remove-position/4.0.1:
3287 | resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==}
3288 | dependencies:
3289 | '@types/unist': 2.0.6
3290 | unist-util-visit: 4.1.1
3291 | dev: true
3292 |
3293 | /unist-util-stringify-position/3.0.2:
3294 | resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==}
3295 | dependencies:
3296 | '@types/unist': 2.0.6
3297 | dev: true
3298 |
3299 | /unist-util-visit-children/2.0.1:
3300 | resolution: {integrity: sha512-2cEU3dhV1hMfO9ajwb8rJsDedMfsahsm6fCfR8LxDR/w7KcB5lzHQ9dBTQIXsWGNWBFH5MPmaFP3Xh0dWLqClQ==}
3301 | dependencies:
3302 | '@types/unist': 2.0.6
3303 | dev: true
3304 |
3305 | /unist-util-visit-parents/5.1.1:
3306 | resolution: {integrity: sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==}
3307 | dependencies:
3308 | '@types/unist': 2.0.6
3309 | unist-util-is: 5.1.1
3310 | dev: true
3311 |
3312 | /unist-util-visit/4.1.1:
3313 | resolution: {integrity: sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==}
3314 | dependencies:
3315 | '@types/unist': 2.0.6
3316 | unist-util-is: 5.1.1
3317 | unist-util-visit-parents: 5.1.1
3318 | dev: true
3319 |
3320 | /update-browserslist-db/1.0.10_browserslist@4.21.4:
3321 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
3322 | hasBin: true
3323 | peerDependencies:
3324 | browserslist: '>= 4.21.0'
3325 | dependencies:
3326 | browserslist: 4.21.4
3327 | escalade: 3.1.1
3328 | picocolors: 1.0.0
3329 | dev: true
3330 |
3331 | /util-deprecate/1.0.2:
3332 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
3333 | dev: true
3334 |
3335 | /uvu/0.5.6:
3336 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
3337 | engines: {node: '>=8'}
3338 | hasBin: true
3339 | dependencies:
3340 | dequal: 2.0.3
3341 | diff: 5.1.0
3342 | kleur: 4.1.5
3343 | sade: 1.8.1
3344 | dev: true
3345 |
3346 | /v8-compile-cache-lib/3.0.1:
3347 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
3348 | dev: true
3349 |
3350 | /vfile-location/4.0.1:
3351 | resolution: {integrity: sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==}
3352 | dependencies:
3353 | '@types/unist': 2.0.6
3354 | vfile: 5.3.6
3355 | dev: true
3356 |
3357 | /vfile-message/3.1.3:
3358 | resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==}
3359 | dependencies:
3360 | '@types/unist': 2.0.6
3361 | unist-util-stringify-position: 3.0.2
3362 | dev: true
3363 |
3364 | /vfile/5.3.6:
3365 | resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==}
3366 | dependencies:
3367 | '@types/unist': 2.0.6
3368 | is-buffer: 2.0.5
3369 | unist-util-stringify-position: 3.0.2
3370 | vfile-message: 3.1.3
3371 | dev: true
3372 |
3373 | /vite/3.2.5_@types+node@18.11.18:
3374 | resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==}
3375 | engines: {node: ^14.18.0 || >=16.0.0}
3376 | hasBin: true
3377 | peerDependencies:
3378 | '@types/node': '>= 14'
3379 | less: '*'
3380 | sass: '*'
3381 | stylus: '*'
3382 | sugarss: '*'
3383 | terser: ^5.4.0
3384 | peerDependenciesMeta:
3385 | '@types/node':
3386 | optional: true
3387 | less:
3388 | optional: true
3389 | sass:
3390 | optional: true
3391 | stylus:
3392 | optional: true
3393 | sugarss:
3394 | optional: true
3395 | terser:
3396 | optional: true
3397 | dependencies:
3398 | '@types/node': 18.11.18
3399 | esbuild: 0.15.18
3400 | postcss: 8.4.21
3401 | resolve: 1.22.1
3402 | rollup: 2.79.1
3403 | optionalDependencies:
3404 | fsevents: 2.3.2
3405 | dev: true
3406 |
3407 | /vitefu/0.2.4_vite@3.2.5:
3408 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
3409 | peerDependencies:
3410 | vite: ^3.0.0 || ^4.0.0
3411 | peerDependenciesMeta:
3412 | vite:
3413 | optional: true
3414 | dependencies:
3415 | vite: 3.2.5_@types+node@18.11.18
3416 | dev: true
3417 |
3418 | /vscode-css-languageservice/6.2.1:
3419 | resolution: {integrity: sha512-FMaMjB2LQdkHjTCP2CWh2S94xuGsxSc8xr0H9nAACVd/iUDyZLoKFjwoB+mA3v0rpCH2U5vVCVwxyULy61CgqA==}
3420 | dependencies:
3421 | '@vscode/l10n': 0.0.10
3422 | vscode-languageserver-textdocument: 1.0.8
3423 | vscode-languageserver-types: 3.17.2
3424 | vscode-uri: 3.0.7
3425 | dev: true
3426 |
3427 | /vscode-html-languageservice/5.0.3:
3428 | resolution: {integrity: sha512-6rfrtcHhXDMXmC5pR2WXrx02HiNCzQDynOBMn+53zLxr2hvZrDzoc0QgC0FaFGfcglf7GeOsfhkWvJBFC/a70g==}
3429 | dependencies:
3430 | '@vscode/l10n': 0.0.10
3431 | vscode-languageserver-textdocument: 1.0.8
3432 | vscode-languageserver-types: 3.17.2
3433 | vscode-uri: 3.0.7
3434 | dev: true
3435 |
3436 | /vscode-jsonrpc/8.0.2:
3437 | resolution: {integrity: sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==}
3438 | engines: {node: '>=14.0.0'}
3439 | dev: true
3440 |
3441 | /vscode-languageserver-protocol/3.17.2:
3442 | resolution: {integrity: sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==}
3443 | dependencies:
3444 | vscode-jsonrpc: 8.0.2
3445 | vscode-languageserver-types: 3.17.2
3446 | dev: true
3447 |
3448 | /vscode-languageserver-textdocument/1.0.8:
3449 | resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==}
3450 | dev: true
3451 |
3452 | /vscode-languageserver-types/3.17.2:
3453 | resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==}
3454 | dev: true
3455 |
3456 | /vscode-languageserver/8.0.2:
3457 | resolution: {integrity: sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==}
3458 | hasBin: true
3459 | dependencies:
3460 | vscode-languageserver-protocol: 3.17.2
3461 | dev: true
3462 |
3463 | /vscode-oniguruma/1.7.0:
3464 | resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
3465 | dev: true
3466 |
3467 | /vscode-textmate/6.0.0:
3468 | resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==}
3469 | dev: true
3470 |
3471 | /vscode-uri/2.1.2:
3472 | resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==}
3473 | dev: true
3474 |
3475 | /vscode-uri/3.0.7:
3476 | resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==}
3477 | dev: true
3478 |
3479 | /wcwidth/1.0.1:
3480 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
3481 | dependencies:
3482 | defaults: 1.0.4
3483 | dev: true
3484 |
3485 | /web-namespaces/2.0.1:
3486 | resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
3487 | dev: true
3488 |
3489 | /web-streams-polyfill/3.2.1:
3490 | resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
3491 | engines: {node: '>= 8'}
3492 | dev: true
3493 |
3494 | /which-pm-runs/1.1.0:
3495 | resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==}
3496 | engines: {node: '>=4'}
3497 | dev: true
3498 |
3499 | /which-pm/2.0.0:
3500 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
3501 | engines: {node: '>=8.15'}
3502 | dependencies:
3503 | load-yaml-file: 0.2.0
3504 | path-exists: 4.0.0
3505 | dev: true
3506 |
3507 | /which/2.0.2:
3508 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3509 | engines: {node: '>= 8'}
3510 | hasBin: true
3511 | dependencies:
3512 | isexe: 2.0.0
3513 | dev: true
3514 |
3515 | /widest-line/4.0.1:
3516 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
3517 | engines: {node: '>=12'}
3518 | dependencies:
3519 | string-width: 5.1.2
3520 | dev: true
3521 |
3522 | /wrap-ansi/8.0.1:
3523 | resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==}
3524 | engines: {node: '>=12'}
3525 | dependencies:
3526 | ansi-styles: 6.2.1
3527 | string-width: 5.1.2
3528 | strip-ansi: 7.0.1
3529 | dev: true
3530 |
3531 | /wrappy/1.0.2:
3532 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3533 | dev: true
3534 |
3535 | /yallist/3.1.1:
3536 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
3537 | dev: true
3538 |
3539 | /yallist/4.0.0:
3540 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3541 | dev: true
3542 |
3543 | /yaml/1.10.2:
3544 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
3545 | engines: {node: '>= 6'}
3546 | dev: true
3547 |
3548 | /yargs-parser/21.1.1:
3549 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
3550 | engines: {node: '>=12'}
3551 | dev: true
3552 |
3553 | /yn/3.1.1:
3554 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
3555 | engines: {node: '>=6'}
3556 | dev: true
3557 |
3558 | /yocto-queue/0.1.0:
3559 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3560 | engines: {node: '>=10'}
3561 | dev: true
3562 |
3563 | /zod/3.20.2:
3564 | resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==}
3565 | dev: true
3566 |
3567 | /zwitch/2.0.4:
3568 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
3569 | dev: true
3570 |
--------------------------------------------------------------------------------
/src/client/index.ts:
--------------------------------------------------------------------------------
1 | import type {
2 | RedirectResult,
3 | RejectedResult,
4 | ResolvedResult
5 | } from "../result.js";
6 |
7 | export const submitForm = async <
8 | Body extends {} = {},
9 | ErrorData extends {} = {}
10 | >(
11 | element: HTMLFormElement,
12 | handleRedirect: (location: string) => void = (location) =>
13 | (window.location.href = location)
14 | ) => {
15 | type ClientResult =
16 | | ResolvedResult
17 | | RejectedResult
18 | | RedirectResult;
19 | const formData = new FormData(element);
20 | const response = await fetch(element.action, {
21 | method: element.method,
22 | body: formData,
23 | headers: {
24 | accept: "application/json"
25 | }
26 | });
27 | const result = (await response.json()) as ClientResult;
28 | if (result.type === "redirect") {
29 | handleRedirect(result.redirectLocation);
30 | }
31 | return result;
32 | };
33 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export { reject, resolve, redirect } from "./server/response.js";
2 | export { action } from "./server/index.js";
3 |
--------------------------------------------------------------------------------
/src/result.ts:
--------------------------------------------------------------------------------
1 | export type Result = {
2 | type: "resolved" | "rejected" | "redirect";
3 | body: null | Record;
4 | error: null | Record;
5 | redirectLocation: null | string;
6 | };
7 |
8 | export class ResolvedResult implements Result {
9 | public readonly type = "resolved";
10 | public readonly body: Body;
11 | public readonly error = null;
12 | public readonly redirectLocation = null;
13 | constructor(body: Body) {
14 | this.body = body;
15 | }
16 | }
17 |
18 | export class RejectedResult implements Result {
19 | public readonly type = "rejected";
20 | public readonly body = null;
21 | public readonly error: ErrorData;
22 | public readonly redirectLocation = null;
23 | constructor(error: ErrorData) {
24 | this.error = error;
25 | }
26 | }
27 |
28 | export class RedirectResult implements Result {
29 | public readonly type = "redirect";
30 | public readonly body = null;
31 | public readonly error = null;
32 | public readonly redirectLocation: string;
33 | constructor(redirectLocation: string) {
34 | this.redirectLocation = redirectLocation;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/server/index.ts:
--------------------------------------------------------------------------------
1 | import type { AstroGlobal } from "astro";
2 | import { parse } from "./multipart-form";
3 | import {
4 | ExtractResolveResponse,
5 | ExtractRedirectResponse,
6 | ExtractRejectResponse,
7 | RedirectResponse,
8 | RejectResponse,
9 | ResolveResponse
10 | } from "./response.js";
11 | import type { ConditionalUnion } from "../utils";
12 |
13 | import {
14 | ServerIgnoreResult,
15 | ServerRedirectResult,
16 | ServerRejectedResult,
17 | ServerResolvedResult
18 | } from "./result";
19 | import { RedirectResult, RejectedResult, ResolvedResult } from "../result";
20 |
21 | type HandleFunction = (
22 | formData: FormData
23 | ) => Promise<
24 | | InstanceType
25 | | InstanceType
26 | | InstanceType
27 | >;
28 |
29 | type ActionResult =
30 | | ConditionalUnion<
31 | [
32 | [
33 | ExtractResolveResponse,
34 | ServerResolvedResult["body"]>
35 | ],
36 | [
37 | ExtractRejectResponse,
38 | ServerRejectedResult["data"]>
39 | ],
40 | [ExtractRedirectResponse, ServerRedirectResult]
41 | ]
42 | >
43 | | ServerIgnoreResult;
44 |
45 | export const action = async (
46 | {
47 | request,
48 | response: astroResponse
49 | }: {
50 | request: Request;
51 | response: AstroGlobal["response"];
52 | },
53 | handle: Handle,
54 | enableCSRFProtection = true
55 | ): Promise> => {
56 | const clonedRequest = request.clone();
57 | const contentType = clonedRequest.headers.get("content-type") ?? "";
58 | const isMultipartForm = contentType.includes("multipart/form-data");
59 | const checkCsrf = async () => {
60 | const requestOrigin = clonedRequest.headers.get("origin");
61 | const url = new URL(clonedRequest.url);
62 | return enableCSRFProtection ? requestOrigin === url.origin : true;
63 | };
64 | const isValidRequestOrigin = checkCsrf();
65 | if (clonedRequest.method !== "POST" || !isValidRequestOrigin) {
66 | return new ServerIgnoreResult({ inputValues: {} });
67 | }
68 | const formData = new FormData();
69 | const acceptHeader = clonedRequest.headers.get("accept");
70 | if (isMultipartForm) {
71 | const boundary = contentType.replace("multipart/form-data; boundary=", "");
72 | const bodyArrayBuffer = await clonedRequest.arrayBuffer();
73 | const parts = parse(new Uint8Array(bodyArrayBuffer), boundary);
74 | parts.forEach((value) => {
75 | const isFile = "type" in value;
76 | if (isFile) {
77 | formData.append(value.name!, new Blob([value.data]), value.filename!);
78 | } else {
79 | const textDecoder = new TextDecoder();
80 | formData.append(value.name!, textDecoder.decode(value.data));
81 | }
82 | });
83 | } else {
84 | const requestBodyFormData = await clonedRequest.formData();
85 | requestBodyFormData.forEach((value, key) => {
86 | formData.append(key, value);
87 | });
88 | }
89 | const inputValues = Object.fromEntries(
90 | [...formData.entries()].filter(
91 | (val): val is [string, string] => typeof val[1] === "string"
92 | )
93 | );
94 | const result = (await handle(formData)) as Awaited>;
95 | const isJsonRequest = acceptHeader === "application/json";
96 | if (result instanceof ResolveResponse) {
97 | const body = result.body;
98 | const response = isJsonRequest
99 | ? new Response(JSON.stringify(new ResolvedResult(body)))
100 | : null;
101 | return new ServerResolvedResult(
102 | {
103 | body,
104 | inputValues
105 | },
106 | response
107 | ) as any;
108 | }
109 | if (result instanceof RejectResponse) {
110 | const errorData = result.data;
111 | const status = result.status;
112 | const response = isJsonRequest
113 | ? new Response(JSON.stringify(new RejectedResult(errorData)), {
114 | status
115 | })
116 | : null;
117 | astroResponse.status = status;
118 | return new ServerRejectedResult(
119 | {
120 | errorData,
121 | inputValues
122 | },
123 | response
124 | ) as any;
125 | }
126 | if (result instanceof RedirectResponse) {
127 | const redirectLocation = result.location;
128 | const status = result.status;
129 | const response = isJsonRequest
130 | ? new Response(JSON.stringify(new RedirectResult(redirectLocation)), {
131 | status
132 | })
133 | : new Response(null, {
134 | status,
135 | headers: {
136 | location: redirectLocation
137 | }
138 | });
139 | return new ServerRedirectResult(
140 | {
141 | inputValues,
142 | redirectLocation
143 | },
144 | response
145 | ) as any;
146 | }
147 | throw new Error("Invalid result");
148 | };
149 |
--------------------------------------------------------------------------------
/src/server/multipart-form.ts:
--------------------------------------------------------------------------------
1 | type Part = {
2 | contentDispositionHeader: string;
3 | contentTypeHeader: string;
4 | part: number[];
5 | };
6 |
7 | type Input =
8 | | {
9 | name: string;
10 | data: Uint8Array;
11 | }
12 | | {
13 | type: string;
14 | filename: string;
15 | name: string;
16 | data: Uint8Array;
17 | };
18 |
19 | enum ParsingState {
20 | INIT,
21 | READING_HEADERS,
22 | READING_DATA,
23 | READING_PART_SEPARATOR
24 | }
25 |
26 | export const parse = (
27 | multipartBodyBuffer: Uint8Array,
28 | boundary: string
29 | ): Input[] => {
30 | let lastline = "";
31 | let contentDispositionHeader = "";
32 | let contentTypeHeader = "";
33 | let state: ParsingState = ParsingState.INIT;
34 | let buffer: number[] = [];
35 | const allParts: Input[] = [];
36 |
37 | let currentPartHeaders: string[] = [];
38 |
39 | for (let i = 0; i < multipartBodyBuffer.length; i++) {
40 | const oneByte: number = multipartBodyBuffer[i];
41 | const prevByte: number | null = i > 0 ? multipartBodyBuffer[i - 1] : null;
42 | // 0x0a => \n
43 | // 0x0d => \r
44 | const newLineDetected: boolean = oneByte === 0x0a && prevByte === 0x0d;
45 | const newLineChar: boolean = oneByte === 0x0a || oneByte === 0x0d;
46 |
47 | if (!newLineChar) lastline += String.fromCharCode(oneByte);
48 | if (ParsingState.INIT === state && newLineDetected) {
49 | // searching for boundary
50 | if ("--" + boundary === lastline) {
51 | state = ParsingState.READING_HEADERS; // found boundary. start reading headers
52 | }
53 | lastline = "";
54 | } else if (ParsingState.READING_HEADERS === state && newLineDetected) {
55 | // parsing headers. Headers are separated by an empty line from the content. Stop reading headers when the line is empty
56 | if (lastline.length) {
57 | currentPartHeaders.push(lastline);
58 | } else {
59 | // found empty line. search for the headers we want and set the values
60 | for (const h of currentPartHeaders) {
61 | if (h.toLowerCase().startsWith("content-disposition:")) {
62 | contentDispositionHeader = h;
63 | } else if (h.toLowerCase().startsWith("content-type:")) {
64 | contentTypeHeader = h;
65 | }
66 | }
67 | state = ParsingState.READING_DATA;
68 | buffer = [];
69 | }
70 | lastline = "";
71 | } else if (ParsingState.READING_DATA === state) {
72 | // parsing data
73 | if (lastline.length > boundary.length + 4) {
74 | lastline = ""; // mem save
75 | }
76 | if ("--" + boundary === lastline) {
77 | const j = buffer.length - lastline.length;
78 | const part = buffer.slice(0, j - 1);
79 |
80 | allParts.push(
81 | process({ contentDispositionHeader, contentTypeHeader, part })
82 | );
83 | buffer = [];
84 | currentPartHeaders = [];
85 | lastline = "";
86 | state = ParsingState.READING_PART_SEPARATOR;
87 | contentDispositionHeader = "";
88 | contentTypeHeader = "";
89 | } else {
90 | buffer.push(oneByte);
91 | }
92 | if (newLineDetected) {
93 | lastline = "";
94 | }
95 | } else if (ParsingState.READING_PART_SEPARATOR === state) {
96 | if (newLineDetected) {
97 | state = ParsingState.READING_HEADERS;
98 | }
99 | }
100 | }
101 | return allParts;
102 | };
103 |
104 | const process = (part: Part): Input => {
105 | // will transform this object:
106 | // { header: 'Content-Disposition: form-data; name="uploads[]"; filename="A.txt"',
107 | // info: 'Content-Type: text/plain',
108 | // part: 'AAAABBBB' }
109 | // into this one:
110 | // { filename: 'A.txt', type: 'text/plain', data: }
111 | const header = part.contentDispositionHeader.split(";");
112 | const filenameData = header[2];
113 | if (filenameData) {
114 | const getFileName = () => {
115 | return JSON.parse(filenameData.split("=")[1].trim()) as string;
116 | };
117 | const contentType = part.contentTypeHeader.split(":")[1].trim();
118 | return {
119 | type: contentType,
120 | name: header[1].split("=")[1].replace(/"/g, ""),
121 | data: new Uint8Array(part.part),
122 | filename: getFileName()
123 | };
124 | }
125 | return {
126 | name: header[1].split("=")[1].replace(/"/g, ""),
127 | data: new Uint8Array(part.part)
128 | };
129 | };
--------------------------------------------------------------------------------
/src/server/request.ts:
--------------------------------------------------------------------------------
1 | import { parse } from "./multipart-form";
2 |
3 | export const parseRequestBody = async (request: Request) => {
4 | const clonedRequest = request.clone();
5 | const contentType = request.headers.get("content-type") ?? "";
6 | const isMultipartForm = contentType.includes("multipart/form-data");
7 | const formData = new FormData();
8 | if (isMultipartForm) {
9 | const boundary = contentType.replace("multipart/form-data; boundary=", "");
10 | const bodyArrayBuffer = await clonedRequest.arrayBuffer();
11 | const parts = parse(new Uint8Array(bodyArrayBuffer), boundary);
12 | parts.forEach((value) => {
13 | const isFile = "type" in value;
14 | if (isFile) {
15 | formData.append(value.name!, new Blob([value.data]), value.filename!);
16 | } else {
17 | const textDecoder = new TextDecoder();
18 | formData.append(value.name!, textDecoder.decode(value.data));
19 | }
20 | });
21 | } else {
22 | const requestBodyFormData = await clonedRequest.formData();
23 | requestBodyFormData.forEach((value, key) => {
24 | formData.append(key, value);
25 | });
26 | }
27 | };
28 |
--------------------------------------------------------------------------------
/src/server/response.ts:
--------------------------------------------------------------------------------
1 | export class RejectResponse {
2 | public readonly type = "rejected";
3 | public status: number;
4 | public data: ErrorData;
5 | constructor(status: number, data: ErrorData) {
6 | this.status = status;
7 | this.data = data;
8 | }
9 | }
10 |
11 | export class RedirectResponse {
12 | public readonly type = "redirect";
13 | public status: number;
14 | public location: string;
15 | constructor(status: number, location: string) {
16 | this.status = status;
17 | this.location = location;
18 | }
19 | }
20 |
21 | export class ResolveResponse {
22 | public readonly type = "resolved";
23 | public body: Body;
24 | constructor(body: Body) {
25 | this.body = body;
26 | }
27 | }
28 |
29 | export type ExtractResolveResponse any> = Extract<
30 | Awaited>,
31 | InstanceType
32 | >;
33 |
34 | export type ExtractRejectResponse any> = Extract<
35 | Awaited>,
36 | InstanceType
37 | >;
38 |
39 | export type ExtractRedirectResponse any> = Extract<
40 | Awaited>,
41 | InstanceType
42 | >;
43 |
44 |
45 | export const reject = (
46 | status: number,
47 | data?: Data
48 | ) => {
49 | return new RejectResponse(
50 | status,
51 | (data ?? {}) as Data extends undefined ? {} : Data
52 | );
53 | };
54 |
55 | export const redirect = (status: number, location: string) => {
56 | return new RedirectResponse(status, location);
57 | };
58 |
59 | export const resolve = (body?: Body) => {
60 | return new ResolveResponse(
61 | (body ?? {}) as Body extends undefined ? {} : Body
62 | );
63 | };
64 |
65 |
--------------------------------------------------------------------------------
/src/server/result.ts:
--------------------------------------------------------------------------------
1 | import {
2 | RedirectResult,
3 | RejectedResult,
4 | ResolvedResult,
5 | Result
6 | } from "../result";
7 |
8 | type InputValues = Record;
9 |
10 | type ServerResult = Omit & {
11 | type: Result["type"] | "ignore";
12 | response: null | Response;
13 | inputValues: InputValues;
14 | };
15 |
16 | export class ServerIgnoreResult implements ServerResult {
17 | public readonly type = "ignore";
18 | public readonly body = null;
19 | public readonly error = null;
20 | public readonly redirectLocation = null;
21 | public readonly response = null;
22 | public readonly inputValues;
23 | constructor({ inputValues }: { inputValues: InputValues }) {
24 | this.inputValues = inputValues;
25 | }
26 | }
27 |
28 | export class ServerResolvedResult
29 | extends ResolvedResult
30 | implements ServerResult
31 | {
32 | public readonly response;
33 | public readonly inputValues;
34 | constructor(
35 | {
36 | body,
37 | inputValues
38 | }: {
39 | body: Body;
40 | inputValues: InputValues;
41 | },
42 | response: Response | null
43 | ) {
44 | super(body);
45 | this.inputValues = inputValues;
46 | this.response = response;
47 | }
48 | }
49 |
50 | export class ServerRejectedResult
51 | extends RejectedResult
52 | implements ServerResult
53 | {
54 | public readonly response;
55 | public readonly inputValues;
56 | constructor(
57 | {
58 | errorData,
59 | inputValues
60 | }: {
61 | errorData: ErrorData;
62 | inputValues: InputValues;
63 | },
64 | response: Response | null
65 | ) {
66 | super(errorData);
67 | this.inputValues = inputValues;
68 | this.response = response;
69 | }
70 | }
71 |
72 | export class ServerRedirectResult
73 | extends RedirectResult
74 | implements ServerResult
75 | {
76 | public readonly response;
77 | public readonly inputValues;
78 | constructor(
79 | {
80 | redirectLocation,
81 | inputValues
82 | }: {
83 | redirectLocation: string;
84 | inputValues: InputValues;
85 | },
86 | response: Response
87 | ) {
88 | super(redirectLocation);
89 | this.inputValues = inputValues;
90 | this.response = response;
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | // for each T as [typeA, typeB]
2 | // return typeB if typeA is not never
3 | export type ConditionalUnion = Exclude<
4 | {
5 | [K in keyof T]: T[K][0] extends never ? never : T[K][1];
6 | }[number],
7 | never
8 | >;
9 |
--------------------------------------------------------------------------------
/test/index.ts:
--------------------------------------------------------------------------------
1 | // Maybe write some tests
2 |
3 | const main = async () => {
4 | console.log("success");
5 | };
6 |
7 | main();
8 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowJs": true,
4 | "checkJs": true,
5 | "noImplicitAny": true,
6 | "module": "es2022",
7 | "moduleResolution": "node",
8 | "target": "es2022",
9 | "allowSyntheticDefaultImports": true,
10 | "declaration": true,
11 | "outDir": "./dist",
12 | "strict": true,
13 | "importsNotUsedAsValues": "error"
14 | },
15 | "include": ["src"],
16 | "exclude": ["node_modules/", "**/__tests__/*"]
17 | }
18 |
--------------------------------------------------------------------------------