diff --git a/.editorconfig b/.editorconfig index b5acb4b..1af95b2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,14 +5,21 @@ root = true [*] indent_style = space +max_line_length = 100 indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = false insert_final_newline = false +[*.json] +max_file_length = 80 + [*.md] max_line_length = 65 [*.tsx] max_line_length = 65 + +[*.ts] +max_line_length = 65 \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..42db8eb --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,31 @@ +{ + "root": true, + + "overrides": [ + { + "files": ["*.js", "*.mjs", "*.ts", "*.mts"], + "extends": ["plugin:@typescript-eslint/recommended"], + "plugins": ["@typescript-eslint", "@nrwl/nx"], + "parser": "@typescript-eslint/parser", + "rules": { + "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }] + // "@nrwl/nx/enforce-module-boundaries": [ + // "error", + // { + // "allow": [], + // "depConstraints": [ + // { + // "sourceTag": "scope:lib", + // "onlyDependOnLibsWithTags": ["scope:lib"] + // }, + // { + // "sourceTag": "*", + // "onlyDependOnLibsWithTags": ["*"] + // } + // ] + // } + // ] + } + } + ] +} diff --git a/.gitignore b/.gitignore index 1e430d8..15cd564 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ node_modules docs +!src/.vitepress +build +*.tsbuildinfo +.turbo +.ignore +tmp +tsdist diff --git a/.ignore/instances.md b/.ignore/instances.md new file mode 100644 index 0000000..1b6978f --- /dev/null +++ b/.ignore/instances.md @@ -0,0 +1,425 @@ +# Blueprints and Instances + + + +Since Starbeam is a way to write universal reactive code, it +needs a universal way to define constructors for reactive +objects. This is where blueprints come in. + +:::tip Isn't this just a class? + +You might be thinking: "Isn't this just a class?". + +Well, yes and no. + +JavaScript frameworks have many different ways to define a +constructor function that can be used to create instances. Some +frameworks use classes, some use functions, while others (such as +React hooks) use more elaborate patterns. + +As you'll see, Starbeam's blueprint pattern is a way of writing +universal constructors that can be used in any framework. + +::: + +## Defining a Blueprint + +The most fundamental _blueprint_ is a normal JavaScript function. + +```snippet {#blueprint} + +``` + +Yes, this is just a function that returns a value. What makes +Starbeam blueprints interesting is how they're used with +renderers. + +Let's take a look at how we can use this blueprint with a React +renderer. + +```snippet {#component} + +``` + +The `use` function takes a blueprint and returns an instance of +the blueprint. The blueprint is constructed when the component is +mounted. After that, the same instance is returned every time the +component is rendered. + +:::tip 💡 React Strict Mode 💡 + +Critically, when you use a blueprint in React, it is created once +when the component is mounted, and then the same instance is +returned every time the component is rendered. + +When React unmounts and then [remounts] a component, the +blueprint is constructed again. This means that Starbeam hooks +are compatible with React strict mode, by default. + +If you don't use React, this is an object lesson. Every framework +has its own notion of "component instance", and when you use a +Starbeam blueprint with a renderer, you get a new instance of the +blueprint for each framework-defined instance of the component. + +::: + +[remounts]: https://github.com/reactwg/react-18/discussions/19 + +## Blueprints With Parameters + +Blueprints can take parameters, just like normal functions. + +```snippet {#blueprint} + +``` + +Let's take a look at how we can use this blueprint in a React +component. + +```snippet {#component} + +``` + +This is one way to pass reactive parameters to a blueprint. But +there's a downside: every time the `start` parameter changes, the +blueprint is created again. + +In this case, that means that every time the `CounterComponent`'s +`start` prop changes, the counter will reset. + +This **might** be what you want, but what if you want to allow +the `Counter`'s `start` parameter to change without resetting the +counter? + +That's a job for reactive parameters. + +## Taking Reactive Parameters + +Ideally, your blueprint will accept **either** reactive values +**or** normal values as its parameters. + +To accomplish this, your function will use the `Reactive.read` +function to read from its parameters. + +```snippet {#blueprint} + +``` + +:::typescript + +The `IntoReactive` type makes it easy to take **either** a `T` +**or** a `Reactive`. + +::: + +Our universal blueprint can take either a number or a reactive +number, which makes it very flexible. Let's use `Counter` in a +React component to see what this flexibility buys us. + +### Using `Counter` in React + +:::emphasis Option 1 + +Passing a regular value and making it a hook dependency. + +::: + +In this option, we pass `start` as a regular value to `Counter` +and specify it as a dependency to the `use` hook. + +```snippet {#component} + +``` + +This will run the `Counter` blueprint whenever the `start` +changes, which **also** means that its internal counter will +reset whenever `start` changes. + +This is what would probably happen if you implemented `Counter` +using the native React hook APIs. + +:::emphasis Option 2 + +Passing a reactive value directly + +::: + +If we call `Counter` with a reactive `start`, the counter will +update the `start` value without resetting its internal counter. + +```snippet {#reactive-component} + +``` + +### Universality + +Importantly, we were able to change the way we use `Counter` in +React without changing the universal implementation of `Counter`. + +### Adapting Universal Blueprints + +In practice, you may want to give your React consumers a +`useCounter` hook that takes `start` as a dependency and +**doesn't** reset the counter when the `start` value changes. + +The good news is: you did most of the work when you implemented +the universal blueprint in the first place. + +With just a bit of glue code, you can adapt the universal +`Counter` hook into a hook that has the idiomatic React behavior +of your choice. + +```tsx +function useCounter(start: number) { + const reactiveStart = useReactive(start); + return use(() => Counter(reactiveStart)); +} +``` + +:::tip What the Code is Doing + +We use the `useReactive` hook to convert the `start` parameter +into a reactive value that updates whenever the React value +changes. + +Now have a reactive number to pass to `Counter`, and the `use` +hook ensures that the `Counter` blueprint is only constructed +once, when the component is mounted. + +::: + +## Native Parameters vs. Reactive Parameters + +### Native Parameters + + + +:::code-group + +```tsx [react] +function Component({ start }: Props) { + const counter = use(() => Counter(start), [start]); + + return useFormula(() =>
{counter.count}
); // [!code react] +} + +interface Props { // [!code types:3] + start: number; +} +``` + +```tsx [preact] +function Component({ start }: Props) { + const counter = use(() => Counter(start), [start]); + + return
{counter.count}
; // [!code preact] +} + +interface Props { // [!code types:3] + start: number; +} +``` + +```vue [vue] + + + +``` + +```svelte [svelte] + + +
{counter.count}
// [!code template] +``` + +```glimmer [ember] +export default class extends Component { + counter = use(() => Counter(this.args.start)); + + +} + +interface Args { + start: number; +} +``` + +::: + + + + + +### Reactive Parameters + + + +:::code-group + +```tsx [react] +function Component(props: Props) { + const start = useReactive(props.start); + const counter = use(() => Counter(start)); + + return useFormula(() =>
{counter.count}
); // [!code react] +} + +interface Props { // [!code types:3] + start: number; +} +``` + +```tsx [preact] +function Component(props: Props) { + const start = useReactive(props.start); + const counter = use(() => Counter(start)); + + return
{counter.count}
; // [!code preact] +} + +interface Props { // [!code types:3] + start: number; +} +``` + +```vue [vue] + + + +``` + +```svelte [svelte] + + +
{counter.count}
// [!code template] +``` + +```glimmer [ember] +export default class extends Component { + counter = use(() => Counter(this.args.start)); + + +} + +interface Args { + start: number; +} +``` + +::: + + + + + +## Classes as Blueprints + +At the beginning of this article, we noted that JavaScript +classes look exactly like what we need to define a universal +constructor that can be used in any framework. + +Well, if you like classes, you can just use them as blueprints. + +```snippet {#blueprint} + +``` + +And if you need parameters, you can use constructor parameters as +you'd expect. + +```snippet {#with-params} + +``` + +This example uses the `Reactive.from` function to convert the +`start` parameter into a reactive value rather than using +`Reactive.read` in `count` and `increment()`. + +Both approaches have equivalent behavior. + +:::💡 + +If you pass a regular value to `Reactive.from`, it returns a +special kind of reactive value called `Static`. A `Static` value +has the same API as any other reactive value, but will never +become a dependency of any other reactive value. + +::: + +### How Functions And Classes Compare + +The `Counter` class is almost identical to the `Counter` +function, with the expected differences: + +- The `Counter` function takes parameters directly, while the + `Counter` class takes parameters in its constructor. +- The `Counter` function stores its state in a closure, while the + `Counter` class stores its state in class fields. +- The `Counter` function returns an object with methods and + getters that close over the state, while the `Counter` class + declares its methods and getters and accesses the state from + its fields. + +### Using the `Counter` Class in React + +You use the `Counter` class in React as you'd expect: by calling +`new Counter()` in a `use()` call. + +As with the function-based blueprint, you could pass a regular +value to the `Counter` constructor, and then specify it as a +dependency to the `use` hook. + +```snippet {#component} + +``` + +As before, if `start` changes, the `Counter` instance will be +created anew, and the counter will reset. + +But as before, you could pass a reactive value directly to the +`use` hook, which would allow the counter to update without +resetting. + +```snippet {#reactive-component} + +``` diff --git a/.scss-lint.yml b/.scss-lint.yml new file mode 100644 index 0000000..e69de29 diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..cfee932 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,28 @@ +{ + "extends": ["stylelint-config-recommended-vue"], + "files": ["**/*.postcss", "**/*.css", "src/.vitepress/**/*.postcss", "src/.vitepress/**/*.css"], + "ignoreFiles": ["**/node_modules/**", "docs/**"], + "plugins": ["stylelint-gamut"], + "rules": { + "gamut/color-no-out-gamut-range": true, + "color-function-notation": "modern", + "at-rule-no-unknown": [ + true, + { + "ignoreAtRules": [ + "include", + "mixin", + "value", + "using", + "define-mixin", + "extend", + "def-vars", + "def-derived-vars", + "section", + "custom-blocks", + "block" + ] + } + ] + } +} diff --git a/.swc/plugins/v4/2f0cd0b864b27ed585d7ceb74b1c0cc50829dd6de9c56ae6e9ccfc0983692b5e b/.swc/plugins/v4/2f0cd0b864b27ed585d7ceb74b1c0cc50829dd6de9c56ae6e9ccfc0983692b5e new file mode 100644 index 0000000..52d7e80 Binary files /dev/null and b/.swc/plugins/v4/2f0cd0b864b27ed585d7ceb74b1c0cc50829dd6de9c56ae6e9ccfc0983692b5e differ diff --git a/.swcrc b/.swcrc new file mode 100644 index 0000000..d9f19a3 --- /dev/null +++ b/.swcrc @@ -0,0 +1 @@ +{"jsc":{"parser":{"syntax":"typescript","importAssertions":true,"topLevelAwait":true,"importMeta":true,"privateMethod":true,"dynamicImport":true},"target":"es2016","experimental":{"keepImportAssertions":true}}} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..7d2f6fc --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["vue.volar", "cpylua.language-postcss", "rohit-gohri.format-code-action"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 201a73a..436e869 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,94 +1,145 @@ { - "files.exclude": { - "**/.git": true, - "**/.svn": true, - "**/.hg": true, - "**/CVS": true, - "**/.DS_Store": true, - "**/Thumbs.db": true, - "node_modules": true, - "docs": true - }, "[markdown]": { - "editor.unicodeHighlight.ambiguousCharacters": false, - "editor.unicodeHighlight.invisibleCharacters": false, - "editor.wordWrap": "on", + "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.quickSuggestions": { "comments": "on", - "strings": "on", - "other": "on" + "other": "on", + "strings": "on" }, - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "explorer.fileNesting.enabled": true, - "explorer.fileNesting.patterns": { - "*.ts": "${capture}.js, ${capture}.ts.js", - "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts", - "*.jsx": "${capture}.js", - "*.tsx": "${capture}.ts", - "tsconfig.json": "tsconfig.*.json", - "package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, .npmrc, .markdownlint.json" - }, - "explorer.excludeGitIgnore": true, - "search.exclude": { - "**/node_modules": true, - "**/bower_components": true, - "**/*.code-search": true, - "docs": true + "editor.unicodeHighlight.ambiguousCharacters": false, + "editor.unicodeHighlight.invisibleCharacters": false, + "editor.wordWrap": "on" }, - "editor.codeActionsOnSave": { - "source.organizeImports": true + "[postcss]": { + "editor.codeActionsOnSave": ["source.fixAll.stylelint", "source.formatDocument"], + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": false }, - - "scss.lint.float": "warning", - "scss.lint.ieHack": "error", - "scss.lint.important": "warning", - "scss.lint.importStatement": "warning", - "scss.lint.universalSelector": "warning", - "scss.lint.unknownAtRules": "warning", - "scss.lint.unknownVendorSpecificProperties": "warning", - "scss.lint.zeroUnits": "error", - "scssLint.languages": ["scss"], - "scssLint.showHighlights": true, - "[vue][scss]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, - "[yaml]": { - "editor.insertSpaces": true, - "editor.defaultFormatter": "redhat.vscode-yaml", - "editor.tabSize": 2, "editor.autoIndent": "keep", - "gitlens.codeLens.scopes": ["document"], + "editor.defaultFormatter": "redhat.vscode-yaml", + "editor.insertSpaces": true, "editor.quickSuggestions": { - "other": true, "comments": false, + "other": true, "strings": true - } + }, + "editor.tabSize": 2, + "gitlens.codeLens.scopes": ["document"] }, - - "volar.takeOverMode.enabled": "auto", - "volar.autoWrapParentheses": true, - "volar.updateImportsOnFileMove.enabled": true, - "volar.doctor.statusBarItem": true, - "volar.vueserver.vitePress.processMdFile": true, - "volar.autoCompleteRefs": true, - "volar.completion.normalizeComponentAutoImportName": true, - "volar.vueserver.textDocumentSync": "incremental", - - "yaml.schemaStore.enable": true, - "yaml.schemas": { - "./packages/api-docs/dist/api.schema.json": "/src/api/**/*.yml" + "codeium.enableConfig": { + "*": true }, - "yaml.trace.server": "messages", + "cssVariables.lookupFiles": [ + "**/*.vars.css", + "src/.vitepress/**/*.vars.css", + "**/*.extends.css", + "src/.vitepress/**/*.extends.css" + ], + "cssVariables.blacklistFolders": [ + "**/.git", + "**/.svn", + "**/.hg", + "**/CVS", + "**/.DS_Store", + "**/.git", + "**/node_modules", + "**/bower_components", + "**/tmp", + "**/dist", + "**/tests", + "src/.vitepress/cache" + ], + "editor.wordWrap": "bounded", + "explorer.excludeGitIgnore": false, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts", + "*.jsx": "${capture}.js", + "*.postcss": "${capture}.css.ts", + "*.ts": "${capture}.js, ${capture}.ts.js", + "*.tsx": "${capture}.ts", + "package.json": "package-lock.json, yarn.lock, pnpm-*.yaml, .npmrc, .markdownlint.json", + "tsconfig.json": "tsconfig.*.json" + }, + "files.associations": { + "tsconfig.*.json": "jsonc" + }, + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.hg": true, + "**/.svn": true, + "**/CVS": true, + "**/Thumbs.db": true, + "vitepress": true, + "*.css.ts": true, + "**/dist": true, + "**/node_modules": true + }, + "files.trimTrailingWhitespace": false, "json.schemas": [ { "fileMatch": ["src/api/**/$api/*.json", "src/api/**/$api/*.jsonc"], "url": "./packages/api-docs/dist/api.schema.json" } ], - "files.trimTrailingWhitespace": false, - "typescript.tsdk": "node_modules/typescript/lib" + "prettier.resolveGlobalModules": true, + "search.exclude": { + "**/*.code-search": true, + "**/bower_components": true, + "**/node_modules": true, + "docs": true + }, + "stylelint.packageManager": "pnpm", + "stylelint.reportDescriptionlessDisables": true, + "stylelint.reportInvalidScopeDisables": true, + "stylelint.reportNeedlessDisables": true, + "stylelint.snippet": ["css", "postcss"], + "stylelint.validate": ["css", "postcss"], + "todo-tree.filtering.excludeGlobs": ["**/node_modules/**", "docs/**"], + "todo-tree.filtering.includeGlobs": [], + "todo-tree.filtering.includeHiddenFiles": true, + "todo-tree.filtering.scopes": [ + { + "includeGlobs": ["**/*"], + "name": "all" + }, + { + "excludeGlobs": ["src/.vitepress/**"], + "includeGlobs": ["src/**/*.{md,ts,vue}"], + "name": "docs" + }, + { + "excludeGlobs": ["**/node_modules/**"], + "includeGlobs": ["packages/**/*", "src/.vitepress/packages/**/*.{ts,vue}"], + "name": "packages" + }, + { + "excludeGlobs": ["src/.vitepress/cache/**"], + "includeGlobs": ["src/.vitepress/**/*.{ts,vue}"], + "name": "vitepress config" + } + ], + "todo-tree.filtering.useBuiltInExcludes": "file excludes", + "todo-tree.general.showActivityBarBadge": true, + "todo-tree.tree.buttons.groupBySubTag": true, + "todo-tree.tree.buttons.scanMode": true, + "todo-tree.tree.scanAtStartup": false, + "todo-tree.tree.scanMode": "workspace only", + "todo-tree.tree.showCountsInTree": true, + "todo-tree.tree.showCurrentScanMode": true, + "typescript.tsdk": "node_modules/typescript/lib", + "volar.vueserver.noProjectReferences": true, + "volar.vueserver.vitePress.processMdFile": true, + "yaml.schemas": { + "./packages/api-docs/dist/api.schema.json": "/src/api/**/*.yml" + }, + "yaml.schemaStore.enable": true, + "yaml.trace.server": "messages", + "postcss.validate": false } diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..36c1d97 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +d2 +d2.version diff --git a/bin/d2.mjs b/bin/d2.mjs new file mode 100644 index 0000000..beda510 --- /dev/null +++ b/bin/d2.mjs @@ -0,0 +1,76 @@ +// @ts-check +import sh from "shell-escape-tag"; +import { execaCommandSync } from "execa"; +import { resolve } from "node:path"; +import * as svgo from "svgo"; + +const __dirname = resolve(new URL(".", import.meta.url).pathname); + +const allArgs = process.argv.slice(2); +const [filename, args] = + allArgs.length === 0 || allArgs[0].startsWith("-") + ? [undefined, allArgs] + : [allArgs[0], allArgs.slice(1)]; + +const attrs = { filename, cwd: process.cwd() }; +log(attrs); + +const cmd = + filename === undefined + ? sh`${__dirname}/d2 ${args} -` + : sh`${__dirname}/d2 ${resolve(process.cwd(), filename)} ${args}`; + +log(`$ ${cmd}`); + +const output = execaCommandSync(cmd, { + encoding: "utf8", + stdin: "inherit", + stderr: "inherit", + stdout: "pipe", +}); + +if (output.exitCode !== 0) { + console.error("Error in d2. Exiting"); + process.exit(output.exitCode); +} + +const replaced = output.stdout + .replace(/\n@font[-]face [{]\n.*?(?![}])*[}]\n/gms, "\n") + .replace( + /(\s*)font-family: "font-(?[^"]*)";/gm, + + (_, spacing, font) => { + const output = [`font-family: 'Source Sans 3'`]; + switch (font) { + case "bold": + output.push(`font-weight: bold`); + break; + case "italic": + output.push(`font-style: italic`); + break; + case "regular": + break; + } + + return output.map((o) => `${spacing}${o};\n`).join(""); + } + ); + +// const { data: optimized } = svgo.optimize(replaced, { +// plugins: ["convertStyleToAttrs", "mergeStyles", "inlineStyles"], +// }); + +console.log(replaced); + +/** + * @param {unknown[]} values + */ +function log(...values) { + if (process.env?.["NODE_DEBUG"]?.match(/\bd2\b/)) { + console.error(...values); + } +} diff --git a/bin/package.json b/bin/package.json new file mode 100644 index 0000000..bc740b3 --- /dev/null +++ b/bin/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "type": "module", + "dependencies": { + "shelljs": "*", + "shell-escape-tag": "*", + "execa": "^7.1.1", + "svgo": "^3.0.2" + }, + "devDependencies": { + "@types/node": "^18.15.5", + "@types/shelljs": "*", + "@types/shell-escape-tag": "workspace:^", + "@types/svgo": "^3.0.0" + } +} diff --git a/bs-config.json b/bs-config.json new file mode 100644 index 0000000..b3c6951 --- /dev/null +++ b/bs-config.json @@ -0,0 +1,5 @@ +{ + "port": 8000, + "files": ["./docs/**"], + "server": { "baseDir": "./docs" } +} diff --git a/chompfile.toml b/chompfile.toml new file mode 100644 index 0000000..9e984bb --- /dev/null +++ b/chompfile.toml @@ -0,0 +1,107 @@ +version = 0.1 +extensions = [ + 'chomp@0.1:swc', + './packages/chomp-extensions/dts.js', + './packages/chomp-extensions/pkg.js', + './packages/chomp-extensions/postcss.js', + './packages/chomp-extensions/inline-css.js', +] + +[env] +PACKAGE_MANAGER = 'pnpm' + +[[task]] +name = "clean" +deps = ["clean:src", "clean:dist"] + +[[task]] +name = "clean:dist" +run = "rm -rf packages/@*/*/dist" + + +[[task]] +name = "clean:src" +engine = "node" +run = """ +import glob from 'fast-glob'; +import { rmSync } from 'node:fs'; +const files = glob.sync('packages/@*/*/src/**/*.css.ts'); + +for (const file of files) { + rmSync(file); +} +""" + +[[task]] +name = "build" +serial = true +deps = [ + "vue-jsx-runtime", + "mdit", + "tagged-templates", + "utils", + "fenced-container", + "snippets", + "custom-block", + "theme", +] + +[[task]] +name = "build:pre" +deps = ["snippets:postcss", "custom-block:postcss", "theme:postcss"] + +[[task]] +name = "mdit" +template = "pkg" +template-options = { root = "packages/@jsergo/mdit" } + +[[task]] +name = "tagged-templates" +template = "pkg" +template-options = { root = "packages/@jsergo/tagged-templates" } + +[[task]] +name = "utils" +template = "pkg" +template-options = { root = "packages/@wycatsjs/utils" } + +[[task]] +name = "fenced-container" +template = "pkg" +template-options = { root = "packages/@starbeam-docs/fenced-container" } + +[[task]] +name = "custom-block" +template = "pkg" +template-options = { root = "packages/@starbeam-docs/custom-block" } + +[[task]] +name = "custom-block:postcss" +template = "postcss" +template-options = { root = "packages/@starbeam-docs/custom-block" } + +[[task]] +name = "vue-jsx-runtime" +template = "pkg" +template-options = { root = "packages/@starbeam-docs/vue-jsx-runtime" } + +[[task]] +name = "snippets" +template = "pkg" +template-options = { root = "packages/@starbeam-docs/snippets" } + +[[task]] +name = "snippets:postcss" +template = "postcss" +template-options = { root = "packages/@starbeam-docs/snippets" } + + +[[task]] +name = "theme" +template = "pkg" +template-options = { root = "packages/@starbeam-docs/theme" } + +[[task]] +name = "theme:postcss" +template = "postcss" +template-options = { root = "packages/@starbeam-docs/theme" } diff --git a/graph.json b/graph.json new file mode 100644 index 0000000..6886334 --- /dev/null +++ b/graph.json @@ -0,0 +1,1340 @@ +{ + "graph": { + "nodes": { + "@types/postcss-advanced-variables": { + "name": "@types/postcss-advanced-variables", + "type": "lib", + "data": { + "root": "types/@types/postcss-advanced-variables", + "sourceRoot": "types/@types/postcss-advanced-variables", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-advanced-variables/index.d.ts", + "hash": "8140595398123466766" + }, + { + "file": "types/@types/postcss-advanced-variables/package.json", + "hash": "2077978552930008349", + "dependencies": [ + { + "source": "@types/postcss-advanced-variables", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@types/postcss-modules-values": { + "name": "@types/postcss-modules-values", + "type": "lib", + "data": { + "root": "types/@types/postcss-modules-values", + "sourceRoot": "types/@types/postcss-modules-values", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-modules-values/index.d.ts", + "hash": "8286539355328588885" + }, + { + "file": "types/@types/postcss-modules-values/package.json", + "hash": "1686462013149884837", + "dependencies": [ + { + "source": "@types/postcss-modules-values", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@types/postcss-env-function": { + "name": "@types/postcss-env-function", + "type": "lib", + "data": { + "root": "types/@types/postcss-env-function", + "sourceRoot": "types/@types/postcss-env-function", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-env-function/index.d.ts", + "hash": "13081795570994003637" + }, + { + "file": "types/@types/postcss-env-function/package.json", + "hash": "16404638468977448442", + "dependencies": [ + { + "source": "@types/postcss-env-function", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@types/shell-escape-tag": { + "name": "@types/shell-escape-tag", + "type": "lib", + "data": { + "root": "packages/@types/shell-escape-tag", + "sourceRoot": "packages/@types/shell-escape-tag", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/@types/shell-escape-tag/index.d.ts", + "hash": "4595979742548113990" + }, + { + "file": "packages/@types/shell-escape-tag/package.json", + "hash": "17313747928406559349" + } + ] + } + }, + "@types/postcss-extend-rule": { + "name": "@types/postcss-extend-rule", + "type": "lib", + "data": { + "root": "types/@types/postcss-extend-rule", + "sourceRoot": "types/@types/postcss-extend-rule", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-extend-rule/index.d.ts", + "hash": "353095608683152500" + }, + { + "file": "types/@types/postcss-extend-rule/package.json", + "hash": "11851677598237457474", + "dependencies": [ + { + "source": "@types/postcss-extend-rule", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@jsergo/tagged-templates": { + "name": "@jsergo/tagged-templates", + "type": "lib", + "data": { + "root": "packages/ergo-tagged-templates", + "sourceRoot": "packages/ergo-tagged-templates", + "projectType": "library", + "targets": { + "build": { + "executor": "nx:run-script", + "options": { + "script": "build" + } + } + }, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/ergo-tagged-templates/dist/index.d.ts", + "hash": "271305939318037446" + }, + { + "file": "packages/ergo-tagged-templates/dist/index.d.ts.map", + "hash": "13516610566759240034" + }, + { + "file": "packages/ergo-tagged-templates/dist/index.js", + "hash": "15868140944897436270" + }, + { + "file": "packages/ergo-tagged-templates/index.ts", + "hash": "16926337401752159355" + }, + { + "file": "packages/ergo-tagged-templates/package.json", + "hash": "4572657409882776829", + "dependencies": [ + { + "source": "@jsergo/tagged-templates", + "target": "npm:vite", + "type": "dynamic" + }, + { + "source": "@jsergo/tagged-templates", + "target": "@wycatsjs/building", + "type": "dynamic" + } + ] + }, + { + "file": "packages/ergo-tagged-templates/tsconfig.build.json", + "hash": "2990437284747688058" + }, + { + "file": "packages/ergo-tagged-templates/tsconfig.json", + "hash": "4545538838524457687" + }, + { + "file": "packages/ergo-tagged-templates/vite.config.mts", + "hash": "11378356452738396496" + } + ] + } + }, + "@types/postcss-functions": { + "name": "@types/postcss-functions", + "type": "lib", + "data": { + "root": "types/@types/postcss-functions", + "sourceRoot": "types/@types/postcss-functions", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-functions/index.d.ts", + "hash": "7263656636281007223" + }, + { + "file": "types/@types/postcss-functions/package.json", + "hash": "9162196695992917209", + "dependencies": [ + { + "source": "@types/postcss-functions", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@types/postcss-nesting": { + "name": "@types/postcss-nesting", + "type": "lib", + "data": { + "root": "types/@types/postcss-nesting", + "sourceRoot": "types/@types/postcss-nesting", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-nesting/index.d.ts", + "hash": "8286539355328588885" + }, + { + "file": "types/@types/postcss-nesting/package.json", + "hash": "5890903310065677872", + "dependencies": [ + { + "source": "@types/postcss-nesting", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@starbeam/vitepress": { + "name": "@starbeam/vitepress", + "type": "lib", + "data": { + "root": "packages/starbeam-vitepress", + "sourceRoot": "packages/starbeam-vitepress", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/starbeam-vitepress/.gitignore", + "hash": "8529327063868831978" + }, + { + "file": "packages/starbeam-vitepress/index.ts", + "hash": "4595979742548113990" + }, + { + "file": "packages/starbeam-vitepress/package.json", + "hash": "2509757974568401129" + }, + { + "file": "packages/starbeam-vitepress/tsconfig.json", + "hash": "8908893198441302132" + } + ] + } + }, + "@types/postcss-scss": { + "name": "@types/postcss-scss", + "type": "lib", + "data": { + "root": "types/@types/postcss-scss", + "sourceRoot": "types/@types/postcss-scss", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/postcss-scss/index.d.ts", + "hash": "6425107214242101413" + }, + { + "file": "types/@types/postcss-scss/package.json", + "hash": "2575867067671258572", + "dependencies": [ + { + "source": "@types/postcss-scss", + "target": "npm:postcss", + "type": "dynamic" + } + ] + } + ] + } + }, + "@wycatsjs/building": { + "name": "@wycatsjs/building", + "type": "lib", + "data": { + "root": "packages/wycats-building", + "sourceRoot": "packages/wycats-building", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/wycats-building/index.d.ts", + "hash": "14598862672064152418" + }, + { + "file": "packages/wycats-building/index.js", + "hash": "9635599247754226068" + }, + { + "file": "packages/wycats-building/package.json", + "hash": "6497757436739417657", + "dependencies": [ + { + "source": "@wycatsjs/building", + "target": "npm:vite", + "type": "dynamic" + } + ] + }, + { + "file": "packages/wycats-building/src/vite.js", + "hash": "8340858006132466710" + }, + { + "file": "packages/wycats-building/tsconfig.json", + "hash": "3187088736463454643" + } + ] + } + }, + "@types/jsdoc-api": { + "name": "@types/jsdoc-api", + "type": "lib", + "data": { + "root": "types/@types/jsdoc-api", + "sourceRoot": "types/@types/jsdoc-api", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "types/@types/jsdoc-api/index.d.ts", + "hash": "1894544754924258120" + }, + { + "file": "types/@types/jsdoc-api/package.json", + "hash": "9910297767440946752" + } + ] + } + }, + "@wycatsjs/utils": { + "name": "@wycatsjs/utils", + "type": "lib", + "data": { + "root": "packages/wycats-utils", + "sourceRoot": "packages/wycats-utils", + "projectType": "library", + "targets": { + "build": { + "executor": "nx:run-script", + "options": { + "script": "build" + } + } + }, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/wycats-utils/dist/index.d.ts", + "hash": "6882770338505365799" + }, + { + "file": "packages/wycats-utils/dist/index.d.ts.map", + "hash": "14202411542211458813" + }, + { + "file": "packages/wycats-utils/dist/index.js", + "hash": "14793909439077665922" + }, + { + "file": "packages/wycats-utils/dist/src/object.d.ts", + "hash": "9662363850896214216" + }, + { + "file": "packages/wycats-utils/dist/src/object.d.ts.map", + "hash": "9371791638664428879" + }, + { + "file": "packages/wycats-utils/dist/src/strip.d.ts", + "hash": "8558121147210836745" + }, + { + "file": "packages/wycats-utils/dist/src/strip.d.ts.map", + "hash": "12518049099475564984" + }, + { + "file": "packages/wycats-utils/index.ts", + "hash": "15342642973145420880" + }, + { + "file": "packages/wycats-utils/package.json", + "hash": "529561990116532883", + "dependencies": [ + { + "source": "@wycatsjs/utils", + "target": "@jsergo/tagged-templates", + "type": "dynamic" + }, + { + "source": "@wycatsjs/utils", + "target": "@wycatsjs/building", + "type": "dynamic" + }, + { + "source": "@wycatsjs/utils", + "target": "npm:vite", + "type": "dynamic" + }, + { + "source": "@wycatsjs/utils", + "target": "npm:vite-plugin-dts", + "type": "dynamic" + }, + { + "source": "@wycatsjs/utils", + "target": "npm:typescript", + "type": "dynamic" + } + ] + }, + { + "file": "packages/wycats-utils/src/object.ts", + "hash": "17894943989087955096" + }, + { + "file": "packages/wycats-utils/src/strip.ts", + "hash": "6585613930997386587" + }, + { + "file": "packages/wycats-utils/tsconfig.build.json", + "hash": "2867645405986222819" + }, + { + "file": "packages/wycats-utils/tsconfig.json", + "hash": "4545538838524457687" + }, + { + "file": "packages/wycats-utils/vite.config.mts", + "hash": "11378356452738396496" + } + ] + } + }, + "react": { + "name": "react", + "type": "app", + "data": { + "root": "src/frameworks/react", + "sourceRoot": "src/frameworks/react", + "projectType": "application", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "src/frameworks/react/$snippets/quickstart.tsx", + "hash": "8226376233237179577" + }, + { + "file": "src/frameworks/react/$snippets/resources.tsx", + "hash": "12133016694008005903" + }, + { + "file": "src/frameworks/react/$snippets/tutorial-6-component.tsx", + "hash": "1531628801666408053" + }, + { + "file": "src/frameworks/react/$snippets/tutorial-6-native-class-stage-1-decorators.ts", + "hash": "5469482886073969461" + }, + { + "file": "src/frameworks/react/$snippets/tutorial-6-native-class.ts", + "hash": "11953409747657530233" + }, + { + "file": "src/frameworks/react/demos/quickstart/config.ts", + "hash": "11980325922993509577" + }, + { + "file": "src/frameworks/react/demos/quickstart/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/quickstart/src/App.tsx", + "hash": "18007207895087765949" + }, + { + "file": "src/frameworks/react/demos/quickstart/src/index.ts", + "hash": "5880255842241435567" + }, + { + "file": "src/frameworks/react/demos/quickstart/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/quickstart/src/styles.css", + "hash": "18365562102290484490" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/config.ts", + "hash": "553483488093567124" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/App.tsx", + "hash": "12474377923750940311" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/components/Counter.tsx", + "hash": "7513743302057414223" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/index.css", + "hash": "13524894482572056015" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-1/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/config.ts", + "hash": "553483488093567124" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/App.tsx", + "hash": "12474377923750940311" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/components/Counter.css", + "hash": "12091787071635330700" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/components/Counter.tsx", + "hash": "5782442229758667934" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/index.css", + "hash": "13524894482572056015" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-2/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/config.ts", + "hash": "553483488093567124" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/App.tsx", + "hash": "12474377923750940311" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/components/Counter.css", + "hash": "12091787071635330700" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/components/Counter.tsx", + "hash": "3486848991661035612" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/index.css", + "hash": "13524894482572056015" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-3/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/config.ts", + "hash": "553483488093567124" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/App.tsx", + "hash": "12474377923750940311" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/components/Counter.css", + "hash": "12091787071635330700" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/components/Counter.tsx", + "hash": "11235760648855983915" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/index.css", + "hash": "13524894482572056015" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-4/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/config.ts", + "hash": "6958946977898823473" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/App.tsx", + "hash": "15791195198057736511" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/components/Counter.css", + "hash": "10982867809145376318" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/components/Counter.tsx", + "hash": "10491898660875075620" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/components/Equation.tsx", + "hash": "8099866556438898489" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/components/Sum.css", + "hash": "9581171695367580565" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/components/Sum.tsx", + "hash": "17426662282420159300" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/index.css", + "hash": "13940153659030512618" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-5/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/config.ts", + "hash": "6958946977898823473" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/index.html", + "hash": "17267172312098703937" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/App.css", + "hash": "7912995977079687306" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/App.tsx", + "hash": "12474377923750940311" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/components/Counter.css", + "hash": "12091787071635330700" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/components/Counter.tsx", + "hash": "2387925955483507524" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/index.css", + "hash": "13940153659030512618" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/index.ts", + "hash": "4734072752240905032" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/lib/counter.ts", + "hash": "16437602476763602039" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/prism.css", + "hash": "6739665496633660392" + }, + { + "file": "src/frameworks/react/demos/tutorial-6/src/stopwatch.ts", + "hash": "12050697615563667994" + }, + { + "file": "src/frameworks/react/index.md", + "hash": "2223391322158351001" + }, + { + "file": "src/frameworks/react/package.json", + "hash": "14037141672109898463", + "dependencies": [ + { + "source": "react", + "target": "npm:@starbeam/react", + "type": "dynamic" + }, + { + "source": "react", + "target": "npm:@starbeam/universal", + "type": "dynamic" + }, + { + "source": "react", + "target": "npm:react-dom", + "type": "dynamic" + }, + { + "source": "react", + "target": "npm:@types/react", + "type": "dynamic" + }, + { + "source": "react", + "target": "npm:@types/react-dom", + "type": "dynamic" + } + ] + }, + { + "file": "src/frameworks/react/tsconfig.json", + "hash": "17111893439500246187" + }, + { + "file": "src/frameworks/react/tutorial/1-getting-started.md", + "hash": "14002638239484813280" + }, + { + "file": "src/frameworks/react/tutorial/2-computed-data.md", + "hash": "7261542651644723622" + }, + { + "file": "src/frameworks/react/tutorial/3-reactive-builtins.md", + "hash": "15725621188168765440" + }, + { + "file": "src/frameworks/react/tutorial/4-reactive-arrays.md", + "hash": "3635360655577200568" + }, + { + "file": "src/frameworks/react/tutorial/5-reactive-arrays-bonus.md", + "hash": "10241815338367170590" + }, + { + "file": "src/frameworks/react/tutorial/6-custom-reactive-objects.md", + "hash": "17341585645234009521" + }, + { + "file": "src/frameworks/react/tutorial/index.md", + "hash": "12996898633558523491" + } + ] + } + }, + "@jsergo/mdit": { + "name": "@jsergo/mdit", + "type": "lib", + "data": { + "root": "packages/ergo-mdit", + "sourceRoot": "packages/ergo-mdit", + "projectType": "library", + "targets": { + "build": { + "executor": "nx:run-script", + "options": { + "script": "build" + } + } + }, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/ergo-mdit/dist/index.d.ts", + "hash": "7751864091504296235" + }, + { + "file": "packages/ergo-mdit/dist/index.d.ts.map", + "hash": "10378685441292326324" + }, + { + "file": "packages/ergo-mdit/dist/index.js", + "hash": "17855981290349306116" + }, + { + "file": "packages/ergo-mdit/dist/src/parser-plugin.d.ts", + "hash": "15279669633049978278" + }, + { + "file": "packages/ergo-mdit/dist/src/parser-plugin.d.ts.map", + "hash": "2935464369778946848" + }, + { + "file": "packages/ergo-mdit/dist/src/state.d.ts", + "hash": "1571880389061185414" + }, + { + "file": "packages/ergo-mdit/dist/src/state.d.ts.map", + "hash": "6163298507740657157" + }, + { + "file": "packages/ergo-mdit/dist/src/types.d.ts", + "hash": "3350085797304186521" + }, + { + "file": "packages/ergo-mdit/dist/src/types.d.ts.map", + "hash": "16242218196079971292" + }, + { + "file": "packages/ergo-mdit/index.ts", + "hash": "11882666096998113143" + }, + { + "file": "packages/ergo-mdit/package.json", + "hash": "3923395510591132249", + "dependencies": [ + { + "source": "@jsergo/mdit", + "target": "@wycatsjs/building", + "type": "dynamic" + }, + { + "source": "@jsergo/mdit", + "target": "npm:markdown-it", + "type": "dynamic" + } + ] + }, + { + "file": "packages/ergo-mdit/src/parser-plugin.ts", + "hash": "1656664214280092722" + }, + { + "file": "packages/ergo-mdit/src/state.ts", + "hash": "11470681553661450935" + }, + { + "file": "packages/ergo-mdit/src/types.ts", + "hash": "6967459702667174432" + }, + { + "file": "packages/ergo-mdit/tsconfig.build.json", + "hash": "2867645405986222819" + }, + { + "file": "packages/ergo-mdit/tsconfig.json", + "hash": "4545538838524457687" + }, + { + "file": "packages/ergo-mdit/vite.config.mts", + "hash": "11378356452738396496" + } + ] + } + }, + "@starbeam/api-docs": { + "name": "@starbeam/api-docs", + "type": "lib", + "data": { + "root": "packages/api-docs", + "sourceRoot": "packages/api-docs", + "projectType": "library", + "targets": { + "schema:build": { + "executor": "nx:run-script", + "options": { + "script": "schema:build" + } + } + }, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/api-docs/dist/api.schema.json", + "hash": "12710500909163842911" + }, + { + "file": "packages/api-docs/package.json", + "hash": "18291471681445699136", + "dependencies": [ + { + "source": "@starbeam/api-docs", + "target": "npm:ts-json-schema-generator", + "type": "dynamic" + } + ] + }, + { + "file": "packages/api-docs/src/api.d.ts", + "hash": "4188303172426255206" + }, + { + "file": "packages/api-docs/src/index.ts", + "hash": "15819189742333349605" + } + ] + } + }, + "@starbeam/docs-twoslash": { + "name": "@starbeam/docs-twoslash", + "type": "lib", + "data": { + "root": "packages/twoslash", + "sourceRoot": "packages/twoslash", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/twoslash/package.json", + "hash": "17546516428941951861", + "dependencies": [ + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@types/react", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@types/react-dom", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:typescript", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/debug", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/universal", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/js", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/preact", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/react", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/timeline", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:@starbeam/interfaces", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "react", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:react-dom", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:preact", + "type": "dynamic" + }, + { + "source": "@starbeam/docs-twoslash", + "target": "npm:preact-render-to-string", + "type": "dynamic" + } + ] + }, + { + "file": "packages/twoslash/src/dummy.ts", + "hash": "4595979742548113990" + }, + { + "file": "packages/twoslash/tsconfig.json", + "hash": "7316307873088833610" + } + ] + } + }, + "@starbeam/monaco": { + "name": "@starbeam/monaco", + "type": "lib", + "data": { + "root": "packages/monaco", + "sourceRoot": "packages/monaco", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "packages/monaco/package.json", + "hash": "2577179966730496807", + "dependencies": [ + { + "source": "@starbeam/monaco", + "target": "npm:monaco-editor", + "type": "dynamic" + } + ] + }, + { + "file": "packages/monaco/src/dummy.ts", + "hash": "4595979742548113990" + }, + { + "file": "packages/monaco/src/worker/dependencies.ts", + "hash": "15148699378937487547" + }, + { + "file": "packages/monaco/src/worker/enums.ts", + "hash": "10234420728873901708" + }, + { + "file": "packages/monaco/src/worker/events.ts", + "hash": "12351651363866387948" + }, + { + "file": "packages/monaco/src/worker/main.ts", + "hash": "15184465848559767603" + }, + { + "file": "packages/monaco/src/worker/ts/build.ts", + "hash": "18022535197855374300" + }, + { + "file": "packages/monaco/src/worker/ts/dep.ts", + "hash": "5065237143517026209" + }, + { + "file": "packages/monaco/src/worker/ts/index.ts", + "hash": "2090912977337311969" + }, + { + "file": "packages/monaco/src/worker/ts/input.ts", + "hash": "1247750143166068917" + }, + { + "file": "packages/monaco/src/worker/ts/system.ts", + "hash": "7638161244933482445" + }, + { + "file": "packages/monaco/src/worker/ts/utils.ts", + "hash": "18407101688913646668" + }, + { + "file": "packages/monaco/src/worker/utils.ts", + "hash": "509567725488073008" + } + ] + } + }, + "@starbeam/doc-scripts": { + "name": "@starbeam/doc-scripts", + "type": "lib", + "data": { + "root": "scripts", + "sourceRoot": "scripts", + "projectType": "library", + "targets": {}, + "implicitDependencies": [], + "tags": [], + "files": [ + { + "file": "scripts/fast-extract.d.ts", + "hash": "17198808155772572016" + }, + { + "file": "scripts/fetch-d2.js", + "hash": "17578677837714288250" + }, + { + "file": "scripts/generate-api.js", + "hash": "16132632896089703741" + }, + { + "file": "scripts/package.json", + "hash": "16168620043834291009", + "dependencies": [ + { + "source": "@starbeam/doc-scripts", + "target": "npm:fast-glob", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:shell-escape-tag", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:shelljs", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:yaml", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:wget-improved", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:cli-progress", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:fast-extract", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:chalk", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:@types/cli-progress", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:@types/node", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "@types/shell-escape-tag", + "type": "dynamic" + }, + { + "source": "@starbeam/doc-scripts", + "target": "npm:@types/shelljs", + "type": "dynamic" + } + ] + }, + { + "file": "scripts/tsconfig.json", + "hash": "12597526385696827842" + } + ] + } + } + }, + "dependencies": { + "@types/postcss-advanced-variables": [], + "@types/postcss-modules-values": [], + "@types/postcss-env-function": [], + "@types/shell-escape-tag": [], + "@types/postcss-extend-rule": [], + "@jsergo/tagged-templates": [ + { + "source": "@jsergo/tagged-templates", + "target": "@wycatsjs/building", + "type": "dynamic" + } + ], + "@types/postcss-functions": [], + "@types/postcss-nesting": [], + "@starbeam/vitepress": [], + "@types/postcss-scss": [], + "@wycatsjs/building": [], + "@types/jsdoc-api": [], + "@wycatsjs/utils": [ + { + "source": "@wycatsjs/utils", + "target": "@jsergo/tagged-templates", + "type": "dynamic" + }, + { + "source": "@wycatsjs/utils", + "target": "@wycatsjs/building", + "type": "dynamic" + } + ], + "react": [], + "@jsergo/mdit": [ + { + "source": "@jsergo/mdit", + "target": "@wycatsjs/building", + "type": "dynamic" + } + ], + "@starbeam/api-docs": [], + "@starbeam/docs-twoslash": [ + { + "source": "@starbeam/docs-twoslash", + "target": "react", + "type": "dynamic" + } + ], + "@starbeam/monaco": [], + "@starbeam/doc-scripts": [ + { + "source": "@starbeam/doc-scripts", + "target": "@types/shell-escape-tag", + "type": "dynamic" + } + ] + } + }, + "affectedProjects": [], + "criticalPath": [] +} diff --git a/nx.json b/nx.json new file mode 100644 index 0000000..b1cc792 --- /dev/null +++ b/nx.json @@ -0,0 +1,49 @@ +{ + "namedInputs": { + "source": [ + "{projectRoot}/index.ts", + "{projectRoot}/src/**/*.ts", + "!{projectRoot}/node_modules/**" + ], + "default": ["source"], + "build": ["default"], + "production": ["default"] + }, + "configurations": { + "compile": {} + }, + "workspaceLayout": { + "appsDir": "src", + "libsDir": "packages" + }, + "tasksRunnerOptions": { + "default": { + "runner": "nx/tasks-runners/default", + "options": { + "cacheableOperations": ["build"] + } + } + }, + "pluginsConfig": { + "@nrwl/js": { + "analyzeSourceFiles": false, + "analyzePackageJson": true + } + }, + "targetDefaults": { + "build": { + "executor": "@nrwl/js:swc", + "outputs": ["{options.outputPath}"], + "options": { + "clean": true, + "swcrc": "packages/.swcrc", + "outputPath": "{projectRoot}/dist", + "tsConfig": "{workspaceRoot}/tsconfig.base.json", + "main": "{projectRoot}/index.ts", + "skipTypeCheck": true + }, + "inputs": ["production", "^production"] + } + }, + "$schema": "./node_modules/nx/schemas/nx-schema.json" +} diff --git a/package.json b/package.json index c2e8684..3a6f0dd 100644 --- a/package.json +++ b/package.json @@ -1,97 +1,200 @@ { "name": "starbeam-docs", + "packageManager": "pnpm@7.26.0", "type": "module", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { - "docs:dev": "vitepress dev src", + "build:chomp": "node ./scripts/chomp.js", + "build:api": "node ./scripts/generate-api.js", + "build:deps": "pnpm -r build", + "build:schema": "pnpm --filter @starbeam/api-docs schema:build", "docs:build": "vitepress build src", + "docs:dev": "vitepress dev src", "docs:serve": "vitepress serve src", - "build:schema": "pnpm --filter @starbeam/api-docs schema:build", - "build:api": "node ./scripts/generate-api.js" + "fetch:d2": "node ./scripts/fetch-d2.js", + "nx": "nx", + "prepare": "node ./scripts/prepare.js", + "prepublish": "node ./scripts/fetch-d2.js --force", + "update:d2": "node ./scripts/fetch-d2.js --force" }, "keywords": [], "author": "", "license": "ISC", + "prettier": { + "proseWrap": "always" + }, + "browserslist": "last 2 versions", "devDependencies": { + "@babel/core": "^7.21.0", "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@codesandbox/sandpack-client": "^1.18.0", - "@csstools/postcss-design-tokens": "^1.2.0", - "@iconify/json": "^2.1.155", - "@mdit-vue/plugin-sfc": "^0.11.1", - "@stackblitz/sdk": "^1.8.1", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/preset-env": "^7.20.2", + "@codesandbox/sandpack-client": "^2.1.0", + "@csstools/postcss-global-data": "^1.0.3", + "@cypress/code-coverage": "^3.10.0", + "@cypress/vite-dev-server": "^5.0.4", + "@cypress/vue": "^5.0.4", + "@fullhuman/postcss-purgecss": "^5.0.0", + "@iconify-json/nonicons": "^1.1.2", + "@intlify/eslint-plugin-vue-i18n": "^2.0.0", + "@jsergo/mdit": "workspace:^", + "@mdit-vue/plugin-sfc": "^0.12.0", + "@monaco-editor/loader": "^1.3.2", + "@nrwl/cypress": "^15.8.2", + "@nrwl/devkit": "^15.8.2", + "@nrwl/eslint-plugin-nx": "^15.8.2", + "@nrwl/js": "15.8.2", + "@nrwl/node": "15.8.2", + "@nrwl/vite": "15.8.2", + "@nrwl/workspace": "15.8.2", + "@samatech/postcss-basics": "^0.6.0", + "@shimyshack/uid": "^0.1.7", + "@stackblitz/sdk": "^1.8.2", + "@starbeam-docs/custom-block": "workspace:^", + "@starbeam-docs/fenced-container": "workspace:^", + "@starbeam-docs/snippets": "workspace:^", + "@starbeam-docs/theme": "workspace:^", "@starbeam/api-docs": "workspace:^0.0.0", - "@starbeam/debug": "*", - "@starbeam/interfaces": "*", - "@starbeam/js": "*", - "@starbeam/preact": "*", - "@starbeam/react": "*", - "@starbeam/timeline": "*", - "@starbeam/universal": "*", - "@starbeam/vitepress": "workspace:1.0.0", - "@tuzig/toml": "3.0.0-browser", - "@types/diacritics": "^1.3.1", + "@starbeam/debug": "0.8.9", + "@starbeam/interfaces": "0.8.9", + "@starbeam/js": "0.8.9", + "@starbeam/preact": "0.8.9", + "@starbeam/react": "0.8.9", + "@starbeam/timeline": "0.8.9", + "@starbeam/universal": "0.8.9", + "@starbeam/vitepress": "workspace:^", + "@swc/cli": "~0.1.62", + "@swc/core": "^1.3.37", + "@types/css-tree": "^2.3.1", "@types/hash-sum": "^1.0.0", "@types/jsdoc-api": "workspace:1.0.0", "@types/markdown-it": "^12.2.3", + "@types/markdown-it-bracketed-spans": "workspace:^", + "@types/node": "~18.7.23", "@types/postcss-advanced-variables": "workspace:1.0.0", - "@types/postcss-env-function": "workspace:1.0.0", - "@types/postcss-functions": "workspace:1.0.0", - "@types/postcss-modules-values": "workspace:1.0.0", - "@types/postcss-nesting": "workspace:1.0.0", - "@types/postcss-scss": "workspace:1.0.0", - "@types/react": "*", - "@types/react-dom": "*", + "@types/postcss-css-variables": "^0.18.0", + "@types/postcss-env-function": "workspace:^", + "@types/postcss-extend-rule": "workspace:^", + "@types/postcss-functions": "workspace:^", + "@types/postcss-mixins": "^9.0.0", + "@types/postcss-modules-values": "workspace:^", + "@types/postcss-nesting": "workspace:^", + "@types/postcss-prefix-selector": "^1.15.0", + "@types/react-dom": "^18.0.11", + "@types/react": "^18.0.28", + "@typescript-eslint/eslint-plugin": "5.54.0", + "@typescript-eslint/parser": "^5.54.0", + "@typescript/twoslash": "^3.2.1", + "@typescript/vfs": "^1.4.0", "@vitejs/plugin-vue": "^4.0.0", - "@vue/runtime-core": "^3.2.45", - "@vue/runtime-dom": "^3.2.45", - "@vueuse/core": "^9.8.2", + "@vitest/coverage-c8": "~0.25.8", + "@vitest/ui": "^0.25.8", + "@vue/eslint-config-typescript": "^11.0.2", + "@vue/runtime-core": "^3.2.47", + "@vue/runtime-dom": "^3.2.47", + "@vue/test-utils": "^2.3.0", + "@vueuse/core": "^9.13.0", + "@wycatsjs/utils": "workspace:^", + "chomp": "^0.2.13", + "class-transformer": "^0.5.1", + "css-tree": "^2.3.1", + "cypress": "^12.7.0", "docs-snippet": "^1.0.4", + "eslint-config-prettier": "^8.6.0", + "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-vue": "^9.9.0", + "eslint": "^8.35.0", + "execa": "^7.0.0", + "fast-glob": "^3.2.12", "fenceparser": "^2.2.0", "fflate": "^0.7.4", + "find-up": "^6.3.0", + "happy-dom": "^8.9.0", "hash-sum": "^2.0.0", "jsdoc-api": "^8.0.0", + "jsdom": "~20.0.3", + "markdown-it-bracketed-spans": "^1.0.1", + "markdown-it-plantuml-ex": "^1.0.0", + "markdown-it-shiki-twoslash": "^2.1.1", "markdown-it": "^13.0.1", - "markdown-it-emoji": "^2.0.2", - "markdown-it-shiki-twoslash": "^2.1.0", - "markdown-it-toc-done-right": "^4.2.0", - "mermaid": "^9.3.0", - "postcss": "^8.4.20", - "postcss-advanced-variables": "^3.0.1", + "mini-svg-data-uri": "^1.4.4", + "monaco-editor": "0.36.0-dev.20230217", + "nanoid": "^4.0.1", + "picocolors": "1.0.0", + "pikchr-wasm": "^2.0.0", + "pkg-up": "^4.0.0", + "pnpapi": "^0.0.0", "postcss-atroot": "^0.2.3", + "postcss-cli": "^10.1.0", + "postcss-css-variables": "^0.18.0", "postcss-current-selector": "^0.0.3", - "postcss-env-function": "^4.0.6", + "postcss-custom-prop-vars": "^0.0.5", + "postcss-custom-properties": "^13.1.4", + "postcss-env-function": "^5.0.1", + "postcss-extend-rule": "^4.0.0", "postcss-functions": "^4.0.2", + "postcss-html": "^1.5.0", + "postcss-load-config": "^4.0.1", + "postcss-mixins": "^9.0.4", "postcss-modules-values": "^4.0.0", - "postcss-nested": "^6.0.0", + "postcss-modules": "^6.0.0", "postcss-nested-ancestors": "^3.0.0", - "postcss-nesting": "^10.2.0", + "postcss-nested": "^6.0.1", + "postcss-nesting": "^11.2.1", + "postcss-plugin-context": "^2.0.0", + "postcss-prefix-selector": "^1.16.0", + "postcss-preset-env": "^8.0.1", "postcss-property-lookup": "^3.0.0", - "postcss-scss": "^4.0.6", - "prettier": "^2.8.1", - "rollup-plugin-visualizer": "^5.8.3", - "sandpack-vue3": "^2.0.6", - "sass": "^1.57.1", - "shiki": "^0.12.1", - "shiki-twoslash": "^3.1.0", - "typescript": "*", - "vite": "^4.0.0", - "vite-plugin-babel": "^1.1.2", - "vitepress": "1.0.0-alpha.33", - "vitest": "^0.26.2", - "vue": "^3.2.45" + "postcss-simple-vars": "^7.0.1", + "postcss": "^8.4.21", + "prettier": "^2.8.4", + "remark-shiki-twoslash": "^3.1.1", + "rollup-plugin-visualizer": "^5.9.0", + "sandpack-vue3": "^3.0.6-beta.1", + "semver-regex": "^4.0.5", + "shiki-processor": "^0.1.3", + "shiki-twoslash": "^3.1.1", + "shiki": "^0.14.1", + "strip-ansi": "^7.0.1", + "stylelint-config-recommended-vue": "^1.4.0", + "stylelint-config-standard": "^30.0.1", + "stylelint-gamut": "^1.3.1", + "stylelint": "^15.2.0", + "svgbob-wasm": "^1.0.0", + "swc-plugin-vue-jsx": "^0.2.0", + "ts-node": "^10.9.1", + "tsconfig": "^7.0.0", + "turbo": "^1.8.3", + "typescript": "next", + "unplugin-icons": "^0.15.3", + "unplugin-vue-components": "^0.24.0", + "vite-plugin-babel": "^1.1.3", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-wasm-esm": "^1.0.0", + "vite-tsconfig-paths": "^4.0.5", + "vite": "^4.2.1", + "vitepress-plugin-tabs": "^0.2.0", + "vitepress": "1.0.0-alpha.61", + "vitest": "^0.28.5", + "vue-eslint-parser": "^9.1.0", + "vue-sfc2esm": "^0.1.6", + "vue": "^3.2.47" }, "imports": { - "#components": "./src/$components" + "#components": "./src/-components" }, "pnpm": { "overrides": { - "vite": "^4", - "typescript": "^4.9.4", + "vite": "^4.1.2", + "vue": "^3.2.47", + "typescript": "next", "@typescript/twoslash": "^3.2.1", - "@types/react": "^18.0.26", - "@types/react-dom": "^18.0.9", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@babel/plugin-transform-typescript": "^7.21.3", "tslib": "^2.4.1", "@starbeam/debug": "0.8.9", "@starbeam/js": "0.8.9", @@ -100,13 +203,16 @@ "@starbeam/universal": "0.8.9", "@starbeam/interfaces": "0.8.9", "@starbeam/preact": "0.8.9", - "preact-render-to-string": "5.2.6" + "preact-render-to-string": "5.2.6", + "shiki": "^0.14.1" }, "peerDependencyRules": { "allowedVersions": { "react": "18", "react-dom": "18", - "vite": "4" + "vite": "4", + "stylelint": "15", + "typescript": "5" }, "ignoreMissing": [ "@types/react" @@ -114,11 +220,30 @@ } }, "dependencies": { + "@sampullman/fetch-api": "^0.9.1", + "@swc/helpers": "~0.4.14", "balloon-css": "^1.2.0", + "date-fns": "^2.29.3", "diacritics": "^1.3.0", - "vue-console-feed": "^0.0.27" + "tslib": "^2.5.0", + "vue-console-feed": "^0.0.28", + "vue-i18n": "^9.2.2", + "vue-router": "^4.1.6" }, "volta": { - "node": "19.1.0" + "node": "19.6.0" + }, + "nx": { + "docs:dev": { + "inputs": [ + "{workspaceRoot}/src/**/*.ts" + ], + "outputs": [ + "{workspaceRoot}/src/.vitepress/cache" + ], + "dependsOn": [ + "^build" + ] + } } } diff --git a/packages/.gitignore b/packages/.gitignore new file mode 100644 index 0000000..0979a6c --- /dev/null +++ b/packages/.gitignore @@ -0,0 +1 @@ +**/node_modules/** diff --git a/packages/.swcrc b/packages/.swcrc new file mode 100644 index 0000000..9d3b44e --- /dev/null +++ b/packages/.swcrc @@ -0,0 +1,29 @@ +{ + "$schema": "https://json.schemastore.org/swcrc.json", + "jsc": { + "target": "es2022", + "experimental": { + "plugins": [["swc-plugin-vue-jsx", {}]] + }, + "parser": { + "syntax": "typescript", + "tsx": true, + "decorators": false, + "dynamicImport": true + }, + "transform": { + "decoratorMetadata": false, + "legacyDecorator": false + }, + "keepClassNames": true, + "externalHelpers": true, + "loose": false + }, + "module": { + "type": "es6", + "strict": true, + "noInterop": true + }, + "sourceMaps": true, + "exclude": ["node_modules", "dist"] +} diff --git a/packages/@jsergo/mdit/dist/index.js b/packages/@jsergo/mdit/dist/index.js new file mode 100644 index 0000000..701cc98 --- /dev/null +++ b/packages/@jsergo/mdit/dist/index.js @@ -0,0 +1,5 @@ +export { parserPlugin } from "./parser-plugin.js"; +export * from "./state.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/index.js.map b/packages/@jsergo/mdit/dist/index.js.map new file mode 100644 index 0000000..c9b7b9a --- /dev/null +++ b/packages/@jsergo/mdit/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SACE,YAAY,QAOP,qBAAqB;AAC5B,cAAc,aAAa","file":"index.js","sourcesContent":["export {\n parserPlugin,\n type BlockPlugin,\n type Consume,\n type PluginHelper,\n type PluginInsertion,\n type PluginOptions,\n type Render,\n} from \"./parser-plugin.js\";\nexport * from \"./state.js\";\nexport type {\n RuleBlock,\n TypedBlockRule,\n TypedBlockState,\n} from \"./types.js\";\n"]} \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/parser-plugin.js b/packages/@jsergo/mdit/dist/parser-plugin.js new file mode 100644 index 0000000..a0e71ab --- /dev/null +++ b/packages/@jsergo/mdit/dist/parser-plugin.js @@ -0,0 +1,165 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +import { MDStateCreator } from "./state.js"; +export class ReturnRendered { + html(content) { + return { + type: "html", + content + }; + } + tokens(tokens) { + return { + type: "tokens", + content: tokens + }; + } + empty() { + return { + type: "empty" + }; + } + reconsume() { + return { + type: "reconsume" + }; + } +} +const RENDER = new ReturnRendered(); +var _state = /*#__PURE__*/ new WeakMap(); +export class PluginHelper { + get md() { + return _classPrivateFieldGet(this, _state).md; + } + get env() { + return _classPrivateFieldGet(this, _state).env; + } + renderHTML(content) { + return _classPrivateFieldGet(this, _state).renderHTML(content); + } + renderInline(content) { + return _classPrivateFieldGet(this, _state).renderInline(content); + } + parseBlock(content) { + return _classPrivateFieldGet(this, _state).parse(content); + } + parseInline(content) { + return _classPrivateFieldGet(this, _state).parseInline(content); + } + error(message) { + return _classPrivateFieldGet(this, _state).error(message); + } + constructor(state){ + _classPrivateFieldInit(this, _state, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _state, state); + } +} +export function parserPlugin(pluginOptions) { + var _pluginOptions_env; + const wrapEnv = (_pluginOptions_env = pluginOptions.env) !== null && _pluginOptions_env !== void 0 ? _pluginOptions_env : (env)=>env; + return { + block: (plugin)=>{ + return (md, _options)=>{ + const createState = new MDStateCreator(md, wrapEnv); + const parser = (state, startLine, _endLine, silent)=>{ + const mdState = createState.create(state); + const line = mdState.line(startLine); + if (line.isCodeBlock) { + return false; + } + const consume = plugin(line, new PluginHelper(mdState)); + if (!consume) { + return false; + } + const render = consume(); + if (!render) { + return false; + } + if (silent) { + return true; + } + const rendered = render(RENDER); + switch(rendered.type){ + case "html": + { + const token = state.push("html_block", "", 0); + token.content = rendered.content; + return true; + } + case "tokens": + { + for (const token of rendered.content){ + state.tokens.push(token); + } + } + case "empty": + { + return true; + } + case "reconsume": + { + return false; + } + } + }; + if ("before" in pluginOptions) { + const { name , before } = pluginOptions; + md.block.ruler.before(before, name, parser); + } else if ("after" in pluginOptions) { + const { name , after } = pluginOptions; + md.block.ruler.after(after, name, parser); + } else if ("replace" in pluginOptions) { + const { replace } = pluginOptions; + md.block.ruler.at(replace, parser); + } else if ("append" in pluginOptions) { + const { append: name } = pluginOptions; + md.block.ruler.push(name, parser); + } + }; + } + }; +} + + +//# sourceMappingURL=parser-plugin.js.map \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/parser-plugin.js.map b/packages/@jsergo/mdit/dist/parser-plugin.js.map new file mode 100644 index 0000000..cc0a4d6 --- /dev/null +++ b/packages/@jsergo/mdit/dist/parser-plugin.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/parser-plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAEE,cAAc,QAET,aAAa;AAqBpB,OAAO,MAAM;IACX,KAAK,OAAe,EAAmB;QACrC,OAAO;YACL,MAAM;YACN;QACF;IACF;IAEA,OAAO,MAAe,EAAmB;QACvC,OAAO;YACL,MAAM;YACN,SAAS;QACX;IACF;IAEA,QAAyB;QACvB,OAAO;YACL,MAAM;QACR;IACF;IAEA,YAA6B;QAC3B,OAAO;YACL,MAAM;QACR;IACF;AACF,CAAC;AAED,MAAM,SAAS,IAAI;IAGR;AADX,OAAO,MAAM;IAOX,IAAI,KAAiB;QACnB,OAAO,sBAAA,IAAI,EAAE,QAAM,EAAE;IACvB;IAEA,IAAI,MAAe;QACjB,OAAO,sBAAA,IAAI,EAAE,QAAM,GAAG;IACxB;IAEA,WAAW,OAAe,EAAU;QAClC,OAAO,sBAAA,IAAI,EAAE,QAAM,UAAU,CAAC;IAChC;IAEA,aAAa,OAAe,EAAU;QACpC,OAAO,sBAAA,IAAI,EAAE,QAAM,YAAY,CAAC;IAClC;IAEA,WAAW,OAAe,EAAW;QACnC,OAAO,sBAAA,IAAI,EAAE,QAAM,KAAK,CAAC;IAC3B;IAEA,YAAY,OAAe,EAAW;QACpC,OAAO,sBAAA,IAAI,EAAE,QAAM,WAAW,CAAC;IACjC;IAEA,MAAM,OAAe,EAAU;QAC7B,OAAO,sBAAA,IAAI,EAAE,QAAM,KAAK,CAAC;IAC3B;IA9BA,YAAY,KAAmB,CAAE;QAFjC,6BAAS;;mBAAT,KAAA;;oCAGQ,QAAQ;IAChB;AA6BF,CAAC;AA2BD,OAAO,SAAS,aACd,aAAoC,EAKpC;QAEE;IADF,MAAM,UACJ,CAAA,qBAAA,cAAc,GAAG,cAAjB,gCAAA,qBAAsB,CAAC,MAAQ,GAAsB;IAEvD,OAAO;QACL,OAAO,CAAU,SAA6B;YAC5C,OAAO,CAAC,IAAgB,WAAsB;gBAC5C,MAAM,cAAc,IAAI,eAAe,IAAI;gBAE3C,MAAM,SAA4B,CAChC,OACA,WACA,UACA,SACY;oBACZ,MAAM,UAAU,YAAY,MAAM,CAAC;oBACnC,MAAM,OAAO,QAAQ,IAAI,CAAC;oBAE1B,IAAI,KAAK,WAAW,EAAE;wBACpB,OAAO,KAAK;oBACd,CAAC;oBAED,MAAM,UAAU,OACd,MACA,IAAI,aAAa;oBAGnB,IAAI,CAAC,SAAS;wBACZ,OAAO,KAAK;oBACd,CAAC;oBAED,MAAM,SAAS;oBAEf,IAAI,CAAC,QAAQ;wBACX,OAAO,KAAK;oBACd,CAAC;oBAED,IAAI,QAAQ;wBACV,OAAO,IAAI;oBACb,CAAC;oBAED,MAAM,WAAW,OAAO;oBAExB,OAAQ,SAAS,IAAI;wBACnB,KAAK;4BAAQ;gCACX,MAAM,QAAQ,MAAM,IAAI,CAAC,cAAc,IAAI;gCAC3C,MAAM,OAAO,GAAG,SAAS,OAAO;gCAChC,OAAO,IAAI;4BACb;wBACA,KAAK;4BAAU;gCACb,KAAK,MAAM,SAAS,SAAS,OAAO,CAAE;oCACpC,MAAM,MAAM,CAAC,IAAI,CAAC;gCACpB;4BACF;wBACA,KAAK;4BAAS;gCACZ,OAAO,IAAI;4BACb;wBACA,KAAK;4BAAa;gCAChB,OAAO,KAAK;4BACd;oBACF;gBACF;gBAEA,IAAI,YAAY,eAAe;oBAC7B,MAAM,EAAE,KAAI,EAAE,OAAM,EAAE,GAAG;oBACzB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACnB,QACA,MACA;gBAEJ,OAAO,IAAI,WAAW,eAAe;oBACnC,MAAM,EAAE,KAAI,EAAE,MAAK,EAAE,GAAG;oBACxB,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,MAAM;gBACpC,OAAO,IAAI,aAAa,eAAe;oBACrC,MAAM,EAAE,QAAO,EAAE,GAAG;oBACpB,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;gBAC7B,OAAO,IAAI,YAAY,eAAe;oBACpC,MAAM,EAAE,QAAQ,KAAI,EAAE,GAAG;oBACzB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;gBAC5B,CAAC;YACH;QACF;IACF;AACF,CAAC","file":"parser-plugin.js","sourcesContent":["import type MarkdownIt from \"markdown-it\";\nimport type Token from \"markdown-it/lib/token.js\";\nimport {\n MDState,\n MDStateCreator,\n type LineState,\n} from \"./state.js\";\nimport type {\n RuleBlock,\n TypedBlockRule,\n TypedBlockState,\n} from \"./types.js\";\n\ntype RenderedContent =\n | {\n readonly type: \"html\";\n readonly content: string;\n }\n | {\n readonly type: \"tokens\";\n readonly content: Token[];\n }\n | {\n readonly type: \"empty\";\n }\n | { readonly type: \"reconsume\" };\n\nexport class ReturnRendered {\n html(content: string): RenderedContent {\n return {\n type: \"html\",\n content,\n };\n }\n\n tokens(tokens: Token[]): RenderedContent {\n return {\n type: \"tokens\",\n content: tokens,\n };\n }\n\n empty(): RenderedContent {\n return {\n type: \"empty\",\n };\n }\n\n reconsume(): RenderedContent {\n return {\n type: \"reconsume\",\n };\n }\n}\n\nconst RENDER = new ReturnRendered();\n\nexport class PluginHelper {\n readonly #state: MDState;\n\n constructor(state: MDState) {\n this.#state = state;\n }\n\n get md(): MarkdownIt {\n return this.#state.md;\n }\n\n get env(): unknown {\n return this.#state.env;\n }\n\n renderHTML(content: string): string {\n return this.#state.renderHTML(content);\n }\n\n renderInline(content: string): string {\n return this.#state.renderInline(content);\n }\n\n parseBlock(content: string): Token[] {\n return this.#state.parse(content);\n }\n\n parseInline(content: string): Token[] {\n return this.#state.parseInline(content);\n }\n\n error(message: string): string {\n return this.#state.error(message);\n }\n}\n\nexport type BlockPlugin = (\n line: LineState,\n helper: PluginHelper\n) => Consume | false | undefined;\nexport type Consume = () => Render | false | undefined;\nexport type Render = (render: ReturnRendered) => RenderedContent;\n\nexport type PluginInsertion =\n | {\n readonly name: string;\n readonly before: string;\n }\n | {\n readonly name: string;\n readonly after: string;\n }\n | {\n readonly replace: string;\n }\n | { readonly append: string };\n\nexport type PluginOptions = {\n readonly env?: (env: Env) => WrapperEnv;\n} & PluginInsertion;\n\nexport function parserPlugin(\n pluginOptions: PluginOptions\n): {\n block: (\n plugin: BlockPlugin\n ) => MarkdownIt.PluginWithOptions;\n} {\n const wrapEnv: (env: T) => Env =\n pluginOptions.env ?? ((env) => env as unknown as Env);\n\n return {\n block: (plugin: BlockPlugin) => {\n return (md: MarkdownIt, _options: Options) => {\n const createState = new MDStateCreator(md, wrapEnv);\n\n const parser: TypedBlockRule = (\n state: TypedBlockState,\n startLine,\n _endLine,\n silent\n ): boolean => {\n const mdState = createState.create(state);\n const line = mdState.line(startLine);\n\n if (line.isCodeBlock) {\n return false;\n }\n\n const consume = plugin(\n line,\n new PluginHelper(mdState)\n );\n\n if (!consume) {\n return false;\n }\n\n const render = consume();\n\n if (!render) {\n return false;\n }\n\n if (silent) {\n return true;\n }\n\n const rendered = render(RENDER);\n\n switch (rendered.type) {\n case \"html\": {\n const token = state.push(\"html_block\", \"\", 0);\n token.content = rendered.content;\n return true;\n }\n case \"tokens\": {\n for (const token of rendered.content) {\n state.tokens.push(token);\n }\n }\n case \"empty\": {\n return true;\n }\n case \"reconsume\": {\n return false;\n }\n }\n };\n\n if (\"before\" in pluginOptions) {\n const { name, before } = pluginOptions;\n md.block.ruler.before(\n before,\n name,\n parser as RuleBlock\n );\n } else if (\"after\" in pluginOptions) {\n const { name, after } = pluginOptions;\n md.block.ruler.after(after, name, parser as RuleBlock);\n } else if (\"replace\" in pluginOptions) {\n const { replace } = pluginOptions;\n md.block.ruler.at(replace, parser as RuleBlock);\n } else if (\"append\" in pluginOptions) {\n const { append: name } = pluginOptions;\n md.block.ruler.push(name, parser as RuleBlock);\n }\n };\n },\n };\n}\n"]} \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/state.js b/packages/@jsergo/mdit/dist/state.js new file mode 100644 index 0000000..12a4d4d --- /dev/null +++ b/packages/@jsergo/mdit/dist/state.js @@ -0,0 +1,275 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +var _md = /*#__PURE__*/ new WeakMap(), _createEnv = /*#__PURE__*/ new WeakMap(); +export class MDStateCreator { + create(state) { + return new MDState(_classPrivateFieldGet(this, _md), state, _classPrivateFieldGet(this, _createEnv).call(this, state.env)); + } + constructor(md, createEnv){ + _classPrivateFieldInit(this, _md, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _createEnv, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _md, md); + _classPrivateFieldSet(this, _createEnv, createEnv); + } +} +var _state = /*#__PURE__*/ new WeakMap(), _md1 = /*#__PURE__*/ new WeakMap(), _env = /*#__PURE__*/ new WeakMap(); +export class MDState { + line(lineno) { + return new LineState(_classPrivateFieldGet(this, _state), lineno); + } + consumeLine() { + _classPrivateFieldGet(this, _state).line = _classPrivateFieldGet(this, _state).line + 1; + } + get highlight() { + return _classPrivateFieldGet(this, _md1).options.highlight; + } + get md() { + return _classPrivateFieldGet(this, _md1); + } + get env() { + return _classPrivateFieldGet(this, _env); + } + open() { + return _classPrivateFieldGet(this, _state).push("html_block", "", 0); + } + renderHTML(content) { + return _classPrivateFieldGet(this, _md1).render(content, _classPrivateFieldGet(this, _state).env); + } + renderInline(content) { + return _classPrivateFieldGet(this, _md1).renderInline(content, _classPrivateFieldGet(this, _state).env); + } + parse(content) { + const tokens = []; + _classPrivateFieldGet(this, _md1).block.parse(content, _classPrivateFieldGet(this, _md1), _classPrivateFieldGet(this, _env), tokens); + return tokens; + } + parseInline(content) { + const tokens = []; + _classPrivateFieldGet(this, _md1).inline.parse(content, _classPrivateFieldGet(this, _md1), _classPrivateFieldGet(this, _env), tokens); + return tokens; + } + error(message) { + return `
${message}
`; + } + constructor(md, state, env){ + _classPrivateFieldInit(this, _state, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _md1, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _env, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _state, state); + _classPrivateFieldSet(this, _md1, md); + _classPrivateFieldSet(this, _env, env); + } +} +var _state1 = /*#__PURE__*/ new WeakMap(), _startLine = /*#__PURE__*/ new WeakMap(), _src = /*#__PURE__*/ new WeakMap(), _totalIndent = /*#__PURE__*/ new WeakMap(), _requiredIndent = /*#__PURE__*/ new WeakMap(); +export class LineState { + get state() { + return _classPrivateFieldGet(this, _state1); + } + get next() { + if (_classPrivateFieldGet(this, _startLine) < _classPrivateFieldGet(this, _state1).lineMax) { + return new LineState(_classPrivateFieldGet(this, _state1), _classPrivateFieldGet(this, _startLine) + 1); + } else { + return undefined; + } + } + get position() { + return { + pos: this.contentStart, + max: this.end + }; + } + get rest() { + return _classPrivateFieldGet(this, _state1).src.slice(this.start); + } + consume() { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(this, _startLine) + 1; + return new LineState(_classPrivateFieldGet(this, _state1), _classPrivateFieldGet(this, _startLine) + 1); + } + until(predicate) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + let line = this; + const lines = []; + while(line){ + const next = line.next; + if (!next) { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(line, _startLine) + 1; + break; + } + lines.push(line.string({ + ws: true + })); + line = next; + if (predicate(next)) { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(next, _startLine) + 1; + break; + } + } + return lines.join("\n"); + } + string({ ws =false } = {}) { + return _classPrivateFieldGet(this, _src).slice(ws ? this.start : this.contentStart, this.end); + } + startsWith(chars) { + return this.slice(chars.length) === chars; + } + matchStart(regex) { + if (!regex.source.startsWith("^")) { + return { + type: "error", + error: `invalid pattern for matchStart (${regex}). matchStart patterns must be anchored` + }; + } + const match = regex.exec(this.rest); + if (!match) { + return { + type: "unmatched" + }; + } else { + return { + type: "match", + raw: match, + fragment: match[0] + }; + } + } + slice(n = this.end - this.contentStart) { + if (n > this.end - this.contentStart) { + return undefined; + } + const pos = this.contentStart; + let chars = ""; + for(let i = 0; i < n; ++i){ + chars += _classPrivateFieldGet(this, _src).charAt(pos + i); + } + return chars; + } + /** + * The indent of the line, excluding the required indent. + */ get indent() { + return _classPrivateFieldGet(this, _totalIndent) - _classPrivateFieldGet(this, _requiredIndent); + } + /** + * if it's indented more than 3 spaces, it's a code block + */ get isCodeBlock() { + return this.indent >= 4; + } + get start() { + var _classPrivateFieldGet_bMarks__classPrivateFieldGet; + return (_classPrivateFieldGet_bMarks__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).bMarks[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_bMarks__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_bMarks__classPrivateFieldGet : 0; + } + get wsChars() { + var _classPrivateFieldGet_tShift__classPrivateFieldGet; + return (_classPrivateFieldGet_tShift__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).tShift[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_tShift__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_tShift__classPrivateFieldGet : 0; + } + get contentStart() { + return this.start + this.wsChars; + } + get end() { + var _classPrivateFieldGet_eMarks__classPrivateFieldGet; + return (_classPrivateFieldGet_eMarks__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).eMarks[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_eMarks__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_eMarks__classPrivateFieldGet : 0; + } + constructor(state, startLine){ + _classPrivateFieldInit(this, _src, { + get: get_src, + set: void 0 + }); + /** + * The total indent of the line, including the required indent. + */ _classPrivateFieldInit(this, _totalIndent, { + get: get_totalIndent, + set: void 0 + }); + /** + * The required indent of the line. + */ _classPrivateFieldInit(this, _requiredIndent, { + get: get_requiredIndent, + set: void 0 + }); + _classPrivateFieldInit(this, _state1, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _startLine, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _state1, state); + _classPrivateFieldSet(this, _startLine, startLine); + } +} +function get_src() { + return _classPrivateFieldGet(this, _state1).src; +} +function get_totalIndent() { + var _classPrivateFieldGet_sCount__classPrivateFieldGet; + return (_classPrivateFieldGet_sCount__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).sCount[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_sCount__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_sCount__classPrivateFieldGet : 0; +} +function get_requiredIndent() { + return _classPrivateFieldGet(this, _state1).blkIndent; +} +export function position(state, startLine) { + var _state_bMarks_startLine, _state_tShift_startLine; + const pos = ((_state_bMarks_startLine = state.bMarks[startLine]) !== null && _state_bMarks_startLine !== void 0 ? _state_bMarks_startLine : 0) + ((_state_tShift_startLine = state.tShift[startLine]) !== null && _state_tShift_startLine !== void 0 ? _state_tShift_startLine : 0); + var _state_eMarks_startLine; + const max = (_state_eMarks_startLine = state.eMarks[startLine]) !== null && _state_eMarks_startLine !== void 0 ? _state_eMarks_startLine : 0; + return { + pos, + max + }; +} + + +//# sourceMappingURL=state.js.map \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/state.js.map b/packages/@jsergo/mdit/dist/state.js.map new file mode 100644 index 0000000..45681a9 --- /dev/null +++ b/packages/@jsergo/mdit/dist/state.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKW,mCACA;AAFX,OAAO,MAAM;IAYX,OAAO,KAA2B,EAAuB;QACvD,OAAO,IAAI,8BACT,IAAI,EAAE,MACN,OACA,sBAAA,IAAI,EAAE,iBAAN,IAAI,EAAY,MAAM,GAAG;IAE7B;IAdA,YACE,EAAc,EACd,SAAmC,CACnC;QANF,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCAMQ,KAAK;oCACL,YAAY;IACpB;AASF,CAAC;IAGU,sCACA,oCACA;AAHX,OAAO,MAAM;IAWX,KAAK,MAAc,EAAa;QAC9B,OAAO,IAAI,gCAAU,IAAI,EAAE,SAAO;IACpC;IAEA,cAAoB;QAClB,sBAAA,IAAI,EAAE,QAAM,IAAI,GAAG,sBAAA,IAAI,EAAE,QAAM,IAAI,GAAG;IACxC;IAEA,IAAI,YAA4C;QAC9C,OAAO,sBAAA,IAAI,EAAE,MAAG,OAAO,CAAC,SAAS;IACnC;IAEA,IAAI,KAAiB;QACnB,6BAAO,IAAI,EAAE;IACf;IAEA,IAAI,MAAW;QACb,6BAAO,IAAI,EAAE;IACf;IAEA,OAAO;QACL,OAAO,sBAAA,IAAI,EAAE,QAAM,IAAI,CAAC,cAAc,IAAI;IAC5C;IAEA,WAAW,OAAe,EAAE;QAC1B,OAAO,sBAAA,IAAI,EAAE,MAAG,MAAM,CAAC,SAAS,sBAAA,IAAI,EAAE,QAAM,GAAG;IACjD;IAEA,aAAa,OAAe,EAAE;QAC5B,OAAO,sBAAA,IAAI,EAAE,MAAG,YAAY,CAAC,SAAS,sBAAA,IAAI,EAAE,QAAM,GAAG;IACvD;IAEA,MAAM,OAAe,EAAE;QACrB,MAAM,SAAkB,EAAE;QAC1B,sBAAA,IAAI,EAAE,MAAG,KAAK,CAAC,KAAK,CAAC,+BAAS,IAAI,EAAE,6BAAI,IAAI,EAAE,OAAK;QACnD,OAAO;IACT;IAEA,YAAY,OAAe,EAAE;QAC3B,MAAM,SAAkB,EAAE;QAC1B,sBAAA,IAAI,EAAE,MAAG,MAAM,CAAC,KAAK,CAAC,+BAAS,IAAI,EAAE,6BAAI,IAAI,EAAE,OAAK;QACpD,OAAO;IACT;IAEA,MAAM,OAAe,EAAE;QACrB,OAAO,CAAC,mEAAmE,EAAE,QAAQ,mBAAmB,CAAC;IAC3G;IApDA,YAAY,EAAc,EAAE,KAAiB,EAAE,GAAQ,CAAE;QAJzD,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCAGQ,QAAQ;oCACR,MAAK;oCACL,MAAM;IACd;AAiDF,CAAC;IASC,uCACA,0CA0BI,oCA+FA,4CAOA;AAlIN,OAAO,MAAM;IASX,IAAI,QAAoB;QACtB,6BAAO,IAAI,EAAE;IACf;IAEA,IAAI,OAA8B;QAChC,IAAI,sBAAA,IAAI,EAAE,cAAY,sBAAA,IAAI,EAAE,SAAM,OAAO,EAAE;YACzC,OAAO,IAAI,gCAAU,IAAI,EAAE,UAAO,sBAAA,IAAI,EAAE,cAAY;QACtD,OAAO;YACL,OAAO;QACT,CAAC;IACH;IAEA,IAAI,WAAyC;QAC3C,OAAO;YACL,KAAK,IAAI,CAAC,YAAY;YACtB,KAAK,IAAI,CAAC,GAAG;QACf;IACF;IAMA,IAAI,OAAO;QACT,OAAO,sBAAA,IAAI,EAAE,SAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;IACzC;IAEA,UAAqB;QACnB,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,IAAI,EAAE,cAAY;QACrC,OAAO,IAAI,gCAAU,IAAI,EAAE,UAAO,sBAAA,IAAI,EAAE,cAAY;IACtD;IAEA,MAAM,SAAuC,EAAU;QACrD,4DAA4D;QAC5D,IAAI,OAA8B,IAAI;QACtC,MAAM,QAAQ,EAAE;QAEhB,MAAO,KAAM;YACX,MAAM,OAA8B,KAAK,IAAI;YAE7C,IAAI,CAAC,MAAM;gBACT,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,MAAM,cAAY;gBACrC,KAAM;YACR,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC;gBAAE,IAAI,IAAI;YAAC;YAClC,OAAO;YAEP,IAAI,UAAU,OAAO;gBACnB,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,MAAM,cAAY;gBACrC,KAAM;YACR,CAAC;QACH;QAEA,OAAO,MAAM,IAAI,CAAC;IACpB;IAEA,OAAO,EAAE,IAAK,KAAK,CAAA,EAAoB,GAAG,CAAC,CAAC,EAAU;QACpD,OAAO,sBAAA,IAAI,EAAE,MAAI,KAAK,CACpB,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EACnC,IAAI,CAAC,GAAG;IAEZ;IAEA,WAAW,KAAa,EAAW;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,MAAM,MAAM;IACtC;IAEA,WACE,KAAa,EAIsB;QACnC,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM;YACjC,OAAO;gBACL,MAAM;gBACN,OAAO,CAAC,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;YAC1F;QACF,CAAC;QAED,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI;QAElC,IAAI,CAAC,OAAO;YACV,OAAO;gBAAE,MAAM;YAAY;QAC7B,OAAO;YACL,OAAO;gBACL,MAAM;gBACN,KAAK;gBACL,UAAU,KAAK,CAAC,EAAE;YACpB;QACF,CAAC;IACH;IAEA,MACE,IAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EACpB;QACpB,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;YACpC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,IAAI,CAAC,YAAY;QAC7B,IAAI,QAAQ;QAEZ,IAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,EAAG;YAC1B,SAAS,sBAAA,IAAI,EAAE,MAAI,MAAM,CAAC,MAAM;QAClC;QAEA,OAAO;IACT;IAgBA;;GAEC,GACD,IAAI,SAAiB;QACnB,OAAO,sBAAA,IAAI,EAAE,sCAAc,IAAI,EAAE;IACnC;IAEA;;GAEC,GACD,IAAI,cAAuB;QACzB,OAAO,IAAI,CAAC,MAAM,IAAI;IACxB;IAEA,IAAI,QAAgB;YACX;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IAEA,IAAI,UAAkB;YACb;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IAEA,IAAI,eAAuB;QACzB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;IAClC;IAEA,IAAI,MAAc;YACT;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IA9JA,YAAY,KAAiB,EAAE,SAAiB,CAAE;QAwBlD,6BAAI;iBAAJ;;;QA4FA;;GAEC,GACD,6BAAI;iBAAJ;;;QAIA;;GAEC,GACD,6BAAI;iBAAJ;;;QAjIA,6BAAA;;mBAAA,KAAA;;QACA,6BAAA;;mBAAA,KAAA;;oCAGQ,SAAQ;oCACR,YAAY;IACpB;AA4JF,CAAC;AAvIC,SAAA,UAAmB;IACjB,OAAO,sBAAA,IAAI,EAAE,SAAM,GAAG;AACxB;AA6FA,SAAA,kBAA2B;QAClB;IAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;AACjD;AAKA,SAAA,qBAA8B;IAC5B,OAAO,sBAAA,IAAI,EAAE,SAAM,SAAS;AAC9B;AAiCF,OAAO,SAAS,SACd,KAAiB,EACjB,SAAiB,EACa;QAE3B,yBACA;IAFH,MAAM,MACJ,AAAC,CAAA,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAA,AAAC,IAC5B,CAAA,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAA,AAAC;QACnB;IAAZ,MAAM,MAAM,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAC;IAExC,OAAO;QAAE;QAAK;IAAI;AACpB,CAAC","file":"state.js","sourcesContent":["import MarkdownIt from \"markdown-it\";\nimport type Token from \"markdown-it/lib/token.js\";\nimport type { StateBlock, TypedBlockState } from \"./types.js\";\n\nexport class MDStateCreator {\n readonly #md: MarkdownIt;\n readonly #createEnv: (env: Env) => WrapperEnv;\n\n constructor(\n md: MarkdownIt,\n createEnv: (env: Env) => WrapperEnv\n ) {\n this.#md = md;\n this.#createEnv = createEnv;\n }\n\n create(state: TypedBlockState): MDState {\n return new MDState(\n this.#md,\n state,\n this.#createEnv(state.env)\n );\n }\n}\n\nexport class MDState {\n readonly #state: TypedBlockState;\n readonly #md: MarkdownIt;\n readonly #env: Env;\n\n constructor(md: MarkdownIt, state: StateBlock, env: Env) {\n this.#state = state;\n this.#md = md;\n this.#env = env;\n }\n\n line(lineno: number): LineState {\n return new LineState(this.#state, lineno);\n }\n\n consumeLine(): void {\n this.#state.line = this.#state.line + 1;\n }\n\n get highlight(): HighlightFn | null | undefined {\n return this.#md.options.highlight;\n }\n\n get md(): MarkdownIt {\n return this.#md;\n }\n\n get env(): Env {\n return this.#env;\n }\n\n open() {\n return this.#state.push(\"html_block\", \"\", 0);\n }\n\n renderHTML(content: string) {\n return this.#md.render(content, this.#state.env);\n }\n\n renderInline(content: string) {\n return this.#md.renderInline(content, this.#state.env);\n }\n\n parse(content: string) {\n const tokens: Token[] = [];\n this.#md.block.parse(content, this.#md, this.#env, tokens);\n return tokens;\n }\n\n parseInline(content: string) {\n const tokens: Token[] = [];\n this.#md.inline.parse(content, this.#md, this.#env, tokens);\n return tokens;\n }\n\n error(message: string) {\n return `
${message}
`;\n }\n}\n\nexport type HighlightFn = (\n str: string,\n lang: string,\n attrs: string\n) => string;\n\nexport class LineState {\n #state: StateBlock;\n #startLine: number;\n\n constructor(state: StateBlock, startLine: number) {\n this.#state = state;\n this.#startLine = startLine;\n }\n\n get state(): StateBlock {\n return this.#state;\n }\n\n get next(): LineState | undefined {\n if (this.#startLine < this.#state.lineMax) {\n return new LineState(this.#state, this.#startLine + 1);\n } else {\n return undefined;\n }\n }\n\n get position(): { pos: number; max: number } {\n return {\n pos: this.contentStart,\n max: this.end,\n };\n }\n\n get #src(): string {\n return this.#state.src;\n }\n\n get rest() {\n return this.#state.src.slice(this.start);\n }\n\n consume(): LineState {\n this.#state.line = this.#startLine + 1;\n return new LineState(this.#state, this.#startLine + 1);\n }\n\n until(predicate: (line: LineState) => boolean): string {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let line: LineState | undefined = this;\n const lines = [];\n\n while (line) {\n const next: LineState | undefined = line.next;\n\n if (!next) {\n this.#state.line = line.#startLine + 1;\n break;\n }\n\n lines.push(line.string({ ws: true }));\n line = next;\n\n if (predicate(next)) {\n this.#state.line = next.#startLine + 1;\n break;\n }\n }\n\n return lines.join(\"\\n\");\n }\n\n string({ ws = false }: { ws?: boolean } = {}): string {\n return this.#src.slice(\n ws ? this.start : this.contentStart,\n this.end\n );\n }\n\n startsWith(chars: string): boolean {\n return this.slice(chars.length) === chars;\n }\n\n matchStart(\n regex: RegExp\n ):\n | { type: \"unmatched\" }\n | { type: \"match\"; raw: RegExpExecArray; fragment: string }\n | { type: \"error\"; error: string } {\n if (!regex.source.startsWith(\"^\")) {\n return {\n type: \"error\",\n error: `invalid pattern for matchStart (${regex}). matchStart patterns must be anchored`,\n };\n }\n\n const match = regex.exec(this.rest);\n\n if (!match) {\n return { type: \"unmatched\" };\n } else {\n return {\n type: \"match\",\n raw: match,\n fragment: match[0],\n };\n }\n }\n\n slice(\n n: number = this.end - this.contentStart\n ): string | undefined {\n if (n > this.end - this.contentStart) {\n return undefined;\n }\n\n const pos = this.contentStart;\n let chars = \"\";\n\n for (let i = 0; i < n; ++i) {\n chars += this.#src.charAt(pos + i);\n }\n\n return chars;\n }\n\n /**\n * The total indent of the line, including the required indent.\n */\n get #totalIndent(): number {\n return this.#state.sCount[this.#startLine] ?? 0;\n }\n\n /**\n * The required indent of the line.\n */\n get #requiredIndent(): number {\n return this.#state.blkIndent;\n }\n\n /**\n * The indent of the line, excluding the required indent.\n */\n get indent(): number {\n return this.#totalIndent - this.#requiredIndent;\n }\n\n /**\n * if it's indented more than 3 spaces, it's a code block\n */\n get isCodeBlock(): boolean {\n return this.indent >= 4;\n }\n\n get start(): number {\n return this.#state.bMarks[this.#startLine] ?? 0;\n }\n\n get wsChars(): number {\n return this.#state.tShift[this.#startLine] ?? 0;\n }\n\n get contentStart(): number {\n return this.start + this.wsChars;\n }\n\n get end(): number {\n return this.#state.eMarks[this.#startLine] ?? 0;\n }\n}\n\nexport function position(\n state: StateBlock,\n startLine: number\n): { pos: number; max: number } {\n const pos =\n (state.bMarks[startLine] ?? 0) +\n (state.tShift[startLine] ?? 0);\n const max = state.eMarks[startLine] ?? 0;\n\n return { pos, max };\n}\n"]} \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/types.js b/packages/@jsergo/mdit/dist/types.js new file mode 100644 index 0000000..392d036 --- /dev/null +++ b/packages/@jsergo/mdit/dist/types.js @@ -0,0 +1,4 @@ +export { }; + + +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/packages/@jsergo/mdit/dist/types.js.map b/packages/@jsergo/mdit/dist/types.js.map new file mode 100644 index 0000000..c20498a --- /dev/null +++ b/packages/@jsergo/mdit/dist/types.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/types.ts"],"names":[],"mappings":"AAAA,WAea","file":"types.js","sourcesContent":["import type ParserBlock from \"markdown-it/lib/parser_block\";\nimport type StateBlock from \"markdown-it/lib/rules_block/state_block\";\nexport type { StateBlock };\n\nexport type RuleBlock = ParserBlock.RuleBlock;\n\nexport interface TypedBlockState extends StateBlock {\n readonly env: Env;\n}\n\nexport type TypedBlockRule = (\n state: TypedBlockState,\n startLine: number,\n endLine: number,\n silent: boolean\n) => boolean;\n"]} \ No newline at end of file diff --git a/packages/@jsergo/mdit/package.json b/packages/@jsergo/mdit/package.json new file mode 100644 index 0000000..11f8ccb --- /dev/null +++ b/packages/@jsergo/mdit/package.json @@ -0,0 +1,25 @@ +{ + "name": "@jsergo/mdit", + "type": "module", + "version": "1.0.0", + "description": "A more ergonomic way to create MarkdownIt plugins", + "source": "index.ts", + "exports": { + "types": "./src/index.ts", + "default": "./dist/index.js" + }, + "publishConfig": { + "main": "./dist/index.cjs", + "module": "./dist/index.esm.js", + "exports": { + "types": "./dist/index.d.ts", + "require": "./dist/index.cjs", + "default": "./dist/index.modern.mjs" + } + }, + "devDependencies": { + "@swc/cli": "~0.1.62", + "@swc/core": "^1.3.38", + "markdown-it": "^13.0.1" + } +} diff --git a/packages/@jsergo/mdit/src/index.ts b/packages/@jsergo/mdit/src/index.ts new file mode 100644 index 0000000..ae4a2ff --- /dev/null +++ b/packages/@jsergo/mdit/src/index.ts @@ -0,0 +1,15 @@ +export { + parserPlugin, + type BlockPlugin, + type Consume, + type PluginHelper, + type PluginInsertion, + type PluginOptions, + type Render, +} from "./parser-plugin.js"; +export * from "./state.js"; +export type { + RuleBlock, + TypedBlockRule, + TypedBlockState, +} from "./types.js"; diff --git a/packages/@jsergo/mdit/src/parser-plugin.ts b/packages/@jsergo/mdit/src/parser-plugin.ts new file mode 100644 index 0000000..4a39461 --- /dev/null +++ b/packages/@jsergo/mdit/src/parser-plugin.ts @@ -0,0 +1,208 @@ +import type MarkdownIt from "markdown-it"; +import type Token from "markdown-it/lib/token.js"; +import { + MDState, + MDStateCreator, + type LineState, +} from "./state.js"; +import type { + RuleBlock, + TypedBlockRule, + TypedBlockState, +} from "./types.js"; + +type RenderedContent = + | { + readonly type: "html"; + readonly content: string; + } + | { + readonly type: "tokens"; + readonly content: Token[]; + } + | { + readonly type: "empty"; + } + | { readonly type: "reconsume" }; + +export class ReturnRendered { + html(content: string): RenderedContent { + return { + type: "html", + content, + }; + } + + tokens(tokens: Token[]): RenderedContent { + return { + type: "tokens", + content: tokens, + }; + } + + empty(): RenderedContent { + return { + type: "empty", + }; + } + + reconsume(): RenderedContent { + return { + type: "reconsume", + }; + } +} + +const RENDER = new ReturnRendered(); + +export class PluginHelper { + readonly #state: MDState; + + constructor(state: MDState) { + this.#state = state; + } + + get md(): MarkdownIt { + return this.#state.md; + } + + get env(): unknown { + return this.#state.env; + } + + renderHTML(content: string): string { + return this.#state.renderHTML(content); + } + + renderInline(content: string): string { + return this.#state.renderInline(content); + } + + parseBlock(content: string): Token[] { + return this.#state.parse(content); + } + + parseInline(content: string): Token[] { + return this.#state.parseInline(content); + } + + error(message: string): string { + return this.#state.error(message); + } +} + +export type BlockPlugin = ( + line: LineState, + helper: PluginHelper +) => Consume | false | undefined; +export type Consume = () => Render | false | undefined; +export type Render = (render: ReturnRendered) => RenderedContent; + +export type PluginInsertion = + | { + readonly name: string; + readonly before: string; + } + | { + readonly name: string; + readonly after: string; + } + | { + readonly replace: string; + } + | { readonly append: string }; + +export type PluginOptions = { + readonly env?: (env: Env) => WrapperEnv; +} & PluginInsertion; + +export function parserPlugin( + pluginOptions: PluginOptions +): { + block: ( + plugin: BlockPlugin + ) => MarkdownIt.PluginWithOptions; +} { + const wrapEnv: (env: T) => Env = + pluginOptions.env ?? ((env) => env as unknown as Env); + + return { + block: (plugin: BlockPlugin) => { + return (md: MarkdownIt, _options: Options) => { + const createState = new MDStateCreator(md, wrapEnv); + + const parser: TypedBlockRule = ( + state: TypedBlockState, + startLine, + _endLine, + silent + ): boolean => { + const mdState = createState.create(state); + const line = mdState.line(startLine); + + if (line.isCodeBlock) { + return false; + } + + const consume = plugin( + line, + new PluginHelper(mdState) + ); + + if (!consume) { + return false; + } + + const render = consume(); + + if (!render) { + return false; + } + + if (silent) { + return true; + } + + const rendered = render(RENDER); + + switch (rendered.type) { + case "html": { + const token = state.push("html_block", "", 0); + token.content = rendered.content; + return true; + } + case "tokens": { + for (const token of rendered.content) { + state.tokens.push(token); + } + } + case "empty": { + return true; + } + case "reconsume": { + return false; + } + } + }; + + if ("before" in pluginOptions) { + const { name, before } = pluginOptions; + md.block.ruler.before( + before, + name, + parser as RuleBlock + ); + } else if ("after" in pluginOptions) { + const { name, after } = pluginOptions; + md.block.ruler.after(after, name, parser as RuleBlock); + } else if ("replace" in pluginOptions) { + const { replace } = pluginOptions; + md.block.ruler.at(replace, parser as RuleBlock); + } else if ("append" in pluginOptions) { + const { append: name } = pluginOptions; + md.block.ruler.push(name, parser as RuleBlock); + } + }; + }, + }; +} diff --git a/packages/@jsergo/mdit/src/state.ts b/packages/@jsergo/mdit/src/state.ts new file mode 100644 index 0000000..7fee901 --- /dev/null +++ b/packages/@jsergo/mdit/src/state.ts @@ -0,0 +1,267 @@ +import MarkdownIt from "markdown-it"; +import type Token from "markdown-it/lib/token.js"; +import type { StateBlock, TypedBlockState } from "./types.js"; + +export class MDStateCreator { + readonly #md: MarkdownIt; + readonly #createEnv: (env: Env) => WrapperEnv; + + constructor( + md: MarkdownIt, + createEnv: (env: Env) => WrapperEnv + ) { + this.#md = md; + this.#createEnv = createEnv; + } + + create(state: TypedBlockState): MDState { + return new MDState( + this.#md, + state, + this.#createEnv(state.env) + ); + } +} + +export class MDState { + readonly #state: TypedBlockState; + readonly #md: MarkdownIt; + readonly #env: Env; + + constructor(md: MarkdownIt, state: StateBlock, env: Env) { + this.#state = state; + this.#md = md; + this.#env = env; + } + + line(lineno: number): LineState { + return new LineState(this.#state, lineno); + } + + consumeLine(): void { + this.#state.line = this.#state.line + 1; + } + + get highlight(): HighlightFn | null | undefined { + return this.#md.options.highlight; + } + + get md(): MarkdownIt { + return this.#md; + } + + get env(): Env { + return this.#env; + } + + open() { + return this.#state.push("html_block", "", 0); + } + + renderHTML(content: string) { + return this.#md.render(content, this.#state.env); + } + + renderInline(content: string) { + return this.#md.renderInline(content, this.#state.env); + } + + parse(content: string) { + const tokens: Token[] = []; + this.#md.block.parse(content, this.#md, this.#env, tokens); + return tokens; + } + + parseInline(content: string) { + const tokens: Token[] = []; + this.#md.inline.parse(content, this.#md, this.#env, tokens); + return tokens; + } + + error(message: string) { + return `
${message}
`; + } +} + +export type HighlightFn = ( + str: string, + lang: string, + attrs: string +) => string; + +export class LineState { + #state: StateBlock; + #startLine: number; + + constructor(state: StateBlock, startLine: number) { + this.#state = state; + this.#startLine = startLine; + } + + get state(): StateBlock { + return this.#state; + } + + get next(): LineState | undefined { + if (this.#startLine < this.#state.lineMax) { + return new LineState(this.#state, this.#startLine + 1); + } else { + return undefined; + } + } + + get position(): { pos: number; max: number } { + return { + pos: this.contentStart, + max: this.end, + }; + } + + get #src(): string { + return this.#state.src; + } + + get rest() { + return this.#state.src.slice(this.start); + } + + consume(): LineState { + this.#state.line = this.#startLine + 1; + return new LineState(this.#state, this.#startLine + 1); + } + + until(predicate: (line: LineState) => boolean): string { + // eslint-disable-next-line @typescript-eslint/no-this-alias + let line: LineState | undefined = this; + const lines = []; + + while (line) { + const next: LineState | undefined = line.next; + + if (!next) { + this.#state.line = line.#startLine + 1; + break; + } + + lines.push(line.string({ ws: true })); + line = next; + + if (predicate(next)) { + this.#state.line = next.#startLine + 1; + break; + } + } + + return lines.join("\n"); + } + + string({ ws = false }: { ws?: boolean } = {}): string { + return this.#src.slice( + ws ? this.start : this.contentStart, + this.end + ); + } + + startsWith(chars: string): boolean { + return this.slice(chars.length) === chars; + } + + matchStart( + regex: RegExp + ): + | { type: "unmatched" } + | { type: "match"; raw: RegExpExecArray; fragment: string } + | { type: "error"; error: string } { + if (!regex.source.startsWith("^")) { + return { + type: "error", + error: `invalid pattern for matchStart (${regex}). matchStart patterns must be anchored`, + }; + } + + const match = regex.exec(this.rest); + + if (!match) { + return { type: "unmatched" }; + } else { + return { + type: "match", + raw: match, + fragment: match[0], + }; + } + } + + slice( + n: number = this.end - this.contentStart + ): string | undefined { + if (n > this.end - this.contentStart) { + return undefined; + } + + const pos = this.contentStart; + let chars = ""; + + for (let i = 0; i < n; ++i) { + chars += this.#src.charAt(pos + i); + } + + return chars; + } + + /** + * The total indent of the line, including the required indent. + */ + get #totalIndent(): number { + return this.#state.sCount[this.#startLine] ?? 0; + } + + /** + * The required indent of the line. + */ + get #requiredIndent(): number { + return this.#state.blkIndent; + } + + /** + * The indent of the line, excluding the required indent. + */ + get indent(): number { + return this.#totalIndent - this.#requiredIndent; + } + + /** + * if it's indented more than 3 spaces, it's a code block + */ + get isCodeBlock(): boolean { + return this.indent >= 4; + } + + get start(): number { + return this.#state.bMarks[this.#startLine] ?? 0; + } + + get wsChars(): number { + return this.#state.tShift[this.#startLine] ?? 0; + } + + get contentStart(): number { + return this.start + this.wsChars; + } + + get end(): number { + return this.#state.eMarks[this.#startLine] ?? 0; + } +} + +export function position( + state: StateBlock, + startLine: number +): { pos: number; max: number } { + const pos = + (state.bMarks[startLine] ?? 0) + + (state.tShift[startLine] ?? 0); + const max = state.eMarks[startLine] ?? 0; + + return { pos, max }; +} diff --git a/packages/@jsergo/mdit/src/types.ts b/packages/@jsergo/mdit/src/types.ts new file mode 100644 index 0000000..4b5516e --- /dev/null +++ b/packages/@jsergo/mdit/src/types.ts @@ -0,0 +1,16 @@ +import type ParserBlock from "markdown-it/lib/parser_block"; +import type StateBlock from "markdown-it/lib/rules_block/state_block"; +export type { StateBlock }; + +export type RuleBlock = ParserBlock.RuleBlock; + +export interface TypedBlockState extends StateBlock { + readonly env: Env; +} + +export type TypedBlockRule = ( + state: TypedBlockState, + startLine: number, + endLine: number, + silent: boolean +) => boolean; diff --git a/packages/@jsergo/mdit/tsconfig.build.json b/packages/@jsergo/mdit/tsconfig.build.json new file mode 100644 index 0000000..8839fbd --- /dev/null +++ b/packages/@jsergo/mdit/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "emitDeclarationOnly": true, + "declarationMap": true + }, + "include": ["./index.ts", "./src/**/*"] +} diff --git a/packages/@jsergo/mdit/tsconfig.json b/packages/@jsergo/mdit/tsconfig.json new file mode 100644 index 0000000..247648c --- /dev/null +++ b/packages/@jsergo/mdit/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "noEmit": true, + "strict": true + }, + "include": ["./src/**/*"] +} diff --git a/packages/@jsergo/tagged-templates/dist/index.js b/packages/@jsergo/tagged-templates/dist/index.js new file mode 100644 index 0000000..52c371d --- /dev/null +++ b/packages/@jsergo/tagged-templates/dist/index.js @@ -0,0 +1,282 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +export function parse(raw, ...dynamicItems) { + const tokens = tokenize([ + ...raw + ], dynamicItems); + const lines = []; + let buffer = []; + for (const token of tokens){ + if (token.type === "newline") { + lines.push(Line.from(buffer)); + buffer = []; + } else { + buffer.push(token); + } + } + return Lines.of(lines); +} +export function parsed(impl) { + return (raw, ...dynamicItems)=>impl(parse(raw, ...dynamicItems)); +} +export function tokenize(staticItems, dynamicItems) { + const tokens = []; + staticItems.forEach((staticItem, i)=>{ + tokens.push(...parseStaticItem(staticItem)); + if (dynamicItems.length > i) { + const dynamicItem = dynamicItems[i]; + tokens.push(DynamicToken.of(dynamicItem)); + } + }); + return tokens; +} +function parseStaticItem(staticItem) { + const tokens = []; + let nextNewline = staticItem.indexOf("\n"); + while(nextNewline !== -1){ + const next = staticItem.slice(0, nextNewline); + staticItem = staticItem.slice(nextNewline + 1); + if (next !== "") { + tokens.push(TextToken.of(next)); + } + tokens.push(NEWLINE); + nextNewline = staticItem.indexOf("\n"); + } + if (staticItem !== "") { + tokens.push(TextToken.of(staticItem)); + } + return tokens; +} +class TextToken { + static of(value) { + return new TextToken(value); + } + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Text(${JSON.stringify(this.value)})`; + } + slice(from, to) { + const sliced = this.value.slice(from, to); + if (sliced.length === 0) { + return null; + } else { + return TextToken.of(this.value.slice(from, to)); + } + } + display() { + return this.value; + } + constructor(value){ + this.value = value; + this.type = "text"; + if (value === "") { + throw new Error("Text tokens must not be empty"); + } + } +} +let _Symbol_for = Symbol.for("nodejs.util.inspect.custom"); +class NewlineToken { + [_Symbol_for]() { + return `Newline`; + } + display() { + return "\n"; + } + constructor(){ + this.type = "newline"; + } +} +const NEWLINE = new NewlineToken(); +class DynamicToken { + static of(value) { + return new DynamicToken(value); + } + [Symbol.for("nodejs.util.inspect.custom")]() { + return this.value; + } + display(stringify) { + return stringify(this.value); + } + constructor(value){ + this.value = value; + this.type = "dynamic"; + } +} +var _lines = /*#__PURE__*/ new WeakMap(); +let _Symbol_iterator = Symbol.iterator, _Symbol_for1 = Symbol.for("nodejs.util.inspect.custom"); +export class Lines { + static of(lines) { + return new Lines(lines); + } + minIndent() { + var _line_indent_indent; + return Math.min(..._classPrivateFieldGet(this, _lines).map((line)=>{ + var _line_indent; + return (_line_indent_indent = (_line_indent = line.indent) === null || _line_indent === void 0 ? void 0 : _line_indent.indent) !== null && _line_indent_indent !== void 0 ? _line_indent_indent : Infinity; + })); + } + dedent(indent) { + return Lines.of(_classPrivateFieldGet(this, _lines).map((line)=>line.dedent(indent))); + } + display(stringify) { + return _classPrivateFieldGet(this, _lines).map((line)=>line.display(stringify)).join("\n"); + } + *[_Symbol_iterator]() { + for (const line of _classPrivateFieldGet(this, _lines)){ + yield line; + } + } + process(lineno, processor) { + const line = _classPrivateFieldGet(this, _lines)[lineno]; + if (!line) { + return; + } + const lines = processor(line); + if (lines) { + _classPrivateFieldGet(this, _lines).splice(lineno, 1, ...lines); + } + } + processFirst(processor) { + this.process(0, processor); + } + processLast(processor) { + if (_classPrivateFieldGet(this, _lines).length === 0) { + return; + } + this.process(_classPrivateFieldGet(this, _lines).length - 1, processor); + } + [_Symbol_for1]() { + return _classPrivateFieldGet(this, _lines); + } + constructor(lines){ + _classPrivateFieldInit(this, _lines, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _lines, lines); + } +} +class IndentToken { + static of(indent) { + return new IndentToken(indent); + } + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Indent(${this.indent})`; + } + display() { + return " ".repeat(this.indent); + } + dedent(indent) { + if (this.indent - indent <= 0) { + return null; + } else { + return IndentToken.of(this.indent - indent); + } + } + constructor(indent){ + this.indent = indent; + this.type = "indent"; + if (indent === 0) { + throw new Error("Indent tokens must not be zero"); + } + } +} +class Line { + static from(fragments) { + const [first, ...rest] = fragments; + if ((first === null || first === void 0 ? void 0 : first.type) === "text") { + var _first_value_match; + var _first_value_match__length; + const indent = (_first_value_match__length = (_first_value_match = first.value.match(/^\s*/)) === null || _first_value_match === void 0 ? void 0 : _first_value_match[0].length) !== null && _first_value_match__length !== void 0 ? _first_value_match__length : 0; + const textToken = first.slice(indent); + const tokens = [ + IndentToken.of(indent), + ...textToken ? [ + textToken + ] : [], + ...rest + ]; + return new Line(tokens); + } else { + return new Line(fragments); + } + } + [Symbol.for("nodejs.util.inspect.custom")]() { + return this.tokens; + } + isEmpty() { + return this.tokens.length === 0; + } + get indent() { + const [first] = this.tokens; + if ((first === null || first === void 0 ? void 0 : first.type) === "indent") { + return first; + } else { + return null; + } + } + dedent(indent) { + if (this.tokens.length === 0) { + return this; + } + const [first, ...rest] = this.tokens; + if (first.type !== "indent") { + return this; + } + const dedented = first.dedent(indent); + if (dedented) { + return new Line([ + dedented, + ...rest + ]); + } else { + return new Line(rest); + } + } + display(stringify = String) { + return this.tokens.map((token)=>token.display(stringify)).join(""); + } + constructor(tokens){ + this.tokens = tokens; + } +} + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@jsergo/tagged-templates/dist/index.js.map b/packages/@jsergo/tagged-templates/dist/index.js.map new file mode 100644 index 0000000..ad4ea9f --- /dev/null +++ b/packages/@jsergo/tagged-templates/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS,MACd,GAAyB,EACzB,GAAG,YAAiB,EACV;IACV,MAAM,SAAS,SAAS;WAAI;KAAI,EAAE;IAElC,MAAM,QAAmB,EAAE;IAC3B,IAAI,SAAwB,EAAE;IAE9B,KAAK,MAAM,SAAS,OAAQ;QAC1B,IAAI,MAAM,IAAI,KAAK,WAAW;YAC5B,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC;YACrB,SAAS,EAAE;QACb,OAAO;YACL,OAAO,IAAI,CAAC;QACd,CAAC;IACH;IAEA,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC;AAoBD,OAAO,SAAS,OACd,IAAU,EACQ;IAClB,OAAQ,CAAC,KAAK,GAAG,eACf,KAAK,MAAM,QAAQ;AACvB,CAAC;AAED,OAAO,SAAS,SACd,WAAqB,EACrB,YAAiB,EACD;IAChB,MAAM,SAAyB,EAAE;IAEjC,YAAY,OAAO,CAAC,CAAC,YAAY,IAAM;QACrC,OAAO,IAAI,IAAI,gBAAmB;QAElC,IAAI,aAAa,MAAM,GAAG,GAAG;YAC3B,MAAM,cAAc,YAAY,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;IACH;IAEA,OAAO;AACT,CAAC;AAED,SAAS,gBACP,UAAkB,EACC;IACnB,MAAM,SAA4B,EAAE;IACpC,IAAI,cAAc,WAAW,OAAO,CAAC;IAErC,MAAO,gBAAgB,CAAC,EAAG;QACzB,MAAM,OAAO,WAAW,KAAK,CAAC,GAAG;QACjC,aAAa,WAAW,KAAK,CAAC,cAAc;QAE5C,IAAI,SAAS,IAAI;YACf,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;QAEZ,cAAc,WAAW,OAAO,CAAC;IACnC;IAEA,IAAI,eAAe,IAAI;QACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO;AACT;AAOA,MAAM;IACJ,OAAO,GAAG,KAAa,EAAa;QAClC,OAAO,IAAI,UAAU;IACvB;IAUA,CAAC,OAAO,GAAG,CAAC,8BAA8B,GAAG;QAC3C,OAAO,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C;IAEA,MACE,IAAY,EACZ,EAAuB,EACL;QAClB,MAAM,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAEtC,IAAI,OAAO,MAAM,KAAK,GAAG;YACvB,OAAO,IAAI;QACb,OAAO;YACL,OAAO,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAC7C,CAAC;IACH;IAEA,UAAU;QACR,OAAO,IAAI,CAAC,KAAK;IACnB;IAzBA,YAA6B,MAAe;qBAAf;aAFpB,OAAO;QAGd,IAAI,UAAU,IAAI;YAChB,MAAM,IAAI,MAAM,iCAAiC;QACnD,CAAC;IACH;AAsBF;IAKG,cAAA,OAAO,GAAG,CAAC;AAHd,MAAM;IAGJ,CAAC,YAAyC,GAAG;QAC3C,OAAO,CAAC,OAAO,CAAC;IAClB;IAEA,UAAU;QACR,OAAO;IACT;;aARS,OAAO;;AASlB;AAEA,MAAM,UAAU,IAAI;AAEpB,MAAM;IACJ,OAAO,GAAM,KAAQ,EAAmB;QACtC,OAAO,IAAI,aAAa;IAC1B;IAMA,CAAC,OAAO,GAAG,CAAC,8BAA8B,GAAG;QAC3C,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,QAAQ,SAA+B,EAAU;QAC/C,OAAO,UAAU,IAAI,CAAC,KAAK;IAC7B;IARA,YAA6B,MAAU;qBAAV;aAFpB,OAAO;IAEwB;AAS1C;IAWW;IA4BP,mBAAA,OAAO,QAAQ,EAoChB,eAAA,OAAO,GAAG,CAAC;AArEd,OAAO,MAAM;IACX,OAAO,GAAM,KAAgB,EAAY;QACvC,OAAO,IAAI,MAAM;IACnB;IAQA,YAAoB;YAGJ;QAFd,OAAO,KAAK,GAAG,IACV,sBAAA,IAAI,EAAE,QAAM,GAAG,CAChB,CAAC;gBAAS;YAAA,OAAA,CAAA,sBAAA,CAAA,eAAA,KAAK,MAAM,cAAX,0BAAA,KAAA,IAAA,aAAa,MAAM,cAAnB,iCAAA,sBAAuB,QAAQ;;IAG/C;IAEA,OAAO,MAAc,EAAY;QAC/B,OAAO,MAAM,EAAE,CACb,sBAAA,IAAI,EAAE,QAAM,GAAG,CAAC,CAAC,OAAS,KAAK,MAAM,CAAC;IAE1C;IAIA,QAAQ,SAA+B,EAAU;QAC/C,OAAO,sBAAA,IAAI,EAAE,QACV,GAAG,CAAC,CAAC,OAAS,KAAK,OAAO,CAAC,YAC3B,IAAI,CAAC;IACV;IAEA,CAAC,CAAC,iBAAgB,GAA8B;QAC9C,KAAK,MAAM,8BAAQ,IAAI,EAAE,QAAO;YAC9B,MAAM;QACR;IACF;IAEA,QAAQ,MAAc,EAAE,SAAyB,EAAQ;QACvD,MAAM,OAAO,sBAAA,IAAI,EAAE,OAAK,CAAC,OAAO;QAEhC,IAAI,CAAC,MAAM;YACT;QACF,CAAC;QAED,MAAM,QAAQ,UAAU;QAExB,IAAI,OAAO;YACT,sBAAA,IAAI,EAAE,QAAM,MAAM,CAAC,QAAQ,MAAM;QACnC,CAAC;IACH;IAEA,aACE,SAAmD,EAC7C;QACN,IAAI,CAAC,OAAO,CAAC,GAAG;IAClB;IAEA,YACE,SAAmD,EAC7C;QACN,IAAI,sBAAA,IAAI,EAAE,QAAM,MAAM,KAAK,GAAG;YAC5B;QACF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,sBAAA,IAAI,EAAE,QAAM,MAAM,GAAG,GAAG;IACvC;IAEA,CAAC,aAAyC,GAAG;QAC3C,6BAAO,IAAI,EAAE;IACf;IAhEA,YAAY,KAAgB,CAAE;QAF9B,6BAAS;;mBAAT,KAAA;;oCAGQ,QAAQ;IAChB;AA+DF,CAAC;AAED,MAAM;IACJ,OAAO,GAAG,MAAc,EAAe;QACrC,OAAO,IAAI,YAAY;IACzB;IAUA,CAAC,OAAO,GAAG,CAAC,8BAA8B,GAAG;QAC3C,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC;IAEA,UAAkB;QAChB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;IAC/B;IAEA,OAAO,MAAc,EAAsB;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG;YAC7B,OAAO,IAAI;QACb,OAAO;YACL,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG;QACtC,CAAC;IACH;IApBA,YAAqB,OAAgB;sBAAhB;aAFZ,OAAO;QAGd,IAAI,WAAW,GAAG;YAChB,MAAM,IAAI,MAAM,kCAAkC;QACpD,CAAC;IACH;AAiBF;AAEA,MAAM;IACJ,OAAO,KAAQ,SAAiC,EAAW;QACzD,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG;QAEzB,IAAI,CAAA,kBAAA,mBAAA,KAAA,IAAA,MAAO,IAAG,AAAC,MAAK,QAAQ;gBACX;gBAAA;YAAf,MAAM,SAAS,CAAA,6BAAA,CAAA,qBAAA,MAAM,KAAK,CAAC,KAAK,CAAC,qBAAlB,gCAAA,KAAA,IAAA,kBAA2B,CAAC,EAAE,CAAC,MAAM,cAArC,wCAAA,6BAAyC,CAAC;YACzD,MAAM,YAAY,MAAM,KAAK,CAAC;YAE9B,MAAM,SAAwB;gBAC5B,YAAY,EAAE,CAAC;mBACX,YAAY;oBAAC;iBAAU,GAAG,EAAE;mBAC7B;aACJ;YAED,OAAO,IAAI,KAAK;QAClB,OAAO;YACL,OAAO,IAAI,KAAK;QAClB,CAAC;IACH;IAIA,CAAC,OAAO,GAAG,CAAC,8BAA8B,GAAG;QAC3C,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,UAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK;IAChC;IAEA,IAAI,SAA6B;QAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAC3B,IAAI,CAAA,kBAAA,mBAAA,KAAA,IAAA,MAAO,IAAG,AAAC,MAAK,UAAU;YAC5B,OAAO;QACT,OAAO;YACL,OAAO,IAAI;QACb,CAAC;IACH;IAEA,OAAO,MAAc,EAAW;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG;YAC5B,OAAO,IAAI;QACb,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;QAKpC,IAAI,MAAM,IAAI,KAAK,UAAU;YAC3B,OAAO,IAAI;QACb,CAAC;QAED,MAAM,WAAW,MAAM,MAAM,CAAC;QAE9B,IAAI,UAAU;YACZ,OAAO,IAAI,KAAK;gBAAC;mBAAa;aAAK;QACrC,OAAO;YACL,OAAO,IAAI,KAAK;QAClB,CAAC;IACH;IAIA,QAAQ,YAAiC,MAAM,EAAU;QACvD,OAAO,IAAI,CAAC,MAAM,CACf,GAAG,CAAC,CAAC,QAAU,MAAM,OAAO,CAAC,YAC7B,IAAI,CAAC;IACV;IAhDA,YAA6B,OAAuB;sBAAvB;IAAwB;AAiDvD","file":"index.js","sourcesContent":["export function parse(\n raw: TemplateStringsArray,\n ...dynamicItems: T[]\n): Lines {\n const tokens = tokenize([...raw], dynamicItems);\n\n const lines: Line[] = [];\n let buffer: Fragment[] = [];\n\n for (const token of tokens) {\n if (token.type === \"newline\") {\n lines.push(Line.from(buffer));\n buffer = [];\n } else {\n buffer.push(token);\n }\n }\n\n return Lines.of(lines);\n}\n\ntype TemplateFn) => any> =\n I extends (items: Lines) => infer U\n ? (items: TemplateStringsArray, ...dynamicItems: T[]) => U\n : never;\n\ntype StringifyFn) => any> =\n I extends (items: Lines) => any\n ? (item: T) => string\n : never;\n\nexport function parsed<\n Impl extends (items: Lines) => string\n>(impl: Impl): TemplateFn;\nexport function parsed) => any>(\n impl: Impl,\n stringify: StringifyFn\n): TemplateFn;\n\nexport function parsed) => any>(\n impl: Impl\n): TemplateFn {\n return ((raw, ...dynamicItems) =>\n impl(parse(raw, ...dynamicItems))) as TemplateFn;\n}\n\nexport function tokenize(\n staticItems: string[],\n dynamicItems: T[]\n): Tokenized[] {\n const tokens: Tokenized[] = [];\n\n staticItems.forEach((staticItem, i) => {\n tokens.push(...parseStaticItem(staticItem));\n\n if (dynamicItems.length > i) {\n const dynamicItem = dynamicItems[i] as T;\n tokens.push(DynamicToken.of(dynamicItem));\n }\n });\n\n return tokens;\n}\n\nfunction parseStaticItem(\n staticItem: string\n): TokenizedStatic[] {\n const tokens: TokenizedStatic[] = [];\n let nextNewline = staticItem.indexOf(\"\\n\");\n\n while (nextNewline !== -1) {\n const next = staticItem.slice(0, nextNewline);\n staticItem = staticItem.slice(nextNewline + 1);\n\n if (next !== \"\") {\n tokens.push(TextToken.of(next));\n }\n tokens.push(NEWLINE);\n\n nextNewline = staticItem.indexOf(\"\\n\");\n }\n\n if (staticItem !== \"\") {\n tokens.push(TextToken.of(staticItem));\n }\n\n return tokens;\n}\n\ninterface AbstractToken {\n readonly type: string;\n display(stringify: (value: unknown) => string): string;\n}\n\nclass TextToken implements AbstractToken {\n static of(value: string): TextToken {\n return new TextToken(value);\n }\n\n readonly type = \"text\";\n\n private constructor(readonly value: string) {\n if (value === \"\") {\n throw new Error(\"Text tokens must not be empty\");\n }\n }\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return `Text(${JSON.stringify(this.value)})`;\n }\n\n slice(\n from: number,\n to?: number | undefined\n ): TextToken | null {\n const sliced = this.value.slice(from, to);\n\n if (sliced.length === 0) {\n return null;\n } else {\n return TextToken.of(this.value.slice(from, to));\n }\n }\n\n display() {\n return this.value;\n }\n}\n\nclass NewlineToken implements AbstractToken {\n readonly type = \"newline\";\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return `Newline`;\n }\n\n display() {\n return \"\\n\";\n }\n}\n\nconst NEWLINE = new NewlineToken();\n\nclass DynamicToken implements AbstractToken {\n static of(value: T): DynamicToken {\n return new DynamicToken(value);\n }\n\n readonly type = \"dynamic\";\n\n private constructor(readonly value: T) {}\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.value;\n }\n\n display(stringify: (value: T) => string): string {\n return stringify(this.value);\n }\n}\n\nexport type ProcessLine = (\n line: Line\n) => Line[] | undefined;\n\nexport class Lines {\n static of(lines: Line[]): Lines {\n return new Lines(lines);\n }\n\n readonly #lines: Line[];\n\n constructor(lines: Line[]) {\n this.#lines = lines;\n }\n\n minIndent(): number {\n return Math.min(\n ...this.#lines.map(\n (line) => line.indent?.indent ?? Infinity\n )\n );\n }\n\n dedent(indent: number): Lines {\n return Lines.of(\n this.#lines.map((line) => line.dedent(indent))\n );\n }\n\n display(stringify: (item: T) => string): string;\n display(this: Lines): string;\n display(stringify?: (item: T) => string): string {\n return this.#lines\n .map((line) => line.display(stringify as any))\n .join(\"\\n\");\n }\n\n *[Symbol.iterator](): IterableIterator> {\n for (const line of this.#lines) {\n yield line;\n }\n }\n\n process(lineno: number, processor: ProcessLine): void {\n const line = this.#lines[lineno];\n\n if (!line) {\n return;\n }\n\n const lines = processor(line);\n\n if (lines) {\n this.#lines.splice(lineno, 1, ...lines);\n }\n }\n\n processFirst(\n processor: (line: Line) => Line[] | undefined\n ): void {\n this.process(0, processor);\n }\n\n processLast(\n processor: (line: Line) => Line[] | undefined\n ): void {\n if (this.#lines.length === 0) {\n return;\n }\n\n this.process(this.#lines.length - 1, processor);\n }\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.#lines;\n }\n}\n\nclass IndentToken implements AbstractToken {\n static of(indent: number): IndentToken {\n return new IndentToken(indent);\n }\n\n readonly type = \"indent\";\n\n constructor(readonly indent: number) {\n if (indent === 0) {\n throw new Error(\"Indent tokens must not be zero\");\n }\n }\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return `Indent(${this.indent})`;\n }\n\n display(): string {\n return \" \".repeat(this.indent);\n }\n\n dedent(indent: number): IndentToken | null {\n if (this.indent - indent <= 0) {\n return null;\n } else {\n return IndentToken.of(this.indent - indent);\n }\n }\n}\n\nclass Line {\n static from(fragments: readonly Fragment[]): Line {\n const [first, ...rest] = fragments;\n\n if (first?.type === \"text\") {\n const indent = first.value.match(/^\\s*/)?.[0].length ?? 0;\n const textToken = first.slice(indent);\n\n const tokens: LineTokens = [\n IndentToken.of(indent),\n ...(textToken ? [textToken] : []),\n ...rest,\n ];\n\n return new Line(tokens);\n } else {\n return new Line(fragments as LineTokens);\n }\n }\n\n private constructor(readonly tokens: LineTokens) {}\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return this.tokens;\n }\n\n isEmpty(): boolean {\n return this.tokens.length === 0;\n }\n\n get indent(): IndentToken | null {\n const [first] = this.tokens;\n if (first?.type === \"indent\") {\n return first;\n } else {\n return null;\n }\n }\n\n dedent(indent: number): Line {\n if (this.tokens.length === 0) {\n return this;\n }\n\n const [first, ...rest] = this.tokens as [\n IndentToken | Fragment,\n ...Fragment[]\n ];\n\n if (first.type !== \"indent\") {\n return this;\n }\n\n const dedented = first.dedent(indent);\n\n if (dedented) {\n return new Line([dedented, ...rest]);\n } else {\n return new Line(rest as LineTokens);\n }\n }\n\n display(stringify: (item: T) => string): string;\n display(this: Line): string;\n display(stringify: (item: T) => string = String): string {\n return this.tokens\n .map((token) => token.display(stringify as any))\n .join(\"\");\n }\n}\n\ntype TokenizedStatic = TextToken | NewlineToken;\ntype Tokenized = TokenizedStatic | DynamicToken;\ntype Token =\n | IndentToken\n | TextToken\n | NewlineToken\n | DynamicToken;\n\ntype Fragment = TextToken | DynamicToken;\ntype LineTokens = Token[] &\n (\n | readonly [IndentToken?, ...Fragment[]]\n | readonly Fragment[]\n );\n"]} \ No newline at end of file diff --git a/packages/@jsergo/tagged-templates/package.json b/packages/@jsergo/tagged-templates/package.json new file mode 100644 index 0000000..96af80f --- /dev/null +++ b/packages/@jsergo/tagged-templates/package.json @@ -0,0 +1,17 @@ +{ + "name": "@jsergo/tagged-templates", + "version": "1.0.0", + "type": "module", + "private": true, + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, + "nx": { + "tags": [ + "scope:lib" + ] + } +} diff --git a/packages/@jsergo/tagged-templates/project.json b/packages/@jsergo/tagged-templates/project.json new file mode 100644 index 0000000..48b1e7f --- /dev/null +++ b/packages/@jsergo/tagged-templates/project.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "name": "ergo-tagged-templates", + "projectType": "library", + "targets": { + "build": {} + } +} diff --git a/packages/@jsergo/tagged-templates/src/index.ts b/packages/@jsergo/tagged-templates/src/index.ts new file mode 100644 index 0000000..921cf25 --- /dev/null +++ b/packages/@jsergo/tagged-templates/src/index.ts @@ -0,0 +1,354 @@ +export function parse( + raw: TemplateStringsArray, + ...dynamicItems: T[] +): Lines { + const tokens = tokenize([...raw], dynamicItems); + + const lines: Line[] = []; + let buffer: Fragment[] = []; + + for (const token of tokens) { + if (token.type === "newline") { + lines.push(Line.from(buffer)); + buffer = []; + } else { + buffer.push(token); + } + } + + return Lines.of(lines); +} + +type TemplateFn) => any> = + I extends (items: Lines) => infer U + ? (items: TemplateStringsArray, ...dynamicItems: T[]) => U + : never; + +type StringifyFn) => any> = + I extends (items: Lines) => any + ? (item: T) => string + : never; + +export function parsed< + Impl extends (items: Lines) => string +>(impl: Impl): TemplateFn; +export function parsed) => any>( + impl: Impl, + stringify: StringifyFn +): TemplateFn; + +export function parsed) => any>( + impl: Impl +): TemplateFn { + return ((raw, ...dynamicItems) => + impl(parse(raw, ...dynamicItems))) as TemplateFn; +} + +export function tokenize( + staticItems: string[], + dynamicItems: T[] +): Tokenized[] { + const tokens: Tokenized[] = []; + + staticItems.forEach((staticItem, i) => { + tokens.push(...parseStaticItem(staticItem)); + + if (dynamicItems.length > i) { + const dynamicItem = dynamicItems[i] as T; + tokens.push(DynamicToken.of(dynamicItem)); + } + }); + + return tokens; +} + +function parseStaticItem( + staticItem: string +): TokenizedStatic[] { + const tokens: TokenizedStatic[] = []; + let nextNewline = staticItem.indexOf("\n"); + + while (nextNewline !== -1) { + const next = staticItem.slice(0, nextNewline); + staticItem = staticItem.slice(nextNewline + 1); + + if (next !== "") { + tokens.push(TextToken.of(next)); + } + tokens.push(NEWLINE); + + nextNewline = staticItem.indexOf("\n"); + } + + if (staticItem !== "") { + tokens.push(TextToken.of(staticItem)); + } + + return tokens; +} + +interface AbstractToken { + readonly type: string; + display(stringify: (value: unknown) => string): string; +} + +class TextToken implements AbstractToken { + static of(value: string): TextToken { + return new TextToken(value); + } + + readonly type = "text"; + + private constructor(readonly value: string) { + if (value === "") { + throw new Error("Text tokens must not be empty"); + } + } + + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Text(${JSON.stringify(this.value)})`; + } + + slice( + from: number, + to?: number | undefined + ): TextToken | null { + const sliced = this.value.slice(from, to); + + if (sliced.length === 0) { + return null; + } else { + return TextToken.of(this.value.slice(from, to)); + } + } + + display() { + return this.value; + } +} + +class NewlineToken implements AbstractToken { + readonly type = "newline"; + + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Newline`; + } + + display() { + return "\n"; + } +} + +const NEWLINE = new NewlineToken(); + +class DynamicToken implements AbstractToken { + static of(value: T): DynamicToken { + return new DynamicToken(value); + } + + readonly type = "dynamic"; + + private constructor(readonly value: T) {} + + [Symbol.for("nodejs.util.inspect.custom")]() { + return this.value; + } + + display(stringify: (value: T) => string): string { + return stringify(this.value); + } +} + +export type ProcessLine = ( + line: Line +) => Line[] | undefined; + +export class Lines { + static of(lines: Line[]): Lines { + return new Lines(lines); + } + + readonly #lines: Line[]; + + constructor(lines: Line[]) { + this.#lines = lines; + } + + minIndent(): number { + return Math.min( + ...this.#lines.map( + (line) => line.indent?.indent ?? Infinity + ) + ); + } + + dedent(indent: number): Lines { + return Lines.of( + this.#lines.map((line) => line.dedent(indent)) + ); + } + + display(stringify: (item: T) => string): string; + display(this: Lines): string; + display(stringify?: (item: T) => string): string { + return this.#lines + .map((line) => line.display(stringify as any)) + .join("\n"); + } + + *[Symbol.iterator](): IterableIterator> { + for (const line of this.#lines) { + yield line; + } + } + + process(lineno: number, processor: ProcessLine): void { + const line = this.#lines[lineno]; + + if (!line) { + return; + } + + const lines = processor(line); + + if (lines) { + this.#lines.splice(lineno, 1, ...lines); + } + } + + processFirst( + processor: (line: Line) => Line[] | undefined + ): void { + this.process(0, processor); + } + + processLast( + processor: (line: Line) => Line[] | undefined + ): void { + if (this.#lines.length === 0) { + return; + } + + this.process(this.#lines.length - 1, processor); + } + + [Symbol.for("nodejs.util.inspect.custom")]() { + return this.#lines; + } +} + +class IndentToken implements AbstractToken { + static of(indent: number): IndentToken { + return new IndentToken(indent); + } + + readonly type = "indent"; + + constructor(readonly indent: number) { + if (indent === 0) { + throw new Error("Indent tokens must not be zero"); + } + } + + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Indent(${this.indent})`; + } + + display(): string { + return " ".repeat(this.indent); + } + + dedent(indent: number): IndentToken | null { + if (this.indent - indent <= 0) { + return null; + } else { + return IndentToken.of(this.indent - indent); + } + } +} + +class Line { + static from(fragments: readonly Fragment[]): Line { + const [first, ...rest] = fragments; + + if (first?.type === "text") { + const indent = first.value.match(/^\s*/)?.[0].length ?? 0; + const textToken = first.slice(indent); + + const tokens: LineTokens = [ + IndentToken.of(indent), + ...(textToken ? [textToken] : []), + ...rest, + ]; + + return new Line(tokens); + } else { + return new Line(fragments as LineTokens); + } + } + + private constructor(readonly tokens: LineTokens) {} + + [Symbol.for("nodejs.util.inspect.custom")]() { + return this.tokens; + } + + isEmpty(): boolean { + return this.tokens.length === 0; + } + + get indent(): IndentToken | null { + const [first] = this.tokens; + if (first?.type === "indent") { + return first; + } else { + return null; + } + } + + dedent(indent: number): Line { + if (this.tokens.length === 0) { + return this; + } + + const [first, ...rest] = this.tokens as [ + IndentToken | Fragment, + ...Fragment[] + ]; + + if (first.type !== "indent") { + return this; + } + + const dedented = first.dedent(indent); + + if (dedented) { + return new Line([dedented, ...rest]); + } else { + return new Line(rest as LineTokens); + } + } + + display(stringify: (item: T) => string): string; + display(this: Line): string; + display(stringify: (item: T) => string = String): string { + return this.tokens + .map((token) => token.display(stringify as any)) + .join(""); + } +} + +type TokenizedStatic = TextToken | NewlineToken; +type Tokenized = TokenizedStatic | DynamicToken; +type Token = + | IndentToken + | TextToken + | NewlineToken + | DynamicToken; + +type Fragment = TextToken | DynamicToken; +type LineTokens = Token[] & + ( + | readonly [IndentToken?, ...Fragment[]] + | readonly Fragment[] + ); diff --git a/packages/@jsergo/tagged-templates/tsconfig.build.json b/packages/@jsergo/tagged-templates/tsconfig.build.json new file mode 100644 index 0000000..388311f --- /dev/null +++ b/packages/@jsergo/tagged-templates/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "sourceRoot": "../", + "emitDeclarationOnly": true, + "declarationMap": true + }, + "include": ["./index.ts", "./src/**/*"] +} diff --git a/packages/@jsergo/tagged-templates/tsconfig.json b/packages/@jsergo/tagged-templates/tsconfig.json new file mode 100644 index 0000000..dec7962 --- /dev/null +++ b/packages/@jsergo/tagged-templates/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.package.json", + "compilerOptions": { "outDir": "./dist", "emitDeclarationOnly": true } +} diff --git a/packages/@starbeam-docs/custom-block/dist/CustomBlock.css b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css new file mode 100644 index 0000000..65f80b2 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css @@ -0,0 +1,64 @@ +@layer custom-block { + ._custom-block_qdbrd_2:has(details) { + display: contents; + } + + ._custom-block_qdbrd_2 > details { + padding-left: var(--sbdoc-ui-inner-padding); + padding-right: var(--sbdoc-ui-inner-padding); + } + + ._custom-block_qdbrd_2:not(:has(details)) { + display: grid; + grid-template-columns: var(--sbdoc-ui-inner-padding) -webkit-min-content 1fr var( + --sbdoc-ui-inner-padding + ); + grid-template-columns: var(--sbdoc-ui-inner-padding) min-content 1fr var( + --sbdoc-ui-inner-padding + ); + -webkit-box-align: first baseline; + -ms-flex-align: first baseline; + align-items: first baseline; + grid-row-gap: var(--sbdoc-default-line-spacing); + row-gap: var(--sbdoc-default-line-spacing); + padding-top: var(--sbdoc-ui-inner-padding); + padding-bottom: var(--sbdoc-ui-inner-padding); + border-width: 0; + border-style: solid; + } + + ._custom-block_qdbrd_2:not(:has(details)) > * { + grid-column: 2; + } + + ._custom-block_qdbrd_2:not(:has(details)) ._custom-block_qdbrd_2 { + border: 0; + grid-column: 1 / span 4; + /* border-radius: 0; */ + background-color: var(--sbdoc-local-bg); + } + + /* .custom-block:not(.north) > :first-child { + margin-block-start: 0; + } + + .custom-block:not(.south) > :last-child { + margin-block-end: 0; + } */ + + /* .custom-block.west { + border-inline-start-width: var(--sbdoc-local-border-width); + } + + .custom-block.east { + border-inline-end-width: var(--sbdoc-local-border-width); + } + + .custom-block.north { + border-block-start-width: var(--sbdoc-local-border-width); + } + + .custom-block.south { + border-block-end-width: var(--sbdoc-local-border-width); + } */ +} diff --git a/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js new file mode 100644 index 0000000..cd5cfd7 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js @@ -0,0 +1,11 @@ +export const customBlock = "_custom-block_qdbrd_2"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode("@layer custom-block {\n ._custom-block_qdbrd_2:has(details) {\n display: contents;\n }\n\n ._custom-block_qdbrd_2 > details {\n padding-left: var(--sbdoc-ui-inner-padding);\n padding-right: var(--sbdoc-ui-inner-padding);\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) {\n display: grid;\n grid-template-columns: var(--sbdoc-ui-inner-padding) -webkit-min-content 1fr var(\n --sbdoc-ui-inner-padding\n );\n grid-template-columns: var(--sbdoc-ui-inner-padding) min-content 1fr var(\n --sbdoc-ui-inner-padding\n );\n -webkit-box-align: first baseline;\n -ms-flex-align: first baseline;\n align-items: first baseline;\n grid-row-gap: var(--sbdoc-default-line-spacing);\n row-gap: var(--sbdoc-default-line-spacing);\n padding-top: var(--sbdoc-ui-inner-padding);\n padding-bottom: var(--sbdoc-ui-inner-padding);\n border-width: 0;\n border-style: solid;\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) > * {\n grid-column: 2;\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) ._custom-block_qdbrd_2 {\n border: 0;\n grid-column: 1 / span 4;\n /* border-radius: 0; */\n background-color: var(--sbdoc-local-bg);\n }\n\n /* .custom-block:not(.north) > :first-child {\n margin-block-start: 0;\n }\n\n .custom-block:not(.south) > :last-child {\n margin-block-end: 0;\n } */\n\n /* .custom-block.west {\n border-inline-start-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.east {\n border-inline-end-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.north {\n border-block-start-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.south {\n border-block-end-width: var(--sbdoc-local-border-width);\n } */\n}\n"); + style.appendChild(text); + document.head.appendChild(style); +} + + +//# sourceMappingURL=CustomBlock.css.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js.map b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js.map new file mode 100644 index 0000000..0345a28 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/CustomBlock.css.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/CustomBlock.css.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,cAAc,wBAAwB;AACnD,IAAI,WAAW,QAAQ,KAAK,WAAW;IACrC,MAAM,QAAQ,SAAS,aAAa,CAAC;IACrC,MAAM,YAAY,CAAC,QAAQ;IAC3B,MAAM,OAAO,SAAS,cAAc,CAAC;IACrC,MAAM,WAAW,CAAC;IAClB,SAAS,IAAI,CAAC,WAAW,CAAC;AAC5B,CAAC","file":"CustomBlock.css.js","sourcesContent":["export const customBlock = \"_custom-block_qdbrd_2\";\nif (globalThis.document !== undefined) {\n const style = document.createElement('style');\n style.setAttribute(\"type\", \"text/css\");\n const text = document.createTextNode(\"@layer custom-block {\\n ._custom-block_qdbrd_2:has(details) {\\n display: contents;\\n }\\n\\n ._custom-block_qdbrd_2 > details {\\n padding-left: var(--sbdoc-ui-inner-padding);\\n padding-right: var(--sbdoc-ui-inner-padding);\\n }\\n\\n ._custom-block_qdbrd_2:not(:has(details)) {\\n display: grid;\\n grid-template-columns: var(--sbdoc-ui-inner-padding) -webkit-min-content 1fr var(\\n --sbdoc-ui-inner-padding\\n );\\n grid-template-columns: var(--sbdoc-ui-inner-padding) min-content 1fr var(\\n --sbdoc-ui-inner-padding\\n );\\n -webkit-box-align: first baseline;\\n -ms-flex-align: first baseline;\\n align-items: first baseline;\\n grid-row-gap: var(--sbdoc-default-line-spacing);\\n row-gap: var(--sbdoc-default-line-spacing);\\n padding-top: var(--sbdoc-ui-inner-padding);\\n padding-bottom: var(--sbdoc-ui-inner-padding);\\n border-width: 0;\\n border-style: solid;\\n }\\n\\n ._custom-block_qdbrd_2:not(:has(details)) > * {\\n grid-column: 2;\\n }\\n\\n ._custom-block_qdbrd_2:not(:has(details)) ._custom-block_qdbrd_2 {\\n border: 0;\\n grid-column: 1 / span 4;\\n /* border-radius: 0; */\\n background-color: var(--sbdoc-local-bg);\\n }\\n\\n /* .custom-block:not(.north) > :first-child {\\n margin-block-start: 0;\\n }\\n\\n .custom-block:not(.south) > :last-child {\\n margin-block-end: 0;\\n } */\\n\\n /* .custom-block.west {\\n border-inline-start-width: var(--sbdoc-local-border-width);\\n }\\n\\n .custom-block.east {\\n border-inline-end-width: var(--sbdoc-local-border-width);\\n }\\n\\n .custom-block.north {\\n border-block-start-width: var(--sbdoc-local-border-width);\\n }\\n\\n .custom-block.south {\\n border-block-end-width: var(--sbdoc-local-border-width);\\n } */\\n}\\n\");\n style.appendChild(text);\n document.head.appendChild(style);\n}"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/dist/CustomBlock.js b/packages/@starbeam-docs/custom-block/dist/CustomBlock.js new file mode 100644 index 0000000..e00e30c --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/CustomBlock.js @@ -0,0 +1,77 @@ +import { createVNode as _createVNode } from "vue"; +import { defineComponent } from "vue"; +import { customBlock } from "./CustomBlock.css.js"; +const north = "north"; +const south = "south"; +const east = "east"; +const west = "west"; +const MAPPING = { + n: north, + s: south, + e: east, + w: west +}; +function computeBorder(position) { + const classes = []; + for (const [input, className] of Object.entries(MAPPING)){ + if (position.includes(input)) { + classes.push(className); + } + } + return classes; +} +function prop(type, options) { + if (options && "default" in options) { + return { + type, + default: options?.default + }; + } else { + return { + type + }; + } +} +export default defineComponent({ + props: { + kind: prop(String), + border: prop(String), + color: prop(String), + style: prop(Object) + }, + setup: (props, { slots })=>{ + return ()=>_createVNode("div", { + "class": [ + customBlock, + `sbdoc-custom-block-${props.color}`, + ...computeKindClass(props.kind), + ...computeBorder(props.border ?? "nsew") + ], + "style": props.style ?? {} + }, [ + slots["default"]?.() + ]); + } +}); +function computeKindClass(kind) { + if (kind === "details") { + return [ + "display-contents", + "details" + ]; + } else if (kind) { + return [ + "content-block", + "callout-block", + kind + ]; + } else { + return [ + "content-block", + "callout-block" + ]; + } +} + + +//# sourceMappingURL=CustomBlock.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/dist/CustomBlock.js.map b/packages/@starbeam-docs/custom-block/dist/CustomBlock.js.map new file mode 100644 index 0000000..f082e96 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/CustomBlock.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/CustomBlock.tsx"],"names":[],"mappings":";AAAA,SACE,eAAe,QAIV,MAAM;AACb,SAAS,WAAW,QAAQ,uBAAuB;AAWnD,MAAM,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,OAAO;AACb,MAAM,OAAO;AAQb,MAAM,UAAU;IACd,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAEA,SAAS,cAAc,QAAwB,EAAiB;IAC9D,MAAM,UAAyB,EAAE;IAEjC,KAAK,MAAM,CAAC,OAAO,UAAU,IAAI,OAAO,OAAO,CAAC,SAAU;QACxD,IAAI,SAAS,QAAQ,CAAC,QAAQ;YAC5B,QAAQ,IAAI,CAAC;QACf,CAAC;IACH;IAEA,OAAO;AACT;AAIA,SAAS,KACP,IAAiB,EACjB,OAAwB,EACf;IACT,IAAI,WAAW,aAAa,SAAS;QACnC,OAAO;YACL;YACA,SAAS,SAAS;QACpB;IACF,OAAO;QACL,OAAO;YACL;QACF;IACF,CAAC;AACH;AAEA,eAAe,gBAAgB;IAC7B,OAAO;QACL,MAAM,KAAK;QACX,QAAQ,KAAqB;QAC7B,OAAO,KAAK;QACZ,OAAO,KAA0C;IACnD;IACA,OAAO,CAAC,OAAO,EAAE,MAAK,EAAE,GAAK;QAC3B,OAAO;yBAEI;oBACL;oBACA,CAAC,mBAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;uBAChC,iBAAiB,MAAM,IAAI;uBAC3B,cAAc,MAAM,MAAM,IAAK;iBACnC;yBACM,MAAM,KAAK,IAAI,CAAC;;gBAEtB,KAAK,CAAC,UAAU;;IAGvB;AACF,GAAG;AAEH,SAAS,iBAAiB,IAAwB,EAAY;IAC5D,IAAI,SAAS,WAAW;QACtB,OAAO;YAAC;YAAoB;SAAU;IACxC,OAAO,IAAI,MAAM;QACf,OAAO;YAAC;YAAiB;YAAiB;SAAK;IACjD,OAAO;QACL,OAAO;YAAC;YAAiB;SAAgB;IAC3C,CAAC;AACH","file":"CustomBlock.js","sourcesContent":["import {\n defineComponent,\n type Prop,\n type PropType,\n type StyleValue,\n} from \"vue\";\nimport { customBlock } from \"./CustomBlock.css.js\";\n\nexport interface Props {\n readonly color?: string;\n readonly border?: Border;\n}\n\ntype BorderPosition =\n | `${\"n\" | \"s\" | \"ns\" | \"\"}${\"e\" | \"w\" | \"ew\" | \"\"}`\n | \"-\";\n\nconst north = \"north\";\nconst south = \"south\";\nconst east = \"east\";\nconst west = \"west\";\n\ntype BorderClass =\n | typeof north\n | typeof south\n | typeof east\n | typeof west;\n\nconst MAPPING = {\n n: north,\n s: south,\n e: east,\n w: west,\n} as const;\n\nfunction computeBorder(position: BorderPosition): BorderClass[] {\n const classes: BorderClass[] = [];\n\n for (const [input, className] of Object.entries(MAPPING)) {\n if (position.includes(input)) {\n classes.push(className);\n }\n }\n\n return classes;\n}\n\ntype Border = `${BorderPosition}`;\n\nfunction prop(\n type: PropType,\n options?: { default: U }\n): Prop {\n if (options && \"default\" in options) {\n return {\n type,\n default: options?.default,\n } as Prop;\n } else {\n return {\n type,\n } as Prop;\n }\n}\n\nexport default defineComponent({\n props: {\n kind: prop(String),\n border: prop(String),\n color: prop(String),\n style: prop, object>(Object),\n },\n setup: (props, { slots }) => {\n return () => (\n \n {slots[\"default\"]?.()}\n \n );\n },\n});\n\nfunction computeKindClass(kind: string | undefined): string[] {\n if (kind === \"details\") {\n return [\"display-contents\", \"details\"];\n } else if (kind) {\n return [\"content-block\", \"callout-block\", kind];\n } else {\n return [\"content-block\", \"callout-block\"];\n }\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/dist/index.js b/packages/@starbeam-docs/custom-block/dist/index.js new file mode 100644 index 0000000..6f5fc17 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/index.js @@ -0,0 +1,4 @@ +export { default as CustomBlock } from "./CustomBlock.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/dist/index.js.map b/packages/@starbeam-docs/custom-block/dist/index.js.map new file mode 100644 index 0000000..9edf8bc --- /dev/null +++ b/packages/@starbeam-docs/custom-block/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,WAAW,WAAW,QAAQ,mBAAmB","file":"index.js","sourcesContent":["export { default as CustomBlock } from \"./CustomBlock.js\";\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/package.json b/packages/@starbeam-docs/custom-block/package.json new file mode 100644 index 0000000..2c5d654 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/package.json @@ -0,0 +1,14 @@ +{ + "name": "@starbeam-docs/custom-block", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + "types": "./src/index.ts", + "default": "./dist/index.js" + }, + "dependencies": { + "@wycatsjs/utils": "workspace:^", + "vue": "*" + } +} diff --git a/packages/@starbeam-docs/custom-block/src/CustomBlock.css.ts b/packages/@starbeam-docs/custom-block/src/CustomBlock.css.ts new file mode 100644 index 0000000..1af005a --- /dev/null +++ b/packages/@starbeam-docs/custom-block/src/CustomBlock.css.ts @@ -0,0 +1,8 @@ +export const customBlock = "_custom-block_qdbrd_2"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode("@layer custom-block {\n ._custom-block_qdbrd_2:has(details) {\n display: contents;\n }\n\n ._custom-block_qdbrd_2 > details {\n padding-left: var(--sbdoc-ui-inner-padding);\n padding-right: var(--sbdoc-ui-inner-padding);\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) {\n display: grid;\n grid-template-columns: var(--sbdoc-ui-inner-padding) -webkit-min-content 1fr var(\n --sbdoc-ui-inner-padding\n );\n grid-template-columns: var(--sbdoc-ui-inner-padding) min-content 1fr var(\n --sbdoc-ui-inner-padding\n );\n -webkit-box-align: first baseline;\n -ms-flex-align: first baseline;\n align-items: first baseline;\n grid-row-gap: var(--sbdoc-default-line-spacing);\n row-gap: var(--sbdoc-default-line-spacing);\n padding-top: var(--sbdoc-ui-inner-padding);\n padding-bottom: var(--sbdoc-ui-inner-padding);\n border-width: 0;\n border-style: solid;\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) > * {\n grid-column: 2;\n }\n\n ._custom-block_qdbrd_2:not(:has(details)) ._custom-block_qdbrd_2 {\n border: 0;\n grid-column: 1 / span 4;\n /* border-radius: 0; */\n background-color: var(--sbdoc-local-bg);\n }\n\n /* .custom-block:not(.north) > :first-child {\n margin-block-start: 0;\n }\n\n .custom-block:not(.south) > :last-child {\n margin-block-end: 0;\n } */\n\n /* .custom-block.west {\n border-inline-start-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.east {\n border-inline-end-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.north {\n border-block-start-width: var(--sbdoc-local-border-width);\n }\n\n .custom-block.south {\n border-block-end-width: var(--sbdoc-local-border-width);\n } */\n}\n"); + style.appendChild(text); + document.head.appendChild(style); +} \ No newline at end of file diff --git a/packages/@starbeam-docs/custom-block/src/CustomBlock.postcss b/packages/@starbeam-docs/custom-block/src/CustomBlock.postcss new file mode 100644 index 0000000..c5ee8ef --- /dev/null +++ b/packages/@starbeam-docs/custom-block/src/CustomBlock.postcss @@ -0,0 +1,56 @@ +@layer custom-block { + .custom-block:has(details) { + display: contents; + } + + .custom-block > details { + padding-inline: var(--sbdoc-ui-inner-padding); + } + + .custom-block:not(:has(details)) { + display: grid; + grid-template-columns: var(--sbdoc-ui-inner-padding) min-content 1fr var( + --sbdoc-ui-inner-padding + ); + align-items: first baseline; + row-gap: var(--sbdoc-default-line-spacing); + padding-block: var(--sbdoc-ui-inner-padding); + border-width: 0; + border-style: solid; + + > * { + grid-column: 2; + } + + .custom-block { + border: 0; + grid-column: 1 / span 4; + /* border-radius: 0; */ + background-color: var(--sbdoc-local-bg); + } + } + + /* .custom-block:not(.north) > :first-child { + margin-block-start: 0; + } + + .custom-block:not(.south) > :last-child { + margin-block-end: 0; + } */ + + /* .custom-block.west { + border-inline-start-width: var(--sbdoc-local-border-width); + } + + .custom-block.east { + border-inline-end-width: var(--sbdoc-local-border-width); + } + + .custom-block.north { + border-block-start-width: var(--sbdoc-local-border-width); + } + + .custom-block.south { + border-block-end-width: var(--sbdoc-local-border-width); + } */ +} diff --git a/packages/@starbeam-docs/custom-block/src/CustomBlock.tsx b/packages/@starbeam-docs/custom-block/src/CustomBlock.tsx new file mode 100644 index 0000000..c819ce0 --- /dev/null +++ b/packages/@starbeam-docs/custom-block/src/CustomBlock.tsx @@ -0,0 +1,98 @@ +import { + defineComponent, + type Prop, + type PropType, + type StyleValue, +} from "vue"; +import { customBlock } from "./CustomBlock.css.js"; + +export interface Props { + readonly color?: string; + readonly border?: Border; +} + +type BorderPosition = + | `${"n" | "s" | "ns" | ""}${"e" | "w" | "ew" | ""}` + | "-"; + +const north = "north"; +const south = "south"; +const east = "east"; +const west = "west"; + +type BorderClass = + | typeof north + | typeof south + | typeof east + | typeof west; + +const MAPPING = { + n: north, + s: south, + e: east, + w: west, +} as const; + +function computeBorder(position: BorderPosition): BorderClass[] { + const classes: BorderClass[] = []; + + for (const [input, className] of Object.entries(MAPPING)) { + if (position.includes(input)) { + classes.push(className); + } + } + + return classes; +} + +type Border = `${BorderPosition}`; + +function prop( + type: PropType, + options?: { default: U } +): Prop { + if (options && "default" in options) { + return { + type, + default: options?.default, + } as Prop; + } else { + return { + type, + } as Prop; + } +} + +export default defineComponent({ + props: { + kind: prop(String), + border: prop(String), + color: prop(String), + style: prop, object>(Object), + }, + setup: (props, { slots }) => { + return () => ( +
+ {slots["default"]?.()} +
+ ); + }, +}); + +function computeKindClass(kind: string | undefined): string[] { + if (kind === "details") { + return ["display-contents", "details"]; + } else if (kind) { + return ["content-block", "callout-block", kind]; + } else { + return ["content-block", "callout-block"]; + } +} diff --git a/packages/@starbeam-docs/custom-block/src/index.ts b/packages/@starbeam-docs/custom-block/src/index.ts new file mode 100644 index 0000000..505d09d --- /dev/null +++ b/packages/@starbeam-docs/custom-block/src/index.ts @@ -0,0 +1 @@ +export { default as CustomBlock } from "./CustomBlock.js"; diff --git a/packages/@starbeam-docs/custom-block/tsconfig.json b/packages/@starbeam-docs/custom-block/tsconfig.json new file mode 100644 index 0000000..fd2c88e --- /dev/null +++ b/packages/@starbeam-docs/custom-block/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "noPropertyAccessFromIndexSignature": true, + "exactOptionalPropertyTypes": true, + "noImplicitOverride": true, + "allowJs": true, + "jsx": "preserve", + "types": ["@vue/runtime-dom"] + }, + "include": ["./src/**/*"] +} diff --git a/packages/@starbeam-docs/fenced-container/dist/builtins.js b/packages/@starbeam-docs/fenced-container/dist/builtins.js new file mode 100644 index 0000000..5fbf8f9 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/builtins.js @@ -0,0 +1,206 @@ +import { parserPlugin } from "@jsergo/mdit"; +import "@mdit-vue/plugin-sfc"; +import parseFence from "fenceparser"; +import { Builtins, CUSTOM_EL, CustomEl, Title, UnparsedContent } from "./define.js"; +import { Do, El } from "./nodes.js"; +const BUILTINS = Builtins.empty().basic("info", { + defaultTitle: "INFO", + color: "blue" +}).basic("construction", { + defaultTitle: "Under Construction", + color: "orange" +}).basic("warning", { + color: "yellow" +}).basic("error", { + color: "red" +}).basic("tip", { + defaultTitle: null, + color: "green" +}).basic("callout", { + defaultTitle: null +}).custom("💡", ({ title , content })=>CustomEl("lightbulb", { + border: "se", + color: "yellow", + style: { + "padding-block": "0.5em" + } + }, [ + title, + content + ])).custom("lang-ts", ({ content })=>CustomEl("lang-ts", { + color: "neutral" + }, [ + content + ])).custom("em", ({ title , content })=>CustomEl("em", { + color: "orange", + border: "w", + style: { + "font-size": `calc(1em * var(--sbdoc-ratio))`, + "font-weight": "600", + "border-size": "2px", + "line-height": "1" + } + }, [ + title.withDefault("Key Point").map((title)=>El("h5", [ + title + ])), + content + ])).custom("persona", ({ title , content })=>El("aside", { + class: [ + "persona", + String(title) + ] + }, [ + content + ])).custom("details", ({ title , content , attrs })=>{ + return El(CUSTOM_EL, { + kind: "details", + color: "gray" + }, [ + El("details", { + class: [ + "content-block", + "callout-block", + "container", + ...normalizePart(attrs["type"]) + ] + }, [ + Do(()=>{ + function titleChild() { + switch(attrs["type"]){ + case "deep-dive": + // TODO:: Generalize + return [ + El("span", [ + "Deep Dive" + ]), + title + ]; + default: + return [ + title.withDefault("Details") + ]; + } + } + return [ + El("summary", { + class: "custom-block-title" + }, titleChild()) + ]; + }), + content + ]) + ]); +}); +export const fencedContainerPlugin = parserPlugin({ + name: "fenced-container", + before: "fence" +}).block((line, md)=>{ + var _matched_raw_groups; + const matched = line.matchStart(RegExp("^(?````*)md ")); + if (matched.type === "error") { + return ()=>(render)=>render.html(md.error(matched.error)); + } else if (matched.type === "unmatched") { + return false; + } + const ticks = (_matched_raw_groups = matched.raw.groups) === null || _matched_raw_groups === void 0 ? void 0 : _matched_raw_groups["ticks"]; + const fenceline = line.string(); + const info = fenceline.slice(matched.fragment.length); + // split the fenceline into the part before the first space (kind) and the + // part after it (params). + const [kind, params] = split2(info, " "); + if (kind === undefined) { + return false; + } + const builtin = BUILTINS.tryGet(kind); + if (builtin === undefined) { + return false; + } + return ()=>{ + var _line_next; + const fenceContent = (_line_next = line.next) === null || _line_next === void 0 ? void 0 : _line_next.until((line)=>{ + var _line_slice; + return ((_line_slice = line.slice()) === null || _line_slice === void 0 ? void 0 : _line_slice.trim()) === ticks; + }); + return (render)=>{ + const { title , attrs ={} } = parseTitle(params); + const rendered = builtin.render({ + md, + kind, + title: Title.provided(title), + attrs, + content: UnparsedContent.of(fenceContent) + }); + return render.tokens(rendered); + }; + }; +}); +function parseTitle(params) { + if (params === undefined) { + return {}; + } + const trimmed = params.trim(); + if (trimmed.length === 0) { + return {}; + } + const quotedString = trimmed.match(/^\s*"(.*)"\s*$/); + if (quotedString === null || quotedString === void 0 ? void 0 : quotedString[1]) { + return { + title: quotedString[1] + }; + } + if (trimmed.match(/[{=]/)) { + const parsed = parseFence(trimmed); + const title = getTitle(parsed["title"]); + return { + title, + attrs: parsed + }; + } + return { + title: trimmed + }; +} +function getTitle(title) { + if (title === undefined) { + return undefined; + } else if (title === false || title === null) { + return false; + } else { + return String(title); + } +} +function split2(string, delimiter) { + const index = string.indexOf(delimiter); + const p0 = index === -1 ? string : string.substring(0, index); + const p1 = index === -1 ? "" : string.substring(index + 1); + return [ + p0, + p1 + ]; +} +function normalizePart(value) { + if (value === null || value === undefined) { + return []; + } else if (Array.isArray(value)) { + return value.flatMap(normalizePart).filter(isPresent); + } else if (typeof value === "string") { + return [ + value + ]; + } else if (typeof value === "number") { + return [ + String(value) + ]; + } else if (typeof value === "boolean") { + throw Error(`Booleans are not supported as part of an attr array.`); + } else { + throw Error(`Object are not supported as part of an attr array. You passed ${JSON.stringify(value)}`); + } +} +function isPresent(value) { + return value !== undefined && value !== null; +} + + +//# sourceMappingURL=builtins.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/builtins.js.map b/packages/@starbeam-docs/fenced-container/dist/builtins.js.map new file mode 100644 index 0000000..e18bed9 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/builtins.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/builtins.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,QAAQ,eAAe;AAC5C,OAAO,uBAAuB;AAC9B,OAAO,gBAAgB,cAAc;AACrC,SACE,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,KAAK,EACL,eAAe,QACV,cAAc;AACrB,SAAS,EAAE,EAAE,EAAE,QAAQ,aAAa;AAMpC,MAAM,WAAW,SAAS,KAAK,GAC5B,KAAK,CAAC,QAAQ;IACb,cAAc;IACd,OAAO;AACT,GACC,KAAK,CAAC,gBAAgB;IACrB,cAAc;IACd,OAAO;AACT,GACC,KAAK,CAAC,WAAW;IAChB,OAAO;AACT,GACC,KAAK,CAAC,SAAS;IACd,OAAO;AACT,GACC,KAAK,CAAC,OAAO;IACZ,cAAc,IAAI;IAClB,OAAO;AACT,GACC,KAAK,CAAC,WAAW;IAAE,cAAc,IAAI;AAAC,GACtC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAK,EAAE,QAAO,EAAE,GAC/B,SACE,aACA;QACE,QAAQ;QACR,OAAO;QACP,OAAO;YACL,iBAAiB;QACnB;IACF,GACA;QAAC;QAAO;KAAQ,GAGnB,MAAM,CAAC,WAAW,CAAC,EAAE,QAAO,EAAE,GAC7B,SAAS,WAAW;QAAE,OAAO;IAAU,GAAG;QAAC;KAAQ,GAEpD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAK,EAAE,QAAO,EAAE,GAC/B,SACE,MACA;QACE,OAAO;QACP,QAAQ;QACR,OAAO;YACL,aAAa,CAAC,8BAA8B,CAAC;YAC7C,eAAe;YACf,eAAe;YACf,eAAe;QACjB;IACF,GACA;QACE,MACG,WAAW,CAAC,aACZ,GAAG,CAAC,CAAC,QAAU,GAAG,MAAM;gBAAC;aAAM;QAClC;KACD,GAGJ,MAAM,CAAC,WAAW,CAAC,EAAE,MAAK,EAAE,QAAO,EAAE,GACpC,GAAG,SAAS;QAAE,OAAO;YAAC;YAAW,OAAO;SAAO;IAAC,GAAG;QAAC;KAAQ,GAE7D,MAAM,CAAC,WAAW,CAAC,EAAE,MAAK,EAAE,QAAO,EAAE,MAAK,EAAE,GAAK;IAChD,OAAO,GAAG,WAAW;QAAE,MAAM;QAAW,OAAO;IAAO,GAAG;QACvD,GACE,WACA;YACE,OAAO;gBACL;gBACA;gBACA;mBACG,cAAc,KAAK,CAAC,OAAO;aAC/B;QACH,GACA;YACE,GAAG,IAAM;gBACP,SAAS,aAAa;oBACpB,OAAQ,KAAK,CAAC,OAAO;wBACnB,KAAK;4BACH,oBAAoB;4BACpB,OAAO;gCAAC,GAAG,QAAQ;oCAAC;iCAAY;gCAAG;6BAAM;wBAC3C;4BACE,OAAO;gCAAC,MAAM,WAAW,CAAC;6BAAW;oBACzC;gBACF;gBAEA,OAAO;oBACL,GACE,WACA;wBAAE,OAAO;oBAAqB,GAC9B;iBAEH;YACH;YACA;SACD;KAEJ;AACH;AAEF,OAAO,MAAM,wBAAwB,aAAa;IAChD,MAAM;IACN,QAAQ;AACV,GAAG,KAAK,CAAC,CAAC,MAAM,KAAO;QAUP;IATd,MAAM,UAAU,KAAK,UAAU,CAAC;IAEhC,IAAI,QAAQ,IAAI,KAAK,SAAS;QAC5B,OAAO,IAAM,CAAC,SACZ,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,KAAK;IACtC,OAAO,IAAI,QAAQ,IAAI,KAAK,aAAa;QACvC,OAAO,KAAK;IACd,CAAC;IAED,MAAM,QAAQ,CAAA,sBAAA,QAAQ,GAAG,CAAC,MAAM,cAAlB,iCAAA,KAAA,IAAA,mBAAoB,CAAC,QAAQ;IAC3C,MAAM,YAAY,KAAK,MAAM;IAC7B,MAAM,OAAO,UAAU,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM;IAEpD,0EAA0E;IAC1E,0BAA0B;IAC1B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,MAAM;IAEpC,IAAI,SAAS,WAAW;QACtB,OAAO,KAAK;IACd,CAAC;IAED,MAAM,UAAU,SAAS,MAAM,CAAC;IAEhC,IAAI,YAAY,WAAW;QACzB,OAAO,KAAK;IACd,CAAC;IAED,OAAO,IAAM;YACU;QAArB,MAAM,eAAe,CAAA,aAAA,KAAK,IAAI,cAAT,wBAAA,KAAA,IAAA,WAAW,MAC9B,CAAC;gBAAS;YAAA,OAAA,CAAA,CAAA,cAAA,KAAK,KAAK,gBAAV,yBAAA,KAAA,IAAA,YAAc,YAAW;;QAGrC,OAAO,CAAC,SAAW;YACjB,MAAM,EAAE,MAAK,EAAE,OAAQ,CAAC,EAAC,EAAE,GAAG,WAAW;YAEzC,MAAM,WAAW,QAAQ,MAAM,CAAC;gBAC9B;gBACA;gBACA,OAAO,MAAM,QAAQ,CAAC;gBACtB;gBACA,SAAS,gBAAgB,EAAE,CAAC;YAC9B;YAEA,OAAO,OAAO,MAAM,CAAC;QACvB;IACF;AACF,GAAG;AAEH,SAAS,WAAW,MAA0B,EAS5C;IACA,IAAI,WAAW,WAAW;QACxB,OAAO,CAAC;IACV,CAAC;IAED,MAAM,UAAU,OAAO,IAAI;IAE3B,IAAI,QAAQ,MAAM,KAAK,GAAG;QACxB,OAAO,CAAC;IACV,CAAC;IAED,MAAM,eAAe,QAAQ,KAAK,CAAC;IAEnC,IAAI,yBAAA,0BAAA,KAAA,IAAA,YAAc,CAAC,EAAE,EAAE;QACrB,OAAO;YAAE,OAAO,YAAY,CAAC,EAAE;QAAC;IAClC,CAAC;IAED,IAAI,QAAQ,KAAK,CAAC,SAAS;QACzB,MAAM,SAAS,WAAW;QAE1B,MAAM,QAAQ,SAAS,MAAM,CAAC,QAAQ;QAEtC,OAAO;YAAE;YAAO,OAAO;QAAO;IAChC,CAAC;IAED,OAAO;QAAE,OAAO;IAAQ;AAC1B;AAEA,SAAS,SAAS,KAAY,EAA8B;IAC1D,IAAI,UAAU,WAAW;QACvB,OAAO;IACT,OAAO,IAAI,UAAU,KAAK,IAAI,UAAU,IAAI,EAAE;QAC5C,OAAO,KAAK;IACd,OAAO;QACL,OAAO,OAAO;IAChB,CAAC;AACH;AAEA,SAAS,OACP,MAAc,EACd,SAAiB,EACa;IAC9B,MAAM,QAAQ,OAAO,OAAO,CAAC;IAC7B,MAAM,KAAK,UAAU,CAAC,IAAI,SAAS,OAAO,SAAS,CAAC,GAAG,MAAM;IAC7D,MAAM,KAAK,UAAU,CAAC,IAAI,KAAK,OAAO,SAAS,CAAC,QAAQ,EAAE;IAE1D,OAAO;QAAC;QAAI;KAAG;AACjB;AAEA,SAAS,cAAc,KAAY,EAAc;IAC/C,IAAI,UAAU,IAAI,IAAI,UAAU,WAAW;QACzC,OAAO,EAAE;IACX,OAAO,IAAI,MAAM,OAAO,CAAC,QAAQ;QAC/B,OAAO,MAAM,OAAO,CAAC,eAAe,MAAM,CAAC;IAC7C,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO;YAAC;SAAM;IAChB,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO;YAAC,OAAO;SAAO;IACxB,OAAO,IAAI,OAAO,UAAU,WAAW;QACrC,MAAM,MACJ,CAAC,oDAAoD,CAAC,EACtD;IACJ,OAAO;QACL,MAAM,MACJ,CAAC,8DAA8D,EAAE,KAAK,SAAS,CAC7E,OACA,CAAC,EACH;IACJ,CAAC;AACH;AAEA,SAAS,UAAa,KAA2B,EAAc;IAC7D,OAAO,UAAU,aAAa,UAAU,IAAI;AAC9C","file":"builtins.js","sourcesContent":["import { parserPlugin } from \"@jsergo/mdit\";\nimport \"@mdit-vue/plugin-sfc\";\nimport parseFence from \"fenceparser\";\nimport {\n Builtins,\n CUSTOM_EL,\n CustomEl,\n Title,\n UnparsedContent,\n} from \"./define.js\";\nimport { Do, El } from \"./nodes.js\";\nimport type { AttrPart } from \"./tokens.js\";\n\ntype OBJECT = ReturnType;\ntype VALUE = OBJECT[keyof OBJECT];\n\nconst BUILTINS = Builtins.empty()\n .basic(\"info\", {\n defaultTitle: \"INFO\",\n color: \"blue\",\n })\n .basic(\"construction\", {\n defaultTitle: \"Under Construction\",\n color: \"orange\",\n })\n .basic(\"warning\", {\n color: \"yellow\",\n })\n .basic(\"error\", {\n color: \"red\",\n })\n .basic(\"tip\", {\n defaultTitle: null,\n color: \"green\",\n })\n .basic(\"callout\", { defaultTitle: null })\n .custom(\"💡\", ({ title, content }) =>\n CustomEl(\n \"lightbulb\",\n {\n border: \"se\",\n color: \"yellow\",\n style: {\n \"padding-block\": \"0.5em\",\n },\n },\n [title, content]\n )\n )\n .custom(\"lang-ts\", ({ content }) =>\n CustomEl(\"lang-ts\", { color: \"neutral\" }, [content])\n )\n .custom(\"em\", ({ title, content }) =>\n CustomEl(\n \"em\",\n {\n color: \"orange\",\n border: \"w\",\n style: {\n \"font-size\": `calc(1em * var(--sbdoc-ratio))`,\n \"font-weight\": \"600\",\n \"border-size\": \"2px\",\n \"line-height\": \"1\",\n },\n },\n [\n title\n .withDefault(\"Key Point\")\n .map((title) => El(\"h5\", [title])),\n content,\n ]\n )\n )\n .custom(\"persona\", ({ title, content }) =>\n El(\"aside\", { class: [\"persona\", String(title)] }, [content])\n )\n .custom(\"details\", ({ title, content, attrs }) => {\n return El(CUSTOM_EL, { kind: \"details\", color: \"gray\" }, [\n El(\n \"details\",\n {\n class: [\n \"content-block\",\n \"callout-block\",\n \"container\",\n ...normalizePart(attrs[\"type\"]),\n ],\n },\n [\n Do(() => {\n function titleChild() {\n switch (attrs[\"type\"]) {\n case \"deep-dive\":\n // TODO:: Generalize\n return [El(\"span\", [\"Deep Dive\"]), title];\n default:\n return [title.withDefault(\"Details\")];\n }\n }\n\n return [\n El(\n \"summary\",\n { class: \"custom-block-title\" },\n titleChild()\n ),\n ];\n }),\n content,\n ]\n ),\n ]);\n });\n\nexport const fencedContainerPlugin = parserPlugin({\n name: \"fenced-container\",\n before: \"fence\",\n}).block((line, md) => {\n const matched = line.matchStart(/^(?````*)md /);\n\n if (matched.type === \"error\") {\n return () => (render) =>\n render.html(md.error(matched.error));\n } else if (matched.type === \"unmatched\") {\n return false;\n }\n\n const ticks = matched.raw.groups?.[\"ticks\"] as string;\n const fenceline = line.string();\n const info = fenceline.slice(matched.fragment.length);\n\n // split the fenceline into the part before the first space (kind) and the\n // part after it (params).\n const [kind, params] = split2(info, \" \");\n\n if (kind === undefined) {\n return false;\n }\n\n const builtin = BUILTINS.tryGet(kind);\n\n if (builtin === undefined) {\n return false;\n }\n\n return () => {\n const fenceContent = line.next?.until(\n (line) => line.slice()?.trim() === ticks\n );\n\n return (render) => {\n const { title, attrs = {} } = parseTitle(params);\n\n const rendered = builtin.render({\n md,\n kind,\n title: Title.provided(title),\n attrs,\n content: UnparsedContent.of(fenceContent),\n });\n\n return render.tokens(rendered);\n };\n };\n});\n\nfunction parseTitle(params: string | undefined): {\n /**\n * false means \"no title\"\n * undefined means \"default title\"\n *\n * if no title is provided, the value will be undefined\n */\n title?: string | false | undefined;\n attrs?: Record | undefined;\n} {\n if (params === undefined) {\n return {};\n }\n\n const trimmed = params.trim();\n\n if (trimmed.length === 0) {\n return {};\n }\n\n const quotedString = trimmed.match(/^\\s*\"(.*)\"\\s*$/);\n\n if (quotedString?.[1]) {\n return { title: quotedString[1] };\n }\n\n if (trimmed.match(/[{=]/)) {\n const parsed = parseFence(trimmed);\n\n const title = getTitle(parsed[\"title\"]);\n\n return { title, attrs: parsed };\n }\n\n return { title: trimmed };\n}\n\nfunction getTitle(title: VALUE): string | false | undefined {\n if (title === undefined) {\n return undefined;\n } else if (title === false || title === null) {\n return false;\n } else {\n return String(title);\n }\n}\n\nfunction split2(\n string: string,\n delimiter: string\n): [string, string | undefined] {\n const index = string.indexOf(delimiter);\n const p0 = index === -1 ? string : string.substring(0, index);\n const p1 = index === -1 ? \"\" : string.substring(index + 1);\n\n return [p0, p1];\n}\n\nfunction normalizePart(value: VALUE): AttrPart[] {\n if (value === null || value === undefined) {\n return [];\n } else if (Array.isArray(value)) {\n return value.flatMap(normalizePart).filter(isPresent);\n } else if (typeof value === \"string\") {\n return [value];\n } else if (typeof value === \"number\") {\n return [String(value)];\n } else if (typeof value === \"boolean\") {\n throw Error(\n `Booleans are not supported as part of an attr array.`\n );\n } else {\n throw Error(\n `Object are not supported as part of an attr array. You passed ${JSON.stringify(\n value\n )}`\n );\n }\n}\n\nfunction isPresent(value: T | undefined | null): value is T {\n return value !== undefined && value !== null;\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/define.js b/packages/@starbeam-docs/fenced-container/dist/define.js new file mode 100644 index 0000000..4d41ac8 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/define.js @@ -0,0 +1,341 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function _objectSpread(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : {}; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + ownKeys.forEach(function(key) { + _defineProperty(target, key, source[key]); + }); + } + return target; +} +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) { + symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + keys.push.apply(keys, symbols); + } + return keys; +} +function _objectSpreadProps(target, source) { + source = source != null ? source : {}; + if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +import "@mdit-vue/plugin-sfc"; +import { mapEntries } from "@wycatsjs/utils"; +import { El, InlineHtml } from "./nodes.js"; +import { BasicFragment, CustomBuiltin } from "./tokens.js"; +export const CUSTOM_EL = "CustomBlock"; +var _content = /*#__PURE__*/ new WeakMap(); +export class UnparsedContent { + static of(content) { + return new UnparsedContent(content); + } + get raw() { + return _classPrivateFieldGet(this, _content); + } + render(tokens) { + if (_classPrivateFieldGet(this, _content)) { + return tokens.blockHtml(_classPrivateFieldGet(this, _content)); + } + return tokens; + } + constructor(content){ + _classPrivateFieldInit(this, _content, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _content, content); + } +} +const DEFAULT_COLOR = "theme"; +function ToBuiltinConfig(config) { + if (config === undefined || typeof config === "string") { + return { + defaultTitle: config !== null && config !== void 0 ? config : null, + color: DEFAULT_COLOR + }; + } else { + return _objectSpread({ + color: "theme" + }, config); + } +} +var _config = /*#__PURE__*/ new WeakMap(), _renderFn = /*#__PURE__*/ new WeakMap(), _defaultTitle = /*#__PURE__*/ new WeakMap(); +class Builtin { + render(options) { + const result = _classPrivateFieldGet(this, _renderFn).call(this, _objectSpreadProps(_objectSpread({}, options), { + define: new CustomBuiltin(options.md) + })); + const fragment = BasicFragment.empty(options.md); + if (Array.isArray(result)) { + fragment.push(...result); + } else { + fragment.push(result); + } + return fragment.done(); + } + constructor(config){ + _classPrivateFieldInit(this, _renderFn, { + get: get_renderFn, + set: void 0 + }); + _classPrivateFieldInit(this, _defaultTitle, { + get: get_defaultTitle, + set: void 0 + }); + _classPrivateFieldInit(this, _config, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _config, config); + } +} +function get_renderFn() { + if (typeof _classPrivateFieldGet(this, _config) === "object" && "render" in _classPrivateFieldGet(this, _config)) { + return _classPrivateFieldGet(this, _config).render; + } + const color = _classPrivateFieldGet(this, _config).color; + return ({ kind , title: providedTitle , content })=>{ + var _classPrivateFieldGet1; + const title = providedTitle.withDefault((_classPrivateFieldGet1 = _classPrivateFieldGet(this, _defaultTitle)) !== null && _classPrivateFieldGet1 !== void 0 ? _classPrivateFieldGet1 : undefined); + return CustomEl(kind, { + color: color !== null && color !== void 0 ? color : DEFAULT_COLOR + }, [ + title.map((t)=>El("p", { + class: "custom-block-title" + }, [ + InlineHtml(t) + ])), + content + ]); + }; +} +function get_defaultTitle() { + if (typeof _classPrivateFieldGet(this, _config) === "object" && "defaultTitle" in _classPrivateFieldGet(this, _config) && typeof _classPrivateFieldGet(this, _config).defaultTitle === "string") { + return _classPrivateFieldGet(this, _config).defaultTitle; + } +} +var _provided = /*#__PURE__*/ new WeakMap(), _default = /*#__PURE__*/ new WeakMap(); +let _Symbol_for = Symbol.for("nodejs.util.inspect.custom"); +export class Title { + static provided(provided) { + return new Title(provided, undefined); + } + static create(provided, defaultValue) { + return new Title(provided, defaultValue); + } + [_Symbol_for]() { + return `Title(${JSON.stringify(String(this))})`; + } + withDefault(defaultValue) { + return new Title(_classPrivateFieldGet(this, _provided), defaultValue); + } + render(tokens) { + return tokens.append(InlineHtml(this)); + } + isBlank() { + return _classPrivateFieldGet(this, _provided) === false; + } + map(callback) { + const title = String(this); + if (title === "") { + return null; + } else { + return callback(title); + } + } + exists() { + if (_classPrivateFieldGet(this, _provided) === false) { + return false; + } else if (_classPrivateFieldGet(this, _provided) === undefined) { + return _classPrivateFieldGet(this, _default) !== undefined; + } else { + return true; + } + } + get provided() { + return _classPrivateFieldGet(this, _provided); + } + stringify() { + if (_classPrivateFieldGet(this, _provided) === false) { + return ""; + } else if (_classPrivateFieldGet(this, _provided) === undefined) { + var _classPrivateFieldGet1; + return (_classPrivateFieldGet1 = _classPrivateFieldGet(this, _default)) !== null && _classPrivateFieldGet1 !== void 0 ? _classPrivateFieldGet1 : ""; + } else { + return _classPrivateFieldGet(this, _provided); + } + } + toString() { + return this.stringify(); + } + constructor(provided, defaultValue){ + _classPrivateFieldInit(this, _provided, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _default, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _provided, provided); + _classPrivateFieldSet(this, _default, defaultValue); + } +} +var _builtins = /*#__PURE__*/ new WeakMap(); +export class Builtins { + static empty() { + return new Builtins({}); + } + static from(config) { + return new Builtins(mapEntries(config, (config, name)=>[ + name, + new Builtin(config) + ])); + } + custom(name, render) { + return new Builtins(_objectSpreadProps(_objectSpread({}, _classPrivateFieldGet(this, _builtins)), { + [name]: new Builtin({ + render + }) + })); + } + basic(name, config) { + return new Builtins(_objectSpreadProps(_objectSpread({}, _classPrivateFieldGet(this, _builtins)), { + [name]: new Builtin(ToBuiltinConfig(config)) + })); + } + tryGet(name) { + return _classPrivateFieldGet(this, _builtins)[name]; + } + get(name) { + return _classPrivateFieldGet(this, _builtins)[name]; + } + constructor(builtins){ + _classPrivateFieldInit(this, _builtins, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _builtins, builtins); + } +} +export function styles(color, otherStyles = {}) { + return encode(_objectSpread({}, namespaceStyle({ + "border-color": fg(color), + fg: fg(color), + bg: bg(color, "ultramuted"), + "accent-fg": fg(color, "dim"), + "accent-hover-bg": bg(color, "strong"), + "code-border": fg(color, "muted"), + "code-bg": bg(color, "muted"), + "code-fg": bg(color, "dim") + }), otherStyles)); +} +export function namespaceStyle(styles) { + return Object.fromEntries(Object.entries(styles).map(([k, v])=>[ + `--sbdoc-block-${k}`, + `var(--sb-${v})` + ])); +} +export function fg(color, style) { + if (style) { + return `fg-${color}-${style}`; + } else { + return `fg-${color}`; + } +} +export function bg(color, style) { + if (style) { + return `bg-${color}-${style}`; + } else { + return `bg-${color}`; + } +} +export function encode(attrs) { + if (attrs === undefined) { + return ""; + } + return JSON.stringify(attrs).replace(/\"/g, "'"); +} +export function CustomEl(kind, options, children) { + var _options_border; + return El(CUSTOM_EL, { + kind, + border: (_options_border = options.border) !== null && _options_border !== void 0 ? _options_border : "nsew", + color: options.color, + ":style": encode(options.style) + }, children); +} + + +//# sourceMappingURL=define.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/define.js.map b/packages/@starbeam-docs/fenced-container/dist/define.js.map new file mode 100644 index 0000000..ef27446 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/define.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/define.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,uBAAuB;AAC9B,SAAS,UAAU,QAAQ,kBAAkB;AAG7C,SAAS,EAAE,EAAE,UAAU,QAA2B,aAAa;AAC/D,SACE,aAAa,EACb,aAAa,QAKR,cAAc;AAIrB,OAAO,MAAM,YAAY,cAAc;IAmB5B;AALX,OAAO,MAAM;IACX,OAAO,GAAG,OAA2B,EAAmB;QACtD,OAAO,IAAI,gBAAgB;IAC7B;IAQA,IAAI,MAA0B;QAC5B,6BAAO,IAAI,EAAE;IACf;IAEA,OAAO,MAAuB,EAAmB;QAC/C,0BAAI,IAAI,EAAE,WAAS;YACjB,OAAO,OAAO,SAAS,uBAAC,IAAI,EAAE;QAChC,CAAC;QACD,OAAO;IACT;IAbA,YAAoB,OAA2B,CAAE;QAFjD,6BAAS;;mBAAT,KAAA;;oCAGQ,UAAU;IAClB;AAYF,CAAC;AAmCD,MAAM,gBAAgB;AAEtB,SAAS,gBACP,MAA+B,EAChB;IACf,IAAI,WAAW,aAAa,OAAO,WAAW,UAAU;QACtD,OAAO;YACL,cAAc,mBAAA,oBAAA,SAAU,IAAI;YAC5B,OAAO;QACT;IACF,OAAO;QACL,OAAO;YACL,OAAO;WACJ;IAEP,CAAC;AACH;IAQW,uCAuBL,yCAgCA;AAxDN,MAAM;IAOJ,OAAO,OAAsB,EAAW;QACtC,MAAM,SAAS,sBAAA,IAAI,EAAE,gBAAN,IAAI,EAAW,qCACzB;YACH,QAAQ,IAAI,cAAc,QAAQ,EAAE;;QAGtC,MAAM,WAAW,cAAc,KAAK,CAAC,QAAQ,EAAE;QAE/C,IAAI,MAAM,OAAO,CAAC,SAAS;YACzB,SAAS,IAAI,IAAI;QACnB,OAAO;YACL,SAAS,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,SAAS,IAAI;IACtB;IAnBA,YAAY,MAAqB,CAAE;QAqBnC,6BAAI;iBAAJ;;;QAgCA,6BAAI;iBAAJ;;;QAvDA,6BAAS;;mBAAT,KAAA;;oCAGQ,SAAS;IACjB;AA4DF;AAzCE,SAAA,eAAiC;IAC/B,IACE,6BAAO,IAAI,EAAE,aAAW,YACxB,kCAAY,IAAI,EAAE,UAClB;QACA,OAAO,sBAAA,IAAI,EAAE,SAAO,MAAM;IAC5B,CAAC;IAED,MAAM,QAAQ,sBAAA,IAAI,EAAE,SAAO,KAAK;IAEhC,OAAO,CAAC,EAAE,KAAI,EAAE,OAAO,cAAa,EAAE,QAAO,EAAE,GAAK;;QAClD,MAAM,QAAQ,cAAc,WAAW,CACrC,gDAAA,IAAI,EAAE,yFAAgB,SAAS;QAGjC,OAAO,SACL,MACA;YACE,OAAO,kBAAA,mBAAA,QAAS,aAAa;QAC/B,GACA;YACE,MAAM,GAAG,CAAC,CAAC,IACT,GAAG,KAAK;oBAAE,OAAO;gBAAqB,GAAG;oBACvC,WAAW;iBACZ;YAEH;SACD;IAEL;AACF;AAEA,SAAA,mBAAmC;IACjC,IACE,6BAAO,IAAI,EAAE,aAAW,YACxB,wCAAkB,IAAI,EAAE,YACxB,OAAO,sBAAA,IAAI,EAAE,SAAO,YAAY,KAAK,UACrC;QACA,OAAO,sBAAA,IAAI,EAAE,SAAO,YAAY;IAClC,CAAC;AACH;IAeS,yCACA;IAUR,cAAA,OAAO,GAAG,CAAC;AAvBd,OAAO,MAAM;IACX,OAAO,SAAS,QAAoC,EAAS;QAC3D,OAAO,IAAI,MAAM,UAAU;IAC7B;IAEA,OAAO,OACL,QAAoC,EACpC,YAAgC,EACzB;QACP,OAAO,IAAI,MAAM,UAAU;IAC7B;IAaA,CAAC,YAAyC,GAAG;QAC3C,OAAO,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IACjD;IAEA,YAAY,YAAgC,EAAS;QACnD,OAAO,IAAI,4BAAM,IAAI,EAAE,YAAU;IACnC;IAEA,OAAO,MAAuB,EAAmB;QAC/C,OAAO,OAAO,MAAM,CAAC,WAAW,IAAI;IACtC;IAEA,UAAmB;QACjB,OAAO,sBAAA,IAAI,EAAE,eAAa,KAAK;IACjC;IAEA,IAAO,QAA8B,EAAY;QAC/C,MAAM,QAAQ,OAAO,IAAI;QAEzB,IAAI,UAAU,IAAI;YAChB,OAAO,IAAI;QACb,OAAO;YACL,OAAO,SAAS;QAClB,CAAC;IACH;IAEA,SAAkB;QAChB,IAAI,sBAAA,IAAI,EAAE,eAAa,KAAK,EAAE;YAC5B,OAAO,KAAK;QACd,OAAO,IAAI,sBAAA,IAAI,EAAE,eAAa,WAAW;YACvC,OAAO,sBAAA,IAAI,EAAE,cAAY;QAC3B,OAAO;YACL,OAAO,IAAI;QACb,CAAC;IACH;IAEA,IAAI,WAAuC;QACzC,6BAAO,IAAI,EAAE;IACf;IAEA,YAAoB;QAClB,IAAI,sBAAA,IAAI,EAAE,eAAa,KAAK,EAAE;YAC5B,OAAO;QACT,OAAO,IAAI,sBAAA,IAAI,EAAE,eAAa,WAAW;;YACvC,OAAO,gDAAA,IAAI,EAAE,oFAAW,EAAE;QAC5B,OAAO;YACL,6BAAO,IAAI,EAAE;QACf,CAAC;IACH;IAEA,WAAmB;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IA5DA,YACE,QAAoC,EACpC,YAAgC,CAChC;QANF,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCAMQ,WAAW;oCACX,UAAU;IAClB;AAuDF,CAAC;IAkBU;AAhBX,OAAO,MAAM;IACX,OAAO,QAAyB;QAC9B,OAAO,IAAI,SAAS,CAAC;IACvB;IAEA,OAAO,KACL,MAAgC,EAChC;QACA,OAAO,IAAI,SACT,WAAW,QAAQ,CAAC,QAAQ,OAAS;gBACnC;gBACA,IAAI,QAAQ;aACb;IAEL;IAQA,OACE,IAAa,EACb,MAAuB,EACA;QACvB,OAAO,IAAI,SAAS,2DACf,IAAI,EAAE;YACT,CAAC,KAAK,EAAE,IAAI,QAAQ;gBAClB;YACF;;IAEJ;IAEA,MACE,IAAa,EACb,MAAoB,EACG;QACvB,OAAO,IAAI,SAAS,2DACf,IAAI,EAAE;YACT,CAAC,KAAK,EAAE,IAAI,QAAQ,gBAAgB;;IAExC;IAEA,OAAO,IAAY,EAAuB;QACxC,OAAO,sBAAC,IAAI,EAAE,UAAoC,CAAC,KAAK;IAC1D;IAEA,IAAI,IAAO,EAAW;QACpB,OAAO,sBAAA,IAAI,EAAE,UAAQ,CAAC,KAAK;IAC7B;IAhCA,YAAY,QAA4B,CAAE;QAF1C,6BAAS;;mBAAT,KAAA;;oCAGQ,WAAW;IACnB;AA+BF,CAAC;AAED,OAAO,SAAS,OACd,KAAa,EACb,cAAsC,CAAC,CAAC,EACxC;IACA,OAAO,OAAO,kBACT,eAAe;QAChB,gBAAgB,GAAG;QACnB,IAAI,GAAG;QACP,IAAI,GAAG,OAAO;QACd,aAAa,GAAG,OAAO;QACvB,mBAAmB,GAAG,OAAO;QAC7B,eAAe,GAAG,OAAO;QACzB,WAAW,GAAG,OAAO;QACrB,WAAW,GAAG,OAAO;IACvB,IACG;AAEP,CAAC;AAED,OAAO,SAAS,eAAe,MAA8B,EAAE;IAC7D,OAAO,OAAO,WAAW,CACvB,OAAO,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAK;YACrC,CAAC,cAAc,EAAE,EAAE,CAAC;YACpB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACjB;AAEL,CAAC;AAED,OAAO,SAAS,GAAG,KAAa,EAAE,KAAc,EAAE;IAChD,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO;QACL,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,CAAC;AACH,CAAC;AAED,OAAO,SAAS,GAAG,KAAa,EAAE,KAAc,EAAE;IAChD,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO;QACL,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,CAAC;AACH,CAAC;AAED,OAAO,SAAS,OACd,KAGC,EACO;IACR,IAAI,UAAU,WAAW;QACvB,OAAO;IACT,CAAC;IACD,OAAO,KAAK,SAAS,CAAC,OAAO,OAAO,CAAC,OAAO;AAC9C,CAAC;AAMD,OAAO,SAAS,SACd,IAAY,EACZ,OAIC,EACD,QAAmB,EACnB;QAKY;IAJZ,OAAO,GACL,WACA;QACE;QACA,QAAQ,CAAA,kBAAA,QAAQ,MAAM,cAAd,6BAAA,kBAAkB,MAAM;QAChC,OAAO,QAAQ,KAAK;QACpB,UAAU,OAAO,QAAQ,KAAK;IAChC,GACA;AAEJ,CAAC","file":"define.js","sourcesContent":["import type { PluginHelper } from \"@jsergo/mdit\";\nimport \"@mdit-vue/plugin-sfc\";\nimport { mapEntries } from \"@wycatsjs/utils\";\nimport parseFence from \"fenceparser\";\nimport Token from \"markdown-it/lib/token.js\";\nimport { El, InlineHtml, type LazyChildren } from \"./nodes.js\";\nimport {\n BasicFragment,\n CustomBuiltin,\n MarkdownElement,\n type Children,\n type LazyChild,\n type TextLike,\n} from \"./tokens.js\";\n\ntype OBJECT = ReturnType;\ntype VALUE = OBJECT[keyof OBJECT];\nexport const CUSTOM_EL = \"CustomBlock\";\n\ninterface RenderOptions {\n kind: string;\n /**\n * false means \"leave out the title\"\n * undefined means \"use the default title\"\n */\n title: Title;\n attrs: Record;\n content: UnparsedContent | undefined;\n md: PluginHelper;\n}\n\nexport class UnparsedContent implements LazyChild {\n static of(content: string | undefined): UnparsedContent {\n return new UnparsedContent(content);\n }\n\n readonly #content: string | undefined;\n\n private constructor(content: string | undefined) {\n this.#content = content;\n }\n\n get raw(): string | undefined {\n return this.#content;\n }\n\n render(tokens: MarkdownElement): MarkdownElement {\n if (this.#content) {\n return tokens.blockHtml(this.#content);\n }\n return tokens;\n }\n}\n\ntype RenderContainer = ({\n title,\n kind,\n attrs,\n content,\n md,\n define,\n}: {\n title: Title;\n kind: string;\n attrs: Record;\n content: UnparsedContent | undefined;\n md: PluginHelper;\n define: CustomBuiltin;\n}) => LazyChildren;\n\ntype BuiltinConfig =\n | {\n defaultTitle?: string | null | undefined;\n color: string;\n }\n | CustomConfig;\n\n/**\n * A bare string is the default title.\n */\ntype BasicConfig =\n | {\n defaultTitle?: string | null | undefined;\n color?: string;\n }\n | string;\n\nconst DEFAULT_COLOR = \"theme\";\n\nfunction ToBuiltinConfig(\n config: BasicConfig | undefined\n): BuiltinConfig {\n if (config === undefined || typeof config === \"string\") {\n return {\n defaultTitle: config ?? null,\n color: DEFAULT_COLOR,\n };\n } else {\n return {\n color: \"theme\",\n ...config,\n };\n }\n}\n\ninterface CustomConfig {\n render: RenderContainer;\n options?: {} | undefined;\n}\n\nclass Builtin {\n readonly #config: BuiltinConfig;\n\n constructor(config: BuiltinConfig) {\n this.#config = config;\n }\n\n render(options: RenderOptions): Token[] {\n const result = this.#renderFn({\n ...options,\n define: new CustomBuiltin(options.md),\n });\n\n const fragment = BasicFragment.empty(options.md);\n\n if (Array.isArray(result)) {\n fragment.push(...result);\n } else {\n fragment.push(result);\n }\n\n return fragment.done();\n }\n\n get #renderFn(): RenderContainer {\n if (\n typeof this.#config === \"object\" &&\n \"render\" in this.#config\n ) {\n return this.#config.render;\n }\n\n const color = this.#config.color;\n\n return ({ kind, title: providedTitle, content }) => {\n const title = providedTitle.withDefault(\n this.#defaultTitle ?? undefined\n );\n\n return CustomEl(\n kind,\n {\n color: color ?? DEFAULT_COLOR,\n },\n [\n title.map((t) =>\n El(\"p\", { class: \"custom-block-title\" }, [\n InlineHtml(t),\n ])\n ),\n content,\n ]\n );\n };\n }\n\n get #defaultTitle(): string | void {\n if (\n typeof this.#config === \"object\" &&\n \"defaultTitle\" in this.#config &&\n typeof this.#config.defaultTitle === \"string\"\n ) {\n return this.#config.defaultTitle;\n }\n }\n}\n\nexport class Title implements LazyChild, TextLike {\n static provided(provided: string | false | undefined): Title {\n return new Title(provided, undefined);\n }\n\n static create(\n provided: string | false | undefined,\n defaultValue: string | undefined\n ): Title {\n return new Title(provided, defaultValue);\n }\n\n readonly #provided: string | undefined | false;\n readonly #default: string | undefined;\n\n private constructor(\n provided: string | false | undefined,\n defaultValue: string | undefined\n ) {\n this.#provided = provided;\n this.#default = defaultValue;\n }\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return `Title(${JSON.stringify(String(this))})`;\n }\n\n withDefault(defaultValue: string | undefined): Title {\n return new Title(this.#provided, defaultValue);\n }\n\n render(tokens: MarkdownElement): MarkdownElement {\n return tokens.append(InlineHtml(this));\n }\n\n isBlank(): boolean {\n return this.#provided === false;\n }\n\n map(callback: (title: string) => T): T | null {\n const title = String(this);\n\n if (title === \"\") {\n return null;\n } else {\n return callback(title);\n }\n }\n\n exists(): boolean {\n if (this.#provided === false) {\n return false;\n } else if (this.#provided === undefined) {\n return this.#default !== undefined;\n } else {\n return true;\n }\n }\n\n get provided(): string | undefined | false {\n return this.#provided;\n }\n\n stringify(): string {\n if (this.#provided === false) {\n return \"\";\n } else if (this.#provided === undefined) {\n return this.#default ?? \"\";\n } else {\n return this.#provided;\n }\n }\n\n toString(): string {\n return this.stringify();\n }\n}\n\nexport class Builtins {\n static empty(): Builtins {\n return new Builtins({});\n }\n\n static from(\n config: Record\n ) {\n return new Builtins(\n mapEntries(config, (config, name) => [\n name,\n new Builtin(config),\n ])\n );\n }\n\n readonly #builtins: Record;\n\n constructor(builtins: Record) {\n this.#builtins = builtins;\n }\n\n custom(\n name: NewName,\n render: RenderContainer\n ): Builtins {\n return new Builtins({\n ...this.#builtins,\n [name]: new Builtin({\n render,\n }),\n } as Record);\n }\n\n basic(\n name: NewName,\n config?: BasicConfig\n ): Builtins {\n return new Builtins({\n ...this.#builtins,\n [name]: new Builtin(ToBuiltinConfig(config)),\n });\n }\n\n tryGet(name: string): Builtin | undefined {\n return (this.#builtins as Record)[name];\n }\n\n get(name: N): Builtin {\n return this.#builtins[name];\n }\n}\n\nexport function styles(\n color: string,\n otherStyles: Record = {}\n) {\n return encode({\n ...namespaceStyle({\n \"border-color\": fg(color),\n fg: fg(color),\n bg: bg(color, \"ultramuted\"),\n \"accent-fg\": fg(color, \"dim\"),\n \"accent-hover-bg\": bg(color, \"strong\"),\n \"code-border\": fg(color, \"muted\"),\n \"code-bg\": bg(color, \"muted\"),\n \"code-fg\": bg(color, \"dim\"),\n }),\n ...otherStyles,\n });\n}\n\nexport function namespaceStyle(styles: Record) {\n return Object.fromEntries(\n Object.entries(styles).map(([k, v]) => [\n `--sbdoc-block-${k}`,\n `var(--sb-${v})`,\n ])\n );\n}\n\nexport function fg(color: string, style?: string) {\n if (style) {\n return `fg-${color}-${style}`;\n } else {\n return `fg-${color}`;\n }\n}\n\nexport function bg(color: string, style?: string) {\n if (style) {\n return `bg-${color}-${style}`;\n } else {\n return `bg-${color}`;\n }\n}\n\nexport function encode(\n attrs?: Record<\n string,\n string | number | boolean | null | undefined\n >\n): string {\n if (attrs === undefined) {\n return \"\";\n }\n return JSON.stringify(attrs).replace(/\\\"/g, \"'\");\n}\n\ntype BlockBorder = \"n\" | \"s\" | \"ns\" | \"\";\ntype InlineBorder = \"e\" | \"w\" | \"ew\" | \"\";\ntype Border = `${BlockBorder}${InlineBorder}`;\n\nexport function CustomEl(\n kind: string,\n options: {\n color: string;\n border?: Border;\n style?: Record;\n },\n children?: Children\n) {\n return El(\n CUSTOM_EL,\n {\n kind,\n border: options.border ?? \"nsew\",\n color: options.color,\n \":style\": encode(options.style),\n },\n children\n );\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/index.js b/packages/@starbeam-docs/fenced-container/dist/index.js new file mode 100644 index 0000000..c1fb1e3 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/index.js @@ -0,0 +1,4 @@ +export { fencedContainerPlugin as default } from "./builtins.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/index.js.map b/packages/@starbeam-docs/fenced-container/dist/index.js.map new file mode 100644 index 0000000..2e5bd5e --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,yBAAyB,OAAO,QAAQ,gBAAgB","file":"index.js","sourcesContent":["export { fencedContainerPlugin as default } from \"./builtins.js\";\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/nodes.js b/packages/@starbeam-docs/fenced-container/dist/nodes.js new file mode 100644 index 0000000..2a9e2ae --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/nodes.js @@ -0,0 +1,69 @@ +import Token from "markdown-it/lib/token.js"; +export function Fragment(...children) { + return { + render: (fragment)=>fragment.push(...children) + }; +} +export function El(...args) { + return { + render: (fragment)=>fragment.el(...args) + }; +} +export function BlockHtml(text) { + return { + render: (fragment)=>fragment.blockHtml(text) + }; +} +export function InlineHtml(text) { + return { + render: (fragment)=>fragment.inlineHtml(String(text)) + }; +} +export function HtmlEl(...args) { + return { + render: (fragment)=>fragment.htmlEl(...args) + }; +} +export function Do(then) { + return { + render: (fragment)=>render(fragment, then()) + }; +} +export function Let(values, then) { + return { + render: (fragment)=>render(fragment, then(values)) + }; +} +export function If(condition, then, options) { + return { + render: (fragment)=>{ + if (condition) { + return render(fragment, then(condition)); + } else if (options === null || options === void 0 ? void 0 : options.else) { + return render(fragment, options.else()); + } else { + return fragment; + } + } + }; +} +export function HTML(value) { + const html = new Token("html_block", value, 0); + html.content = value; + return { + render: (tokens)=>tokens.append(html) + }; +} +function render(fragment, children) { + if (Array.isArray(children)) { + for (const child of children){ + child.render(fragment); + } + } else { + children.render(fragment); + } + return fragment; +} + + +//# sourceMappingURL=nodes.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/nodes.js.map b/packages/@starbeam-docs/fenced-container/dist/nodes.js.map new file mode 100644 index 0000000..b8e9bd6 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/nodes.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,2BAA2B;AAU7C,OAAO,SAAS,SAAS,GAAG,QAAiB,EAAa;IACxD,OAAO;QACL,QAAQ,CAAC,WAAa,SAAS,IAAI,IAAI;IACzC;AACF,CAAC;AAED,OAAO,SAAS,GACd,GAAG,IAAwC,EAChC;IACX,OAAO;QACL,QAAQ,CAAC,WAAa,SAAS,EAAE,IAAI;IACvC;AACF,CAAC;AAED,OAAO,SAAS,UAAU,IAAc,EAAa;IACnD,OAAO;QACL,QAAQ,CAAC,WAAa,SAAS,SAAS,CAAC;IAC3C;AACF,CAAC;AAED,OAAO,SAAS,WAAW,IAAc,EAAa;IACpD,OAAO;QACL,QAAQ,CAAC,WAAa,SAAS,UAAU,CAAC,OAAO;IACnD;AACF,CAAC;AAED,OAAO,SAAS,OACd,GAAG,IAAwC,EAChC;IACX,OAAO;QACL,QAAQ,CAAC,WAAa,SAAS,MAAM,IAAI;IAC3C;AACF,CAAC;AAED,OAAO,SAAS,GAAG,IAAuB,EAAa;IACrD,OAAO;QACL,QAAQ,CAAC,WAAa,OAAO,UAAU;IACzC;AACF,CAAC;AAED,OAAO,SAAS,IACd,MAAS,EACT,IAAiC,EACtB;IACX,OAAO;QACL,QAAQ,CAAC,WAAa,OAAO,UAAU,KAAK;IAC9C;AACF,CAAC;AAED,OAAO,SAAS,GACd,SAAY,EACZ,IAAgD,EAChD,OAEC,EACU;IACX,OAAO;QACL,QAAQ,CAAC,WAAa;YACpB,IAAI,WAAW;gBACb,OAAO,OACL,UACA,KAAK;YAET,OAAO,IAAI,oBAAA,qBAAA,KAAA,IAAA,QAAS,IAAI,EAAE;gBACxB,OAAO,OAAO,UAAU,QAAQ,IAAI;YACtC,OAAO;gBACL,OAAO;YACT,CAAC;QACH;IACF;AACF,CAAC;AAED,OAAO,SAAS,KAAK,KAAa,EAAa;IAC7C,MAAM,OAAO,IAAI,MAAM,cAAc,OAAO;IAC5C,KAAK,OAAO,GAAG;IACf,OAAO;QACL,QAAQ,CAAC,SAAW,OAAO,MAAM,CAAC;IACpC;AACF,CAAC;AAID,SAAS,OACP,QAA0B,EAC1B,QAAsB,EACJ;IAClB,IAAI,MAAM,OAAO,CAAC,WAAW;QAC3B,KAAK,MAAM,SAAS,SAAU;YAC5B,MAAM,MAAM,CAAC;QACf;IACF,OAAO;QACL,SAAS,MAAM,CAAC;IAClB,CAAC;IACD,OAAO;AACT","file":"nodes.js","sourcesContent":["import Token from \"markdown-it/lib/token.js\";\nimport {\n MarkdownFragment,\n type Child,\n type LazyChild,\n type ToString,\n} from \"./tokens.js\";\n\nexport type Falsy = null | undefined | false | 0 | \"\";\n\nexport function Fragment(...children: Child[]): LazyChild {\n return {\n render: (fragment) => fragment.push(...children),\n };\n}\n\nexport function El(\n ...args: Parameters\n): LazyChild {\n return {\n render: (fragment) => fragment.el(...args),\n };\n}\n\nexport function BlockHtml(text: ToString): LazyChild {\n return {\n render: (fragment) => fragment.blockHtml(text),\n };\n}\n\nexport function InlineHtml(text: ToString): LazyChild {\n return {\n render: (fragment) => fragment.inlineHtml(String(text)),\n };\n}\n\nexport function HtmlEl(\n ...args: Parameters\n): LazyChild {\n return {\n render: (fragment) => fragment.htmlEl(...args),\n };\n}\n\nexport function Do(then: () => LazyChild[]): LazyChild {\n return {\n render: (fragment) => render(fragment, then()),\n };\n}\n\nexport function Let(\n values: T,\n then: (values: T) => LazyChildren\n): LazyChild {\n return {\n render: (fragment) => render(fragment, then(values)),\n };\n}\n\nexport function If(\n condition: T,\n then: (value: Exclude) => LazyChildren,\n options?: {\n else: () => LazyChildren;\n }\n): LazyChild {\n return {\n render: (fragment) => {\n if (condition) {\n return render(\n fragment,\n then(condition as Exclude)\n );\n } else if (options?.else) {\n return render(fragment, options.else());\n } else {\n return fragment;\n }\n },\n } satisfies LazyChild;\n}\n\nexport function HTML(value: string): LazyChild {\n const html = new Token(\"html_block\", value, 0);\n html.content = value;\n return {\n render: (tokens) => tokens.append(html),\n };\n}\n\nexport type LazyChildren = LazyChild | LazyChild[];\n\nfunction render(\n fragment: MarkdownFragment,\n children: LazyChildren\n): MarkdownFragment {\n if (Array.isArray(children)) {\n for (const child of children) {\n child.render(fragment);\n }\n } else {\n children.render(fragment);\n }\n return fragment;\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/tokens.js b/packages/@starbeam-docs/fenced-container/dist/tokens.js new file mode 100644 index 0000000..2be4862 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/tokens.js @@ -0,0 +1,322 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return fn; +} +function _classPrivateMethodInit(obj, privateSet) { + _checkPrivateRedeclaration(obj, privateSet); + privateSet.add(obj); +} +import Token from "markdown-it/lib/token.js"; +var _md = /*#__PURE__*/ new WeakMap(); +export class CustomBuiltin { + el(tag, attrs, children) { + return ParagraphElement.tag(tag, _classPrivateFieldGet(this, _md)).attrs(attrs).push(...children); + } + constructor(md){ + _classPrivateFieldInit(this, _md, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _md, md); + } +} +var _md1 = /*#__PURE__*/ new WeakMap(); +export class MarkdownFragment { + render(tokens) { + return tokens.push(...this.done()); + } + get md() { + return _classPrivateFieldGet(this, _md1); + } + blockHtml(markdown) { + this.push(...this.md.parseBlock(ToString(markdown))); + return this; + } + inlineHtml(markdown) { + this.push(...this.md.parseInline(ToString(markdown))); + return this; + } + append(child) { + if (child === undefined || child === null) { + // do nothing + } else if (typeof child === "string") { + this.appendToken(text(child)); + } else if ("render" in child) { + child.render(this); + } else { + this.appendToken(child); + } + return this; + } + push(...children) { + for (const child of children){ + this.append(child); + } + return this; + } + element({ tag , attrs , children }, { create }) { + let el = create.tag(tag, this.md).attrs(attrs); + if (Array.isArray(children)) { + for (const child of children){ + el.append(child); + } + } else if (typeof children === "function") { + children(this); + } + this.push(...el.done()); + return this; + } + htmlEl(...elArgs) { + return this.element(normalizeElArgs(elArgs), { + create: HtmlElement + }); + } + el(...elArgs) { + return this.element(normalizeElArgs(elArgs), { + create: ParagraphElement + }); + } + constructor(md){ + _classPrivateFieldInit(this, _md1, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _md1, md); + } +} +export class MarkdownElement extends MarkdownFragment { + attrs(attrs) { + for (const [key, value] of Object.entries(attrs)){ + this.attr(key, value); + } + return this; + } + renderInline(text) { + return this.md.renderInline(text); + } + constructor(_tag, md){ + super(md); + } +} +var _tokens = /*#__PURE__*/ new WeakMap(); +export class BasicFragment extends MarkdownFragment { + static empty(md) { + return new BasicFragment(md); + } + appendToken(token) { + _classPrivateFieldGet(this, _tokens).push(token); + } + done() { + return _classPrivateFieldGet(this, _tokens); + } + constructor(...args){ + super(...args); + _classPrivateFieldInit(this, _tokens, { + writable: true, + value: [] + }); + } +} +var _tag = /*#__PURE__*/ new WeakMap(), _open = /*#__PURE__*/ new WeakMap(), _children = /*#__PURE__*/ new WeakMap(), _attrValue = /*#__PURE__*/ new WeakSet(); +export class HtmlElement extends MarkdownElement { + static tag(tag, md) { + return new HtmlElement(tag, md); + } + attr(key, value) { + const valueString = _classPrivateMethodGet(this, _attrValue, attrValue).call(this, value); + if (valueString !== null) { + _classPrivateFieldSet(this, _open, _classPrivateFieldGet(this, _open) + ` ${key}=${valueString}`); + } + return this; + } + done() { + const open = new Token("html_block", "", 0); + open.content = `${_classPrivateFieldGet(this, _open)}\n\n`; + const tokens = [ + open + ]; + tokens.push(..._classPrivateFieldGet(this, _children)); + const close = new Token("html_block", "", 0); + close.content = `\n\n`; + tokens.push(close); + return tokens; + } + appendToken(token) { + if (!_classPrivateFieldGet(this, _open).endsWith(">")) _classPrivateFieldSet(this, _open, _classPrivateFieldGet(this, _open) + ">"); + _classPrivateFieldGet(this, _children).push(token); + } + constructor(tag, md){ + super(tag, md); + _classPrivateMethodInit(this, _attrValue); + _classPrivateFieldInit(this, _tag, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _open, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _children, { + writable: true, + value: [] + }); + _classPrivateFieldSet(this, _tag, tag); + _classPrivateFieldSet(this, _open, `<${_classPrivateFieldGet(this, _tag)}`); + } +} +function attrValue(value) { + if (Array.isArray(value)) { + return `"${value.join(" ")}`; + } else if (typeof value === "string") { + return JSON.stringify(value); + } else if (typeof value === "number") { + return `"${value}"`; + } else if (value === true) { + return `""`; + } else { + return null; + } +} +var _tag1 = /*#__PURE__*/ new WeakMap(), _token = /*#__PURE__*/ new WeakMap(), _children1 = /*#__PURE__*/ new WeakMap(); +export class ParagraphElement extends MarkdownElement { + static tag(tag, md) { + return new ParagraphElement(md, tag, new Token("paragraph_open", tag, 1), []); + } + appendToken(token) { + _classPrivateFieldGet(this, _children1).push(token); + } + done() { + return [ + _classPrivateFieldGet(this, _token), + ..._classPrivateFieldGet(this, _children1), + new Token("paragraph_close", _classPrivateFieldGet(this, _tag1), -1) + ]; + } + attr(name, value) { + if (value === undefined || value === false) { + // do nothing + } else if (Array.isArray(value)) { + for (const val of attrListValue(value)){ + _classPrivateFieldGet(this, _token).attrJoin(name, val); + } + } else if (value === true) { + _classPrivateFieldGet(this, _token).attrSet(name, ""); + } else { + const val = attrPart(value); + if (val) { + _classPrivateFieldGet(this, _token).attrSet(name, val); + } + } + return this; + } + constructor(md, tag, token, children){ + super(tag, md); + _classPrivateFieldInit(this, _tag1, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _token, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _children1, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _tag1, tag); + _classPrivateFieldSet(this, _token, token); + _classPrivateFieldSet(this, _children1, children); + } +} +function ToString(stringlike) { + if (typeof stringlike !== "object") { + return String(stringlike); + } else { + return stringlike.stringify(); + } +} +export function text(string) { + const token = new Token("text", "", 0); + token.content = ToString(string); + return token; +} +function attrListValue(value) { + return value.map(attrPart).filter(isPresent); +} +function attrPart(value) { + if (value === undefined || value === null) { + return undefined; + } else if (typeof value === "number") { + return String(value); + } else if (typeof value === "string") { + return value; + } else { + throw unreachable(value); + } +} +function isPresent(value) { + return value !== null && value !== undefined; +} +function unreachable(_value, message = "unreachable") { + throw new Error(message); +} +function normalizeElArgs([tag, attrs, children]) { + if (attrs === undefined || Array.isArray(attrs) || typeof attrs === "function") { + return { + tag, + attrs: {}, + children: attrs + }; + } else { + return { + tag, + attrs, + children + }; + } +} + + +//# sourceMappingURL=tokens.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/dist/tokens.js.map b/packages/@starbeam-docs/fenced-container/dist/tokens.js.map new file mode 100644 index 0000000..456dfb8 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/dist/tokens.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/tokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW,2BAA2B;IAOlC;AADX,OAAO,MAAM;IAOX,GACE,GAAW,EACX,KAAgC,EAChC,QAAiB,EACA;QACjB,OAAO,iBAAiB,GAAG,CAAC,2BAAK,IAAI,EAAE,MACpC,KAAK,CAAC,OACN,IAAI,IAAI;IACb;IAZA,YAAY,EAAgB,CAAE;QAF9B,6BAAS;;mBAAT,KAAA;;oCAGQ,KAAK;IACb;AAWF,CAAC;IAMC;AAJF,OAAO,MAAe;IAUpB,OAAO,MAAwB,EAAoB;QACjD,OAAO,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI;IACjC;IAEA,IAAc,KAAmB;QAC/B,6BAAO,IAAI,EAAE;IACf;IAEA,UAAU,QAAkB,EAAQ;QAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS;QACzC,OAAO,IAAI;IACb;IAEA,WAAW,QAAkB,EAAQ;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS;QAC1C,OAAO,IAAI;IACb;IAEA,OAAO,KAAY,EAAQ;QACzB,IAAI,UAAU,aAAa,UAAU,IAAI,EAAE;QACzC,aAAa;QACf,OAAO,IAAI,OAAO,UAAU,UAAU;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK;QACxB,OAAO,IAAI,YAAY,OAAO;YAC5B,MAAM,MAAM,CAAC,IAAI;QACnB,OAAO;YACL,IAAI,CAAC,WAAW,CAAC;QACnB,CAAC;QAED,OAAO,IAAI;IACb;IAEA,KAAK,GAAG,QAAiB,EAAQ;QAC/B,KAAK,MAAM,SAAS,SAAU;YAC5B,IAAI,CAAC,MAAM,CAAC;QACd;QACA,OAAO,IAAI;IACb;IAEA,QACE,EACE,IAAG,EACH,MAAK,EACL,SAAQ,EAKT,EACD,EACE,OAAM,EAKP,EACK;QACN,IAAI,KAAK,OAAO,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;QAExC,IAAI,MAAM,OAAO,CAAC,WAAW;YAC3B,KAAK,MAAM,SAAS,SAAU;gBAC5B,GAAG,MAAM,CAAC;YACZ;QACF,OAAO,IAAI,OAAO,aAAa,YAAY;YACzC,SAAS,IAAI;QACf,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI;QAEpB,OAAO,IAAI;IACb;IAEA,OAAO,GAAG,MAAc,EAAQ;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,SAAS;YAC3C,QAAQ;QACV;IACF;IAEA,GAAG,GAAG,MAAc,EAAQ;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,SAAS;YAC3C,QAAQ;QACV;IACF;IAtFA,YAAY,EAAgB,CAAE;QAF9B,6BAAA;;mBAAA,KAAA;;oCAGQ,MAAK;IACb;AAqFF,CAAC;AAED,OAAO,MAAe,wBAAwB;IAO5C,MAAM,KAAgC,EAAQ;QAC5C,KAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,OAAQ;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK;QACjB;QACA,OAAO,IAAI;IACb;IAEA,aAAa,IAAY,EAAU;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;IAC9B;IAbA,YAAY,IAAY,EAAE,EAAgB,CAAE;QAC1C,KAAK,CAAC;IACR;AAYF,CAAC;IAOU;AALX,OAAO,MAAM,sBAAsB;IACjC,OAAO,MAAM,EAAgB,EAAoB;QAC/C,OAAO,IAAI,cAAc;IAC3B;IAImB,YAAY,KAAY,EAAQ;QACjD,sBAAA,IAAI,EAAE,SAAO,IAAI,CAAC;IACpB;IAES,OAAgB;QACvB,6BAAO,IAAI,EAAE;IACf;;;QARA,6BAAS;;mBAAmB,EAAE;;;AAShC,CAAC;IAOU,oCACT,qCACS,yCAmBT;AA1BF,OAAO,MAAM,oBAAoB;IAC/B,OAAO,IAAI,GAAW,EAAE,EAAgB,EAAmB;QACzD,OAAO,IAAI,YAAY,KAAK;IAC9B;IAaS,KAAK,GAAW,EAAE,KAAgB,EAAQ;QACjD,MAAM,cAAc,uBAAA,IAAI,EAAE,YAAA,gBAAN,IAAI,EAAY;QAEpC,IAAI,gBAAgB,IAAI,EAAE;wCAClB,6BAAN,IAAI,EAAE,SAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC;QACxC,CAAC;QAED,OAAO,IAAI;IACb;IAgBS,OAAgB;QACvB,MAAM,OAAO,IAAI,MAAM,cAAc,IAAI;QACzC,KAAK,OAAO,GAAG,CAAC,wBAAE,IAAI,EAAE,OAAK,IAAI,CAAC;QAClC,MAAM,SAAkB;YAAC;SAAK;QAC9B,OAAO,IAAI,0BAAI,IAAI,EAAE;QAErB,MAAM,QAAQ,IAAI,MAAM,cAAc,IAAI;QAC1C,MAAM,OAAO,GAAG,CAAC,MAAM,wBAAE,IAAI,EAAE,MAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;QAEZ,OAAO;IACT;IAEmB,YAAY,KAAY,EAAQ;QACjD,IAAI,CAAC,sBAAA,IAAI,EAAE,OAAK,QAAQ,CAAC,kCAAY,6BAAN,IAAI,EAAE,SAAQ;QAE7C,sBAAA,IAAI,EAAE,WAAS,IAAI,CAAC;IACtB;IAhDA,YAAoB,GAAW,EAAE,EAAgB,CAAE;QACjD,KAAK,CAAC,KAAK;QAgBb,8BAAA;QArBA,6BAAS;;mBAAT,KAAA;;QACA,6BAAA;;mBAAA,KAAA;;QACA,6BAAS;;mBAAqB,EAAE;;oCAIxB,MAAM;oCAEN,OAAO,CAAC,CAAC,wBAAE,IAAI,EAAE,MAAI,CAAC;IAC9B;AA4CF,CAAC;AAhCC,SAAA,UAAW,KAAgB,EAAiB;IAC1C,IAAI,MAAM,OAAO,CAAC,QAAQ;QACxB,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;IAC9B,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO,KAAK,SAAS,CAAC;IACxB,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACrB,OAAO,IAAI,UAAU,IAAI,EAAE;QACzB,OAAO,CAAC,EAAE,CAAC;IACb,OAAO;QACL,OAAO,IAAI;IACb,CAAC;AACH;IAgCS,qCACA,sCACA;AAZX,OAAO,MAAM,yBAAyB;IACpC,OAAO,IAAI,GAAW,EAAE,EAAgB,EAAoB;QAC1D,OAAO,IAAI,iBACT,IACA,KACA,IAAI,MAAM,kBAAkB,KAAK,IACjC,EAAE;IAEN;IAkBmB,YAAY,KAAY,EAAQ;QACjD,sBAAA,IAAI,EAAE,YAAS,IAAI,CAAC;IACtB;IAEA,OAAgB;QACd,OAAO;kCACL,IAAI,EAAE;qCACH,IAAI,EAAE;YACT,IAAI,MAAM,yCAAmB,IAAI,EAAE,QAAK,CAAC;SAC1C;IACH;IAEA,KAAK,IAAY,EAAE,KAAgB,EAAQ;QACzC,IAAI,UAAU,aAAa,UAAU,KAAK,EAAE;QAC1C,aAAa;QACf,OAAO,IAAI,MAAM,OAAO,CAAC,QAAQ;YAC/B,KAAK,MAAM,OAAO,cAAc,OAAQ;gBACtC,sBAAA,IAAI,EAAE,QAAM,QAAQ,CAAC,MAAM;YAC7B;QACF,OAAO,IAAI,UAAU,IAAI,EAAE;YACzB,sBAAA,IAAI,EAAE,QAAM,OAAO,CAAC,MAAM;QAC5B,OAAO;YACL,MAAM,MAAM,SAAS;YACrB,IAAI,KAAK;gBACP,sBAAA,IAAI,EAAE,QAAM,OAAO,CAAC,MAAM;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,IAAI;IACb;IAzCA,YACE,EAAgB,EAChB,GAAW,EACX,KAAY,EACZ,QAAiB,CACjB;QACA,KAAK,CAAC,KAAK;QAVb,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCASQ,OAAM;oCACN,QAAQ;oCACR,YAAW;IACnB;AAgCF,CAAC;AAuBD,SAAS,SAAS,UAAoB,EAAU;IAC9C,IAAI,OAAO,eAAe,UAAU;QAClC,OAAO,OAAO;IAChB,OAAO;QACL,OAAO,WAAW,SAAS;IAC7B,CAAC;AACH;AAEA,OAAO,SAAS,KAAK,MAAgB,EAAS;IAC5C,MAAM,QAAQ,IAAI,MAAM,QAAQ,IAAI;IACpC,MAAM,OAAO,GAAG,SAAS;IACzB,OAAO;AACT,CAAC;AAED,SAAS,cAAc,KAAiB,EAAE;IACxC,OAAO,MAAM,GAAG,CAAC,UAAU,MAAM,CAAC;AACpC;AAEA,SAAS,SAAS,KAAe,EAAsB;IACrD,IAAI,UAAU,aAAa,UAAU,IAAI,EAAE;QACzC,OAAO;IACT,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO,OAAO;IAChB,OAAO,IAAI,OAAO,UAAU,UAAU;QACpC,OAAO;IACT,OAAO;QACL,MAAM,YAAY,OAAO;IAC3B,CAAC;AACH;AAEA,SAAS,UAAa,KAA2B,EAAc;IAC7D,OAAO,UAAU,IAAI,IAAI,UAAU;AACrC;AAEA,SAAS,YAAY,MAAa,EAAE,UAAU,aAAa,EAAE;IAC3D,MAAM,IAAI,MAAM,SAAS;AAC3B;AAQA,SAAS,gBAAgB,CAAC,KAAK,OAAO,SAAiB,EAIrD;IACA,IACE,UAAU,aACV,MAAM,OAAO,CAAC,UACd,OAAO,UAAU,YACjB;QACA,OAAO;YAAE;YAAK,OAAO,CAAC;YAAG,UAAU;QAAM;IAC3C,OAAO;QACL,OAAO;YAAE;YAAK;YAAO;QAAS;IAChC,CAAC;AACH","file":"tokens.js","sourcesContent":["import type { PluginHelper } from \"@jsergo/mdit\";\nimport Token from \"markdown-it/lib/token.js\";\n\nexport type SingleAttrValue = AttrPart | boolean;\nexport type AttrPart = string | number | null | undefined;\nexport type AttrValue = SingleAttrValue | AttrPart[];\n\nexport class CustomBuiltin {\n readonly #md: PluginHelper;\n\n constructor(md: PluginHelper) {\n this.#md = md;\n }\n\n el(\n tag: string,\n attrs: Record,\n children: Child[]\n ): MarkdownElement {\n return ParagraphElement.tag(tag, this.#md)\n .attrs(attrs)\n .push(...children);\n }\n}\n\nexport abstract class MarkdownFragment implements LazyChild {\n abstract done(): Token[];\n protected abstract appendToken(token: Token): void;\n\n #md: PluginHelper;\n\n constructor(md: PluginHelper) {\n this.#md = md;\n }\n\n render(tokens: MarkdownFragment): MarkdownFragment {\n return tokens.push(...this.done());\n }\n\n protected get md(): PluginHelper {\n return this.#md;\n }\n\n blockHtml(markdown: ToString): this {\n this.push(...this.md.parseBlock(ToString(markdown)));\n return this;\n }\n\n inlineHtml(markdown: ToString): this {\n this.push(...this.md.parseInline(ToString(markdown)));\n return this;\n }\n\n append(child: Child): this {\n if (child === undefined || child === null) {\n // do nothing\n } else if (typeof child === \"string\") {\n this.appendToken(text(child));\n } else if (\"render\" in child) {\n child.render(this);\n } else {\n this.appendToken(child);\n }\n\n return this;\n }\n\n push(...children: Child[]): this {\n for (const child of children) {\n this.append(child);\n }\n return this;\n }\n\n element(\n {\n tag,\n attrs,\n children,\n }: {\n tag: string;\n attrs: Record;\n children: Children | undefined;\n },\n {\n create,\n }: {\n create: {\n tag: (tag: string, md: PluginHelper) => MarkdownElement;\n };\n }\n ): this {\n let el = create.tag(tag, this.md).attrs(attrs);\n\n if (Array.isArray(children)) {\n for (const child of children) {\n el.append(child);\n }\n } else if (typeof children === \"function\") {\n children(this);\n }\n\n this.push(...el.done());\n\n return this;\n }\n\n htmlEl(...elArgs: ElArgs): this {\n return this.element(normalizeElArgs(elArgs), {\n create: HtmlElement,\n });\n }\n\n el(...elArgs: ElArgs): this {\n return this.element(normalizeElArgs(elArgs), {\n create: ParagraphElement,\n });\n }\n}\n\nexport abstract class MarkdownElement extends MarkdownFragment {\n abstract attr(key: string, value: AttrValue): this;\n\n constructor(_tag: string, md: PluginHelper) {\n super(md);\n }\n\n attrs(attrs: Record): this {\n for (const [key, value] of Object.entries(attrs)) {\n this.attr(key, value);\n }\n return this;\n }\n\n renderInline(text: string): string {\n return this.md.renderInline(text);\n }\n}\n\nexport class BasicFragment extends MarkdownFragment {\n static empty(md: PluginHelper): MarkdownFragment {\n return new BasicFragment(md);\n }\n\n readonly #tokens: Token[] = [];\n\n protected override appendToken(token: Token): void {\n this.#tokens.push(token);\n }\n\n override done(): Token[] {\n return this.#tokens;\n }\n}\n\nexport class HtmlElement extends MarkdownElement {\n static tag(tag: string, md: PluginHelper): MarkdownElement {\n return new HtmlElement(tag, md);\n }\n\n readonly #tag: string;\n #open: string;\n readonly #children: Token[] = [];\n\n private constructor(tag: string, md: PluginHelper) {\n super(tag, md);\n this.#tag = tag;\n\n this.#open = `<${this.#tag}`;\n }\n\n override attr(key: string, value: AttrValue): this {\n const valueString = this.#attrValue(value);\n\n if (valueString !== null) {\n this.#open += ` ${key}=${valueString}`;\n }\n\n return this;\n }\n\n #attrValue(value: AttrValue): string | null {\n if (Array.isArray(value)) {\n return `\"${value.join(\" \")}`;\n } else if (typeof value === \"string\") {\n return JSON.stringify(value);\n } else if (typeof value === \"number\") {\n return `\"${value}\"`;\n } else if (value === true) {\n return `\"\"`;\n } else {\n return null;\n }\n }\n\n override done(): Token[] {\n const open = new Token(\"html_block\", \"\", 0);\n open.content = `${this.#open}\\n\\n`;\n const tokens: Token[] = [open];\n tokens.push(...this.#children);\n\n const close = new Token(\"html_block\", \"\", 0);\n close.content = `\\n\\n`;\n tokens.push(close);\n\n return tokens;\n }\n\n protected override appendToken(token: Token): void {\n if (!this.#open.endsWith(\">\")) this.#open += \">\";\n\n this.#children.push(token);\n }\n}\n\nexport class ParagraphElement extends MarkdownElement {\n static tag(tag: string, md: PluginHelper): ParagraphElement {\n return new ParagraphElement(\n md,\n tag,\n new Token(\"paragraph_open\", tag, 1),\n []\n );\n }\n\n readonly #tag: string;\n readonly #token: Token;\n readonly #children: Token[];\n\n private constructor(\n md: PluginHelper,\n tag: string,\n token: Token,\n children: Token[]\n ) {\n super(tag, md);\n this.#tag = tag;\n this.#token = token;\n this.#children = children;\n }\n\n protected override appendToken(token: Token): void {\n this.#children.push(token);\n }\n\n done(): Token[] {\n return [\n this.#token,\n ...this.#children,\n new Token(\"paragraph_close\", this.#tag, -1),\n ];\n }\n\n attr(name: string, value: AttrValue): this {\n if (value === undefined || value === false) {\n // do nothing\n } else if (Array.isArray(value)) {\n for (const val of attrListValue(value)) {\n this.#token.attrJoin(name, val);\n }\n } else if (value === true) {\n this.#token.attrSet(name, \"\");\n } else {\n const val = attrPart(value);\n if (val) {\n this.#token.attrSet(name, val);\n }\n }\n\n return this;\n }\n}\n\nexport type Child =\n | LazyChild\n | Token\n | string\n | null\n | undefined;\n\nexport type Children =\n | Child[]\n | ((el: MarkdownFragment) => MarkdownFragment);\n\nexport interface LazyChild {\n render(tokens: MarkdownFragment): MarkdownFragment;\n}\n\nexport interface TextLike {\n stringify(): string;\n}\n\nexport type ToString = TextLike | string | number | boolean;\n\nfunction ToString(stringlike: ToString): string {\n if (typeof stringlike !== \"object\") {\n return String(stringlike);\n } else {\n return stringlike.stringify();\n }\n}\n\nexport function text(string: ToString): Token {\n const token = new Token(\"text\", \"\", 0);\n token.content = ToString(string);\n return token;\n}\n\nfunction attrListValue(value: AttrPart[]) {\n return value.map(attrPart).filter(isPresent);\n}\n\nfunction attrPart(value: AttrPart): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n } else if (typeof value === \"number\") {\n return String(value);\n } else if (typeof value === \"string\") {\n return value;\n } else {\n throw unreachable(value);\n }\n}\n\nfunction isPresent(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\nfunction unreachable(_value: never, message = \"unreachable\") {\n throw new Error(message);\n}\n\ntype ElArgs = [\n tag: string,\n attrs?: Record | Children | undefined,\n children?: Children\n];\n\nfunction normalizeElArgs([tag, attrs, children]: ElArgs): {\n tag: string;\n attrs: Record;\n children: Children | undefined;\n} {\n if (\n attrs === undefined ||\n Array.isArray(attrs) ||\n typeof attrs === \"function\"\n ) {\n return { tag, attrs: {}, children: attrs };\n } else {\n return { tag, attrs, children };\n }\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/fenced-container/package.json b/packages/@starbeam-docs/fenced-container/package.json new file mode 100644 index 0000000..99f474f --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/package.json @@ -0,0 +1,13 @@ +{ + "name": "@starbeam-docs/fenced-container", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + "types": "./src/index.ts", + "default": "./dist/index.js" + }, + "dependencies": { + "@wycatsjs/utils": "workspace:^" + } +} diff --git a/packages/@starbeam-docs/fenced-container/src/builtins.ts b/packages/@starbeam-docs/fenced-container/src/builtins.ts new file mode 100644 index 0000000..e23e20f --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/src/builtins.ts @@ -0,0 +1,249 @@ +import { parserPlugin } from "@jsergo/mdit"; +import "@mdit-vue/plugin-sfc"; +import parseFence from "fenceparser"; +import { + Builtins, + CUSTOM_EL, + CustomEl, + Title, + UnparsedContent, +} from "./define.js"; +import { Do, El } from "./nodes.js"; +import type { AttrPart } from "./tokens.js"; + +type OBJECT = ReturnType; +type VALUE = OBJECT[keyof OBJECT]; + +const BUILTINS = Builtins.empty() + .basic("info", { + defaultTitle: "INFO", + color: "blue", + }) + .basic("construction", { + defaultTitle: "Under Construction", + color: "orange", + }) + .basic("warning", { + color: "yellow", + }) + .basic("error", { + color: "red", + }) + .basic("tip", { + defaultTitle: null, + color: "green", + }) + .basic("callout", { defaultTitle: null }) + .custom("💡", ({ title, content }) => + CustomEl( + "lightbulb", + { + border: "se", + color: "yellow", + style: { + "padding-block": "0.5em", + }, + }, + [title, content] + ) + ) + .custom("lang-ts", ({ content }) => + CustomEl("lang-ts", { color: "neutral" }, [content]) + ) + .custom("em", ({ title, content }) => + CustomEl( + "em", + { + color: "orange", + border: "w", + style: { + "font-size": `calc(1em * var(--sbdoc-ratio))`, + "font-weight": "600", + "border-size": "2px", + "line-height": "1", + }, + }, + [ + title + .withDefault("Key Point") + .map((title) => El("h5", [title])), + content, + ] + ) + ) + .custom("persona", ({ title, content }) => + El("aside", { class: ["persona", String(title)] }, [content]) + ) + .custom("details", ({ title, content, attrs }) => { + return El(CUSTOM_EL, { kind: "details", color: "gray" }, [ + El( + "details", + { + class: [ + "content-block", + "callout-block", + "container", + ...normalizePart(attrs["type"]), + ], + }, + [ + Do(() => { + function titleChild() { + switch (attrs["type"]) { + case "deep-dive": + // TODO:: Generalize + return [El("span", ["Deep Dive"]), title]; + default: + return [title.withDefault("Details")]; + } + } + + return [ + El( + "summary", + { class: "custom-block-title" }, + titleChild() + ), + ]; + }), + content, + ] + ), + ]); + }); + +export const fencedContainerPlugin = parserPlugin({ + name: "fenced-container", + before: "fence", +}).block((line, md) => { + const matched = line.matchStart(/^(?````*)md /); + + if (matched.type === "error") { + return () => (render) => + render.html(md.error(matched.error)); + } else if (matched.type === "unmatched") { + return false; + } + + const ticks = matched.raw.groups?.["ticks"] as string; + const fenceline = line.string(); + const info = fenceline.slice(matched.fragment.length); + + // split the fenceline into the part before the first space (kind) and the + // part after it (params). + const [kind, params] = split2(info, " "); + + if (kind === undefined) { + return false; + } + + const builtin = BUILTINS.tryGet(kind); + + if (builtin === undefined) { + return false; + } + + return () => { + const fenceContent = line.next?.until( + (line) => line.slice()?.trim() === ticks + ); + + return (render) => { + const { title, attrs = {} } = parseTitle(params); + + const rendered = builtin.render({ + md, + kind, + title: Title.provided(title), + attrs, + content: UnparsedContent.of(fenceContent), + }); + + return render.tokens(rendered); + }; + }; +}); + +function parseTitle(params: string | undefined): { + /** + * false means "no title" + * undefined means "default title" + * + * if no title is provided, the value will be undefined + */ + title?: string | false | undefined; + attrs?: Record | undefined; +} { + if (params === undefined) { + return {}; + } + + const trimmed = params.trim(); + + if (trimmed.length === 0) { + return {}; + } + + const quotedString = trimmed.match(/^\s*"(.*)"\s*$/); + + if (quotedString?.[1]) { + return { title: quotedString[1] }; + } + + if (trimmed.match(/[{=]/)) { + const parsed = parseFence(trimmed); + + const title = getTitle(parsed["title"]); + + return { title, attrs: parsed }; + } + + return { title: trimmed }; +} + +function getTitle(title: VALUE): string | false | undefined { + if (title === undefined) { + return undefined; + } else if (title === false || title === null) { + return false; + } else { + return String(title); + } +} + +function split2( + string: string, + delimiter: string +): [string, string | undefined] { + const index = string.indexOf(delimiter); + const p0 = index === -1 ? string : string.substring(0, index); + const p1 = index === -1 ? "" : string.substring(index + 1); + + return [p0, p1]; +} + +function normalizePart(value: VALUE): AttrPart[] { + if (value === null || value === undefined) { + return []; + } else if (Array.isArray(value)) { + return value.flatMap(normalizePart).filter(isPresent); + } else if (typeof value === "string") { + return [value]; + } else if (typeof value === "number") { + return [String(value)]; + } else if (typeof value === "boolean") { + throw Error( + `Booleans are not supported as part of an attr array.` + ); + } else { + throw Error( + `Object are not supported as part of an attr array. You passed ${JSON.stringify( + value + )}` + ); + } +} + +function isPresent(value: T | undefined | null): value is T { + return value !== undefined && value !== null; +} diff --git a/packages/@starbeam-docs/fenced-container/src/define.ts b/packages/@starbeam-docs/fenced-container/src/define.ts new file mode 100644 index 0000000..565c436 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/src/define.ts @@ -0,0 +1,388 @@ +import type { PluginHelper } from "@jsergo/mdit"; +import "@mdit-vue/plugin-sfc"; +import { mapEntries } from "@wycatsjs/utils"; +import parseFence from "fenceparser"; +import Token from "markdown-it/lib/token.js"; +import { El, InlineHtml, type LazyChildren } from "./nodes.js"; +import { + BasicFragment, + CustomBuiltin, + MarkdownElement, + type Children, + type LazyChild, + type TextLike, +} from "./tokens.js"; + +type OBJECT = ReturnType; +type VALUE = OBJECT[keyof OBJECT]; +export const CUSTOM_EL = "CustomBlock"; + +interface RenderOptions { + kind: string; + /** + * false means "leave out the title" + * undefined means "use the default title" + */ + title: Title; + attrs: Record; + content: UnparsedContent | undefined; + md: PluginHelper; +} + +export class UnparsedContent implements LazyChild { + static of(content: string | undefined): UnparsedContent { + return new UnparsedContent(content); + } + + readonly #content: string | undefined; + + private constructor(content: string | undefined) { + this.#content = content; + } + + get raw(): string | undefined { + return this.#content; + } + + render(tokens: MarkdownElement): MarkdownElement { + if (this.#content) { + return tokens.blockHtml(this.#content); + } + return tokens; + } +} + +type RenderContainer = ({ + title, + kind, + attrs, + content, + md, + define, +}: { + title: Title; + kind: string; + attrs: Record; + content: UnparsedContent | undefined; + md: PluginHelper; + define: CustomBuiltin; +}) => LazyChildren; + +type BuiltinConfig = + | { + defaultTitle?: string | null | undefined; + color: string; + } + | CustomConfig; + +/** + * A bare string is the default title. + */ +type BasicConfig = + | { + defaultTitle?: string | null | undefined; + color?: string; + } + | string; + +const DEFAULT_COLOR = "theme"; + +function ToBuiltinConfig( + config: BasicConfig | undefined +): BuiltinConfig { + if (config === undefined || typeof config === "string") { + return { + defaultTitle: config ?? null, + color: DEFAULT_COLOR, + }; + } else { + return { + color: "theme", + ...config, + }; + } +} + +interface CustomConfig { + render: RenderContainer; + options?: {} | undefined; +} + +class Builtin { + readonly #config: BuiltinConfig; + + constructor(config: BuiltinConfig) { + this.#config = config; + } + + render(options: RenderOptions): Token[] { + const result = this.#renderFn({ + ...options, + define: new CustomBuiltin(options.md), + }); + + const fragment = BasicFragment.empty(options.md); + + if (Array.isArray(result)) { + fragment.push(...result); + } else { + fragment.push(result); + } + + return fragment.done(); + } + + get #renderFn(): RenderContainer { + if ( + typeof this.#config === "object" && + "render" in this.#config + ) { + return this.#config.render; + } + + const color = this.#config.color; + + return ({ kind, title: providedTitle, content }) => { + const title = providedTitle.withDefault( + this.#defaultTitle ?? undefined + ); + + return CustomEl( + kind, + { + color: color ?? DEFAULT_COLOR, + }, + [ + title.map((t) => + El("p", { class: "custom-block-title" }, [ + InlineHtml(t), + ]) + ), + content, + ] + ); + }; + } + + get #defaultTitle(): string | void { + if ( + typeof this.#config === "object" && + "defaultTitle" in this.#config && + typeof this.#config.defaultTitle === "string" + ) { + return this.#config.defaultTitle; + } + } +} + +export class Title implements LazyChild, TextLike { + static provided(provided: string | false | undefined): Title { + return new Title(provided, undefined); + } + + static create( + provided: string | false | undefined, + defaultValue: string | undefined + ): Title { + return new Title(provided, defaultValue); + } + + readonly #provided: string | undefined | false; + readonly #default: string | undefined; + + private constructor( + provided: string | false | undefined, + defaultValue: string | undefined + ) { + this.#provided = provided; + this.#default = defaultValue; + } + + [Symbol.for("nodejs.util.inspect.custom")]() { + return `Title(${JSON.stringify(String(this))})`; + } + + withDefault(defaultValue: string | undefined): Title { + return new Title(this.#provided, defaultValue); + } + + render(tokens: MarkdownElement): MarkdownElement { + return tokens.append(InlineHtml(this)); + } + + isBlank(): boolean { + return this.#provided === false; + } + + map(callback: (title: string) => T): T | null { + const title = String(this); + + if (title === "") { + return null; + } else { + return callback(title); + } + } + + exists(): boolean { + if (this.#provided === false) { + return false; + } else if (this.#provided === undefined) { + return this.#default !== undefined; + } else { + return true; + } + } + + get provided(): string | undefined | false { + return this.#provided; + } + + stringify(): string { + if (this.#provided === false) { + return ""; + } else if (this.#provided === undefined) { + return this.#default ?? ""; + } else { + return this.#provided; + } + } + + toString(): string { + return this.stringify(); + } +} + +export class Builtins { + static empty(): Builtins { + return new Builtins({}); + } + + static from( + config: Record + ) { + return new Builtins( + mapEntries(config, (config, name) => [ + name, + new Builtin(config), + ]) + ); + } + + readonly #builtins: Record; + + constructor(builtins: Record) { + this.#builtins = builtins; + } + + custom( + name: NewName, + render: RenderContainer + ): Builtins { + return new Builtins({ + ...this.#builtins, + [name]: new Builtin({ + render, + }), + } as Record); + } + + basic( + name: NewName, + config?: BasicConfig + ): Builtins { + return new Builtins({ + ...this.#builtins, + [name]: new Builtin(ToBuiltinConfig(config)), + }); + } + + tryGet(name: string): Builtin | undefined { + return (this.#builtins as Record)[name]; + } + + get(name: N): Builtin { + return this.#builtins[name]; + } +} + +export function styles( + color: string, + otherStyles: Record = {} +) { + return encode({ + ...namespaceStyle({ + "border-color": fg(color), + fg: fg(color), + bg: bg(color, "ultramuted"), + "accent-fg": fg(color, "dim"), + "accent-hover-bg": bg(color, "strong"), + "code-border": fg(color, "muted"), + "code-bg": bg(color, "muted"), + "code-fg": bg(color, "dim"), + }), + ...otherStyles, + }); +} + +export function namespaceStyle(styles: Record) { + return Object.fromEntries( + Object.entries(styles).map(([k, v]) => [ + `--sbdoc-block-${k}`, + `var(--sb-${v})`, + ]) + ); +} + +export function fg(color: string, style?: string) { + if (style) { + return `fg-${color}-${style}`; + } else { + return `fg-${color}`; + } +} + +export function bg(color: string, style?: string) { + if (style) { + return `bg-${color}-${style}`; + } else { + return `bg-${color}`; + } +} + +export function encode( + attrs?: Record< + string, + string | number | boolean | null | undefined + > +): string { + if (attrs === undefined) { + return ""; + } + return JSON.stringify(attrs).replace(/\"/g, "'"); +} + +type BlockBorder = "n" | "s" | "ns" | ""; +type InlineBorder = "e" | "w" | "ew" | ""; +type Border = `${BlockBorder}${InlineBorder}`; + +export function CustomEl( + kind: string, + options: { + color: string; + border?: Border; + style?: Record; + }, + children?: Children +) { + return El( + CUSTOM_EL, + { + kind, + border: options.border ?? "nsew", + color: options.color, + ":style": encode(options.style), + }, + children + ); +} diff --git a/packages/@starbeam-docs/fenced-container/src/index.ts b/packages/@starbeam-docs/fenced-container/src/index.ts new file mode 100644 index 0000000..60ba2d0 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/src/index.ts @@ -0,0 +1 @@ +export { fencedContainerPlugin as default } from "./builtins.js"; diff --git a/packages/@starbeam-docs/fenced-container/src/nodes.ts b/packages/@starbeam-docs/fenced-container/src/nodes.ts new file mode 100644 index 0000000..91b1206 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/src/nodes.ts @@ -0,0 +1,105 @@ +import Token from "markdown-it/lib/token.js"; +import { + MarkdownFragment, + type Child, + type LazyChild, + type ToString, +} from "./tokens.js"; + +export type Falsy = null | undefined | false | 0 | ""; + +export function Fragment(...children: Child[]): LazyChild { + return { + render: (fragment) => fragment.push(...children), + }; +} + +export function El( + ...args: Parameters +): LazyChild { + return { + render: (fragment) => fragment.el(...args), + }; +} + +export function BlockHtml(text: ToString): LazyChild { + return { + render: (fragment) => fragment.blockHtml(text), + }; +} + +export function InlineHtml(text: ToString): LazyChild { + return { + render: (fragment) => fragment.inlineHtml(String(text)), + }; +} + +export function HtmlEl( + ...args: Parameters +): LazyChild { + return { + render: (fragment) => fragment.htmlEl(...args), + }; +} + +export function Do(then: () => LazyChild[]): LazyChild { + return { + render: (fragment) => render(fragment, then()), + }; +} + +export function Let( + values: T, + then: (values: T) => LazyChildren +): LazyChild { + return { + render: (fragment) => render(fragment, then(values)), + }; +} + +export function If( + condition: T, + then: (value: Exclude) => LazyChildren, + options?: { + else: () => LazyChildren; + } +): LazyChild { + return { + render: (fragment) => { + if (condition) { + return render( + fragment, + then(condition as Exclude) + ); + } else if (options?.else) { + return render(fragment, options.else()); + } else { + return fragment; + } + }, + } satisfies LazyChild; +} + +export function HTML(value: string): LazyChild { + const html = new Token("html_block", value, 0); + html.content = value; + return { + render: (tokens) => tokens.append(html), + }; +} + +export type LazyChildren = LazyChild | LazyChild[]; + +function render( + fragment: MarkdownFragment, + children: LazyChildren +): MarkdownFragment { + if (Array.isArray(children)) { + for (const child of children) { + child.render(fragment); + } + } else { + children.render(fragment); + } + return fragment; +} diff --git a/packages/@starbeam-docs/fenced-container/src/tokens.ts b/packages/@starbeam-docs/fenced-container/src/tokens.ts new file mode 100644 index 0000000..c2e2a2e --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/src/tokens.ts @@ -0,0 +1,353 @@ +import type { PluginHelper } from "@jsergo/mdit"; +import Token from "markdown-it/lib/token.js"; + +export type SingleAttrValue = AttrPart | boolean; +export type AttrPart = string | number | null | undefined; +export type AttrValue = SingleAttrValue | AttrPart[]; + +export class CustomBuiltin { + readonly #md: PluginHelper; + + constructor(md: PluginHelper) { + this.#md = md; + } + + el( + tag: string, + attrs: Record, + children: Child[] + ): MarkdownElement { + return ParagraphElement.tag(tag, this.#md) + .attrs(attrs) + .push(...children); + } +} + +export abstract class MarkdownFragment implements LazyChild { + abstract done(): Token[]; + protected abstract appendToken(token: Token): void; + + #md: PluginHelper; + + constructor(md: PluginHelper) { + this.#md = md; + } + + render(tokens: MarkdownFragment): MarkdownFragment { + return tokens.push(...this.done()); + } + + protected get md(): PluginHelper { + return this.#md; + } + + blockHtml(markdown: ToString): this { + this.push(...this.md.parseBlock(ToString(markdown))); + return this; + } + + inlineHtml(markdown: ToString): this { + this.push(...this.md.parseInline(ToString(markdown))); + return this; + } + + append(child: Child): this { + if (child === undefined || child === null) { + // do nothing + } else if (typeof child === "string") { + this.appendToken(text(child)); + } else if ("render" in child) { + child.render(this); + } else { + this.appendToken(child); + } + + return this; + } + + push(...children: Child[]): this { + for (const child of children) { + this.append(child); + } + return this; + } + + element( + { + tag, + attrs, + children, + }: { + tag: string; + attrs: Record; + children: Children | undefined; + }, + { + create, + }: { + create: { + tag: (tag: string, md: PluginHelper) => MarkdownElement; + }; + } + ): this { + let el = create.tag(tag, this.md).attrs(attrs); + + if (Array.isArray(children)) { + for (const child of children) { + el.append(child); + } + } else if (typeof children === "function") { + children(this); + } + + this.push(...el.done()); + + return this; + } + + htmlEl(...elArgs: ElArgs): this { + return this.element(normalizeElArgs(elArgs), { + create: HtmlElement, + }); + } + + el(...elArgs: ElArgs): this { + return this.element(normalizeElArgs(elArgs), { + create: ParagraphElement, + }); + } +} + +export abstract class MarkdownElement extends MarkdownFragment { + abstract attr(key: string, value: AttrValue): this; + + constructor(_tag: string, md: PluginHelper) { + super(md); + } + + attrs(attrs: Record): this { + for (const [key, value] of Object.entries(attrs)) { + this.attr(key, value); + } + return this; + } + + renderInline(text: string): string { + return this.md.renderInline(text); + } +} + +export class BasicFragment extends MarkdownFragment { + static empty(md: PluginHelper): MarkdownFragment { + return new BasicFragment(md); + } + + readonly #tokens: Token[] = []; + + protected override appendToken(token: Token): void { + this.#tokens.push(token); + } + + override done(): Token[] { + return this.#tokens; + } +} + +export class HtmlElement extends MarkdownElement { + static tag(tag: string, md: PluginHelper): MarkdownElement { + return new HtmlElement(tag, md); + } + + readonly #tag: string; + #open: string; + readonly #children: Token[] = []; + + private constructor(tag: string, md: PluginHelper) { + super(tag, md); + this.#tag = tag; + + this.#open = `<${this.#tag}`; + } + + override attr(key: string, value: AttrValue): this { + const valueString = this.#attrValue(value); + + if (valueString !== null) { + this.#open += ` ${key}=${valueString}`; + } + + return this; + } + + #attrValue(value: AttrValue): string | null { + if (Array.isArray(value)) { + return `"${value.join(" ")}`; + } else if (typeof value === "string") { + return JSON.stringify(value); + } else if (typeof value === "number") { + return `"${value}"`; + } else if (value === true) { + return `""`; + } else { + return null; + } + } + + override done(): Token[] { + const open = new Token("html_block", "", 0); + open.content = `${this.#open}\n\n`; + const tokens: Token[] = [open]; + tokens.push(...this.#children); + + const close = new Token("html_block", "", 0); + close.content = `\n\n`; + tokens.push(close); + + return tokens; + } + + protected override appendToken(token: Token): void { + if (!this.#open.endsWith(">")) this.#open += ">"; + + this.#children.push(token); + } +} + +export class ParagraphElement extends MarkdownElement { + static tag(tag: string, md: PluginHelper): ParagraphElement { + return new ParagraphElement( + md, + tag, + new Token("paragraph_open", tag, 1), + [] + ); + } + + readonly #tag: string; + readonly #token: Token; + readonly #children: Token[]; + + private constructor( + md: PluginHelper, + tag: string, + token: Token, + children: Token[] + ) { + super(tag, md); + this.#tag = tag; + this.#token = token; + this.#children = children; + } + + protected override appendToken(token: Token): void { + this.#children.push(token); + } + + done(): Token[] { + return [ + this.#token, + ...this.#children, + new Token("paragraph_close", this.#tag, -1), + ]; + } + + attr(name: string, value: AttrValue): this { + if (value === undefined || value === false) { + // do nothing + } else if (Array.isArray(value)) { + for (const val of attrListValue(value)) { + this.#token.attrJoin(name, val); + } + } else if (value === true) { + this.#token.attrSet(name, ""); + } else { + const val = attrPart(value); + if (val) { + this.#token.attrSet(name, val); + } + } + + return this; + } +} + +export type Child = + | LazyChild + | Token + | string + | null + | undefined; + +export type Children = + | Child[] + | ((el: MarkdownFragment) => MarkdownFragment); + +export interface LazyChild { + render(tokens: MarkdownFragment): MarkdownFragment; +} + +export interface TextLike { + stringify(): string; +} + +export type ToString = TextLike | string | number | boolean; + +function ToString(stringlike: ToString): string { + if (typeof stringlike !== "object") { + return String(stringlike); + } else { + return stringlike.stringify(); + } +} + +export function text(string: ToString): Token { + const token = new Token("text", "", 0); + token.content = ToString(string); + return token; +} + +function attrListValue(value: AttrPart[]) { + return value.map(attrPart).filter(isPresent); +} + +function attrPart(value: AttrPart): string | undefined { + if (value === undefined || value === null) { + return undefined; + } else if (typeof value === "number") { + return String(value); + } else if (typeof value === "string") { + return value; + } else { + throw unreachable(value); + } +} + +function isPresent(value: T | null | undefined): value is T { + return value !== null && value !== undefined; +} + +function unreachable(_value: never, message = "unreachable") { + throw new Error(message); +} + +type ElArgs = [ + tag: string, + attrs?: Record | Children | undefined, + children?: Children +]; + +function normalizeElArgs([tag, attrs, children]: ElArgs): { + tag: string; + attrs: Record; + children: Children | undefined; +} { + if ( + attrs === undefined || + Array.isArray(attrs) || + typeof attrs === "function" + ) { + return { tag, attrs: {}, children: attrs }; + } else { + return { tag, attrs, children }; + } +} diff --git a/packages/@starbeam-docs/fenced-container/tsconfig.json b/packages/@starbeam-docs/fenced-container/tsconfig.json new file mode 100644 index 0000000..9102441 --- /dev/null +++ b/packages/@starbeam-docs/fenced-container/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "noPropertyAccessFromIndexSignature": true, + "exactOptionalPropertyTypes": true, + "noImplicitOverride": true, + "allowJs": true, + "jsx": "preserve", + "types": ["@vue/runtime-dom"] + }, + "include": ["./src/**/*", "../../../builtins.ts"] +} diff --git a/packages/@starbeam-docs/snippets/dist/Code.css b/packages/@starbeam-docs/snippets/dist/Code.css new file mode 100644 index 0000000..cd60002 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/Code.css @@ -0,0 +1,115 @@ +._code-snippet_1ftur_1 button { + -webkit-transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out; + transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out; + font-family: var(--vp-font-family-base), sans-serif; + font-size: 0.75rem; + padding-top: 0; + padding-bottom: 0; + padding-left: var(--sbdoc-ui-inner-padding-sm); + padding-right: var(--sbdoc-ui-inner-padding-sm); + border: 0; + + background-color: var(--vp-button-alt-bg); + color: var(--vp-button-alt-text); +} + +._code-snippet_1ftur_1 button:hover { + background-color: var(--vp-button-brand-hover-bg); + color: var(--vp-button-brand-hover-text); +} + +@layer defaults { + ._code-snippet_1ftur_1 button:first-child { + border-bottom-left-radius: var(--sbdoc-radius-xsm); + } + + ._code-snippet_1ftur_1 button:last-child { + border-top-right-radius: var(--sbdoc-radius-xsm); + } +} + +._section_1ftur_28._ts_1ftur_28 button._ts_1ftur_28, +._section_1ftur_28._js_1ftur_29 button._js_1ftur_29 { + background-color: var(--vp-button-brand-bg); + color: var(--vp-button-brand-text); +} + +@layer defaults { + html.dark .shiki.github-light { + display: none; + } + + html:not(.dark) .shiki.github-dark { + display: none; + } + + ._code-snippet_1ftur_1 { + position: relative; + display: grid; + width: 100%; + } + + section._toggler_1ftur_49 { + border-top-right-radius: var(--sbdoc-radius); + contain: paint; + margin: 0; + } + + body:not(:has(:focus-visible)) section._toggler_1ftur_49 { + z-index: var(--sbdoc-ui-layer-index-hud); + opacity: 0; + pointer-events: none; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; + } + + section._toggler_1ftur_49 button:focus-visible { + contain: paint; + } + + ._section_1ftur_28:hover ._toggler_1ftur_49 { + opacity: 1; + pointer-events: auto; + } + + div._ts_1ftur_28, + div._js_1ftur_29 { + display: none; + } + + ._section_1ftur_28._ts_1ftur_28 div._ts_1ftur_28, + ._section_1ftur_28._js_1ftur_29 div._js_1ftur_29 { + display: block; + } + + ._section_1ftur_28 pre.shiki { + padding: 1em; + margin: 0; + } + + ._toggler_1ftur_49 { + display: grid; + grid-template-columns: -webkit-max-content 1fr; + grid-template-columns: max-content 1fr; + position: absolute; + top: 0; + right: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-line-pack: center; + align-content: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 3; + font-size: 0.75rem; + + border: var(--sb-border-thin-width) solid var(--vp-button-brand-border); + border-right: none; + background-color: var(--vp-button-alt-bg); + border-bottom-left-radius: var(--sbdoc-radius-sm); + border-top-right-radius: var(--sbdoc-radius-sm); + } +} diff --git a/packages/@starbeam-docs/snippets/dist/Code.css.js b/packages/@starbeam-docs/snippets/dist/Code.css.js new file mode 100644 index 0000000..813913e --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/Code.css.js @@ -0,0 +1,15 @@ +export const codeSnippet = "_code-snippet_1ftur_1"; +export const section = "_section_1ftur_28"; +export const ts = "_ts_1ftur_28"; +export const js = "_js_1ftur_29"; +export const toggler = "_toggler_1ftur_49"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode("._code-snippet_1ftur_1 button {\n -webkit-transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n font-family: var(--vp-font-family-base), sans-serif;\n font-size: 0.75rem;\n padding-top: 0;\n padding-bottom: 0;\n padding-left: var(--sbdoc-ui-inner-padding-sm);\n padding-right: var(--sbdoc-ui-inner-padding-sm);\n border: 0;\n\n background-color: var(--vp-button-alt-bg);\n color: var(--vp-button-alt-text);\n}\n\n._code-snippet_1ftur_1 button:hover {\n background-color: var(--vp-button-brand-hover-bg);\n color: var(--vp-button-brand-hover-text);\n}\n\n@layer defaults {\n ._code-snippet_1ftur_1 button:first-child {\n border-bottom-left-radius: var(--sbdoc-radius-xsm);\n }\n\n ._code-snippet_1ftur_1 button:last-child {\n border-top-right-radius: var(--sbdoc-radius-xsm);\n }\n}\n\n._section_1ftur_28._ts_1ftur_28 button._ts_1ftur_28,\n._section_1ftur_28._js_1ftur_29 button._js_1ftur_29 {\n background-color: var(--vp-button-brand-bg);\n color: var(--vp-button-brand-text);\n}\n\n@layer defaults {\n html.dark .shiki.github-light {\n display: none;\n }\n\n html:not(.dark) .shiki.github-dark {\n display: none;\n }\n\n ._code-snippet_1ftur_1 {\n position: relative;\n display: grid;\n width: 100%;\n }\n\n section._toggler_1ftur_49 {\n border-top-right-radius: var(--sbdoc-radius);\n contain: paint;\n margin: 0;\n }\n\n body:not(:has(:focus-visible)) section._toggler_1ftur_49 {\n z-index: var(--sbdoc-ui-layer-index-hud);\n opacity: 0;\n pointer-events: none;\n -webkit-transition: opacity 0.2s ease-in-out;\n transition: opacity 0.2s ease-in-out;\n }\n\n section._toggler_1ftur_49 button:focus-visible {\n contain: paint;\n }\n\n ._section_1ftur_28:hover ._toggler_1ftur_49 {\n opacity: 1;\n pointer-events: auto;\n }\n\n div._ts_1ftur_28,\n div._js_1ftur_29 {\n display: none;\n }\n\n ._section_1ftur_28._ts_1ftur_28 div._ts_1ftur_28,\n ._section_1ftur_28._js_1ftur_29 div._js_1ftur_29 {\n display: block;\n }\n\n ._section_1ftur_28 pre.shiki {\n padding: 1em;\n margin: 0;\n }\n\n ._toggler_1ftur_49 {\n display: grid;\n grid-template-columns: -webkit-max-content 1fr;\n grid-template-columns: max-content 1fr;\n position: absolute;\n top: 0;\n right: 0;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 3;\n font-size: 0.75rem;\n\n border: var(--sb-border-thin-width) solid var(--vp-button-brand-border);\n border-right: none;\n background-color: var(--vp-button-alt-bg);\n border-bottom-left-radius: var(--sbdoc-radius-sm);\n border-top-right-radius: var(--sbdoc-radius-sm);\n }\n}\n"); + style.appendChild(text); + document.head.appendChild(style); +} + + +//# sourceMappingURL=Code.css.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/Code.css.js.map b/packages/@starbeam-docs/snippets/dist/Code.css.js.map new file mode 100644 index 0000000..3793653 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/Code.css.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/Code.css.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,cAAc,wBAAwB;AACnD,OAAO,MAAM,UAAU,oBAAoB;AAC3C,OAAO,MAAM,KAAK,eAAe;AACjC,OAAO,MAAM,KAAK,eAAe;AACjC,OAAO,MAAM,UAAU,oBAAoB;AAC3C,IAAI,WAAW,QAAQ,KAAK,WAAW;IACrC,MAAM,QAAQ,SAAS,aAAa,CAAC;IACrC,MAAM,YAAY,CAAC,QAAQ;IAC3B,MAAM,OAAO,SAAS,cAAc,CAAC;IACrC,MAAM,WAAW,CAAC;IAClB,SAAS,IAAI,CAAC,WAAW,CAAC;AAC5B,CAAC","file":"Code.css.js","sourcesContent":["export const codeSnippet = \"_code-snippet_1ftur_1\";\nexport const section = \"_section_1ftur_28\";\nexport const ts = \"_ts_1ftur_28\";\nexport const js = \"_js_1ftur_29\";\nexport const toggler = \"_toggler_1ftur_49\";\nif (globalThis.document !== undefined) {\n const style = document.createElement('style');\n style.setAttribute(\"type\", \"text/css\");\n const text = document.createTextNode(\"._code-snippet_1ftur_1 button {\\n -webkit-transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\\n font-family: var(--vp-font-family-base), sans-serif;\\n font-size: 0.75rem;\\n padding-top: 0;\\n padding-bottom: 0;\\n padding-left: var(--sbdoc-ui-inner-padding-sm);\\n padding-right: var(--sbdoc-ui-inner-padding-sm);\\n border: 0;\\n\\n background-color: var(--vp-button-alt-bg);\\n color: var(--vp-button-alt-text);\\n}\\n\\n._code-snippet_1ftur_1 button:hover {\\n background-color: var(--vp-button-brand-hover-bg);\\n color: var(--vp-button-brand-hover-text);\\n}\\n\\n@layer defaults {\\n ._code-snippet_1ftur_1 button:first-child {\\n border-bottom-left-radius: var(--sbdoc-radius-xsm);\\n }\\n\\n ._code-snippet_1ftur_1 button:last-child {\\n border-top-right-radius: var(--sbdoc-radius-xsm);\\n }\\n}\\n\\n._section_1ftur_28._ts_1ftur_28 button._ts_1ftur_28,\\n._section_1ftur_28._js_1ftur_29 button._js_1ftur_29 {\\n background-color: var(--vp-button-brand-bg);\\n color: var(--vp-button-brand-text);\\n}\\n\\n@layer defaults {\\n html.dark .shiki.github-light {\\n display: none;\\n }\\n\\n html:not(.dark) .shiki.github-dark {\\n display: none;\\n }\\n\\n ._code-snippet_1ftur_1 {\\n position: relative;\\n display: grid;\\n width: 100%;\\n }\\n\\n section._toggler_1ftur_49 {\\n border-top-right-radius: var(--sbdoc-radius);\\n contain: paint;\\n margin: 0;\\n }\\n\\n body:not(:has(:focus-visible)) section._toggler_1ftur_49 {\\n z-index: var(--sbdoc-ui-layer-index-hud);\\n opacity: 0;\\n pointer-events: none;\\n -webkit-transition: opacity 0.2s ease-in-out;\\n transition: opacity 0.2s ease-in-out;\\n }\\n\\n section._toggler_1ftur_49 button:focus-visible {\\n contain: paint;\\n }\\n\\n ._section_1ftur_28:hover ._toggler_1ftur_49 {\\n opacity: 1;\\n pointer-events: auto;\\n }\\n\\n div._ts_1ftur_28,\\n div._js_1ftur_29 {\\n display: none;\\n }\\n\\n ._section_1ftur_28._ts_1ftur_28 div._ts_1ftur_28,\\n ._section_1ftur_28._js_1ftur_29 div._js_1ftur_29 {\\n display: block;\\n }\\n\\n ._section_1ftur_28 pre.shiki {\\n padding: 1em;\\n margin: 0;\\n }\\n\\n ._toggler_1ftur_49 {\\n display: grid;\\n grid-template-columns: -webkit-max-content 1fr;\\n grid-template-columns: max-content 1fr;\\n position: absolute;\\n top: 0;\\n right: 0;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-line-pack: center;\\n align-content: center;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n z-index: 3;\\n font-size: 0.75rem;\\n\\n border: var(--sb-border-thin-width) solid var(--vp-button-brand-border);\\n border-right: none;\\n background-color: var(--vp-button-alt-bg);\\n border-bottom-left-radius: var(--sbdoc-radius-sm);\\n border-top-right-radius: var(--sbdoc-radius-sm);\\n }\\n}\\n\");\n style.appendChild(text);\n document.head.appendChild(style);\n}"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/Code.js b/packages/@starbeam-docs/snippets/dist/Code.js new file mode 100644 index 0000000..805c69d --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/Code.js @@ -0,0 +1,153 @@ +import { createVNode as _createVNode } from "vue"; +import { defineComponent } from "vue"; +import { onMounted, ref } from "vue"; +import { STORAGE } from "./lang.js"; +import { codeSnippet, toggler as togglerClass, section as sectionClass, js as jsClass, ts as tsClass } from "./Code.css.js"; +export default defineComponent({ + setup (_, { slots }) { + const js = ref(); + const ts = ref(); + const container = ref(); + onMounted(()=>{ + mountElements(ts, js, container); + }); + return ()=>_createVNode("section", { + "class": [ + sectionLangClass(STORAGE.currentLang), + "code-block", + sectionClass, + codeSnippet + ], + "ref": container + }, [ + toggler(), + langSlots(slots, { + ts, + js + }) + ]); + } +}); +function toggler() { + return _createVNode("section", { + "class": [ + togglerClass, + "code-toggler" + ] + }, [ + langButton("js"), + langButton("ts") + ]); +} +function langSlots(slots, refs) { + return [ + langSlot(slots, "ts", refs.ts), + langSlot(slots, "js", refs.js) + ]; +} +function langSlot(slots, lang, ref) { + const slot = slots[lang]; + if (slot) { + return _createVNode("div", { + "class": [ + langClass(lang), + `lang-${lang}` + ], + "ref": ref + }, [ + slot() + ]); + } +} +function langButton(lang) { + return _createVNode("button", { + "type": "button", + "class": [ + "toggler-button", + langClass(lang) + ], + "onClick": ()=>{ + console.info("clicked", lang); + STORAGE.lang = lang; + } + }, [ + lang + ]); +} +function createToggler() { + const toggler = document.createElement("section"); + toggler.className = togglerClass; + return toggler; +} +function label(text) { + const label = document.createElement("span"); + label.innerText = text; + return label; +} +function button(text, callback) { + const button = document.createElement("button"); + button.setAttribute("type", "button"); + button.innerText = text; + button.addEventListener("click", callback); + return button; +} +const LANG_KEY = "default-lang"; +const DEFAULT_LANG = "js"; +function addToggle(container, text, callback) { + const toggler = createToggler(); + if (text === "typescript") { + toggler.appendChild(label("ts")); + toggler.appendChild(button("js", callback)); + } else { + toggler.appendChild(button("ts", callback)); + toggler.appendChild(label("js")); + } + container.prepend(toggler); +} +function mountElements(ts, js, container) { + onMounted(()=>{ + const tsSection = ts.value; + const jsSection = js.value; + const tsContainer = tsSection.querySelector("[class*=language-]"); + assert(tsContainer, exists); + addToggle(tsContainer, "typescript", ()=>{ + STORAGE.lang = "js"; + }); + const jsContainer = jsSection.querySelector("[class*=language-]"); + assert(jsContainer, exists); + addToggle(jsContainer, "javascript", ()=>{ + STORAGE.lang = "ts"; + }); + }); + // TODO: Generate the right markdown + onMounted(()=>{ + for (const item of container.value.querySelectorAll("[class*=language-]")){ + assert(item.parentElement, exists); + item.parentElement.classList.add("code-container"); + for (const child of item.querySelectorAll(".code-container")){ + child.classList.remove("code-container"); + } + } + // const element = + }); +} +function assert(value, check) { + if (!check(value)) { + throw new Error(`Expected ${check.name}`); + } +} +function exists(value) { + return value !== null && value !== undefined; +} +function langClass(lang) { + return lang === "ts" ? tsClass : jsClass; +} +function sectionLangClass(lang) { + return [ + langClass(lang), + `language-${lang}` + ]; +} + + +//# sourceMappingURL=Code.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/Code.js.map b/packages/@starbeam-docs/snippets/dist/Code.js.map new file mode 100644 index 0000000..7a55604 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/Code.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/Code.tsx"],"names":[],"mappings":";AAAA,SAAS,eAAe,QAA8B,MAAM;AAC5D,SAAS,SAAS,EAAE,GAAG,QAAQ,MAAM;AACrC,SAAS,OAAO,QAAQ,YAAY;AACpC,SACE,WAAW,EACX,WAAW,YAAY,EACvB,WAAW,YAAY,EACvB,MAAM,OAAO,EACb,MAAM,OAAO,QACR,gBAAgB;AAEvB,eAAe,gBAAgB;IAC7B,OAAM,CAAC,EAAE,EAAE,MAAK,EAAE,EAAE;QAClB,MAAM,KAAK;QACX,MAAM,KAAK;QAEX,MAAM,YAAY;QAElB,UAAU,IAAM;YACd,cAAc,IAAI,IAAI;QACxB;QAEA,OAAO;yBAEI;oBACL,iBAAiB,QAAQ,WAAW;oBACpC;oBACA;oBACA;iBACD;uBACI;;gBAEJ;gBACA,UAAU,OAAO;oBAAE;oBAAI;gBAAG;;IAGjC;AACF,GAAG;AAEH,SAAS,UAAU;IACjB;iBACkB;YAAC;YAAc;SAAe;;QAC3C,WAAW;QACX,WAAW;;AAGlB;AAEA,SAAS,UACP,KAAY,EACZ,IAAoD,EACpD;IACA,OAAO;QACL,SAAS,OAAO,MAAM,KAAK,EAAE;QAC7B,SAAS,OAAO,MAAM,KAAK,EAAE;KAC9B;AACH;AAEA,SAAS,SACP,KAAY,EACZ,IAAiB,EACjB,GAAqB,EACsB;IAC3C,MAAM,OAAO,KAAK,CAAC,KAAK;IAExB,IAAI,MAAM;QACR;qBACc;gBAAC,UAAU;gBAAO,CAAC,KAAK,EAAE,KAAK,CAAC;aAAC;mBAAO;;YACjD;;IAGP,CAAC;AACH;AAEA,SAAS,WAAW,IAAiB,EAAE;IACrC;gBAES;iBACE;YAAC;YAAkB,UAAU;SAAM;mBACjC,IAAM;YACb,QAAQ,IAAI,CAAC,WAAW;YACxB,QAAQ,IAAI,GAAG;QACjB;;QAEC;;AAGP;AAEA,SAAS,gBAA6B;IACpC,MAAM,UAAU,SAAS,aAAa,CAAC;IACvC,QAAQ,SAAS,GAAG;IACpB,OAAO;AACT;AAEA,SAAS,MAAM,IAAY,EAAE;IAC3B,MAAM,QAAQ,SAAS,aAAa,CAAC;IACrC,MAAM,SAAS,GAAG;IAClB,OAAO;AACT;AAEA,SAAS,OAAO,IAAY,EAAE,QAAoB,EAAE;IAClD,MAAM,SAAS,SAAS,aAAa,CAAC;IACtC,OAAO,YAAY,CAAC,QAAQ;IAC5B,OAAO,SAAS,GAAG;IACnB,OAAO,gBAAgB,CAAC,SAAS;IAEjC,OAAO;AACT;AAEA,MAAM,WAAW;AACjB,MAAM,eAAe;AAErB,SAAS,UACP,SAAkB,EAClB,IAAY,EACZ,QAAoB,EACpB;IACA,MAAM,UAAU;IAEhB,IAAI,SAAS,cAAc;QACzB,QAAQ,WAAW,CAAC,MAAM;QAC1B,QAAQ,WAAW,CAAC,OAAO,MAAM;IACnC,OAAO;QACL,QAAQ,WAAW,CAAC,OAAO,MAAM;QACjC,QAAQ,WAAW,CAAC,MAAM;IAC5B,CAAC;IAED,UAAU,OAAO,CAAC;AACpB;AAEA,SAAS,cACP,EAAoB,EACpB,EAAoB,EACpB,SAA2B,EAC3B;IACA,UAAU,IAAM;QACd,MAAM,YAAY,GAAG,KAAK;QAC1B,MAAM,YAAY,GAAG,KAAK;QAE1B,MAAM,cAAc,UAAU,aAAa,CACzC;QAGF,OAAO,aAAa;QAEpB,UAAU,aAAa,cAAc,IAAM;YACzC,QAAQ,IAAI,GAAG;QACjB;QAEA,MAAM,cAAc,UAAU,aAAa,CACzC;QAGF,OAAO,aAAa;QAEpB,UAAU,aAAa,cAAc,IAAM;YACzC,QAAQ,IAAI,GAAG;QACjB;IACF;IAEA,oCAAoC;IACpC,UAAU,IAAM;QACd,KAAK,MAAM,QAAQ,UAAU,KAAK,CAAC,gBAAgB,CACjD,sBACC;YACD,OAAO,KAAK,aAAa,EAAE;YAC3B,KAAK,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;YAEjC,KAAK,MAAM,SAAS,KAAK,gBAAgB,CACvC,mBACwB;gBACxB,MAAM,SAAS,CAAC,MAAM,CAAC;YACzB;QACF;IACA,kBAAkB;IACpB;AACF;AAEA,SAAS,OACP,KAAQ,EACR,KAA+B,EACX;IACpB,IAAI,CAAC,MAAM,QAAQ;QACjB,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE;IAC5C,CAAC;AACH;AAEA,SAAS,OAAU,KAA2B,EAAc;IAC1D,OAAO,UAAU,IAAI,IAAI,UAAU;AACrC;AAEA,SAAS,UAAU,IAAiB,EAAU;IAC5C,OAAO,SAAS,OAAO,UAAU,OAAO;AAC1C;AAEA,SAAS,iBAAiB,IAAiB,EAAY;IACrD,OAAO;QAAC,UAAU;QAAO,CAAC,SAAS,EAAE,KAAK,CAAC;KAAC;AAC9C","file":"Code.js","sourcesContent":["import { defineComponent, type Ref, type Slots } from \"vue\";\nimport { onMounted, ref } from \"vue\";\nimport { STORAGE } from \"./lang.js\";\nimport {\n codeSnippet,\n toggler as togglerClass,\n section as sectionClass,\n js as jsClass,\n ts as tsClass,\n} from \"./Code.css.js\";\n\nexport default defineComponent({\n setup(_, { slots }) {\n const js = ref();\n const ts = ref();\n\n const container = ref();\n\n onMounted(() => {\n mountElements(ts, js, container);\n });\n\n return () => (\n \n {toggler()}\n {langSlots(slots, { ts, js })}\n \n );\n },\n});\n\nfunction toggler() {\n return (\n
\n {langButton(\"js\")}\n {langButton(\"ts\")}\n
\n );\n}\n\nfunction langSlots(\n slots: Slots,\n refs: { ts: Ref; js: Ref }\n) {\n return [\n langSlot(slots, \"ts\", refs.ts),\n langSlot(slots, \"js\", refs.js),\n ];\n}\n\nfunction langSlot(\n slots: Slots,\n lang: \"ts\" | \"js\",\n ref: Ref\n): ReturnType | void {\n const slot = slots[lang];\n\n if (slot) {\n return (\n
\n {slot()}\n
\n );\n }\n}\n\nfunction langButton(lang: \"ts\" | \"js\") {\n return (\n {\n console.info(\"clicked\", lang);\n STORAGE.lang = lang;\n }}\n >\n {lang}\n \n );\n}\n\nfunction createToggler(): HTMLElement {\n const toggler = document.createElement(\"section\");\n toggler.className = togglerClass;\n return toggler;\n}\n\nfunction label(text: string) {\n const label = document.createElement(\"span\");\n label.innerText = text;\n return label;\n}\n\nfunction button(text: string, callback: () => void) {\n const button = document.createElement(\"button\");\n button.setAttribute(\"type\", \"button\");\n button.innerText = text;\n button.addEventListener(\"click\", callback);\n\n return button;\n}\n\nconst LANG_KEY = \"default-lang\";\nconst DEFAULT_LANG = \"js\";\n\nfunction addToggle(\n container: Element,\n text: string,\n callback: () => void\n) {\n const toggler = createToggler();\n\n if (text === \"typescript\") {\n toggler.appendChild(label(\"ts\"));\n toggler.appendChild(button(\"js\", callback));\n } else {\n toggler.appendChild(button(\"ts\", callback));\n toggler.appendChild(label(\"js\"));\n }\n\n container.prepend(toggler);\n}\n\nfunction mountElements(\n ts: Ref,\n js: Ref,\n container: Ref\n) {\n onMounted(() => {\n const tsSection = ts.value;\n const jsSection = js.value;\n\n const tsContainer = tsSection.querySelector(\n \"[class*=language-]\"\n );\n\n assert(tsContainer, exists);\n\n addToggle(tsContainer, \"typescript\", () => {\n STORAGE.lang = \"js\";\n });\n\n const jsContainer = jsSection.querySelector(\n \"[class*=language-]\"\n );\n\n assert(jsContainer, exists);\n\n addToggle(jsContainer, \"javascript\", () => {\n STORAGE.lang = \"ts\";\n });\n });\n\n // TODO: Generate the right markdown\n onMounted(() => {\n for (const item of container.value.querySelectorAll(\n \"[class*=language-]\"\n )) {\n assert(item.parentElement, exists);\n item.parentElement.classList.add(\"code-container\");\n\n for (const child of item.querySelectorAll(\n \".code-container\"\n ) as NodeListOf) {\n child.classList.remove(\"code-container\");\n }\n }\n // const element =\n });\n}\n\nfunction assert(\n value: T,\n check: (value: T) => value is U\n): asserts value is U {\n if (!check(value)) {\n throw new Error(`Expected ${check.name}`);\n }\n}\n\nfunction exists(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\nfunction langClass(lang: \"ts\" | \"js\"): string {\n return lang === \"ts\" ? tsClass : jsClass;\n}\n\nfunction sectionLangClass(lang: \"ts\" | \"js\"): string[] {\n return [langClass(lang), `language-${lang}`];\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/build.js b/packages/@starbeam-docs/snippets/dist/build.js new file mode 100644 index 0000000..f05944d --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/build.js @@ -0,0 +1,4 @@ +export { snippetPlugin as snippets } from "./markdown-it.js"; + + +//# sourceMappingURL=build.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/build.js.map b/packages/@starbeam-docs/snippets/dist/build.js.map new file mode 100644 index 0000000..4780d0c --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/build.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/build.ts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,QAAQ,QAAQ,mBAAmB","file":"build.js","sourcesContent":["export { snippetPlugin as snippets } from \"./markdown-it.js\";\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/env.js b/packages/@starbeam-docs/snippets/dist/env.js new file mode 100644 index 0000000..5e50726 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/env.js @@ -0,0 +1,4 @@ +export { }; + + +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/env.js.map b/packages/@starbeam-docs/snippets/dist/env.js.map new file mode 100644 index 0000000..100c14c --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/env.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/env.ts"],"names":[],"mappings":"AAAA,WAUC","file":"env.js","sourcesContent":["import type { MarkdownSfcBlocks } from \"@mdit-vue/plugin-sfc\";\nimport type StateBlock from \"markdown-it/lib/rules_block/state_block.js\";\n\nexport interface MarkdownEnv {\n path: string;\n sfcBlocks?: MarkdownSfcBlocks;\n}\n\nexport interface VitepressStateBlock extends StateBlock {\n env: MarkdownEnv;\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/index.js b/packages/@starbeam-docs/snippets/dist/index.js new file mode 100644 index 0000000..b87c69f --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/index.js @@ -0,0 +1,5 @@ +export { STORAGE } from "./lang.js"; +export { default as Code } from "./Code.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/index.js.map b/packages/@starbeam-docs/snippets/dist/index.js.map new file mode 100644 index 0000000..cb9617c --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,YAAY;AACpC,SAAS,WAAW,IAAI,QAAQ,YAAY","file":"index.js","sourcesContent":["export { STORAGE } from \"./lang.js\";\nexport { default as Code } from \"./Code.js\";\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/lang.js b/packages/@starbeam-docs/snippets/dist/lang.js new file mode 100644 index 0000000..1ad9a06 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/lang.js @@ -0,0 +1,78 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +import { useStorage } from "@vueuse/core"; +import { ref, watch } from "vue"; +const LANG_KEY = "default-lang"; +const DEFAULT_LANG = "js"; +var _store = /*#__PURE__*/ new WeakMap(), _currentLang = /*#__PURE__*/ new WeakMap(); +export class Lang { + get store() { + return _classPrivateFieldGet(this, _store).value; + } + get currentLang() { + return _classPrivateFieldGet(this, _currentLang).value; + } + get lang() { + return this.store[LANG_KEY] === "ts" ? "ts" : "js"; + } + set lang(lang) { + this.store[LANG_KEY] = lang; + } + constructor(){ + _classPrivateFieldInit(this, _store, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _currentLang, { + writable: true, + value: void 0 + }); + const store = _classPrivateFieldSet(this, _store, useStorage("VUEPRESS_CODE_TAB_STORE", {})); + _classPrivateFieldSet(this, _currentLang, ref(this.lang)); + watch(()=>store.value[LANG_KEY], (newValue)=>{ + _classPrivateFieldGet(this, _currentLang).value = newValue !== null && newValue !== void 0 ? newValue : DEFAULT_LANG; + }); + } +} +export const STORAGE = new Lang(); + + +//# sourceMappingURL=lang.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/lang.js.map b/packages/@starbeam-docs/snippets/dist/lang.js.map new file mode 100644 index 0000000..5d66404 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/lang.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/lang.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,UAAU,QAAQ,eAAe;AAC1C,SAAS,GAAG,EAAE,KAAK,QAAkB,MAAM;AAE3C,MAAM,WAAW;AACjB,MAAM,eAAe;IAGnB,sCACS;AAFX,OAAO,MAAM;IAkBX,IAAI,QAAgC;QAClC,OAAO,sBAAA,IAAI,EAAE,QAAM,KAAK;IAC1B;IAEA,IAAI,cAA2B;QAC7B,OAAO,sBAAA,IAAI,EAAE,cAAY,KAAK;IAChC;IAEA,IAAI,OAAoB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,OAAO,IAAI;IACpD;IAEA,IAAI,KAAK,IAAiB,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG;IACzB;IA5BA,aAAc;QAHd,6BAAA;;mBAAA,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QAGE,MAAM,oCAAe,QAAQ,WAE3B,2BAA2B,CAAC;oCACxB,cAAc,IAAI,IAAI,CAAC,IAAI;QAEjC,MACE,IAAM,MAAM,KAAK,CAAC,SAAS,EAC3B,CAAC,WAAa;YACZ,sBAAA,IAAI,EAAE,cAAY,KAAK,GAAG,qBAAA,sBAAA,WAAY,YAAY;QACpD;IAEJ;AAiBF,CAAC;AAED,OAAO,MAAM,UAAU,IAAI,OAAO","file":"lang.js","sourcesContent":["import { useStorage } from \"@vueuse/core\";\nimport { ref, watch, type Ref } from \"vue\";\n\nconst LANG_KEY = \"default-lang\";\nconst DEFAULT_LANG = \"js\";\n\nexport class Lang {\n #store: Ref>;\n readonly #currentLang: Ref<\"ts\" | \"js\">;\n\n constructor() {\n const store = (this.#store = useStorage<\n Record\n >(\"VUEPRESS_CODE_TAB_STORE\", {}));\n this.#currentLang = ref(this.lang);\n\n watch(\n () => store.value[LANG_KEY] as \"ts\" | \"js\" | undefined,\n (newValue) => {\n this.#currentLang.value = newValue ?? DEFAULT_LANG;\n }\n );\n }\n\n get store(): Record {\n return this.#store.value;\n }\n\n get currentLang(): \"ts\" | \"js\" {\n return this.#currentLang.value;\n }\n\n get lang(): \"ts\" | \"js\" {\n return this.store[LANG_KEY] === \"ts\" ? \"ts\" : \"js\";\n }\n\n set lang(lang: \"ts\" | \"js\") {\n this.store[LANG_KEY] = lang;\n }\n}\n\nexport const STORAGE = new Lang();\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/markdown-it.js b/packages/@starbeam-docs/snippets/dist/markdown-it.js new file mode 100644 index 0000000..8e0b2ae --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/markdown-it.js @@ -0,0 +1,201 @@ +import "@mdit-vue/plugin-sfc"; +import Snippet from "docs-snippet"; +import { existsSync, readFileSync } from "node:fs"; +import stripAnsi from "strip-ansi"; +import { RenderLanguageRegion } from "./snippets/language-region.js"; +import { MDState } from "./utils.js"; +export function snippetPlugin(md, srcDir) { + const parser = (state, startLine, _endLine, silent)=>{ + const mdState = new MDState(md, state); + const line = mdState.line(startLine); + if (line.isCodeBlock) { + return false; + } + // The syntax is `!(./-snippets/cell.ts#cell) + if (line.startsWith("!(")) { + const snippet = line.string(); + // use named captures + const match = snippet.match(RegExp("^!\\((?:(?[a-z-]+):)?(?(.*?))(?:#(?.*))?\\)$")); + if (match) { + const { region , file , lang } = match.groups; + mdState.consumeLine(); + pushSnippetToken(mdState, mdState.env.resolve(file), region, lang); + return true; + } + } + if (line.startsWith("```snippet")) { + var _fenceline_match, _line_next, _snippet_regions; + const fenceline = line.string(); + let rawPath = (_fenceline_match = fenceline.match(/```snippet\s+\{(.*)\}/)) === null || _fenceline_match === void 0 ? void 0 : _fenceline_match[1]; + if (silent) { + return true; + } + const fenceContent = (_line_next = line.next) === null || _line_next === void 0 ? void 0 : _line_next.until((line)=>{ + var _line_slice; + return ((_line_slice = line.slice()) === null || _line_slice === void 0 ? void 0 : _line_slice.trim()) === "```"; + }); + if (!fenceContent) { + return false; + } + const token = state.push("html_block", "", 0); + if (!(rawPath === null || rawPath === void 0 ? void 0 : rawPath.startsWith("#"))) { + token.content = error(`Invalid region attribute "${rawPath}"`); + return true; + } + let regionName = rawPath.slice(1); + const filename = mdState.env.resolve(fenceContent.trim()); + if (!existsSync(filename)) { + token.content = mdState.error(`File "${filename}" does not exist`); + return true; + } + let content = readFileSync(filename, "utf8"); + if (!regionName) { + content = `// #region all\n${content}\n// #endregion\n`; + regionName = "all"; + } + let snippet; + try { + snippet = Snippet(content); + } catch (e) { + var _e_stack; + token.content = error(`Invalid source file: ${codeForError((_e_stack = e.stack) !== null && _e_stack !== void 0 ? _e_stack : "missing stack trace")}\n\nCode:\n\n${codeForError(content)}`); + return true; + } + const region = (_snippet_regions = snippet.regions) === null || _snippet_regions === void 0 ? void 0 : _snippet_regions.get(regionName); + if (region === undefined) { + token.content = error(`Invalid region name: ${regionName}\n\n${codeForError(fenceContent)}`); + return true; + } + token.content = highlightRegion({ + state: mdState, + filename, + region, + complete: snippet, + lang: undefined + }); + return true; + } + return false; + }; + md.block.ruler.before("fence", "snippet", parser); +} +function pushSnippetToken(state, filename, regionName, lang) { + const token = state.open(); + if (!existsSync(filename)) { + token.content = state.error(`File "${filename}" does not exist`); + return true; + } + const content = readFileSync(filename, "utf8"); + let snippet; + try { + snippet = Snippet(content); + } catch (e) { + var _e_stack; + token.content = error(`Invalid source file: ${codeForError((_e_stack = e.stack) !== null && _e_stack !== void 0 ? _e_stack : "missing stack trace")}\n\nCode:\n\n${codeForError(content)}`); + return true; + } + if (regionName === null || regionName === void 0 ? void 0 : regionName.trim()) { + var _snippet_regions; + const region = (_snippet_regions = snippet.regions) === null || _snippet_regions === void 0 ? void 0 : _snippet_regions.get(regionName); + if (region === undefined) { + token.content = error(`Invalid region name: ${regionName}\n\n${codeForError(filename)}`); + return true; + } + token.content = highlightRegion({ + state, + filename, + region, + complete: snippet, + lang + }); + } else { + token.content = highlight(state, filename, snippet); + } + return token; +} +function highlightRegion({ state , filename , region , complete , lang }) { + if (lang) { + if (lang !== "js" && lang !== "ts") { + return error(`Invalid language "${lang}" (must be one of ts or js)\n\n${codeForError(region.js.code)}`); + } + const fenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: lang, + env: state.env + }).highlight(state.highlight); + return `
${fenced}
`; + } + const tsFenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: "ts", + env: state.env + }).highlight(state.highlight); + if (region.ts.code === region.js.code) { + return `
${tsFenced}
`; + } + const jsFenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: "js", + env: state.env + }).highlight(state.highlight); + return ``; +} +function highlight(state, filename, region) { + const tsFenced = highlightLang(state, { + filename, + lang: "ts", + code: region.ts.code, + highlights: [], + prefix: "" + }); + if (region.ts.code === region.js.code) { + return `
${tsFenced}
`; + } + const jsFenced = highlightLang(state, { + filename, + lang: "js", + code: region.js.code, + highlights: [], + prefix: "" + }); + return ``; +} +function highlightLang(state, { code , lang , filename , highlights , prefix , postfix }) { + var _state_highlight; + const attr = highlights && highlights.length > 0 ? `{${highlights.map((h)=>h.lines).join(",")}}` : ""; + const output = []; + if (prefix) { + output.push(prefix, "// ---cut---"); + } + output.push(code); + if (postfix) { + output.push("// ---cut-after---", postfix); + } + const source = output.join("\n").trimEnd(); + const highlighted = (_state_highlight = state.highlight) === null || _state_highlight === void 0 ? void 0 : _state_highlight.call(state, source, `tsx twoslash`, `filename="${encodeURIComponent(filename)}" lang=${lang} ${attr}`); + return `
${highlighted}
`; +} +function error(message) { + return `
${message}
`; +} +function normalize(data) { + // escape < and > + return breakable(data).replace(//g, ">"); +} +function breakable(data) { + // add a wbr around `/` + return data.replace(/\//g, "/"); +} +function codeForError(code) { + // escape the code + return stripAnsi(code).replace(//g, ">"); +} + + +//# sourceMappingURL=markdown-it.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/markdown-it.js.map b/packages/@starbeam-docs/snippets/dist/markdown-it.js.map new file mode 100644 index 0000000..14040ba --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/markdown-it.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/markdown-it.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB;AAC9B,OAAO,aAIA,eAAe;AACtB,SAAS,UAAU,EAAE,YAAY,QAAQ,UAAU;AAEnD,OAAO,eAAe,aAAa;AAEnC,SAAS,oBAAoB,QAAQ,gCAAgC;AACrE,SAAS,OAAO,QAAQ,aAAa;AAErC,OAAO,SAAS,cAAc,EAAc,EAAE,MAAc,EAAE;IAC5D,MAAM,SAAoB,CACxB,OACA,WACA,UACA,SACY;QACZ,MAAM,UAAU,IAAI,QAAQ,IAAI;QAChC,MAAM,OAAO,QAAQ,IAAI,CAAC;QAE1B,IAAI,KAAK,WAAW,EAAE;YACpB,OAAO,KAAK;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,UAAU,CAAC,OAAO;YACzB,MAAM,UAAU,KAAK,MAAM;YAE3B,qBAAqB;YACrB,MAAM,QAAQ,QAAQ,KAAK,CACzB;YAGF,IAAI,OAAO;gBACT,MAAM,EAAE,OAAM,EAAE,KAAI,EAAE,KAAI,EAAE,GAAG,MAAM,MAAM;gBAM3C,QAAQ,WAAW;gBACnB,iBACE,SACA,QAAQ,GAAG,CAAC,OAAO,CAAC,OACpB,QACA;gBAEF,OAAO,IAAI;YACb,CAAC;QACH,CAAC;QACD,IAAI,KAAK,UAAU,CAAC,eAAe;gBAGnB,kBAQO,YAgDN;YA1Df,MAAM,YAAY,KAAK,MAAM;YAE7B,IAAI,UAAU,CAAA,mBAAA,UAAU,KAAK,CAC3B,sCADY,8BAAA,KAAA,IAAA,gBAEX,CAAC,EAAE;YAEN,IAAI,QAAQ;gBACV,OAAO,IAAI;YACb,CAAC;YAED,MAAM,eAAe,CAAA,aAAA,KAAK,IAAI,cAAT,wBAAA,KAAA,IAAA,WAAW,MAC9B,CAAC;oBAAS;gBAAA,OAAA,CAAA,CAAA,cAAA,KAAK,KAAK,gBAAV,yBAAA,KAAA,IAAA,YAAc,YAAW;;YAGrC,IAAI,CAAC,cAAc;gBACjB,OAAO,KAAK;YACd,CAAC;YAED,MAAM,QAAQ,MAAM,IAAI,CAAC,cAAc,IAAI;YAE3C,IAAI,EAAC,oBAAA,qBAAA,KAAA,IAAA,QAAS,UAAU,CAAC,OAAM;gBAC7B,MAAM,OAAO,GAAG,MACd,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBAEzC,OAAO,IAAI;YACb,CAAC;YAED,IAAI,aAAa,QAAQ,KAAK,CAAC;YAE/B,MAAM,WAAW,QAAQ,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI;YAEtD,IAAI,CAAC,WAAW,WAAW;gBACzB,MAAM,OAAO,GAAG,QAAQ,KAAK,CAC3B,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC;gBAErC,OAAO,IAAI;YACb,CAAC;YAED,IAAI,UAAU,aAAa,UAAU;YAErC,IAAI,CAAC,YAAY;gBACf,UAAU,CAAC,gBAAgB,EAAE,QAAQ,iBAAiB,CAAC;gBACvD,aAAa;YACf,CAAC;YAED,IAAI;YAEJ,IAAI;gBACF,UAAU,QAAQ;YACpB,EAAE,OAAO,GAAG;oBAGN;gBAFJ,MAAM,OAAO,GAAG,MACd,CAAC,qBAAqB,EAAE,aACtB,CAAA,WAAA,AAAC,EAAY,KAAK,cAAlB,sBAAA,WAAsB,qBAAqB,EAC3C,aAAa,EAAE,aAAa,SAAS,CAAC;gBAE1C,OAAO,IAAI;YACb;YAEA,MAAM,SAAS,CAAA,mBAAA,QAAQ,OAAO,cAAf,8BAAA,KAAA,IAAA,iBAAiB,IAAI;YAEpC,IAAI,WAAW,WAAW;gBACxB,MAAM,OAAO,GAAG,MACd,CAAC,qBAAqB,EAAE,WAAW,IAAI,EAAE,aACvC,cACA,CAAC;gBAEL,OAAO,IAAI;YACb,CAAC;YAED,MAAM,OAAO,GAAG,gBAAgB;gBAC9B,OAAO;gBACP;gBACA;gBACA,UAAU;gBACV,MAAM;YACR;YAEA,OAAO,IAAI;QACb,CAAC;QAED,OAAO,KAAK;IACd;IAEA,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,WAAW;AAC5C,CAAC;AAED,SAAS,iBACP,KAAc,EACd,QAAgB,EAChB,UAA8B,EAC9B,IAAwB,EACxB;IACA,MAAM,QAAQ,MAAM,IAAI;IAExB,IAAI,CAAC,WAAW,WAAW;QACzB,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC;QAErC,OAAO,IAAI;IACb,CAAC;IAED,MAAM,UAAU,aAAa,UAAU;IAEvC,IAAI;IAEJ,IAAI;QACF,UAAU,QAAQ;IACpB,EAAE,OAAO,GAAG;YAGN;QAFJ,MAAM,OAAO,GAAG,MACd,CAAC,qBAAqB,EAAE,aACtB,CAAA,WAAA,AAAC,EAAY,KAAK,cAAlB,sBAAA,WAAsB,qBAAqB,EAC3C,aAAa,EAAE,aAAa,SAAS,CAAC;QAE1C,OAAO,IAAI;IACb;IAEA,IAAI,uBAAA,wBAAA,KAAA,IAAA,WAAY,IAAI,IAAI;YACP;QAAf,MAAM,SAAS,CAAA,mBAAA,QAAQ,OAAO,cAAf,8BAAA,KAAA,IAAA,iBAAiB,IAAI;QAEpC,IAAI,WAAW,WAAW;YACxB,MAAM,OAAO,GAAG,MACd,CAAC,qBAAqB,EAAE,WAAW,IAAI,EAAE,aACvC,UACA,CAAC;YAEL,OAAO,IAAI;QACb,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB;YAC9B;YACA;YACA;YACA,UAAU;YACV;QACF;IACF,OAAO;QACL,MAAM,OAAO,GAAG,UAAU,OAAO,UAAU;IAC7C,CAAC;IAED,OAAO;AACT;AAEA,SAAS,gBAAgB,EACvB,MAAK,EACL,SAAQ,EACR,OAAM,EACN,SAAQ,EACR,KAAI,EAOL,EAAU;IACT,IAAI,MAAM;QACR,IAAI,SAAS,QAAQ,SAAS,MAAM;YAClC,OAAO,MACL,CAAC,kBAAkB,EAAE,KAAK,+BAA+B,EAAE,aACzD,OAAO,EAAE,CAAC,IAAI,EACd,CAAC;QAEP,CAAC;QAED,MAAM,SAAS,qBAAqB,MAAM,CAAC;YACzC;YACA;YACA,QAAQ;YACR,MAAM;YACN,KAAK,MAAM,GAAG;QAChB,GAAG,SAAS,CAAC,MAAM,SAAS;QAE5B,OAAO,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC;IAC3E,CAAC;IAED,MAAM,WAAW,qBAAqB,MAAM,CAAC;QAC3C;QACA;QACA,QAAQ;QACR,MAAM;QACN,KAAK,MAAM,GAAG;IAChB,GAAG,SAAS,CAAC,MAAM,SAAS;IAE5B,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,IAAI,EAAE;QACrC,OAAO,CAAC,kDAAkD,EAAE,SAAS,UAAU,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,qBAAqB,MAAM,CAAC;QAC3C;QACA;QACA,QAAQ;QACR,MAAM;QACN,KAAK,MAAM,GAAG;IAChB,GAAG,SAAS,CAAC,MAAM,SAAS;IAE5B,OAAO,CAAC,oBAAoB,EAAE,SAAS,yBAAyB,EAAE,SAAS,kBAAkB,CAAC;AAChG;AAEA,SAAS,UACP,KAAc,EACd,QAAgB,EAChB,MAAgB,EAChB;IACA,MAAM,WAAW,cAAc,OAAO;QACpC;QACA,MAAM;QACN,MAAM,OAAO,EAAE,CAAC,IAAI;QACpB,YAAY,EAAE;QACd,QAAQ;IACV;IAEA,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,IAAI,EAAE;QACrC,OAAO,CAAC,kDAAkD,EAAE,SAAS,UAAU,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,cAAc,OAAO;QACpC;QACA,MAAM;QACN,MAAM,OAAO,EAAE,CAAC,IAAI;QACpB,YAAY,EAAE;QACd,QAAQ;IACV;IAEA,OAAO,CAAC,oBAAoB,EAAE,SAAS,yBAAyB,EAAE,SAAS,kBAAkB,CAAC;AAChG;AAEA,SAAS,cACP,KAAc,EACd,EACE,KAAI,EACJ,KAAI,EACJ,SAAQ,EACR,WAAU,EACV,OAAM,EACN,QAAO,EAQR,EACO;QAmBY;IAlBpB,MAAM,OACJ,cAAc,WAAW,MAAM,GAAG,IAC9B,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,IAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE;IAER,MAAM,SAAS,EAAE;IAEjB,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;IAEZ,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,sBAAsB;IACpC,CAAC;IAED,MAAM,SAAS,OAAO,IAAI,CAAC,MAAM,OAAO;IACxC,MAAM,cAAc,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,KAAA,IAAA,iBAAA,KAAA,OAClB,QACA,CAAC,YAAY,CAAC,EACd,CAAC,UAAU,EAAE,mBACX,UACA,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAG3B,OAAO,CAAC,+BAA+B,EAAE,YAAY,aAAa,CAAC;AACrE;AAEA,SAAS,MAAM,OAAe,EAAE;IAC9B,OAAO,CAAC,mEAAmE,EAAE,QAAQ,mBAAmB,CAAC;AAC3G;AAEA,SAAS,UAAU,IAAY,EAAE;IAC/B,iBAAiB;IACjB,OAAO,UAAU,MACd,OAAO,CAAC,MAAM,QACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,UAAU,IAAY,EAAE;IAC/B,uBAAuB;IACvB,OAAO,KAAK,OAAO,CAAC,OAAO;AAC7B;AAEA,SAAS,aAAa,IAAY,EAAE;IAClC,kBAAkB;IAClB,OAAO,UAAU,MACd,OAAO,CAAC,MAAM,QACd,OAAO,CAAC,MAAM;AACnB","file":"markdown-it.js","sourcesContent":["import type { RuleBlock } from \"@jsergo/mdit\";\nimport \"@mdit-vue/plugin-sfc\";\nimport Snippet, {\n Snippets,\n type Highlight,\n type Region,\n} from \"docs-snippet\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport type MarkdownIt from \"markdown-it\";\nimport stripAnsi from \"strip-ansi\";\nimport type { VitepressStateBlock } from \"./env.js\";\nimport { RenderLanguageRegion } from \"./snippets/language-region.js\";\nimport { MDState } from \"./utils.js\";\n\nexport function snippetPlugin(md: MarkdownIt, srcDir: string) {\n const parser: RuleBlock = (\n state: VitepressStateBlock,\n startLine,\n _endLine,\n silent\n ): boolean => {\n const mdState = new MDState(md, state);\n const line = mdState.line(startLine);\n\n if (line.isCodeBlock) {\n return false;\n }\n\n // The syntax is `!(./-snippets/cell.ts#cell)\n if (line.startsWith(\"!(\")) {\n const snippet = line.string();\n\n // use named captures\n const match = snippet.match(\n /^!\\((?:(?[a-z-]+):)?(?(.*?))(?:#(?.*))?\\)$/\n );\n\n if (match) {\n const { region, file, lang } = match.groups as {\n lang: string | undefined;\n region: string | undefined;\n file: string;\n };\n\n mdState.consumeLine();\n pushSnippetToken(\n mdState,\n mdState.env.resolve(file),\n region,\n lang\n );\n return true;\n }\n }\n if (line.startsWith(\"```snippet\")) {\n const fenceline = line.string();\n\n let rawPath = fenceline.match(\n /```snippet\\s+\\{(.*)\\}/\n )?.[1] as string | undefined;\n\n if (silent) {\n return true;\n }\n\n const fenceContent = line.next?.until(\n (line) => line.slice()?.trim() === \"```\"\n );\n\n if (!fenceContent) {\n return false;\n }\n\n const token = state.push(\"html_block\", \"\", 0);\n\n if (!rawPath?.startsWith(\"#\")) {\n token.content = error(\n `Invalid region attribute \"${rawPath}\"`\n );\n return true;\n }\n\n let regionName = rawPath.slice(1);\n\n const filename = mdState.env.resolve(fenceContent.trim());\n\n if (!existsSync(filename)) {\n token.content = mdState.error(\n `File \"${filename}\" does not exist`\n );\n return true;\n }\n\n let content = readFileSync(filename, \"utf8\");\n\n if (!regionName) {\n content = `// #region all\\n${content}\\n// #endregion\\n`;\n regionName = \"all\";\n }\n\n let snippet: Snippets;\n\n try {\n snippet = Snippet(content);\n } catch (e) {\n token.content = error(\n `Invalid source file: ${codeForError(\n (e as Error).stack ?? \"missing stack trace\"\n )}\\n\\nCode:\\n\\n${codeForError(content)}`\n );\n return true;\n }\n\n const region = snippet.regions?.get(regionName);\n\n if (region === undefined) {\n token.content = error(\n `Invalid region name: ${regionName}\\n\\n${codeForError(\n fenceContent\n )}`\n );\n return true;\n }\n\n token.content = highlightRegion({\n state: mdState,\n filename,\n region,\n complete: snippet,\n lang: undefined,\n });\n\n return true;\n }\n\n return false;\n };\n\n md.block.ruler.before(\"fence\", \"snippet\", parser);\n}\n\nfunction pushSnippetToken(\n state: MDState,\n filename: string,\n regionName: string | undefined,\n lang: string | undefined\n) {\n const token = state.open();\n\n if (!existsSync(filename)) {\n token.content = state.error(\n `File \"${filename}\" does not exist`\n );\n return true;\n }\n\n const content = readFileSync(filename, \"utf8\");\n\n let snippet: Snippets;\n\n try {\n snippet = Snippet(content);\n } catch (e) {\n token.content = error(\n `Invalid source file: ${codeForError(\n (e as Error).stack ?? \"missing stack trace\"\n )}\\n\\nCode:\\n\\n${codeForError(content)}`\n );\n return true;\n }\n\n if (regionName?.trim()) {\n const region = snippet.regions?.get(regionName);\n\n if (region === undefined) {\n token.content = error(\n `Invalid region name: ${regionName}\\n\\n${codeForError(\n filename\n )}`\n );\n return true;\n }\n\n token.content = highlightRegion({\n state,\n filename,\n region,\n complete: snippet,\n lang,\n });\n } else {\n token.content = highlight(state, filename, snippet);\n }\n\n return token;\n}\n\nfunction highlightRegion({\n state,\n filename,\n region,\n complete,\n lang,\n}: {\n state: MDState;\n filename: string;\n region: Region;\n complete: Snippets;\n lang: string | undefined;\n}): string {\n if (lang) {\n if (lang !== \"js\" && lang !== \"ts\") {\n return error(\n `Invalid language \"${lang}\" (must be one of ts or js)\\n\\n${codeForError(\n region.js.code\n )}`\n );\n }\n\n const fenced = RenderLanguageRegion.create({\n filename,\n region,\n parsed: complete,\n kind: lang,\n env: state.env,\n }).highlight(state.highlight);\n\n return `
${fenced}
`;\n }\n\n const tsFenced = RenderLanguageRegion.create({\n filename,\n region,\n parsed: complete,\n kind: \"ts\",\n env: state.env,\n }).highlight(state.highlight);\n\n if (region.ts.code === region.js.code) {\n return `
${tsFenced}
`;\n }\n\n const jsFenced = RenderLanguageRegion.create({\n filename,\n region,\n parsed: complete,\n kind: \"js\",\n env: state.env,\n }).highlight(state.highlight);\n\n return ``;\n}\n\nfunction highlight(\n state: MDState,\n filename: string,\n region: Snippets\n) {\n const tsFenced = highlightLang(state, {\n filename,\n lang: \"ts\",\n code: region.ts.code,\n highlights: [],\n prefix: \"\",\n });\n\n if (region.ts.code === region.js.code) {\n return `
${tsFenced}
`;\n }\n\n const jsFenced = highlightLang(state, {\n filename,\n lang: \"js\",\n code: region.js.code,\n highlights: [],\n prefix: \"\",\n });\n\n return ``;\n}\n\nfunction highlightLang(\n state: MDState,\n {\n code,\n lang,\n filename,\n highlights,\n prefix,\n postfix,\n }: {\n code: string;\n lang: \"ts\" | \"js\";\n filename: string;\n highlights?: Highlight[];\n prefix?: string;\n postfix?: string;\n }\n): string {\n const attr =\n highlights && highlights.length > 0\n ? `{${highlights.map((h) => h.lines).join(\",\")}}`\n : \"\";\n\n const output = [];\n\n if (prefix) {\n output.push(prefix, \"// ---cut---\");\n }\n\n output.push(code);\n\n if (postfix) {\n output.push(\"// ---cut-after---\", postfix);\n }\n\n const source = output.join(\"\\n\").trimEnd();\n const highlighted = state.highlight?.(\n source,\n `tsx twoslash`,\n `filename=\"${encodeURIComponent(\n filename\n )}\" lang=${lang} ${attr}`\n );\n\n return `
${highlighted}
`;\n}\n\nfunction error(message: string) {\n return `
${message}
`;\n}\n\nfunction normalize(data: string) {\n // escape < and >\n return breakable(data)\n .replace(//g, \">\");\n}\n\nfunction breakable(data: string) {\n // add a wbr around `/`\n return data.replace(/\\//g, \"/\");\n}\n\nfunction codeForError(code: string) {\n // escape the code\n return stripAnsi(code)\n .replace(//g, \">\");\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/snippets/language-region.js b/packages/@starbeam-docs/snippets/dist/snippets/language-region.js new file mode 100644 index 0000000..0963404 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/snippets/language-region.js @@ -0,0 +1,168 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return fn; +} +function _classPrivateMethodInit(obj, privateSet) { + _checkPrivateRedeclaration(obj, privateSet); + privateSet.add(obj); +} +var _kind = /*#__PURE__*/ new WeakMap(), _region = /*#__PURE__*/ new WeakMap(), _parsed = /*#__PURE__*/ new WeakMap(), _source = /*#__PURE__*/ new WeakMap(), _filename = /*#__PURE__*/ new WeakMap(), _env = /*#__PURE__*/ new WeakMap(), _attr = /*#__PURE__*/ new WeakMap(), _highlights = /*#__PURE__*/ new WeakMap(), _dts = /*#__PURE__*/ new WeakMap(), _prefix = /*#__PURE__*/ new WeakSet(), _postfix = /*#__PURE__*/ new WeakSet(); +export class RenderLanguageRegion { + static create({ filename , region , parsed , kind , env }) { + const lang = region[kind]; + const source = parsed[kind]; + return new RenderLanguageRegion({ + kind, + region: lang, + parsed, + source, + filename, + env + }); + } + highlight(highlight) { + const code = _classPrivateFieldGet(this, _region).code; + const prefix1 = _classPrivateMethodGet(this, _prefix, prefix).call(this); + const postfix1 = _classPrivateMethodGet(this, _postfix, postfix).call(this); + const output = []; + if (_classPrivateFieldGet(this, _kind) === "js") { + output.push("// @noErrors"); + } + if (prefix1) { + output.push(prefix1); + } + if (_classPrivateFieldGet(this, _kind) === "js") { + const dts = _classPrivateFieldGet(this, _dts); + if (dts) { + output.push(dts.code); + } + } + if (prefix1 || _classPrivateFieldGet(this, _kind) === "js") { + output.push("// ---cut---"); + } + output.push(code); + if (postfix1) { + output.push("// ---cut-after---", postfix1); + } + const source = output.join("\n").trimEnd(); + var _highlight; + return (_highlight = highlight === null || highlight === void 0 ? void 0 : highlight(source, "tsx twoslash", _classPrivateFieldGet(this, _attr))) !== null && _highlight !== void 0 ? _highlight : `
// @jsxImportSource: preact\n${code}
`; + } + constructor({ kind , region , parsed , source , filename , env }){ + _classPrivateFieldInit(this, _attr, { + get: get_attr, + set: void 0 + }); + _classPrivateFieldInit(this, _highlights, { + get: get_highlights, + set: void 0 + }); + _classPrivateFieldInit(this, _dts, { + get: get_dts, + set: void 0 + }); + _classPrivateMethodInit(this, _prefix); + _classPrivateMethodInit(this, _postfix); + _classPrivateFieldInit(this, _kind, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _region, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _parsed, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _source, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _filename, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _env, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _kind, kind); + _classPrivateFieldSet(this, _region, region); + _classPrivateFieldSet(this, _parsed, parsed); + _classPrivateFieldSet(this, _source, source); + _classPrivateFieldSet(this, _filename, filename); + _classPrivateFieldSet(this, _env, env); + } +} +function get_attr() { + const attrs = []; + const highlights = _classPrivateFieldGet(this, _highlights); + if (highlights && highlights.length > 0) { + attrs.push(`{${highlights.map((h)=>h.lines).join(",")}}`); + } + attrs.push(`filename=${JSON.stringify(_classPrivateFieldGet(this, _filename))} lang=${_classPrivateFieldGet(this, _kind)}`); + return attrs.join(" "); +} +function get_highlights() { + return _classPrivateFieldGet(this, _region).highlights; +} +function get_dts() { + const regions = _classPrivateFieldGet(this, _parsed).ts.regions; + if (regions) { + return regions["dts"]; + } +} +function prefix() { + const lines = _classPrivateFieldGet(this, _source).code.split("\n"); + return lines.slice(0, _classPrivateFieldGet(this, _region).offsets.start).join("\n"); +} +function postfix() { + const lines = _classPrivateFieldGet(this, _source).code.split("\n"); + return lines.slice(_classPrivateFieldGet(this, _region).offsets.end).join("\n"); +} + + +//# sourceMappingURL=language-region.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/snippets/language-region.js.map b/packages/@starbeam-docs/snippets/dist/snippets/language-region.js.map new file mode 100644 index 0000000..e4797d9 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/snippets/language-region.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../src/snippets/language-region.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCW,qCACA,uCACA,uCACA,uCACA,yCACA,oCAyBL,qCAsDA,2CAIA,oCAQJ,uCAKA;AAhIF,OAAO,MAAM;IACX,OAAO,OAAO,EACZ,SAAQ,EACR,OAAM,EACN,OAAM,EACN,KAAI,EACJ,IAAG,EAOJ,EAAE;QACD,MAAM,OAAO,MAAM,CAAC,KAAK;QACzB,MAAM,SAAS,MAAM,CAAC,KAAK;QAE3B,OAAO,IAAI,qBAAqB;YAC9B;YACA,QAAQ;YACR;YACA;YACA;YACA;QACF;IACF;IA6CA,UAAU,SAAyC,EAAE;QACnD,MAAM,OAAO,sBAAA,IAAI,EAAE,SAAO,IAAI;QAC9B,MAAM,UAAS,uBAAA,IAAI,EAAE,SAAA,aAAN,IAAI;QACnB,MAAM,WAAU,uBAAA,IAAI,EAAE,UAAA,cAAN,IAAI;QAEpB,MAAM,SAAS,EAAE;QAEjB,IAAI,sBAAA,IAAI,EAAE,WAAS,MAAM;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,SAAQ;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,sBAAA,IAAI,EAAE,WAAS,MAAM;YACvB,MAAM,4BAAM,IAAI,EAAE;YAElB,IAAI,KAAK;gBACP,OAAO,IAAI,CAAC,IAAI,IAAI;YACtB,CAAC;QACH,CAAC;QAED,IAAI,WAAU,sBAAA,IAAI,EAAE,WAAS,MAAM;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;QAEZ,IAAI,UAAS;YACX,OAAO,IAAI,CAAC,sBAAsB;QACpC,CAAC;QAED,MAAM,SAAS,OAAO,IAAI,CAAC,MAAM,OAAO;YAGtC;QADF,OACE,CAAA,aAAA,sBAAA,uBAAA,KAAA,IAAA,UAAY,QAAQ,sCAAgB,IAAI,EAAE,qBAA1C,wBAAA,aACA,CAAC,4DAA4D,EAAE,KAAK,aAAa,CAAC;IAEtF;IA3EA,YAAoB,EAClB,KAAI,EACJ,OAAM,EACN,OAAM,EACN,OAAM,EACN,SAAQ,EACR,IAAG,EAQJ,CAAE;QASH,6BAAI;iBAAJ;;;QAsDA,6BAAI;iBAAJ;;;QAIA,6BAAI;iBAAJ;;;QAQA,8BAAA;QAKA,8BAAA;QArGA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCAiBQ,OAAO;oCACP,SAAS;oCACT,SAAS;oCACT,SAAS;oCACT,WAAW;oCACX,MAAM;IACd;AA6EF,CAAC;AA3EC,SAAA,WAAY;IACV,MAAM,QAAkB,EAAE;IAE1B,MAAM,mCAAa,IAAI,EAAE;IACzB,IAAI,cAAc,WAAW,MAAM,GAAG,GAAG;QACvC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,IAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,SAAS,uBAAC,IAAI,EAAE,YAAU,MAAM,wBAAE,IAAI,EAAE,OAAK,CAAC;IAE1E,OAAO,MAAM,IAAI,CAAC;AACpB;AA2CA,SAAA,iBAA2C;IACzC,OAAO,sBAAA,IAAI,EAAE,SAAO,UAAU;AAChC;AAEA,SAAA,UAAkC;IAChC,MAAM,UAAU,sBAAA,IAAI,EAAE,SAAO,EAAE,CAAC,OAAO;IAEvC,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,MAAM;IACvB,CAAC;AACH;AAEA,SAAA,SAAU;IACR,MAAM,QAAQ,sBAAA,IAAI,EAAE,SAAO,IAAI,CAAC,KAAK,CAAC;IACtC,OAAO,MAAM,KAAK,CAAC,GAAG,sBAAA,IAAI,EAAE,SAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACzD;AAEA,SAAA,UAAW;IACT,MAAM,QAAQ,sBAAA,IAAI,EAAE,SAAO,IAAI,CAAC,KAAK,CAAC;IACtC,OAAO,MAAM,KAAK,CAAC,sBAAA,IAAI,EAAE,SAAO,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;AACpD","file":"language-region.js","sourcesContent":["import type {\n Highlight,\n LanguageRegion,\n Region,\n Snippets,\n Source,\n} from \"docs-snippet\";\nimport type { HighlightFn, StateEnv } from \"../utils.js\";\n\nexport class RenderLanguageRegion {\n static create({\n filename,\n region,\n parsed,\n kind,\n env,\n }: {\n region: Region;\n parsed: Snippets;\n kind: \"ts\" | \"js\";\n filename: string;\n env: StateEnv;\n }) {\n const lang = region[kind];\n const source = parsed[kind];\n\n return new RenderLanguageRegion({\n kind,\n region: lang,\n parsed,\n source,\n filename,\n env,\n });\n }\n\n readonly #kind: \"ts\" | \"js\";\n readonly #region: LanguageRegion;\n readonly #parsed: Snippets;\n readonly #source: Source;\n readonly #filename: string;\n readonly #env: StateEnv;\n\n private constructor({\n kind,\n region,\n parsed,\n source,\n filename,\n env,\n }: {\n kind: \"ts\" | \"js\";\n region: LanguageRegion;\n parsed: Snippets;\n source: Source;\n filename: string;\n env: StateEnv;\n }) {\n this.#kind = kind;\n this.#region = region;\n this.#parsed = parsed;\n this.#source = source;\n this.#filename = filename;\n this.#env = env;\n }\n\n get #attr() {\n const attrs: string[] = [];\n\n const highlights = this.#highlights;\n if (highlights && highlights.length > 0) {\n attrs.push(`{${highlights.map((h) => h.lines).join(\",\")}}`);\n }\n\n attrs.push(`filename=${JSON.stringify(this.#filename)} lang=${this.#kind}`);\n\n return attrs.join(\" \");\n }\n\n highlight(highlight: HighlightFn | null | undefined) {\n const code = this.#region.code;\n const prefix = this.#prefix();\n const postfix = this.#postfix();\n\n const output = [];\n\n if (this.#kind === \"js\") {\n output.push(\"// @noErrors\");\n }\n\n if (prefix) {\n output.push(prefix);\n }\n\n if (this.#kind === \"js\") {\n const dts = this.#dts;\n\n if (dts) {\n output.push(dts.code);\n }\n }\n\n if (prefix || this.#kind === \"js\") {\n output.push(\"// ---cut---\");\n }\n\n output.push(code);\n\n if (postfix) {\n output.push(\"// ---cut-after---\", postfix);\n }\n\n const source = output.join(\"\\n\").trimEnd();\n\n return (\n highlight?.(source, \"tsx twoslash\", this.#attr) ??\n `
// @jsxImportSource: preact\\n${code}
`\n );\n }\n\n get #highlights(): Highlight[] | undefined {\n return this.#region.highlights;\n }\n\n get #dts(): LanguageRegion | void {\n const regions = this.#parsed.ts.regions;\n\n if (regions) {\n return regions[\"dts\"];\n }\n }\n\n #prefix() {\n const lines = this.#source.code.split(\"\\n\");\n return lines.slice(0, this.#region.offsets.start).join(\"\\n\");\n }\n\n #postfix() {\n const lines = this.#source.code.split(\"\\n\");\n return lines.slice(this.#region.offsets.end).join(\"\\n\");\n }\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/utils.js b/packages/@starbeam-docs/snippets/dist/utils.js new file mode 100644 index 0000000..4dfd5ec --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/utils.js @@ -0,0 +1,235 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} +function _classPrivateFieldInit(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} +import { dirname, relative, resolve } from "node:path"; +var _state = /*#__PURE__*/ new WeakMap(), _md = /*#__PURE__*/ new WeakMap(); +export class MDState { + line(lineno) { + return new LineState(_classPrivateFieldGet(this, _state), lineno); + } + consumeLine() { + _classPrivateFieldGet(this, _state).line = _classPrivateFieldGet(this, _state).line + 1; + } + get highlight() { + return _classPrivateFieldGet(this, _md).options.highlight; + } + get md() { + return _classPrivateFieldGet(this, _md); + } + get env() { + return new StateEnv(_classPrivateFieldGet(this, _state).env); + } + open() { + return _classPrivateFieldGet(this, _state).push("html_block", "", 0); + } + render(content) { + return _classPrivateFieldGet(this, _md).render(content, _classPrivateFieldGet(this, _state).env); + } + error(message) { + return `
${message}
`; + } + constructor(md, state){ + _classPrivateFieldInit(this, _state, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _md, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _state, state); + _classPrivateFieldSet(this, _md, md); + } +} +var _env = /*#__PURE__*/ new WeakMap(); +export class StateEnv { + get path() { + return _classPrivateFieldGet(this, _env).relativePath; + } + resolve(relativeFile) { + return resolve(dirname(_classPrivateFieldGet(this, _env).path), relativeFile); + } + get vitepressRoot() { + return relative(_classPrivateFieldGet(this, _env).path, _classPrivateFieldGet(this, _env).relativePath); + } + get absolutePath() { + return _classPrivateFieldGet(this, _env).path; + } + constructor(env){ + _classPrivateFieldInit(this, _env, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _env, env); + } +} +var _state1 = /*#__PURE__*/ new WeakMap(), _startLine = /*#__PURE__*/ new WeakMap(), _src = /*#__PURE__*/ new WeakMap(), _totalIndent = /*#__PURE__*/ new WeakMap(), _requiredIndent = /*#__PURE__*/ new WeakMap(); +export class LineState { + get next() { + if (_classPrivateFieldGet(this, _startLine) < _classPrivateFieldGet(this, _state1).lineMax) { + return new LineState(_classPrivateFieldGet(this, _state1), _classPrivateFieldGet(this, _startLine) + 1); + } else { + return undefined; + } + } + get position() { + return { + pos: this.contentStart, + max: this.end + }; + } + consume() { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(this, _startLine) + 1; + return new LineState(_classPrivateFieldGet(this, _state1), _classPrivateFieldGet(this, _startLine) + 1); + } + until(predicate) { + let line = this; + let lines = []; + while(line){ + const next = line.next; + if (!next) { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(line, _startLine) + 1; + break; + } + lines.push(line.string({ + ws: true + })); + line = next; + if (predicate(next)) { + _classPrivateFieldGet(this, _state1).line = _classPrivateFieldGet(next, _startLine) + 1; + break; + } + } + return lines.join("\n"); + } + string({ ws =false } = {}) { + return _classPrivateFieldGet(this, _src).slice(ws ? this.start : this.contentStart, this.end); + } + startsWith(chars) { + return this.slice(chars.length) === chars; + } + slice(n = this.end - this.contentStart) { + if (n > this.end - this.contentStart) { + return undefined; + } + const pos = this.contentStart; + let chars = ""; + for(let i = 0; i < n; ++i){ + chars += _classPrivateFieldGet(this, _src).charAt(pos + i); + } + return chars; + } + /** + * The indent of the line, excluding the required indent. + */ get indent() { + return _classPrivateFieldGet(this, _totalIndent) - _classPrivateFieldGet(this, _requiredIndent); + } + /** + * if it's indented more than 3 spaces, it's a code block + */ get isCodeBlock() { + return this.indent >= 4; + } + get start() { + var _classPrivateFieldGet_bMarks__classPrivateFieldGet; + return (_classPrivateFieldGet_bMarks__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).bMarks[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_bMarks__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_bMarks__classPrivateFieldGet : 0; + } + get wsChars() { + var _classPrivateFieldGet_tShift__classPrivateFieldGet; + return (_classPrivateFieldGet_tShift__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).tShift[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_tShift__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_tShift__classPrivateFieldGet : 0; + } + get contentStart() { + return this.start + this.wsChars; + } + get end() { + var _classPrivateFieldGet_eMarks__classPrivateFieldGet; + return (_classPrivateFieldGet_eMarks__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).eMarks[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_eMarks__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_eMarks__classPrivateFieldGet : 0; + } + constructor(state, startLine){ + _classPrivateFieldInit(this, _src, { + get: get_src, + set: void 0 + }); + /** + * The total indent of the line, including the required indent. + */ _classPrivateFieldInit(this, _totalIndent, { + get: get_totalIndent, + set: void 0 + }); + /** + * The required indent of the line. + */ _classPrivateFieldInit(this, _requiredIndent, { + get: get_requiredIndent, + set: void 0 + }); + _classPrivateFieldInit(this, _state1, { + writable: true, + value: void 0 + }); + _classPrivateFieldInit(this, _startLine, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _state1, state); + _classPrivateFieldSet(this, _startLine, startLine); + } +} +function get_src() { + return _classPrivateFieldGet(this, _state1).src; +} +function get_totalIndent() { + var _classPrivateFieldGet_sCount__classPrivateFieldGet; + return (_classPrivateFieldGet_sCount__classPrivateFieldGet = _classPrivateFieldGet(this, _state1).sCount[_classPrivateFieldGet(this, _startLine)]) !== null && _classPrivateFieldGet_sCount__classPrivateFieldGet !== void 0 ? _classPrivateFieldGet_sCount__classPrivateFieldGet : 0; +} +function get_requiredIndent() { + return _classPrivateFieldGet(this, _state1).blkIndent; +} +export function position(state, startLine) { + var _state_bMarks_startLine, _state_tShift_startLine; + const pos = ((_state_bMarks_startLine = state.bMarks[startLine]) !== null && _state_bMarks_startLine !== void 0 ? _state_bMarks_startLine : 0) + ((_state_tShift_startLine = state.tShift[startLine]) !== null && _state_tShift_startLine !== void 0 ? _state_tShift_startLine : 0); + var _state_eMarks_startLine; + const max = (_state_eMarks_startLine = state.eMarks[startLine]) !== null && _state_eMarks_startLine !== void 0 ? _state_eMarks_startLine : 0; + return { + pos, + max + }; +} + + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/dist/utils.js.map b/packages/@starbeam-docs/snippets/dist/utils.js.map new file mode 100644 index 0000000..e8269d7 --- /dev/null +++ b/packages/@starbeam-docs/snippets/dist/utils.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAS,OAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,YAAY;IAG5C,sCACA;AAFX,OAAO,MAAM;IASX,KAAK,MAAc,EAAa;QAC9B,OAAO,IAAI,gCAAU,IAAI,EAAE,SAAO;IACpC;IAEA,cAAoB;QAClB,sBAAA,IAAI,EAAE,QAAM,IAAI,GAAG,sBAAA,IAAI,EAAE,QAAM,IAAI,GAAG;IACxC;IAEA,IAAI,YAA4C;QAC9C,OAAO,sBAAA,IAAI,EAAE,KAAG,OAAO,CAAC,SAAS;IACnC;IAEA,IAAI,KAAiB;QACnB,6BAAO,IAAI,EAAE;IACf;IAEA,IAAI,MAAgB;QAClB,OAAO,IAAI,SAAS,sBAAA,IAAI,EAAE,QAAM,GAAG;IACrC;IAEA,OAAO;QACL,OAAO,sBAAA,IAAI,EAAE,QAAM,IAAI,CAAC,cAAc,IAAI;IAC5C;IAEA,OAAO,OAAe,EAAE;QACtB,OAAO,sBAAA,IAAI,EAAE,KAAG,MAAM,CAAC,SAAS,sBAAA,IAAI,EAAE,QAAM,GAAG;IACjD;IAEA,MAAM,OAAe,EAAE;QACrB,OAAO,CAAC,mEAAmE,EAAE,QAAQ,mBAAmB,CAAC;IAC3G;IAnCA,YAAY,EAAc,EAAE,KAAiB,CAAE;QAH/C,6BAAS;;mBAAT,KAAA;;QACA,6BAAS;;mBAAT,KAAA;;oCAGQ,QAAQ;oCACR,KAAK;IACb;AAiCF,CAAC;IAmBU;AADX,OAAO,MAAM;IAOX,IAAI,OAAO;QACT,OAAO,sBAAA,IAAI,EAAE,MAAI,YAAY;IAC/B;IAEA,QAAQ,YAAoB,EAAE;QAC5B,OAAO,QAAQ,QAAQ,sBAAA,IAAI,EAAE,MAAI,IAAI,GAAG;IAC1C;IAEA,IAAI,gBAAgB;QAClB,OAAO,SAAS,sBAAA,IAAI,EAAE,MAAI,IAAI,EAAE,sBAAA,IAAI,EAAE,MAAI,YAAY;IACxD;IAEA,IAAI,eAAe;QACjB,OAAO,sBAAA,IAAI,EAAE,MAAI,IAAI;IACvB;IAlBA,YAAY,GAAiB,CAAE;QAF/B,6BAAS;;mBAAT,KAAA;;oCAGQ,MAAM;IACd;AAiBF,CAAC;IAGC,uCACA,0CAsBI,oCAgEA,4CAOA;AA/FN,OAAO,MAAM;IASX,IAAI,OAA8B;QAChC,IAAI,sBAAA,IAAI,EAAE,cAAY,sBAAA,IAAI,EAAE,SAAM,OAAO,EAAE;YACzC,OAAO,IAAI,gCAAU,IAAI,EAAE,UAAO,sBAAA,IAAI,EAAE,cAAY;QACtD,OAAO;YACL,OAAO;QACT,CAAC;IACH;IAEA,IAAI,WAAyC;QAC3C,OAAO;YACL,KAAK,IAAI,CAAC,YAAY;YACtB,KAAK,IAAI,CAAC,GAAG;QACf;IACF;IAMA,UAAqB;QACnB,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,IAAI,EAAE,cAAY;QACrC,OAAO,IAAI,gCAAU,IAAI,EAAE,UAAO,sBAAA,IAAI,EAAE,cAAY;IACtD;IAEA,MAAM,SAAuC,EAAU;QACrD,IAAI,OAA8B,IAAI;QACtC,IAAI,QAAQ,EAAE;QAEd,MAAO,KAAM;YACX,MAAM,OAA8B,KAAK,IAAI;YAE7C,IAAI,CAAC,MAAM;gBACT,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,MAAM,cAAY;gBACrC,KAAM;YACR,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC;gBAAE,IAAI,IAAI;YAAC;YAClC,OAAO;YAEP,IAAI,UAAU,OAAO;gBACnB,sBAAA,IAAI,EAAE,SAAM,IAAI,GAAG,sBAAA,MAAM,cAAY;gBACrC,KAAM;YACR,CAAC;QACH;QAEA,OAAO,MAAM,IAAI,CAAC;IACpB;IAEA,OAAO,EAAE,IAAK,KAAK,CAAA,EAAoB,GAAG,CAAC,CAAC,EAAU;QACpD,OAAO,sBAAA,IAAI,EAAE,MAAI,KAAK,CACpB,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EACnC,IAAI,CAAC,GAAG;IAEZ;IAEA,WAAW,KAAa,EAAW;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,MAAM,MAAM;IACtC;IAEA,MACE,IAAY,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EACpB;QACpB,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;YACpC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,IAAI,CAAC,YAAY;QAC7B,IAAI,QAAQ;QAEZ,IAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,EAAG;YAC1B,SAAS,sBAAA,IAAI,EAAE,MAAI,MAAM,CAAC,MAAM;QAClC;QAEA,OAAO;IACT;IAgBA;;GAEC,GACD,IAAI,SAAiB;QACnB,OAAO,sBAAA,IAAI,EAAE,sCAAc,IAAI,EAAE;IACnC;IAEA;;GAEC,GACD,IAAI,cAAuB;QACzB,OAAO,IAAI,CAAC,MAAM,IAAI;IACxB;IAEA,IAAI,QAAgB;YACX;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IAEA,IAAI,UAAkB;YACb;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IAEA,IAAI,eAAuB;QACzB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;IAClC;IAEA,IAAI,MAAc;YACT;QAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;IACjD;IA3HA,YAAY,KAAiB,EAAE,SAAiB,CAAE;QAoBlD,6BAAI;iBAAJ;;;QA6DA;;GAEC,GACD,6BAAI;iBAAJ;;;QAIA;;GAEC,GACD,6BAAI;iBAAJ;;;QA9FA,6BAAA;;mBAAA,KAAA;;QACA,6BAAA;;mBAAA,KAAA;;oCAGQ,SAAQ;oCACR,YAAY;IACpB;AAyHF,CAAC;AAxGC,SAAA,UAAmB;IACjB,OAAO,sBAAA,IAAI,EAAE,SAAM,GAAG;AACxB;AA8DA,SAAA,kBAA2B;QAClB;IAAP,OAAO,CAAA,qDAAA,sBAAA,IAAI,EAAE,SAAM,MAAM,uBAAC,IAAI,EAAE,YAAU,cAAnC,gEAAA,qDAAuC,CAAC;AACjD;AAKA,SAAA,qBAA8B;IAC5B,OAAO,sBAAA,IAAI,EAAE,SAAM,SAAS;AAC9B;AAiCF,OAAO,SAAS,SACd,KAAiB,EACjB,SAAiB,EACa;QAE3B,yBACA;IAFH,MAAM,MACJ,AAAC,CAAA,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAA,AAAC,IAC5B,CAAA,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAA,AAAC;QACnB;IAAZ,MAAM,MAAM,CAAA,0BAAA,MAAM,MAAM,CAAC,UAAU,cAAvB,qCAAA,0BAA2B,CAAC;IAExC,OAAO;QAAE;QAAK;IAAI;AACpB,CAAC","file":"utils.js","sourcesContent":["import type { SfcBlock } from \"@mdit-vue/plugin-sfc\";\nimport MarkdownIt from \"markdown-it\";\nimport type StateBlock from \"markdown-it/lib/rules_block/state_block.js\";\nimport { dirname, relative, resolve } from \"node:path\";\n\nexport class MDState {\n readonly #state: StateBlock;\n readonly #md: MarkdownIt;\n\n constructor(md: MarkdownIt, state: StateBlock) {\n this.#state = state;\n this.#md = md;\n }\n\n line(lineno: number): LineState {\n return new LineState(this.#state, lineno);\n }\n\n consumeLine(): void {\n this.#state.line = this.#state.line + 1;\n }\n\n get highlight(): HighlightFn | null | undefined {\n return this.#md.options.highlight;\n }\n\n get md(): MarkdownIt {\n return this.#md;\n }\n\n get env(): StateEnv {\n return new StateEnv(this.#state.env);\n }\n\n open() {\n return this.#state.push(\"html_block\", \"\", 0);\n }\n\n render(content: string) {\n return this.#md.render(content, this.#state.env);\n }\n\n error(message: string) {\n return `
${message}
`;\n }\n}\n\nexport type HighlightFn = (\n str: string,\n lang: string,\n attrs: string\n) => string;\n\ninterface StateEnvInfo {\n readonly path: string;\n readonly relativePath: string;\n readonly cleanUrls: boolean;\n readonly sfcBlocks: SfcBlock;\n readonly content: string;\n readonly frontmatter: Record;\n readonly excerpt: string;\n}\n\nexport class StateEnv {\n readonly #env: StateEnvInfo;\n\n constructor(env: StateEnvInfo) {\n this.#env = env;\n }\n\n get path() {\n return this.#env.relativePath;\n }\n\n resolve(relativeFile: string) {\n return resolve(dirname(this.#env.path), relativeFile);\n }\n\n get vitepressRoot() {\n return relative(this.#env.path, this.#env.relativePath);\n }\n\n get absolutePath() {\n return this.#env.path;\n }\n}\n\nexport class LineState {\n #state: StateBlock;\n #startLine: number;\n\n constructor(state: StateBlock, startLine: number) {\n this.#state = state;\n this.#startLine = startLine;\n }\n\n get next(): LineState | undefined {\n if (this.#startLine < this.#state.lineMax) {\n return new LineState(this.#state, this.#startLine + 1);\n } else {\n return undefined;\n }\n }\n\n get position(): { pos: number; max: number } {\n return {\n pos: this.contentStart,\n max: this.end,\n };\n }\n\n get #src(): string {\n return this.#state.src;\n }\n\n consume(): LineState {\n this.#state.line = this.#startLine + 1;\n return new LineState(this.#state, this.#startLine + 1);\n }\n\n until(predicate: (line: LineState) => boolean): string {\n let line: LineState | undefined = this;\n let lines = [];\n\n while (line) {\n const next: LineState | undefined = line.next;\n\n if (!next) {\n this.#state.line = line.#startLine + 1;\n break;\n }\n\n lines.push(line.string({ ws: true }));\n line = next;\n\n if (predicate(next)) {\n this.#state.line = next.#startLine + 1;\n break;\n }\n }\n\n return lines.join(\"\\n\");\n }\n\n string({ ws = false }: { ws?: boolean } = {}): string {\n return this.#src.slice(\n ws ? this.start : this.contentStart,\n this.end\n );\n }\n\n startsWith(chars: string): boolean {\n return this.slice(chars.length) === chars;\n }\n\n slice(\n n: number = this.end - this.contentStart\n ): string | undefined {\n if (n > this.end - this.contentStart) {\n return undefined;\n }\n\n const pos = this.contentStart;\n let chars = \"\";\n\n for (let i = 0; i < n; ++i) {\n chars += this.#src.charAt(pos + i);\n }\n\n return chars;\n }\n\n /**\n * The total indent of the line, including the required indent.\n */\n get #totalIndent(): number {\n return this.#state.sCount[this.#startLine] ?? 0;\n }\n\n /**\n * The required indent of the line.\n */\n get #requiredIndent(): number {\n return this.#state.blkIndent;\n }\n\n /**\n * The indent of the line, excluding the required indent.\n */\n get indent(): number {\n return this.#totalIndent - this.#requiredIndent;\n }\n\n /**\n * if it's indented more than 3 spaces, it's a code block\n */\n get isCodeBlock(): boolean {\n return this.indent >= 4;\n }\n\n get start(): number {\n return this.#state.bMarks[this.#startLine] ?? 0;\n }\n\n get wsChars(): number {\n return this.#state.tShift[this.#startLine] ?? 0;\n }\n\n get contentStart(): number {\n return this.start + this.wsChars;\n }\n\n get end(): number {\n return this.#state.eMarks[this.#startLine] ?? 0;\n }\n}\n\nexport function position(\n state: StateBlock,\n startLine: number\n): { pos: number; max: number } {\n const pos =\n (state.bMarks[startLine] ?? 0) +\n (state.tShift[startLine] ?? 0);\n const max = state.eMarks[startLine] ?? 0;\n\n return { pos, max };\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/package.json b/packages/@starbeam-docs/snippets/package.json new file mode 100644 index 0000000..ce0720f --- /dev/null +++ b/packages/@starbeam-docs/snippets/package.json @@ -0,0 +1,30 @@ +{ + "name": "@starbeam-docs/snippets", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + }, + "./mdit-plugin": { + "types": "./src/build.ts", + "default": "./dist/build.js" + }, + "./client": { + "types": "./src/browser.ts", + "default": "./dist/browser.js" + } + }, + "dependencies": { + "@jsergo/mdit": "workspace:^", + "@starbeam-docs/vue-jsx-runtime": "workspace:^" + }, + "devDependencies": { + "vue": "*", + "vue-sfc2esm": "^0.1.6", + "vite": "*", + "@types/node": "^18.15.0" + } +} diff --git a/packages/@starbeam-docs/snippets/src/.eslintrc.json b/packages/@starbeam-docs/snippets/src/.eslintrc.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/.eslintrc.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/src/Code.css.ts b/packages/@starbeam-docs/snippets/src/Code.css.ts new file mode 100644 index 0000000..09362ae --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/Code.css.ts @@ -0,0 +1,12 @@ +export const codeSnippet = "_code-snippet_1ftur_1"; +export const section = "_section_1ftur_28"; +export const ts = "_ts_1ftur_28"; +export const js = "_js_1ftur_29"; +export const toggler = "_toggler_1ftur_49"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode("._code-snippet_1ftur_1 button {\n -webkit-transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n font-family: var(--vp-font-family-base), sans-serif;\n font-size: 0.75rem;\n padding-top: 0;\n padding-bottom: 0;\n padding-left: var(--sbdoc-ui-inner-padding-sm);\n padding-right: var(--sbdoc-ui-inner-padding-sm);\n border: 0;\n\n background-color: var(--vp-button-alt-bg);\n color: var(--vp-button-alt-text);\n}\n\n._code-snippet_1ftur_1 button:hover {\n background-color: var(--vp-button-brand-hover-bg);\n color: var(--vp-button-brand-hover-text);\n}\n\n@layer defaults {\n ._code-snippet_1ftur_1 button:first-child {\n border-bottom-left-radius: var(--sbdoc-radius-xsm);\n }\n\n ._code-snippet_1ftur_1 button:last-child {\n border-top-right-radius: var(--sbdoc-radius-xsm);\n }\n}\n\n._section_1ftur_28._ts_1ftur_28 button._ts_1ftur_28,\n._section_1ftur_28._js_1ftur_29 button._js_1ftur_29 {\n background-color: var(--vp-button-brand-bg);\n color: var(--vp-button-brand-text);\n}\n\n@layer defaults {\n html.dark .shiki.github-light {\n display: none;\n }\n\n html:not(.dark) .shiki.github-dark {\n display: none;\n }\n\n ._code-snippet_1ftur_1 {\n position: relative;\n display: grid;\n width: 100%;\n }\n\n section._toggler_1ftur_49 {\n border-top-right-radius: var(--sbdoc-radius);\n contain: paint;\n margin: 0;\n }\n\n body:not(:has(:focus-visible)) section._toggler_1ftur_49 {\n z-index: var(--sbdoc-ui-layer-index-hud);\n opacity: 0;\n pointer-events: none;\n -webkit-transition: opacity 0.2s ease-in-out;\n transition: opacity 0.2s ease-in-out;\n }\n\n section._toggler_1ftur_49 button:focus-visible {\n contain: paint;\n }\n\n ._section_1ftur_28:hover ._toggler_1ftur_49 {\n opacity: 1;\n pointer-events: auto;\n }\n\n div._ts_1ftur_28,\n div._js_1ftur_29 {\n display: none;\n }\n\n ._section_1ftur_28._ts_1ftur_28 div._ts_1ftur_28,\n ._section_1ftur_28._js_1ftur_29 div._js_1ftur_29 {\n display: block;\n }\n\n ._section_1ftur_28 pre.shiki {\n padding: 1em;\n margin: 0;\n }\n\n ._toggler_1ftur_49 {\n display: grid;\n grid-template-columns: -webkit-max-content 1fr;\n grid-template-columns: max-content 1fr;\n position: absolute;\n top: 0;\n right: 0;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 3;\n font-size: 0.75rem;\n\n border: var(--sb-border-thin-width) solid var(--vp-button-brand-border);\n border-right: none;\n background-color: var(--vp-button-alt-bg);\n border-bottom-left-radius: var(--sbdoc-radius-sm);\n border-top-right-radius: var(--sbdoc-radius-sm);\n }\n}\n"); + style.appendChild(text); + document.head.appendChild(style); +} \ No newline at end of file diff --git a/packages/@starbeam-docs/snippets/src/Code.postcss b/packages/@starbeam-docs/snippets/src/Code.postcss new file mode 100644 index 0000000..333a53a --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/Code.postcss @@ -0,0 +1,104 @@ +.code-snippet button { + transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out; + font-family: var(--vp-font-family-base), sans-serif; + font-size: 0.75rem; + padding-block: 0; + padding-inline: var(--sbdoc-ui-inner-padding-sm); + border: 0; + + background-color: var(--vp-button-alt-bg); + color: var(--vp-button-alt-text); +} + +.code-snippet button:hover { + background-color: var(--vp-button-brand-hover-bg); + color: var(--vp-button-brand-hover-text); +} + +@layer defaults { + .code-snippet button:first-child { + border-end-start-radius: var(--sbdoc-radius-xsm); + } + + .code-snippet button:last-child { + border-start-end-radius: var(--sbdoc-radius-xsm); + } +} + +.section.ts button.ts, +.section.js button.js { + background-color: var(--vp-button-brand-bg); + color: var(--vp-button-brand-text); +} + +@layer defaults { + :global(html.dark .shiki.github-light) { + display: none; + } + + :global(html:not(.dark) .shiki.github-dark) { + display: none; + } + + .code-snippet { + position: relative; + display: grid; + width: 100%; + } + + section.toggler { + border-start-end-radius: var(--sbdoc-radius); + contain: paint; + margin: 0; + } + + :global(body:not(:has(:focus-visible))) section.toggler { + z-index: var(--sbdoc-ui-layer-index-hud); + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease-in-out; + } + + section.toggler button:focus-visible { + contain: paint; + } + + .section:hover .toggler { + opacity: 1; + pointer-events: auto; + } + + div.ts, + div.js { + display: none; + } + + .section.ts div.ts, + .section.js div.js { + display: block; + } + + .section :global(pre.shiki) { + padding: 1em; + margin: 0; + } + + .toggler { + display: grid; + grid-template-columns: max-content 1fr; + position: absolute; + top: 0; + right: 0; + align-items: center; + align-content: center; + user-select: none; + z-index: 3; + font-size: 0.75rem; + + border: var(--sb-border-thin-width) solid var(--vp-button-brand-border); + border-inline-end: none; + background-color: var(--vp-button-alt-bg); + border-end-start-radius: var(--sbdoc-radius-sm); + border-start-end-radius: var(--sbdoc-radius-sm); + } +} diff --git a/packages/@starbeam-docs/snippets/src/Code.tsx b/packages/@starbeam-docs/snippets/src/Code.tsx new file mode 100644 index 0000000..b187e20 --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/Code.tsx @@ -0,0 +1,199 @@ +import { defineComponent, type Ref, type Slots } from "vue"; +import { onMounted, ref } from "vue"; +import { STORAGE } from "./lang.js"; +import { + codeSnippet, + toggler as togglerClass, + section as sectionClass, + js as jsClass, + ts as tsClass, +} from "./Code.css.js"; + +export default defineComponent({ + setup(_, { slots }) { + const js = ref(); + const ts = ref(); + + const container = ref(); + + onMounted(() => { + mountElements(ts, js, container); + }); + + return () => ( +
+ {toggler()} + {langSlots(slots, { ts, js })} +
+ ); + }, +}); + +function toggler() { + return ( +
+ {langButton("js")} + {langButton("ts")} +
+ ); +} + +function langSlots( + slots: Slots, + refs: { ts: Ref; js: Ref } +) { + return [ + langSlot(slots, "ts", refs.ts), + langSlot(slots, "js", refs.js), + ]; +} + +function langSlot( + slots: Slots, + lang: "ts" | "js", + ref: Ref +): ReturnType | void { + const slot = slots[lang]; + + if (slot) { + return ( +
+ {slot()} +
+ ); + } +} + +function langButton(lang: "ts" | "js") { + return ( + + ); +} + +function createToggler(): HTMLElement { + const toggler = document.createElement("section"); + toggler.className = togglerClass; + return toggler; +} + +function label(text: string) { + const label = document.createElement("span"); + label.innerText = text; + return label; +} + +function button(text: string, callback: () => void) { + const button = document.createElement("button"); + button.setAttribute("type", "button"); + button.innerText = text; + button.addEventListener("click", callback); + + return button; +} + +const LANG_KEY = "default-lang"; +const DEFAULT_LANG = "js"; + +function addToggle( + container: Element, + text: string, + callback: () => void +) { + const toggler = createToggler(); + + if (text === "typescript") { + toggler.appendChild(label("ts")); + toggler.appendChild(button("js", callback)); + } else { + toggler.appendChild(button("ts", callback)); + toggler.appendChild(label("js")); + } + + container.prepend(toggler); +} + +function mountElements( + ts: Ref, + js: Ref, + container: Ref +) { + onMounted(() => { + const tsSection = ts.value; + const jsSection = js.value; + + const tsContainer = tsSection.querySelector( + "[class*=language-]" + ); + + assert(tsContainer, exists); + + addToggle(tsContainer, "typescript", () => { + STORAGE.lang = "js"; + }); + + const jsContainer = jsSection.querySelector( + "[class*=language-]" + ); + + assert(jsContainer, exists); + + addToggle(jsContainer, "javascript", () => { + STORAGE.lang = "ts"; + }); + }); + + // TODO: Generate the right markdown + onMounted(() => { + for (const item of container.value.querySelectorAll( + "[class*=language-]" + )) { + assert(item.parentElement, exists); + item.parentElement.classList.add("code-container"); + + for (const child of item.querySelectorAll( + ".code-container" + ) as NodeListOf) { + child.classList.remove("code-container"); + } + } + // const element = + }); +} + +function assert( + value: T, + check: (value: T) => value is U +): asserts value is U { + if (!check(value)) { + throw new Error(`Expected ${check.name}`); + } +} + +function exists(value: T | null | undefined): value is T { + return value !== null && value !== undefined; +} + +function langClass(lang: "ts" | "js"): string { + return lang === "ts" ? tsClass : jsClass; +} + +function sectionLangClass(lang: "ts" | "js"): string[] { + return [langClass(lang), `language-${lang}`]; +} diff --git a/packages/@starbeam-docs/snippets/src/build.ts b/packages/@starbeam-docs/snippets/src/build.ts new file mode 100644 index 0000000..7851068 --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/build.ts @@ -0,0 +1 @@ +export { snippetPlugin as snippets } from "./markdown-it.js"; diff --git a/src/.vitepress/packages/vitepress-snippets/src/env.ts b/packages/@starbeam-docs/snippets/src/env.ts similarity index 100% rename from src/.vitepress/packages/vitepress-snippets/src/env.ts rename to packages/@starbeam-docs/snippets/src/env.ts diff --git a/packages/@starbeam-docs/snippets/src/index.ts b/packages/@starbeam-docs/snippets/src/index.ts new file mode 100644 index 0000000..f8dd26f --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/index.ts @@ -0,0 +1,2 @@ +export { STORAGE } from "./lang.js"; +export { default as Code } from "./Code.js"; diff --git a/packages/@starbeam-docs/snippets/src/lang.ts b/packages/@starbeam-docs/snippets/src/lang.ts new file mode 100644 index 0000000..0cac948 --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/lang.ts @@ -0,0 +1,42 @@ +import { useStorage } from "@vueuse/core"; +import { ref, watch, type Ref } from "vue"; + +const LANG_KEY = "default-lang"; +const DEFAULT_LANG = "js"; + +export class Lang { + #store: Ref>; + readonly #currentLang: Ref<"ts" | "js">; + + constructor() { + const store = (this.#store = useStorage< + Record + >("VUEPRESS_CODE_TAB_STORE", {})); + this.#currentLang = ref(this.lang); + + watch( + () => store.value[LANG_KEY] as "ts" | "js" | undefined, + (newValue) => { + this.#currentLang.value = newValue ?? DEFAULT_LANG; + } + ); + } + + get store(): Record { + return this.#store.value; + } + + get currentLang(): "ts" | "js" { + return this.#currentLang.value; + } + + get lang(): "ts" | "js" { + return this.store[LANG_KEY] === "ts" ? "ts" : "js"; + } + + set lang(lang: "ts" | "js") { + this.store[LANG_KEY] = lang; + } +} + +export const STORAGE = new Lang(); diff --git a/packages/@starbeam-docs/snippets/src/markdown-it.ts b/packages/@starbeam-docs/snippets/src/markdown-it.ts new file mode 100644 index 0000000..7adacf2 --- /dev/null +++ b/packages/@starbeam-docs/snippets/src/markdown-it.ts @@ -0,0 +1,350 @@ +import type { RuleBlock } from "@jsergo/mdit"; +import "@mdit-vue/plugin-sfc"; +import Snippet, { + Snippets, + type Highlight, + type Region, +} from "docs-snippet"; +import { existsSync, readFileSync } from "node:fs"; +import type MarkdownIt from "markdown-it"; +import stripAnsi from "strip-ansi"; +import type { VitepressStateBlock } from "./env.js"; +import { RenderLanguageRegion } from "./snippets/language-region.js"; +import { MDState } from "./utils.js"; + +export function snippetPlugin(md: MarkdownIt, srcDir: string) { + const parser: RuleBlock = ( + state: VitepressStateBlock, + startLine, + _endLine, + silent + ): boolean => { + const mdState = new MDState(md, state); + const line = mdState.line(startLine); + + if (line.isCodeBlock) { + return false; + } + + // The syntax is `!(./-snippets/cell.ts#cell) + if (line.startsWith("!(")) { + const snippet = line.string(); + + // use named captures + const match = snippet.match( + /^!\((?:(?[a-z-]+):)?(?(.*?))(?:#(?.*))?\)$/ + ); + + if (match) { + const { region, file, lang } = match.groups as { + lang: string | undefined; + region: string | undefined; + file: string; + }; + + mdState.consumeLine(); + pushSnippetToken( + mdState, + mdState.env.resolve(file), + region, + lang + ); + return true; + } + } + if (line.startsWith("```snippet")) { + const fenceline = line.string(); + + let rawPath = fenceline.match( + /```snippet\s+\{(.*)\}/ + )?.[1] as string | undefined; + + if (silent) { + return true; + } + + const fenceContent = line.next?.until( + (line) => line.slice()?.trim() === "```" + ); + + if (!fenceContent) { + return false; + } + + const token = state.push("html_block", "", 0); + + if (!rawPath?.startsWith("#")) { + token.content = error( + `Invalid region attribute "${rawPath}"` + ); + return true; + } + + let regionName = rawPath.slice(1); + + const filename = mdState.env.resolve(fenceContent.trim()); + + if (!existsSync(filename)) { + token.content = mdState.error( + `File "${filename}" does not exist` + ); + return true; + } + + let content = readFileSync(filename, "utf8"); + + if (!regionName) { + content = `// #region all\n${content}\n// #endregion\n`; + regionName = "all"; + } + + let snippet: Snippets; + + try { + snippet = Snippet(content); + } catch (e) { + token.content = error( + `Invalid source file: ${codeForError( + (e as Error).stack ?? "missing stack trace" + )}\n\nCode:\n\n${codeForError(content)}` + ); + return true; + } + + const region = snippet.regions?.get(regionName); + + if (region === undefined) { + token.content = error( + `Invalid region name: ${regionName}\n\n${codeForError( + fenceContent + )}` + ); + return true; + } + + token.content = highlightRegion({ + state: mdState, + filename, + region, + complete: snippet, + lang: undefined, + }); + + return true; + } + + return false; + }; + + md.block.ruler.before("fence", "snippet", parser); +} + +function pushSnippetToken( + state: MDState, + filename: string, + regionName: string | undefined, + lang: string | undefined +) { + const token = state.open(); + + if (!existsSync(filename)) { + token.content = state.error( + `File "${filename}" does not exist` + ); + return true; + } + + const content = readFileSync(filename, "utf8"); + + let snippet: Snippets; + + try { + snippet = Snippet(content); + } catch (e) { + token.content = error( + `Invalid source file: ${codeForError( + (e as Error).stack ?? "missing stack trace" + )}\n\nCode:\n\n${codeForError(content)}` + ); + return true; + } + + if (regionName?.trim()) { + const region = snippet.regions?.get(regionName); + + if (region === undefined) { + token.content = error( + `Invalid region name: ${regionName}\n\n${codeForError( + filename + )}` + ); + return true; + } + + token.content = highlightRegion({ + state, + filename, + region, + complete: snippet, + lang, + }); + } else { + token.content = highlight(state, filename, snippet); + } + + return token; +} + +function highlightRegion({ + state, + filename, + region, + complete, + lang, +}: { + state: MDState; + filename: string; + region: Region; + complete: Snippets; + lang: string | undefined; +}): string { + if (lang) { + if (lang !== "js" && lang !== "ts") { + return error( + `Invalid language "${lang}" (must be one of ts or js)\n\n${codeForError( + region.js.code + )}` + ); + } + + const fenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: lang, + env: state.env, + }).highlight(state.highlight); + + return `
${fenced}
`; + } + + const tsFenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: "ts", + env: state.env, + }).highlight(state.highlight); + + if (region.ts.code === region.js.code) { + return `
${tsFenced}
`; + } + + const jsFenced = RenderLanguageRegion.create({ + filename, + region, + parsed: complete, + kind: "js", + env: state.env, + }).highlight(state.highlight); + + return ``; +} + +function highlight( + state: MDState, + filename: string, + region: Snippets +) { + const tsFenced = highlightLang(state, { + filename, + lang: "ts", + code: region.ts.code, + highlights: [], + prefix: "", + }); + + if (region.ts.code === region.js.code) { + return `
${tsFenced}
`; + } + + const jsFenced = highlightLang(state, { + filename, + lang: "js", + code: region.js.code, + highlights: [], + prefix: "", + }); + + return ``; +} + +function highlightLang( + state: MDState, + { + code, + lang, + filename, + highlights, + prefix, + postfix, + }: { + code: string; + lang: "ts" | "js"; + filename: string; + highlights?: Highlight[]; + prefix?: string; + postfix?: string; + } +): string { + const attr = + highlights && highlights.length > 0 + ? `{${highlights.map((h) => h.lines).join(",")}}` + : ""; + + const output = []; + + if (prefix) { + output.push(prefix, "// ---cut---"); + } + + output.push(code); + + if (postfix) { + output.push("// ---cut-after---", postfix); + } + + const source = output.join("\n").trimEnd(); + const highlighted = state.highlight?.( + source, + `tsx twoslash`, + `filename="${encodeURIComponent( + filename + )}" lang=${lang} ${attr}` + ); + + return `
${highlighted}
`; +} + +function error(message: string) { + return `
${message}
`; +} + +function normalize(data: string) { + // escape < and > + return breakable(data) + .replace(//g, ">"); +} + +function breakable(data: string) { + // add a wbr around `/` + return data.replace(/\//g, "/"); +} + +function codeForError(code: string) { + // escape the code + return stripAnsi(code) + .replace(//g, ">"); +} diff --git a/src/.vitepress/packages/vitepress-snippets/src/snippets/language-region.ts b/packages/@starbeam-docs/snippets/src/snippets/language-region.ts similarity index 55% rename from src/.vitepress/packages/vitepress-snippets/src/snippets/language-region.ts rename to packages/@starbeam-docs/snippets/src/snippets/language-region.ts index 62dfdd2..2367bef 100644 --- a/src/.vitepress/packages/vitepress-snippets/src/snippets/language-region.ts +++ b/packages/@starbeam-docs/snippets/src/snippets/language-region.ts @@ -5,44 +5,83 @@ import type { Snippets, Source, } from "docs-snippet"; -import type MarkdownIt from "markdown-it"; +import type { HighlightFn, StateEnv } from "../utils.js"; export class RenderLanguageRegion { - static create(region: Region, parsed: Snippets, kind: "ts" | "js") { + static create({ + filename, + region, + parsed, + kind, + env, + }: { + region: Region; + parsed: Snippets; + kind: "ts" | "js"; + filename: string; + env: StateEnv; + }) { const lang = region[kind]; const source = parsed[kind]; - return new RenderLanguageRegion(kind, lang, parsed, source); + return new RenderLanguageRegion({ + kind, + region: lang, + parsed, + source, + filename, + env, + }); } - #kind: "ts" | "js"; - #region: LanguageRegion; - #parsed: Snippets; - #source: Source; - - private constructor( - kind: "ts" | "js", - region: LanguageRegion, - parsed: Snippets, - source: Source - ) { + readonly #kind: "ts" | "js"; + readonly #region: LanguageRegion; + readonly #parsed: Snippets; + readonly #source: Source; + readonly #filename: string; + readonly #env: StateEnv; + + private constructor({ + kind, + region, + parsed, + source, + filename, + env, + }: { + kind: "ts" | "js"; + region: LanguageRegion; + parsed: Snippets; + source: Source; + filename: string; + env: StateEnv; + }) { this.#kind = kind; this.#region = region; this.#parsed = parsed; this.#source = source; + this.#filename = filename; + this.#env = env; } - highlight(md: MarkdownIt) { + get #attr() { + const attrs: string[] = []; + const highlights = this.#highlights; + if (highlights && highlights.length > 0) { + attrs.push(`{${highlights.map((h) => h.lines).join(",")}}`); + } + + attrs.push(`filename=${JSON.stringify(this.#filename)} lang=${this.#kind}`); + + return attrs.join(" "); + } + + highlight(highlight: HighlightFn | null | undefined) { const code = this.#region.code; const prefix = this.#prefix(); const postfix = this.#postfix(); - const attr = - highlights && highlights.length > 0 - ? `{${highlights.map((h) => h.lines).join(",")}}` - : ""; - const output = []; if (this.#kind === "js") { @@ -74,7 +113,7 @@ export class RenderLanguageRegion { const source = output.join("\n").trimEnd(); return ( - md.options.highlight?.(source, "tsx twoslash", attr) ?? + highlight?.(source, "tsx twoslash", this.#attr) ?? `
// @jsxImportSource: preact\n${code}
` ); } diff --git a/src/.vitepress/packages/vitepress-snippets/src/utils.ts b/packages/@starbeam-docs/snippets/src/utils.ts similarity index 56% rename from src/.vitepress/packages/vitepress-snippets/src/utils.ts rename to packages/@starbeam-docs/snippets/src/utils.ts index 300a170..836e23a 100644 --- a/src/.vitepress/packages/vitepress-snippets/src/utils.ts +++ b/packages/@starbeam-docs/snippets/src/utils.ts @@ -1,15 +1,88 @@ +import type { SfcBlock } from "@mdit-vue/plugin-sfc"; +import MarkdownIt from "markdown-it"; import type StateBlock from "markdown-it/lib/rules_block/state_block.js"; +import { dirname, relative, resolve } from "node:path"; export class MDState { - #state: StateBlock; + readonly #state: StateBlock; + readonly #md: MarkdownIt; - constructor(state: StateBlock) { + constructor(md: MarkdownIt, state: StateBlock) { this.#state = state; + this.#md = md; } line(lineno: number): LineState { return new LineState(this.#state, lineno); } + + consumeLine(): void { + this.#state.line = this.#state.line + 1; + } + + get highlight(): HighlightFn | null | undefined { + return this.#md.options.highlight; + } + + get md(): MarkdownIt { + return this.#md; + } + + get env(): StateEnv { + return new StateEnv(this.#state.env); + } + + open() { + return this.#state.push("html_block", "", 0); + } + + render(content: string) { + return this.#md.render(content, this.#state.env); + } + + error(message: string) { + return `
${message}
`; + } +} + +export type HighlightFn = ( + str: string, + lang: string, + attrs: string +) => string; + +interface StateEnvInfo { + readonly path: string; + readonly relativePath: string; + readonly cleanUrls: boolean; + readonly sfcBlocks: SfcBlock; + readonly content: string; + readonly frontmatter: Record; + readonly excerpt: string; +} + +export class StateEnv { + readonly #env: StateEnvInfo; + + constructor(env: StateEnvInfo) { + this.#env = env; + } + + get path() { + return this.#env.relativePath; + } + + resolve(relativeFile: string) { + return resolve(dirname(this.#env.path), relativeFile); + } + + get vitepressRoot() { + return relative(this.#env.path, this.#env.relativePath); + } + + get absolutePath() { + return this.#env.path; + } } export class LineState { @@ -24,6 +97,8 @@ export class LineState { get next(): LineState | undefined { if (this.#startLine < this.#state.lineMax) { return new LineState(this.#state, this.#startLine + 1); + } else { + return undefined; } } @@ -38,6 +113,11 @@ export class LineState { return this.#state.src; } + consume(): LineState { + this.#state.line = this.#startLine + 1; + return new LineState(this.#state, this.#startLine + 1); + } + until(predicate: (line: LineState) => boolean): string { let line: LineState | undefined = this; let lines = []; @@ -63,14 +143,19 @@ export class LineState { } string({ ws = false }: { ws?: boolean } = {}): string { - return this.#src.slice(ws ? this.start : this.contentStart, this.end); + return this.#src.slice( + ws ? this.start : this.contentStart, + this.end + ); } startsWith(chars: string): boolean { return this.slice(chars.length) === chars; } - slice(n: number = this.end - this.contentStart): string | undefined { + slice( + n: number = this.end - this.contentStart + ): string | undefined { if (n > this.end - this.contentStart) { return undefined; } @@ -134,7 +219,9 @@ export function position( state: StateBlock, startLine: number ): { pos: number; max: number } { - const pos = (state.bMarks[startLine] ?? 0) + (state.tShift[startLine] ?? 0); + const pos = + (state.bMarks[startLine] ?? 0) + + (state.tShift[startLine] ?? 0); const max = state.eMarks[startLine] ?? 0; return { pos, max }; diff --git a/packages/@starbeam-docs/snippets/tsconfig.json b/packages/@starbeam-docs/snippets/tsconfig.json new file mode 100644 index 0000000..640f69c --- /dev/null +++ b/packages/@starbeam-docs/snippets/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "noPropertyAccessFromIndexSignature": true, + "exactOptionalPropertyTypes": true, + "noImplicitOverride": true, + "allowJs": true, + "jsx": "preserve", + "types": ["@vue/runtime-dom", "node"], + + "paths": { + "node_modules/vue-sfc2esm/lib/vue-sfc2esm.esm.js": [ + "./node_modules/vue-sfc2esm/lib/vue-sfc2esm.d.ts" + ] + } + }, + "include": ["./src/**/*", "./src/**/*.vue", "build.mts"] +} diff --git a/packages/@starbeam-docs/theme/dist/Layout.css b/packages/@starbeam-docs/theme/dist/Layout.css new file mode 100644 index 0000000..707fbf5 --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/Layout.css @@ -0,0 +1,144 @@ +.switch-lang { + --ts-bg-color: var(--sb-bg-blue-stronger); + --ts-fg-color: var(--sb-fg-blue); + --ts-fg-focus: var(--sb-fg-blue-stronger); + --js-bg-color: var(--sb-bg-yellow-stronger); + --js-fg-color: var(--sb-fg-yellow-stronger); + --js-fg-focus: var(--sb-fg-yellow-strongest); + --border-size: 2px; + + display: grid; + position: relative; + align-self: center; + height: 20px; + aspect-ratio: 1/1; + border: 2px solid var(--local-fg); + border: var(--border-size) solid var(--local-fg); + -webkit-transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out; + transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out; + border-radius: var(--sbdoc-radius-sm); + contain: strict; + font-family: var(--sb-font-fancy); + font-weight: var(--sb-font-weight-bold); + font-size: 80%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + + .switch-lang:has(:focus-visible) { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: 10px; + } + + .switch-lang:has(:focus-visible) span._js_13p50_28, + .switch-lang:has(:focus-visible)::before { + color: black; + -webkit-text-decoration: underline; + text-decoration: underline; + } + + .switch-lang input:focus-visible { + outline: none; + } + + .switch-lang:not(._checked_13p50_39), + .switch-lang:not(._checked_13p50_39)::before { + --local-fg: var(--js-fg-color); + --local-bg: var(--js-bg-color); + --local-focus: var(--js-fg-focus); + } + + .switch-lang._checked_13p50_39, + .switch-lang._checked_13p50_39::before { + --local-fg: var(--ts-fg-color); + --local-bg: var(--ts-bg-color); + --local-focus: var(--ts-fg-focus); + } + + .switch-lang::before { + --border-offset: calc(var(--border-size) * -1); + --duration: 0.15s; + z-index: 0; + content: "TS"; + position: absolute; + top: calc(var(--border-size) * -1); + top: var(--border-offset); + left: calc(var(--border-size) * -1); + left: var(--border-offset); + bottom: calc(var(--border-size) * -1); + bottom: var(--border-offset); + right: calc(var(--border-size) * -1); + right: var(--border-offset); + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; + -webkit-transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out; + transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out; + transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out; + transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out; + } + + .switch-lang._checked_13p50_39::before { + -webkit-transform: scale(1); + transform: scale(1); + } + + .switch-lang input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + } + + .switch-lang input ~ span { + z-index: 1; + opacity: 0; + } + + .switch-lang input:checked ~ ._ts_13p50_83 { + opacity: 1; + } + + .switch-lang input:not(:checked) ~ ._js_13p50_28 { + opacity: 1; + } + + .switch-lang span, + .switch-lang::before { + font-size: 0.7em; + position: absolute; + + top: 0; + left: 0; + width: 17px; + height: 18px; + display: grid; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + place-content: center; + } + + .switch-lang span._js_13p50_28 { + background-color: var(--sb-bg-yellow-stronger); + color: var(--sb-fg-yellow); + } + + .switch-lang span._js_13p50_28::before { + content: "JS"; + } + + .switch-lang span._ts_13p50_83 { + background-color: var(--sb-bg-blue-stronger); + color: var(--sb-fg-blue); + } + + .switch-lang span._ts_13p50_83::before { + content: "TS"; + } diff --git a/packages/@starbeam-docs/theme/dist/Layout.css.js b/packages/@starbeam-docs/theme/dist/Layout.css.js new file mode 100644 index 0000000..a8300bd --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/Layout.css.js @@ -0,0 +1,13 @@ +export const js = "_js_13p50_28"; +export const checked = "_checked_13p50_39"; +export const ts = "_ts_13p50_83"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode(".switch-lang {\n --ts-bg-color: var(--sb-bg-blue-stronger);\n --ts-fg-color: var(--sb-fg-blue);\n --ts-fg-focus: var(--sb-fg-blue-stronger);\n --js-bg-color: var(--sb-bg-yellow-stronger);\n --js-fg-color: var(--sb-fg-yellow-stronger);\n --js-fg-focus: var(--sb-fg-yellow-strongest);\n --border-size: 2px;\n\n display: grid;\n position: relative;\n align-self: center;\n height: 20px;\n aspect-ratio: 1/1;\n border: 2px solid var(--local-fg);\n border: var(--border-size) solid var(--local-fg);\n -webkit-transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\n transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\n border-radius: var(--sbdoc-radius-sm);\n contain: strict;\n font-family: var(--sb-font-fancy);\n font-weight: var(--sb-font-weight-bold);\n font-size: 80%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n .switch-lang:has(:focus-visible) {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: 10px;\n }\n\n .switch-lang:has(:focus-visible) span._js_13p50_28,\n .switch-lang:has(:focus-visible)::before {\n color: black;\n -webkit-text-decoration: underline;\n text-decoration: underline;\n }\n\n .switch-lang input:focus-visible {\n outline: none;\n }\n\n .switch-lang:not(._checked_13p50_39),\n .switch-lang:not(._checked_13p50_39)::before {\n --local-fg: var(--js-fg-color);\n --local-bg: var(--js-bg-color);\n --local-focus: var(--js-fg-focus);\n }\n\n .switch-lang._checked_13p50_39,\n .switch-lang._checked_13p50_39::before {\n --local-fg: var(--ts-fg-color);\n --local-bg: var(--ts-bg-color);\n --local-focus: var(--ts-fg-focus);\n }\n\n .switch-lang::before {\n --border-offset: calc(var(--border-size) * -1);\n --duration: 0.15s;\n z-index: 0;\n content: \"TS\";\n position: absolute;\n top: calc(var(--border-size) * -1);\n top: var(--border-offset);\n left: calc(var(--border-size) * -1);\n left: var(--border-offset);\n bottom: calc(var(--border-size) * -1);\n bottom: var(--border-offset);\n right: calc(var(--border-size) * -1);\n right: var(--border-offset);\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n -webkit-transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out;\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n }\n\n .switch-lang._checked_13p50_39::before {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n .switch-lang input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .switch-lang input ~ span {\n z-index: 1;\n opacity: 0;\n }\n\n .switch-lang input:checked ~ ._ts_13p50_83 {\n opacity: 1;\n }\n\n .switch-lang input:not(:checked) ~ ._js_13p50_28 {\n opacity: 1;\n }\n\n .switch-lang span,\n .switch-lang::before {\n font-size: 0.7em;\n position: absolute;\n\n top: 0;\n left: 0;\n width: 17px;\n height: 18px;\n display: grid;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n place-content: center;\n }\n\n .switch-lang span._js_13p50_28 {\n background-color: var(--sb-bg-yellow-stronger);\n color: var(--sb-fg-yellow);\n }\n\n .switch-lang span._js_13p50_28::before {\n content: \"JS\";\n }\n\n .switch-lang span._ts_13p50_83 {\n background-color: var(--sb-bg-blue-stronger);\n color: var(--sb-fg-blue);\n }\n\n .switch-lang span._ts_13p50_83::before {\n content: \"TS\";\n }\n"); + style.appendChild(text); + document.head.appendChild(style); +} + + +//# sourceMappingURL=Layout.css.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/dist/Layout.css.js.map b/packages/@starbeam-docs/theme/dist/Layout.css.js.map new file mode 100644 index 0000000..542c61e --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/Layout.css.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/Layout.css.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,KAAK,eAAe;AACjC,OAAO,MAAM,UAAU,oBAAoB;AAC3C,OAAO,MAAM,KAAK,eAAe;AACjC,IAAI,WAAW,QAAQ,KAAK,WAAW;IACrC,MAAM,QAAQ,SAAS,aAAa,CAAC;IACrC,MAAM,YAAY,CAAC,QAAQ;IAC3B,MAAM,OAAO,SAAS,cAAc,CAAC;IACrC,MAAM,WAAW,CAAC;IAClB,SAAS,IAAI,CAAC,WAAW,CAAC;AAC5B,CAAC","file":"Layout.css.js","sourcesContent":["export const js = \"_js_13p50_28\";\nexport const checked = \"_checked_13p50_39\";\nexport const ts = \"_ts_13p50_83\";\nif (globalThis.document !== undefined) {\n const style = document.createElement('style');\n style.setAttribute(\"type\", \"text/css\");\n const text = document.createTextNode(\".switch-lang {\\n --ts-bg-color: var(--sb-bg-blue-stronger);\\n --ts-fg-color: var(--sb-fg-blue);\\n --ts-fg-focus: var(--sb-fg-blue-stronger);\\n --js-bg-color: var(--sb-bg-yellow-stronger);\\n --js-fg-color: var(--sb-fg-yellow-stronger);\\n --js-fg-focus: var(--sb-fg-yellow-strongest);\\n --border-size: 2px;\\n\\n display: grid;\\n position: relative;\\n align-self: center;\\n height: 20px;\\n aspect-ratio: 1/1;\\n border: 2px solid var(--local-fg);\\n border: var(--border-size) solid var(--local-fg);\\n -webkit-transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\\n transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\\n border-radius: var(--sbdoc-radius-sm);\\n contain: strict;\\n font-family: var(--sb-font-fancy);\\n font-weight: var(--sb-font-weight-bold);\\n font-size: 80%;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n .switch-lang:has(:focus-visible) {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: 10px;\\n }\\n\\n .switch-lang:has(:focus-visible) span._js_13p50_28,\\n .switch-lang:has(:focus-visible)::before {\\n color: black;\\n -webkit-text-decoration: underline;\\n text-decoration: underline;\\n }\\n\\n .switch-lang input:focus-visible {\\n outline: none;\\n }\\n\\n .switch-lang:not(._checked_13p50_39),\\n .switch-lang:not(._checked_13p50_39)::before {\\n --local-fg: var(--js-fg-color);\\n --local-bg: var(--js-bg-color);\\n --local-focus: var(--js-fg-focus);\\n }\\n\\n .switch-lang._checked_13p50_39,\\n .switch-lang._checked_13p50_39::before {\\n --local-fg: var(--ts-fg-color);\\n --local-bg: var(--ts-bg-color);\\n --local-focus: var(--ts-fg-focus);\\n }\\n\\n .switch-lang::before {\\n --border-offset: calc(var(--border-size) * -1);\\n --duration: 0.15s;\\n z-index: 0;\\n content: \\\"TS\\\";\\n position: absolute;\\n top: calc(var(--border-size) * -1);\\n top: var(--border-offset);\\n left: calc(var(--border-size) * -1);\\n left: var(--border-offset);\\n bottom: calc(var(--border-size) * -1);\\n bottom: var(--border-offset);\\n right: calc(var(--border-size) * -1);\\n right: var(--border-offset);\\n -webkit-transform: scale(0);\\n transform: scale(0);\\n -webkit-transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\\n transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;\\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\\n -webkit-transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\\n transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out;\\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\\n }\\n\\n .switch-lang._checked_13p50_39::before {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n\\n .switch-lang input {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n }\\n\\n .switch-lang input ~ span {\\n z-index: 1;\\n opacity: 0;\\n }\\n\\n .switch-lang input:checked ~ ._ts_13p50_83 {\\n opacity: 1;\\n }\\n\\n .switch-lang input:not(:checked) ~ ._js_13p50_28 {\\n opacity: 1;\\n }\\n\\n .switch-lang span,\\n .switch-lang::before {\\n font-size: 0.7em;\\n position: absolute;\\n\\n top: 0;\\n left: 0;\\n width: 17px;\\n height: 18px;\\n display: grid;\\n -ms-flex-line-pack: center;\\n align-content: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n place-content: center;\\n }\\n\\n .switch-lang span._js_13p50_28 {\\n background-color: var(--sb-bg-yellow-stronger);\\n color: var(--sb-fg-yellow);\\n }\\n\\n .switch-lang span._js_13p50_28::before {\\n content: \\\"JS\\\";\\n }\\n\\n .switch-lang span._ts_13p50_83 {\\n background-color: var(--sb-bg-blue-stronger);\\n color: var(--sb-fg-blue);\\n }\\n\\n .switch-lang span._ts_13p50_83::before {\\n content: \\\"TS\\\";\\n }\\n\");\n style.appendChild(text);\n document.head.appendChild(style);\n}"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/dist/Layout.js b/packages/@starbeam-docs/theme/dist/Layout.js new file mode 100644 index 0000000..948266c --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/Layout.js @@ -0,0 +1,55 @@ +import { createVNode as _createVNode } from "vue"; +import DefaultTheme from "vitepress/theme"; +import { defineComponent, onMounted, ref, watch } from "vue"; +import { STORAGE } from "@starbeam-docs/snippets"; +import { checked, js, ts } from "./Layout.css.js"; +const { Layout } = DefaultTheme; +export default defineComponent({ + setup () { + setup(); + return ()=>_createVNode(Layout, { + "class": "app" + }, null); + } +}); +function setup() { + onMounted(()=>{ + document.body.setAttribute("data-lang", STORAGE.lang); + }); + const isChecked = ref(false); + onMounted(()=>{ + let input; + const tsElement = document.querySelector("#app :is(.social-links, .social-links-list) a[href*=typescript]"); + if (tsElement) { + const label = document.createElement("label"); + label.title = "Show TypeScript code and examples"; + label.classList.add("switch-lang"); + input = document.createElement("input"); + input.oninput = (e)=>{ + isChecked.value = input.checked; + }; + input.type = "checkbox"; + label.append(input); + const tsSpan = document.createElement("span"); + tsSpan.classList.add(ts); + label.append(tsSpan); + const jsSpan = document.createElement("span"); + jsSpan.classList.add(js); + label.append(jsSpan); + tsElement.replaceWith(label); + function toggle() { + label.classList.toggle(checked, isChecked.value); + STORAGE.lang = isChecked.value ? "ts" : "js"; + } + watch(isChecked, toggle); + toggle(); + } + watch(()=>STORAGE.lang, (lang)=>{ + if (typeof globalThis.document !== undefined) document.body.setAttribute("data-lang", lang); + input.checked = lang === "ts"; + }); + }); +} + + +//# sourceMappingURL=Layout.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/dist/Layout.js.map b/packages/@starbeam-docs/theme/dist/Layout.js.map new file mode 100644 index 0000000..fc739fc --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/Layout.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/Layout.tsx"],"names":[],"mappings":";AAAA,OAAO,kBAAkB,kBAAkB;AAC3C,SAAS,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,QAAQ,MAAM;AAC7D,SAAS,OAAO,QAAQ,0BAA0B;AAClD,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,kBAAkB;AAElD,MAAM,EAAE,OAAM,EAAE,GAAG;AAEnB,eAAe,gBAAgB;IAC7B,SAAQ;QACN;QAEA,OAAO,iBAAO;yBAAa;;IAC7B;AACF,GAAG;AAEH,SAAS,QAAQ;IACf,UAAU,IAAM;QACd,SAAS,IAAI,CAAC,YAAY,CAAC,aAAa,QAAQ,IAAI;IACtD;IAEA,MAAM,YAAY,IAAI,KAAK;IAE3B,UAAU,IAAM;QACd,IAAI;QAEJ,MAAM,YAAY,SAAS,aAAa,CACtC;QAGF,IAAI,WAAW;YACb,MAAM,QAAQ,SAAS,aAAa,CAAC;YACrC,MAAM,KAAK,GAAG;YAEd,MAAM,SAAS,CAAC,GAAG,CAAC;YACpB,QAAQ,SAAS,aAAa,CAAC;YAE/B,MAAM,OAAO,GAAG,CAAC,IAAM;gBACrB,UAAU,KAAK,GAAG,MAAM,OAAO;YACjC;YAEA,MAAM,IAAI,GAAG;YACb,MAAM,MAAM,CAAC;YAEb,MAAM,SAAS,SAAS,aAAa,CAAC;YACtC,OAAO,SAAS,CAAC,GAAG,CAAC;YACrB,MAAM,MAAM,CAAC;YAEb,MAAM,SAAS,SAAS,aAAa,CAAC;YACtC,OAAO,SAAS,CAAC,GAAG,CAAC;YACrB,MAAM,MAAM,CAAC;YAEb,UAAU,WAAW,CAAC;YAEtB,SAAS,SAAS;gBAChB,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,UAAU,KAAK;gBAC/C,QAAQ,IAAI,GAAG,UAAU,KAAK,GAAG,OAAO,IAAI;YAC9C;YAEA,MAAM,WAAW;YACjB;QACF,CAAC;QAED,MACE,IAAM,QAAQ,IAAI,EAClB,CAAC,OAAS;YACR,IAAI,OAAO,WAAW,QAAQ,KAAK,WACjC,SAAS,IAAI,CAAC,YAAY,CAAC,aAAa;YAC1C,MAAM,OAAO,GAAG,SAAS;QAC3B;IAEJ;AACF","file":"Layout.js","sourcesContent":["import DefaultTheme from \"vitepress/theme\";\nimport { defineComponent, onMounted, ref, watch } from \"vue\";\nimport { STORAGE } from \"@starbeam-docs/snippets\";\nimport { checked, js, ts } from \"./Layout.css.js\";\n\nconst { Layout } = DefaultTheme;\n\nexport default defineComponent({\n setup() {\n setup();\n\n return () => ;\n },\n});\n\nfunction setup() {\n onMounted(() => {\n document.body.setAttribute(\"data-lang\", STORAGE.lang);\n });\n\n const isChecked = ref(false);\n\n onMounted(() => {\n let input: HTMLInputElement;\n\n const tsElement = document.querySelector(\n \"#app :is(.social-links, .social-links-list) a[href*=typescript]\"\n );\n\n if (tsElement) {\n const label = document.createElement(\"label\");\n label.title = \"Show TypeScript code and examples\";\n\n label.classList.add(\"switch-lang\");\n input = document.createElement(\"input\");\n\n input.oninput = (e) => {\n isChecked.value = input.checked;\n };\n\n input.type = \"checkbox\";\n label.append(input);\n\n const tsSpan = document.createElement(\"span\");\n tsSpan.classList.add(ts);\n label.append(tsSpan);\n\n const jsSpan = document.createElement(\"span\");\n jsSpan.classList.add(js);\n label.append(jsSpan);\n\n tsElement.replaceWith(label);\n\n function toggle() {\n label.classList.toggle(checked, isChecked.value);\n STORAGE.lang = isChecked.value ? \"ts\" : \"js\";\n }\n\n watch(isChecked, toggle);\n toggle();\n }\n\n watch(\n () => STORAGE.lang,\n (lang) => {\n if (typeof globalThis.document !== undefined)\n document.body.setAttribute(\"data-lang\", lang);\n input.checked = lang === \"ts\";\n }\n );\n });\n}\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/dist/index.js b/packages/@starbeam-docs/theme/dist/index.js new file mode 100644 index 0000000..b9de95b --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/index.js @@ -0,0 +1,4 @@ +export { default as Layout } from "./Layout.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/dist/index.js.map b/packages/@starbeam-docs/theme/dist/index.js.map new file mode 100644 index 0000000..6dd8cd0 --- /dev/null +++ b/packages/@starbeam-docs/theme/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,WAAW,MAAM,QAAQ,cAAc","file":"index.js","sourcesContent":["export { default as Layout } from \"./Layout.js\";\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/package.json b/packages/@starbeam-docs/theme/package.json new file mode 100644 index 0000000..32ff52b --- /dev/null +++ b/packages/@starbeam-docs/theme/package.json @@ -0,0 +1,18 @@ +{ + "name": "@starbeam-docs/theme", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, + "devDependencies": { + "vue": "*", + "vue-sfc2esm": "^0.1.6", + "vite": "*", + "@types/node": "^18.15.0" + } +} diff --git a/packages/@starbeam-docs/theme/src/Layout.css.ts b/packages/@starbeam-docs/theme/src/Layout.css.ts new file mode 100644 index 0000000..655e6af --- /dev/null +++ b/packages/@starbeam-docs/theme/src/Layout.css.ts @@ -0,0 +1,10 @@ +export const js = "_js_13p50_28"; +export const checked = "_checked_13p50_39"; +export const ts = "_ts_13p50_83"; +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode(".switch-lang {\n --ts-bg-color: var(--sb-bg-blue-stronger);\n --ts-fg-color: var(--sb-fg-blue);\n --ts-fg-focus: var(--sb-fg-blue-stronger);\n --js-bg-color: var(--sb-bg-yellow-stronger);\n --js-fg-color: var(--sb-fg-yellow-stronger);\n --js-fg-focus: var(--sb-fg-yellow-strongest);\n --border-size: 2px;\n\n display: grid;\n position: relative;\n align-self: center;\n height: 20px;\n aspect-ratio: 1/1;\n border: 2px solid var(--local-fg);\n border: var(--border-size) solid var(--local-fg);\n -webkit-transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\n transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out;\n border-radius: var(--sbdoc-radius-sm);\n contain: strict;\n font-family: var(--sb-font-fancy);\n font-weight: var(--sb-font-weight-bold);\n font-size: 80%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n .switch-lang:has(:focus-visible) {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: 10px;\n }\n\n .switch-lang:has(:focus-visible) span._js_13p50_28,\n .switch-lang:has(:focus-visible)::before {\n color: black;\n -webkit-text-decoration: underline;\n text-decoration: underline;\n }\n\n .switch-lang input:focus-visible {\n outline: none;\n }\n\n .switch-lang:not(._checked_13p50_39),\n .switch-lang:not(._checked_13p50_39)::before {\n --local-fg: var(--js-fg-color);\n --local-bg: var(--js-bg-color);\n --local-focus: var(--js-fg-focus);\n }\n\n .switch-lang._checked_13p50_39,\n .switch-lang._checked_13p50_39::before {\n --local-fg: var(--ts-fg-color);\n --local-bg: var(--ts-bg-color);\n --local-focus: var(--ts-fg-focus);\n }\n\n .switch-lang::before {\n --border-offset: calc(var(--border-size) * -1);\n --duration: 0.15s;\n z-index: 0;\n content: \"TS\";\n position: absolute;\n top: calc(var(--border-size) * -1);\n top: var(--border-offset);\n left: calc(var(--border-size) * -1);\n left: var(--border-offset);\n bottom: calc(var(--border-size) * -1);\n bottom: var(--border-offset);\n right: calc(var(--border-size) * -1);\n right: var(--border-offset);\n -webkit-transform: scale(0);\n transform: scale(0);\n -webkit-transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n -webkit-transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n transition: background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out;\n transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out, -webkit-transform var(--duration) ease-in-out;\n }\n\n .switch-lang._checked_13p50_39::before {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n .switch-lang input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .switch-lang input ~ span {\n z-index: 1;\n opacity: 0;\n }\n\n .switch-lang input:checked ~ ._ts_13p50_83 {\n opacity: 1;\n }\n\n .switch-lang input:not(:checked) ~ ._js_13p50_28 {\n opacity: 1;\n }\n\n .switch-lang span,\n .switch-lang::before {\n font-size: 0.7em;\n position: absolute;\n\n top: 0;\n left: 0;\n width: 17px;\n height: 18px;\n display: grid;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n place-content: center;\n }\n\n .switch-lang span._js_13p50_28 {\n background-color: var(--sb-bg-yellow-stronger);\n color: var(--sb-fg-yellow);\n }\n\n .switch-lang span._js_13p50_28::before {\n content: \"JS\";\n }\n\n .switch-lang span._ts_13p50_83 {\n background-color: var(--sb-bg-blue-stronger);\n color: var(--sb-fg-blue);\n }\n\n .switch-lang span._ts_13p50_83::before {\n content: \"TS\";\n }\n"); + style.appendChild(text); + document.head.appendChild(style); +} \ No newline at end of file diff --git a/packages/@starbeam-docs/theme/src/Layout.postcss b/packages/@starbeam-docs/theme/src/Layout.postcss new file mode 100644 index 0000000..1de575c --- /dev/null +++ b/packages/@starbeam-docs/theme/src/Layout.postcss @@ -0,0 +1,122 @@ +:global(.switch-lang) { + --ts-bg-color: var(--sb-bg-blue-stronger); + --ts-fg-color: var(--sb-fg-blue); + --ts-fg-focus: var(--sb-fg-blue-stronger); + --js-bg-color: var(--sb-bg-yellow-stronger); + --js-fg-color: var(--sb-fg-yellow-stronger); + --js-fg-focus: var(--sb-fg-yellow-strongest); + --border-size: 2px; + + display: grid; + position: relative; + align-self: center; + height: 20px; + aspect-ratio: 1/1; + border: var(--border-size) solid var(--local-fg); + transition: border 0.4s ease-in-out, background-color 0.4s ease-in-out; + border-radius: var(--sbdoc-radius-sm); + contain: strict; + font-family: var(--sb-font-fancy); + font-weight: var(--sb-font-weight-bold); + font-size: 80%; + user-select: none; + + &:has(:focus-visible) { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: 10px; + + span.js, + &::before { + color: black; + text-decoration: underline; + } + } + + input:focus-visible { + outline: none; + } + + &:not(.checked) { + &, + &::before { + --local-fg: var(--js-fg-color); + --local-bg: var(--js-bg-color); + --local-focus: var(--js-fg-focus); + } + } + + &.checked { + &, + &::before { + --local-fg: var(--ts-fg-color); + --local-bg: var(--ts-bg-color); + --local-focus: var(--ts-fg-focus); + } + } + + &::before { + --border-offset: calc(var(--border-size) * -1); + --duration: 0.15s; + z-index: 0; + content: "TS"; + position: absolute; + top: var(--border-offset); + left: var(--border-offset); + bottom: var(--border-offset); + right: var(--border-offset); + transform: scale(0); + transition: transform var(--duration) ease-in-out, background-color var(--duration) ease-in-out; + } + + &.checked::before { + transform: scale(1); + } + + input { + appearance: none; + + ~ span { + z-index: 1; + opacity: 0; + } + + &:checked ~ .ts { + opacity: 1; + } + + &:not(:checked) ~ .js { + opacity: 1; + } + } + + span, + &::before { + font-size: 0.7em; + position: absolute; + + top: 0; + left: 0; + width: 17px; + height: 18px; + display: grid; + place-content: center; + } + + span.js { + background-color: var(--sb-bg-yellow-stronger); + color: var(--sb-fg-yellow); + + &::before { + content: "JS"; + } + } + + span.ts { + background-color: var(--sb-bg-blue-stronger); + color: var(--sb-fg-blue); + + &::before { + content: "TS"; + } + } +} diff --git a/packages/@starbeam-docs/theme/src/Layout.tsx b/packages/@starbeam-docs/theme/src/Layout.tsx new file mode 100644 index 0000000..b30ed21 --- /dev/null +++ b/packages/@starbeam-docs/theme/src/Layout.tsx @@ -0,0 +1,72 @@ +import DefaultTheme from "vitepress/theme"; +import { defineComponent, onMounted, ref, watch } from "vue"; +import { STORAGE } from "@starbeam-docs/snippets"; +import { checked, js, ts } from "./Layout.css.js"; + +const { Layout } = DefaultTheme; + +export default defineComponent({ + setup() { + setup(); + + return () => ; + }, +}); + +function setup() { + onMounted(() => { + document.body.setAttribute("data-lang", STORAGE.lang); + }); + + const isChecked = ref(false); + + onMounted(() => { + let input: HTMLInputElement; + + const tsElement = document.querySelector( + "#app :is(.social-links, .social-links-list) a[href*=typescript]" + ); + + if (tsElement) { + const label = document.createElement("label"); + label.title = "Show TypeScript code and examples"; + + label.classList.add("switch-lang"); + input = document.createElement("input"); + + input.oninput = (e) => { + isChecked.value = input.checked; + }; + + input.type = "checkbox"; + label.append(input); + + const tsSpan = document.createElement("span"); + tsSpan.classList.add(ts); + label.append(tsSpan); + + const jsSpan = document.createElement("span"); + jsSpan.classList.add(js); + label.append(jsSpan); + + tsElement.replaceWith(label); + + function toggle() { + label.classList.toggle(checked, isChecked.value); + STORAGE.lang = isChecked.value ? "ts" : "js"; + } + + watch(isChecked, toggle); + toggle(); + } + + watch( + () => STORAGE.lang, + (lang) => { + if (typeof globalThis.document !== undefined) + document.body.setAttribute("data-lang", lang); + input.checked = lang === "ts"; + } + ); + }); +} diff --git a/packages/@starbeam-docs/theme/src/index.ts b/packages/@starbeam-docs/theme/src/index.ts new file mode 100644 index 0000000..5e89f84 --- /dev/null +++ b/packages/@starbeam-docs/theme/src/index.ts @@ -0,0 +1 @@ +export { default as Layout } from "./Layout.js"; diff --git a/packages/@starbeam-docs/theme/tsconfig.json b/packages/@starbeam-docs/theme/tsconfig.json new file mode 100644 index 0000000..b90adc6 --- /dev/null +++ b/packages/@starbeam-docs/theme/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "noPropertyAccessFromIndexSignature": true, + "exactOptionalPropertyTypes": true, + "noImplicitOverride": true, + "allowJs": true, + "jsx": "preserve", + "types": ["@vue/runtime-dom", "node"] + }, + "include": ["./src/**/*", "build.mts"] +} diff --git a/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js b/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js new file mode 100644 index 0000000..ce68adb --- /dev/null +++ b/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js @@ -0,0 +1,6 @@ +import { h, Fragment } from "vue"; +export const jsx = h; +export const jsxs = Fragment; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js.map b/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js.map new file mode 100644 index 0000000..8130caa --- /dev/null +++ b/packages/@starbeam-docs/vue-jsx-runtime/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,CAAC,EAAE,QAAQ,QAAQ,MAAM;AAElC,OAAO,MAAM,MAAM,EAAE;AACrB,OAAO,MAAM,OAAO,SAAS","file":"index.js","sourcesContent":["import { h, Fragment } from \"vue\";\n\nexport const jsx = h;\nexport const jsxs = Fragment;\n"]} \ No newline at end of file diff --git a/packages/@starbeam-docs/vue-jsx-runtime/package.json b/packages/@starbeam-docs/vue-jsx-runtime/package.json new file mode 100644 index 0000000..75c635b --- /dev/null +++ b/packages/@starbeam-docs/vue-jsx-runtime/package.json @@ -0,0 +1,19 @@ +{ + "name": "@starbeam-docs/vue-jsx-runtime", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + }, + "./jsx-runtime": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, + "dependencies": { + "vue": "^3.2.47" + } +} diff --git a/packages/@starbeam-docs/vue-jsx-runtime/src/index.ts b/packages/@starbeam-docs/vue-jsx-runtime/src/index.ts new file mode 100644 index 0000000..8690fe7 --- /dev/null +++ b/packages/@starbeam-docs/vue-jsx-runtime/src/index.ts @@ -0,0 +1,4 @@ +import { h, Fragment } from "vue"; + +export const jsx = h; +export const jsxs = Fragment; diff --git a/packages/@types/shell-escape-tag/index.d.ts b/packages/@types/shell-escape-tag/index.d.ts index cb0ff5c..0126022 100644 --- a/packages/@types/shell-escape-tag/index.d.ts +++ b/packages/@types/shell-escape-tag/index.d.ts @@ -1 +1,6 @@ -export {}; +type DynamicSegment = string | string[]; + +export default function ( + raw: TemplateStringsArray, + ...dynamic: DynamicSegment[] +): string; diff --git a/packages/@wycatsjs/utils/dist/index.js b/packages/@wycatsjs/utils/dist/index.js new file mode 100644 index 0000000..2983a1f --- /dev/null +++ b/packages/@wycatsjs/utils/dist/index.js @@ -0,0 +1,5 @@ +export { mapEntries } from "./object.js"; +export { strip } from "./strip.js"; + + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/@wycatsjs/utils/dist/index.js.map b/packages/@wycatsjs/utils/dist/index.js.map new file mode 100644 index 0000000..4031cf5 --- /dev/null +++ b/packages/@wycatsjs/utils/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,QAAQ,cAAc;AACzC,SAAS,KAAK,QAAQ,aAAa","file":"index.js","sourcesContent":["export { mapEntries } from \"./object.js\";\nexport { strip } from \"./strip.js\";\n"]} \ No newline at end of file diff --git a/packages/@wycatsjs/utils/dist/object.js b/packages/@wycatsjs/utils/dist/object.js new file mode 100644 index 0000000..ea2e386 --- /dev/null +++ b/packages/@wycatsjs/utils/dist/object.js @@ -0,0 +1,6 @@ +export function mapEntries(obj, fn) { + return Object.fromEntries(Object.entries(obj).map(([key, value])=>fn(value, key, obj))); +} + + +//# sourceMappingURL=object.js.map \ No newline at end of file diff --git a/packages/@wycatsjs/utils/dist/object.js.map b/packages/@wycatsjs/utils/dist/object.js.map new file mode 100644 index 0000000..350d6c1 --- /dev/null +++ b/packages/@wycatsjs/utils/dist/object.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/object.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,WACd,GAAM,EACN,EAA2D,EACvC;IACpB,OAAO,OAAO,WAAW,CACvB,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,GACnC,GAAG,OAAO,KAAK;AAGrB,CAAC","file":"object.js","sourcesContent":["type AnyRecord = Record;\ntype Value = R[keyof R];\n\nexport function mapEntries, U>(\n obj: R,\n fn: (value: Value, key: keyof R, obj: R) => [keyof R, U]\n): Record {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) =>\n fn(value, key, obj)\n )\n ) as Record;\n}\n"]} \ No newline at end of file diff --git a/packages/@wycatsjs/utils/dist/strip.js b/packages/@wycatsjs/utils/dist/strip.js new file mode 100644 index 0000000..cdd48a3 --- /dev/null +++ b/packages/@wycatsjs/utils/dist/strip.js @@ -0,0 +1,8 @@ +import { parsed } from "@jsergo/tagged-templates"; +export const strip = parsed((lines)=>{ + const minIndent = lines.minIndent(); + return lines.dedent(minIndent).display(); +}); + + +//# sourceMappingURL=strip.js.map \ No newline at end of file diff --git a/packages/@wycatsjs/utils/dist/strip.js.map b/packages/@wycatsjs/utils/dist/strip.js.map new file mode 100644 index 0000000..f41a051 --- /dev/null +++ b/packages/@wycatsjs/utils/dist/strip.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/strip.ts"],"names":[],"mappings":"AAAA,SAAgB,MAAM,QAAQ,2BAA2B;AAEzD,OAAO,MAAM,QAAQ,OAAO,CAAC,QAAiC;IAC5D,MAAM,YAAY,MAAM,SAAS;IACjC,OAAO,MAAM,MAAM,CAAC,WAAW,OAAO;AACxC,GAAG","file":"strip.js","sourcesContent":["import { Lines, parsed } from \"@jsergo/tagged-templates\";\n\nexport const strip = parsed((lines: Lines): string => {\n const minIndent = lines.minIndent();\n return lines.dedent(minIndent).display();\n});\n"]} \ No newline at end of file diff --git a/packages/@wycatsjs/utils/package.json b/packages/@wycatsjs/utils/package.json new file mode 100644 index 0000000..d86170a --- /dev/null +++ b/packages/@wycatsjs/utils/package.json @@ -0,0 +1,15 @@ +{ + "name": "@wycatsjs/utils", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, + "dependencies": { + "@jsergo/tagged-templates": "workspace:^" + } +} diff --git a/packages/@wycatsjs/utils/project.json b/packages/@wycatsjs/utils/project.json new file mode 100644 index 0000000..99621df --- /dev/null +++ b/packages/@wycatsjs/utils/project.json @@ -0,0 +1,9 @@ +{ + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "name": "wycats-utils", + "projectType": "library", + "tags": ["scope:lib"], + "targets": { + "build": {} + } +} diff --git a/packages/@wycatsjs/utils/src/index.ts b/packages/@wycatsjs/utils/src/index.ts new file mode 100644 index 0000000..75ee2ad --- /dev/null +++ b/packages/@wycatsjs/utils/src/index.ts @@ -0,0 +1,2 @@ +export { mapEntries } from "./object.js"; +export { strip } from "./strip.js"; diff --git a/packages/@wycatsjs/utils/src/object.ts b/packages/@wycatsjs/utils/src/object.ts new file mode 100644 index 0000000..74eb8de --- /dev/null +++ b/packages/@wycatsjs/utils/src/object.ts @@ -0,0 +1,13 @@ +type AnyRecord = Record; +type Value = R[keyof R]; + +export function mapEntries, U>( + obj: R, + fn: (value: Value, key: keyof R, obj: R) => [keyof R, U] +): Record { + return Object.fromEntries( + Object.entries(obj).map(([key, value]) => + fn(value, key, obj) + ) + ) as Record; +} diff --git a/packages/@wycatsjs/utils/src/strip.ts b/packages/@wycatsjs/utils/src/strip.ts new file mode 100644 index 0000000..59210aa --- /dev/null +++ b/packages/@wycatsjs/utils/src/strip.ts @@ -0,0 +1,6 @@ +import { Lines, parsed } from "@jsergo/tagged-templates"; + +export const strip = parsed((lines: Lines): string => { + const minIndent = lines.minIndent(); + return lines.dedent(minIndent).display(); +}); diff --git a/packages/@wycatsjs/utils/tsconfig.build.json b/packages/@wycatsjs/utils/tsconfig.build.json new file mode 100644 index 0000000..8839fbd --- /dev/null +++ b/packages/@wycatsjs/utils/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "emitDeclarationOnly": true, + "declarationMap": true + }, + "include": ["./index.ts", "./src/**/*"] +} diff --git a/packages/@wycatsjs/utils/tsconfig.json b/packages/@wycatsjs/utils/tsconfig.json new file mode 100644 index 0000000..dec7962 --- /dev/null +++ b/packages/@wycatsjs/utils/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.package.json", + "compilerOptions": { "outDir": "./dist", "emitDeclarationOnly": true } +} diff --git a/packages/api-docs/package.json b/packages/api-docs/package.json index 6f20ab3..32dfa7d 100644 --- a/packages/api-docs/package.json +++ b/packages/api-docs/package.json @@ -13,6 +13,6 @@ "schema:build": "ts-json-schema-generator -p $PWD/src/api.d.ts -o $PWD/dist/api.schema.json --strict-tuples -t Apis --validation-keywords markdownDescription" }, "dependencies": { - "ts-json-schema-generator": "next" + "ts-json-schema-generator": "^1.2.0" } } diff --git a/packages/chomp-extensions/chomp.d.ts b/packages/chomp-extensions/chomp.d.ts new file mode 100644 index 0000000..c8034f9 --- /dev/null +++ b/packages/chomp-extensions/chomp.d.ts @@ -0,0 +1,128 @@ +// + +type Invalidation = "always" | "mtime" | "not-found"; +type Display = + | "none" + | "init-status" + | "init-only" + | "status-only" + | "dot"; +type Stdio = + | "none" + | "no-stdin" + | "stdout-only" + | "stderr-only" + | "all"; +type Engine = "node" | "deno" | "cmd"; +type Validation = + | "none" + | "ok-only" + | "targets-only" + | "ok-targets"; + +interface TemplateOptions { + template: string; + templateOptions?: T; +} + +type Template< + T extends Record = Record +> = + | Record + | { + template: string; + templateOptions?: T; + }; + +type SugaryChompTask = { + readonly name: string; + readonly serial?: boolean; + /** + * @default {"mtime"} + */ + readonly invalidation?: Invalidation; + /** + * @default {"init-status"} + */ + readonly display?: Display; + /** + * @default {false} + */ + readonly echo?: boolean; + /** + * @default {"all"} + */ + readonly stdio?: Stdio; + /** + * @default {"cmd"} + */ + readonly engine?: Engine; + readonly run?: string; + readonly envDefault?: Record; + /** + * @default {true} + */ + readonly envReplace?: boolean; + /** + * @default {"ok-targets"} + */ + readonly validation?: Validation; +} & TemplateOptions; + +type Deps = + | TemplateOptions + | (Partial> & + Multi<"dep"> & + Partial>); + +type ChompTask = { + name: string; + targets: string[]; + deps: string[]; + serial?: boolean; + /** + * @default {"mtime"} + */ + invalidation?: Invalidation; + /** + * @default {"init-status"} + */ + display?: Display; + /** + * @default {false} + */ + echo?: boolean; + /** + * @default {"all"} + */ + stdio?: Stdio; + /** + * @default {"cmd"} + */ + engine?: Engine; + run?: string; + envDefault?: Record; + /** + * @default {true} + */ + envReplace?: boolean; + /** + * @default {"ok-targets"} + */ + validation?: Validation; +} & Template; + +type MultiOpt = Partial< + Multi +>; + +type Multi = + | { [P in N]: string } + | { [P in `${N}s`]: T[] }; + +declare const Chomp: { + registerTemplate( + name: string, + template: (task: ChompTask) => SugaryChompTask[] + ); +}; diff --git a/packages/chomp-extensions/dts.js b/packages/chomp-extensions/dts.js new file mode 100644 index 0000000..9b86cb8 --- /dev/null +++ b/packages/chomp-extensions/dts.js @@ -0,0 +1,87 @@ +// @ts-check + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + +{ + /** @typedef {{root: string}} TaskOptions */ + + Chomp.registerTemplate( + "dts", + /** + * @param {ChompTask} task + * @returns {SugaryChompTask[]} + */ + function (task) { + if (task.engine || task.run) + throw new Error('"engine", "run" not configurable for Replace template.'); + + const { root } = task.templateOptions ?? {}; + + if (!root) { + throw new Error('"root" is required in the .d.ts template.'); + } + + return [ + { + name: task.name, + target: `${root}/dist/##.d.ts`, + dep: `${root}/src/##.ts`, + display: task.display, + run: `tsc \${{DEP}} ${flags(root)}`, + }, + ]; + } + ); + + const tsconfig = { + target: "esnext", + module: "ESNext", + declaration: true, + emitDeclarationOnly: true, + declarationMap: true, + jsx: "preserve", + moduleResolution: "bundler", + allowImportingTsExtensions: false, + allowArbitraryExtensions: true, + verbatimModuleSyntax: true, + moduleDetection: "force", + forceConsistentCasingInFileNames: true, + strict: true, + noImplicitAny: true, + noUncheckedIndexedAccess: true, + noPropertyAccessFromIndexSignature: true, + exactOptionalPropertyTypes: true, + noImplicitOverride: true, + noImplicitReturns: true, + lib: ["ESNext", "DOM", "DOM.Iterable"], + types: ["node", "@vue/runtime-dom"], + skipLibCheck: true, + }; + + /** + * @param {string} root + * @return {string} + */ + function flags(root) { + /** @const */ + + return Object.entries({ ...tsconfig, outDir: `${root}/dist` }) + .flatMap((entry) => kv(entry)) + .join(" "); + } + + /** + * @param {[key: string, value: string | boolean | string[]]} entry + * @returns {string[]} + */ + function kv([key, value]) { + if (Array.isArray(value)) { + return [`--${key}`, value.join(",")]; + } + if (typeof value === "boolean") { + return value ? [`--${key}`] : []; + } + return [`--${key}`, value]; + } +} diff --git a/packages/chomp-extensions/ideas.md b/packages/chomp-extensions/ideas.md new file mode 100644 index 0000000..e9bc8e5 --- /dev/null +++ b/packages/chomp-extensions/ideas.md @@ -0,0 +1,386 @@ +# Ideas + +## Extension Improvements + +### Source File Location + +- `ENV.CHOMP_EXTFILE` +- `ENV.CHOMP_EXTDIR` + +### Extensions Importing Other Extensions + +Avoids the need for a Chompfile that uses an extension to declare +transitive dependencies. + +> The [source file location](#source-file-location) proposal +> above would allow an extension to declare other extensions +> relative to itself. +> +> An imported extension is available to tasks returned by the +> extension, but not to the file that included the extension. + +
+ Out of scope: exported extensions + +**Out of scope**: exported extensions. It might be useful to +support an extension exporting/declaring extensions, but that +opens up a can of worms: does the chompfile that uses an +extension that exports other extensions need to explicitly import +those names? Can the names be renamed? It's not a bad feature but +it's much more complex than letting an extension use extensions +in its own exported tasks that aren't visible to the chompfile +that uses the extension. + +
+ +```ts +Chomp.registerTemplate("name", (task) => { + const { root } = task.templateOptions; + + return { + extensions: { + // This example assumes the relative path reform described + // below, and assumes that it would apply to extensions. + // + // That's not the only possible design, and it's orthogonal + // to the question of whether this feature is a good idea. + dts: "./dts.js", + swc: "chomp@0.1:swc", + }, + tasks: [ + { + name: task.name, + deps: [`js:${task.name}`, `dts:${task.name}`], + } + // In this example, these utility tasks would be exposed + // to the `chomp list` command. The + { + name: `js:${task.name}`, + template: "swc", + target: `${root}/dist/##.js`, + dep: `${root}/src/##.ts`, + }, + { + name: `dts:${task.name}`, + template: "dts", + templateOptions: { + root, + }, + }, + ], + }; +}); +``` + +## Workspace Improvements + +### Import chompfile.toml + +_More generally: allowing Chompfiles to be "lexically scoped". +This same goal applies to the tasks returned by an extension._ + +```toml +[[task]] +import = "./packages/#/chompfile.toml" +``` + +> Original motivation: make monorepo watching work. "Shelling +> out" to another Chompfile doesn't quite work. + +To import a module so it can be used as a dependency, but don't +expose its tasks in the task list: + +```toml +[[task]] +import = [{ module = "./packages/#/chompfile.toml", hidden = true }] +``` + +Imported chompfile: + +```toml +version = 0.1 +name = "modulename" + +[[task]] +# ... +``` + +Mechanics: + +- All filenames in the imported chompfile will get rewritten to + be relative to the file location. +- All tasks names will be prefixed with the package name. + +Since imported modules are merged with the importer's chompfile, +the system has a holistic view of all source and target files. + +> The current design uses `cwd` as the primary way to resolve +> relative paths. This change would make the chompfile the source +> for relative paths, and make it resiliant to the actual `cwd` +> of the running process. +> +> In the case of imported `chompfile`s, this is necessary because +> it's no longer possible to have a directory that describes +> relative resolution for all chompfiles. + +## Execution Improvements + +### Clean + +Since the current model enumerates the targets, cleaning up prior +targets ought to be possible. + +> This could also be an extension point for third-party +> extensions. For example, the `targets` returned by a registered +> task could be a function that takes a dep filename and returns +> a target filename. +> +> This may be a good thing to support regardless of whether the +> `clean` proposal is accepted. + +```shell +$ chomp clean +# Cleaning up... done. +$ chomp clean --verbose +# Cleaning up... +# - packages/mdit/dist/index.js +# - packages/mdit/dist/index.d.ts +# - packages/mdit/dist/index.js.map +# - packages/mdit/dist/index.d.ts.map +``` + +### Verbose Operations + +In verbose mode, list the operations that are performed. + +> This could be an extension point for third-party extensions. +> For example, a "clean" extension could remove files, and could +> use this extension point to enumerate the files it is removing. + +
+ Aside: Dry Run + +This could also enable a "dry run" mode, which would list the +operations that would be performed, but would not actually +perform them. To allow this in the future, it might be a good +idea to make sure that the way that an extension reports its +operations isn't interleaved with direct execution of those +operations. + +One possible approach could be: as an alternative to returning a +string for `run`, extensions could return an array of +`Operation`s. + +Each `Operation` would have: + +- an engine +- the command to run +- a description of the operation for logging purposes + +For logging purposes, it might be useful for the operation +description to be structured, so the description could include +information about what source and target files it is operating +on. + +If this proposal was implemented, we should start with a simple +description, and keep an eye out for use-cases that would benefit +from more structured information around the description. + +
+ +### `uncached-only` Status + +In some situations, listing each cache hit is too noisy. + +Relatedly, it might be useful to decompose the status into +something like: + +```toml +display = { init = true, cache-hit = false, cache-miss = true } +``` + +The existing status could remain, and be treated as shorthands +for the expanded form. + +## Template Improvements + +### File Parameters + +This would allow templates to get file contents in their +top-level, and not need to resort to readFileSync inside of the +node engine to get the contents. + +```toml +template-options = { + package.file = "./packages/file.json" +} +``` + +If the [previous section](#import-chompfiletoml) was also +accepted, then this approach has an added benefit: marking a +parameter as a file makes it possible to transparently rewrite it +to be relative to the file location. + +## Path Improvements + +### Mapping a Single Dep to Multiple Targets + +Allow one interpolation in a single `dep` to be used in each +target. + +Example: + +```toml +dep = "src/##.ts" +targets = [ + dist/##.js + dist/##.js.map +] +``` + +> In practice, a change to the `.js.map` file might always imply +> a change to the `.js` file, so it may not be necessary to +> include both targets. However, this may not actually be true, +> and it's definitely not true for `.d.ts` and `.d.ts.map`. More +> generally, I think the current model easily supports direct 1:N +> mappings (as opposed to N:M mappings, which are more tricky). +> +> If the [clean](#clean) proposal is accepted, then some way to +> document 1:N mappings is necessary to fully enumerate the +> outputs to clean. +> +> Also, while weird mappings are problematic in general, if +> you're just trying to document the behavior of an extension +> (i.e. an external tool), then more elaborate mappings might +> even be fine and good to support. + +### Named interpolations + +In addition to a single anonymous interpolation, allow multiple +named interpolations (possibly only `#` interpolations). + +```toml +dep = "packages/#scope/#pkg/src/##.ts" +target = "packages/#scope/#pkg/dist/##.ts" +``` + +> If the +> [map to multiple targets](#mapping-a-single-dep-to-multiple-targets) +> proposal is adopted, then each named interpolation in `dep` +> should be available in each target. + +### Interpolation scoping + +```toml +dep."packages/#scope/#pkg/src/##.ts" = { + scope = "@*" +} +target = "packages/#scope/#pkg/dist/##.ts" +``` + +### Unambiguous Path Prefix + +When a pathname starts with `.`, it refers to a special path +variable: + +- `.`: the dirname of the current chompfile +- ``: the dirname of the chompfile that was executed + (and not imported) + +Optionally, a workspace chompfile could declare special prefixes +that are surrounded by `<` and `>` characters. + +> `<` and `>` are used in shell redirects, and are essentially +> reserved characters in paths for that reason. + +
+ Multiple Chompfile Example + +```toml +# chompfile.toml + +[env.prefixes] +# this is the default + = "." + = "./packages" +``` + +```toml +# packages/mylib/chompfile.toml + +import = [ + "/chompfile.shared.toml" +] +``` + +
+ +### Canonical Form (Elaboration) + +### Mapping (speculative) + +As an alternative syntax to `dep` and `target`. + +```toml +map = { + source."packages/#scope/#pkg/src/##.ts" = { + scope = "@*" + } + target = "packages/#scope/#pkg/dist/##.ts" +} +``` + +## Chompfile Structure Improvements + +### Task Name in Table as alternative to `[[]]` + +```toml +[tasks."dts:mdit"] +template = "dts" +template-options = { + root = "packages/@jsergo/mdit" +} +``` + +### Nest Template Config + +```toml +[[task]] +name = "dts:mdit" +template.dts = { root = "packages/@jsergo/mdit" } +``` + +
+ Together + +```toml +[tasks."dts:mdit"] +template.dts = { + root = "packages/@jsergo/mdit" +} +``` + +
+ +## Model Improvements + +### `invalidation: "digest"` + +This is generally not what you want, but it may be useful when +you compile a transitive dependency, and that output hasn't +changed. + +> Example: You have a task to generate `.d.ts` files, and then +> another task that bundles them into a single `.d.ts` file. You +> could make a lot of changes to the source `.ts` files without +> any changes to the `.d.ts` files, so it would be good to avoid +> re-bundling every time you change the `.ts` files. + +## More Builtins + +- Remove files and directories + +## Node Engine Improvements + +- Document the `node` engine environment +- Access to glob diff --git a/packages/chomp-extensions/inline-css.js b/packages/chomp-extensions/inline-css.js new file mode 100644 index 0000000..9f0ebaa --- /dev/null +++ b/packages/chomp-extensions/inline-css.js @@ -0,0 +1,27 @@ +// @ts-check + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + +{ + /** @typedef {{root: string}} TaskOptions */ + Chomp.registerTemplate("inline-css", function (task) { + if (task.engine || task.run) + throw new Error('"engine", "run" not configurable for inline-css template.'); + + const { from, to, throwUnmatched } = task.templateOptions; + + return [ + { + name: task.name, + targets: task.targets, + deps: task.deps, + engine: "node", + run: ` import { readFileSync, writeFileSync } from 'fs'; + let source = readFileSync(process.env.DEP, 'utf8'); + console.info(${JSON.stringify(to)}, source) + `, + }, + ]; + }); +} diff --git a/packages/chomp-extensions/pkg.js b/packages/chomp-extensions/pkg.js new file mode 100644 index 0000000..76b92b4 --- /dev/null +++ b/packages/chomp-extensions/pkg.js @@ -0,0 +1,69 @@ +// @ts-check + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + +/** @typedef {{root: string}} PkgOptions */ + +const DISPLAY = "status-only"; + +Chomp.registerTemplate( + "pkg", + /** + * @param {ChompTask} task + * @returns {SugaryChompTask[]} + */ + (task) => { + if (task.engine || task.run) + throw new Error('"engine", "run" not configurable for Replace template.'); + + const { root } = task.templateOptions ?? {}; + + if (!root) { + throw new Error('"root" is required in the .d.ts template.'); + } + + return [ + { + name: task.name, + serial: true, + deps: [...task.deps, `${task.name}:pkg`], + }, + { + name: `${task.name}:pkg`, + deps: [`${task.name}:js`, `${task.name}:jsx`], + serial: task.serial, + }, + { + name: `${task.name}:clean`, + invalidation: "always", + run: `rm -rf ${root}/dist`, + }, + // { + // name: `${task.name}:dts`, + // display: DISPLAY, + // template: "dts", + // templateOptions: { + // root, + // }, + // }, + { + name: `${task.name}:js`, + template: "swc", + display: DISPLAY, + target: `${root}/dist/##.js`, + dep: `${root}/src/##.ts`, + }, + { + name: `${task.name}:jsx`, + template: "swc", + templateOptions: { + configFile: "packages/.swcrc", + }, + display: DISPLAY, + target: `${root}/dist/##.js`, + dep: `${root}/src/##.tsx`, + }, + ]; + } +); diff --git a/packages/chomp-extensions/pkgs.js b/packages/chomp-extensions/pkgs.js new file mode 100644 index 0000000..7262ec5 --- /dev/null +++ b/packages/chomp-extensions/pkgs.js @@ -0,0 +1,55 @@ +// @ts-check + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + +{ + /** @typedef {{root: string}} PkgOptions */ + + const DISPLAY = "status-only"; + + Chomp.registerTemplate( + "pkg", + /** + * @param {ChompTask} task + * @returns {SugaryChompTask[]} + */ + (task) => { + if (task.engine || task.run) + throw new Error('"engine", "run" not configurable for Replace template.'); + + const { root } = task.templateOptions ?? {}; + + if (!root) { + throw new Error('"root" is required in the .d.ts template.'); + } + + return [ + { + name: task.name, + deps: [`${task.name}:dts`, `${task.name}:js`], + }, + { + name: `${task.name}:clean`, + invalidation: "always", + run: `rm -rf ${root}/dist`, + }, + { + name: `${task.name}:dts`, + display: DISPLAY, + template: "dts", + templateOptions: { + root, + }, + }, + { + name: `${task.name}:js`, + template: "swc", + display: DISPLAY, + target: `${root}/dist/##.js`, + dep: `${root}/src/##.ts`, + }, + ]; + } + ); +} diff --git a/packages/chomp-extensions/postcss.js b/packages/chomp-extensions/postcss.js new file mode 100644 index 0000000..2492627 --- /dev/null +++ b/packages/chomp-extensions/postcss.js @@ -0,0 +1,43 @@ +// @ts-check + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + +{ + /** @typedef {{root: string}} TaskOptions */ + + Chomp.registerTemplate( + "postcss", + /** + * @param {ChompTask} task + * @returns {SugaryChompTask[]} + */ + function (task) { + if (task.engine || task.run) + throw new Error('"engine", "run" not configurable for Replace template.'); + + const { root } = task.templateOptions ?? {}; + + if (!root) { + throw new Error('"root" is required in the postcss template.'); + } + + return [ + { + name: task.name, + serial: true, + deps: [`${task.name}:css`], + }, + { + name: `${task.name}:css`, + targets: [`${root}/dist/##.css`], + deps: [`${root}/src/##.postcss`], + display: task.display, + echo: true, + + run: `postcss \${{DEP}} --config packages -o \${{TARGET}}`, + }, + ]; + } + ); +} diff --git a/packages/monaco/package.json b/packages/monaco/package.json new file mode 100644 index 0000000..564a470 --- /dev/null +++ b/packages/monaco/package.json @@ -0,0 +1,8 @@ +{ + "name": "@starbeam/monaco", + "private": true, + "type": "module", + "dependencies": { + "monaco-editor": "^0.35.0" + } +} diff --git a/packages/monaco/src/dummy.ts b/packages/monaco/src/dummy.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/packages/monaco/src/dummy.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/monaco/src/worker/dependencies.ts b/packages/monaco/src/worker/dependencies.ts new file mode 100644 index 0000000..b861ac2 --- /dev/null +++ b/packages/monaco/src/worker/dependencies.ts @@ -0,0 +1,74 @@ +globalThis.localStorage = + globalThis.localStorage ?? ({} as Storage); + +export const BUCKET_URL = + "https://prod-packager-packages.codesandbox.io/v1/typings"; +export const TYPES_REGISTRY = + "https://unpkg.com/types-registry@latest/index.json"; + +export interface DependencyFile { + readonly module: { + readonly code: string; + }; +} + +export type DependencyFiles = Record; + +class EsmShTypes { + static default() { + return new EsmShTypes("https://esm.sh"); + } + + readonly #root: string; + + constructor(root: string) { + this.#root = root; + } + + async types(pkg: string, version = "latest") { + const response = await fetch( + `${this.#root}/${pkg}@${version}`, + { + method: "HEAD", + } + ); + + const ts = response.headers.get("x-typescript-types"); + + if (ts) { + console.info("found", `${pkg}@${version}`, ts); + } else { + console.warn("not found", `${pkg}@${version}`); + } + } +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const TYPES = EsmShTypes.default(); + +/** + * Fetch dependencies types from CodeSandbox CDN + */ +export async function fetchDependencyTyping({ + name, + version, +}: { + name: string; + version: string; +}): Promise { + try { + const url = `${BUCKET_URL}/${name}/${version}.json`; + const { files } = await fetch(url).then((data) => + data.json() + ); + + return files; + } catch { + console.warn("error fetching dep", { + name, + version, + url: `${BUCKET_URL}/${name}/${version}.json`, + }); + return {}; + } +} diff --git a/packages/monaco/src/worker/enums.ts b/packages/monaco/src/worker/enums.ts new file mode 100644 index 0000000..a793329 --- /dev/null +++ b/packages/monaco/src/worker/enums.ts @@ -0,0 +1,57 @@ +import ts from "typescript"; + +// export enum ModuleResolutionKind { +// Classic = 1, +// NodeJs = 2, + +// } + +export interface ModuleResolutionKind { + Classic: ts.ModuleResolutionKind.Classic; + Node10: ts.ModuleResolutionKind.Node10; + Node16: ts.ModuleResolutionKind.Node16; + NodeNext: ts.ModuleResolutionKind.NodeNext; + Bundler: ts.ModuleResolutionKind.Bundler; +} + +export const ModuleResolutionKind: ModuleResolutionKind = { + Classic: 1, + Node10: 2, + Node16: 3, + NodeNext: 99, + Bundler: 100, +}; + +export interface ScriptTarget { + ES2020: ts.ScriptTarget.ES2020; + ES2021: ts.ScriptTarget.ES2021; + ES2022: ts.ScriptTarget.ES2022; + ESNext: ts.ScriptTarget.ESNext; +} + +export interface ModuleKind { + ES2020: ts.ModuleKind.ES2020; + ES2022: ts.ModuleKind.ES2022; + ESNext: ts.ModuleKind.ESNext; + Node16: ts.ModuleKind.Node16; + NodeNext: ts.ModuleKind.NodeNext; +} + +export const ScriptTarget: ScriptTarget = { + ES2020: 7, + ES2021: 8, + ES2022: 9, + ESNext: 99, +}; + +export const ModuleKind: ModuleKind = { + ES2020: 6, + ES2022: 7, + ESNext: 99, + Node16: 100, + NodeNext: 199, +}; + +type Version = `${typeof ts["versionMajorMinor"]}.${string}`; + +export const TS_VERSION: Version = "5.0.0"; diff --git a/packages/monaco/src/worker/events.ts b/packages/monaco/src/worker/events.ts new file mode 100644 index 0000000..3fdc77c --- /dev/null +++ b/packages/monaco/src/worker/events.ts @@ -0,0 +1,62 @@ +import { logOnServer } from "../shared/log.js"; +import type { Events } from "../shared/messages.js"; +import { + autocompleteAtPosition, + infoAtPosition, + updateFile, +} from "./main.js"; +import { createTsSystemIfNeeded } from "./ts/index.js"; + +const doCreateSystem = (payload: { + files: Record; + entry: string; + fsMapCached: Map; +}) => { + createTsSystemIfNeeded( + payload.files, + payload.entry, + payload.fsMapCached + ); +}; + +addEventListener( + "message", + (event: MessageEvent<{ event: string; details: any }>) => { + const { + data: { event: name, details }, + } = event; + + logOnServer("in", name, details); + + switch (name) { + case "create-system": { + doCreateSystem(details); + break; + } + case "updateText": { + updateFile(details.filePath, details.content); + break; + } + case "autocomplete-request": { + autocompleteAtPosition(details.pos, details.filePath); + break; + } + case "tooltip-request": { + infoAtPosition(details.pos, details.filePath); + break; + } + } + } +); + +addEventListener("messageerror", (e) => { + console.error("messageerror", e); +}); + +export function post( + event: K, + details: Events[K] +) { + logOnServer("out", event, details); + postMessage({ event, details }); +} diff --git a/packages/monaco/src/worker/main.ts b/packages/monaco/src/worker/main.ts new file mode 100644 index 0000000..5113a17 --- /dev/null +++ b/packages/monaco/src/worker/main.ts @@ -0,0 +1,49 @@ +import { type VirtualTypeScriptEnvironment } from "@typescript/vfs"; +import ts from "typescript"; +import "./events.js"; +import { post } from "./events.js"; + +let env: VirtualTypeScriptEnvironment; + +post("ready", []); + +console.debug("Hello from the worker"); + +export function updateFile(filePath: string, content: string) { + env.updateFile(filePath, content); +} + +export function autocompleteAtPosition( + pos: number, + filePath: string +) { + let result = env.languageService.getCompletionsAtPosition( + filePath, + pos, + {} + ); + + post("autocomplete-results", result); +} + +export function infoAtPosition(pos: number, filePath: string) { + let result = env.languageService.getQuickInfoAtPosition( + filePath, + pos + ); + + post( + "tooltip-results", + result + ? { + result, + tootltipText: + ts.displayPartsToString(result.displayParts) + + (result.documentation?.length + ? "\n" + + ts.displayPartsToString(result.documentation) + : ""), + } + : { result, tooltipText: "" } + ); +} diff --git a/packages/monaco/src/worker/ts/build.ts b/packages/monaco/src/worker/ts/build.ts new file mode 100644 index 0000000..2f242a0 --- /dev/null +++ b/packages/monaco/src/worker/ts/build.ts @@ -0,0 +1,150 @@ +import { + createSystem, + createVirtualTypeScriptEnvironment, +} from "@typescript/vfs"; +import ts from "typescript"; +import { TS_VERSION } from "../../shared/version.js"; +import { TYPES_REGISTRY } from "../dependencies.js"; +import { post } from "../events.js"; +import { Dependencies, PackageFile } from "./dep.js"; +import { Inputs, type CacheableFile } from "./input.js"; +import { + TsSystem, + type CachedFsMap, + type TypeRegistry, +} from "./system.js"; +import { getCache, getDependencies } from "./utils.js"; + +export class BuildTsSystem { + static async create( + files: Record, + entry: string, + fsMapCached: Map + ) { + const input = Inputs.process(files); + const compilerOptions = input.compilerOptions; + + const cache = await FileCache.create( + fsMapCached, + compilerOptions + ); + + const deps = await Dependencies.create(cache); + + return new BuildTsSystem( + input, + compilerOptions, + cache, + deps + ); + } + + readonly #input: Inputs; + readonly #compilerOptions: ts.CompilerOptions; + readonly #cache: FileCache; + readonly #deps: Dependencies; + + private constructor( + input: Inputs, + compilerOptions: ts.CompilerOptions, + cache: FileCache, + deps: Dependencies + ) { + this.#input = input; + this.#compilerOptions = compilerOptions; + this.#cache = cache; + this.#deps = deps; + } + + /** + * Add local files to the file-system + */ + #addTsFiles() { + for (const file of this.#input.tsFiles) { + this.#cache.addFile(file); + } + } + + /** + * Post CDN payload to cache in the browser storage + */ + #sendFilesToClient() { + post("cache-typescript-fsmap", { + fsMap: this.#cache.map, + version: TS_VERSION, + }); + } + + async #fetchDependencies() { + for (const [name, version] of getDependencies( + this.#input.packageJson + )) { + await this.#deps.fetchDependency(name, version); + } + } + + async create(): Promise { + this.#addTsFiles(); + this.#sendFilesToClient(); + await this.#fetchDependencies(); + + const system = createSystem(this.#cache.map); + const env = createVirtualTypeScriptEnvironment( + system, + this.#input.roots, + ts, + this.#compilerOptions + ); + + return TsSystem.create(env, system); + } +} + +export class FileCache { + static async create( + fsMapCached: Map, + compilerOptions: ts.CompilerOptions + ): Promise { + const cache = await getCache(fsMapCached, compilerOptions); + return new FileCache(cache, null); + } + + readonly #cache: CachedFsMap; + #lazyTypeRegistry: TypeRegistry | null; + + constructor( + cache: CachedFsMap, + typeRegistry: TypeRegistry | null + ) { + this.#cache = cache; + this.#lazyTypeRegistry = typeRegistry; + } + + get map(): CachedFsMap { + return this.#cache; + } + + async typeRegistry(): Promise { + if (!this.#lazyTypeRegistry) { + const response = await fetch(TYPES_REGISTRY); + const data = await response.json(); + this.#lazyTypeRegistry = data.entries as TypeRegistry; + } + + return this.#lazyTypeRegistry; + } + + addFile(file: CacheableFile) { + this.#cache.set(file.cacheKey, file.content); + post("add-lib", { + code: file.content, + path: file.absolutePath, + }); + } + + addType(file: PackageFile) { + if (file.isTypeRelevant) { + this.addFile(file); + } + } +} diff --git a/packages/monaco/src/worker/ts/dep.ts b/packages/monaco/src/worker/ts/dep.ts new file mode 100644 index 0000000..9924a91 --- /dev/null +++ b/packages/monaco/src/worker/ts/dep.ts @@ -0,0 +1,238 @@ +import { + fetchDependencyTyping, + type DependencyFiles, +} from "../dependencies.js"; +import { FileCache } from "./build.js"; +import type { CacheableFile } from "./input.js"; +import { typeNameForPackage } from "./utils.js"; + +export class Dependencies { + static create(cache: FileCache) { + return new Dependencies(cache); + } + + readonly #cache: FileCache; + + private constructor(cache: FileCache) { + this.#cache = cache; + } + + async fetchDependency(name: string, version: string) { + return DependencyPackage.fetch(name, version, this.#cache); + } +} + +export class DependencyPackage { + static async fetch( + name: string, + version: string, + cache: FileCache + ) { + const files = await fetchDependencyTyping({ + name, + version, + }); + + const dep = DependencyPackage.create( + cache, + name, + PackageFiles.from(files, cache) + ); + + if (!dep.hasTypes) { + await dep.fetchTypes(); + } + } + + static create( + cache: FileCache, + pkg: string, + files: PackageFiles + ) { + return new DependencyPackage(cache, pkg, files); + } + + readonly #cache: FileCache; + readonly #pkg: string; + readonly #files: PackageFiles; + + constructor( + cache: FileCache, + pkg: string, + files: PackageFiles + ) { + this.#cache = cache; + this.#pkg = pkg; + this.#files = files; + } + + get files() { + return this.#files; + } + + get hasTypes() { + return [...this.#files].some((file) => file.isType); + } + + async fetchTypes() { + const typeRegistry = await this.#cache.typeRegistry(); + const name = typeNameForPackage(`@types/${this.#pkg}`); + + if (typeRegistry[this.#pkg]) + DependencyPackage.fetch(name, "latest", this.#cache); + + if (typeRegistry[name]) { + const atTypeFiles = await fetchDependencyTyping({ + name: typeNameForPackage(name), + version: typeRegistry[name]?.latest ?? "latest", + }); + + for (const [name, file] of Object.entries(atTypeFiles)) { + this.#files.addFile( + PackageFile.create(name, file.module.code) + ); + } + } + } +} + +export class PackageFiles implements Iterable { + static empty(cache: FileCache) { + return new PackageFiles(cache, {}); + } + + static from(files: DependencyFiles, cache: FileCache) { + const packageFiles = PackageFiles.empty(cache); + + for (const [path, value] of Object.entries(files)) { + if (!path.startsWith("/")) { + throw Error( + `INVALID ASSUMPTION: paths returned from fetchDependencyTyping must start with '/': ${path}` + ); + } + + const file = PackageFile.create( + path.slice(1), + value.module.code + ); + + if (file.isTypeRelevant) { + packageFiles.addFile(file); + } + } + + return packageFiles; + } + + readonly #cache: FileCache; + readonly #files: Record; + + constructor( + cache: FileCache, + files: Record + ) { + this.#cache = cache; + this.#files = files; + } + + addFile(file: PackageFile) { + if (file.isTypeRelevant) { + this.#cache.addFile(file); + this.#files[file.absolutePath] = file; + } + } + + *[Symbol.iterator](): Iterator { + yield* Object.values(this.#files); + } +} + +const FILE_PARTS = + /^(?:(?@[^/]+)[/])?(?:(?[^/]+)[/])(?[^.]*)(?:\.(?.*))?$/; + +class FileName { + static parse(filename: string) { + const match = FILE_PARTS.exec(filename); + + if (!match || !match.groups) { + throw Error( + `Invalid dependency filename: ${filename} (expected a path nested in a package name)` + ); + } + + const { scope, name, path, ext } = + match.groups as unknown as FileName; + + return new FileName(filename, scope, name, path, ext); + } + + readonly full: string; + readonly scope: string | undefined; + readonly name: string; + readonly path: string; + readonly ext: string | undefined; + + constructor( + full: string, + scope: string | undefined, + name: string, + path: string, + ext: string | undefined + ) { + this.full = full; + this.scope = scope; + this.name = name; + this.path = path; + this.ext = ext; + } + + get basename() { + return `${this.name}.${this.ext}`; + } + + get isType() { + return this.ext === "d.ts"; + } +} + +export class PackageFile implements CacheableFile { + static create(path: string, code: string) { + const file = FileName.parse(path); + return new PackageFile(file, code); + } + + readonly #filename: FileName; + readonly #code: string; + + private constructor(filename: FileName, code: string) { + this.#filename = filename; + this.#code = code; + } + + get absolutePath(): string { + return this.cacheKey; + } + + get cacheKey(): string { + return `node_modules/${this.#filename.full}`; + } + + get name(): FileName { + return this.#filename; + } + + get content(): string { + return this.#code; + } + + get isType() { + return this.#filename.isType; + } + + get isTypeRelevant(): boolean { + return ( + this.#filename.isType || + this.#filename.basename === "package.json" + ); + } +} diff --git a/packages/monaco/src/worker/ts/index.ts b/packages/monaco/src/worker/ts/index.ts new file mode 100644 index 0000000..7f1d470 --- /dev/null +++ b/packages/monaco/src/worker/ts/index.ts @@ -0,0 +1,15 @@ +import { TsSystem, type CachedFsMap } from "./system.js"; + +let system: TsSystem | null = null; + +export async function createTsSystemIfNeeded( + files: Record, + entry: string, + fsMapCached: CachedFsMap +): Promise { + if (system) { + return system; + } + + return TsSystem.build(files, entry, fsMapCached); +} diff --git a/packages/monaco/src/worker/ts/input.ts b/packages/monaco/src/worker/ts/input.ts new file mode 100644 index 0000000..81725a9 --- /dev/null +++ b/packages/monaco/src/worker/ts/input.ts @@ -0,0 +1,144 @@ +import { + parseCompilerOptions, + type DependencyFileEntry, +} from "./utils.js"; + +export interface CacheableFile { + readonly absolutePath: string; + readonly cacheKey: string; + readonly content: string; +} + +export class InputFile implements CacheableFile { + static create(path: string, code: string) { + return new InputFile(path, code); + } + + static fromNodeModules([name, file]: DependencyFileEntry) { + return new InputFile( + `node_modules${name}`, + file.module.code + ); + } + + readonly #filename: string; + readonly #code: string; + + constructor(filename: string, code: string) { + this.#filename = filename; + this.#code = code; + } + + get cacheKey(): string { + return this.#filename; + } + + get absolutePath(): string { + return this.#filename; + } + + get path(): string { + return this.#filename; + } + + get content(): string { + return this.#code; + } + + parseJSON() { + return JSON.parse(this.#code) as T; + } +} + +interface RawFile { + readonly code: string; +} + +class InputFiles { + static of(files: Map): InputFiles { + return new InputFiles(files); + } + + readonly #files: Map; + + constructor(files: Map) { + this.#files = files; + } + + get files(): IterableIterator { + return this.#files.values(); + } +} + +export class Inputs { + static process(files: Record): Inputs { + const tsFiles: Map = new Map(); + const rootPaths: string[] = []; + let tsconfig: InputFile | null = null; + let packageJson: InputFile | null = null; + + for (const path in files) { + const filePath = path.replace(/^\/?/g, "/"); + + const content = files[filePath]?.code; + + // TODO: normalize path + if (filePath === "/tsconfig.json") { + tsconfig = content + ? InputFile.create(filePath, content) + : null; + } else if (filePath === "/package.json") { + packageJson = content + ? InputFile.create(filePath, content) + : null; + } else if (/^[^.]+.tsx?$/.test(filePath)) { + // Only ts files + tsFiles.set( + filePath, + InputFile.create(filePath, content ?? "") + ); + rootPaths.push(filePath); + } + } + + return new Inputs( + InputFiles.of(tsFiles), + rootPaths, + tsconfig, + packageJson + ); + } + + readonly #tsFiles: InputFiles; + readonly #rootPaths: string[]; + readonly #tsconfig: InputFile | null; + readonly #packageJson: InputFile | null; + + constructor( + tsFiles: InputFiles, + rootPaths: string[], + tsconfig: InputFile | null, + packageJson: InputFile | null + ) { + this.#tsFiles = tsFiles; + this.#rootPaths = rootPaths; + this.#tsconfig = tsconfig; + this.#packageJson = packageJson; + } + + get compilerOptions() { + return parseCompilerOptions(this.#tsconfig); + } + + get tsFiles(): IterableIterator { + return this.#tsFiles.files; + } + + get packageJson(): InputFile | null { + return this.#packageJson; + } + + get roots(): string[] { + return this.#rootPaths; + } +} diff --git a/packages/monaco/src/worker/ts/system.ts b/packages/monaco/src/worker/ts/system.ts new file mode 100644 index 0000000..469f681 --- /dev/null +++ b/packages/monaco/src/worker/ts/system.ts @@ -0,0 +1,41 @@ +import { type VirtualTypeScriptEnvironment } from "@typescript/vfs"; +import ts from "typescript"; +import "../events.js"; +import { BuildTsSystem } from "./build.js"; + +export class TsSystem { + static create( + env: VirtualTypeScriptEnvironment, + system: ts.System + ) { + return new TsSystem(env, system); + } + + static async build( + files: Record, + entry: string, + fsMapCached: Map + ): Promise { + const builder = await BuildTsSystem.create( + files, + entry, + fsMapCached + ); + + return builder.create(); + } + + readonly #env: VirtualTypeScriptEnvironment; + readonly #system: ts.System; + + private constructor( + env: VirtualTypeScriptEnvironment, + system: ts.System + ) { + this.#env = env; + this.#system = system; + } +} + +export type CachedFsMap = Map; +export type TypeRegistry = Record; diff --git a/packages/monaco/src/worker/ts/utils.ts b/packages/monaco/src/worker/ts/utils.ts new file mode 100644 index 0000000..be67081 --- /dev/null +++ b/packages/monaco/src/worker/ts/utils.ts @@ -0,0 +1,123 @@ +import { createDefaultMapFromCDN } from "@typescript/vfs"; +import ts from "typescript"; +import { TS_VERSION } from "../../shared/version.js"; +import { + type DependencyFile, + type DependencyFiles, +} from "../dependencies.js"; +import { + ModuleKind, + ModuleResolutionKind, + ScriptTarget, +} from "../enums.js"; +import "../events.js"; +import { + getCompileOptions, + processTypescriptCacheFromStorage, +} from "../utils.js"; +import { InputFile } from "./input.js"; + +export type CachedFsMap = Map; +export type TypeVersions = Record; + +export type DependencyFileEntry = [ + name: string, + contents: DependencyFile +]; + +export function parseCompilerOptions( + tsconfig: InputFile | null +): ts.CompilerOptions { + const parsedCompilerOptions = getCompileOptions( + tsconfig?.parseJSON() ?? {} + ); + + return { + ...parsedCompilerOptions, + target: ScriptTarget.ESNext, + module: ModuleKind.ESNext, + moduleResolution: ModuleResolutionKind.NodeNext, + lib: ["dom", "es5", "es6", "es2022"], + }; +} + +export async function getCache( + cache: CachedFsMap, + compilerOptions: ts.CompilerOptions +): Promise { + /** + * Process cache or get a fresh one + */ + let fsMap = processTypescriptCacheFromStorage(cache); + if (fsMap.size === 0) { + fsMap = await createDefaultMapFromCDN( + compilerOptions, + TS_VERSION, + false, + ts + ); + } + + return fsMap; +} + +type RawDependencies = Record; +type Dependencies = Map; + +/** + * Get dependencies from package.json + */ +export function getDependencies( + packageJSON: InputFile | null +): Dependencies { + const dependenciesMap: Dependencies = new Map(); + + const { dependencies, devDependencies } = + getPackageJsonDeps(packageJSON); + + for (const [dep, version] of Object.entries(devDependencies)) { + dependenciesMap.set(dep, version); + } + + for (const [dep, version] of Object.entries(dependencies)) { + // Avoid redundant requests + if (!dependenciesMap.has(`@types/${dep}`)) { + dependenciesMap.set(dep, version); + } + } + + return dependenciesMap; +} + +function getPackageJsonDeps(file: InputFile | null) { + if (file === null) { + return { dependencies: {}, devDependencies: {} }; + } + + const { dependencies = {}, devDependencies = {} } = + file.parseJSON<{ + dependencies?: RawDependencies; + devDependencies?: RawDependencies; + }>(); + + return { dependencies, devDependencies }; +} + +export function typeNameForPackage(name: string) { + if (name.startsWith("@")) { + const normalized = name.slice(1).replace("/", "__"); + return `@types/${normalized}`; + } else { + return `@types/${name}`; + } +} + +export function packageHasTypes( + packageName: string, + files: DependencyFiles +) { + return Object.keys(files).some( + (key) => + key.startsWith("/" + packageName) && key.endsWith(".d.ts") + ); +} diff --git a/packages/monaco/src/worker/utils.ts b/packages/monaco/src/worker/utils.ts new file mode 100644 index 0000000..d5f3551 --- /dev/null +++ b/packages/monaco/src/worker/utils.ts @@ -0,0 +1,71 @@ +import type { CompilerOptions } from "typescript"; +import { TS_VERSION } from "../shared/version.js"; +import { + ModuleKind, + ModuleResolutionKind, + ScriptTarget, +} from "./enums.js"; +import type { CachedFsMap } from "./ts/system.js"; +import type { DependencyFileEntry } from "./ts/utils.js"; + +/** + * Process the TS compile options or default to + */ +export const getCompileOptions = ( + tsconfigFile: Record +): CompilerOptions => { + const defaultValue: CompilerOptions = { + target: ScriptTarget.ES2021, + module: ModuleKind.ES2020, + lib: ["es2021", "es2020", "dom", "webworker"], + esModuleInterop: true, + }; + + if (tsconfigFile["compilerOptions"]) { + const { compilerOptions } = tsconfigFile; + // Hard fixes + if (compilerOptions.moduleResolution === "node") { + compilerOptions.moduleResolution = + ModuleResolutionKind.Node10; + } + + return compilerOptions; + } + + return defaultValue; +}; + +export const processTypescriptCacheFromStorage = ( + fsMapCached: CachedFsMap +): CachedFsMap => { + const cache = new Map(); + + const matching = new Map( + [...fsMapCached].filter(([key]) => + key.startsWith(`ts-lib-${TS_VERSION}`) + ) + ); + + // const matchVersion = Array.from(fsMapCached.keys()).every( + // (file) => file.startsWith(`ts-lib-${ts.version}`) + // ); + + // if (!matchVersion) cache; + + for (const [key, value] of matching) { + const cleanLibName = key.replace( + `ts-lib-${TS_VERSION}-`, + "" + ); + cache.set(cleanLibName, value); + } + + return cache; +}; + +export const isValidTypeModule = ([ + key, + value, +]: DependencyFileEntry) => + key.endsWith(".d.ts") || + (key.endsWith("/package.json") && value?.module?.code); diff --git a/packages/nodemon.json b/packages/nodemon.json new file mode 100644 index 0000000..e0475a6 --- /dev/null +++ b/packages/nodemon.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json.schemastore.org/nodemon.json", + "exec": "pnpm build:deps", + "ext": "ts", + "watch": ["packages/*/index.ts", "packages/*/src/**/*.ts"] +} diff --git a/packages/postcss.config.mjs b/packages/postcss.config.mjs new file mode 100644 index 0000000..93e4710 --- /dev/null +++ b/packages/postcss.config.mjs @@ -0,0 +1,99 @@ +// @ts-check + +import extend from "postcss-extend-rule"; +import vars from "postcss-simple-vars"; +// import values from "postcss-modules-values"; +// import "postcss"; +import { readFileSync, writeFileSync } from "fs"; +import { basename, dirname, resolve } from "node:path"; +import modules from "postcss-modules"; +import nested from "postcss-nested"; +import preset from "postcss-preset-env"; +import property from "postcss-property-lookup"; + +const PRESET = preset({ + stage: 1, + features: { + "lab-function": true, + "oklab-function": true, + "color-functional-notation": true, + "color-function": true, + "cascade-layers": false, + }, +}); + +/** + * @satisfies {import("postcss-load-config").Config} + */ +export default { + plugins: [ + extend(), + vars({}), + property(), + nested(), + PRESET, + modules({ + getJSON: (filepath, json, out) => { + const outdir = dirname(filepath); + const outbase = basename(filepath, ".postcss"); + const outfile = resolve(outdir, `${outbase}.css.ts`); + + // Write the file to the source directory + writeFileSync(outfile, `${exports(json)}`); + }, + }), + /** @satisfies {import("postcss").Plugin} */ + ({ + postcssPlugin: "custom", + + prepare: (result) => { + const filepath = result.opts.from; + const outdir = dirname(filepath); + const outbase = basename(filepath, ".postcss"); + const outfile = resolve(outdir, `${outbase}.css.ts`); + + return { + OnceExit: (root, helper) => { + const ts = readFileSync(outfile, "utf8"); + const combined = `${ts}\n${inject(String(root))}`; + writeFileSync(outfile, combined); + }, + }; + }, + }), + ], +}; + +/** + * @param {string} css + * @returns {string} + */ +function inject(css) { + return ` +if (globalThis.document !== undefined) { + const style = document.createElement('style'); + style.setAttribute("type", "text/css"); + const text = document.createTextNode(${JSON.stringify(css)}); + style.appendChild(text); + document.head.appendChild(style); +} +`.trim(); +} + +/** + * @param {Record} json + * @returns {string} + */ +function exports(json) { + return Object.entries(json) + .map(([key, value]) => `export const ${camelize(key)} = ${JSON.stringify(value)};`) + .join("\n"); +} + +/** + * @param {string} key + * @returns {string} + */ +function camelize(key) { + return key.replace(/[-]([a-z])/g, (g) => g[1].toUpperCase()); +} diff --git a/packages/starbeam-vitepress/.gitignore b/packages/starbeam-vitepress/.gitignore index da31bec..d3d121e 100644 --- a/packages/starbeam-vitepress/.gitignore +++ b/packages/starbeam-vitepress/.gitignore @@ -1,4 +1,4 @@ *.js *.d.ts src/**/*.js -src/**/*.d.ts \ No newline at end of file +src/**/*.d.ts diff --git a/packages/starbeam-vitepress/tsconfig.json b/packages/starbeam-vitepress/tsconfig.json index cfd8703..7a80b77 100644 --- a/packages/starbeam-vitepress/tsconfig.json +++ b/packages/starbeam-vitepress/tsconfig.json @@ -3,19 +3,17 @@ "composite": true, "allowJs": true, "checkJs": true, - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "jsx": "preserve" /* Specify what JSX code is generated. */, - "module": "esnext" /* Specify what module code is generated. */, - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, - "resolveJsonModule": true /* Enable importing .json files. */, - "importsNotUsedAsValues": "error" /* Specify emit/checking behavior for imports that are only used for types. */, - "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, - "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "strict": true /* Enable all strict type-checking options. */, + "target": "esnext", + "jsx": "preserve", + "module": "esnext", + "moduleResolution": "node", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, "noImplicitAny": true, - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "skipLibCheck": true }, "include": ["index.ts", "src/**/*.ts"] } diff --git a/packages/starbeam-vitepress/tsconfig.tsbuildinfo b/packages/starbeam-vitepress/tsconfig.tsbuildinfo deleted file mode 100644 index f408739..0000000 --- a/packages/starbeam-vitepress/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"program":{"fileNames":["../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.0-dev.20220825/node_modules/typescript/lib/lib.esnext.full.d.ts","../../node_modules/.pnpm/markdown-it-emoji@2.0.2/node_modules/markdown-it-emoji/lib/data/full.json","./src/parse-header.ts","./index.ts","../../node_modules/.pnpm/@types+hash-sum@1.0.0/node_modules/@types/hash-sum/index.d.ts","../../types/@types/jsdoc-api/index.d.ts","../../node_modules/.pnpm/@types+linkify-it@3.0.2/node_modules/@types/linkify-it/index.d.ts","../../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/encode.d.ts","../../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/decode.d.ts","../../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/parse.d.ts","../../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/format.d.ts","../../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/index.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/common/utils.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/token.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/ruler.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_block.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_core.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/renderer.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/index.d.ts","../../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/index.d.ts","../../node_modules/.pnpm/@types+mermaid@8.2.9/node_modules/@types/mermaid/mermaidAPI.d.ts","../../node_modules/.pnpm/@types+mermaid@8.2.9/node_modules/@types/mermaid/index.d.ts"],"fileInfos":[{"version":"5306a306e48830311c262d241576ea7e27ff156eb5c7f9777ad16bddbdae11ea","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d96fa8a56871904776165ceb8e00bd56127e1a017bb2664cae76223b5f815141","46f3e4347625a9bc0a2082ddbfa5c21338c2ad1802909d668417b1f7b4f59405",{"version":"c50a2a3367323b89940918e44220b3184f84e6bd15d029bcf2d7e9b94f7a3a5d","signature":"ec127fa809dc3a92f03a6c781e4f1883d453bde5bdd296023f004e991391b4c5"},"98f136aa3e0001b19a59f95370832e5a5117264ee8913c0a7fa3faf9252e6fb1","b1422e928ebea075ae07cfcac94122425804eb9fa3d7d67c95dc5bc37d05eb59","164c34f17f93ca595088de35d1a72c180c8fa21407b0bdbaf8956673e1f9de18","6503fb6addf62f9b10f8564d9869ad824565a914ec1ac3dd7d13da14a3f57036","f313731860257325f13351575f381fef333d4dfe30daf5a2e72f894208feea08","951b37f7d86f6012f09e6b35f1de57c69d75f16908cb0adaa56b93675ea0b853","3816fc03ffd9cbd1a7a3362a264756a4a1d547caabea50ca68303046be40e376","0c417b4ec46b88fb62a43ec00204700b560d01eb5677c7faa8ecd34610f096a8","13d29cdeb64e8496424edf42749bbb47de5e42d201cf958911a4638cbcffbd3f","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","7781750355037f6d879e24013ce158f530edac41ce74491517e8c1e1d00924cb","703b3061bcd950de4aeb1d62a7e586d610570cbd7b747329ffb3f2fcee3b5b60"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"esModuleInterop":true,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noImplicitAny":true,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[84],[69],[73,74,75],[72],[74],[64,70,71,76,79,81,82,83],[71,77,78,84],[77,80],[71,72,77,84],[71,84],[65,66,67,68],[86],[60],[59]],"referencedMap":[[85,1],[70,2],[76,3],[73,4],[75,5],[84,6],[79,7],[81,8],[82,9],[83,10],[78,10],[80,10],[72,10],[68,2],[69,11],[67,2],[87,12],[61,13],[60,14]],"exportedModulesMap":[[85,1],[70,2],[76,3],[73,4],[75,5],[84,6],[79,7],[81,8],[82,9],[83,10],[78,10],[80,10],[72,10],[68,2],[69,11],[67,2],[87,12],[61,13]],"latestChangedDtsFile":"./index.d.ts"},"version":"4.9.0-dev.20220825"} \ No newline at end of file diff --git a/packages/tsconfig.json b/packages/tsconfig.json new file mode 100644 index 0000000..090c0de --- /dev/null +++ b/packages/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "types": ["vite/client"], + "paths": { + "@jsergo/*": ["./@jsergo/*/index.ts"] + } + }, + "include": ["./*/index.ts", "./*/src/**/*"], + "vueCompilerOptions": {} +} diff --git a/packages/tsconfig.package.json b/packages/tsconfig.package.json new file mode 100644 index 0000000..c6c8420 --- /dev/null +++ b/packages/tsconfig.package.json @@ -0,0 +1,4 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": {} +} diff --git a/packages/tsconfig.vite.json b/packages/tsconfig.vite.json new file mode 100644 index 0000000..05a67e8 --- /dev/null +++ b/packages/tsconfig.vite.json @@ -0,0 +1,5 @@ +{ + "extends": "./tsconfig.package.json", + "compilerOptions": { "noEmit": true }, + "include": ["./**/vite.config.mts"] +} diff --git a/packages/twoslash/package.json b/packages/twoslash/package.json index 2415e9b..b941082 100644 --- a/packages/twoslash/package.json +++ b/packages/twoslash/package.json @@ -1,6 +1,7 @@ { "name": "@starbeam/docs-twoslash", "private": true, + "type": "module", "devDependencies": { "@types/react": "*", "@types/react-dom": "*", diff --git a/packages/twoslash/src/dummy.ts b/packages/twoslash/src/dummy.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/packages/twoslash/src/dummy.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/twoslash/tsconfig.json b/packages/twoslash/tsconfig.json index 9e81813..9f48903 100644 --- a/packages/twoslash/tsconfig.json +++ b/packages/twoslash/tsconfig.json @@ -1,23 +1,23 @@ { "compilerOptions": { - "compilerOptions": { - "composite": true, - "outDir": "dist", - "rootDir": ".", - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "jsx": "react-jsx" /* Specify what JSX code is generated. */, - "jsxImportSource": "preact", - "module": "NodeNext" /* Specify what module code is generated. */, - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, - "resolveJsonModule": true /* Enable importing .json files. */, - "importsNotUsedAsValues": "error" /* Specify emit/checking behavior for imports that are only used for types. */, - "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, - "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "strict": true /* Enable all strict type-checking options. */, - "skipLibCheck": true /* Skip type checking all .d.ts files. */, - "experimentalDecorators": true + "composite": true, + "outDir": "dist", + "rootDir": ".", + "target": "esnext", + "jsx": "react-jsx", + "jsxImportSource": "preact", + "module": "NodeNext", + "moduleResolution": "nodenext", + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "experimentalDecorators": true, + + "paths": { + "@starbeam/universal": ["node_modules/@starbeam/universal/index.ts"] } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7714ee..d2fce93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,11 +1,13 @@ lockfileVersion: 5.4 overrides: - vite: ^4 - typescript: ^4.9.4 + vite: ^4.1.2 + vue: ^3.2.47 + typescript: next '@typescript/twoslash': ^3.2.1 - '@types/react': ^18.0.26 - '@types/react-dom': ^18.0.9 + '@types/react': ^18.0.28 + '@types/react-dom': ^18.0.11 + '@babel/plugin-transform-typescript': ^7.21.3 tslib: ^2.4.1 '@starbeam/debug': 0.8.9 '@starbeam/js': 0.8.9 @@ -15,17 +17,42 @@ overrides: '@starbeam/interfaces': 0.8.9 '@starbeam/preact': 0.8.9 preact-render-to-string: 5.2.6 + shiki: ^0.14.1 importers: .: specifiers: + '@babel/core': ^7.21.0 '@babel/plugin-syntax-import-assertions': ^7.20.0 - '@codesandbox/sandpack-client': ^1.18.0 - '@csstools/postcss-design-tokens': ^1.2.0 - '@iconify/json': ^2.1.155 - '@mdit-vue/plugin-sfc': ^0.11.1 - '@stackblitz/sdk': ^1.8.1 + '@babel/plugin-transform-modules-commonjs': ^7.21.2 + '@babel/preset-env': ^7.20.2 + '@codesandbox/sandpack-client': ^2.1.0 + '@csstools/postcss-global-data': ^1.0.3 + '@cypress/code-coverage': ^3.10.0 + '@cypress/vite-dev-server': ^5.0.4 + '@cypress/vue': ^5.0.4 + '@fullhuman/postcss-purgecss': ^5.0.0 + '@iconify-json/nonicons': ^1.1.2 + '@intlify/eslint-plugin-vue-i18n': ^2.0.0 + '@jsergo/mdit': workspace:^ + '@mdit-vue/plugin-sfc': ^0.12.0 + '@monaco-editor/loader': ^1.3.2 + '@nrwl/cypress': ^15.8.2 + '@nrwl/devkit': ^15.8.2 + '@nrwl/eslint-plugin-nx': ^15.8.2 + '@nrwl/js': 15.8.2 + '@nrwl/node': 15.8.2 + '@nrwl/vite': 15.8.2 + '@nrwl/workspace': 15.8.2 + '@samatech/postcss-basics': ^0.6.0 + '@sampullman/fetch-api': ^0.9.1 + '@shimyshack/uid': ^0.1.7 + '@stackblitz/sdk': ^1.8.2 + '@starbeam-docs/custom-block': workspace:^ + '@starbeam-docs/fenced-container': workspace:^ + '@starbeam-docs/snippets': workspace:^ + '@starbeam-docs/theme': workspace:^ '@starbeam/api-docs': workspace:^0.0.0 '@starbeam/debug': 0.8.9 '@starbeam/interfaces': 0.8.9 @@ -34,141 +61,402 @@ importers: '@starbeam/react': 0.8.9 '@starbeam/timeline': 0.8.9 '@starbeam/universal': 0.8.9 - '@starbeam/vitepress': workspace:1.0.0 - '@tuzig/toml': 3.0.0-browser - '@types/diacritics': ^1.3.1 + '@starbeam/vitepress': workspace:^ + '@swc/cli': ~0.1.62 + '@swc/core': ^1.3.37 + '@swc/helpers': ~0.4.14 + '@types/css-tree': ^2.3.1 '@types/hash-sum': ^1.0.0 '@types/jsdoc-api': workspace:1.0.0 '@types/markdown-it': ^12.2.3 + '@types/markdown-it-bracketed-spans': workspace:^ + '@types/node': ~18.7.23 '@types/postcss-advanced-variables': workspace:1.0.0 - '@types/postcss-env-function': workspace:1.0.0 - '@types/postcss-functions': workspace:1.0.0 - '@types/postcss-modules-values': workspace:1.0.0 - '@types/postcss-nesting': workspace:1.0.0 - '@types/postcss-scss': workspace:1.0.0 - '@types/react': ^18.0.26 - '@types/react-dom': ^18.0.9 + '@types/postcss-css-variables': ^0.18.0 + '@types/postcss-env-function': workspace:^ + '@types/postcss-extend-rule': workspace:^ + '@types/postcss-functions': workspace:^ + '@types/postcss-mixins': ^9.0.0 + '@types/postcss-modules-values': workspace:^ + '@types/postcss-nesting': workspace:^ + '@types/postcss-prefix-selector': ^1.15.0 + '@types/react': ^18.0.28 + '@types/react-dom': ^18.0.11 + '@typescript-eslint/eslint-plugin': 5.54.0 + '@typescript-eslint/parser': ^5.54.0 + '@typescript/twoslash': ^3.2.1 + '@typescript/vfs': ^1.4.0 '@vitejs/plugin-vue': ^4.0.0 - '@vue/runtime-core': ^3.2.45 - '@vue/runtime-dom': ^3.2.45 - '@vueuse/core': ^9.8.2 + '@vitest/coverage-c8': ~0.25.8 + '@vitest/ui': ^0.25.8 + '@vue/eslint-config-typescript': ^11.0.2 + '@vue/runtime-core': ^3.2.47 + '@vue/runtime-dom': ^3.2.47 + '@vue/test-utils': ^2.3.0 + '@vueuse/core': ^9.13.0 + '@wycatsjs/utils': workspace:^ balloon-css: ^1.2.0 + chomp: ^0.2.13 + class-transformer: ^0.5.1 + css-tree: ^2.3.1 + cypress: ^12.7.0 + date-fns: ^2.29.3 diacritics: ^1.3.0 docs-snippet: ^1.0.4 + eslint: ^8.35.0 + eslint-config-prettier: ^8.6.0 + eslint-plugin-cypress: ^2.12.1 + eslint-plugin-import: ^2.27.5 + eslint-plugin-vue: ^9.9.0 + execa: ^7.0.0 + fast-glob: ^3.2.12 fenceparser: ^2.2.0 fflate: ^0.7.4 + find-up: ^6.3.0 + happy-dom: ^8.9.0 hash-sum: ^2.0.0 jsdoc-api: ^8.0.0 + jsdom: ~20.0.3 markdown-it: ^13.0.1 - markdown-it-emoji: ^2.0.2 - markdown-it-shiki-twoslash: ^2.1.0 - markdown-it-toc-done-right: ^4.2.0 - mermaid: ^9.3.0 - postcss: ^8.4.20 - postcss-advanced-variables: ^3.0.1 + markdown-it-bracketed-spans: ^1.0.1 + markdown-it-plantuml-ex: ^1.0.0 + markdown-it-shiki-twoslash: ^2.1.1 + mini-svg-data-uri: ^1.4.4 + monaco-editor: 0.36.0-dev.20230217 + nanoid: ^4.0.1 + picocolors: 1.0.0 + pikchr-wasm: ^2.0.0 + pkg-up: ^4.0.0 + pnpapi: ^0.0.0 + postcss: ^8.4.21 postcss-atroot: ^0.2.3 + postcss-cli: ^10.1.0 + postcss-css-variables: ^0.18.0 postcss-current-selector: ^0.0.3 - postcss-env-function: ^4.0.6 + postcss-custom-prop-vars: ^0.0.5 + postcss-custom-properties: ^13.1.4 + postcss-env-function: ^5.0.1 + postcss-extend-rule: ^4.0.0 postcss-functions: ^4.0.2 + postcss-html: ^1.5.0 + postcss-load-config: ^4.0.1 + postcss-mixins: ^9.0.4 + postcss-modules: ^6.0.0 postcss-modules-values: ^4.0.0 - postcss-nested: ^6.0.0 + postcss-nested: ^6.0.1 postcss-nested-ancestors: ^3.0.0 - postcss-nesting: ^10.2.0 + postcss-nesting: ^11.2.1 + postcss-plugin-context: ^2.0.0 + postcss-prefix-selector: ^1.16.0 + postcss-preset-env: ^8.0.1 postcss-property-lookup: ^3.0.0 - postcss-scss: ^4.0.6 - prettier: ^2.8.1 - rollup-plugin-visualizer: ^5.8.3 - sandpack-vue3: ^2.0.6 - sass: ^1.57.1 - shiki: ^0.12.1 - shiki-twoslash: ^3.1.0 - typescript: ^4.9.4 - vite: ^4 - vite-plugin-babel: ^1.1.2 - vitepress: 1.0.0-alpha.33 - vitest: ^0.26.2 - vue: ^3.2.45 - vue-console-feed: ^0.0.27 - dependencies: + postcss-simple-vars: ^7.0.1 + prettier: ^2.8.4 + remark-shiki-twoslash: ^3.1.1 + rollup-plugin-visualizer: ^5.9.0 + sandpack-vue3: ^3.0.6-beta.1 + semver-regex: ^4.0.5 + shiki: ^0.14.1 + shiki-processor: ^0.1.3 + shiki-twoslash: ^3.1.1 + strip-ansi: ^7.0.1 + stylelint: ^15.2.0 + stylelint-config-recommended-vue: ^1.4.0 + stylelint-config-standard: ^30.0.1 + stylelint-gamut: ^1.3.1 + svgbob-wasm: ^1.0.0 + swc-plugin-vue-jsx: ^0.2.0 + ts-node: ^10.9.1 + tsconfig: ^7.0.0 + tslib: ^2.4.1 + turbo: ^1.8.3 + typescript: next + unplugin-icons: ^0.15.3 + unplugin-vue-components: ^0.24.0 + vite: ^4.1.2 + vite-plugin-babel: ^1.1.3 + vite-plugin-eslint: ^1.8.1 + vite-plugin-wasm-esm: ^1.0.0 + vite-tsconfig-paths: ^4.0.5 + vitepress: 1.0.0-alpha.61 + vitepress-plugin-tabs: ^0.2.0 + vitest: ^0.28.5 + vue: ^3.2.47 + vue-console-feed: ^0.0.28 + vue-eslint-parser: ^9.1.0 + vue-i18n: ^9.2.2 + vue-router: ^4.1.6 + vue-sfc2esm: ^0.1.6 + dependencies: + '@sampullman/fetch-api': 0.9.1 + '@swc/helpers': 0.4.14 balloon-css: 1.2.0 + date-fns: 2.29.3 diacritics: 1.3.0 - vue-console-feed: 0.0.27 + tslib: 2.5.0 + vue-console-feed: 0.0.28 + vue-i18n: 9.2.2_vue@3.2.47 + vue-router: 4.1.6_vue@3.2.47 devDependencies: - '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.2 - '@codesandbox/sandpack-client': 1.18.0 - '@csstools/postcss-design-tokens': 1.2.0_postcss@8.4.20 - '@iconify/json': 2.1.155 - '@mdit-vue/plugin-sfc': 0.11.1 - '@stackblitz/sdk': 1.8.1 + '@babel/core': 7.21.0 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.21.0 + '@babel/plugin-transform-modules-commonjs': 7.21.2_@babel+core@7.21.0 + '@babel/preset-env': 7.20.2_@babel+core@7.21.0 + '@codesandbox/sandpack-client': 2.1.0 + '@csstools/postcss-global-data': 1.0.3_postcss@8.4.21 + '@cypress/code-coverage': 3.10.0_bnvwe5wehjz7j5vxbky5z6tahe + '@cypress/vite-dev-server': 5.0.4 + '@cypress/vue': 5.0.4_cypress@12.7.0+vue@3.2.47 + '@fullhuman/postcss-purgecss': 5.0.0_postcss@8.4.21 + '@iconify-json/nonicons': 1.1.2 + '@intlify/eslint-plugin-vue-i18n': 2.0.0_eslint@8.35.0 + '@jsergo/mdit': link:packages/@jsergo/mdit + '@mdit-vue/plugin-sfc': 0.12.0 + '@monaco-editor/loader': 1.3.2_bvrjytjtjkl4gtwum6dvwouhqq + '@nrwl/cypress': 15.8.2_s67zzij65n2p466h4qax6xuwsi + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/eslint-plugin-nx': 15.8.2_de3pmu3skndygamlzlrywwwrii + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/node': 15.8.2_4cknsbw37vvuzx4den732ohhw4 + '@nrwl/vite': 15.8.2_xzqck3sba7l6gh6ei3tgh5yceq + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + '@samatech/postcss-basics': 0.6.0_postcss@8.4.21 + '@shimyshack/uid': 0.1.7 + '@stackblitz/sdk': 1.8.2 + '@starbeam-docs/custom-block': link:packages/@starbeam-docs/custom-block + '@starbeam-docs/fenced-container': link:packages/@starbeam-docs/fenced-container + '@starbeam-docs/snippets': link:packages/@starbeam-docs/snippets + '@starbeam-docs/theme': link:packages/@starbeam-docs/theme '@starbeam/api-docs': link:packages/api-docs '@starbeam/debug': 0.8.9 '@starbeam/interfaces': 0.8.9 '@starbeam/js': 0.8.9 - '@starbeam/preact': 0.8.9_preact@10.11.3 + '@starbeam/preact': 0.8.9_preact@10.13.1 '@starbeam/react': 0.8.9_biqbaboplfbrettd7655fr4n2y '@starbeam/timeline': 0.8.9 '@starbeam/universal': 0.8.9 '@starbeam/vitepress': link:packages/starbeam-vitepress - '@tuzig/toml': 3.0.0-browser - '@types/diacritics': 1.3.1 + '@swc/cli': 0.1.62_@swc+core@1.3.37 + '@swc/core': 1.3.37 + '@types/css-tree': 2.3.1 '@types/hash-sum': 1.0.0 '@types/jsdoc-api': link:types/@types/jsdoc-api '@types/markdown-it': 12.2.3 + '@types/markdown-it-bracketed-spans': link:types/@types/markdown-it-bracketed-spans + '@types/node': 18.7.23 '@types/postcss-advanced-variables': link:types/@types/postcss-advanced-variables + '@types/postcss-css-variables': 0.18.0 '@types/postcss-env-function': link:types/@types/postcss-env-function + '@types/postcss-extend-rule': link:types/@types/postcss-extend-rule '@types/postcss-functions': link:types/@types/postcss-functions + '@types/postcss-mixins': 9.0.0 '@types/postcss-modules-values': link:types/@types/postcss-modules-values '@types/postcss-nesting': link:types/@types/postcss-nesting - '@types/postcss-scss': link:types/@types/postcss-scss - '@types/react': 18.0.26 - '@types/react-dom': 18.0.9 - '@vitejs/plugin-vue': 4.0.0_vite@4.0.3+vue@3.2.45 - '@vue/runtime-core': 3.2.45 - '@vue/runtime-dom': 3.2.45 - '@vueuse/core': 9.8.2_vue@3.2.45 + '@types/postcss-prefix-selector': 1.15.0 + '@types/react': 18.0.28 + '@types/react-dom': 18.0.11 + '@typescript-eslint/eslint-plugin': 5.54.0_qpchnlb4kug63yt3zqzrqqyvym + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + '@typescript/twoslash': 3.2.1 + '@typescript/vfs': 1.4.0 + '@vitejs/plugin-vue': 4.0.0_vite@4.1.4+vue@3.2.47 + '@vitest/coverage-c8': 0.25.8_ehzen6rhkzxenlvnrjfqyltjsq + '@vitest/ui': 0.25.8 + '@vue/eslint-config-typescript': 11.0.2_p2n57jxlindqpuxuoa4lufemt4 + '@vue/runtime-core': 3.2.47 + '@vue/runtime-dom': 3.2.47 + '@vue/test-utils': 2.3.0_vue@3.2.47 + '@vueuse/core': 9.13.0_vue@3.2.47 + '@wycatsjs/utils': link:packages/@wycatsjs/utils + chomp: 0.2.13 + class-transformer: 0.5.1 + css-tree: 2.3.1 + cypress: 12.7.0 docs-snippet: 1.0.4 + eslint: 8.35.0 + eslint-config-prettier: 8.6.0_eslint@8.35.0 + eslint-plugin-cypress: 2.12.1_eslint@8.35.0 + eslint-plugin-import: 2.27.5_ajyizmi44oc3hrc35l6ndh7p4e + eslint-plugin-vue: 9.9.0_eslint@8.35.0 + execa: 7.0.0 + fast-glob: 3.2.12 fenceparser: 2.2.0 fflate: 0.7.4 + find-up: 6.3.0 + happy-dom: 8.9.0 hash-sum: 2.0.0 jsdoc-api: 8.0.0 + jsdom: 20.0.3 markdown-it: 13.0.1 - markdown-it-emoji: 2.0.2 - markdown-it-shiki-twoslash: 2.1.0 - markdown-it-toc-done-right: 4.2.0 - mermaid: 9.3.0 - postcss: 8.4.20 - postcss-advanced-variables: 3.0.1 - postcss-atroot: 0.2.3_postcss@8.4.20 + markdown-it-bracketed-spans: 1.0.1 + markdown-it-plantuml-ex: 1.0.0 + markdown-it-shiki-twoslash: 2.1.1_gliwt7svxbpvcai2ottpa7qe6a + mini-svg-data-uri: 1.4.4 + monaco-editor: 0.36.0-dev.20230217 + nanoid: 4.0.1 + picocolors: 1.0.0 + pikchr-wasm: 2.0.0 + pkg-up: 4.0.0 + pnpapi: 0.0.0 + postcss: 8.4.21 + postcss-atroot: 0.2.3_postcss@8.4.21 + postcss-cli: 10.1.0_aesdjsunmf4wiehhujt67my7tu + postcss-css-variables: 0.18.0_postcss@8.4.21 postcss-current-selector: 0.0.3 - postcss-env-function: 4.0.6_postcss@8.4.20 - postcss-functions: 4.0.2_postcss@8.4.20 - postcss-modules-values: 4.0.0_postcss@8.4.20 - postcss-nested: 6.0.0_postcss@8.4.20 - postcss-nested-ancestors: 3.0.0_postcss@8.4.20 - postcss-nesting: 10.2.0_postcss@8.4.20 - postcss-property-lookup: 3.0.0_postcss@8.4.20 - postcss-scss: 4.0.6_postcss@8.4.20 - prettier: 2.8.1 - rollup-plugin-visualizer: 5.8.3 - sandpack-vue3: 2.0.6_vue@3.2.45 - sass: 1.57.1 - shiki: 0.12.1 - shiki-twoslash: 3.1.0 - typescript: 4.9.4 - vite: 4.0.3_sass@1.57.1 - vite-plugin-babel: 1.1.2_dphi2kjxqdi2lbo4kerd4lp2se - vitepress: 1.0.0-alpha.33_b3xgtgfamhr4jiydlntqmtzdsm - vitest: 0.26.2_sass@1.57.1 - vue: 3.2.45 + postcss-custom-prop-vars: 0.0.5_postcss@8.4.21 + postcss-custom-properties: 13.1.4_postcss@8.4.21 + postcss-env-function: 5.0.1_postcss@8.4.21 + postcss-extend-rule: 4.0.0_postcss@8.4.21 + postcss-functions: 4.0.2_postcss@8.4.21 + postcss-html: 1.5.0 + postcss-load-config: 4.0.1_aesdjsunmf4wiehhujt67my7tu + postcss-mixins: 9.0.4_postcss@8.4.21 + postcss-modules: 6.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 + postcss-nested: 6.0.1_postcss@8.4.21 + postcss-nested-ancestors: 3.0.0_postcss@8.4.21 + postcss-nesting: 11.2.1_postcss@8.4.21 + postcss-plugin-context: 2.0.0 + postcss-prefix-selector: 1.16.0_postcss@8.4.21 + postcss-preset-env: 8.0.1_postcss@8.4.21 + postcss-property-lookup: 3.0.0_postcss@8.4.21 + postcss-simple-vars: 7.0.1_postcss@8.4.21 + prettier: 2.8.4 + remark-shiki-twoslash: 3.1.1_gliwt7svxbpvcai2ottpa7qe6a + rollup-plugin-visualizer: 5.9.0 + sandpack-vue3: 3.0.6-beta.1_dvkywoatelngj7gqkbpsxg5bmi + semver-regex: 4.0.5 + shiki: 0.14.1 + shiki-processor: 0.1.3_shiki@0.14.1 + shiki-twoslash: 3.1.1_gliwt7svxbpvcai2ottpa7qe6a + strip-ansi: 7.0.1 + stylelint: 15.2.0 + stylelint-config-recommended-vue: 1.4.0_x2qzl5lwlwnkkekx7bj2y4o6y4 + stylelint-config-standard: 30.0.1_stylelint@15.2.0 + stylelint-gamut: 1.3.1_stylelint@15.2.0 + svgbob-wasm: 1.0.0 + swc-plugin-vue-jsx: 0.2.0 + ts-node: 10.9.1_p52dwig7yrxcbqaynypgzvbyfm + tsconfig: 7.0.0 + turbo: 1.8.3 + typescript: 5.1.0-dev.20230321 + unplugin-icons: 0.15.3 + unplugin-vue-components: 0.24.0_vue@3.2.47 + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + vite-plugin-babel: 1.1.3_7aqncydjsmbuegxcpud6ibdpd4 + vite-plugin-eslint: 1.8.1_eslint@8.35.0+vite@4.1.4 + vite-plugin-wasm-esm: 1.0.0_vite@4.1.4 + vite-tsconfig-paths: 4.0.5_gliwt7svxbpvcai2ottpa7qe6a + vitepress: 1.0.0-alpha.61_4yt5l4p4rki6edhfcj6rl2h22i + vitepress-plugin-tabs: 0.2.0_64eztyruiyhjmfhrimcd43ho3a + vitest: 0.28.5_ehzen6rhkzxenlvnrjfqyltjsq + vue: 3.2.47 + vue-eslint-parser: 9.1.0_eslint@8.35.0 + vue-sfc2esm: 0.1.6 + + bin: + specifiers: + '@types/node': ^18.15.5 + '@types/shell-escape-tag': workspace:^ + '@types/shelljs': '*' + '@types/svgo': ^3.0.0 + execa: ^7.1.1 + shell-escape-tag: '*' + shelljs: '*' + svgo: ^3.0.2 + dependencies: + execa: 7.1.1 + shell-escape-tag: 2.0.2 + shelljs: 0.8.5 + svgo: 3.0.2 + devDependencies: + '@types/node': 18.15.5 + '@types/shell-escape-tag': link:../packages/@types/shell-escape-tag + '@types/shelljs': 0.8.11 + '@types/svgo': 3.0.0 + + packages/@jsergo/mdit: + specifiers: + '@swc/cli': ~0.1.62 + '@swc/core': ^1.3.38 + markdown-it: ^13.0.1 + devDependencies: + '@swc/cli': 0.1.62_@swc+core@1.3.38 + '@swc/core': 1.3.38 + markdown-it: 13.0.1 + + packages/@jsergo/tagged-templates: + specifiers: {} + + packages/@starbeam-docs/custom-block: + specifiers: + '@wycatsjs/utils': workspace:^ + vue: ^3.2.47 + dependencies: + '@wycatsjs/utils': link:../../@wycatsjs/utils + vue: 3.2.47 + + packages/@starbeam-docs/fenced-container: + specifiers: + '@wycatsjs/utils': workspace:^ + dependencies: + '@wycatsjs/utils': link:../../@wycatsjs/utils + + packages/@starbeam-docs/snippets: + specifiers: + '@jsergo/mdit': workspace:^ + '@starbeam-docs/vue-jsx-runtime': workspace:^ + '@types/node': ^18.15.0 + vite: ^4.1.2 + vue: ^3.2.47 + vue-sfc2esm: ^0.1.6 + dependencies: + '@jsergo/mdit': link:../../@jsergo/mdit + '@starbeam-docs/vue-jsx-runtime': link:../vue-jsx-runtime + devDependencies: + '@types/node': 18.15.0 + vite: 4.1.4_@types+node@18.15.0 + vue: 3.2.47 + vue-sfc2esm: 0.1.6 + + packages/@starbeam-docs/theme: + specifiers: + '@types/node': ^18.15.0 + vite: ^4.1.2 + vue: ^3.2.47 + vue-sfc2esm: ^0.1.6 + devDependencies: + '@types/node': 18.15.0 + vite: 4.1.4_@types+node@18.15.0 + vue: 3.2.47 + vue-sfc2esm: 0.1.6 + + packages/@starbeam-docs/vue-jsx-runtime: + specifiers: + vue: ^3.2.47 + dependencies: + vue: 3.2.47 packages/@types/shell-escape-tag: specifiers: {} + packages/@wycatsjs/utils: + specifiers: + '@jsergo/tagged-templates': workspace:^ + dependencies: + '@jsergo/tagged-templates': link:../../@jsergo/tagged-templates + packages/api-docs: specifiers: - ts-json-schema-generator: next + ts-json-schema-generator: ^1.2.0 dependencies: - ts-json-schema-generator: 1.2.0-next.6 + ts-json-schema-generator: 1.2.0 + + packages/monaco: + specifiers: + monaco-editor: ^0.35.0 + dependencies: + monaco-editor: 0.35.0 packages/starbeam-vitepress: specifiers: {} @@ -182,13 +470,13 @@ importers: '@starbeam/react': 0.8.9 '@starbeam/timeline': 0.8.9 '@starbeam/universal': 0.8.9 - '@types/react': ^18.0.26 - '@types/react-dom': ^18.0.9 + '@types/react': ^18.0.28 + '@types/react-dom': ^18.0.11 preact: '*' preact-render-to-string: 5.2.6 react: '*' react-dom: '*' - typescript: ^4.9.4 + typescript: next devDependencies: '@starbeam/debug': 0.8.9 '@starbeam/interfaces': 0.8.9 @@ -197,51 +485,49 @@ importers: '@starbeam/react': 0.8.9_biqbaboplfbrettd7655fr4n2y '@starbeam/timeline': 0.8.9 '@starbeam/universal': 0.8.9 - '@types/react': 18.0.26 - '@types/react-dom': 18.0.9 + '@types/react': 18.0.28 + '@types/react-dom': 18.0.11 preact: 10.11.3 preact-render-to-string: 5.2.6_preact@10.11.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - typescript: 4.9.4 + typescript: 5.1.0-dev.20230321 scripts: specifiers: - '@types/node': ^18.11.17 + '@types/cli-progress': ^3.11.0 + '@types/node': ^18.11.18 '@types/shell-escape-tag': workspace:1.0.0 '@types/shelljs': ^0.8.11 + chalk: ^5.2.0 + cli-progress: ^3.12.0 + fast-extract: ^0.4.8 fast-glob: ^3.2.12 shell-escape-tag: ^2.0.2 shelljs: ^0.8.5 - yaml: ^2.2.0 + wget-improved: ^3.3.1 + yaml: ^2.2.1 dependencies: + chalk: 5.2.0 + cli-progress: 3.12.0 + fast-extract: 0.4.8 fast-glob: 3.2.12 shell-escape-tag: 2.0.2 shelljs: 0.8.5 - yaml: 2.2.0 + wget-improved: 3.3.1 + yaml: 2.2.1 devDependencies: - '@types/node': 18.11.17 + '@types/cli-progress': 3.11.0 + '@types/node': 18.11.18 '@types/shell-escape-tag': link:../packages/@types/shell-escape-tag '@types/shelljs': 0.8.11 - src/frameworks/preact: - specifiers: - '@starbeam/preact': 0.8.9 - '@starbeam/universal': 0.8.9 - preact: '*' - preact-render-to-string: 5.2.6 - dependencies: - '@starbeam/preact': 0.8.9_preact@10.11.3 - '@starbeam/universal': 0.8.9 - preact: 10.11.3 - preact-render-to-string: 5.2.6_preact@10.11.3 - src/frameworks/react: specifiers: '@starbeam/react': 0.8.9 '@starbeam/universal': 0.8.9 - '@types/react': ^18.0.26 - '@types/react-dom': ^18.0.9 + '@types/react': ^18.0.28 + '@types/react-dom': ^18.0.11 react: '*' react-dom: '*' dependencies: @@ -250,159 +536,171 @@ importers: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - '@types/react': 18.0.26 - '@types/react-dom': 18.0.9 + '@types/react': 18.0.28 + '@types/react-dom': 18.0.11 types/@types/jsdoc-api: specifiers: {} + types/@types/markdown-it-bracketed-spans: + specifiers: + markdown-it: '*' + dependencies: + markdown-it: 13.0.1 + types/@types/postcss-advanced-variables: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 types/@types/postcss-env-function: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 + dependencies: + postcss: 8.4.21 + + types/@types/postcss-extend-rule: + specifiers: + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 types/@types/postcss-functions: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 types/@types/postcss-modules-values: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 types/@types/postcss-nesting: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 types/@types/postcss-scss: specifiers: - postcss: ^8.4.20 + postcss: ^8.4.21 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 packages: - /@algolia/autocomplete-core/1.7.2: - resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} + /@algolia/autocomplete-core/1.7.4: + resolution: {integrity: sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==} dependencies: - '@algolia/autocomplete-shared': 1.7.2 + '@algolia/autocomplete-shared': 1.7.4 dev: true - /@algolia/autocomplete-preset-algolia/1.7.2_qs6lk5nhygj2o3hj4sf6xnr724: - resolution: {integrity: sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==} + /@algolia/autocomplete-preset-algolia/1.7.4_54vqn5ucj5r6a67cmv5tg3mbje: + resolution: {integrity: sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.7.2 - '@algolia/client-search': 4.14.2 - algoliasearch: 4.14.2 + '@algolia/autocomplete-shared': 1.7.4 + '@algolia/client-search': 4.15.0 + algoliasearch: 4.15.0 dev: true - /@algolia/autocomplete-shared/1.7.2: - resolution: {integrity: sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==} + /@algolia/autocomplete-shared/1.7.4: + resolution: {integrity: sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==} dev: true - /@algolia/cache-browser-local-storage/4.14.2: - resolution: {integrity: sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==} + /@algolia/cache-browser-local-storage/4.15.0: + resolution: {integrity: sha512-uxxFhTWh4JJDb2+FFSmNMfEQ8p9o2vjSpU7iW007QX3OvqljPPN68lk3bpZVaG8pwr5MU1DqpkZ71FcQdVTjgQ==} dependencies: - '@algolia/cache-common': 4.14.2 + '@algolia/cache-common': 4.15.0 dev: true - /@algolia/cache-common/4.14.2: - resolution: {integrity: sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==} + /@algolia/cache-common/4.15.0: + resolution: {integrity: sha512-Me3PbI4QurAM+3D+htIE0l1xt6+bl/18SG6Wc7bPQEZAtN7DTGz22HqhKNyLF2lR/cOfpaH7umXZlZEhIHf7gQ==} dev: true - /@algolia/cache-in-memory/4.14.2: - resolution: {integrity: sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==} + /@algolia/cache-in-memory/4.15.0: + resolution: {integrity: sha512-B9mg1wd7CKMfpkbiTQ8KlcKkH6ut/goVaI6XmDCUczOOqeuZlV34tuEi7o3Xo1j66KWr/d9pMjjGYcoVPCVeOA==} dependencies: - '@algolia/cache-common': 4.14.2 + '@algolia/cache-common': 4.15.0 dev: true - /@algolia/client-account/4.14.2: - resolution: {integrity: sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==} + /@algolia/client-account/4.15.0: + resolution: {integrity: sha512-8wqI33HRZy5ydfFt6F5vMhtkOiAUhVfSCYXx4U3Go5RALqWLgVUp6wzOo0mr1z08POCkHDpbQMQvyayb1CZ/kw==} dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/client-search': 4.14.2 - '@algolia/transporter': 4.14.2 + '@algolia/client-common': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/transporter': 4.15.0 dev: true - /@algolia/client-analytics/4.14.2: - resolution: {integrity: sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==} + /@algolia/client-analytics/4.15.0: + resolution: {integrity: sha512-jrPjEeNEIIQKeA1XCZXx3f3aybtwF7wjYlnfHbLARuZ9AuHzimOKjX0ZwqvMmvTsHivpcZ2rqY+j1E8HoH1ELA==} dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/client-search': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 + '@algolia/client-common': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 dev: true - /@algolia/client-common/4.14.2: - resolution: {integrity: sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==} + /@algolia/client-common/4.15.0: + resolution: {integrity: sha512-PlsJMObZuYw4JlG5EhYv1PHDOv7n5mD5PzqFyoNfSOYaEPRZepa3W579ya29yOu3FZ0VGMNJmB7Q5v/+/fwvIw==} dependencies: - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 dev: true - /@algolia/client-personalization/4.14.2: - resolution: {integrity: sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==} + /@algolia/client-personalization/4.15.0: + resolution: {integrity: sha512-Bf0bhRAiNL9LWurzyHRH8UBi4fDt3VbCNkInxVngKQT1uCZWXecwoPWGhcSSpdanBqFJA/1WBt+BWx7a50Bhlg==} dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 + '@algolia/client-common': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 dev: true - /@algolia/client-search/4.14.2: - resolution: {integrity: sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==} + /@algolia/client-search/4.15.0: + resolution: {integrity: sha512-dTwZD4u53WdmexnMcoO2Qd/+YCP3ESXKOtD2MryQ1a9dHwB2Y3Qob0kyS1PG82idwM3enbznvscI9Sf4o9PUWQ==} dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 + '@algolia/client-common': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 dev: true - /@algolia/logger-common/4.14.2: - resolution: {integrity: sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==} + /@algolia/logger-common/4.15.0: + resolution: {integrity: sha512-D8OFwn/HpvQz66goIcjxOKsYBMuxiruxJ3cA/bnc0EiDvSA2P2z6bNQWgS5gbstuTZIJmbhr+53NyOxFkmMNAA==} dev: true - /@algolia/logger-console/4.14.2: - resolution: {integrity: sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==} + /@algolia/logger-console/4.15.0: + resolution: {integrity: sha512-pQOvVaRSEJQJRXKTnxEA6nN1hipSQadJJ4einw0nIlfMOGZh/kps1ybh8vRUlUGyfEuN/3dyFs0W3Ac7hIItlg==} dependencies: - '@algolia/logger-common': 4.14.2 + '@algolia/logger-common': 4.15.0 dev: true - /@algolia/requester-browser-xhr/4.14.2: - resolution: {integrity: sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==} + /@algolia/requester-browser-xhr/4.15.0: + resolution: {integrity: sha512-va186EfALF+6msYZXaoBSxcnFCg3SoWJ+uv1yMyhQRJRe7cZSHWSVT3s40vmar90gxlBu80KMVwVlsvJhJv6ew==} dependencies: - '@algolia/requester-common': 4.14.2 + '@algolia/requester-common': 4.15.0 dev: true - /@algolia/requester-common/4.14.2: - resolution: {integrity: sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==} + /@algolia/requester-common/4.15.0: + resolution: {integrity: sha512-w0UUzxElbo4hrKg4QP/jiXDNbIJuAthxdlkos9nS8KAPK2XI3R9BlUjLz/ZVs4F9TDGI0mhjrNHhZ12KXcoyhg==} dev: true - /@algolia/requester-node-http/4.14.2: - resolution: {integrity: sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==} + /@algolia/requester-node-http/4.15.0: + resolution: {integrity: sha512-eeEOhFtgwKcgAlKAZpgBRZJ0ILSEBCXxZ9uwfVWPD24W1b6z08gVoTJ6J7lCeCnJmudg+tMElDnGzHkjup9CJA==} dependencies: - '@algolia/requester-common': 4.14.2 + '@algolia/requester-common': 4.15.0 dev: true - /@algolia/transporter/4.14.2: - resolution: {integrity: sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==} + /@algolia/transporter/4.15.0: + resolution: {integrity: sha512-JoWR+ixG3EmA0UPntQFN/FV5TasYcYu93d5+oKzHFeZ6Z7rtW5Im9iy/Oh/ggk1AAN5fTdqKewtbBpdaYDbKsQ==} dependencies: - '@algolia/cache-common': 4.14.2 - '@algolia/logger-common': 4.14.2 - '@algolia/requester-common': 4.14.2 + '@algolia/cache-common': 4.15.0 + '@algolia/logger-common': 4.15.0 + '@algolia/requester-common': 4.15.0 dev: true /@ampproject/remapping/2.2.0: @@ -413,6 +711,17 @@ packages: '@jridgewell/trace-mapping': 0.3.17 dev: true + /@antfu/install-pkg/0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + dev: true + + /@antfu/utils/0.7.2: + resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==} + dev: true + /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -420,40 +729,41 @@ packages: '@babel/highlight': 7.18.6 dev: true - /@babel/compat-data/7.20.1: - resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} + /@babel/compat-data/7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.20.2: - resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} + /@babel/core/7.21.0: + resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.4 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 - '@babel/helper-module-transforms': 7.20.2 - '@babel/helpers': 7.20.1 - '@babel/parser': 7.20.3 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/generator': 7.21.1 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.1 + json5: 2.2.3 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/generator/7.20.4: - resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==} + /@babel/generator/7.21.1: + resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 dev: true @@ -461,76 +771,120 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: + resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.21.2 dev: true - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.20.1 - '@babel/core': 7.20.2 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.2: - resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==} + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.20.2 + '@babel/core': 7.21.0 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color dev: true + /@babel/helper-create-regexp-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.3.1 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.21.0: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name/7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/types': 7.21.2 dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 dev: true - /@babel/helper-member-expression-to-functions/7.18.9: - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} + /@babel/helper-member-expression-to-functions/7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 dev: true - /@babel/helper-module-transforms/7.20.2: - resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + /@babel/helper-module-transforms/7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 @@ -538,9 +892,9 @@ packages: '@babel/helper-simple-access': 7.20.2 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color dev: true @@ -549,7 +903,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 dev: true /@babel/helper-plugin-utils/7.20.2: @@ -557,15 +911,31 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers/7.19.1: - resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.20.5 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.21.0 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color dev: true @@ -574,38 +944,55 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.21.2 dev: true /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + /@babel/helper-wrap-function/7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.21.0 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helpers/7.20.1: - resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} + /@babel/helpers/7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color dev: true @@ -619,3165 +1006,14465 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.20.3: - resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} + /@babel/parser/7.21.2: + resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.20.2 - dev: true + '@babel/types': 7.21.2 - /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.20.2: - resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.20.2 + '@babel/core': 7.21.0 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.2: - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.20.2 + '@babel/core': 7.21.0 '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0 dev: true - /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.2: - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.2 + '@babel/core': 7.21.0 + '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color dev: true - /@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.2: - resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==} + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.20.2 - '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.2 + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/template/7.18.10: - resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.3 - '@babel/types': 7.20.2 + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color dev: true - /@babel/traverse/7.20.1: - resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} + /@babel/plugin-proposal-decorators/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.4 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-hoist-variables': 7.18.6 + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.3 - '@babel/types': 7.20.2 - debug: 4.3.4 - globals: 11.12.0 + '@babel/plugin-syntax-decorators': 7.21.0_@babel+core@7.21.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.20.2: - resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0 dev: true - /@braintree/sanitize-url/6.0.2: - resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==} + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0 dev: true - /@codemirror/autocomplete/0.19.15: - resolution: {integrity: sha512-GQWzvvuXxNUyaEk+5gawbAD8s51/v2Chb++nx0e2eGWrphWk42isBtzOMdc3DxrxrZtPZ55q2ldNp+6G8KJLIQ==} + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/tooltip': 0.19.16 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0 dev: true - /@codemirror/closebrackets/0.19.2: - resolution: {integrity: sha512-ClMPzPcPP0eQiDcVjtVPl6OLxgdtZSYDazsvT0AKl70V1OJva0eHgl4/6kCW3RZ0pb2n34i9nJz4eXCmK+TYDA==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/autocomplete + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0 dev: true - /@codemirror/commands/0.19.8: - resolution: {integrity: sha512-65LIMSGUGGpY3oH6mzV46YWRrgao6NmfJ+AuC7jNz3K5NPnH6GCV1H5I6SwOFyVbkiygGyd0EFwrWqywTBD1aw==} + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/matchbrackets': 0.19.4 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0 dev: true - /@codemirror/comment/0.19.1: - resolution: {integrity: sha512-uGKteBuVWAC6fW+Yt8u27DOnXMT/xV4Ekk2Z5mRsiADCZDqYvryrJd6PLL5+8t64BVyocwQwNfz1UswYS2CtFQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/commands + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0 dev: true - /@codemirror/gutter/0.19.9: - resolution: {integrity: sha512-PFrtmilahin1g6uL27aG5tM/rqR9DZzZYZsIrCXA5Uc2OFTFqx4owuhoU9hqfYxHp5ovfvBwQ+txFzqS4vog6Q==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/view + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0 dev: true - /@codemirror/highlight/0.19.8: - resolution: {integrity: sha512-v/lzuHjrYR8MN2mEJcUD6fHSTXXli9C1XGYpr+ElV6fLBIUhMTNKR3qThp611xuWfXfwDxeL7ppcbkM/MzPV3A==} - deprecated: As of 0.20.0, this package has been split between @lezer/highlight and @codemirror/language + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - style-mod: 4.0.0 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0 dev: true - /@codemirror/history/0.19.2: - resolution: {integrity: sha512-unhP4t3N2smzmHoo/Yio6ueWi+il8gm9VKrvi6wlcdGH5fOfVDNkmjHQ495SiR+EdOG35+3iNebSPYww0vN7ow==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/commands + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0 dev: true - /@codemirror/lang-css/0.19.3: - resolution: {integrity: sha512-tyCUJR42/UlfOPLb94/p7dN+IPsYSIzHbAHP2KQHANj0I+Orqp+IyIOS++M8TuCX4zkWh9dvi8s92yy/Tn8Ifg==} + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/autocomplete': 0.19.15 - '@codemirror/highlight': 0.19.8 - '@codemirror/language': 0.19.10 - '@codemirror/state': 0.19.9 - '@lezer/css': 0.15.2 + '@babel/core': 7.21.0 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color dev: true - /@codemirror/lang-html/0.19.4: - resolution: {integrity: sha512-GpiEikNuCBeFnS+/TJSeanwqaOfNm8Kkp9WpVNEPZCLyW1mAMCuFJu/3xlWYeWc778Hc3vJqGn3bn+cLNubgCA==} + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/autocomplete': 0.19.15 - '@codemirror/highlight': 0.19.8 - '@codemirror/lang-css': 0.19.3 - '@codemirror/lang-javascript': 0.19.7 - '@codemirror/language': 0.19.10 - '@codemirror/state': 0.19.9 - '@lezer/common': 0.15.12 - '@lezer/html': 0.15.1 + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color dev: true - /@codemirror/lang-javascript/0.19.7: - resolution: {integrity: sha512-DL9f3JLqOEHH9cIwEqqjnP5bkjdVXeECksLtV+/MbPm+l4H+AG+PkwZaJQ2oR1GfPZKh8MVSIE94aGWNkJP8WQ==} + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/autocomplete': 0.19.15 - '@codemirror/highlight': 0.19.8 - '@codemirror/language': 0.19.10 - '@codemirror/lint': 0.19.6 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - '@lezer/javascript': 0.15.3 + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/lang-python/0.19.5: - resolution: {integrity: sha512-MQf7t0k6+i9KCzlFCI8EY+jjwyXLy5AwjmXsMyMCMbOw/97j70jFZYrs7Mm7RJakNE2rypWhnLGlyBTSYMqR5g==} + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.0: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/highlight': 0.19.8 - '@codemirror/language': 0.19.10 - '@lezer/python': 0.15.1 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/language/0.19.10: - resolution: {integrity: sha512-yA0DZ3RYn2CqAAGW62VrU8c4YxscMQn45y/I9sjBlqB1e2OTQLg4CCkMBuMSLXk4xaqjlsgazeOQWaJQOKfV8Q==} + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 - '@lezer/lr': 0.15.8 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/legacy-modes/0.19.1: - resolution: {integrity: sha512-vYPLsD/ON+3SXhlGj9Qb3fpFNNU3Ya/AtDiv/g3OyqVzhh5vs5rAnOvk8xopGWRwppdhlNPD9VyXjiOmZUQtmQ==} + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.0: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/stream-parser': 0.19.9 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/lint/0.19.6: - resolution: {integrity: sha512-Pbw1Y5kHVs2J+itQ0uez3dI4qY9ApYVap7eNfV81x1/3/BXgBkKfadaw0gqJ4h4FDG7OnJwb0VbPsjJQllHjaA==} + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/gutter': 0.19.9 - '@codemirror/panel': 0.19.1 - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/tooltip': 0.19.16 - '@codemirror/view': 0.19.48 - crelt: 1.0.5 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/matchbrackets/0.19.4: - resolution: {integrity: sha512-VFkaOKPNudAA5sGP1zikRHCEKU0hjYmkKpr04pybUpQvfTvNJXlReCyP0rvH/1iEwAGPL990ZTT+QrLdu4MeEA==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/language + /@babel/plugin-syntax-decorators/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/language': 0.19.10 - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 - '@lezer/common': 0.15.12 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/panel/0.19.1: - resolution: {integrity: sha512-sYeOCMA3KRYxZYJYn5PNlt9yNsjy3zTNTrbYSfVgjgL9QomIVgOJWPO5hZ2sTN8lufO6lw0vTBsIPL9MSidmBg==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/view + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/rangeset/0.19.9: - resolution: {integrity: sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/state/0.19.9: - resolution: {integrity: sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw==} + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.21.0: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/text': 0.19.6 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/stream-parser/0.19.9: - resolution: {integrity: sha512-WTmkEFSRCetpk8xIOvV2yyXdZs3DgYckM0IP7eFi4ewlxWnJO/H4BeJZLs4wQaydWsAqTQoDyIwNH1BCzK5LUQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/language + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.21.0: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/highlight': 0.19.8 - '@codemirror/language': 0.19.10 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - '@lezer/common': 0.15.12 - '@lezer/lr': 0.15.8 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/text/0.19.6: - resolution: {integrity: sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/state + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/tooltip/0.19.16: - resolution: {integrity: sha512-zxKDHryUV5/RS45AQL+wOeN+i7/l81wK56OMnUPoTSzCWNITfxHn7BToDsjtrRKbzHqUxKYmBnn/4hPjpZ4WJQ==} - deprecated: As of 0.20.0, this package has been merged into @codemirror/view + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.0: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/state': 0.19.9 - '@codemirror/view': 0.19.48 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codemirror/view/0.19.48: - resolution: {integrity: sha512-0eg7D2Nz4S8/caetCTz61rK0tkHI17V/d15Jy0kLOT8dTLGGNJUponDnW28h2B6bERmPlVHKh8MJIr5OCp1nGw==} + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@codemirror/rangeset': 0.19.9 - '@codemirror/state': 0.19.9 - '@codemirror/text': 0.19.6 - style-mod: 4.0.0 - w3c-keyname: 2.2.6 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codesandbox/sandpack-client/1.18.0: - resolution: {integrity: sha512-VChxkXtA1AipLnlmuzmI8uixtDk0VWkxu5q7ev+TlsTJsiS8sVLDBCBjAyj0zrjtEpfrW8TwjAQxuX7v9Ga8Pw==} + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.0: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - codesandbox-import-utils: 1.3.8 - lodash.isequal: 4.5.0 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@codesandbox/sandpack-themes/1.17.0: - resolution: {integrity: sha512-Y/1c2Gzzsosj/K9akbKh2Z1xAhKby9p77fvs0lvldRVZ41cv3ryldMy0QKup7G+O2QDuruNzJ/B9MamEYbPxMw==} + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@csstools/postcss-design-tokens/1.2.0_postcss@8.4.20: - resolution: {integrity: sha512-XNIhRcAnfjLbm4omphcpTGBlmquyGTiKJgZU7EKfqBo6GXlQIlqTK8ylVe941WIm/e5TzYoqK9Wj1IB7yu5rzQ==} - engines: {node: ^12 || ^14 || >=16} + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: - postcss: ^8.2 + '@babel/core': ^7.0.0-0 dependencies: - postcss: 8.4.20 - postcss-value-parser: 4.2.0 + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@csstools/sass-import-resolve/1.0.0: - resolution: {integrity: sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA==} - engines: {node: '>=4.0.0'} + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.0: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 dev: true - /@csstools/selector-specificity/2.0.2_2xshye3abirqjlplmebvmaxyna: - resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} - engines: {node: ^12 || ^14 || >=16} + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: - postcss: ^8.2 + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.0: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.21.0: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/template': 7.20.7 + dev: true + + /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-for-of/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.21.0: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.21.2_@babel+core@7.21.0: + resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.21.0: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.21.0: + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.21.0: + resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-runtime/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.21.0: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.21.0: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.21.0: + resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.21.0: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.0: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-create-regexp-features-plugin': 7.21.0_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/preset-env/7.20.2_@babel+core@7.21.0: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-class-static-block': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-private-property-in-object': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.21.0 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.21.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.0 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-block-scoping': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-classes': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-for-of': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.21.0 + '@babel/plugin-transform-modules-commonjs': 7.21.2_@babel+core@7.21.0 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.21.0 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.21.0 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.21.0 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.21.0 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.21.0 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.21.0 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.21.0 + '@babel/preset-modules': 0.1.5_@babel+core@7.21.0 + '@babel/types': 7.21.2 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0 + core-js-compat: 3.29.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.21.0: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.0 + '@babel/types': 7.21.2 + esutils: 2.0.3 + dev: true + + /@babel/preset-typescript/7.21.0_@babel+core@7.21.0: + resolution: {integrity: sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.21.0 + '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/regjsgen/0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: true + + /@babel/standalone/7.21.2: + resolution: {integrity: sha512-ySP/TJcyqMJVg1M/lmnPVi6L+F+IJpQ4+0lqtf723LERbk1N8/0JgLgm346cRAzfHaoXkLq/M/mJBd2uo25RBA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + dev: true + + /@babel/traverse/7.21.2: + resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.1 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.21.2: + resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@codemirror/autocomplete/6.4.2_lc2v3dpzp2l5pdzwtgfaudkm3e: + resolution: {integrity: sha512-8WE2xp+D0MpWEv5lZ6zPW1/tf4AGb358T5GWYiKEuCP8MvFfT3tH2mIF9Y2yr2e3KbHuSvsVhosiEyqCpiJhZQ==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@lezer/common': 1.0.2 + dev: true + + /@codemirror/commands/6.2.2: + resolution: {integrity: sha512-s9lPVW7TxXrI/7voZ+HmD/yiAlwAYn9PH5SUVSUhsxXHhv4yl5eZ3KLntSoTynfdgVYM0oIpccQEWRBQgmNZyw==} + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@lezer/common': 1.0.2 + dev: true + + /@codemirror/lang-css/6.1.1_i3aqn63zftbgivbr4riltn5mqe: + resolution: {integrity: sha512-P6jdNEHyRcqqDgbvHYyC9Wxkek0rnG3a9aVSRi4a7WrjPbQtBTaOmvYpXmm13zZMAatO4Oqpac+0QZs7sy+LnQ==} + dependencies: + '@codemirror/autocomplete': 6.4.2_lc2v3dpzp2l5pdzwtgfaudkm3e + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/css': 1.1.1 + transitivePeerDependencies: + - '@codemirror/view' + - '@lezer/common' + dev: true + + /@codemirror/lang-html/6.4.2: + resolution: {integrity: sha512-bqCBASkteKySwtIbiV/WCtGnn/khLRbbiV5TE+d9S9eQJD7BA4c5dTRm2b3bVmSpilff5EYxvB4PQaZzM/7cNw==} + dependencies: + '@codemirror/autocomplete': 6.4.2_lc2v3dpzp2l5pdzwtgfaudkm3e + '@codemirror/lang-css': 6.1.1_i3aqn63zftbgivbr4riltn5mqe + '@codemirror/lang-javascript': 6.1.4 + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@lezer/common': 1.0.2 + '@lezer/css': 1.1.1 + '@lezer/html': 1.3.3 + dev: true + + /@codemirror/lang-javascript/6.1.4: + resolution: {integrity: sha512-OxLf7OfOZBTMRMi6BO/F72MNGmgOd9B0vetOLvHsDACFXayBzW8fm8aWnDM0yuy68wTK03MBf4HbjSBNRG5q7A==} + dependencies: + '@codemirror/autocomplete': 6.4.2_lc2v3dpzp2l5pdzwtgfaudkm3e + '@codemirror/language': 6.6.0 + '@codemirror/lint': 6.2.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@lezer/common': 1.0.2 + '@lezer/javascript': 1.4.1 + dev: true + + /@codemirror/language/6.6.0: + resolution: {integrity: sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.3 + '@lezer/lr': 1.3.3 + style-mod: 4.0.0 + dev: true + + /@codemirror/lint/6.2.0: + resolution: {integrity: sha512-KVCECmR2fFeYBr1ZXDVue7x3q5PMI0PzcIbA+zKufnkniMBo1325t0h1jM85AKp8l3tj67LRxVpZfgDxEXlQkg==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + crelt: 1.0.5 + dev: true + + /@codemirror/state/6.2.0: + resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==} + dev: true + + /@codemirror/view/6.9.2: + resolution: {integrity: sha512-ci0r/v6aKOSlzOs7/STMTYP3jX/+YMq2dAfAJcLIB6uom4ThtrUlzeuS7GTRGNqJJ+qAJR1vGWfXgu4CO/0myQ==} + dependencies: + '@codemirror/state': 6.2.0 + style-mod: 4.0.0 + w3c-keyname: 2.2.6 + dev: true + + /@codesandbox/nodebox/0.1.4: + resolution: {integrity: sha512-+MR7JibjGjTRDmyQbL8Mliej6wakQP7q99+wGL/nOzd0Q3s+YWGQfv0QpYKbdMClKUTFJGvwzwOeqHVTkpWNCQ==} + dependencies: + outvariant: 1.3.0 + strict-event-emitter: 0.4.6 + dev: true + + /@codesandbox/sandpack-client/2.1.0: + resolution: {integrity: sha512-/z3EbaYaatd45DWAOvhU+8M7cMaDlmBEjyQaahNXRDY7keSraMZnsdImmASlU9qqLm6vQpAu1ZXtOMeL7dkMww==} + dependencies: + '@codesandbox/nodebox': 0.1.4 + buffer: 6.0.3 + dequal: 2.0.3 + outvariant: 1.3.0 + dev: true + + /@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@csstools/cascade-layer-name-parser/1.0.1_ppok7cytzjc65mcyxmtit3wdyi: + resolution: {integrity: sha512-SAAi5DpgJJWkfTvWSaqkgyIsTawa83hMwKrktkj6ra2h+q6ZN57vOGZ6ySHq6RSo+CbP64fA3aPChPBRDDUgtw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.0.0 + '@csstools/css-tokenizer': ^2.0.0 + dependencies: + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + dev: true + + /@csstools/color-helpers/1.0.0: + resolution: {integrity: sha512-tgqtiV8sU/VaWYjOB3O7PWs7HR/MmOLl2kTYRW2qSsTSEniJq7xmyAYFB1LPpXvvQcE5u2ih2dK9fyc8BnrAGQ==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/css-calc/1.0.0_ppok7cytzjc65mcyxmtit3wdyi: + resolution: {integrity: sha512-Xw0b/Jr+vLGGYD8cxsGWPaY5n1GtVC6G4tcga+eZPXZzRjjZHorPwW739UgtXzL2Da1RLxNE73c0r/KvmizPsw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.0.1 + '@csstools/css-tokenizer': ^2.0.1 + dependencies: + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + dev: true + + /@csstools/css-parser-algorithms/2.0.1_5vzy4lghjvuzkedkkk4tqwjftm: + resolution: {integrity: sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.0.0 + dependencies: + '@csstools/css-tokenizer': 2.1.0 + dev: true + + /@csstools/css-tokenizer/2.1.0: + resolution: {integrity: sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser/2.0.1_ppok7cytzjc65mcyxmtit3wdyi: + resolution: {integrity: sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.0.0 + '@csstools/css-tokenizer': ^2.0.0 + dependencies: + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + dev: true + + /@csstools/postcss-cascade-layers/3.0.1_postcss@8.4.21: + resolution: {integrity: sha512-dD8W98dOYNOH/yX4V4HXOhfCOnvVAg8TtsL+qCGNoKXuq5z2C/d026wGWgySgC8cajXXo/wNezS31Glj5GcqrA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /@csstools/postcss-color-function/2.1.0_postcss@8.4.21: + resolution: {integrity: sha512-XBoCClLyWchlYGHGlmMOa6M2UXZNrZm63HVfsvgD/z1RPm/s3+FhHyT6VkDo+OvEBPhCgn6xz4IeCu4pRctKDQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 1.0.0 + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-font-format-keywords/2.0.2_postcss@8.4.21: + resolution: {integrity: sha512-iKYZlIs6JsNT7NKyRjyIyezTCHLh4L4BBB3F5Nx7Dc4Z/QmBgX+YJFuUSar8IM6KclGiAUFGomXFdYxAwJydlA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-global-data/1.0.3_postcss@8.4.21: + resolution: {integrity: sha512-x2fZOl7RJJtKC9ZfG+1bdrQKeRfP1a3Ff4uF2/fykNUKly8E8Q7lw7oegsEnqenSEDC1xjk6qXJ/fcJkTAdcNg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + dev: true + + /@csstools/postcss-hwb-function/2.1.1_postcss@8.4.21: + resolution: {integrity: sha512-XijKzdxBdH2hU6IcPWmnaU85FKEF1XE5hGy0d6dQC6XznFUIRu1T4uebL3krayX40m4xIcxfCBsQm5zphzVrtg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-ic-unit/2.0.2_postcss@8.4.21: + resolution: {integrity: sha512-N84qGTJkfLTPj2qOG5P4CIqGjpZBbjOEMKMn+UjO5wlb9lcBTfBsxCF0lQsFdWJUzBHYFOz19dL66v71WF3Pig==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-is-pseudo-class/3.1.1_postcss@8.4.21: + resolution: {integrity: sha512-hhiacuby4YdUnnxfCYCRMBIobyJImozf0u+gHSbQ/tNOdwvmrZtVROvgW7zmfYuRkHVDNZJWZslq2v5jOU+j/A==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /@csstools/postcss-logical-float-and-clear/1.0.1_postcss@8.4.21: + resolution: {integrity: sha512-eO9z2sMLddvlfFEW5Fxbjyd03zaO7cJafDurK4rCqyRt9P7aaWwha0LcSzoROlcZrw1NBV2JAp2vMKfPMQO1xw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + dev: true + + /@csstools/postcss-logical-resize/1.0.1_postcss@8.4.21: + resolution: {integrity: sha512-x1ge74eCSvpBkDDWppl+7FuD2dL68WP+wwP2qvdUcKY17vJksz+XoE1ZRV38uJgS6FNUwC0AxrPW5gy3MxsDHQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-logical-viewport-units/1.0.2_postcss@8.4.21: + resolution: {integrity: sha512-nnKFywBqRMYjv5jyjSplD/nbAnboUEGFfdxKw1o34Y1nvycgqjQavhKkmxbORxroBBIDwC5y6SfgENcPPUcOxQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-tokenizer': 2.1.0 + postcss: 8.4.21 + dev: true + + /@csstools/postcss-media-queries-aspect-ratio-number-values/1.0.1_postcss@8.4.21: + resolution: {integrity: sha512-V9yQqXdje6OfqDf6EL5iGOpi6N0OEczwYK83rql9UapQwFEryXlAehR5AqH8QqLYb6+y31wUXK6vMxCp0920Zg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + '@csstools/media-query-list-parser': 2.0.1_ppok7cytzjc65mcyxmtit3wdyi + postcss: 8.4.21 + dev: true + + /@csstools/postcss-nested-calc/2.0.2_postcss@8.4.21: + resolution: {integrity: sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-normalize-display-values/2.0.1_postcss@8.4.21: + resolution: {integrity: sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-oklab-function/2.1.0_postcss@8.4.21: + resolution: {integrity: sha512-U/odSNjOVhagNRu+RDaNVbn8vaqA9GyCOoneQA2je7697KOrtRDc7/POrYsP7QioO2aaezDzKNX02wBzc99fkQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 1.0.0 + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-progressive-custom-properties/2.1.0_postcss@8.4.21: + resolution: {integrity: sha512-tRX1rinsXajZlc4WiU7s9Y6O9EdSHScT997zDsvDUjQ1oZL2nvnL6Bt0s9KyQZZTdC3lrG2PIdBqdOIWXSEPlQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-scope-pseudo-class/2.0.2_postcss@8.4.21: + resolution: {integrity: sha512-6Pvo4uexUCXt+Hz5iUtemQAcIuCYnL+ePs1khFR6/xPgC92aQLJ0zGHonWoewiBE+I++4gXK3pr+R1rlOFHe5w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /@csstools/postcss-stepped-value-functions/2.1.0_postcss@8.4.21: + resolution: {integrity: sha512-CkEo9BF8fQeMoXW3biXjlgTLY7PA4UFihn6leq7hPoRzIguLUI0WZIVgsITGXfX8LXmkhCSTjXO2DLYu/LUixQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.0.0_ppok7cytzjc65mcyxmtit3wdyi + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + postcss: 8.4.21 + dev: true + + /@csstools/postcss-text-decoration-shorthand/2.2.1_postcss@8.4.21: + resolution: {integrity: sha512-Ow6/cWWdjjVvA83mkm3kLRvvWsbzoe1AbJCxkpC+c9ibUjyS8pifm+LpZslQUKcxRVQ69ztKHDBEbFGTDhNeUw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-trigonometric-functions/2.0.1_postcss@8.4.21: + resolution: {integrity: sha512-uGmmVWGHozyWe6+I4w321fKUC034OB1OYW0ZP4ySHA23n+r9y93K+1yrmW+hThpSfApKhaWySoD4I71LLlFUYQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-unset-value/2.0.1_postcss@8.4.21: + resolution: {integrity: sha512-oJ9Xl29/yU8U7/pnMJRqAZd4YXNCfGEdcP4ywREuqm/xMqcgDNDppYRoCGDt40aaZQIEKBS79LytUDN/DHf0Ew==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + dev: true + + /@csstools/selector-specificity/2.1.1_wajs5nedgkikc5pcuwett7legi: + resolution: {integrity: sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 postcss-selector-parser: ^6.0.10 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /@cypress/code-coverage/3.10.0_bnvwe5wehjz7j5vxbky5z6tahe: + resolution: {integrity: sha512-K5pW2KPpK4vKMXqxd6vuzo6m9BNgpAv1LcrrtmqAtOJ1RGoEILXYZVost0L6Q+V01NyY7n7jXIIfS7LR3nP6YA==} + peerDependencies: + cypress: '*' + dependencies: + '@cypress/webpack-preprocessor': 5.17.0_eh5cpe43i3iaehjrsfacnapis4 + chalk: 4.1.2 + cypress: 12.7.0 + dayjs: 1.10.7 + debug: 4.3.4 + execa: 4.1.0 + globby: 11.0.4 + istanbul-lib-coverage: 3.0.0 + js-yaml: 3.14.1 + nyc: 15.1.0 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - babel-loader + - supports-color + - webpack + dev: true + + /@cypress/request/2.88.11: + resolution: {integrity: sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==} + engines: {node: '>= 6'} + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + performance-now: 2.1.0 + qs: 6.10.4 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /@cypress/vite-dev-server/5.0.4: + resolution: {integrity: sha512-F9ZkoBcHoILYKEQHDPnsBdzVbnudLoav3iMCOPRvgWfuMlen+zVed1g0nBBYTwfVYMfc9Xqn37ePC3GLSl1aYw==} + dependencies: + debug: 4.3.4 + find-up: 6.3.0 + node-html-parser: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@cypress/vue/5.0.4_cypress@12.7.0+vue@3.2.47: + resolution: {integrity: sha512-BZWzQQNDf8wanhkegQSb8cb3F5VK4oq43jOfYtnuJuDNUL5tcqoWmA1xe/YoQ9uLL26HdepOmyxTGoEgjAkpig==} + engines: {node: '>=8'} + peerDependencies: + '@cypress/webpack-dev-server': '*' + cypress: '>=7.0.0' + vue: '>=3.0.0' + peerDependenciesMeta: + '@cypress/webpack-dev-server': + optional: true + dependencies: + cypress: 12.7.0 + vue: 3.2.47 + dev: true + + /@cypress/webpack-preprocessor/5.17.0_eh5cpe43i3iaehjrsfacnapis4: + resolution: {integrity: sha512-HyFqHkrOrIIYOt4G+r3VK0kVYTcev1tEcqBI/0DJ4AzEuEgW/TB+cX56txy4Cgn60XXdJoul2utclZwUqOsPZA==} + peerDependencies: + '@babel/core': ^7.0.1 + '@babel/preset-env': ^7.0.0 + babel-loader: ^8.0.2 || ^9 + webpack: ^4 || ^5 + dependencies: + '@babel/core': 7.21.0 + '@babel/preset-env': 7.20.2_@babel+core@7.21.0 + babel-loader: 9.1.2_vvlqluip66ao22ix6q4szwdy5u + bluebird: 3.7.1 + debug: 4.3.4 + lodash: 4.17.21 + webpack: 5.76.2_@swc+core@1.3.37 + transitivePeerDependencies: + - supports-color + dev: true + + /@cypress/xvfb/1.2.4_supports-color@8.1.1: + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + dependencies: + debug: 3.2.7_supports-color@8.1.1 + lodash.once: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@docsearch/css/3.3.3: + resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==} + dev: true + + /@docsearch/js/3.3.3_4jk4sx5gsa4z6dpons6mwt4w6q: + resolution: {integrity: sha512-2xAv2GFuHzzmG0SSZgf8wHX0qZX8n9Y1ZirKUk5Wrdc+vH9CL837x2hZIUdwcPZI9caBA+/CzxsS68O4waYjUQ==} + dependencies: + '@docsearch/react': 3.3.3_4jk4sx5gsa4z6dpons6mwt4w6q + preact: 10.13.1 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + dev: true + + /@docsearch/react/3.3.3_4jk4sx5gsa4z6dpons6mwt4w6q: + resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0 || 18' + react-dom: '>= 16.8.0 < 19.0.0 || 18' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + dependencies: + '@algolia/autocomplete-core': 1.7.4 + '@algolia/autocomplete-preset-algolia': 1.7.4_54vqn5ucj5r6a67cmv5tg3mbje + '@docsearch/css': 3.3.3 + '@types/react': 18.0.28 + algoliasearch: 4.15.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + + /@domtree/any/0.9.3: + resolution: {integrity: sha512-G7derGChI2hFp8WIonL9K33Na4RCZGSyENTPKp08PBTPxTcHWH+HJqnetdygItS+2X9BSmlglDGaWpT53Zn88g==} + dependencies: + '@domtree/browser': 0.9.3 + '@domtree/interface': 0.9.3 + '@domtree/minimal': 0.9.3 + + /@domtree/browser/0.9.3: + resolution: {integrity: sha512-/PA64pwKvWdSUNIfsIeedBqCR3TA+4ahE45or2hF5mBuCQcv5pGeuAgSAmlHch/JfecVriR2E3WxReMXANawfQ==} + dependencies: + '@domtree/interface': 0.9.3 + + /@domtree/flavors/0.9.3: + resolution: {integrity: sha512-tJYLenCll/+YG62aaT1OxjNMbJVwqv7GFSkOSj42LTB89qsQYlhVM8YfUqOyOaj0ToZoow4N6zZyzStUbNlmlw==} + dependencies: + '@domtree/any': 0.9.3 + '@domtree/browser': 0.9.3 + '@domtree/minimal': 0.9.3 + + /@domtree/interface/0.9.3: + resolution: {integrity: sha512-La9MRMcerFpL0ba9vip/UxXgKDW6+H8juR0e3QjsKR2iaKSdjJKWoKOeRymJkTMAtY4JWfjWxaQUfVK45JjwXA==} + + /@domtree/minimal/0.9.3: + resolution: {integrity: sha512-8Ee8HHO9CuNLcwbOTYjVoI2MnrrHTNEZzrom29xlGDKE99OHzA7eSGcd9xd1Kkn60T27AOJZEu7mtQR/NEPkwQ==} + dependencies: + '@domtree/interface': 0.9.3 + + /@esbuild/android-arm/0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/eslintrc/2.0.0: + resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js/8.35.0: + resolution: {integrity: sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@fabiospampinato/once/2.0.0: + resolution: {integrity: sha512-VJmruLTCTvb1+yYlGLupECCGAsz7bwB1ZRzx6AxdVpJ9YfXkWIRnoIWl4c3aWvPOWcgUQI2cqunTHjLCAZTrSA==} + dev: true + + /@fullhuman/postcss-purgecss/5.0.0_postcss@8.4.21: + resolution: {integrity: sha512-onDS/b/2pMRzqSoj4qOs2tYFmOpaspjTAgvACIHMPiicu1ptajiBruTrjBzTKdxWdX0ldaBb7wj8nEaTLyFkJw==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.21 + purgecss: 5.0.0 + dev: true + + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@iconify-json/nonicons/1.1.2: + resolution: {integrity: sha512-l9PqYHVall9mbIxm3fncsuPpjLQ6YvU1NorRVa9EcG0I37Eupld+Q5E6vhAPoB2r/hr8MFzrXmtwAZUJ0EyvCA==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/types/2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/utils/2.1.4: + resolution: {integrity: sha512-7vzsYIvxv5Hng0MNEtSSnyMBD/+zqnORqmKiYsSgpMBGSz1r93URgBZHPYCZ1/gpoaVstYW4/SVLGCMJBNMCLQ==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.2 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.7.0 + local-pkg: 0.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@intlify/core-base/9.2.2: + resolution: {integrity: sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==} + engines: {node: '>= 14'} + dependencies: + '@intlify/devtools-if': 9.2.2 + '@intlify/message-compiler': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + + /@intlify/devtools-if/9.2.2: + resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + + /@intlify/eslint-plugin-vue-i18n/2.0.0_eslint@8.35.0: + resolution: {integrity: sha512-ECBD0TvQNa56XKyuM6FPIGAAl7MP6ODcgjBQJrzucNxcTb8fYTWmZ+xgBuvmvAtA0iE0D4Wp18UMild2N0bGyw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint/eslintrc': 1.4.1 + '@intlify/core-base': 9.2.2 + '@intlify/message-compiler': 9.2.2 + debug: 4.3.4 + eslint: 8.35.0 + glob: 8.1.0 + ignore: 5.2.4 + is-language-code: 3.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + jsonc-eslint-parser: 2.1.0 + lodash: 4.17.21 + parse5: 7.1.2 + semver: 7.3.8 + vue-eslint-parser: 9.1.0_eslint@8.35.0 + yaml-eslint-parser: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@intlify/message-compiler/9.2.2: + resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + source-map: 0.6.1 + + /@intlify/shared/9.2.2: + resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} + engines: {node: '>= 14'} + + /@intlify/vue-devtools/9.2.2: + resolution: {integrity: sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==} + engines: {node: '>= 14'} + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + + /@istanbuljs/load-nyc-config/1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console/28.1.3: + resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + chalk: 4.1.2 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/environment/28.1.3: + resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + jest-mock: 28.1.3 + dev: true + + /@jest/expect-utils/28.1.3: + resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + dev: true + + /@jest/expect/28.1.3: + resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + expect: 28.1.3 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers/28.1.3: + resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 18.15.5 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /@jest/globals/28.1.3: + resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/types': 28.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters/28.1.1: + resolution: {integrity: sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 28.1.3 + '@jest/test-result': 28.1.1 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.17 + '@types/node': 18.15.5 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-message-util: 28.1.3 + jest-util: 28.1.1 + jest-worker: 28.1.3 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + terminal-link: 2.1.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas/28.1.3: + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@sinclair/typebox': 0.24.51 + dev: true + + /@jest/source-map/28.1.2: + resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result/28.1.1: + resolution: {integrity: sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + + /@jest/test-result/28.1.3: + resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + + /@jest/test-sequencer/28.1.3: + resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + slash: 3.0.0 + dev: true + + /@jest/transform/28.1.3: + resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.21.0 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.17 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types/28.1.3: + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.15.5 + '@types/yargs': 17.0.22 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jsdoc/salty/0.2.4: + resolution: {integrity: sha512-HRBmslXHM6kpZOfGf0o41NUlGYGER0NoUBcT2Sik4rxzAN7f7+si7ad57SFSFpftvaMVnUaY7YlJuv3v5G80ZA==} + engines: {node: '>=v12.0.0'} + dependencies: + lodash: 4.17.21 + dev: true + + /@leichtgewicht/ip-codec/2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + + /@lezer/common/1.0.2: + resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} + dev: true + + /@lezer/css/1.1.1: + resolution: {integrity: sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==} + dependencies: + '@lezer/highlight': 1.1.3 + '@lezer/lr': 1.3.3 + dev: true + + /@lezer/highlight/1.1.3: + resolution: {integrity: sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==} + dependencies: + '@lezer/common': 1.0.2 + dev: true + + /@lezer/html/1.3.3: + resolution: {integrity: sha512-04Fyvu66DjV2EjhDIG1kfDdktn5Pfw56SXPrzKNQH5B2m7BDfc6bDsz+ZJG8dLS3kIPEKbyyq1Sm2/kjeG0+AA==} + dependencies: + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.3 + '@lezer/lr': 1.3.3 + dev: true + + /@lezer/javascript/1.4.1: + resolution: {integrity: sha512-Hqx36DJeYhKtdpc7wBYPR0XF56ZzIp0IkMO/zNNj80xcaFOV4Oj/P7TQc/8k2TxNhzl7tV5tXS8ZOCPbT4L3nA==} + dependencies: + '@lezer/highlight': 1.1.3 + '@lezer/lr': 1.3.3 + dev: true + + /@lezer/lr/1.3.3: + resolution: {integrity: sha512-JPQe3mwJlzEVqy67iQiiGozhcngbO8QBgpqZM6oL1Wj/dXckrEexpBLeFkq0edtW5IqnPRFxA24BHJni8Js69w==} + dependencies: + '@lezer/common': 1.0.2 + dev: true + + /@mdit-vue/plugin-sfc/0.12.0: + resolution: {integrity: sha512-mH+rHsERzDxGucAQJILspRiD723AIWMmtMhp7lDKdkCIbIhYfupFv/CkSeX+LAx5UY5greWvUTPGYVKn4gw/5Q==} + dependencies: + '@mdit-vue/types': 0.12.0 + '@types/markdown-it': 12.2.3 + markdown-it: 13.0.1 + dev: true + + /@mdit-vue/types/0.12.0: + resolution: {integrity: sha512-mrC4y8n88BYvgcgzq9bvTlDgFyi2zuvzmPilRvRc3Uz1iIvq8mDhxJ0rHKFUNzPEScpDvJdIujqiDrulMqiudA==} + dev: true + + /@mole-inc/bin-wrapper/8.0.1: + resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bin-check: 4.1.0 + bin-version-check: 5.0.0 + content-disposition: 0.5.4 + ext-name: 5.0.0 + file-type: 17.1.6 + filenamify: 5.1.1 + got: 11.8.6 + os-filter-obj: 2.0.0 + dev: true + + /@monaco-editor/loader/1.3.2_bvrjytjtjkl4gtwum6dvwouhqq: + resolution: {integrity: sha512-BTDbpHl3e47r3AAtpfVFTlAi7WXv4UQ/xZmz8atKl4q7epQV5e7+JbigFDViWF71VBi4IIBdcWP57Hj+OWuc9g==} + peerDependencies: + monaco-editor: '>= 0.21.0 < 1' + dependencies: + monaco-editor: 0.36.0-dev.20230217 + state-local: 1.0.7 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@nrwl/cli/15.8.2_@swc+core@1.3.37: + resolution: {integrity: sha512-7Ye1Y1nPF1RuiQbKhHYeBDbFKMPwiz0Bd0YLu11Egu5a7sYCdAhknMsM9U82QxcJpIsGzolutVmfoG4AGz1MbA==} + dependencies: + nx: 15.8.2_@swc+core@1.3.37 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/cli/15.8.7_@swc+core@1.3.37: + resolution: {integrity: sha512-G1NEy4jGuZJ/7KjhLQNOe11XmoTgwJS82FW8Tbo4iceq2ItSEbe7bkA8xTSK/AzUixZIMimztb9Oyxw/n1ajGQ==} + dependencies: + nx: 15.8.7_@swc+core@1.3.37 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/cypress/15.8.2_s67zzij65n2p466h4qax6xuwsi: + resolution: {integrity: sha512-jiEi3oVb8EouegLtV+zDXq6lbX3a9bxDt3FYDHRy6LmKorpDZBBNrffcz2frXbrbntoaEDyYsxjjwMJztRKBWw==} + peerDependencies: + cypress: '>= 3 < 13' + peerDependenciesMeta: + cypress: + optional: true + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/linter': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + cypress: 12.7.0 + dotenv: 10.0.0 + semver: 7.3.4 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + - eslint + - nx + - prettier + - supports-color + - typescript + dev: true + + /@nrwl/devkit/15.8.2_j7b3k2bw3otdi6o6otkrexalnq: + resolution: {integrity: sha512-q4b+tTqwoUTbx9oydGhYZsZYNqncX0BErsSpk4CMwzOIyb549Fs/u7L8XQj2NsHLEVJ8gzl+AOfl7xFgEfZgaw==} + peerDependencies: + nx: '>= 14.1 <= 16' + dependencies: + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + ejs: 3.1.8 + ignore: 5.2.4 + nx: 15.8.2_@swc+core@1.3.37 + semver: 7.3.4 + tmp: 0.2.1 + tslib: 2.5.0 + transitivePeerDependencies: + - typescript + dev: true + + /@nrwl/devkit/15.8.2_s6bikqulflqkj7nvj2k7hvvy7u: + resolution: {integrity: sha512-q4b+tTqwoUTbx9oydGhYZsZYNqncX0BErsSpk4CMwzOIyb549Fs/u7L8XQj2NsHLEVJ8gzl+AOfl7xFgEfZgaw==} + peerDependencies: + nx: '>= 14.1 <= 16' + dependencies: + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + ejs: 3.1.8 + ignore: 5.2.4 + nx: 15.8.7_@swc+core@1.3.37 + semver: 7.3.4 + tmp: 0.2.1 + tslib: 2.5.0 + transitivePeerDependencies: + - typescript + dev: true + + /@nrwl/eslint-plugin-nx/15.8.2_de3pmu3skndygamlzlrywwwrii: + resolution: {integrity: sha512-gwzcL1fy5L2rpIhpqtZ4VqBJeQiax2O1N0EVeM41ZFMREfVX69y9Ynd/0Mv/K6mteNv6w81f85UuT5rXSu7Ovw==} + peerDependencies: + '@typescript-eslint/parser': ^5.29.0 + eslint-config-prettier: ^8.1.0 + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + '@typescript-eslint/utils': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + chalk: 4.1.2 + confusing-browser-globals: 1.0.11 + eslint-config-prettier: 8.6.0_eslint@8.35.0 + semver: 7.3.4 + transitivePeerDependencies: + - eslint + - nx + - supports-color + - typescript + dev: true + + /@nrwl/jest/15.8.2_uuim26udqt2lgkn72bxzx65jcu: + resolution: {integrity: sha512-IOJatJcyUJmH9IDn/PSSx2hNKRkd8tUolfd3KcUQA+/YYqYe2cl2jOibqPn/hCDVFnZ/AZrEJiodybEr2wQ6NQ==} + dependencies: + '@jest/reporters': 28.1.1 + '@jest/test-result': 28.1.1 + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + chalk: 4.1.2 + dotenv: 10.0.0 + identity-obj-proxy: 3.0.0 + jest-config: 28.1.1_sqkfeep4fedqlsauso44ecfrx4 + jest-resolve: 28.1.1 + jest-util: 28.1.1 + resolve.exports: 1.1.0 + tslib: 2.5.0 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - '@types/node' + - debug + - eslint + - node-notifier + - nx + - prettier + - supports-color + - ts-node + - typescript + dev: true + + /@nrwl/js/15.8.2_j7b3k2bw3otdi6o6otkrexalnq: + resolution: {integrity: sha512-LM9GPJdMP3oFRNCQy8H9V9Yn9uuak//pwTgwzWDg/4XuXYobLIb06L6Cp7NGqscKOpPj6l8hvdxiasc6f/S9/w==} + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-decorators': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-runtime': 7.21.0_@babel+core@7.21.0 + '@babel/preset-env': 7.20.2_@babel+core@7.21.0 + '@babel/preset-typescript': 7.21.0_@babel+core@7.21.0 + '@babel/runtime': 7.21.0 + '@nrwl/devkit': 15.8.2_j7b3k2bw3otdi6o6otkrexalnq + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + babel-plugin-const-enum: 1.2.0_@babel+core@7.21.0 + babel-plugin-macros: 2.8.0 + babel-plugin-transform-typescript-metadata: 0.3.2 + chalk: 4.1.2 + fast-glob: 3.2.7 + fs-extra: 11.1.0 + ignore: 5.2.4 + js-tokens: 4.0.0 + minimatch: 3.0.5 + source-map-support: 0.5.19 + tree-kill: 1.2.2 + tslib: 2.5.0 + transitivePeerDependencies: + - nx + - supports-color + - typescript + dev: true + + /@nrwl/js/15.8.2_yehdbte5st7j7tlduielno5n44: + resolution: {integrity: sha512-LM9GPJdMP3oFRNCQy8H9V9Yn9uuak//pwTgwzWDg/4XuXYobLIb06L6Cp7NGqscKOpPj6l8hvdxiasc6f/S9/w==} + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.0 + '@babel/plugin-proposal-decorators': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-runtime': 7.21.0_@babel+core@7.21.0 + '@babel/preset-env': 7.20.2_@babel+core@7.21.0 + '@babel/preset-typescript': 7.21.0_@babel+core@7.21.0 + '@babel/runtime': 7.21.0 + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + babel-plugin-const-enum: 1.2.0_@babel+core@7.21.0 + babel-plugin-macros: 2.8.0 + babel-plugin-transform-typescript-metadata: 0.3.2 + chalk: 4.1.2 + fast-glob: 3.2.7 + fs-extra: 11.1.0 + ignore: 5.2.4 + js-tokens: 4.0.0 + minimatch: 3.0.5 + source-map-support: 0.5.19 + tree-kill: 1.2.2 + tslib: 2.5.0 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + - eslint + - nx + - prettier + - supports-color + - typescript + dev: true + + /@nrwl/linter/15.8.2_dlv5rv4jgzcxys2y4x2g2j5x3y: + resolution: {integrity: sha512-nGVGZl8jStt1SNEkfZ3zLmXwz/BqjMPOa6zlzkdYj/vBULdLPg4j0ZrCVl+V3olT2/c1EyDJUOO/DPKI+/3E9w==} + peerDependencies: + eslint: ^8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@nrwl/devkit': 15.8.2_j7b3k2bw3otdi6o6otkrexalnq + '@nrwl/js': 15.8.2_j7b3k2bw3otdi6o6otkrexalnq + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + eslint: 8.35.0 + tmp: 0.2.1 + tslib: 2.5.0 + transitivePeerDependencies: + - nx + - supports-color + - typescript + dev: true + + /@nrwl/linter/15.8.2_yehdbte5st7j7tlduielno5n44: + resolution: {integrity: sha512-nGVGZl8jStt1SNEkfZ3zLmXwz/BqjMPOa6zlzkdYj/vBULdLPg4j0ZrCVl+V3olT2/c1EyDJUOO/DPKI+/3E9w==} + peerDependencies: + eslint: ^8.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + eslint: 8.35.0 + tmp: 0.2.1 + tslib: 2.5.0 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + - nx + - prettier + - supports-color + - typescript + dev: true + + /@nrwl/node/15.8.2_4cknsbw37vvuzx4den732ohhw4: + resolution: {integrity: sha512-tN6fGxl9KbiDj6ulzyeb21g8Cm0v1szftz7JIawWai5Ngjj6muVU4SF8tVb70i9cv2b6shoRr0xbSqaTXj5CpA==} + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/jest': 15.8.2_uuim26udqt2lgkn72bxzx65jcu + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/linter': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/webpack': 15.8.2_zob34vd6f56j6ke2jsg6hb46oe + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + tslib: 2.5.0 + transitivePeerDependencies: + - '@babel/core' + - '@parcel/css' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - clean-css + - csso + - debug + - esbuild + - eslint + - fibers + - html-webpack-plugin + - node-notifier + - node-sass + - nx + - prettier + - sass-embedded + - supports-color + - ts-node + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: true + + /@nrwl/nx-darwin-arm64/15.8.2: + resolution: {integrity: sha512-H9geHEI6+9Ww58OH351QpnuuaKIMltG/So58xerVlPK3PHylHpp/f8G+7Ui78TV1Hqvm2mpVIrP46lPS4a46EQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-darwin-arm64/15.8.7: + resolution: {integrity: sha512-+cu8J337gRxUHjz2TGwS/2Oh3yw8d3/T6SoBfvee1DY72VQaeYd8UTz0doOhDtmc/zowvRu7ZVsW0ytNB0jIXQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-darwin-x64/15.8.2: + resolution: {integrity: sha512-wZdrldpbWOAOwrwS+bbhGuFR7bUYfuOc3BInLn5xhVhT5oGw5s6W08c/wK5ZcM2osROAbb7GZFVRCn2e9NlFyw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-darwin-x64/15.8.7: + resolution: {integrity: sha512-VqHJEP0wgFu1MU0Bo1vKZ5/s7ThRfYkX8SyGUxjVTzR02CrsjC4rNxFoKD8Cc4YkUn44U/F78toGf+i2gRcjSQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm-gnueabihf/15.8.2: + resolution: {integrity: sha512-Lsc6eLjS8bqFSqZBA3a+7RQk/HAXP3SsTlhaTAqxk4QPlOQXHnDhkcwIeycjzumkDz5HRDvDOwh2TMSYTpALag==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm-gnueabihf/15.8.7: + resolution: {integrity: sha512-4F/8awwqPTt7zKQolvjBNrcR1wYicPjGchLOdaqnfMxn/iRRUdh0hD11mEP5zHNv9gZs/nOIvhdBUErNjFkplQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm64-gnu/15.8.2: + resolution: {integrity: sha512-EKO9u2nox8r7Z6Tjttm36C8z2uTe2/LGPtTb5fHmkG9uStXaWEHaqMMs5Gqd03V6BzO0TypbwrdTwIMmQ1ICQw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm64-gnu/15.8.7: + resolution: {integrity: sha512-3ZTSZx02Vv5emQOpaDROIcLtQucoXAe73zGKYDTXB95mxbOPSjjQJ8Rtx+BeqWq9JQoZZyRcD0qnBkTTy1aLRg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm64-musl/15.8.2: + resolution: {integrity: sha512-MQk3LydQZFz4vRGEEEeyB6XjAJVOyYdwDB/3WVylS5iyZPWhKKdcoaXYvdz38fDcU9bqFyrpRlTAistr2A64iA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-arm64-musl/15.8.7: + resolution: {integrity: sha512-SZxTomiHxAh8El+swbmGSGcaA0vGbHb/rmhFAixo19INu1wBJfD6hjkVJt17h6PyEO7BIYPOpRia6Poxnyv8hA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-x64-gnu/15.8.2: + resolution: {integrity: sha512-BEyH2OBBdFMWqjaCX/rtPgrGxngafeg4160u0lAqV2nexyvdLHwxIT/266bF+loICmAwPWlUNvW963/Xl4f0iA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-x64-gnu/15.8.7: + resolution: {integrity: sha512-BlNC6Zz1/x6CFbBFTVrgRGMOPqb7zWh5cOjBVNpoBXYTEth1UXb2r1U+gpuQ4xdUqG+uXoWhy6BHJjqBIjzLJA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-x64-musl/15.8.2: + resolution: {integrity: sha512-8I0a4bruF6ESATk0Q4dOBXeXZ1w9BFkP3DJ0iZltHu1YgbNC0btuBFVg7n2p9SNqIvxzigxyYlfqE+BPGKm01w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-linux-x64-musl/15.8.7: + resolution: {integrity: sha512-FNYX/IKy8SUbw6bJpvwZrup2YQBYmSJwP6Rw76Vf7c32XHk7uA6AjiPWMIrZCSndXcry8fnwXvR+J2Dnyo82nQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-win32-arm64-msvc/15.8.2: + resolution: {integrity: sha512-E8WAbC/wI/7Px7r0EEREy+UD7LLNhlIEVC+OQUt1mthBxyKuci5l6NkNghpAxcCtFl9353aZ4AlWy8EtuT1i4Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-win32-arm64-msvc/15.8.7: + resolution: {integrity: sha512-sZALEzazjPAeLlw6IbFWsMidCZ4ZM3GKWZZ6rsAqG2y7I9t4nlUPH/y/Isl9MuLBvrBCBXbVnD20wh6EhtuwTw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-win32-x64-msvc/15.8.2: + resolution: {integrity: sha512-QKCNmOyQSxFtwxxEGGohIwYr1QXFyUVyQtsNIhB3g/nJ62IDjuURffnDFi92UeWyfyvLJLMEWrKwYehegRnezw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nrwl/nx-win32-x64-msvc/15.8.7: + resolution: {integrity: sha512-VMdDptI2rqkLQRCvertF29QeA/V/MnFtHbsmVzMCEv5EUfrkHbA5LLxV66LLfngmkDT1FHktffztlsMpbxvhRw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nrwl/tao/15.8.2_@swc+core@1.3.37: + resolution: {integrity: sha512-7igrLPmwOsnxno9dO14sYZmMxfJOFJdmmpMX7dE+18SQZrloy6HI3GjiIfzZCuRPrvhY0dtIZ9eTNH4Prx/ydA==} + hasBin: true + dependencies: + nx: 15.8.2_@swc+core@1.3.37 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/tao/15.8.7_@swc+core@1.3.37: + resolution: {integrity: sha512-wA7QIEh0VwWcyo32Y/xSCTwnQTGcZupe933nResXv8mAb36W8MoR5SXRx+Wdd8fJ1eWlm2tuotIrslhN+lYx/Q==} + hasBin: true + dependencies: + nx: 15.8.7_@swc+core@1.3.37 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/vite/15.8.2_xzqck3sba7l6gh6ei3tgh5yceq: + resolution: {integrity: sha512-aE3pK/cD/o39yvp8U5+NzHRsFeOfvRHz0+Z2SscNGy1RAei60tNk1M+7C1yPSNeC0p+KgCSmJA8Yr9LGhu8eoQ==} + peerDependencies: + vite: ^4.0.1 || 4 + vitest: '>=0.25.8 <1.0.0' + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + '@phenomnomnominal/tsquery': 4.1.1_gliwt7svxbpvcai2ottpa7qe6a + '@swc/helpers': 0.4.14 + dotenv: 10.0.0 + enquirer: 2.3.6 + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + vitest: 0.28.5_ehzen6rhkzxenlvnrjfqyltjsq + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + - eslint + - nx + - prettier + - supports-color + - typescript + dev: true + + /@nrwl/webpack/15.8.2_zob34vd6f56j6ke2jsg6hb46oe: + resolution: {integrity: sha512-SGhIACaGZupvzjKZiIZeHB4zsko9R7Ip2VVzd2J+J5wY81k6a88yU4LVXALx5LRBI2BcrGJZ0GLLESTHJULysA==} + dependencies: + '@nrwl/devkit': 15.8.2_s6bikqulflqkj7nvj2k7hvvy7u + '@nrwl/js': 15.8.2_yehdbte5st7j7tlduielno5n44 + '@nrwl/workspace': 15.8.2_7wyxlfzaktre7ut3t46c4iijoe + autoprefixer: 10.4.13_postcss@8.4.21 + babel-loader: 9.1.2_qoaxtqicpzj5p3ubthw53xafqm + chalk: 4.1.2 + chokidar: 3.5.3 + copy-webpack-plugin: 10.2.4_webpack@5.75.0 + css-loader: 6.7.3_webpack@5.75.0 + css-minimizer-webpack-plugin: 3.4.1_webpack@5.75.0 + dotenv: 10.0.0 + file-loader: 6.2.0_webpack@5.75.0 + fork-ts-checker-webpack-plugin: 7.2.13_j67zqovrj7snfcv2cta7t3ktnu + ignore: 5.2.4 + less: 4.1.3 + less-loader: 11.1.0_less@4.1.3+webpack@5.75.0 + license-webpack-plugin: 4.0.2_webpack@5.75.0 + loader-utils: 2.0.4 + mini-css-extract-plugin: 2.4.7_webpack@5.75.0 + parse5: 4.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0_postcss@8.4.21 + postcss-loader: 6.2.1_6jdsrmfenkuhhw3gx4zvjlznce + rxjs: 6.6.7 + sass: 1.58.3 + sass-loader: 12.6.0_sass@1.58.3+webpack@5.75.0 + source-map-loader: 3.0.2_webpack@5.75.0 + style-loader: 3.3.1_webpack@5.75.0 + stylus: 0.55.0 + stylus-loader: 7.1.0_irl2hmhzopg6urv44vymn74p4e + terser-webpack-plugin: 5.3.6_5p65lixklixow5gzx3nbknv5nm + ts-loader: 9.4.2_j67zqovrj7snfcv2cta7t3ktnu + ts-node: 10.9.1_p52dwig7yrxcbqaynypgzvbyfm + tsconfig-paths: 4.1.2 + tsconfig-paths-webpack-plugin: 4.0.0 + tslib: 2.5.0 + webpack: 5.75.0_@swc+core@1.3.37 + webpack-dev-server: 4.11.1_webpack@5.75.0 + webpack-node-externals: 3.0.0 + webpack-subresource-integrity: 5.1.0_webpack@5.75.0 + transitivePeerDependencies: + - '@babel/core' + - '@parcel/css' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - clean-css + - csso + - debug + - esbuild + - eslint + - fibers + - html-webpack-plugin + - node-sass + - nx + - prettier + - sass-embedded + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + dev: true + + /@nrwl/workspace/15.8.2_7wyxlfzaktre7ut3t46c4iijoe: + resolution: {integrity: sha512-jgrLHqjvSHjae0b14QOEfxRQREMsXDngm2HacdSuY2j0TRGBp/EvQzptOGrHd1OLBZboT6TuU+Bz0qhPaWWftQ==} + peerDependencies: + prettier: ^2.6.2 + peerDependenciesMeta: + prettier: + optional: true + dependencies: + '@nrwl/devkit': 15.8.2_j7b3k2bw3otdi6o6otkrexalnq + '@nrwl/linter': 15.8.2_dlv5rv4jgzcxys2y4x2g2j5x3y + '@parcel/watcher': 2.0.4 + chalk: 4.1.2 + chokidar: 3.5.3 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + dotenv: 10.0.0 + figures: 3.2.0 + flat: 5.0.2 + glob: 7.1.4 + ignore: 5.2.4 + minimatch: 3.0.5 + npm-run-path: 4.0.1 + nx: 15.8.2_@swc+core@1.3.37 + open: 8.4.2 + prettier: 2.8.4 + rxjs: 6.6.7 + semver: 7.3.4 + tmp: 0.2.1 + tslib: 2.5.0 + yargs: 17.7.1 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + - eslint + - supports-color + - typescript + dev: true + + /@nuxt/kit/3.2.3: + resolution: {integrity: sha512-wcsVlQLwGkh1cRhAFWHc3uYHdIxFTRNdRUzNyfqoX9DL0Fuga3K75q/PBY0xg1viA9R6F5BMPhc7KDLSWbXtWg==} + engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + dependencies: + '@nuxt/schema': 3.2.3 + c12: 1.1.2 + consola: 2.15.3 + defu: 6.1.2 + globby: 13.1.3 + hash-sum: 2.0.0 + ignore: 5.2.4 + jiti: 1.17.1 + knitwork: 1.0.0 + lodash.template: 4.5.0 + mlly: 1.1.1 + pathe: 1.1.0 + pkg-types: 1.0.2 + scule: 1.0.0 + semver: 7.3.8 + unctx: 2.1.2 + unimport: 2.2.4 + untyped: 1.2.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxt/schema/3.2.3: + resolution: {integrity: sha512-AXzRnBivCwn5RpNFWjUkvOPGPSHl5BM+6GfOpSNglPXi0tiQJ+rawSl7no7BkxGDmQ44Bx9AXwvHTrgjpcuo4g==} + engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + dependencies: + c12: 1.1.2 + create-require: 1.1.1 + defu: 6.1.2 + hookable: 5.4.2 + jiti: 1.17.1 + pathe: 1.1.0 + pkg-types: 1.0.2 + postcss-import-resolver: 2.0.0 + scule: 1.0.0 + std-env: 3.3.2 + ufo: 1.1.1 + unimport: 2.2.4 + untyped: 1.2.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@octokit/auth-token/2.5.0: + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} + dependencies: + '@octokit/types': 6.41.0 + dev: true + + /@octokit/core/3.6.0: + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} + dependencies: + '@octokit/auth-token': 2.5.0 + '@octokit/graphql': 4.8.0 + '@octokit/request': 5.6.3 + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.41.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/endpoint/6.0.12: + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} + dependencies: + '@octokit/types': 6.41.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.0 + dev: true + + /@octokit/graphql/4.8.0: + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + dependencies: + '@octokit/request': 5.6.3 + '@octokit/types': 6.41.0 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/openapi-types/12.11.0: + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} + dev: true + + /@octokit/plugin-paginate-rest/2.21.3_@octokit+core@3.6.0: + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} + peerDependencies: + '@octokit/core': '>=2' + dependencies: + '@octokit/core': 3.6.0 + '@octokit/types': 6.41.0 + dev: true + + /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 3.6.0 + dev: true + + /@octokit/plugin-rest-endpoint-methods/5.16.2_@octokit+core@3.6.0: + resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 3.6.0 + '@octokit/types': 6.41.0 + deprecation: 2.3.1 + dev: true + + /@octokit/request-error/2.1.0: + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} + dependencies: + '@octokit/types': 6.41.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + + /@octokit/request/5.6.3: + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} + dependencies: + '@octokit/endpoint': 6.0.12 + '@octokit/request-error': 2.1.0 + '@octokit/types': 6.41.0 + is-plain-object: 5.0.0 + node-fetch: 2.6.9 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/rest/18.12.0: + resolution: {integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==} + dependencies: + '@octokit/core': 3.6.0 + '@octokit/plugin-paginate-rest': 2.21.3_@octokit+core@3.6.0 + '@octokit/plugin-request-log': 1.0.4_@octokit+core@3.6.0 + '@octokit/plugin-rest-endpoint-methods': 5.16.2_@octokit+core@3.6.0 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/types/6.41.0: + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} + dependencies: + '@octokit/openapi-types': 12.11.0 + dev: true + + /@parcel/watcher/2.0.4: + resolution: {integrity: sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.6.0 + dev: true + + /@phenomnomnominal/tsquery/4.1.1_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==} + peerDependencies: + typescript: ^3 || ^4 || 5 + dependencies: + esquery: 1.5.0 + typescript: 5.1.0-dev.20230321 + dev: true + + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + dev: true + + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils/5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@samatech/postcss-basics/0.6.0_postcss@8.4.21: + resolution: {integrity: sha512-bhgQyHna6Ss4VeJm9jyyQkVyuZ4iwFwAwGHP1Bq70gvi/Ui9xuSZOa3/enQW0OfTxiJSoWvJjdxyQxa1o+CPcg==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.6 + dependencies: + '@samatech/postcss-colors': 0.4.0_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.21 + postcss: 8.4.21 + postcss-mixins: 9.0.4_postcss@8.4.21 + postcss-nested: 6.0.1_postcss@8.4.21 + postcss-simple-vars: 7.0.1_postcss@8.4.21 + dev: true + + /@samatech/postcss-colors/0.4.0_postcss@8.4.21: + resolution: {integrity: sha512-4xuaCjNiOScjdJV0/ZJ/jcnvWV1HLo+JNBI04+LyQGnVEb76XIAL3MOBQqNaMa9vJyfAxvQgidbqGElmXMh/GQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.21 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /@sampullman/fetch-api/0.9.1: + resolution: {integrity: sha512-qsENVh9xgrjuDCyPluex0qQz65ud4Gh3I4xjr2p9qnzBSZCM/4r92hGPh/3fGxNij/vLlqGqsT+l6Bkf56saCA==} + dev: false + + /@shimyshack/uid/0.1.7: + resolution: {integrity: sha512-RVcLjoNwV7nKPxor9Ua09ilu6aBbaL0YRQV2MmCMUoKidazPKJ9z84l/tQG7fL4TP1sZ9VWfSPDyV1YCWuGmYw==} + dependencies: + vue: 3.2.47 + dev: true + + /@sinclair/typebox/0.24.51: + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + dev: true + + /@sindresorhus/is/0.7.0: + resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} + engines: {node: '>=4'} + dev: true + + /@sindresorhus/is/4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@sinonjs/commons/1.8.6: + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + dependencies: + '@sinonjs/commons': 1.8.6 + dev: true + + /@stackblitz/sdk/1.8.2: + resolution: {integrity: sha512-3aTg0Tb9dNs1huPkpdYxPEX/yc8A28eZneUMOEJzOLi7EJwl5onr9gCAVjIOkN4WLYu1iBSiJiGBYT629bZIJQ==} + dev: true + + /@starbeam/core-utils/0.8.9: + resolution: {integrity: sha512-0Rm6NfKgCiKwxl+aGMVBm/zI7PpF3bhFKVBs8pDVVMQUdHPeB8pzwX8JYXjqa0pkRXo7kAnjqagNnjaRxDhqPQ==} + + /@starbeam/debug/0.8.9: + resolution: {integrity: sha512-+KTuGF349NzrQrBJS9TOpvXLOv56uxEoDud9mhQrZj/Qr7Y/CCH1Shz84Cu3Rqd1Ip2J5KOhW8xsS2aHTMPeHQ==} + dependencies: + '@domtree/flavors': 0.9.3 + '@starbeam/core-utils': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/verify': 0.8.9 + ansicolor: 1.1.100 + buffer: 6.0.3 + stacktracey: 2.1.8 + + /@starbeam/interfaces/0.8.9: + resolution: {integrity: sha512-ANkMcaQcha4JUDlL22NJbsd3wNFXoqZImovdJU4o/e5+F1xSKXf3H0iznJ/cf5+iFv8NhPrEgq4pbCSzhBVD1w==} + dependencies: + '@domtree/any': 0.9.3 + '@starbeam/shared': 1.3.7 + + /@starbeam/js/0.8.9: + resolution: {integrity: sha512-qGMrIDjZYEKOc/lcwVF8AZBkcabWGAzx02hqEeCVm4N24dRC4eH7xeotdgZ7CPeXL0GV0xD9vs7Hk0c3zMo7oQ==} + dependencies: + '@starbeam/debug': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/timeline': 0.8.9 + '@starbeam/universal': 0.8.9 + '@starbeam/verify': 0.8.9 + + /@starbeam/modifier/0.8.9: + resolution: {integrity: sha512-Iu41BHL5bfIDpT9GZKtTDBrgsJE9DrxkTEec2TJKmICEanpmmJrNRHGUdx7JBXzymv0mAscMOjuEGPXtUS5xxA==} + dependencies: + '@starbeam/debug': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/universal': 0.8.9 + '@starbeam/verify': 0.8.9 + + /@starbeam/preact-utils/0.8.9_preact@10.11.3: + resolution: {integrity: sha512-XOygHcCrntbGch4a6of5U3IvvpNjTZUjWPh0JhwykMd+ebVMpM2ORMJmx+atfN2i3B0ytPwEHlmmlEsem7wTjg==} + peerDependencies: + preact: '>=10' + dependencies: + '@starbeam/core-utils': 0.8.9 + preact: 10.11.3 + dev: true + + /@starbeam/preact-utils/0.8.9_preact@10.13.1: + resolution: {integrity: sha512-XOygHcCrntbGch4a6of5U3IvvpNjTZUjWPh0JhwykMd+ebVMpM2ORMJmx+atfN2i3B0ytPwEHlmmlEsem7wTjg==} + peerDependencies: + preact: '>=10' + dependencies: + '@starbeam/core-utils': 0.8.9 + preact: 10.13.1 + dev: true + + /@starbeam/preact/0.8.9_preact@10.11.3: + resolution: {integrity: sha512-piL39VbA2b3mclXuynJrLt0v/HOgN1s/ZQiWodtxTouZJiL0HfU0V1xDTIc8jqRT01R5mOy+OfFX3WPnhNVN3A==} + peerDependencies: + preact: ^10.11.2 + dependencies: + '@starbeam/core-utils': 0.8.9 + '@starbeam/debug': 0.8.9 + '@starbeam/preact-utils': 0.8.9_preact@10.11.3 + '@starbeam/timeline': 0.8.9 + '@starbeam/universal': 0.8.9 + '@starbeam/verify': 0.8.9 + preact: 10.11.3 + dev: true + + /@starbeam/preact/0.8.9_preact@10.13.1: + resolution: {integrity: sha512-piL39VbA2b3mclXuynJrLt0v/HOgN1s/ZQiWodtxTouZJiL0HfU0V1xDTIc8jqRT01R5mOy+OfFX3WPnhNVN3A==} + peerDependencies: + preact: ^10.11.2 + dependencies: + '@starbeam/core-utils': 0.8.9 + '@starbeam/debug': 0.8.9 + '@starbeam/preact-utils': 0.8.9_preact@10.13.1 + '@starbeam/timeline': 0.8.9 + '@starbeam/universal': 0.8.9 + '@starbeam/verify': 0.8.9 + preact: 10.13.1 + dev: true + + /@starbeam/react/0.8.9_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-JoIz1tjlcfrnH/Mj5o5PBjbKUV5qH4Tw/qW6W1Vx3Z+hgeab7r71bGJnwcyEEscJpNVwYe1FSINM18w8XJMm7Q==} + peerDependencies: + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + dependencies: + '@starbeam/core-utils': 0.8.9 + '@starbeam/debug': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/js': 0.8.9 + '@starbeam/modifier': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/timeline': 0.8.9 + '@starbeam/universal': 0.8.9 + '@starbeam/use-strict-lifecycle': 0.8.9_biqbaboplfbrettd7655fr4n2y + '@starbeam/verify': 0.8.9 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + + /@starbeam/shared/1.3.7: + resolution: {integrity: sha512-wYAcGJzK7arrP+jsN1cg75PNW28HoEgwk6JLNGEJptR/gKyxVU64s0g7o5wfQf26E7oNsJoJEewdH54heeV54Q==} + + /@starbeam/timeline/0.8.9: + resolution: {integrity: sha512-AiwOrCs7ooVj2664E27AZJYZyV1s3n7Z7vCsfUnbXA8AvLcMOk1fODbDclziGoJyTf45cKk5oShEHSOWdcZzLg==} + dependencies: + '@starbeam/core-utils': 0.8.9 + '@starbeam/debug': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/verify': 0.8.9 + + /@starbeam/universal/0.8.9: + resolution: {integrity: sha512-/eS2h9o2zyCbSt8tPqmrv1QYDOmJB/TYw42tFZ27ozap17gsv7bbr6/elgP4Hnbqr8/M8MocoNJof+KiEsOfWg==} + dependencies: + '@starbeam/core-utils': 0.8.9 + '@starbeam/debug': 0.8.9 + '@starbeam/interfaces': 0.8.9 + '@starbeam/shared': 1.3.7 + '@starbeam/timeline': 0.8.9 + '@starbeam/verify': 0.8.9 + + /@starbeam/use-strict-lifecycle/0.8.9_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-tp/wCe2jNyAIL90EowHLU9/xBzrd2tP+gB8Nc0YwQE0hoeu305S9oTkkfqgE/xmTu3CCSBt4XApW6AqcZhp7rA==} + peerDependencies: + react: ^18.2.0 || 18 + react-dom: ^18.2.0 || 18 + dependencies: + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + + /@starbeam/verify/0.8.9: + resolution: {integrity: sha512-woCfiFV+oOUKdRj4PO583MK+FYFuGLMz4ZJvPNCQJ9iHPKm3476AzM+P0nQ7txAGTH4cBpHTVZOLjF7e3i9sHQ==} + dependencies: + '@starbeam/core-utils': 0.8.9 + + /@stitches/core/1.2.8: + resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==} + dev: true + + /@swc/cli/0.1.62_@swc+core@1.3.37: + resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==} + engines: {node: '>= 12.13'} + hasBin: true + peerDependencies: + '@swc/core': ^1.2.66 + chokidar: ^3.5.1 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + '@mole-inc/bin-wrapper': 8.0.1 + '@swc/core': 1.3.37 + commander: 7.2.0 + fast-glob: 3.2.12 + semver: 7.3.8 + slash: 3.0.0 + source-map: 0.7.4 + dev: true + + /@swc/cli/0.1.62_@swc+core@1.3.38: + resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==} + engines: {node: '>= 12.13'} + hasBin: true + peerDependencies: + '@swc/core': ^1.2.66 + chokidar: ^3.5.1 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + '@mole-inc/bin-wrapper': 8.0.1 + '@swc/core': 1.3.38 + commander: 7.2.0 + fast-glob: 3.2.12 + semver: 7.3.8 + slash: 3.0.0 + source-map: 0.7.4 + dev: true + + /@swc/core-darwin-arm64/1.3.37: + resolution: {integrity: sha512-iIyVqqioUpVeT/hbBVfkrsjfCyL4idNH+LVKGmoTAWaTTSB0+UNhNuA7Wh2CqIHWh1Mv7IlumitWPcqsVDdoEw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-arm64/1.3.38: + resolution: {integrity: sha512-4ZTJJ/cR0EsXW5UxFCifZoGfzQ07a8s4ayt1nLvLQ5QoB1GTAf9zsACpvWG8e7cmCR0L76R5xt8uJuyr+noIXA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64/1.3.37: + resolution: {integrity: sha512-dao5nXPWKxtaxqak4ZkRyBoApNIelW/glantQhPhj0FjMjuIQc+v03ldJ8XDByWOG+6xuVUTheANCtEccxoQBw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64/1.3.38: + resolution: {integrity: sha512-Kim727rNo4Dl8kk0CR8aJQe4zFFtsT1TZGlNrNMUgN1WC3CRX7dLZ6ZJi/VVcTG1cbHp5Fp3mUzwHsMxEh87Mg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf/1.3.37: + resolution: {integrity: sha512-/mVrc8H/f062CUkqKGmBiil2VIYu4mKawHxERfeP1y38X5K/OwjG5s9MgO9TVxy+Ly6vejwj70kRhSa3hVp1Bw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf/1.3.38: + resolution: {integrity: sha512-yaRdnPNU2enlJDRcIMvYVSyodY+Amhf5QuXdUbAj6rkDD6wUs/s9C6yPYrFDmoTltrG+nBv72mUZj+R46wVfSw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu/1.3.37: + resolution: {integrity: sha512-eRQ3KaZI0j5LidTfOIi/kUVOOMuVmw1HCdt/Z1TAUKoHMLVxY8xcJ3pEE3/+ednI60EmHpwpJRs6LelXyL6uzQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu/1.3.38: + resolution: {integrity: sha512-iNY1HqKo/wBSu3QOGBUlZaLdBP/EHcwNjBAqIzpb8J64q2jEN02RizqVW0mDxyXktJ3lxr3g7VW9uqklMeXbjQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl/1.3.37: + resolution: {integrity: sha512-w2BRLODyxNQY2rfHZMZ5ir6QrrnGBPlnIslTrgKmVbn1OjZoxUCtuqhrYnCmybaAc4DOkeH02TqynEFXrm+EMw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl/1.3.38: + resolution: {integrity: sha512-LJCFgLZoPRkPCPmux+Q5ctgXRp6AsWhvWuY61bh5bIPBDlaG9pZk94DeHyvtiwT0syhTtXb2LieBOx6NqN3zeA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu/1.3.37: + resolution: {integrity: sha512-CfoH8EsZJZ9kunjMUjBNYD5fFuO86zw+K/o4wEw72Yg6ZEiqPmeIlCKU8tpTv4sK+CbhUXrmVzMB5tqsb2jALQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu/1.3.38: + resolution: {integrity: sha512-hRQGRIWHmv2PvKQM/mMV45mVXckM2+xLB8TYLLgUG66mmtyGTUJPyxjnJkbI86WNGqo18k+lAuMG2mn6QmzYwQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl/1.3.37: + resolution: {integrity: sha512-9YPrHYNdoG7PK11gV51GfL45biI2dic+YTqHUDKyykemsD7Ot1zUFX7Ty//pdvpKcKSff6SrHbfFACD5ziNirA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl/1.3.38: + resolution: {integrity: sha512-PTYSqtsIfPHLKDDNbueI5e0sc130vyHRiFOeeC6qqzA2FAiVvIxuvXHLr0soPvKAR1WyhtYmFB9QarcctemL2w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc/1.3.37: + resolution: {integrity: sha512-h17Ek8/wCDje6BrXOvCXBM80oBRmTSMMdLyt87whTl5xqYlWYYs9oQIzZndNRTlNpTgjGO8Ns2eo4kwVxIkBIA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc/1.3.38: + resolution: {integrity: sha512-9lHfs5TPNs+QdkyZFhZledSmzBEbqml/J1rqPSb9Fy8zB6QlspixE6OLZ3nTlUOdoGWkcTTdrOn77Sd7YGf1AA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc/1.3.37: + resolution: {integrity: sha512-1BR175E1olGy/zdt94cgdb6ps/lBNissAOaxyBk8taFpcjy3zpdP30yAoH0GIsC6isnZ5JfArbOJNRXXO5tE0Q==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc/1.3.38: + resolution: {integrity: sha512-SbL6pfA2lqvDKnwTHwOfKWvfHAdcbAwJS4dBkFidr7BiPTgI5Uk8wAPcRb8mBECpmIa9yFo+N0cAFRvMnf+cNw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc/1.3.37: + resolution: {integrity: sha512-1siDQ7dccQ1pesJmgAL3BUBbRPtfbNInOWnZOkiie/DfFqGQ117QKnCVyjUvwFKfTQx1+3UUTDmMSlRd00SlXg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc/1.3.38: + resolution: {integrity: sha512-UFveLrL6eGvViOD8OVqUQa6QoQwdqwRvLtL5elF304OT8eCPZa8BhuXnWk25X8UcOyns8gFcb8Fhp3oaLi/Rlw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core/1.3.37: + resolution: {integrity: sha512-VOFlEQ1pReOM73N9A7R8rt561GU8Rxsq833jiimWDUB2sXEN3V6n6wFTgYmZuMz2T4/R0cQA1nV48KkaT4gkFw==} + engines: {node: '>=10'} + requiresBuild: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.37 + '@swc/core-darwin-x64': 1.3.37 + '@swc/core-linux-arm-gnueabihf': 1.3.37 + '@swc/core-linux-arm64-gnu': 1.3.37 + '@swc/core-linux-arm64-musl': 1.3.37 + '@swc/core-linux-x64-gnu': 1.3.37 + '@swc/core-linux-x64-musl': 1.3.37 + '@swc/core-win32-arm64-msvc': 1.3.37 + '@swc/core-win32-ia32-msvc': 1.3.37 + '@swc/core-win32-x64-msvc': 1.3.37 + dev: true + + /@swc/core/1.3.38: + resolution: {integrity: sha512-AiEVehRFws//AiiLx9DPDp1WDXt+yAoGD1kMYewhoF6QLdTz8AtYu6i8j/yAxk26L8xnegy0CDwcNnub9qenyQ==} + engines: {node: '>=10'} + requiresBuild: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.38 + '@swc/core-darwin-x64': 1.3.38 + '@swc/core-linux-arm-gnueabihf': 1.3.38 + '@swc/core-linux-arm64-gnu': 1.3.38 + '@swc/core-linux-arm64-musl': 1.3.38 + '@swc/core-linux-x64-gnu': 1.3.38 + '@swc/core-linux-x64-musl': 1.3.38 + '@swc/core-win32-arm64-msvc': 1.3.38 + '@swc/core-win32-ia32-msvc': 1.3.38 + '@swc/core-win32-x64-msvc': 1.3.38 + dev: true + + /@swc/helpers/0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.5.0 + + /@szmarczak/http-timer/4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: true + + /@tokenizer/token/0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + dev: true + + /@tootallnate/once/2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@trysound/sax/0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + dev: true + + /@types/babel__core/7.20.0: + resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} + dependencies: + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.18.3 + dev: true + + /@types/babel__generator/7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@types/babel__template/7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} + dependencies: + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + dev: true + + /@types/babel__traverse/7.18.3: + resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} + dependencies: + '@babel/types': 7.21.2 + dev: true + + /@types/body-parser/1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.15.5 + dev: true + + /@types/bonjour/3.5.10: + resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/cacheable-request/6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 18.15.5 + '@types/responselike': 1.0.0 + dev: true + + /@types/chai-subset/1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.4 + dev: true + + /@types/chai/4.3.4: + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + dev: true + + /@types/cli-progress/3.11.0: + resolution: {integrity: sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/connect-history-api-fallback/1.3.5: + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + dependencies: + '@types/express-serve-static-core': 4.17.33 + '@types/node': 18.15.5 + dev: true + + /@types/connect/3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/css-tree/2.3.1: + resolution: {integrity: sha512-3m636Jz4d9d+lHVMp6FNLsUWQrfOx1xpm1SBxPbQYSNNgXMe+XswcsDeo1ldyULiuzYyWKk1kmvkLTgNq+215Q==} + dev: true + + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + dependencies: + '@types/eslint': 8.21.1 + '@types/estree': 1.0.0 + dev: true + + /@types/eslint/8.21.1: + resolution: {integrity: sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==} + dependencies: + '@types/estree': 1.0.0 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/express-serve-static-core/4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} + dependencies: + '@types/node': 18.15.5 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + + /@types/express/4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.33 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.1 + dev: true + + /@types/glob/8.1.0: + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 18.15.5 + dev: true + + /@types/graceful-fs/4.1.6: + resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/hash-sum/1.0.0: + resolution: {integrity: sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==} + dev: true + + /@types/http-cache-semantics/4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + dev: true + + /@types/http-proxy/1.17.10: + resolution: {integrity: sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv/3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/linkify-it/3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + dev: true + + /@types/markdown-it/12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 + dev: true + + /@types/mdurl/1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: true + + /@types/mime/3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + dev: true + + /@types/minimatch/5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node/14.18.37: + resolution: {integrity: sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==} + dev: true + + /@types/node/18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} + dev: true + + /@types/node/18.15.0: + resolution: {integrity: sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==} + dev: true + + /@types/node/18.15.5: + resolution: {integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==} + dev: true + + /@types/node/18.7.23: + resolution: {integrity: sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/postcss-css-variables/0.18.0: + resolution: {integrity: sha512-NJBO24iE1I6FSVE/iMWaQIPbEHbdO0FJwASy/lUJktHxLa42T3dEOQ4xEwhocDcZrQTOUguM/650KYD+p9JQ4Q==} + dependencies: + postcss: 8.4.21 + dev: true + + /@types/postcss-mixins/9.0.0: + resolution: {integrity: sha512-/JLztESO7+ls2MIFK0243C/iwOI/PtgVOMOyc8gYZSvXXkeT7/b74+zuW78cXQjlaAUAyMF5tE176+K3uYWc/Q==} + dependencies: + postcss: 8.4.21 + dev: true + + /@types/postcss-prefix-selector/1.15.0: + resolution: {integrity: sha512-1ePYpvBfMCxivVVnZN3V7SLPfSCz+UZC5yYC9ewSdoIcDSz6E+57aUrnwxeULwi8kWKpNMCytQHiqvRAShOR/w==} + dev: true + + /@types/prettier/2.7.2: + resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} + dev: true + + /@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: true + + /@types/qs/6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: true + + /@types/range-parser/1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + dev: true + + /@types/react-dom/18.0.11: + resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + dependencies: + '@types/react': 18.0.28 + dev: true + + /@types/react/18.0.28: + resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + dev: true + + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + dev: true + + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/serve-index/1.9.1: + resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + dependencies: + '@types/express': 4.17.17 + dev: true + + /@types/serve-static/1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 18.15.5 + dev: true + + /@types/shelljs/0.8.11: + resolution: {integrity: sha512-x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==} + dependencies: + '@types/glob': 8.1.0 + '@types/node': 18.15.5 + dev: true + + /@types/sinonjs__fake-timers/8.1.1: + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + dev: true + + /@types/sizzle/2.3.3: + resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} + dev: true + + /@types/sockjs/0.3.33: + resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/stack-utils/2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/strip-bom/3.0.0: + resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + dev: true + + /@types/strip-json-comments/0.0.30: + resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + dev: true + + /@types/svgo/3.0.0: + resolution: {integrity: sha512-G5qLWNq/rMvSM1EyY4E2iEd+s9km/PxLkzPkA2lghrgWJ2jrVMuB1ZsGOzL4YAWCy5sAoUw7SEQseHE2qypF2w==} + deprecated: This is a stub types definition. svgo provides its own type definitions, so you do not need this installed. + dependencies: + svgo: 3.0.2 + dev: true + + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@types/web-bluetooth/0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + dev: true + + /@types/ws/8.5.4: + resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} + dependencies: + '@types/node': 18.15.5 + dev: true + + /@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs/17.0.22: + resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@types/yauzl/2.10.0: + resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + requiresBuild: true + dependencies: + '@types/node': 18.15.5 + dev: true + optional: true + + /@typescript-eslint/eslint-plugin/5.54.0_qpchnlb4kug63yt3zqzrqqyvym: + resolution: {integrity: sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/type-utils': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + '@typescript-eslint/utils': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + debug: 4.3.4 + eslint: 8.35.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0_gliwt7svxbpvcai2ottpa7qe6a + typescript: 5.1.0-dev.20230321 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.54.0_hipfmhsp4ht3is5q3sabjfwfmq: + resolution: {integrity: sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/typescript-estree': 5.54.0_gliwt7svxbpvcai2ottpa7qe6a + debug: 4.3.4 + eslint: 8.35.0 + typescript: 5.1.0-dev.20230321 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.54.0: + resolution: {integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/visitor-keys': 5.54.0 + dev: true + + /@typescript-eslint/type-utils/5.54.0_hipfmhsp4ht3is5q3sabjfwfmq: + resolution: {integrity: sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.54.0_gliwt7svxbpvcai2ottpa7qe6a + '@typescript-eslint/utils': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + debug: 4.3.4 + eslint: 8.35.0 + tsutils: 3.21.0_gliwt7svxbpvcai2ottpa7qe6a + typescript: 5.1.0-dev.20230321 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.54.0: + resolution: {integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.54.0_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/visitor-keys': 5.54.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_gliwt7svxbpvcai2ottpa7qe6a + typescript: 5.1.0-dev.20230321 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.54.0_hipfmhsp4ht3is5q3sabjfwfmq: + resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.54.0 + '@typescript-eslint/types': 5.54.0 + '@typescript-eslint/typescript-estree': 5.54.0_gliwt7svxbpvcai2ottpa7qe6a + eslint: 8.35.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.35.0 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.54.0: + resolution: {integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.54.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@typescript/twoslash/3.2.1: + resolution: {integrity: sha512-tS4gLwOe1WCDspqBXhQCb2ESUqzEd1tOkmKpiZ1O+W1x+9l+9njETuXFkLErtH9is/uD1GSvClDjk/tEOJktjQ==} + dependencies: + '@typescript/vfs': 1.4.0 + debug: 4.3.4 + lz-string: 1.4.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript/vfs/1.3.4: + resolution: {integrity: sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript/vfs/1.4.0: + resolution: {integrity: sha512-Pood7yv5YWMIX+yCHo176OnF8WUlKGImFG7XlsuH14Zb1YN5+dYD3uUtS7lqZtsH7tAveNUi2NzdpQCN0yRbaw==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue/4.0.0_vite@4.1.4+vue@3.2.47: + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || 4 + vue: ^3.2.25 + dependencies: + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + vue: 3.2.47 + dev: true + + /@vitejs/plugin-vue/4.1.0_vite@4.1.4+vue@3.2.47: + resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || 4 + vue: ^3.2.25 + dependencies: + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + vue: 3.2.47 + dev: true + + /@vitest/coverage-c8/0.25.8_ehzen6rhkzxenlvnrjfqyltjsq: + resolution: {integrity: sha512-fWgzQoK2KNzTTNnDcLCyibfO9/pbcpPOMtZ9Yvq/Eggpi2X8lewx/OcKZkO5ba5q9dl6+BBn6d5hTcS1709rZw==} + dependencies: + c8: 7.13.0 + vitest: 0.25.8_ehzen6rhkzxenlvnrjfqyltjsq + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@vitest/browser' + - '@vitest/ui' + - happy-dom + - jsdom + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /@vitest/expect/0.28.5: + resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} + dependencies: + '@vitest/spy': 0.28.5 + '@vitest/utils': 0.28.5 + chai: 4.3.7 + dev: true + + /@vitest/runner/0.28.5: + resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} + dependencies: + '@vitest/utils': 0.28.5 + p-limit: 4.0.0 + pathe: 1.1.0 + dev: true + + /@vitest/spy/0.28.5: + resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} + dependencies: + tinyspy: 1.1.1 + dev: true + + /@vitest/ui/0.25.8: + resolution: {integrity: sha512-wfuhghldD5QHLYpS46GK8Ru8P3XcMrWvFjRQD21KNzc9Y/qtJsqoC8KmT6xWVkMNw4oHYixpo3a4ZySRJdserw==} + dependencies: + sirv: 2.0.2 + dev: true + + /@vitest/utils/0.28.5: + resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==} + dependencies: + cli-truncate: 3.1.0 + diff: 5.1.0 + loupe: 2.3.6 + picocolors: 1.0.0 + pretty-format: 27.5.1 + dev: true + + /@vue/compiler-core/3.2.47: + resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + source-map: 0.6.1 + + /@vue/compiler-dom/3.2.47: + resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + dependencies: + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-sfc/3.2.47: + resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-ssr': 3.2.47 + '@vue/reactivity-transform': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.21 + source-map: 0.6.1 + + /@vue/compiler-ssr/3.2.47: + resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/devtools-api/6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + + /@vue/eslint-config-typescript/11.0.2_p2n57jxlindqpuxuoa4lufemt4: + resolution: {integrity: sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-vue: ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.54.0_qpchnlb4kug63yt3zqzrqqyvym + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + eslint: 8.35.0 + eslint-plugin-vue: 9.9.0_eslint@8.35.0 + typescript: 5.1.0-dev.20230321 + vue-eslint-parser: 9.1.0_eslint@8.35.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/reactivity-transform/3.2.47: + resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + + /@vue/reactivity/3.2.47: + resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + dependencies: + '@vue/shared': 3.2.47 + + /@vue/runtime-core/3.2.47: + resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + dependencies: + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/runtime-dom/3.2.47: + resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + dependencies: + '@vue/runtime-core': 3.2.47 + '@vue/shared': 3.2.47 + csstype: 2.6.21 + + /@vue/server-renderer/3.2.47_vue@3.2.47: + resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + peerDependencies: + vue: 3.2.47 + dependencies: + '@vue/compiler-ssr': 3.2.47 + '@vue/shared': 3.2.47 + vue: 3.2.47 + + /@vue/shared/3.2.47: + resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + + /@vue/test-utils/2.3.0_vue@3.2.47: + resolution: {integrity: sha512-S8/9Z+B4VSsTUNtZtzS7J1TfxJbf10n+gcH9X8cASbG0Tp7qD6vqs/sUNlmpzk6i7+pP00ptauJp9rygyW89Ww==} + peerDependencies: + vue: ^3.0.1 + dependencies: + js-beautify: 1.14.6 + vue: 3.2.47 + optionalDependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/server-renderer': 3.2.47_vue@3.2.47 + dev: true + + /@vueuse/core/9.13.0_vue@3.2.47: + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0_vue@3.2.47 + vue-demi: 0.13.11_vue@3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata/9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + dev: true + + /@vueuse/shared/9.13.0_vue@3.2.47: + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + dependencies: + vue-demi: 0.13.11_vue@3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + dev: true + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-wasm-section': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-opt': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wast-printer': 1.11.1 + dev: true + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + dev: true + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + dev: true + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + dev: true + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + + /@yarnpkg/lockfile/1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: true + + /@yarnpkg/parsers/3.0.0-rc.39: + resolution: {integrity: sha512-BsD4zq3EVmaHqlynXTceNuEFAtrfToV4fI9GA54moKlWZL4Eb2eXrhgf1jV2nMYx18SZxYO4Jc5Kf1sCDNRjOg==} + engines: {node: '>=14.15.0'} + dependencies: + js-yaml: 3.14.1 + tslib: 2.5.0 + dev: true + + /@yarnpkg/parsers/3.0.0-rc.40: + resolution: {integrity: sha512-sKbi5XhHKXCjzb5m0ftGuQuODM2iUXEsrCSl8MkKexNWHepCmU3IPaGTPC5gHZy4sOvsb9JqTLaZEez+kDzG+Q==} + engines: {node: '>=14.15.0'} + dependencies: + js-yaml: 3.14.1 + tslib: 2.5.0 + dev: true + + /@zkochan/js-yaml/0.0.6: + resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /abab/2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + + /abbrev/1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + + /accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-globals/7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.8.2 + acorn-walk: 8.2.0 + dev: true + + /acorn-import-assertions/1.8.0_acorn@8.8.2: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn-jsx/5.3.2_acorn@8.8.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv-formats/2.1.1_ajv@8.12.0: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords/5.1.0_ajv@8.12.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /algoliasearch/4.15.0: + resolution: {integrity: sha512-+vgKQF5944dYsz9zhKk07JbOYeNdKisoD5GeG0woBL3nLzbn2a+nGwki60DXg7CXvaFXBcTXyJG4C+VaBVd44g==} + dependencies: + '@algolia/cache-browser-local-storage': 4.15.0 + '@algolia/cache-common': 4.15.0 + '@algolia/cache-in-memory': 4.15.0 + '@algolia/client-account': 4.15.0 + '@algolia/client-analytics': 4.15.0 + '@algolia/client-common': 4.15.0 + '@algolia/client-personalization': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/logger-common': 4.15.0 + '@algolia/logger-console': 4.15.0 + '@algolia/requester-browser-xhr': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/requester-node-http': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /anser/2.1.1: + resolution: {integrity: sha512-nqLm4HxOTpeLOxcmB3QWmV5TcDFhW9y/fyQ+hivtDFcK4OQ+pQ5fzPnXHM1Mfcm0VkLtvVi1TCPr++Qy0Q/3EQ==} + dev: true + + /ansi-colors/4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-html-community/0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex/2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-sequence-parser/1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: true + + /ansi-styles/2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles/6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /ansi-to-vue3/0.1.1_vue@3.2.47: + resolution: {integrity: sha512-YfqngiSS1DZctfcgBEdnLZL6GDfkvTrRdyRNVKWYQlTAQ7//REhn1E3aCWNP0rQRikbcx9mvIigUM/P9v7JDUg==} + engines: {node: '>=16', npm: '>=7'} + peerDependencies: + vue: ^3.2.0 + peerDependenciesMeta: + vue: + optional: true + dependencies: + anser: 2.1.1 + escape-carriage: 1.3.0 + vue: 3.2.47 + dev: true + + /ansicolor/1.1.100: + resolution: {integrity: sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==} + + /any-shell-escape/0.1.1: + resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} + dev: false + + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /append-transform/2.0.0: + resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} + engines: {node: '>=8'} + dependencies: + default-require-extensions: 3.0.1 + dev: true + + /arch/2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: true + + /archive-type/4.0.0: + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} + engines: {node: '>=4'} + dependencies: + file-type: 4.4.0 + dev: true + + /archy/1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + dev: true + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-back/1.0.4: + resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} + engines: {node: '>=0.12.0'} + dependencies: + typical: 2.6.1 + dev: true + + /array-back/4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + dev: true + + /array-back/5.0.0: + resolution: {integrity: sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==} + engines: {node: '>=10'} + dev: true + + /array-back/6.2.2: + resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} + engines: {node: '>=12.17'} + dev: true + + /array-flatten/1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + + /array-flatten/2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + + /array-includes/3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-union/3.0.1: + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} + dev: true + + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap/1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /as-table/1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + dependencies: + printable-characters: 1.0.42 + + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /assertion-error/1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async-compat/1.4.7: + resolution: {integrity: sha512-DzJRBBF6Q+AJYuAnFXflE5P0FEkJ7oKMOOR4YhzMNZsDnXOSUdCpYt+PpbCGrljempC3hujxy48rHBcBAWdr7g==} + engines: {node: '>=0.8'} + dependencies: + is-error: 2.2.2 + is-promise: 4.0.0 + dev: false + + /async/3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob/2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /autoprefixer/10.4.13_postcss@8.4.21: + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001458 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /aws-sign2/0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4/1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + dev: true + + /axios/1.3.4: + resolution: {integrity: sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /babel-jest/28.1.3_@babel+core@7.21.0: + resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.21.0 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.20.0 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3_@babel+core@7.21.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-loader/9.1.2_qoaxtqicpzj5p3ubthw53xafqm: + resolution: {integrity: sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + dependencies: + '@babel/core': 7.21.0 + find-cache-dir: 3.3.2 + schema-utils: 4.0.0 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /babel-loader/9.1.2_vvlqluip66ao22ix6q4szwdy5u: + resolution: {integrity: sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + dependencies: + '@babel/core': 7.21.0 + find-cache-dir: 3.3.2 + schema-utils: 4.0.0 + webpack: 5.76.2_@swc+core@1.3.37 + dev: true + + /babel-plugin-const-enum/1.2.0_@babel+core@7.21.0: + resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.21.0 + '@babel/traverse': 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul/6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist/28.1.3: + resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.2 + '@types/babel__core': 7.20.0 + '@types/babel__traverse': 7.18.3 + dev: true + + /babel-plugin-macros/2.8.0: + resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} + dependencies: + '@babel/runtime': 7.21.0 + cosmiconfig: 6.0.0 + resolve: 1.22.1 + dev: true + + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.21.0: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.21.0: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + core-js-compat: 3.29.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.0: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-transform-typescript-metadata/0.3.2: + resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.21.0: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.0 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.21.0 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.0 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.0 + dev: true + + /babel-preset-jest/28.1.3_@babel+core@7.21.0: + resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.21.0 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /balanced-match/2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /balloon-css/1.2.0: + resolution: {integrity: sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==} + dev: false + + /base64-js/0.0.2: + resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==} + engines: {node: '>= 0.4'} + dev: false + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /batch/0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /before-after-hook/2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: true + + /big.js/5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /bin-check/4.1.0: + resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + executable: 4.1.1 + dev: true + + /bin-version-check/4.0.0: + resolution: {integrity: sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==} + engines: {node: '>=6'} + dependencies: + bin-version: 3.1.0 + semver: 5.7.1 + semver-truncate: 1.1.2 + dev: true + + /bin-version-check/5.0.0: + resolution: {integrity: sha512-Q3FMQnS5eZmrBGqmDXLs4dbAn/f+52voP6ykJYmweSA60t6DyH4UTSwZhtbK5UH+LBoWvDljILUQMLRUtsynsA==} + engines: {node: '>=12'} + dependencies: + bin-version: 6.0.0 + semver: 7.3.8 + semver-truncate: 2.0.0 + dev: true + + /bin-version/3.1.0: + resolution: {integrity: sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==} + engines: {node: '>=6'} + dependencies: + execa: 1.0.0 + find-versions: 3.2.0 + dev: true + + /bin-version/6.0.0: + resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + find-versions: 5.1.0 + dev: true + + /bin-wrapper/4.1.0: + resolution: {integrity: sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==} + engines: {node: '>=6'} + dependencies: + bin-check: 4.1.0 + bin-version-check: 4.0.0 + download: 7.1.0 + import-lazy: 3.1.0 + os-filter-obj: 2.0.0 + pify: 4.0.1 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bindings/1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: true + + /bl/1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: true + + /bl/2.2.1: + resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: false + + /bl/3.0.1: + resolution: {integrity: sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==} + dependencies: + readable-stream: 3.6.1 + dev: false + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.1 + dev: true + + /blob-util/2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + dev: true + + /bluebird/3.7.1: + resolution: {integrity: sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==} + dev: true + + /bluebird/3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /body-parser/1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /body-scroll-lock/4.0.0-beta.0: + resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} + dev: true + + /bonjour-service/1.1.0: + resolution: {integrity: sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==} + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + + /boolbase/1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + /bops/0.1.1: + resolution: {integrity: sha512-Cx1zStcMp+YoFan8OgudNPMih82eJZE+27feki1WeyoFTR9Ye7AR1SUW3saE6QQvdS/g52aJ2IojBjWOiRiLbw==} + dependencies: + base64-js: 0.0.2 + to-utf8: 0.0.1 + dev: false + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001458 + electron-to-chromium: 1.4.317 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: true + + /bser/2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-alloc-unsafe/1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + + /buffer-alloc/1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + + /buffer-crc32/0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer-fill/1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer-v6-polyfill/1.0.5: + resolution: {integrity: sha512-LdUw/JMZyKN+EBDbOHqynYtOLXDjgo+uf5vCUhfO5hVsU2chvbqyexizvxUMaU4ipYZy9MiQyIFwMeIgsb6nBA==} + dev: false + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /buffer/6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /bytes/3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /c12/1.1.2: + resolution: {integrity: sha512-fHT5HDEHNMb2oImnqJ88/UlpEOkY/chdyYxSd3YCpvBqBvU0IDlHTkNc7GnjObDMxdis2lL+rwlQcNq8VeZESA==} + dependencies: + defu: 6.1.2 + dotenv: 16.0.3 + giget: 1.1.2 + jiti: 1.17.1 + mlly: 1.1.1 + pathe: 1.1.0 + pkg-types: 1.0.2 + rc9: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /c8/7.13.0: + resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.5 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cac/6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /cache-point/2.0.0: + resolution: {integrity: sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==} + engines: {node: '>=8'} + dependencies: + array-back: 4.0.2 + fs-then-native: 2.0.0 + mkdirp2: 1.0.5 + dev: true + + /cacheable-lookup/5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true + + /cacheable-request/2.1.4: + resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.1 + responselike: 1.0.2 + dev: true + + /cacheable-request/7.0.2: + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.2 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + dev: true + + /cachedir/2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + + /caching-transform/4.0.0: + resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} + engines: {node: '>=8'} + dependencies: + hasha: 5.2.2 + make-dir: 3.1.0 + package-hash: 4.0.0 + write-file-atomic: 3.0.3 + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-api/3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001458 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite/1.0.30001458: + resolution: {integrity: sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==} + dev: true + + /caseless/0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /catharsis/0.9.0: + resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} + engines: {node: '>= 10'} + dependencies: + lodash: 4.17.21 + dev: true + + /caw/2.0.1: + resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} + engines: {node: '>=4'} + dependencies: + get-proxy: 2.1.0 + isurl: 1.0.0 + tunnel-agent: 0.6.0 + url-to-options: 1.0.1 + dev: true + + /chai/4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk/1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + + /char-regex/1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /check-error/1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /check-more-types/2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + + /cheerio-select/2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + dev: true + + /cheerio/1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.0.1 + htmlparser2: 8.0.1 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chomp/0.2.13: + resolution: {integrity: sha512-o2WI83SgLg2QtUORorGBg4Ov0rzl+W+0e45ezmdub5NmU5OF2DEmUnnufnRKZSkzXCuGZWgNVuU81v1w8F82zA==} + hasBin: true + dependencies: + bin-wrapper: 4.1.0 + dev: true + + /chownr/2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /ci-info/3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /cjs-module-lexer/1.2.2: + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} + dev: true + + /class-transformer/0.5.1: + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} + dev: true + + /clean-set/1.1.2: + resolution: {integrity: sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==} + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-progress/3.12.0: + resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} + engines: {node: '>=4'} + dependencies: + string-width: 4.2.3 + dev: false + + /cli-spinners/2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + dev: true + + /cli-table3/0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui/6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-response/1.0.2: + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone-response/1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /co/4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-hike-classer-vue3/0.1.6_vue@3.2.47: + resolution: {integrity: sha512-/EjcPUQR3E40lWHN1qd0z3dvm6kWnro0mbpGUU/suHO05EX4DPFILfx969BGaW5XwxV3PRrmyaeLcnIqKATEUA==} + requiresBuild: true + peerDependencies: + vue: ^3.2.0 + peerDependenciesMeta: + vue: + optional: true + dependencies: + vue: 3.2.47 + dev: true + + /collect-all/1.0.4: + resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} + engines: {node: '>=0.10.0'} + dependencies: + stream-connect: 1.0.2 + stream-via: 1.0.4 + dev: true + + /collect-v8-coverage/1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colord/2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette/2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true + + /colorjs.io/0.4.3: + resolution: {integrity: sha512-Jr6NiWFZCuSECl23Bhe4jvDldQsE0ErnWrdl3xIUFy+Bkp0l8r5qt/iZlNH47/xxGP5izcyC8InjoUoI4Po+Pg==} + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander/5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /commander/7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + /commander/9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + engines: {node: ^12.20.0 || >=14} + dev: false + + /commander/9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /commondir/1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + + /compressible/2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression/1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /config-chain/1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true + + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /connect-history-api-fallback/2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /consola/2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: true + + /content-disposition/0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + + /convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /cookie-signature/1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie/0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-anything/2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-webpack-plugin/10.2.4_webpack@5.75.0: + resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} + engines: {node: '>= 12.20.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.2.12 + glob-parent: 6.0.2 + globby: 12.2.0 + normalize-path: 3.0.0 + schema-utils: 4.0.0 + serialize-javascript: 6.0.1 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /core-js-compat/3.29.0: + resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==} + dependencies: + browserslist: 4.21.5 + dev: true + + /core-js/3.28.0: + resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==} + requiresBuild: true + dev: false + + /core-util-is/1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /cosmiconfig/6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig/8.1.0: + resolution: {integrity: sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /crelt/1.0.5: + resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} + dev: true + + /cross-spawn/5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn/6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /css-blank-pseudo/5.0.2_postcss@8.4.21: + resolution: {integrity: sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /css-declaration-sorter/6.3.1_postcss@8.4.21: + resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.21 + dev: true + + /css-functions-list/3.1.0: + resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + engines: {node: '>=12.22'} + dev: true + + /css-has-pseudo/5.0.2_postcss@8.4.21: + resolution: {integrity: sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + dev: true + + /css-loader/6.7.3_webpack@5.75.0: + resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 + postcss-modules-scope: 3.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 + postcss-value-parser: 4.2.0 + semver: 7.3.8 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /css-minimizer-webpack-plugin/3.4.1_webpack@5.75.0: + resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@parcel/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + dependencies: + cssnano: 5.1.15_postcss@8.4.21 + jest-worker: 27.5.1 + postcss: 8.4.21 + schema-utils: 4.0.0 + serialize-javascript: 6.0.1 + source-map: 0.6.1 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /css-prefers-color-scheme/8.0.2_postcss@8.4.21: + resolution: {integrity: sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + dev: true + + /css-select/4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select/5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.0.1 + nth-check: 2.1.1 + + /css-tree/1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-tree/2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + + /css-tree/2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + + /css-what/6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + /css.escape/1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + + /css/3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} + dependencies: + inherits: 2.0.4 + source-map: 0.6.1 + source-map-resolve: 0.6.0 + dev: true + + /cssdb/7.4.1: + resolution: {integrity: sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ==} + dev: true + + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default/5.2.14_postcss@8.4.21: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.3.1_postcss@8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-calc: 8.2.4_postcss@8.4.21 + postcss-colormin: 5.3.1_postcss@8.4.21 + postcss-convert-values: 5.1.3_postcss@8.4.21 + postcss-discard-comments: 5.1.2_postcss@8.4.21 + postcss-discard-duplicates: 5.1.0_postcss@8.4.21 + postcss-discard-empty: 5.1.1_postcss@8.4.21 + postcss-discard-overridden: 5.1.0_postcss@8.4.21 + postcss-merge-longhand: 5.1.7_postcss@8.4.21 + postcss-merge-rules: 5.1.4_postcss@8.4.21 + postcss-minify-font-values: 5.1.0_postcss@8.4.21 + postcss-minify-gradients: 5.1.1_postcss@8.4.21 + postcss-minify-params: 5.1.4_postcss@8.4.21 + postcss-minify-selectors: 5.2.1_postcss@8.4.21 + postcss-normalize-charset: 5.1.0_postcss@8.4.21 + postcss-normalize-display-values: 5.1.0_postcss@8.4.21 + postcss-normalize-positions: 5.1.1_postcss@8.4.21 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.21 + postcss-normalize-string: 5.1.0_postcss@8.4.21 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.21 + postcss-normalize-unicode: 5.1.1_postcss@8.4.21 + postcss-normalize-url: 5.1.0_postcss@8.4.21 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.21 + postcss-ordered-values: 5.1.3_postcss@8.4.21 + postcss-reduce-initial: 5.1.2_postcss@8.4.21 + postcss-reduce-transforms: 5.1.0_postcss@8.4.21 + postcss-svgo: 5.1.0_postcss@8.4.21 + postcss-unique-selectors: 5.1.1_postcss@8.4.21 + dev: true + + /cssnano-utils/3.1.0_postcss@8.4.21: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + dev: true + + /cssnano/5.1.15_postcss@8.4.21: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.14_postcss@8.4.21 + lilconfig: 2.1.0 + postcss: 8.4.21 + yaml: 1.10.2 + dev: true + + /csso/4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso/5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + + /cssom/0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle/2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /csstype/2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + /csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + dev: true + + /cypress/12.7.0: + resolution: {integrity: sha512-7rq+nmhzz0u6yabCFyPtADU2OOrYt6pvUau9qV7xyifJ/hnsaw/vkr0tnLlcuuQKUAOC1v1M1e4Z0zG7S0IAvA==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + hasBin: true + requiresBuild: true + dependencies: + '@cypress/request': 2.88.11 + '@cypress/xvfb': 1.2.4_supports-color@8.1.1 + '@types/node': 14.18.37 + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.3 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 5.7.1 + cachedir: 2.3.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.3 + commander: 5.1.0 + common-tags: 1.8.2 + dayjs: 1.11.7 + debug: 4.3.4_supports-color@8.1.1 + enquirer: 2.3.6 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1_supports-color@8.1.1 + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0_enquirer@2.3.6 + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.8 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + semver: 7.3.8 + supports-color: 8.1.1 + tmp: 0.2.1 + untildify: 4.0.0 + yauzl: 2.10.0 + dev: true + + /dashdash/1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /data-uri-to-buffer/2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: false + + /dayjs/1.10.7: + resolution: {integrity: sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==} + dev: true + + /dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: true + + /deasync/0.1.28: + resolution: {integrity: sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==} + engines: {node: '>=0.11.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + node-addon-api: 1.7.2 + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/3.2.7_supports-color@8.1.1: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + supports-color: 8.1.1 + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug/4.3.4_supports-color@8.1.1: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decimal.js/10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /decode-uri-component/0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /decompress-response/3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: true + + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + + /decompress-tar/4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + dev: true + + /decompress-tarbz2/4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + dev: true + + /decompress-targz/4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + dev: true + + /decompress-unzip/4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + dev: true + + /decompress/4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + dev: true + + /dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-eql/4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge/4.3.0: + resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} + engines: {node: '>=0.10.0'} + dev: true + + /default-gateway/6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + + /default-require-extensions/3.0.1: + resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} + engines: {node: '>=8'} + dependencies: + strip-bom: 4.0.0 + dev: true + + /defer-to-connect/2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true + + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties/1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /defu/6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /depd/1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /dependency-graph/0.11.0: + resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + engines: {node: '>= 0.6.0'} + dev: true + + /deprecation/2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: true + + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + + /destr/1.2.2: + resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} + dev: true + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + + /detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /detect-node/2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /diacritics/1.3.0: + resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} + dev: false + + /diff-sequences/28.1.1: + resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dns-equal/1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet/5.4.0: + resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + + /docs-snippet/1.0.4: + resolution: {integrity: sha512-iOFVo8R6qQ9f/ZkUAFCv+CDp9TsJM93wGhibQ3pvsAT7jSREPE7dKQfk63z3DI9mGMd1ZQsslf1mxIPfMGQCPg==} + dependencies: + '@babel/core': 7.21.0 + '@babel/plugin-syntax-decorators': 7.21.0_@babel+core@7.21.0 + '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.0 + '@babel/traverse': 7.21.2 + '@swc/core': 1.3.38 + prettier: 2.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer/2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.4.0 + + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + /domexception/4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /domhandler/4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler/5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + + /domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils/3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + /dotenv/10.0.0: + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} + engines: {node: '>=10'} + dev: true + + /dotenv/16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + dev: true + + /download/7.1.0: + resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==} + engines: {node: '>=6'} + dependencies: + archive-type: 4.0.0 + caw: 2.0.1 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 8.1.0 + filenamify: 2.1.0 + get-stream: 3.0.0 + got: 8.3.2 + make-dir: 1.3.0 + p-event: 2.3.1 + pify: 3.0.0 + dev: true + + /duplexer/0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /duplexer3/0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: true + + /duplexify/4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.1 + stream-shift: 1.0.1 + dev: false + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ecc-jsbn/0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /editorconfig/0.15.3: + resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} + hasBin: true + dependencies: + commander: 2.20.3 + lru-cache: 4.1.5 + semver: 5.7.1 + sigmund: 1.0.1 + dev: true + + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /ejs/3.1.8: + resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.5 + dev: true + + /electron-to-chromium/1.4.317: + resolution: {integrity: sha512-JhCRm9v30FMNzQSsjl4kXaygU+qHBD0Yh7mKxyjmF0V8VwYVB6qpBRX28GyAucrM9wDCpSUctT6FpMUQxbyKuA==} + dev: true + + /emittery/0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list/3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl/1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /enhanced-resolve/4.5.0: + resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} + engines: {node: '>=6.9.0'} + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.5.0 + tapable: 1.1.3 + dev: true + + /enhanced-resolve/5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + dev: true + + /entities/2.1.0: + resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} + dev: true + + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities/3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + + /errno/0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true + + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-error/4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + dev: true + + /esbuild/0.16.17: + resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.17 + '@esbuild/android-arm64': 0.16.17 + '@esbuild/android-x64': 0.16.17 + '@esbuild/darwin-arm64': 0.16.17 + '@esbuild/darwin-x64': 0.16.17 + '@esbuild/freebsd-arm64': 0.16.17 + '@esbuild/freebsd-x64': 0.16.17 + '@esbuild/linux-arm': 0.16.17 + '@esbuild/linux-arm64': 0.16.17 + '@esbuild/linux-ia32': 0.16.17 + '@esbuild/linux-loong64': 0.16.17 + '@esbuild/linux-mips64el': 0.16.17 + '@esbuild/linux-ppc64': 0.16.17 + '@esbuild/linux-riscv64': 0.16.17 + '@esbuild/linux-s390x': 0.16.17 + '@esbuild/linux-x64': 0.16.17 + '@esbuild/netbsd-x64': 0.16.17 + '@esbuild/openbsd-x64': 0.16.17 + '@esbuild/sunos-x64': 0.16.17 + '@esbuild/win32-arm64': 0.16.17 + '@esbuild/win32-ia32': 0.16.17 + '@esbuild/win32-x64': 0.16.17 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-carriage/1.3.0: + resolution: {integrity: sha512-ATWi5MD8QlAGQOeMgI8zTp671BG8aKvAC0M7yenlxU4CRLGO/sKthxVUyjiOFKjHdIo+6dZZUNFgHFeVEaKfGQ==} + dev: true + + /escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen/2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-prettier/8.6.0_eslint@8.35.0: + resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.35.0 + dev: true + + /eslint-import-resolver-node/0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.11.0 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.4_qynxowrxvm2kj5rbowcxf5maga: + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + debug: 3.2.7 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-cypress/2.12.1_eslint@8.35.0: + resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} + peerDependencies: + eslint: '>= 3.2.1' + dependencies: + eslint: 8.35.0 + globals: 11.12.0 + dev: true + + /eslint-plugin-import/2.27.5_ajyizmi44oc3hrc35l6ndh7p4e: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.54.0_hipfmhsp4ht3is5q3sabjfwfmq + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4_qynxowrxvm2kj5rbowcxf5maga + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-vue/9.9.0_eslint@8.35.0: + resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.35.0 + eslint-utils: 3.0.0_eslint@8.35.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.11 + semver: 7.3.8 + vue-eslint-parser: 9.1.0_eslint@8.35.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.35.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.35.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.35.0: + resolution: {integrity: sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 2.0.0 + '@eslint/js': 8.35.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.35.0 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /estree-walker/3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.0 + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter2/6.4.7: + resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + dev: true + + /eventemitter3/4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /execa/0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa/1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/7.0.0: + resolution: {integrity: sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa/7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: false + + /executable/4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + + /exit/0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect/28.1.3: + resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/expect-utils': 28.1.3 + jest-get-type: 28.0.2 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + dev: true + + /express/4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /ext-list/2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.52.0 + dev: true + + /ext-name/5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extract-base-iterator/0.2.6: + resolution: {integrity: sha512-Inix/4+kHwDNAmMxRRBLturb/G3+vktZLRyFsEP6DzOrgJnl1F9pwHXyLmp5c0E70ir11NGaOxtlp3gr5ta2Og==} + engines: {node: '>=0.8'} + dependencies: + fs-access-compat: 1.0.3 + graceful-fs: 4.2.11 + inherits: 2.0.4 + is-absolute: 1.0.0 + just-extend: 6.2.0 + lodash.compact: 3.0.1 + mkpath: 1.0.0 + queue-cb: 1.1.7 + rimraf: 2.7.1 + stack-base-iterator: 0.1.7 + dev: false + + /extract-zip/2.0.1_supports-color@8.1.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4_supports-color@8.1.1 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.0 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-extract/0.4.8: + resolution: {integrity: sha512-BVD2sa7aUIg/hJVdwSXa3h/qXSZsr0aLLPxWq+7R9M74uW/ARNut7KVQ5KqwR2SIAN+rt7/TMFzmlj/+OuEDbQ==} + engines: {node: '>=0.8'} + dependencies: + bl: 3.0.1 + buffer-v6-polyfill: 1.0.5 + content-disposition: 0.5.4 + core-js: 3.28.0 + end-of-stream: 1.4.4 + flush-write-stream: 2.0.0 + lodash.throttle: 4.1.1 + mkpath: 1.0.0 + mock-require-lazy: 1.0.1 + next-tick: 1.1.0 + once: 1.4.0 + progress-stream: 2.0.0 + pumpify: 2.0.1 + queue-cb: 1.1.7 + readable-stream: 2.3.8 + require_optional: 1.0.1 + rimraf: 2.7.1 + signal-exit: 3.0.7 + tar-iterator: 0.2.9 + temp-suffix: 0.1.1 + unbzip2-stream: 1.4.3 + zip-iterator: 0.2.7 + dev: false + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-glob/3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastest-levenshtein/1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /faye-websocket/0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fb-watchman/2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /fd-slicer/1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + dev: true + + /fenceparser/1.1.1: + resolution: {integrity: sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA==} + engines: {node: '>=12'} + dev: true + + /fenceparser/2.2.0: + resolution: {integrity: sha512-fdXOPciCALTWvooKxyRUmYERiw1L1mzqVsfpk5F9kGr3NoT/Sdwew4BqGctY6xZpUXiZ7dXXPb27Om2nmUmHMg==} + dev: true + + /fflate/0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + dev: true + + /fifo/2.4.1: + resolution: {integrity: sha512-XTbUCNmo54Jav0hcL6VxDuY4x1eCQH61HEF80C2Oww283pfjQ2C8avZeyq4v43sW2S2403kmzssE9j4lbF66Sg==} + dev: false + + /figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /file-loader/6.2.0_webpack@5.75.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.1.1 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /file-set/4.0.2: + resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} + engines: {node: '>=10'} + dependencies: + array-back: 5.0.0 + glob: 7.2.3 + dev: true + + /file-type/17.1.6: + resolution: {integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 7.0.0 + token-types: 5.0.1 + dev: true + + /file-type/3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + dev: true + + /file-type/4.4.0: + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} + engines: {node: '>=4'} + dev: true + + /file-type/5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} + dev: true + + /file-type/6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + dev: true + + /file-type/8.1.0: + resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==} + engines: {node: '>=6'} + dev: true + + /file-uri-to-path/1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: true + + /filelist/1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /filename-reserved-regex/2.0.0: + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} + engines: {node: '>=4'} + dev: true + + /filename-reserved-regex/3.0.0: + resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /filenamify/2.1.0: + resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==} + engines: {node: '>=4'} + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: true + + /filenamify/5.1.1: + resolution: {integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==} + engines: {node: '>=12.20'} + dependencies: + filename-reserved-regex: 3.0.0 + strip-outer: 2.0.0 + trim-repeated: 2.0.0 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /finalhandler/1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-cache-dir/3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + + /find-versions/3.2.0: + resolution: {integrity: sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==} + engines: {node: '>=6'} + dependencies: + semver-regex: 2.0.0 + dev: true + + /find-versions/5.1.0: + resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} + engines: {node: '>=12'} + dependencies: + semver-regex: 4.0.5 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flat/5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /flush-write-stream/2.0.0: + resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.1 + dev: false + + /follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /forever-agent/0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /fork-ts-checker-webpack-plugin/7.2.13_j67zqovrj7snfcv2cta7t3ktnu: + resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0 || 5' + vue-template-compiler: '*' + webpack: ^5.11.0 + peerDependenciesMeta: + vue-template-compiler: + optional: true + dependencies: + '@babel/code-frame': 7.18.6 + chalk: 4.1.2 + chokidar: 3.5.3 + cosmiconfig: 7.1.0 + deepmerge: 4.3.0 + fs-extra: 10.1.0 + memfs: 3.4.13 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.1.1 + semver: 7.3.8 + tapable: 2.2.1 + typescript: 5.1.0-dev.20230321 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /forwarded/0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + + /fresh/0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + + /from2/2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: true + + /fromentries/1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + dev: true + + /fs-access-compat/1.0.3: + resolution: {integrity: sha512-bIT52oDQuazHSEnu17+MnRGVTTtLpMluu9Zuv25RhJ+iVWrTX95aXK+9yEsQ1ZaIRCWeHjx1IgR38QH/8psWKQ==} + engines: {node: '>=0.8'} + dev: false + + /fs-constants/1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass/2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + + /fs-then-native/2.0.0: + resolution: {integrity: sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==} + engines: {node: '>=4.0.0'} + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /generic-names/4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + dependencies: + loader-utils: 3.2.1 + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-func-name/2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + + /get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-package-type/0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-proxy/2.1.0: + resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} + engines: {node: '>=4'} + dependencies: + npm-conf: 1.1.3 + dev: true + + /get-source/2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + + /get-stdin/9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + dev: true + + /get-stream/2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + dev: true + + /get-stream/3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + dev: true + + /get-stream/4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /getos/3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + dependencies: + async: 3.2.4 + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /giget/1.1.2: + resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} + hasBin: true + dependencies: + colorette: 2.0.19 + defu: 6.1.2 + https-proxy-agent: 5.0.1 + mri: 1.2.0 + node-fetch-native: 1.0.2 + pathe: 1.1.0 + tar: 6.1.13 + transitivePeerDependencies: + - supports-color + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob/7.1.4: + resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 + dev: false + + /glob/8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + + /global-dirs/3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + + /global-modules/2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix/3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby/11.0.4: + resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/12.2.0: + resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + array-union: 3.0.1 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globby/13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globjoin/0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /globrex/0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /got/11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + dev: true + + /got/8.3.2: + resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==} + engines: {node: '>=4'} + dependencies: + '@sindresorhus/is': 0.7.0 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + cacheable-request: 2.1.4 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.2.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 0.4.1 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + dev: true + + /graceful-fs/4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /handle-thing/2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + + /happy-dom/8.9.0: + resolution: {integrity: sha512-JZwJuGdR7ko8L61136YzmrLv7LgTh5b8XaEM3P709mLjyQuXJ3zHTDXvUtBBahRjGlcYW0zGjIiEWizoTUGKfA==} + dependencies: + css.escape: 1.5.1 + he: 1.2.0 + iconv-lite: 0.6.3 + node-fetch: 2.6.9 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + transitivePeerDependencies: + - encoding + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /harmony-reflect/1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + dev: true + + /has-ansi/2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag/1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto/1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbol-support-x/1.4.2: + resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-to-string-tag-x/1.4.1: + resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} + dependencies: + has-symbol-support-x: 1.4.2 + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hash-sum/2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + + /hasha/5.2.2: + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} + dependencies: + is-stream: 2.0.1 + type-fest: 0.8.1 + dev: true + + /he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hookable/5.4.2: + resolution: {integrity: sha512-6rOvaUiNKy9lET1X0ECnyZ5O5kSV0PJbtA5yZUgdEF7fGJEVwSLSislltyt7nFwVVALYHQJtfGeAR2Y0A0uJkg==} + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hpack.js/2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: true + + /html-encoding-sniffer/3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-tags/3.2.0: + resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} + engines: {node: '>=8'} + dev: true + + /htmlparser2/8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /http-cache-semantics/3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} + dev: true + + /http-cache-semantics/4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + + /http-deceiver/1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors/1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js/0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-agent/5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-middleware/2.0.6_@types+express@4.17.17: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.17 + '@types/http-proxy': 1.17.10 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy/1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-signature/1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.17.0 + dev: true + + /http2-wrapper/1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: true + + /https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals/4.3.0: + resolution: {integrity: sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==} + engines: {node: '>=14.18.0'} + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-utils/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.21 + dev: true + + /identity-obj-proxy/3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} + dependencies: + harmony-reflect: 1.6.2 + dev: true + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore/5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /image-size/0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /immutable/4.2.4: + resolution: {integrity: sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy/3.1.0: + resolution: {integrity: sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==} + engines: {node: '>=6'} + dev: true + + /import-lazy/4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits/2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + + /inspect-custom-symbol/1.1.1: + resolution: {integrity: sha512-GOucsp9EcdlLdhPUyOTvQDnbFJtp2WBWZV1Jqe+mVnkJQBL3w96+fB84C+JL+EKXOspMdB0eMDQPDp5w9fkfZA==} + dev: false + + /internal-slot/1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + /into-stream/3.1.0: + resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} + engines: {node: '>=4'} + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + dev: true + + /ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + + /ipaddr.js/2.0.1: + resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} + engines: {node: '>= 10'} + dev: true + + /is-absolute/1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: false + + /is-array-buffer/3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.8.0 + dev: true + + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-error/2.2.2: + resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==} + dev: false + + /is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-generator-fn/2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-installed-globally/0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + dev: true + + /is-language-code/3.1.0: + resolution: {integrity: sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==} + dependencies: + '@babel/runtime': 7.21.0 + dev: true + + /is-natural-number/4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-object/1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + + /is-plain-object/5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-potential-custom-element-name/1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-promise/4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + dev: false + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-relative/1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: false + + /is-retry-allowed/1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream/1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unc-path/1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: false + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-what/3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isstream/0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /istanbul-lib-coverage/3.0.0: + resolution: {integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-hook/3.0.0: + resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} + engines: {node: '>=8'} + dependencies: + append-transform: 2.0.0 + dev: true + + /istanbul-lib-instrument/4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.0.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument/5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.0 + '@babel/parser': 7.21.2 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-processinfo/2.0.3: + resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} + engines: {node: '>=8'} + dependencies: + archy: 1.0.0 + cross-spawn: 7.0.3 + istanbul-lib-coverage: 3.2.0 + p-map: 3.0.0 + rimraf: 3.0.2 + uuid: 8.3.2 + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.0.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps/4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.0.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /isurl/1.0.0: + resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} + engines: {node: '>= 4'} + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + dev: true + + /iterator-next-callback/1.1.4: + resolution: {integrity: sha512-MZuFufT6WD9+wFuguBf0UeytnXQuYyfGx9nOFmHbV6NVQEXbZHuDb9h0vgBuPYHMBJKgDKvM1YBsl7rrj1pY7g==} + engines: {node: '>=0.8'} + dependencies: + is-promise: 4.0.0 + dev: false + + /jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-circus/28.1.3: + resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + p-limit: 3.1.0 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-config/28.1.1_sqkfeep4fedqlsauso44ecfrx4: + resolution: {integrity: sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.21.0 + '@jest/test-sequencer': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.7.23 + babel-jest: 28.1.3_@babel+core@7.21.0 + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.0 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 28.1.3 + jest-environment-node: 28.1.3 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.1 + jest-runner: 28.1.3 + jest-util: 28.1.1 + jest-validate: 28.1.3 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 28.1.3 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1_p52dwig7yrxcbqaynypgzvbyfm + transitivePeerDependencies: + - supports-color + dev: true + + /jest-diff/28.1.3: + resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 28.1.1 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-docblock/28.1.1: + resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each/28.1.3: + resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + chalk: 4.1.2 + jest-get-type: 28.0.2 + jest-util: 28.1.3 + pretty-format: 28.1.3 + dev: true + + /jest-environment-node/28.1.3: + resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + jest-mock: 28.1.3 + jest-util: 28.1.3 + dev: true + + /jest-get-type/28.0.2: + resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-haste-map/28.1.3: + resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/graceful-fs': 4.1.6 + '@types/node': 18.15.5 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + jest-worker: 28.1.3 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-leak-detector/28.1.3: + resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-matcher-utils/28.1.3: + resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + dev: true + + /jest-message-util/28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/code-frame': 7.18.6 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock/28.1.3: + resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + dev: true + + /jest-pnp-resolver/1.2.3_jest-resolve@28.1.1: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 28.1.1 + dev: true + + /jest-pnp-resolver/1.2.3_jest-resolve@28.1.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 28.1.3 + dev: true + + /jest-regex-util/28.0.2: + resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dev: true + + /jest-resolve/28.1.1: + resolution: {integrity: sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-pnp-resolver: 1.2.3_jest-resolve@28.1.1 + jest-util: 28.1.1 + jest-validate: 28.1.3 + resolve: 1.22.1 + resolve.exports: 1.1.0 + slash: 3.0.0 + dev: true + + /jest-resolve/28.1.3: + resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-pnp-resolver: 1.2.3_jest-resolve@28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + resolve: 1.22.1 + resolve.exports: 1.1.0 + slash: 3.0.0 + dev: true + + /jest-runner/28.1.3: + resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/console': 28.1.3 + '@jest/environment': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + chalk: 4.1.2 + emittery: 0.10.2 + graceful-fs: 4.2.11 + jest-docblock: 28.1.1 + jest-environment-node: 28.1.3 + jest-haste-map: 28.1.3 + jest-leak-detector: 28.1.3 + jest-message-util: 28.1.3 + jest-resolve: 28.1.3 + jest-runtime: 28.1.3 + jest-util: 28.1.3 + jest-watcher: 28.1.3 + jest-worker: 28.1.3 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime/28.1.3: + resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/globals': 28.1.3 + '@jest/source-map': 28.1.2 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + cjs-module-lexer: 1.2.2 + collect-v8-coverage: 1.0.1 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot/28.1.3: + resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@babel/core': 7.21.0 + '@babel/generator': 7.21.1 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.21.0 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + '@jest/expect-utils': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/babel__traverse': 7.18.3 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.21.0 + chalk: 4.1.2 + expect: 28.1.3 + graceful-fs: 4.2.11 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + jest-haste-map: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + natural-compare: 1.4.0 + pretty-format: 28.1.3 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util/28.1.1: + resolution: {integrity: sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-util/28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate/28.1.3: + resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/types': 28.1.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 28.0.2 + leven: 3.1.0 + pretty-format: 28.1.3 + dev: true + + /jest-watcher/28.1.3: + resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.5 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 28.1.3 + string-length: 4.0.2 + dev: true + + /jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.15.5 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker/28.1.3: + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@types/node': 18.15.5 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jiti/1.17.1: + resolution: {integrity: sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw==} + hasBin: true + dev: true + + /js-base64/2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-beautify/1.14.6: + resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + config-chain: 1.1.13 + editorconfig: 0.15.3 + glob: 8.1.0 + nopt: 6.0.0 + dev: true + + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-tokens/8.0.1: + resolution: {integrity: sha512-3AGrZT6tuMm1ZWWn9mLXh7XMfi2YtiLNPALCVxBCiUVq0LD1OQMxV/AdS/s7rLJU5o9i/jBZw/N4vXXL5dm29A==} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /js2xmlparser/4.0.2: + resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} + dependencies: + xmlcreate: 2.0.4 + dev: true + + /jsbn/0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsdoc-api/8.0.0: + resolution: {integrity: sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==} + engines: {node: '>=12.17'} + dependencies: + array-back: 6.2.2 + cache-point: 2.0.0 + collect-all: 1.0.4 + file-set: 4.0.2 + fs-then-native: 2.0.0 + jsdoc: 4.0.2 + object-to-spawn-args: 2.0.1 + temp-path: 1.0.0 + walk-back: 5.1.0 + dev: true + + /jsdoc/4.0.2: + resolution: {integrity: sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + '@babel/parser': 7.21.2 + '@jsdoc/salty': 0.2.4 + '@types/markdown-it': 12.2.3 + bluebird: 3.7.2 + catharsis: 0.9.0 + escape-string-regexp: 2.0.0 + js2xmlparser: 4.0.2 + klaw: 3.0.0 + markdown-it: 12.3.2 + markdown-it-anchor: 8.6.7_2zb4u3vubltivolgu556vv4aom + marked: 4.2.12 + mkdirp: 1.0.4 + requizzle: 0.2.4 + strip-json-comments: 3.1.1 + underscore: 1.13.6 + dev: true + + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.2 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.12.1 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc/0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer/3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + dev: true + + /json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5/1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: false + + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser/2.1.0: + resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + semver: 7.3.8 + dev: true + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsprim/2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /just-extend/6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + dev: false + + /just-flatten-it/2.2.1: + resolution: {integrity: sha512-VwvlzikphspzZL38LiZpoBsFGQy6MnmXYekBeZA8lSNwgSC87zA3a93bCZKkDuOM+djMZhfjd3lXAZyxficKCg==} + dev: false + + /just-zip-it/2.3.1: + resolution: {integrity: sha512-h8Y3DAVTZRP3Weq7btWYfkYHQGhxiuKzfOO7Ec+x8XaDcBvbOsC2jIdezC6tEzbt+A4fTJTREnj3gF5DyMkFfw==} + dev: false + + /keyv/3.0.0: + resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} + dependencies: + json-buffer: 3.0.0 + dev: true + + /keyv/4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /klaw/3.0.0: + resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} + dependencies: + graceful-fs: 4.2.11 + dev: true + + /klona/2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + dev: true + + /knitwork/1.0.0: + resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} + dev: true + + /known-css-properties/0.26.0: + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} + dev: true + + /kolorist/1.7.0: + resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==} + dev: true + + /lazy-ass/1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + + /less-loader/11.1.0_less@4.1.3+webpack@5.75.0: + resolution: {integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==} + engines: {node: '>= 14.15.0'} + peerDependencies: + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + dependencies: + klona: 2.0.6 + less: 4.1.3 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /less/4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.5.0 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn/0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /license-webpack-plugin/4.0.2_webpack@5.75.0: + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} + peerDependencies: + webpack: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-sources: + optional: true + dependencies: + webpack: 5.75.0_@swc+core@1.3.37 + webpack-sources: 3.2.3 + dev: true + + /lifecycle/1.0.4: + resolution: {integrity: sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==} + dev: false + + /lilconfig/2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lines-and-columns/2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /linkify-it/3.0.3: + resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} + dependencies: + uc.micro: 1.0.6 + dev: true + + /linkify-it/4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + dependencies: + uc.micro: 1.0.6 + + /listr2/3.14.0_enquirer@2.3.6: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + enquirer: 2.3.6 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.0 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + + /loader-utils/2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + dev: true + + /loader-utils/3.2.1: + resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} + engines: {node: '>= 12.13.0'} + dev: true + + /local-pkg/0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /locate-path/7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + + /lodash._reinterpolate/3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + dev: true + + /lodash.camelcase/4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.compact/3.0.1: + resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==} + dev: false + + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.flattendeep/4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + dev: true + + /lodash.memoize/4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.once/4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: true + + /lodash.template/4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + dev: true + + /lodash.templatesettings/4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + dev: true + + /lodash.throttle/4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false + + /lodash.truncate/4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash.uniq/4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /loupe/2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + + /lowercase-keys/1.0.0: + resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys/1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache/4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lz-string/1.4.4: + resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} + hasBin: true + dev: true + + /lz-string/1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /magic-string/0.29.0: + resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /make-dir/1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /make-dir/2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + optional: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /makeerror/1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /markdown-it-anchor/8.6.7_2zb4u3vubltivolgu556vv4aom: + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + dependencies: + '@types/markdown-it': 12.2.3 + markdown-it: 12.3.2 + dev: true + + /markdown-it-bracketed-spans/1.0.1: + resolution: {integrity: sha512-ffDHx7bdOEecvo/EPpsatFLNnLZBRdj+ZF/v6gGJh0ixU0oVWxUUeJn5daVnT0sn0MU73G9oPDTqBX82z99fnw==} + dev: true + + /markdown-it-plantuml-ex/1.0.0: + resolution: {integrity: sha512-+1K2F0MR/Ss0NL+PkmJByWGDAmzkVwM+5QGsfkV5yLi1pis2lul5gRfWMlbD0rcHNBHYd5mUWC9smwqkQB/d8Q==} + dependencies: + cheerio: 1.0.0-rc.12 + dev: true + + /markdown-it-shiki-twoslash/2.1.1_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-vu5F3M9/livaM0LVHhcaVmh3YKZIUOo2Pt9Vf2rIH3OyXaf1e6w3A7i09Uqkpx5YtRkhPuWyXQI0ZrOBN+HE3Q==} + dependencies: + deasync: 0.1.28 + remark-shiki-twoslash: 3.1.1_gliwt7svxbpvcai2ottpa7qe6a + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /markdown-it/12.3.2: + resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 2.1.0 + linkify-it: 3.0.3 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: true + + /markdown-it/13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 3.0.1 + linkify-it: 4.0.1 + mdurl: 1.0.1 + uc.micro: 1.0.6 + + /marked/4.2.12: + resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} + engines: {node: '>= 12'} + hasBin: true + dev: true + + /matcher/4.0.0: + resolution: {integrity: sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 4.0.0 + dev: true + + /mathml-tag-names/2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /maximize-iterator/2.6.6: + resolution: {integrity: sha512-VQ9dUjNy0Dgb81tCy5Ompkdx/edWvtS/D6XG4pQ050NWNduwtd3oB9swDTbCqOZ2Sj9xMjQK3/P4veR99N421Q==} + engines: {node: '>=0.8'} + dependencies: + async-compat: 1.4.7 + is-error: 2.2.2 + iterator-next-callback: 1.1.4 + dev: false + + /mdn-data/2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data/2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + /mdn-data/2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memfs/3.4.13: + resolution: {integrity: sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + + /memory-fs/0.5.0: + resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + dev: true + + /meow/9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-descriptors/1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /methods/1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /mini-css-extract-plugin/2.4.7_webpack@5.75.0: + resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.0.0 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /mini-svg-data-uri/1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + dev: true + + /minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimatch/3.0.5: + resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch/5.1.0: + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + + /minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch/6.2.0: + resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: false + + /minimist/1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass/3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass/4.2.4: + resolution: {integrity: sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==} + engines: {node: '>=8'} + dev: true + + /minizlib/2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp2/1.0.5: + resolution: {integrity: sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==} + dev: true + + /mkpath/1.0.0: + resolution: {integrity: sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==} + dev: false + + /mlly/1.1.1: + resolution: {integrity: sha512-Jnlh4W/aI4GySPo6+DyTN17Q75KKbLTyFK8BrGhjNP4rxuUjbRWhE6gHg3bs33URWAF44FRm7gdQA348i3XxRw==} + dependencies: + acorn: 8.8.2 + pathe: 1.1.0 + pkg-types: 1.0.2 + ufo: 1.1.1 + dev: true + + /mock-require-lazy/1.0.1: + resolution: {integrity: sha512-Sv05IW2MuG7C+gVTHirqF8cbqAM8MeMEIKU3MIQDA1pyXKnv0AGa/3l0iwXk/i+81OoFzt+iU0p8DdphV2Ejww==} + engines: {node: '>=0.8'} + dependencies: + get-caller-file: 2.0.5 + normalize-path: 3.0.0 + dev: false + + /monaco-editor/0.35.0: + resolution: {integrity: sha512-BJfkAZ0EJ7JgrgWzqjfBNP9hPSS8NlfECEDMEIIiozV2UaPq22yeuOjgbd3TwMh3anH0krWZirXZfn8KUSxiOA==} + dev: false + + /monaco-editor/0.36.0-dev.20230217: + resolution: {integrity: sha512-PbJOkeSsKgOGmb9q1HxtGsCw5QHjDvo0KDV5B0CTwfZ1mnCZuZ9/ol16dJd1OYL8an0gbuAjLhzvesOBiJ46hg==} + dependencies: + '@types/shelljs': 0.8.11 + pin-github-action: 1.8.0 + shelljs: 0.8.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime/1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multicast-dns/7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.4.0 + thunky: 1.1.0 + dev: true + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanoid/4.0.1: + resolution: {integrity: sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: true + + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /needle/3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.6.3 + sax: 1.2.4 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /next-tick/1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: false + + /nice-try/1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /node-abort-controller/3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + dev: true + + /node-addon-api/1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + dev: true + + /node-addon-api/3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + dev: true + + /node-fetch-native/1.0.2: + resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==} + dev: true + + /node-fetch/2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-forge/1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-gyp-build/4.6.0: + resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} + hasBin: true + dev: true + + /node-html-parser/5.3.3: + resolution: {integrity: sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==} + dependencies: + css-select: 4.3.0 + he: 1.2.0 + dev: true + + /node-int64/0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-preload/0.2.1: + resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} + engines: {node: '>=8'} + dependencies: + process-on-spawn: 1.0.0 + dev: true + + /node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /nopt/6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range/0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url/2.0.1: + resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + query-string: 5.1.1 + sort-keys: 2.0.0 + dev: true + + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /npm-conf/1.1.3: + resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} + engines: {node: '>=4'} + dependencies: + config-chain: 1.1.13 + pify: 3.0.0 + dev: true + + /npm-run-path/2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + + /nth-check/2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + + /nwsapi/2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + dev: true + + /nx/15.8.2_@swc+core@1.3.37: + resolution: {integrity: sha512-5IxWOoEhWatm9KuYGj55GoPRT7J7+AI4T5DP/OiaOVQG7OEuX86DujpoLr3SKBrDSfaWWXPwNO7xMxLqFAdEtw==} + hasBin: true + requiresBuild: true + peerDependencies: + '@swc-node/register': ^1.4.2 + '@swc/core': ^1.2.173 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + dependencies: + '@nrwl/cli': 15.8.2_@swc+core@1.3.37 + '@nrwl/tao': 15.8.2_@swc+core@1.3.37 + '@parcel/watcher': 2.0.4 + '@swc/core': 1.3.37 + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.0-rc.39 + '@zkochan/js-yaml': 0.0.6 + axios: 1.3.4 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 7.0.4 + dotenv: 10.0.0 + enquirer: 2.3.6 + fast-glob: 3.2.7 + figures: 3.2.0 + flat: 5.0.2 + fs-extra: 11.1.0 + glob: 7.1.4 + ignore: 5.2.4 + js-yaml: 4.1.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.3 + minimatch: 3.0.5 + npm-run-path: 4.0.1 + open: 8.4.2 + semver: 7.3.4 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar-stream: 2.2.0 + tmp: 0.2.1 + tsconfig-paths: 4.1.2 + tslib: 2.5.0 + v8-compile-cache: 2.3.0 + yargs: 17.7.1 + yargs-parser: 21.1.1 + optionalDependencies: + '@nrwl/nx-darwin-arm64': 15.8.2 + '@nrwl/nx-darwin-x64': 15.8.2 + '@nrwl/nx-linux-arm-gnueabihf': 15.8.2 + '@nrwl/nx-linux-arm64-gnu': 15.8.2 + '@nrwl/nx-linux-arm64-musl': 15.8.2 + '@nrwl/nx-linux-x64-gnu': 15.8.2 + '@nrwl/nx-linux-x64-musl': 15.8.2 + '@nrwl/nx-win32-arm64-msvc': 15.8.2 + '@nrwl/nx-win32-x64-msvc': 15.8.2 + transitivePeerDependencies: + - debug + dev: true + + /nx/15.8.7_@swc+core@1.3.37: + resolution: {integrity: sha512-u6p/1gU20WU61orxK7hcXBsVspPHy3X66XVAAakkYcaOBlsJhJrR7Og191qIyjEkqEWmcekiDQVw3D6XfagL4Q==} + hasBin: true + requiresBuild: true + peerDependencies: + '@swc-node/register': ^1.4.2 + '@swc/core': ^1.2.173 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + dependencies: + '@nrwl/cli': 15.8.7_@swc+core@1.3.37 + '@nrwl/tao': 15.8.7_@swc+core@1.3.37 + '@parcel/watcher': 2.0.4 + '@swc/core': 1.3.37 + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.0-rc.40 + '@zkochan/js-yaml': 0.0.6 + axios: 1.3.4 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 7.0.4 + dotenv: 10.0.0 + enquirer: 2.3.6 + fast-glob: 3.2.7 + figures: 3.2.0 + flat: 5.0.2 + fs-extra: 11.1.1 + glob: 7.1.4 + ignore: 5.2.4 + js-yaml: 4.1.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.3 + minimatch: 3.0.5 + npm-run-path: 4.0.1 + open: 8.4.2 + semver: 7.3.4 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar-stream: 2.2.0 + tmp: 0.2.1 + tsconfig-paths: 4.1.2 + tslib: 2.5.0 + v8-compile-cache: 2.3.0 + yargs: 17.7.1 + yargs-parser: 21.1.1 + optionalDependencies: + '@nrwl/nx-darwin-arm64': 15.8.7 + '@nrwl/nx-darwin-x64': 15.8.7 + '@nrwl/nx-linux-arm-gnueabihf': 15.8.7 + '@nrwl/nx-linux-arm64-gnu': 15.8.7 + '@nrwl/nx-linux-arm64-musl': 15.8.7 + '@nrwl/nx-linux-x64-gnu': 15.8.7 + '@nrwl/nx-linux-x64-musl': 15.8.7 + '@nrwl/nx-win32-arm64-msvc': 15.8.7 + '@nrwl/nx-win32-x64-msvc': 15.8.7 + transitivePeerDependencies: + - debug + dev: true + + /nyc/15.1.0: + resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} + engines: {node: '>=8.9'} + hasBin: true + dependencies: + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + caching-transform: 4.0.0 + convert-source-map: 1.9.0 + decamelize: 1.2.0 + find-cache-dir: 3.3.2 + find-up: 4.1.0 + foreground-child: 2.0.0 + get-package-type: 0.1.0 + glob: 7.2.3 + istanbul-lib-coverage: 3.0.0 + istanbul-lib-hook: 3.0.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-processinfo: 2.0.3 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + make-dir: 3.1.0 + node-preload: 0.2.1 + p-map: 3.0.0 + process-on-spawn: 1.0.0 + resolve-from: 5.0.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + spawn-wrap: 2.0.0 + test-exclude: 6.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-to-spawn-args/2.0.1: + resolution: {integrity: sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==} + engines: {node: '>=8.0.0'} + dev: true + + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.values/1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /obuf/1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers/1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + + /open/8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /os-filter-obj/2.0.0: + resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==} + engines: {node: '>=4'} + dependencies: + arch: 2.2.0 + dev: true + + /ospath/1.2.2: + resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} + dev: true + + /outvariant/1.3.0: + resolution: {integrity: sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==} + dev: true + + /p-cancelable/0.4.1: + resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} + engines: {node: '>=4'} + dev: true + + /p-cancelable/2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true + + /p-event/2.3.1: + resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==} + engines: {node: '>=6'} + dependencies: + p-timeout: 2.0.1 + dev: true + + /p-finally/1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} dev: true - /@docsearch/css/3.3.0: - resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} + /p-is-promise/1.1.0: + resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} + engines: {node: '>=4'} dev: true - /@docsearch/js/3.3.0_5hc3kenz2rcl74lgbiauumrhqq: - resolution: {integrity: sha512-oFXWRPNvPxAzBhnFJ9UCFIYZiQNc3Yrv6912nZHw/UIGxsyzKpNRZgHq8HDk1niYmOSoLKtVFcxkccpQmYGFyg==} + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: - '@docsearch/react': 3.3.0_5hc3kenz2rcl74lgbiauumrhqq - preact: 10.11.3 - transitivePeerDependencies: - - '@algolia/client-search' - - '@types/react' - - react - - react-dom + p-try: 2.2.0 dev: true - /@docsearch/react/3.3.0_5hc3kenz2rcl74lgbiauumrhqq: - resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0 || 18' - react-dom: '>= 16.8.0 < 19.0.0 || 18' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: - '@algolia/autocomplete-core': 1.7.2 - '@algolia/autocomplete-preset-algolia': 1.7.2_qs6lk5nhygj2o3hj4sf6xnr724 - '@docsearch/css': 3.3.0 - '@types/react': 18.0.26 - algoliasearch: 4.14.2 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - transitivePeerDependencies: - - '@algolia/client-search' + yocto-queue: 0.1.0 dev: true - /@domtree/any/0.9.3: - resolution: {integrity: sha512-G7derGChI2hFp8WIonL9K33Na4RCZGSyENTPKp08PBTPxTcHWH+HJqnetdygItS+2X9BSmlglDGaWpT53Zn88g==} + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - '@domtree/browser': 0.9.3 - '@domtree/interface': 0.9.3 - '@domtree/minimal': 0.9.3 + yocto-queue: 1.0.0 + dev: true - /@domtree/browser/0.9.3: - resolution: {integrity: sha512-/PA64pwKvWdSUNIfsIeedBqCR3TA+4ahE45or2hF5mBuCQcv5pGeuAgSAmlHch/JfecVriR2E3WxReMXANawfQ==} + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: - '@domtree/interface': 0.9.3 + p-limit: 2.3.0 + dev: true - /@domtree/flavors/0.9.3: - resolution: {integrity: sha512-tJYLenCll/+YG62aaT1OxjNMbJVwqv7GFSkOSj42LTB89qsQYlhVM8YfUqOyOaj0ToZoow4N6zZyzStUbNlmlw==} + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: - '@domtree/any': 0.9.3 - '@domtree/browser': 0.9.3 - '@domtree/minimal': 0.9.3 + p-limit: 3.1.0 + dev: true - /@domtree/interface/0.9.3: - resolution: {integrity: sha512-La9MRMcerFpL0ba9vip/UxXgKDW6+H8juR0e3QjsKR2iaKSdjJKWoKOeRymJkTMAtY4JWfjWxaQUfVK45JjwXA==} + /p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true - /@domtree/minimal/0.9.3: - resolution: {integrity: sha512-8Ee8HHO9CuNLcwbOTYjVoI2MnrrHTNEZzrom29xlGDKE99OHzA7eSGcd9xd1Kkn60T27AOJZEu7mtQR/NEPkwQ==} + /p-map/3.0.0: + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} dependencies: - '@domtree/interface': 0.9.3 + aggregate-error: 3.1.0 + dev: true - /@esbuild/android-arm/0.16.10: - resolution: {integrity: sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 dev: true - optional: true - /@esbuild/android-arm64/0.16.10: - resolution: {integrity: sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 dev: true - optional: true - /@esbuild/android-x64/0.16.10: - resolution: {integrity: sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + /p-timeout/2.0.1: + resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} + engines: {node: '>=4'} + dependencies: + p-finally: 1.0.0 dev: true - optional: true - /@esbuild/darwin-arm64/0.16.10: - resolution: {integrity: sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} dev: true - optional: true - /@esbuild/darwin-x64/0.16.10: - resolution: {integrity: sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + /package-hash/4.0.0: + resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} + engines: {node: '>=8'} + dependencies: + graceful-fs: 4.2.11 + hasha: 5.2.2 + lodash.flattendeep: 4.4.0 + release-zalgo: 1.0.0 dev: true - optional: true - /@esbuild/freebsd-arm64/0.16.10: - resolution: {integrity: sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 dev: true - optional: true - /@esbuild/freebsd-x64/0.16.10: - resolution: {integrity: sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 dev: true - optional: true - /@esbuild/linux-arm/0.16.10: - resolution: {integrity: sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + /parse-node-version/1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} dev: true - optional: true - /@esbuild/linux-arm64/0.16.10: - resolution: {integrity: sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + /parse5-htmlparser2-tree-adapter/7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 dev: true - optional: true - /@esbuild/linux-ia32/0.16.10: - resolution: {integrity: sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + /parse5/4.0.0: + resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} dev: true - optional: true - /@esbuild/linux-loong64/0.16.10: - resolution: {integrity: sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + /parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.4.0 dev: true - optional: true - /@esbuild/linux-mips64el/0.16.10: - resolution: {integrity: sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} dev: true - optional: true - /@esbuild/linux-ppc64/0.16.10: - resolution: {integrity: sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} dev: true - optional: true - /@esbuild/linux-riscv64/0.16.10: - resolution: {integrity: sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + /path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - optional: true - /@esbuild/linux-s390x/0.16.10: - resolution: {integrity: sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key/2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} dev: true - optional: true - /@esbuild/linux-x64/0.16.10: - resolution: {integrity: sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==} + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp/0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true - optional: true - /@esbuild/netbsd-x64/0.16.10: - resolution: {integrity: sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} dev: true - optional: true - /@esbuild/openbsd-x64/0.16.10: - resolution: {integrity: sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + /pathe/1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true - optional: true - /@esbuild/sunos-x64/0.16.10: - resolution: {integrity: sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + /pathval/1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - optional: true - /@esbuild/win32-arm64/0.16.10: - resolution: {integrity: sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + /peek-readable/5.0.0: + resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} + engines: {node: '>=14.16'} dev: true - optional: true - /@esbuild/win32-ia32/0.16.10: - resolution: {integrity: sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + /pend/1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true - optional: true - /@esbuild/win32-x64/0.16.10: - resolution: {integrity: sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + /performance-now/2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify/2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify/4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pikchr-wasm/2.0.0: + resolution: {integrity: sha512-v2mpbu1m+tQgyIw/vo4DDXZpjlw8427aqs3pbrA5vOLpvMqU4p1kCadfDAPwz8J9SHX83zJXDrOsykofo8H82A==} + dependencies: + once: /@fabiospampinato/once/2.0.0 + dev: true + + /pin-github-action/1.8.0: + resolution: {integrity: sha512-8QMKGbDUmMLFSyeV7hDIVmlI8B3ThJed1uFYuhcCBLi/w8xHPbrPhnCvJndYdugNc8aj1FrijrOMDLQ93ATc7A==} + hasBin: true + dependencies: + '@octokit/rest': 18.12.0 + commander: 9.5.0 + debug: 4.3.4 + matcher: 4.0.0 + yaml: 2.2.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /pinkie-promise/2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie/2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates/4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-types/1.0.2: + resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.1.1 + pathe: 1.1.0 + dev: true + + /pkg-up/4.0.0: + resolution: {integrity: sha512-N4zdA4sfOe6yCv+ulPCmpnIBQ5I60xfhDr1otdBBhKte9QtEf3bhfrfkW7dTb+IQ0iEx4ZDzas0kc1o5rdWpYg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: 6.3.0 + dev: true + + /pnpapi/0.0.0: + resolution: {integrity: sha512-UemFU6zCZ4MZwsBcgmcFZX71nnNUUCwxKxdxctxfiEDB39SOzvUUJ28g+Arx5JF8kO3N0yxyjY/4+N6+jBFqZw==} + dev: true + + /postcss-atroot/0.2.3_postcss@8.4.21: + resolution: {integrity: sha512-QoqnRy93M/OaV1hq460uDeTfSi1dy+43mPkhRmbFY8YfNiwc3JZ8ju8H4OkfgDNXVOlHL0l8ygWAy3NpttzEXA==} + engines: {node: '>= 10'} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 dev: true - optional: true - /@iconify/json/2.1.155: - resolution: {integrity: sha512-Zr0809RkIKB/0pX3jFfLX4TI8fv1aW6+FHXlfRiDhFKQSmhcs2x5xYhtxI5GUzl+9o6Le544uUCljmHBYJUFrA==} + /postcss-attribute-case-insensitive/6.0.2_postcss@8.4.21: + resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@iconify/types': 2.0.0 - pathe: 0.3.9 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@iconify/types/2.0.0: - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + /postcss-calc/8.2.4_postcss@8.4.21: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 dev: true - /@jridgewell/gen-mapping/0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} + /postcss-clamp/4.1.0_postcss@8.4.21: + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@jridgewell/gen-mapping/0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} - engines: {node: '>=6.0.0'} + /postcss-cli/10.1.0_aesdjsunmf4wiehhujt67my7tu: + resolution: {integrity: sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + postcss: ^8.0.0 dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 + chokidar: 3.5.3 + dependency-graph: 0.11.0 + fs-extra: 11.1.0 + get-stdin: 9.0.0 + globby: 13.1.3 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-load-config: 4.0.1_aesdjsunmf4wiehhujt67my7tu + postcss-reporter: 7.0.5_postcss@8.4.21 + pretty-hrtime: 1.0.3 + read-cache: 1.0.0 + slash: 5.0.0 + yargs: 17.7.1 + transitivePeerDependencies: + - ts-node dev: true - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} + /postcss-color-functional-notation/5.0.2_postcss@8.4.21: + resolution: {integrity: sha512-M6ygxWOyd6eWf3sd1Lv8xi4SeF4iBPfJvkfMU4ITh8ExJc1qhbvh/U8Cv/uOvBgUVOMDdScvCdlg8+hREQzs7w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + /postcss-color-hex-alpha/9.0.2_postcss@8.4.21: + resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + /postcss-color-rebeccapurple/8.0.2_postcss@8.4.21: + resolution: {integrity: sha512-xWf/JmAxVoB5bltHpXk+uGRoGFwu4WDAR7210el+iyvTdqiKpDhtcT8N3edXMoVJY0WHFMrKMUieql/wRNiXkw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + /postcss-colormin/5.3.1_postcss@8.4.21: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + browserslist: 4.21.5 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@jsdoc/salty/0.2.2: - resolution: {integrity: sha512-A1FrVnc7L9qI2gUGsfN0trTiJNK72Y0CL/VAyrmYEmeKI3pnHDawP64CEev31XLyAAOx2xmDo3tbadPxC0CSbw==} - engines: {node: '>=v12.0.0'} + /postcss-convert-values/5.1.3_postcss@8.4.21: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - lodash: 4.17.21 + browserslist: 4.21.5 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@lezer/common/0.15.12: - resolution: {integrity: sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==} + /postcss-css-variables/0.18.0_postcss@8.4.21: + resolution: {integrity: sha512-lYS802gHbzn1GI+lXvy9MYIYDuGnl1WB4FTKoqMQqJ3Mab09A7a/1wZvGTkCEZJTM8mSbIyb1mJYn8f0aPye0Q==} + peerDependencies: + postcss: ^8.2.6 + dependencies: + balanced-match: 1.0.2 + escape-string-regexp: 1.0.5 + extend: 3.0.2 + postcss: 8.4.21 dev: true - /@lezer/css/0.15.2: - resolution: {integrity: sha512-tnMOMZY0Zs6JQeVjqfmREYMV0GnmZR1NitndLWioZMD6mA7VQF/PPKPmJX1f+ZgVZQc5Am0df9mX3aiJnNJlKQ==} + /postcss-current-selector/0.0.3: + resolution: {integrity: sha512-vkz3W3rqxWHq5IV8+P4QFB820psiD94NLn43QPgy682dPgjhUcjeNJfpNexX4FKHhV1pQhKfs2SCvghxTUfyiQ==} dependencies: - '@lezer/lr': 0.15.8 + postcss: 5.2.18 dev: true - /@lezer/html/0.15.1: - resolution: {integrity: sha512-0ZYVhu+RwN6ZMM0gNnTxenRAdoycKc2wvpLfMjP0JkKR0vMxhtuLaIpsq9KW2Mv6l7ux5vdjq8CQ7fKDvia8KA==} + /postcss-custom-media/9.1.2_postcss@8.4.21: + resolution: {integrity: sha512-osM9g4UKq4XKimAC7RAXroqi3BXpxfwTswAJQiZdrBjWGFGEyxQrY5H2eDWI8F+MEvEUfYDxA8scqi3QWROCSw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@lezer/lr': 0.15.8 + '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + '@csstools/media-query-list-parser': 2.0.1_ppok7cytzjc65mcyxmtit3wdyi + postcss: 8.4.21 dev: true - /@lezer/javascript/0.15.3: - resolution: {integrity: sha512-8jA2NpOfpWwSPZxRhd9BxK2ZPvGd7nLE3LFTJ5AbMhXAzMHeMjneV6GEVd7dAIee85dtap0jdb6bgOSO0+lfwA==} + /postcss-custom-prop-vars/0.0.5_postcss@8.4.21: + resolution: {integrity: sha512-ZaQAF1M5qo3LHVhTzZVW6feDz2sOzcyVQgzITSycLAVXeDylvQLac4VPy3olyB+ejjQiYl0eJN7eX2/kkfMt0A==} + peerDependencies: + postcss: ^8.4.16 dependencies: - '@lezer/lr': 0.15.8 + postcss: 8.4.21 dev: true - /@lezer/lr/0.15.8: - resolution: {integrity: sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==} + /postcss-custom-properties/13.1.4_postcss@8.4.21: + resolution: {integrity: sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@lezer/common': 0.15.12 + '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@lezer/python/0.15.1: - resolution: {integrity: sha512-Xdb2nh+FoxR8ssEADGsroDtsnP+EDhiPpW9zhER3h+6cpGtZ2e9Oq/Rwn9nFQRiKCfMT+AQaqC3ZgAbhbnumyQ==} + /postcss-custom-selectors/7.1.2_postcss@8.4.21: + resolution: {integrity: sha512-jX7VlE3jrgfBIOfxiGNRFq81xUoHSZhvxhQurzE7ZFRv+bUmMwB7/XnA0nNlts2CwNtbXm4Ozy0ZAYKHlCRmBQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@lezer/lr': 0.15.8 + '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@mdit-vue/plugin-sfc/0.11.1: - resolution: {integrity: sha512-3AjQXqExzT9FWGNOeTBqK1pbt1UA5anrZvjo7OO2PJ3lrfZd0rbjionFkmW/VW1912laHUraIP6n74mUNqPuWw==} + /postcss-dir-pseudo-class/7.0.2_postcss@8.4.21: + resolution: {integrity: sha512-cMnslilYxBf9k3qejnovrUONZx1rXeUZJw06fgIUBzABJe3D2LiLL5WAER7Imt3nrkaIgG05XZBztueLEf5P8w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@mdit-vue/types': 0.11.0 - '@types/markdown-it': 12.2.3 - markdown-it: 13.0.1 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@mdit-vue/types/0.11.0: - resolution: {integrity: sha512-ygCGP7vFpqS02hpZwEe1uz8cfImWX06+zRs08J+tCZRKb6k+easIaIHFtY9ZSxt7j9L/gAPLDo/5RmOT6z0DPQ==} + /postcss-discard-comments/5.1.2_postcss@8.4.21: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 dev: true - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + /postcss-discard-duplicates/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: false - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: false + postcss: 8.4.21 + dev: true - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + /postcss-discard-empty/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 - dev: false + postcss: 8.4.21 + dev: true - /@stackblitz/sdk/1.8.1: - resolution: {integrity: sha512-hjYfjOLQBNDzqPD5AkGJOD7j+uvFwGocDTmwNqmLCWR5EY7BDtcOtDY2M+91v/twYWWNvI7N8UNIgojCPNgzMA==} + /postcss-discard-overridden/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 dev: true - /@starbeam/core-utils/0.8.9: - resolution: {integrity: sha512-0Rm6NfKgCiKwxl+aGMVBm/zI7PpF3bhFKVBs8pDVVMQUdHPeB8pzwX8JYXjqa0pkRXo7kAnjqagNnjaRxDhqPQ==} + /postcss-double-position-gradients/4.0.2_postcss@8.4.21: + resolution: {integrity: sha512-GXL1RmFREDK4Q9aYvI2RhVrA6a6qqSMQQ5ke8gSH1xgV6exsqbcJpIumC7AOgooH6/WIG3/K/T8xxAiVHy/tJg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true - /@starbeam/debug/0.8.9: - resolution: {integrity: sha512-+KTuGF349NzrQrBJS9TOpvXLOv56uxEoDud9mhQrZj/Qr7Y/CCH1Shz84Cu3Rqd1Ip2J5KOhW8xsS2aHTMPeHQ==} + /postcss-env-function/5.0.1_postcss@8.4.21: + resolution: {integrity: sha512-hfwf40QSq/+gQMhstHeSvSEKdcQJSxzEy6V8RWLDgFPiyTnVGsSSt3B1nLHprLg/wW61Qfh2uQzNXJjspv3c3Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@domtree/flavors': 0.9.3 - '@starbeam/core-utils': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/verify': 0.8.9 - ansicolor: 1.1.100 - buffer: 6.0.3 - stacktracey: 2.1.8 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true - /@starbeam/interfaces/0.8.9: - resolution: {integrity: sha512-ANkMcaQcha4JUDlL22NJbsd3wNFXoqZImovdJU4o/e5+F1xSKXf3H0iznJ/cf5+iFv8NhPrEgq4pbCSzhBVD1w==} + /postcss-extend-rule/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-3gjPWUDNYjkRjtcpoN8ppZRXG8vyAk4mYdkYOETacCkCLVguW5IpCXCO31cDk8SW2/rx0RogWcXm1Zu/EayDVg==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4.6 dependencies: - '@domtree/any': 0.9.3 - '@starbeam/shared': 1.3.7 + postcss: 8.4.21 + postcss-nesting: 10.2.0_postcss@8.4.21 + dev: true - /@starbeam/js/0.8.9: - resolution: {integrity: sha512-qGMrIDjZYEKOc/lcwVF8AZBkcabWGAzx02hqEeCVm4N24dRC4eH7xeotdgZ7CPeXL0GV0xD9vs7Hk0c3zMo7oQ==} + /postcss-focus-visible/8.0.2_postcss@8.4.21: + resolution: {integrity: sha512-f/Vd+EC/GaKElknU59esVcRYr/Y3t1ZAQyL4u2xSOgkDy4bMCmG7VP5cGvj3+BTLNE9ETfEuz2nnt4qkZwTTeA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@starbeam/debug': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/timeline': 0.8.9 - '@starbeam/universal': 0.8.9 - '@starbeam/verify': 0.8.9 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true - /@starbeam/modifier/0.8.9: - resolution: {integrity: sha512-Iu41BHL5bfIDpT9GZKtTDBrgsJE9DrxkTEec2TJKmICEanpmmJrNRHGUdx7JBXzymv0mAscMOjuEGPXtUS5xxA==} + /postcss-focus-within/7.0.2_postcss@8.4.21: + resolution: {integrity: sha512-AHAJ89UQBcqBvFgQJE9XasGuwMNkKsGj4D/f9Uk60jFmEBHpAL14DrnSk3Rj+SwZTr/WUG+mh+Rvf8fid/346w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@starbeam/debug': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/universal': 0.8.9 - '@starbeam/verify': 0.8.9 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true - /@starbeam/preact-utils/0.8.9_preact@10.11.3: - resolution: {integrity: sha512-XOygHcCrntbGch4a6of5U3IvvpNjTZUjWPh0JhwykMd+ebVMpM2ORMJmx+atfN2i3B0ytPwEHlmmlEsem7wTjg==} + /postcss-font-variant/5.0.0_postcss@8.4.21: + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: - preact: '>=10' + postcss: ^8.1.0 dependencies: - '@starbeam/core-utils': 0.8.9 - preact: 10.11.3 + postcss: 8.4.21 + dev: true - /@starbeam/preact/0.8.9_preact@10.11.3: - resolution: {integrity: sha512-piL39VbA2b3mclXuynJrLt0v/HOgN1s/ZQiWodtxTouZJiL0HfU0V1xDTIc8jqRT01R5mOy+OfFX3WPnhNVN3A==} + /postcss-functions/4.0.2_postcss@8.4.21: + resolution: {integrity: sha512-htDZN6t97uW4GBXquTsz/DVaNVAHtHx5tLCALquVM2u58UwHki+RwHbANKiiI0ImA8T7Iml2MnvLUM7aGtlpqA==} peerDependencies: - preact: ^10.11.2 + postcss: ^8.0.0 dependencies: - '@starbeam/core-utils': 0.8.9 - '@starbeam/debug': 0.8.9 - '@starbeam/preact-utils': 0.8.9_preact@10.11.3 - '@starbeam/timeline': 0.8.9 - '@starbeam/universal': 0.8.9 - '@starbeam/verify': 0.8.9 - preact: 10.11.3 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true - /@starbeam/react/0.8.9_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-JoIz1tjlcfrnH/Mj5o5PBjbKUV5qH4Tw/qW6W1Vx3Z+hgeab7r71bGJnwcyEEscJpNVwYe1FSINM18w8XJMm7Q==} + /postcss-gap-properties/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-V5OuQGw4lBumPlwHWk/PRfMKjaq/LTGR4WDTemIMCaMevArVfCCA9wBJiL1VjDAd+rzuCIlkRoRvDsSiAaZ4Fg==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 + postcss: ^8.4 dependencies: - '@starbeam/core-utils': 0.8.9 - '@starbeam/debug': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/js': 0.8.9 - '@starbeam/modifier': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/timeline': 0.8.9 - '@starbeam/universal': 0.8.9 - '@starbeam/use-strict-lifecycle': 0.8.9_biqbaboplfbrettd7655fr4n2y - '@starbeam/verify': 0.8.9 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + postcss: 8.4.21 + dev: true - /@starbeam/shared/1.3.7: - resolution: {integrity: sha512-wYAcGJzK7arrP+jsN1cg75PNW28HoEgwk6JLNGEJptR/gKyxVU64s0g7o5wfQf26E7oNsJoJEewdH54heeV54Q==} + /postcss-html/1.5.0: + resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.1 + js-tokens: 8.0.1 + postcss: 8.4.21 + postcss-safe-parser: 6.0.0_postcss@8.4.21 + dev: true - /@starbeam/timeline/0.8.9: - resolution: {integrity: sha512-AiwOrCs7ooVj2664E27AZJYZyV1s3n7Z7vCsfUnbXA8AvLcMOk1fODbDclziGoJyTf45cKk5oShEHSOWdcZzLg==} + /postcss-image-set-function/5.0.2_postcss@8.4.21: + resolution: {integrity: sha512-Sszjwo0ubETX0Fi5MvpYzsONwrsjeabjMoc5YqHvURFItXgIu3HdCjcVuVKGMPGzKRhgaknmdM5uVWInWPJmeg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@starbeam/core-utils': 0.8.9 - '@starbeam/debug': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/verify': 0.8.9 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true - /@starbeam/universal/0.8.9: - resolution: {integrity: sha512-/eS2h9o2zyCbSt8tPqmrv1QYDOmJB/TYw42tFZ27ozap17gsv7bbr6/elgP4Hnbqr8/M8MocoNJof+KiEsOfWg==} + /postcss-import-resolver/2.0.0: + resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} dependencies: - '@starbeam/core-utils': 0.8.9 - '@starbeam/debug': 0.8.9 - '@starbeam/interfaces': 0.8.9 - '@starbeam/shared': 1.3.7 - '@starbeam/timeline': 0.8.9 - '@starbeam/verify': 0.8.9 + enhanced-resolve: 4.5.0 + dev: true - /@starbeam/use-strict-lifecycle/0.8.9_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-tp/wCe2jNyAIL90EowHLU9/xBzrd2tP+gB8Nc0YwQE0hoeu305S9oTkkfqgE/xmTu3CCSBt4XApW6AqcZhp7rA==} + /postcss-import/14.1.0_postcss@8.4.21: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} peerDependencies: - react: ^18.2.0 || 18 - react-dom: ^18.2.0 || 18 + postcss: ^8.0.0 dependencies: - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true - /@starbeam/verify/0.8.9: - resolution: {integrity: sha512-woCfiFV+oOUKdRj4PO583MK+FYFuGLMz4ZJvPNCQJ9iHPKm3476AzM+P0nQ7txAGTH4cBpHTVZOLjF7e3i9sHQ==} + /postcss-initial/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} + peerDependencies: + postcss: ^8.0.0 dependencies: - '@starbeam/core-utils': 0.8.9 + postcss: 8.4.21 + dev: true - /@stitches/core/1.2.8: - resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==} + /postcss-js/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 dev: true - /@swc/core-darwin-arm64/1.3.19: - resolution: {integrity: sha512-6xLtmXzS4nNWGQkajbiAjGXspUJfxS2IWoGQ16J9nfOFdttKyoIG5o5+mxUfKeg5bXw9cI+r675kN/irx3z7MQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + /postcss-lab-function/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-iZApRTNcpc71uTn7PkzjHtj5cmuZpvu6okX4jHnM5OFi2fG97sodjxkq6SpL65xhW0NviQrAMSX97ntyGVRV0w==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/color-helpers': 1.0.0 + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - optional: true - /@swc/core-darwin-x64/1.3.19: - resolution: {integrity: sha512-qCDQcngYBeWrsNS1kcBslRD0dahKcYKaUUWRC9yHpRcs3SRvnSpJyWQR4y9RCdO9YNmixJ9+5+zPD9qcgL7jBw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true + /postcss-load-config/4.0.1_aesdjsunmf4wiehhujt67my7tu: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.21 + ts-node: 10.9.1_p52dwig7yrxcbqaynypgzvbyfm + yaml: 2.2.1 dev: true - optional: true - /@swc/core-linux-arm-gnueabihf/1.3.19: - resolution: {integrity: sha512-ufbKW6Lhii1+kVCXnsHgqYIpRvXhPjdhMudfP4KKVgJtT6TsdEIr+KRAQIBHLjRUsTKA2DLsGEpu9jfjwFiNEg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true + /postcss-loader/6.2.1_6jdsrmfenkuhhw3gx4zvjlznce: + resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + dependencies: + cosmiconfig: 7.1.0 + klona: 2.0.6 + postcss: 8.4.21 + semver: 7.3.8 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - optional: true - /@swc/core-linux-arm64-gnu/1.3.19: - resolution: {integrity: sha512-HHhqLRZv9Ss8orJrlEP4XRcLuqLDwFtGgbtHU8kyWBmQEtK42uT18Pf5RJBo5sPJHY8m5EO8C8y3hIbGmKtLyg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true + /postcss-logical/6.1.0_postcss@8.4.21: + resolution: {integrity: sha512-qb1+LpClhYjxac8SfOcWotnY3unKZesDqIOm+jnGt8rTl7xaIWpE2bPGZHxflOip1E/4ETo79qlJyRL3yrHn1g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - optional: true - /@swc/core-linux-arm64-musl/1.3.19: - resolution: {integrity: sha512-vipnF3C6T1368uHQqz8RpdszWxxGh0X8VBK3TdTOSWvI/duNZtZXEOZlB2Nh9w+u09umVw0MsJhvg86Aon39mA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true + /postcss-media-minmax/5.0.0_postcss@8.4.21: + resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.21 dev: true - optional: true - /@swc/core-linux-x64-gnu/1.3.19: - resolution: {integrity: sha512-dUbq8mnIqBhU7OppfY3ncOvl26691WFGxd97QtnnlfMZrKnaofKFMIxE9sTHOLSbBo16AylnEMiwa45w2UWDEg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true + /postcss-media-query-parser/0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - optional: true - /@swc/core-linux-x64-musl/1.3.19: - resolution: {integrity: sha512-RiVZrlkNGcj9jZyjF7YFOW3fj9fWPC25AYkknLpWxAmLQcp1piAWj+aSixmMWUC4QJau78VZzcm+kRgIOECALw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true + /postcss-merge-longhand/5.1.7_postcss@8.4.21: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1_postcss@8.4.21 dev: true - optional: true - /@swc/core-win32-arm64-msvc/1.3.19: - resolution: {integrity: sha512-r2U6GC+go2iiLx5JBZIJswYFiMv0yOsm+pgE1srVvAc8dP02320t9yh0Uj4Sr2hDipTWJ33Y5PMZwEsZSfBVbQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true + /postcss-merge-rules/5.1.4_postcss@8.4.21: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - optional: true - /@swc/core-win32-ia32-msvc/1.3.19: - resolution: {integrity: sha512-SPpESDa4vr0PRvUiqXSi8oZSTmkDOGrZ/pSiLD7ISgjsQ5RQMbPkuEK0ztWljim87q2fO0bGVVhyaVYxdOVS1A==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true + /postcss-minify-font-values/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - optional: true - /@swc/core-win32-x64-msvc/1.3.19: - resolution: {integrity: sha512-0X5HqFC1wQlheOQDZeF6KNOSURZKkGISNK3aTSmTq9g7dDJ/kTcVjsdKbu2rK4ibCnlC9IS0cLK9FpROnsVPwA==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true + /postcss-minify-gradients/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - optional: true - /@swc/core/1.3.19: - resolution: {integrity: sha512-KiXUv2vpmOaGhoLCN9Rw7Crsfq1YmOR2ZbajiqNAh/iu0d3CKn5JZhLRs6S7nCk78cwFFac2obQfTWPePLUe/g==} - engines: {node: '>=10'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.19 - '@swc/core-darwin-x64': 1.3.19 - '@swc/core-linux-arm-gnueabihf': 1.3.19 - '@swc/core-linux-arm64-gnu': 1.3.19 - '@swc/core-linux-arm64-musl': 1.3.19 - '@swc/core-linux-x64-gnu': 1.3.19 - '@swc/core-linux-x64-musl': 1.3.19 - '@swc/core-win32-arm64-msvc': 1.3.19 - '@swc/core-win32-ia32-msvc': 1.3.19 - '@swc/core-win32-x64-msvc': 1.3.19 + /postcss-minify-params/5.1.4_postcss@8.4.21: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@tuzig/toml/3.0.0-browser: - resolution: {integrity: sha512-Xn8k62yJrTGleinKIIlasl7IuMWzt933qA0r/9qh8s7aoIzXkX6hQ31r0glpe7dy6ytKEEwua1TrT6ZCK5rmsg==} + /postcss-minify-selectors/5.2.1_postcss@8.4.21: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@types/chai-subset/1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + /postcss-mixins/9.0.4_postcss@8.4.21: + resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==} + engines: {node: '>=14.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: - '@types/chai': 4.3.4 + fast-glob: 3.2.12 + postcss: 8.4.21 + postcss-js: 4.0.1_postcss@8.4.21 + postcss-simple-vars: 7.0.1_postcss@8.4.21 + sugarss: 4.0.1_postcss@8.4.21 dev: true - /@types/chai/4.3.4: - resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + /postcss-modules-extract-imports/3.0.0_postcss@8.4.21: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.21 dev: true - /@types/diacritics/1.3.1: - resolution: {integrity: sha512-tAH+RY51Zbz7ZSzN7yxQBKEue78U6weZ1UUBNjFoitoLbJGFJCKI7KVHwGsnYo4s2xSFr9KGEkjst2FolpYqyA==} + /postcss-modules-local-by-default/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 dev: true - /@types/glob/8.0.0: - resolution: {integrity: sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==} + /postcss-modules-scope/3.0.0_postcss@8.4.21: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.11.17 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@types/hash-sum/1.0.0: - resolution: {integrity: sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==} + /postcss-modules-values/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 dev: true - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: false - - /@types/linkify-it/3.0.2: - resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + /postcss-modules/6.0.0_postcss@8.4.21: + resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-utils: 5.1.0_postcss@8.4.21 + lodash.camelcase: 4.3.0 + postcss: 8.4.21 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 + postcss-modules-scope: 3.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 + string-hash: 1.1.3 dev: true - /@types/markdown-it/12.2.3: - resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + /postcss-nested-ancestors/3.0.0_postcss@8.4.21: + resolution: {integrity: sha512-6U/LLSSaEDWIaBfi7/1PZuRkGXXllndiit2BTFu6u5i3QxAzBjxMKbPDyLCg/DtzhON0rKnfvGQ+UEd7se2Pnw==} + engines: {node: '>=12'} + peerDependencies: + postcss: ^8.0.0 dependencies: - '@types/linkify-it': 3.0.2 - '@types/mdurl': 1.0.2 + escape-string-regexp: 4.0.0 + postcss: 8.4.21 + postcss-resolve-nested-selector: 0.1.1 dev: true - /@types/mdurl/1.0.2: - resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + /postcss-nested/6.0.1_postcss@8.4.21: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@types/minimatch/5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + /postcss-nesting/10.2.0_postcss@8.4.21: + resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@types/node/18.11.17: - resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} + /postcss-nesting/11.2.1_postcss@8.4.21: + resolution: {integrity: sha512-E6Jq74Jo/PbRAtZioON54NPhUNJYxVWhwxbweYl1vAoBYuGlDIts5yhtKiZFLvkvwT73e/9nFrW3oMqAtgG+GQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@types/prop-types/15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + /postcss-normalize-charset/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 dev: true - /@types/react-dom/18.0.9: - resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} + /postcss-normalize-display-values/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/react': 18.0.26 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@types/react/18.0.26: - resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} + /postcss-normalize-positions/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@types/scheduler/0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@types/shelljs/0.8.11: - resolution: {integrity: sha512-x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==} + /postcss-normalize-string/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/glob': 8.0.0 - '@types/node': 18.11.17 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@types/unist/2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@types/web-bluetooth/0.0.16: - resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + /postcss-normalize-unicode/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@typescript/twoslash/3.2.1: - resolution: {integrity: sha512-tS4gLwOe1WCDspqBXhQCb2ESUqzEd1tOkmKpiZ1O+W1x+9l+9njETuXFkLErtH9is/uD1GSvClDjk/tEOJktjQ==} + /postcss-normalize-url/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@typescript/vfs': 1.4.0 - debug: 4.3.4 - lz-string: 1.4.4 - transitivePeerDependencies: - - supports-color + normalize-url: 6.1.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@typescript/vfs/1.3.4: - resolution: {integrity: sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ==} + /postcss-normalize-whitespace/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@typescript/vfs/1.4.0: - resolution: {integrity: sha512-Pood7yv5YWMIX+yCHo176OnF8WUlKGImFG7XlsuH14Zb1YN5+dYD3uUtS7lqZtsH7tAveNUi2NzdpQCN0yRbaw==} + /postcss-opacity-percentage/1.1.3_postcss@8.4.21: + resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + postcss: 8.4.21 dev: true - /@vitejs/plugin-vue/4.0.0_vite@4.0.3+vue@3.2.45: - resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} - engines: {node: ^14.18.0 || >=16.0.0} + /postcss-ordered-values/5.1.3_postcss@8.4.21: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - vite: ^4.0.0 - vue: ^3.2.25 + postcss: ^8.2.15 dependencies: - vite: 4.0.3_sass@1.57.1 - vue: 3.2.45 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@vue/compiler-core/3.2.45: - resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==} + /postcss-overflow-shorthand/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-HQZ0qi/9iSYHW4w3ogNqVNr2J49DHJAl7r8O2p0Meip38jsdnRPgiDW7r/LlLrrMBMe3KHkvNtAV2UmRVxzLIg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@babel/parser': 7.20.3 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - source-map: 0.6.1 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@vue/compiler-dom/3.2.45: - resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==} + /postcss-page-break/3.0.4_postcss@8.4.21: + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + peerDependencies: + postcss: ^8 dependencies: - '@vue/compiler-core': 3.2.45 - '@vue/shared': 3.2.45 + postcss: 8.4.21 dev: true - /@vue/compiler-sfc/3.2.45: - resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==} + /postcss-place/8.0.1_postcss@8.4.21: + resolution: {integrity: sha512-Ow2LedN8sL4pq8ubukO77phSVt4QyCm35ZGCYXKvRFayAwcpgB0sjNJglDoTuRdUL32q/ZC1VkPBo0AOEr4Uiw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@babel/parser': 7.20.3 - '@vue/compiler-core': 3.2.45 - '@vue/compiler-dom': 3.2.45 - '@vue/compiler-ssr': 3.2.45 - '@vue/reactivity-transform': 3.2.45 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - magic-string: 0.25.9 - postcss: 8.4.20 - source-map: 0.6.1 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@vue/compiler-ssr/3.2.45: - resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==} + /postcss-plugin-context/2.0.0: + resolution: {integrity: sha512-siGw6+r6SgqDlRq6JIuT7WJERexXtz5ejRzAaLFI/IlsZy2TwthtvvjdKDXqoAiVEExh/SLBX+jwJannw3nODQ==} dependencies: - '@vue/compiler-dom': 3.2.45 - '@vue/shared': 3.2.45 + postcss: 5.2.18 dev: true - /@vue/devtools-api/6.4.5: - resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} + /postcss-prefix-selector/1.16.0_postcss@8.4.21: + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 8.4.21 dev: true - /@vue/reactivity-transform/3.2.45: - resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} + /postcss-preset-env/8.0.1_postcss@8.4.21: + resolution: {integrity: sha512-IUbymw0JlUbyVG+I85963PNWgPp3KhnFa1sxU7M/2dGthxV8e297P0VV5W9XcyypoH4hirH2fp1c6fmqh6YnSg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@babel/parser': 7.20.3 - '@vue/compiler-core': 3.2.45 - '@vue/shared': 3.2.45 - estree-walker: 2.0.2 - magic-string: 0.25.9 + '@csstools/postcss-cascade-layers': 3.0.1_postcss@8.4.21 + '@csstools/postcss-color-function': 2.1.0_postcss@8.4.21 + '@csstools/postcss-font-format-keywords': 2.0.2_postcss@8.4.21 + '@csstools/postcss-hwb-function': 2.1.1_postcss@8.4.21 + '@csstools/postcss-ic-unit': 2.0.2_postcss@8.4.21 + '@csstools/postcss-is-pseudo-class': 3.1.1_postcss@8.4.21 + '@csstools/postcss-logical-float-and-clear': 1.0.1_postcss@8.4.21 + '@csstools/postcss-logical-resize': 1.0.1_postcss@8.4.21 + '@csstools/postcss-logical-viewport-units': 1.0.2_postcss@8.4.21 + '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.1_postcss@8.4.21 + '@csstools/postcss-nested-calc': 2.0.2_postcss@8.4.21 + '@csstools/postcss-normalize-display-values': 2.0.1_postcss@8.4.21 + '@csstools/postcss-oklab-function': 2.1.0_postcss@8.4.21 + '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 + '@csstools/postcss-scope-pseudo-class': 2.0.2_postcss@8.4.21 + '@csstools/postcss-stepped-value-functions': 2.1.0_postcss@8.4.21 + '@csstools/postcss-text-decoration-shorthand': 2.2.1_postcss@8.4.21 + '@csstools/postcss-trigonometric-functions': 2.0.1_postcss@8.4.21 + '@csstools/postcss-unset-value': 2.0.1_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.21 + browserslist: 4.21.5 + css-blank-pseudo: 5.0.2_postcss@8.4.21 + css-has-pseudo: 5.0.2_postcss@8.4.21 + css-prefers-color-scheme: 8.0.2_postcss@8.4.21 + cssdb: 7.4.1 + postcss: 8.4.21 + postcss-attribute-case-insensitive: 6.0.2_postcss@8.4.21 + postcss-clamp: 4.1.0_postcss@8.4.21 + postcss-color-functional-notation: 5.0.2_postcss@8.4.21 + postcss-color-hex-alpha: 9.0.2_postcss@8.4.21 + postcss-color-rebeccapurple: 8.0.2_postcss@8.4.21 + postcss-custom-media: 9.1.2_postcss@8.4.21 + postcss-custom-properties: 13.1.4_postcss@8.4.21 + postcss-custom-selectors: 7.1.2_postcss@8.4.21 + postcss-dir-pseudo-class: 7.0.2_postcss@8.4.21 + postcss-double-position-gradients: 4.0.2_postcss@8.4.21 + postcss-focus-visible: 8.0.2_postcss@8.4.21 + postcss-focus-within: 7.0.2_postcss@8.4.21 + postcss-font-variant: 5.0.0_postcss@8.4.21 + postcss-gap-properties: 4.0.1_postcss@8.4.21 + postcss-image-set-function: 5.0.2_postcss@8.4.21 + postcss-initial: 4.0.1_postcss@8.4.21 + postcss-lab-function: 5.1.0_postcss@8.4.21 + postcss-logical: 6.1.0_postcss@8.4.21 + postcss-media-minmax: 5.0.0_postcss@8.4.21 + postcss-nesting: 11.2.1_postcss@8.4.21 + postcss-opacity-percentage: 1.1.3_postcss@8.4.21 + postcss-overflow-shorthand: 4.0.1_postcss@8.4.21 + postcss-page-break: 3.0.4_postcss@8.4.21 + postcss-place: 8.0.1_postcss@8.4.21 + postcss-pseudo-class-any-link: 8.0.2_postcss@8.4.21 + postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.21 + postcss-selector-not: 7.0.1_postcss@8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@vue/reactivity/3.2.45: - resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} + /postcss-property-lookup/3.0.0_postcss@8.4.21: + resolution: {integrity: sha512-Rkl/LttzMkhWCpAbqB5jZaVin1wVlHClit6bU8Wbd8AN1uBevyEfJGQZIsyqZc+OEEG1dZPnCJnvNuUrCpMB7w==} + engines: {node: '>= 10'} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@vue/shared': 3.2.45 + postcss: 8.4.21 + tcomb: 3.2.29 dev: true - /@vue/runtime-core/3.2.45: - resolution: {integrity: sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==} + /postcss-pseudo-class-any-link/8.0.2_postcss@8.4.21: + resolution: {integrity: sha512-FYTIuRE07jZ2CW8POvctRgArQJ43yxhr5vLmImdKUvjFCkR09kh8pIdlCwdx/jbFm7MiW4QP58L4oOUv3grQYA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@vue/reactivity': 3.2.45 - '@vue/shared': 3.2.45 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /@vue/runtime-dom/3.2.45: - resolution: {integrity: sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==} + /postcss-reduce-initial/5.1.2_postcss@8.4.21: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@vue/runtime-core': 3.2.45 - '@vue/shared': 3.2.45 - csstype: 2.6.21 + browserslist: 4.21.5 + caniuse-api: 3.0.0 + postcss: 8.4.21 dev: true - /@vue/server-renderer/3.2.45_vue@3.2.45: - resolution: {integrity: sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==} + /postcss-reduce-transforms/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - vue: 3.2.45 + postcss: ^8.2.15 dependencies: - '@vue/compiler-ssr': 3.2.45 - '@vue/shared': 3.2.45 - vue: 3.2.45 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 dev: true - /@vue/shared/3.2.45: - resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} + /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: 8.4.21 dev: true - /@vueuse/core/9.8.2_vue@3.2.45: - resolution: {integrity: sha512-aWiCmcYIpPt7xjuqYiceODEMHchDYthrJ4AqI+FXPZrR23PZOqdiktbUVyQl2kGlR3H4i9UJ/uimQrwhz9UouQ==} + /postcss-reporter/7.0.5_postcss@8.4.21: + resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==} + engines: {node: '>=10'} + peerDependencies: + postcss: ^8.1.0 dependencies: - '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.8.2 - '@vueuse/shared': 9.8.2_vue@3.2.45 - vue-demi: 0.13.11_vue@3.2.45 - transitivePeerDependencies: - - '@vue/composition-api' - - vue + picocolors: 1.0.0 + postcss: 8.4.21 + thenby: 1.3.4 dev: true - /@vueuse/metadata/9.8.2: - resolution: {integrity: sha512-N4E/BKS+9VsUeD4WLVRU1J2kCOLh+iikBcMtipFcTyL204132vDYHs27zLAVabJYGnhC0dIVGdhg9pbOZiY2TQ==} + /postcss-resolve-nested-selector/0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /@vueuse/shared/9.8.2_vue@3.2.45: - resolution: {integrity: sha512-ACjrPQzowd5dnabNJt9EoGVobco9/ENiA5qP53vjiuxndlJYuc/UegwhXC7KdQbPX4F45a50+45K3g1wNqOzmA==} + /postcss-safe-parser/6.0.0_postcss@8.4.21: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 dependencies: - vue-demi: 0.13.11_vue@3.2.45 - transitivePeerDependencies: - - '@vue/composition-api' - - vue + postcss: 8.4.21 dev: true - /acorn-walk/8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} + /postcss-selector-not/7.0.1_postcss@8.4.21: + resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /acorn/8.8.1: - resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} - engines: {node: '>=0.4.0'} - hasBin: true + /postcss-selector-parser/6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 dev: true - /algoliasearch/4.14.2: - resolution: {integrity: sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==} + /postcss-simple-vars/7.0.1_postcss@8.4.21: + resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} + engines: {node: '>=14.0'} + peerDependencies: + postcss: ^8.2.1 dependencies: - '@algolia/cache-browser-local-storage': 4.14.2 - '@algolia/cache-common': 4.14.2 - '@algolia/cache-in-memory': 4.14.2 - '@algolia/client-account': 4.14.2 - '@algolia/client-analytics': 4.14.2 - '@algolia/client-common': 4.14.2 - '@algolia/client-personalization': 4.14.2 - '@algolia/client-search': 4.14.2 - '@algolia/logger-common': 4.14.2 - '@algolia/logger-console': 4.14.2 - '@algolia/requester-browser-xhr': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/requester-node-http': 4.14.2 - '@algolia/transporter': 4.14.2 + postcss: 8.4.21 dev: true - /ansi-regex/2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} + /postcss-svgo/5.1.0_postcss@8.4.21: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 dev: true - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + /postcss-unique-selectors/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /ansi-styles/2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + /postcss/5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} dependencies: - color-convert: 1.9.3 + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 dev: true - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} dependencies: - color-convert: 2.0.1 - dev: true - - /ansicolor/1.1.100: - resolution: {integrity: sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==} - - /any-shell-escape/0.1.1: - resolution: {integrity: sha512-36j4l5HVkboyRhIWgtMh1I9i8LTdFqVwDEHy1cp+QioJyKgAUG40X0W8s7jakWRta/Sjvm8mUG1fU6Tj8mWagQ==} - dev: false + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 - /anymatch/3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + /preact-render-to-string/5.2.6_preact@10.11.3: + resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} + peerDependencies: + preact: '>=10' dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 + preact: 10.11.3 + pretty-format: 3.8.0 dev: true - /argparse/2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /preact/10.11.3: + resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} dev: true - /array-back/1.0.4: - resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} - engines: {node: '>=0.12.0'} - dependencies: - typical: 2.6.1 + /preact/10.13.1: + resolution: {integrity: sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ==} dev: true - /array-back/4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} + /prelude-ls/1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} dev: true - /array-back/5.0.0: - resolution: {integrity: sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==} - engines: {node: '>=10'} + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true - /array-back/6.2.2: - resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} - engines: {node: '>=12.17'} + /prepend-http/2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} dev: true - /as-table/1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - dependencies: - printable-characters: 1.0.42 - - /assertion-error/1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + /prettier/2.8.4: + resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} + engines: {node: '>=10.13.0'} + hasBin: true dev: true - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /balloon-css/1.2.0: - resolution: {integrity: sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==} - dev: false - - /base64-js/1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - /binary-extensions/2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + /pretty-bytes/5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} dev: true - /binaryextensions/2.3.0: - resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} - engines: {node: '>=0.8'} + /pretty-format/27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 dev: true - /bindings/1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + /pretty-format/28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - file-uri-to-path: 1.0.0 + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.2.0 dev: true - /bluebird/3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + /pretty-format/3.8.0: + resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} dev: true - /body-scroll-lock/4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} + /pretty-hrtime/1.0.3: + resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} + engines: {node: '>= 0.8'} dev: true - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + /printable-characters/1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + /process-on-spawn/1.0.0: + resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + engines: {node: '>=8'} dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + fromentries: 1.3.2 + dev: true - /brace-expansion/2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + /progress-stream/2.0.0: + resolution: {integrity: sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==} dependencies: - balanced-match: 1.0.2 + speedometer: 1.0.0 + through2: 2.0.5 dev: false - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 + /proto-list/1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + dev: true - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + /proxy-addr/2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: - caniuse-lite: 1.0.30001434 - electron-to-chromium: 1.4.284 - node-releases: 2.0.6 - update-browserslist-db: 1.0.10_browserslist@4.21.4 + forwarded: 0.2.0 + ipaddr.js: 1.9.1 dev: true - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + /proxy-from-env/1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} dev: true - /buffer/6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 + /proxy-from-env/1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true - /cache-point/2.0.0: - resolution: {integrity: sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==} - engines: {node: '>=8'} - dependencies: - array-back: 4.0.2 - fs-then-native: 2.0.0 - mkdirp2: 1.0.5 + /prr/1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} dev: true - /caniuse-lite/1.0.30001434: - resolution: {integrity: sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==} + /pseudomap/1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true - /catharsis/0.9.0: - resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} - engines: {node: '>= 10'} - dependencies: - lodash: 4.17.21 + /psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /chai/4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} - engines: {node: '>=4'} + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: - assertion-error: 1.1.0 - check-error: 1.0.2 - deep-eql: 4.1.2 - get-func-name: 2.0.0 - loupe: 2.3.6 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true + end-of-stream: 1.4.4 + once: 1.4.0 - /chalk/1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} + /pumpify/2.0.1: + resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 + duplexify: 4.1.2 + inherits: 2.0.4 + pump: 3.0.0 + dev: false + + /punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} dev: true - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + /purgecss/5.0.0: + resolution: {integrity: sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==} + hasBin: true dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + commander: 9.5.0 + glob: 8.1.0 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /check-error/1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /qs/6.10.4: + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 dev: true - /chokidar/3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + /qs/6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 + side-channel: 1.0.4 dev: true - /clean-set/1.1.2: - resolution: {integrity: sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==} + /query-string/5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 dev: true - /cliui/8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 + /querystringify/2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: true - /code-hike-classer-vue3/0.1.6_vue@3.2.45: - resolution: {integrity: sha512-/EjcPUQR3E40lWHN1qd0z3dvm6kWnro0mbpGUU/suHO05EX4DPFILfx969BGaW5XwxV3PRrmyaeLcnIqKATEUA==} - requiresBuild: true - peerDependencies: - vue: ^3.2.0 - peerDependenciesMeta: - vue: - optional: true + /queue-cb/1.1.7: + resolution: {integrity: sha512-2V9oU2OoW2MED0CM2hKD/FsDDSQBZIeb6fbUw+B4v58diPuVsdLQqpBR3hGB7BzgTUT1UQWCZLQJSwINaSyiDg==} + engines: {node: '>=0.8'} dependencies: - vue: 3.2.45 + fifo: 2.4.1 + dev: false + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} dev: true - /codesandbox-import-util-types/1.3.7: - resolution: {integrity: sha512-8oP3emA0jyEuVOM2FBTpo/AF4C9vxHn14saVWZf2CQ/QhMtonBlNPE98ElrHkW+PFNXiO7Ad52Qr73b03n8qlA==} + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} dev: true - /codesandbox-import-utils/1.3.8: - resolution: {integrity: sha512-S12zO49QEkldoYLGh5KbkHRLOacg5BCNTue2vlyZXSpuK3oQdArwC/G1hCLKryV460bW3Ecn5xdkpfkUcFeOwQ==} + /randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: - codesandbox-import-util-types: 1.3.7 - istextorbinary: 2.2.1 - lz-string: 1.4.4 + safe-buffer: 5.2.1 dev: true - /collect-all/1.0.4: - resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} - engines: {node: '>=0.10.0'} - dependencies: - stream-connect: 1.0.2 - stream-via: 1.0.4 + /range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} dev: true - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + /raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} dependencies: - color-name: 1.1.3 + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 dev: true - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + /rc9/2.0.1: + resolution: {integrity: sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA==} dependencies: - color-name: 1.1.4 + defu: 6.1.2 + destr: 1.2.2 + flat: 5.0.2 dev: true - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true + /react-dom/18.2.0_react@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 || 18 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /commander/7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + /react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true - /commander/9.4.1: - resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} - engines: {node: ^12.20.0 || >=14} - dev: false - - /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /react/18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 - /convert-source-map/1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 dev: true - /crelt/1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 dev: true - /cssesc/3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 dev: true - /csstype/2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - dev: true + /readable-stream/2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 - /csstype/3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: true + /readable-stream/3.6.1: + resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 - /d3-array/3.2.0: - resolution: {integrity: sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==} - engines: {node: '>=12'} + /readable-web-to-node-stream/3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} dependencies: - internmap: 2.0.3 + readable-stream: 3.6.1 dev: true - /d3-axis/3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 dev: true - /d3-brush/3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + /rechoir/0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.1 + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1_d3-selection@3.0.0 + indent-string: 4.0.0 + strip-indent: 3.0.0 dev: true - /d3-chord/3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} dependencies: - d3-path: 3.0.1 + regenerate: 1.4.2 dev: true - /d3-color/3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} + /regenerate/1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /d3-contour/4.0.0: - resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==} - engines: {node: '>=12'} + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + + /regenerator-transform/0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - d3-array: 3.2.0 + '@babel/runtime': 7.21.0 dev: true - /d3-delaunay/6.0.2: - resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==} - engines: {node: '>=12'} + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} dependencies: - delaunator: 5.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 dev: true - /d3-dispatch/3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} dev: true - /d3-drag/3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + /regexpu-core/5.3.1: + resolution: {integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==} + engines: {node: '>=4'} dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 dev: true - /d3-dsv/3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 + jsesc: 0.5.0 dev: true - /d3-ease/3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} + /release-zalgo/1.0.0: + resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} + engines: {node: '>=4'} + dependencies: + es6-error: 4.1.1 dev: true - /d3-fetch/3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + /remark-shiki-twoslash/3.1.1_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-9TKX1mlXT/TGASQVk6+Xt0puKiyWZvYQ5LKcpSAocxhKMbJ19M0a6VCrDYw0IK9w1tiqofDihMXQ6wETnA7awQ==} + peerDependencies: + typescript: '>3 || 5' dependencies: - d3-dsv: 3.0.1 + '@types/unist': 2.0.6 + '@typescript/twoslash': 3.2.1 + '@typescript/vfs': 1.3.4 + fenceparser: 1.1.1 + regenerator-runtime: 0.13.11 + shiki: 0.14.1 + shiki-twoslash: 3.1.1_gliwt7svxbpvcai2ottpa7qe6a + tslib: 2.5.0 + typescript: 5.1.0-dev.20230321 + unist-util-visit: 2.0.3 + transitivePeerDependencies: + - supports-color dev: true - /d3-force/3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} + /request-progress/3.0.0: + resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 + throttleit: 1.0.0 dev: true - /d3-format/3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} dev: true - /d3-geo/3.0.1: - resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==} - engines: {node: '>=12'} - dependencies: - d3-array: 3.2.0 + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} dev: true - /d3-hierarchy/3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} + /require-main-filename/2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true - /d3-interpolate/3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + /require_optional/1.0.1: + resolution: {integrity: sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==} dependencies: - d3-color: 3.1.0 - dev: true + resolve-from: 2.0.0 + semver: 5.7.1 + dev: false - /d3-path/3.0.1: - resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==} - engines: {node: '>=12'} + /requires-port/1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - /d3-polygon/3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} + /requizzle/0.2.4: + resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} + dependencies: + lodash: 4.17.21 dev: true - /d3-quadtree/3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} + /resolve-alpn/1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true - /d3-random/3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - dev: true + /resolve-from/2.0.0: + resolution: {integrity: sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==} + engines: {node: '>=0.10.0'} + dev: false - /d3-scale-chromatic/3.0.0: - resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} - engines: {node: '>=12'} - dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} dev: true - /d3-scale/4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} - dependencies: - d3-array: 3.2.0 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.0.0 - d3-time-format: 4.1.0 + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} dev: true - /d3-selection/3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} + /resolve.exports/1.1.0: + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} dev: true - /d3-shape/3.1.0: - resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==} - engines: {node: '>=12'} + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true dependencies: - d3-path: 3.0.1 - dev: true + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 - /d3-time-format/4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + /responselike/1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} dependencies: - d3-time: 3.0.0 + lowercase-keys: 1.0.1 dev: true - /d3-time/3.0.0: - resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==} - engines: {node: '>=12'} + /responselike/2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: - d3-array: 3.2.0 - dev: true - - /d3-timer/3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} + lowercase-keys: 2.0.0 dev: true - /d3-transition/3.0.1_d3-selection@3.0.0: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 dev: true - /d3-zoom/3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1_d3-selection@3.0.0 + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} dev: true - /d3/7.6.1: - resolution: {integrity: sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw==} - engines: {node: '>=12'} - dependencies: - d3-array: 3.2.0 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.0 - d3-delaunay: 6.0.2 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.0.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.0.1 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.0.0 - d3-selection: 3.0.0 - d3-shape: 3.1.0 - d3-time: 3.0.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1_d3-selection@3.0.0 - d3-zoom: 3.0.0 - dev: true - - /d3/7.8.0: - resolution: {integrity: sha512-a5rNemRadWkEfqnY5NsD4RdCP9vn8EIJ4I5Rl14U0uKH1SXqcNmk/h9aGaAF1O98lz6L9M0IeUcuPa9GUYbI5A==} - engines: {node: '>=12'} - dependencies: - d3-array: 3.2.0 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.0 - d3-delaunay: 6.0.2 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.0.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.0.1 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.0.0 - d3-selection: 3.0.0 - d3-shape: 3.1.0 - d3-time: 3.0.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1_d3-selection@3.0.0 - d3-zoom: 3.0.0 - dev: true - - /dagre-d3-es/7.0.6: - resolution: {integrity: sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==} - dependencies: - d3: 7.8.0 - lodash-es: 4.17.21 + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true - /data-uri-to-buffer/2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + /rimraf/2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false - /deasync/0.1.28: - resolution: {integrity: sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==} - engines: {node: '>=0.11.0'} - requiresBuild: true + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 + glob: 7.2.3 dev: true - /debug/4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + /rollup-plugin-visualizer/5.9.0: + resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} + engines: {node: '>=14'} + hasBin: true peerDependencies: - supports-color: '*' + rollup: 2.x || 3.x peerDependenciesMeta: - supports-color: + rollup: optional: true dependencies: - ms: 2.1.2 + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.1 dev: true - /deep-eql/4.1.2: - resolution: {integrity: sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==} - engines: {node: '>=6'} + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rollup/3.18.0: + resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: - type-detect: 4.0.8 + queue-microtask: 1.2.3 + + /rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 2.5.0 dev: true - /define-lazy-prop/2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + /rxjs/7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + dependencies: + tslib: 2.5.0 dev: true - /delaunator/5.0.0: - resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - robust-predicates: 3.0.1 + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 dev: true - /diacritics/1.3.0: - resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} + /safe-stable-stringify/2.4.1: + resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==} + engines: {node: '>=10'} dev: false - /docs-snippet/1.0.4: - resolution: {integrity: sha512-iOFVo8R6qQ9f/ZkUAFCv+CDp9TsJM93wGhibQ3pvsAT7jSREPE7dKQfk63z3DI9mGMd1ZQsslf1mxIPfMGQCPg==} + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sandpack-vue3/3.0.6-beta.1_dvkywoatelngj7gqkbpsxg5bmi: + resolution: {integrity: sha512-kug+npTDMvP06J6kSpIEC/VlWjy3GF6EebG7A+cQnWFy5FTGpWEFNDWlQyA5gCOKlctlrhi0kRGNvwwdjAq9RQ==} + engines: {node: '>=16', npm: '>=7'} + peerDependencies: + vue: ^3.2.0 + peerDependenciesMeta: + vue: + optional: true dependencies: - '@babel/core': 7.20.2 - '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.20.2 - '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.20.2 - '@babel/traverse': 7.20.1 - '@swc/core': 1.3.19 - prettier: 2.8.1 + '@codemirror/autocomplete': 6.4.2_lc2v3dpzp2l5pdzwtgfaudkm3e + '@codemirror/commands': 6.2.2 + '@codemirror/lang-css': 6.1.1_i3aqn63zftbgivbr4riltn5mqe + '@codemirror/lang-html': 6.4.2 + '@codemirror/lang-javascript': 6.1.4 + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.9.2 + '@codesandbox/sandpack-client': 2.1.0 + '@lezer/highlight': 1.1.3 + '@stitches/core': 1.2.8 + ansi-to-vue3: 0.1.1_vue@3.2.47 + clean-set: 1.1.2 + code-hike-classer-vue3: 0.1.6_vue@3.2.47 + dequal: 2.0.3 + lz-string: 1.5.0 + vue: 3.2.47 transitivePeerDependencies: - - supports-color + - '@lezer/common' dev: true - /dompurify/2.4.1: - resolution: {integrity: sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==} + /sass-loader/12.6.0_sass@1.58.3+webpack@5.75.0: + resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + dependencies: + klona: 2.0.6 + neo-async: 2.6.2 + sass: 1.58.3 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - /editions/1.3.4: - resolution: {integrity: sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==} - engines: {node: '>=0.8'} + /sass/1.58.3: + resolution: {integrity: sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.2.4 + source-map-js: 1.0.2 dev: true - /electron-to-chromium/1.4.284: - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + /sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: true - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 dev: true - /entities/2.1.0: - resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} - dev: true + /scheduler/0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 - /entities/3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} + /schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 dev: true - /esbuild/0.16.10: - resolution: {integrity: sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.16.10 - '@esbuild/android-arm64': 0.16.10 - '@esbuild/android-x64': 0.16.10 - '@esbuild/darwin-arm64': 0.16.10 - '@esbuild/darwin-x64': 0.16.10 - '@esbuild/freebsd-arm64': 0.16.10 - '@esbuild/freebsd-x64': 0.16.10 - '@esbuild/linux-arm': 0.16.10 - '@esbuild/linux-arm64': 0.16.10 - '@esbuild/linux-ia32': 0.16.10 - '@esbuild/linux-loong64': 0.16.10 - '@esbuild/linux-mips64el': 0.16.10 - '@esbuild/linux-ppc64': 0.16.10 - '@esbuild/linux-riscv64': 0.16.10 - '@esbuild/linux-s390x': 0.16.10 - '@esbuild/linux-x64': 0.16.10 - '@esbuild/netbsd-x64': 0.16.10 - '@esbuild/openbsd-x64': 0.16.10 - '@esbuild/sunos-x64': 0.16.10 - '@esbuild/win32-arm64': 0.16.10 - '@esbuild/win32-ia32': 0.16.10 - '@esbuild/win32-x64': 0.16.10 + /schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.12.0 + ajv-formats: 2.1.1_ajv@8.12.0 + ajv-keywords: 5.1.0_ajv@8.12.0 dev: true - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + /scule/1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} dev: true - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + /seek-bzip/1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + dependencies: + commander: 2.20.3 dev: true - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + /select-hose/2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + /selfsigned/2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} engines: {node: '>=10'} - dev: true - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: false - - /fastq/1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: - reusify: 1.0.4 - dev: false - - /fenceparser/1.1.1: - resolution: {integrity: sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA==} - engines: {node: '>=12'} + node-forge: 1.3.1 dev: true - /fenceparser/2.2.0: - resolution: {integrity: sha512-fdXOPciCALTWvooKxyRUmYERiw1L1mzqVsfpk5F9kGr3NoT/Sdwew4BqGctY6xZpUXiZ7dXXPb27Om2nmUmHMg==} + /semver-regex/2.0.0: + resolution: {integrity: sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==} + engines: {node: '>=6'} dev: true - /fflate/0.7.4: - resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + /semver-regex/4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} dev: true - /file-set/4.0.2: - resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} - engines: {node: '>=10'} + /semver-truncate/1.1.2: + resolution: {integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==} + engines: {node: '>=0.10.0'} dependencies: - array-back: 5.0.0 - glob: 7.2.3 - dev: true - - /file-uri-to-path/1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + semver: 5.7.1 dev: true - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /semver-truncate/2.0.0: + resolution: {integrity: sha512-Rh266MLDYNeML5h90ttdMwfXe1+Nc4LAWd9X1KdJe8pPHP4kFmvLZALtsMNHNdvTyQygbEC0D59sIz47DIaq8w==} engines: {node: '>=8'} dependencies: - to-regex-range: 5.0.1 - - /fs-then-native/2.0.0: - resolution: {integrity: sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==} - engines: {node: '>=4.0.0'} - dev: true - - /fs.realpath/1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + semver: 6.3.0 dev: true - optional: true - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true dev: true - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + /semver/7.3.4: + resolution: {integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 dev: true - /get-func-name/2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /send/0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color dev: true - /get-source/2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + /serialize-javascript/6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: - data-uri-to-buffer: 2.0.2 - source-map: 0.6.1 + randombytes: 2.1.0 + dev: true - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + /serve-index/1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} dependencies: - is-glob: 4.0.3 + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /serve-static/1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true - /glob/8.0.3: - resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.0 - once: 1.4.0 - dev: false + /set-blocking/2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + /setprototypeof/1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: true - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true - /has-ansi/2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + /shebang-command/1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} dependencies: - ansi-regex: 2.1.1 + shebang-regex: 1.0.0 dev: true - /has-flag/1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex/1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} dev: true - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + /shell-escape-tag/2.0.2: + resolution: {integrity: sha512-kqmtJG6VzTahZl8Y3384ldskA9rzoEMdXLoMEBAq9334/UDdmfWl3OtmrGJPlVcyXvcSy3poDKka57gMxskMPw==} dependencies: - function-bind: 1.1.1 + any-shell-escape: 0.1.1 + inspect-custom-symbol: 1.1.1 + just-flatten-it: 2.2.1 + just-zip-it: 2.3.1 + dev: false - /hash-sum/2.0.0: - resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - dev: true + /shelljs/0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 - /iconv-lite/0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + /shiki-processor/0.1.3_shiki@0.14.1: + resolution: {integrity: sha512-oZqVFKweklwt+fj6yUPb+ffrCpYYoJ4RYxNt7w1+aoHetHq5ZaN6oX6+4HrypOi0s/O6A2neBpn+Xf6bM4KfsQ==} + peerDependencies: + shiki: 0.x dependencies: - safer-buffer: 2.1.2 + shiki: 0.14.1 dev: true - /icss-utils/5.1.0_postcss@8.4.20: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} + /shiki-twoslash/3.1.1_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-b2j/2yjEjnj0Yav7purKB7uuSbYBf/EQWmu2f7d4G96NiM+Qmr3Tb3UeHY7faN/IEaLW6ip7aQa7MpZNlU5xkQ==} peerDependencies: - postcss: ^8.1.0 + typescript: '>3 || 5' dependencies: - postcss: 8.4.20 + '@typescript/twoslash': 3.2.1 + '@typescript/vfs': 1.3.4 + fenceparser: 1.1.1 + shiki: 0.14.1 + typescript: 5.1.0-dev.20230321 + transitivePeerDependencies: + - supports-color dev: true - /ieee754/1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - /immutable/4.1.0: - resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} + /shiki/0.14.1: + resolution: {integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==} + dependencies: + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 dev: true - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true - /inspect-custom-symbol/1.1.1: - resolution: {integrity: sha512-GOucsp9EcdlLdhPUyOTvQDnbFJtp2WBWZV1Jqe+mVnkJQBL3w96+fB84C+JL+EKXOspMdB0eMDQPDp5w9fkfZA==} - dev: false + /siginfo/2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true - /internmap/2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} + /sigmund/1.0.1: + resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==} dev: true - /interpret/1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: false + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /is-binary-path/2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + /sirv/2.0.2: + resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + engines: {node: '>= 10'} dependencies: - binary-extensions: 2.2.0 + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.1 + totalist: 3.0.0 dev: true - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - hasBin: true dev: true - /is-extglob/2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} dev: true - /is-glob/4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + /slash/5.0.0: + resolution: {integrity: sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==} + engines: {node: '>=14.16'} + dev: true - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} dependencies: - is-docker: 2.2.1 + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 dev: true - /istextorbinary/2.2.1: - resolution: {integrity: sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==} - engines: {node: '>=0.12'} + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: - binaryextensions: 2.3.0 - editions: 1.3.4 - textextensions: 2.6.0 + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 dev: true - /js-base64/2.6.4: - resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 dev: true - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js2xmlparser/4.0.2: - resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} + /sockjs/0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: - xmlcreate: 2.0.4 + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 dev: true - /jsdoc-api/8.0.0: - resolution: {integrity: sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==} - engines: {node: '>=12.17'} + /sort-keys-length/1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} dependencies: - array-back: 6.2.2 - cache-point: 2.0.0 - collect-all: 1.0.4 - file-set: 4.0.2 - fs-then-native: 2.0.0 - jsdoc: 4.0.0 - object-to-spawn-args: 2.0.1 - temp-path: 1.0.0 - walk-back: 5.1.0 + sort-keys: 1.1.2 dev: true - /jsdoc/4.0.0: - resolution: {integrity: sha512-tzTgkklbWKrlaQL2+e3NNgLcZu3NaK2vsHRx7tyHQ+H5jcB9Gx0txSd2eJWlMC/xU1+7LQu4s58Ry0RkuaEQVg==} - engines: {node: '>=12.0.0'} - hasBin: true + /sort-keys/1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} dependencies: - '@babel/parser': 7.20.3 - '@jsdoc/salty': 0.2.2 - '@types/markdown-it': 12.2.3 - bluebird: 3.7.2 - catharsis: 0.9.0 - escape-string-regexp: 2.0.0 - js2xmlparser: 4.0.2 - klaw: 3.0.0 - markdown-it: 12.3.2 - markdown-it-anchor: 8.6.5_2zb4u3vubltivolgu556vv4aom - marked: 4.2.3 - mkdirp: 1.0.4 - requizzle: 0.2.3 - strip-json-comments: 3.1.1 - underscore: 1.13.6 + is-plain-obj: 1.1.0 dev: true - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + /sort-keys/2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} - hasBin: true + dependencies: + is-plain-obj: 1.1.0 dev: true - /json5/2.2.1: - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} - engines: {node: '>=6'} - hasBin: true + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} - /jsonc-parser/3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + /source-map-loader/3.0.2_webpack@5.75.0: + resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + abab: 2.0.6 + iconv-lite: 0.6.3 + source-map-js: 1.0.2 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - /just-flatten-it/2.2.1: - resolution: {integrity: sha512-VwvlzikphspzZL38LiZpoBsFGQy6MnmXYekBeZA8lSNwgSC87zA3a93bCZKkDuOM+djMZhfjd3lXAZyxficKCg==} - dev: false - - /just-zip-it/2.3.1: - resolution: {integrity: sha512-h8Y3DAVTZRP3Weq7btWYfkYHQGhxiuKzfOO7Ec+x8XaDcBvbOsC2jIdezC6tEzbt+A4fTJTREnj3gF5DyMkFfw==} - dev: false - - /khroma/2.0.0: - resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + /source-map-resolve/0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 dev: true - /klaw/3.0.0: - resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} + /source-map-support/0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: - graceful-fs: 4.2.10 + buffer-from: 1.1.2 + source-map: 0.6.1 dev: true - /linkify-it/3.0.3: - resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} + /source-map-support/0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} dependencies: - uc.micro: 1.0.6 + buffer-from: 1.1.2 + source-map: 0.6.1 dev: true - /linkify-it/4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: - uc.micro: 1.0.6 + buffer-from: 1.1.2 + source-map: 0.6.1 dev: true - /local-pkg/0.4.2: - resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} - engines: {node: '>=14'} + /source-map/0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} dev: true - /lodash-es/4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: true + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - /lodash.isequal/4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} dev: true - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead - /loose-envify/1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + /spawn-wrap/2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} dependencies: - js-tokens: 4.0.0 + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + dev: true - /loupe/2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: - get-func-name: 2.0.0 + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 dev: true - /lz-string/1.4.4: - resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} - hasBin: true + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: true - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - sourcemap-codec: 1.4.8 + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 dev: true - /markdown-it-anchor/8.6.5_2zb4u3vubltivolgu556vv4aom: - resolution: {integrity: sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==} - peerDependencies: - '@types/markdown-it': '*' - markdown-it: '*' - dependencies: - '@types/markdown-it': 12.2.3 - markdown-it: 12.3.2 + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /markdown-it-emoji/2.0.2: - resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} + /spdy-transport/3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.1 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color dev: true - /markdown-it-shiki-twoslash/2.1.0: - resolution: {integrity: sha512-U5tSOfGrnRbQ5GI7bYJoJiN8EX5cI2hvvI1pzBYWqaoj1tlpvkpcSeIu7zbGvsFMMdDAtqf4lJYOJxSXRJqKMg==} + /spdy/4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} dependencies: - deasync: 0.1.28 - remark-shiki-twoslash: 3.1.0 + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color dev: true - /markdown-it-toc-done-right/4.2.0: - resolution: {integrity: sha512-UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==} + /speedometer/1.0.0: + resolution: {integrity: sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==} + dev: false + + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /markdown-it/12.3.2: - resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} + /sprintf-js/1.1.2: + resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} + dev: false + + /sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} hasBin: true dependencies: - argparse: 2.0.1 - entities: 2.1.0 - linkify-it: 3.0.3 - mdurl: 1.0.1 - uc.micro: 1.0.6 + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 dev: true - /markdown-it/13.0.1: - resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} - hasBin: true + /stable/0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /stack-base-iterator/0.1.7: + resolution: {integrity: sha512-WxRdQrTzR3xOXFbzLuiVx12+xsmCbIvFsvIHUWvbY0096nc2qtFL0I9MjCzP03aVlnuSq+Svo3GOo4LLUS5xIA==} + engines: {node: '>=0.8'} dependencies: - argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 + async-compat: 1.4.7 + fifo: 2.4.1 + inherits: 2.0.4 + just-extend: 6.2.0 + maximize-iterator: 2.6.6 + once: 1.4.0 + dev: false + + /stack-utils/2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 dev: true - /marked/4.2.3: - resolution: {integrity: sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==} - engines: {node: '>= 12'} - hasBin: true + /stackback/0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /mdurl/1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + /stacktracey/2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 + + /state-local/1.0.7: + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} dev: true - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: false + /statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true - /mermaid/9.3.0: - resolution: {integrity: sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==} - dependencies: - '@braintree/sanitize-url': 6.0.2 - d3: 7.6.1 - dagre-d3-es: 7.0.6 - dompurify: 2.4.1 - khroma: 2.0.0 - lodash-es: 4.17.21 - moment-mini: 2.29.4 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.1.3 - uuid: 9.0.0 + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} dev: true - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: false + /std-env/3.3.2: + resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} + dev: true - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + /stream-connect/1.0.2: + resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} + engines: {node: '>=0.10.0'} dependencies: - brace-expansion: 1.1.11 + array-back: 1.0.4 + dev: true - /minimatch/5.1.0: - resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 + /stream-shift/1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: false - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + /stream-via/1.0.4: + resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strict-event-emitter/0.4.6: + resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} + dev: true + + /strict-uri-encode/1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-hash/1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + dev: true + + /string-length/4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} - hasBin: true + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 dev: true - /mkdirp2/1.0.5: - resolution: {integrity: sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==} + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 dev: true - /mlly/1.0.0: - resolution: {integrity: sha512-QL108Hwt+u9bXdWgOI0dhzZfACovn5Aen4Xvc8Jasd9ouRH4NjnrXEiyP3nVvJo91zPlYjVRckta0Nt2zfoR6g==} + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: - acorn: 8.8.1 - pathe: 1.0.0 - pkg-types: 1.0.1 - ufo: 1.0.1 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 dev: true - /moment-mini/2.29.4: - resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==} + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 dev: true - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi/3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 dev: true - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true - /node-addon-api/1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} dev: true - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} dev: true - /non-layered-tidy-tree-layout/2.0.2: - resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + /strip-dirs/2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + dependencies: + is-natural-number: 4.0.1 dev: true - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + /strip-eof/1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} - - /object-to-spawn-args/2.0.1: - resolution: {integrity: sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==} - engines: {node: '>=8.0.0'} dev: true - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true - /open/8.4.0: - resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 + min-indent: 1.0.1 dev: true - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + /strip-json-comments/2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - /pathe/0.2.0: - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} dev: true - /pathe/0.3.9: - resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} dev: true - /pathe/1.0.0: - resolution: {integrity: sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==} + /strip-literal/1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + dependencies: + acorn: 8.8.2 dev: true - /pathval/1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + /strip-outer/1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 dev: true - /picocolors/0.2.1: - resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + /strip-outer/2.0.0: + resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch/2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - /pkg-types/1.0.1: - resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} + /strong-log-transformer/2.1.0: + resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} + engines: {node: '>=4'} + hasBin: true dependencies: - jsonc-parser: 3.2.0 - mlly: 1.0.0 - pathe: 1.0.0 + duplexer: 0.1.2 + minimist: 1.2.8 + through: 2.3.8 dev: true - /postcss-advanced-variables/3.0.1: - resolution: {integrity: sha512-JqVjfkmqPoazMobVeQYzbt7djcDGJfMlpwBd9abTqmzWR40tvIUMXpTU5w3riqz7h+wYPY7V6GF8BIXL/ybEfg==} - engines: {node: '>=6.0.0'} + /strtok3/7.0.0: + resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + engines: {node: '>=14.16'} dependencies: - '@csstools/sass-import-resolve': 1.0.0 - postcss: 7.0.39 + '@tokenizer/token': 0.3.0 + peek-readable: 5.0.0 dev: true - /postcss-atroot/0.2.3_postcss@8.4.20: - resolution: {integrity: sha512-QoqnRy93M/OaV1hq460uDeTfSi1dy+43mPkhRmbFY8YfNiwc3JZ8ju8H4OkfgDNXVOlHL0l8ygWAy3NpttzEXA==} - engines: {node: '>= 10'} + /style-loader/3.3.1_webpack@5.75.0: + resolution: {integrity: sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==} + engines: {node: '>= 12.13.0'} peerDependencies: - postcss: ^8.2.15 + webpack: ^5.0.0 dependencies: - postcss: 8.4.20 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - /postcss-current-selector/0.0.3: - resolution: {integrity: sha512-vkz3W3rqxWHq5IV8+P4QFB820psiD94NLn43QPgy682dPgjhUcjeNJfpNexX4FKHhV1pQhKfs2SCvghxTUfyiQ==} - dependencies: - postcss: 5.2.18 + /style-mod/4.0.0: + resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} dev: true - /postcss-env-function/4.0.6_postcss@8.4.20: - resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==} - engines: {node: ^12 || ^14 || >=16} + /style-search/0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /stylehacks/5.1.1_postcss@8.4.21: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.4 + postcss: ^8.2.15 dependencies: - postcss: 8.4.20 - postcss-value-parser: 4.2.0 + browserslist: 4.21.5 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 dev: true - /postcss-functions/4.0.2_postcss@8.4.20: - resolution: {integrity: sha512-htDZN6t97uW4GBXquTsz/DVaNVAHtHx5tLCALquVM2u58UwHki+RwHbANKiiI0ImA8T7Iml2MnvLUM7aGtlpqA==} + /stylelint-config-html/1.1.0_x2qzl5lwlwnkkekx7bj2y4o6y4: + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} peerDependencies: - postcss: ^8.0.0 + postcss-html: ^1.0.0 + stylelint: '>=14.0.0 || 15' dependencies: - postcss: 8.4.20 - postcss-value-parser: 4.2.0 + postcss-html: 1.5.0 + stylelint: 15.2.0 dev: true - /postcss-modules-values/4.0.0_postcss@8.4.20: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} + /stylelint-config-recommended-vue/1.4.0_x2qzl5lwlwnkkekx7bj2y4o6y4: + resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} + engines: {node: ^12 || >=14} peerDependencies: - postcss: ^8.1.0 + postcss-html: ^1.0.0 + stylelint: '>=14.0.0 || 15' dependencies: - icss-utils: 5.1.0_postcss@8.4.20 - postcss: 8.4.20 + postcss-html: 1.5.0 + semver: 7.3.8 + stylelint: 15.2.0 + stylelint-config-html: 1.1.0_x2qzl5lwlwnkkekx7bj2y4o6y4 + stylelint-config-recommended: 10.0.1_stylelint@15.2.0 dev: true - /postcss-nested-ancestors/3.0.0_postcss@8.4.20: - resolution: {integrity: sha512-6U/LLSSaEDWIaBfi7/1PZuRkGXXllndiit2BTFu6u5i3QxAzBjxMKbPDyLCg/DtzhON0rKnfvGQ+UEd7se2Pnw==} - engines: {node: '>=12'} + /stylelint-config-recommended/10.0.1_stylelint@15.2.0: + resolution: {integrity: sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA==} peerDependencies: - postcss: ^8.0.0 + stylelint: ^15.0.0 || 15 dependencies: - escape-string-regexp: 4.0.0 - postcss: 8.4.20 - postcss-resolve-nested-selector: 0.1.1 + stylelint: 15.2.0 dev: true - /postcss-nested/6.0.0_postcss@8.4.20: - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} - engines: {node: '>=12.0'} + /stylelint-config-standard/30.0.1_stylelint@15.2.0: + resolution: {integrity: sha512-NbeHOmpRQhjZh5XB1B/S4MLRWvz4xxAxeDBjzl0tY2xEcayNhLbaRGF0ZQzq+DQZLCcPpOHeS2Ru1ydbkhkmLg==} peerDependencies: - postcss: ^8.2.14 + stylelint: ^15.0.0 || 15 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + stylelint: 15.2.0 + stylelint-config-recommended: 10.0.1_stylelint@15.2.0 dev: true - /postcss-nesting/10.2.0_postcss@8.4.20: - resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==} - engines: {node: ^12 || ^14 || >=16} + /stylelint-gamut/1.3.1_stylelint@15.2.0: + resolution: {integrity: sha512-sXbNHQUFN4qS9SWCfKE/ukONAhCjdAKsYVozHEk2bCP921OxZhTLwM4uTQtQRs05bxPxo27xBLvNHFKQY+cvKA==} + engines: {node: '>=16.0.0'} peerDependencies: - postcss: ^8.2 + stylelint: ^14.0.0 || ^15.0.0 || 15 + dependencies: + colorjs.io: 0.4.3 + stylelint: 15.2.0 + dev: true + + /stylelint/15.2.0: + resolution: {integrity: sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true dependencies: - '@csstools/selector-specificity': 2.0.2_2xshye3abirqjlplmebvmaxyna - postcss: 8.4.20 + '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm + '@csstools/css-tokenizer': 2.1.0 + '@csstools/media-query-list-parser': 2.0.1_ppok7cytzjc65mcyxmtit3wdyi + '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 8.1.0 + css-functions-list: 3.1.0 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.2.12 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.2.0 + ignore: 5.2.4 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.26.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0_postcss@8.4.21 postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 2.3.0 + svg-tags: 1.0.0 + table: 6.8.1 + v8-compile-cache: 2.3.0 + write-file-atomic: 5.0.0 + transitivePeerDependencies: + - supports-color dev: true - /postcss-property-lookup/3.0.0_postcss@8.4.20: - resolution: {integrity: sha512-Rkl/LttzMkhWCpAbqB5jZaVin1wVlHClit6bU8Wbd8AN1uBevyEfJGQZIsyqZc+OEEG1dZPnCJnvNuUrCpMB7w==} - engines: {node: '>= 10'} + /stylus-loader/7.1.0_irl2hmhzopg6urv44vymn74p4e: + resolution: {integrity: sha512-gNUEjjozR+oZ8cuC/Fx4LVXqZOgDKvpW9t2hpXHcxjfPYqSjQftaGwZUK+wL9B0QJ26uS6p1EmoWHmvld1dF7g==} + engines: {node: '>= 14.15.0'} peerDependencies: - postcss: ^8.2.15 + stylus: '>=0.52.4' + webpack: ^5.0.0 dependencies: - postcss: 8.4.20 - tcomb: 3.2.29 + fast-glob: 3.2.12 + klona: 2.0.6 + normalize-path: 3.0.0 + stylus: 0.55.0 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - /postcss-resolve-nested-selector/0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + /stylus/0.55.0: + resolution: {integrity: sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==} + hasBin: true + dependencies: + css: 3.0.0 + debug: 3.1.0 + glob: 7.2.3 + mkdirp: 1.0.4 + safer-buffer: 2.1.2 + sax: 1.2.4 + semver: 6.3.0 + source-map: 0.7.4 + transitivePeerDependencies: + - supports-color dev: true - /postcss-scss/4.0.6_postcss@8.4.20: - resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + /sugarss/4.0.1_postcss@8.4.21: + resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==} engines: {node: '>=12.0'} peerDependencies: - postcss: ^8.4.19 + postcss: ^8.3.3 dependencies: - postcss: 8.4.20 + postcss: 8.4.21 dev: true - /postcss-selector-parser/6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + /supports-color/2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color/3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + has-flag: 3.0.0 dev: true - /postcss-value-parser/4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 dev: true - /postcss/5.2.18: - resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} - engines: {node: '>=0.12'} + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: - chalk: 1.1.3 - js-base64: 2.6.4 - source-map: 0.5.7 - supports-color: 3.2.3 + has-flag: 4.0.0 dev: true - /postcss/7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} + /supports-hyperlinks/2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 + has-flag: 4.0.0 + supports-color: 7.2.0 dev: true - /postcss/8.4.20: - resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} - engines: {node: ^10 || ^12 || >=14} + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svg-tags/1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /svgbob-wasm/1.0.0: + resolution: {integrity: sha512-eVRp2Ubj88pUbDZI5ThD1QqGhSKYjOhuM4Mi16jfwl6NAyx+EVTtEyD+jiKxblvuGNlimsFfsWNMkFVskVdEWw==} + dev: true + + /svgo/2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: - nanoid: 3.3.4 + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 picocolors: 1.0.0 - source-map-js: 1.0.2 + stable: 0.1.8 + dev: true - /preact-render-to-string/5.2.6_preact@10.11.3: - resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} - peerDependencies: - preact: '>=10' + /svgo/3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: - preact: 10.11.3 - pretty-format: 3.8.0 + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 - /preact/10.11.3: - resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} + /swc-plugin-vue-jsx/0.2.0: + resolution: {integrity: sha512-2atLA8DXUtCHZqpc/0wCDIhx2LXJ9ZV7IMDlEG+eWVb0p5u/5jff8iEf+Mv7RumSM2cPrb3FTszbDDGSCNXoqQ==} + dev: true - /prettier/2.8.1: - resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} - engines: {node: '>=10.13.0'} - hasBin: true + /symbol-tree/3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /pretty-format/3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + /table/6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true - /printable-characters/1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + /tapable/1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + dev: true - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /tar-iterator/0.2.9: + resolution: {integrity: sha512-VCeK4WNanOS7gUiccvxNdpmkmsJKm9gpqK6ayDMJT2cGMKkuGrCcZWCBgJJzcntgUE25ZEtw+r0MSRyql19+4g==} + engines: {node: '>=0.8'} + dependencies: + end-of-stream: 1.4.4 + extract-base-iterator: 0.2.6 + fs-access-compat: 1.0.3 + inherits: 2.0.4 + just-extend: 6.2.0 + lifecycle: 1.0.4 + lodash.compact: 3.0.1 + mkpath: 1.0.0 + once: 1.4.0 + queue-cb: 1.1.7 + rimraf: 2.7.1 + tar-stream-compat: 2.1.5 dev: false - /react-dom/18.2.0_react@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 || 18 + /tar-stream-compat/2.1.5: + resolution: {integrity: sha512-hhIcRHj6S+y7IDR+VO8IcOjPUsAJ+50POvGK1fDFqbOTLTs/J7YA07TUgvpSkYkYuRUfYsuAFM/0SrvrdIZMdQ==} + engines: {node: '>=0.8'} dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + bl: 2.2.1 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + dev: false - /react/18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + /tar-stream/1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} dependencies: - loose-envify: 1.4.0 + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: true - /readdirp/3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + /tar-stream/2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} dependencies: - picomatch: 2.3.1 + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.1 dev: true - /rechoir/0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + /tar/6.1.13: + resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + engines: {node: '>=10'} dependencies: - resolve: 1.22.1 - dev: false + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 4.2.4 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true - /regenerator-runtime/0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /tcomb/3.2.29: + resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==} + dev: true + + /temp-path/1.0.0: + resolution: {integrity: sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==} dev: true - /remark-shiki-twoslash/3.1.0: - resolution: {integrity: sha512-6LqSqVtHQR4S0DKfdQ2/ePn9loTKUtpyopYvwk8johjDTeUW5MkaLQuZHlWNkkST/4aMbz6aTkstIcwfwcHpXg==} + /temp-suffix/0.1.1: + resolution: {integrity: sha512-wcluXJ6A8HhyhEOOTXHPKV9TRTcL7vwmnfrWTZn7c7zrFp16trP1lfpsxaKN52pToFNByQ+y3zsJC8JlDAaKrg==} + engines: {node: '>=0.8'} dependencies: - '@typescript/twoslash': 3.2.1 - '@typescript/vfs': 1.3.4 - fenceparser: 1.1.1 - regenerator-runtime: 0.13.11 - shiki: 0.10.1 - shiki-twoslash: 3.1.0 - tslib: 2.4.1 - typescript: 4.9.4 - unist-util-visit: 2.0.3 - transitivePeerDependencies: - - supports-color + imurmurhash: 0.1.4 + dev: false + + /terminal-link/2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + dev: true + + /terser-webpack-plugin/5.3.6_5p65lixklixow5gzx3nbknv5nm: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@swc/core': 1.3.37 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.1 + terser: 5.16.5 + webpack: 5.75.0_@swc+core@1.3.37 dev: true - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + /terser-webpack-plugin/5.3.7_acuekt2jnjr2isqp2ltpluj22a: + resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@swc/core': 1.3.37 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.1 + terser: 5.16.6 + webpack: 5.76.2_@swc+core@1.3.37 dev: true - /requizzle/0.2.3: - resolution: {integrity: sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==} + /terser/5.16.5: + resolution: {integrity: sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==} + engines: {node: '>=10'} + hasBin: true dependencies: - lodash: 4.17.21 + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.2 + commander: 2.20.3 + source-map-support: 0.5.21 dev: true - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /terser/5.16.6: + resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==} + engines: {node: '>=10'} hasBin: true dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: + '@istanbuljs/schema': 0.1.3 glob: 7.2.3 + minimatch: 3.1.2 dev: true - /robust-predicates/3.0.1: - resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /rollup-plugin-visualizer/5.8.3: - resolution: {integrity: sha512-QGJk4Bqe4AOat5AjipOh8esZH1nck5X2KFpf4VytUdSUuuuSwvIQZjMGgjcxe/zXexltqaXp5Vx1V3LmnQH15Q==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.0 - source-map: 0.7.4 - yargs: 17.6.2 + /thenby/1.3.4: + resolution: {integrity: sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==} dev: true - /rollup/3.7.5: - resolution: {integrity: sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 + /throttleit/1.0.0: + resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + /through2/2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: - queue-microtask: 1.2.3 + readable-stream: 2.3.8 + xtend: 4.0.2 dev: false - /rw/1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + /thunky/1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true - /safe-stable-stringify/2.4.1: - resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==} - engines: {node: '>=10'} - dev: false + /timed-out/4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + dev: true - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + /tinybench/2.3.1: + resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} dev: true - /sandpack-vue3/2.0.6_vue@3.2.45: - resolution: {integrity: sha512-W1f3wNvPzFZlirnd443l4srLHiCllxCBm7ETks7KUJ7AOz4MEPODMEkvOcfeLnh8ZUDvaQUiLLJgy3nNSkThCw==} - engines: {node: '>=16', npm: '>=7'} - requiresBuild: true - peerDependencies: - vue: ^3.2.0 - peerDependenciesMeta: - vue: - optional: true - dependencies: - '@codemirror/closebrackets': 0.19.2 - '@codemirror/commands': 0.19.8 - '@codemirror/comment': 0.19.1 - '@codemirror/gutter': 0.19.9 - '@codemirror/highlight': 0.19.8 - '@codemirror/history': 0.19.2 - '@codemirror/lang-css': 0.19.3 - '@codemirror/lang-html': 0.19.4 - '@codemirror/lang-javascript': 0.19.7 - '@codemirror/lang-python': 0.19.5 - '@codemirror/language': 0.19.10 - '@codemirror/legacy-modes': 0.19.1 - '@codemirror/matchbrackets': 0.19.4 - '@codemirror/state': 0.19.9 - '@codemirror/stream-parser': 0.19.9 - '@codemirror/view': 0.19.48 - '@codesandbox/sandpack-client': 1.18.0 - '@codesandbox/sandpack-themes': 1.17.0 - '@stitches/core': 1.2.8 - clean-set: 1.1.2 - code-hike-classer-vue3: 0.1.6_vue@3.2.45 - lodash.isequal: 4.5.0 - lz-string: 1.4.4 - rimraf: 3.0.2 - vue: 3.2.45 + /tinypool/0.3.1: + resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} + engines: {node: '>=14.0.0'} dev: true - /sass/1.57.1: - resolution: {integrity: sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==} - engines: {node: '>=12.0.0'} - hasBin: true - dependencies: - chokidar: 3.5.3 - immutable: 4.1.0 - source-map-js: 1.0.2 + /tinyspy/1.1.1: + resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} + engines: {node: '>=14.0.0'} dev: true - /scheduler/0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + /tmp/0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} dependencies: - loose-envify: 1.4.0 + rimraf: 3.0.2 + dev: true - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true + /tmpl/1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true - /shell-escape-tag/2.0.2: - resolution: {integrity: sha512-kqmtJG6VzTahZl8Y3384ldskA9rzoEMdXLoMEBAq9334/UDdmfWl3OtmrGJPlVcyXvcSy3poDKka57gMxskMPw==} - dependencies: - any-shell-escape: 0.1.1 - inspect-custom-symbol: 1.1.1 - just-flatten-it: 2.2.1 - just-zip-it: 2.3.1 - dev: false + /to-buffer/1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + dev: true - /shelljs/0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - hasBin: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 + is-number: 7.0.0 + + /to-utf8/0.0.1: + resolution: {integrity: sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==} dev: false - /shiki-twoslash/3.1.0: - resolution: {integrity: sha512-uDqrTutOIZzyHbo103GsK7Vvc10saK1XCCivnOQ1NHJzgp3FBilEpftGeVzVSMOJs+JyhI7whkvhXV7kXQ5zCg==} + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /token-types/5.0.1: + resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} + engines: {node: '>=14.16'} dependencies: - '@typescript/twoslash': 3.2.1 - '@typescript/vfs': 1.3.4 - shiki: 0.10.1 - typescript: 4.9.4 - transitivePeerDependencies: - - supports-color + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: true + + /totalist/3.0.0: + resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + engines: {node: '>=6'} dev: true - /shiki/0.10.1: - resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + /tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} dependencies: - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 5.2.0 + psl: 1.9.0 + punycode: 2.3.0 dev: true - /shiki/0.12.1: - resolution: {integrity: sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==} + /tough-cookie/4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} dependencies: - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 dev: true - /source-map-js/1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} + /tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 + punycode: 2.3.0 dev: true - /source-map/0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true dev: true - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true - /source-map/0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + /trim-repeated/1.0.0: + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 dev: true - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + /trim-repeated/2.0.0: + resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 dev: true - /sprintf-js/1.1.2: - resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} + /ts-json-schema-generator/1.2.0: + resolution: {integrity: sha512-tUMeO3ZvA12d3HHh7T/AK8W5hmUhDRNtqWRHSMN3ZRbUFt+UmV0oX8k1RK4SA+a+BKNHpmW2v06MS49e8Fi3Yg==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + '@types/json-schema': 7.0.11 + commander: 9.4.1 + glob: 8.0.3 + json5: 2.2.1 + normalize-path: 3.0.0 + safe-stable-stringify: 2.4.1 + typescript: 5.1.0-dev.20230320 dev: false - /stacktracey/2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + /ts-loader/9.4.2_j67zqovrj7snfcv2cta7t3ktnu: + resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 dependencies: - as-table: 1.0.55 - get-source: 2.0.12 + chalk: 4.1.2 + enhanced-resolve: 5.12.0 + micromatch: 4.0.5 + semver: 7.3.8 + typescript: 5.1.0-dev.20230321 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true - /stream-connect/1.0.2: - resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} - engines: {node: '>=0.10.0'} + /ts-node/10.9.1_p52dwig7yrxcbqaynypgzvbyfm: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7 || 5' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: - array-back: 1.0.4 + '@cspotcode/source-map-support': 0.8.1 + '@swc/core': 1.3.37 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.7.23 + acorn: 8.8.2 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.1.0-dev.20230321 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfck/2.0.3_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-o3DsPZO1+C98KqHMdAbWs30zpxD30kj8r9OLA4ML1yghx4khNDzaaShNalfluh8ZPPhzKe3qyVCP1HiZszSAsw==} + engines: {node: ^14.13.1 || ^16 || >=18} + hasBin: true + peerDependencies: + typescript: ^4.3.5 || 5 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.1.0-dev.20230321 dev: true - /stream-via/1.0.4: - resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} - engines: {node: '>=0.10.0'} + /tsconfig-paths-webpack-plugin/4.0.0: + resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} + engines: {node: '>=10.13.0'} + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.12.0 + tsconfig-paths: 4.1.2 dev: true - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + /tsconfig-paths/3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 dev: true - /strip-ansi/3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} + /tsconfig-paths/4.1.2: + resolution: {integrity: sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==} + engines: {node: '>=6'} dependencies: - ansi-regex: 2.1.1 + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 dev: true - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + /tsconfig/7.0.0: + resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} dependencies: - ansi-regex: 5.0.1 + '@types/strip-bom': 3.0.0 + '@types/strip-json-comments': 0.0.30 + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 dev: true - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + + /tsutils/3.21.0_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta || 5' + dependencies: + tslib: 2.5.0 + typescript: 5.1.0-dev.20230321 dev: true - /strip-literal/1.0.0: - resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==} + /tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: - acorn: 8.8.1 + safe-buffer: 5.2.1 dev: true - /style-mod/4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} + /tunnel/0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: false + + /turbo-darwin-64/1.8.3: + resolution: {integrity: sha512-bLM084Wr17VAAY/EvCWj7+OwYHvI9s/NdsvlqGp8iT5HEYVimcornCHespgJS/yvZDfC+mX9EQkn3V2JmYgGGw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64/1.8.3: + resolution: {integrity: sha512-4oZjXtzakopMK110kue3z/hqu3WLv+eDLZOX1NGdo49gqca9BeD8GbH+sXpAp6tqyeuzpss+PIliVYuyt7LgbA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64/1.8.3: + resolution: {integrity: sha512-uvX2VKotf5PU14FCxJA5iHItPQno2JWzerMd+g3/h/Asay6dvxvtVjc39MQeGT0H5njSvzVKFkT+3/5q8lgOEg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64/1.8.3: + resolution: {integrity: sha512-E1p+oH3XKMaPS4rqWhYsL4j2Pzc0d/9P5KU7Kn1kqVLo2T3iRA7n2KVULEieUNE0nTH+aIJPXYXOpqCI5wFJaA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64/1.8.3: + resolution: {integrity: sha512-cnzAytHtoLXd0J7aNzRpZFpL/GTjcBmkvAPlbOdf/Pl1iwS4qzGrudZQ+OM1lmLgLIfBPIavsGHBknTwTNib4A==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64/1.8.3: + resolution: {integrity: sha512-ulIiItNm2w/zYJdD5/oAzjzNns1IjbpweRzpsE8tLXaWwo6+fnXXkyloUug0IUhcd2k6fJXfoiDZfygqpOVuXg==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo/1.8.3: + resolution: {integrity: sha512-zGrkU1EuNFmkq6iky6LcMqD4h0OLE8XysVFxQWRIZbcTNnf0XAycbsbeEyiJpiWeqb7qtg2bVuY9EYcNoNhVuQ==} + hasBin: true + requiresBuild: true + optionalDependencies: + turbo-darwin-64: 1.8.3 + turbo-darwin-arm64: 1.8.3 + turbo-linux-64: 1.8.3 + turbo-linux-arm64: 1.8.3 + turbo-windows-64: 1.8.3 + turbo-windows-arm64: 1.8.3 dev: true - /stylis/4.1.3: - resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + /tweetnacl/0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true - /supports-color/2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} + /type-check/0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 dev: true - /supports-color/3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} - engines: {node: '>=0.8.0'} + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: - has-flag: 1.0.0 + prelude-ls: 1.2.1 dev: true - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true - /tcomb/3.2.29: - resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==} + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} dev: true - /temp-path/1.0.0: - resolution: {integrity: sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==} + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} dev: true - /textextensions/2.6.0: - resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==} - engines: {node: '>=0.8'} + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} dev: true - /tinybench/2.3.1: - resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} dev: true - /tinypool/0.3.0: - resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} - engines: {node: '>=14.0.0'} + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 dev: true - /tinyspy/1.0.2: - resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} - engines: {node: '>=14.0.0'} + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 dev: true - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + /typed-assert/1.0.9: + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} dev: true - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: - is-number: 7.0.0 + is-typedarray: 1.0.0 + dev: true - /ts-json-schema-generator/1.2.0-next.6: - resolution: {integrity: sha512-0IiL5/UHTWSzfR99WF6mQr1ZShNTV30Cmy3l5f8OvVIMZDjWmGAJfnEZkdGVAMMaaa0Z5KRt2TS6lneblYnt3g==} - engines: {node: '>=10.0.0'} + /typescript/5.1.0-dev.20230320: + resolution: {integrity: sha512-UWob7IhN/k84vqndbUwXaUNuLfzpgaD3wYm2FAKCUjXE0sMn5rf0Z+A8N2glIfqQBnBObLzIitWepn3TRF9Sjg==} + engines: {node: '>=12.20'} hasBin: true - dependencies: - '@types/json-schema': 7.0.11 - commander: 9.4.1 - glob: 8.0.3 - json5: 2.2.1 - normalize-path: 3.0.0 - safe-stable-stringify: 2.4.1 - typescript: 4.9.4 dev: false - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /typescript/4.9.4: - resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} - engines: {node: '>=4.2.0'} + /typescript/5.1.0-dev.20230321: + resolution: {integrity: sha512-GFq3xvjbJImoKgCDJEiB7Bsa1wQdu/9tlb8Qj475ydSraETbCLzy+Ao3cqQ+KWBM6Mqo+0b1rrpe2Gj0DZz2+w==} + engines: {node: '>=12.20'} hasBin: true + dev: true /typical/2.6.1: resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} @@ -3785,16 +15472,85 @@ packages: /uc.micro/1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + + /ufo/1.1.1: + resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} + dev: true + + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 dev: true - /ufo/1.0.1: - resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} + /unbzip2-stream/1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + + /unc-path-regex/0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: false + + /unctx/2.1.2: + resolution: {integrity: sha512-KK18aLRKe3OlbPyHbXAkIWSU3xK8GInomXfA7fzDMGFXQ1crX1UWrCzKesVXeUyHIayHUrnTvf87IPCKMyeKTg==} + dependencies: + acorn: 8.8.2 + estree-walker: 3.0.3 + magic-string: 0.27.0 + unplugin: 1.1.0 dev: true /underscore/1.13.6: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} dev: true + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unimport/2.2.4: + resolution: {integrity: sha512-qMgmeEGqqrrmEtm0dqxMG37J6xBtrriqxq9hILvDb+e6l2F0yTnJomLoCCp0eghLR7bYGeBsUU5Y0oyiUYhViw==} + dependencies: + '@rollup/pluginutils': 5.0.2 + escape-string-regexp: 5.0.0 + fast-glob: 3.2.12 + local-pkg: 0.4.3 + magic-string: 0.27.0 + mlly: 1.1.1 + pathe: 1.1.0 + pkg-types: 1.0.2 + scule: 1.0.0 + strip-literal: 1.0.1 + unplugin: 1.1.0 + transitivePeerDependencies: + - rollup + dev: true + /unist-util-is/4.1.0: resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} dev: true @@ -3814,37 +15570,205 @@ packages: unist-util-visit-parents: 3.1.1 dev: true - /update-browserslist-db/1.0.10_browserslist@4.21.4: + /universal-user-agent/6.0.0: + resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + dev: true + + /universalify/0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unplugin-icons/0.15.3: + resolution: {integrity: sha512-YWgJqv5AahrokeOnta8uX/m1damZA6Rf6zPClgHg2Fa/45iyOe3Lj+Wn/Ba+CSsq9yBffn17YfKfJNyWCNZPvw==} + peerDependencies: + '@svgr/core': '>=5.5.0' + '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + vue-template-compiler: ^2.6.12 + vue-template-es2015-compiler: ^1.9.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@vue/compiler-sfc': + optional: true + vue-template-compiler: + optional: true + vue-template-es2015-compiler: + optional: true + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.2 + '@iconify/utils': 2.1.4 + debug: 4.3.4 + kolorist: 1.7.0 + local-pkg: 0.4.3 + unplugin: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /unplugin-vue-components/0.24.0_vue@3.2.47: + resolution: {integrity: sha512-U+Pr5StEhlD1LzsJC63f3FoTje3IbqRuSIui9RBnOokowzMM2uK2jZkc1ccLWmhLa8P9qJwEdj93LE/NG83eiw==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + dependencies: + '@antfu/utils': 0.7.2 + '@nuxt/kit': 3.2.3 + '@rollup/pluginutils': 5.0.2 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.2.12 + local-pkg: 0.4.3 + magic-string: 0.29.0 + minimatch: 6.2.0 + resolve: 1.22.1 + unplugin: 1.1.0 + vue: 3.2.47 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin/1.1.0: + resolution: {integrity: sha512-I8obQ8Rs/hnkxokRV6g8JKOQFgYNnTd9DL58vcSt5IJ9AkK8wbrtsnzD5hi4BJlvcY536JzfEXj9L6h7j559/A==} + dependencies: + acorn: 8.8.2 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /untildify/4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /untyped/1.2.2: + resolution: {integrity: sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw==} + dependencies: + '@babel/core': 7.21.0 + '@babel/standalone': 7.21.2 + '@babel/types': 7.21.2 + scule: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.5: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 escalade: 3.1.1 picocolors: 1.0.0 dev: true + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /url-parse-lax/3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: true + + /url-parse/1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /url-to-options/1.0.1: + resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} + engines: {node: '>= 4'} + dev: true + /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} dev: true - /uuid/9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: true - /vite-node/0.26.2_gneikmxcpj2uc2xuqjosnroj4e: - resolution: {integrity: sha512-4M/zlatItZAyvrQG+82zQBhgDjRZRhVJYFW4T9wcAKh7eMmSiPOVSeI5zsV9UzHXgCcIDKX0o0r3s4OxExTHqg==} + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul/9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vary/1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /verror/1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vite-node/0.28.5_45ilziqhevcim7urtomwqkimju: + resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} engines: {node: '>=v14.16.0'} hasBin: true dependencies: + cac: 6.7.14 debug: 4.3.4 - mlly: 1.0.0 - pathe: 0.2.0 + mlly: 1.1.1 + pathe: 1.1.0 + picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.0.3_gneikmxcpj2uc2xuqjosnroj4e + vite: 4.1.4_45ilziqhevcim7urtomwqkimju transitivePeerDependencies: - '@types/node' - less @@ -3855,18 +15779,86 @@ packages: - terser dev: true - /vite-plugin-babel/1.1.2_dphi2kjxqdi2lbo4kerd4lp2se: - resolution: {integrity: sha512-NPqUSzxzdPo1UyZGvL1KOIYy5R1T9+Af6cZ9Qw/f7tepjp6FSmx4SbK6eZ9xttEnSsdYj3IJmXwlU8PYeZstWw==} + /vite-plugin-babel/1.1.3_7aqncydjsmbuegxcpud6ibdpd4: + resolution: {integrity: sha512-WE8ORQm8530kj0geiDL1r/+P2MaU0b+5wL5E8Jq07aounFwRIUeJXziGiMr2DFQs78vaefB5GRKh257M8Z6gFQ==} peerDependencies: '@babel/core': ^7.0.0 - vite: ^2.7.0 || ^3.0.0 + vite: ^2.7.0 || ^3.0.0 || ^4.0.0 || 4 + dependencies: + '@babel/core': 7.21.0 + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + dev: true + + /vite-plugin-eslint/1.8.1_eslint@8.35.0+vite@4.1.4: + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2 || 4' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.21.1 + eslint: 8.35.0 + rollup: 2.79.1 + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + dev: true + + /vite-plugin-wasm-esm/1.0.0_vite@4.1.4: + resolution: {integrity: sha512-dsgjpLSs5RagQb+fSEOV3fFLz6Nko1i42wVWq8eQ0hkvyFIOUi3tdI5xwO2N5qliwVxQbP4RmJe6mvFfzKGbZA==} + peerDependencies: + vite: 3.x || 4.x || 4 + dependencies: + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + dev: true + + /vite-tsconfig-paths/4.0.5_gliwt7svxbpvcai2ottpa7qe6a: + resolution: {integrity: sha512-/L/eHwySFYjwxoYt1WRJniuK/jPv+WGwgRGBYx3leciR5wBeqntQpUE6Js6+TJemChc+ter7fDBKieyEWDx4yQ==} + dependencies: + debug: 4.3.4 + globrex: 0.1.2 + tsconfck: 2.0.3_gliwt7svxbpvcai2ottpa7qe6a + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /vite/4.1.4_45ilziqhevcim7urtomwqkimju: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: - '@babel/core': 7.20.2 - vite: 4.0.3_sass@1.57.1 + '@types/node': 18.15.5 + esbuild: 0.16.17 + less: 4.1.3 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.18.0 + stylus: 0.55.0 + optionalDependencies: + fsevents: 2.3.2 dev: true - /vite/4.0.3_gneikmxcpj2uc2xuqjosnroj4e: - resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} + /vite/4.1.4_5qqtlymusnyxkjdecn7bdo36mu: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -3890,18 +15882,19 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.17 - esbuild: 0.16.10 - postcss: 8.4.20 + '@types/node': 18.7.23 + esbuild: 0.16.17 + less: 4.1.3 + postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.7.5 - sass: 1.57.1 + rollup: 3.18.0 + stylus: 0.55.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.0.3_sass@1.57.1: - resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} + /vite/4.1.4_@types+node@18.15.0: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -3920,49 +15913,107 @@ packages: optional: true stylus: optional: true - sugarss: + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.15.0 + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.18.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vitepress-plugin-tabs/0.2.0_64eztyruiyhjmfhrimcd43ho3a: + resolution: {integrity: sha512-jTdtz4Z5fHllzcDAJaJK/bxE/2PhJSqetFUFgiB7xzw23O4yI+ntJrN+D3oP8XH/0559QUbrYd0K3YLoRaHbAA==} + peerDependencies: + vitepress: ^1.0.0-alpha.29 + vue: ^3.2.45 + dependencies: + vitepress: 1.0.0-alpha.61_4yt5l4p4rki6edhfcj6rl2h22i + vue: 3.2.47 + dev: true + + /vitepress/1.0.0-alpha.61_4yt5l4p4rki6edhfcj6rl2h22i: + resolution: {integrity: sha512-NvzERVS3/TU9YkYcaiK7yNSe0zY9UcSV58tx3mxbvVLCuwRykzO4OWbl6vQT6Ut6YGuZU1y3Z5WcSS+fHfaxJA==} + hasBin: true + dependencies: + '@docsearch/css': 3.3.3 + '@docsearch/js': 3.3.3_4jk4sx5gsa4z6dpons6mwt4w6q + '@vitejs/plugin-vue': 4.1.0_vite@4.1.4+vue@3.2.47 + '@vue/devtools-api': 6.5.0 + '@vueuse/core': 9.13.0_vue@3.2.47 + body-scroll-lock: 4.0.0-beta.0 + shiki: 0.14.1 + vite: 4.1.4_5qqtlymusnyxkjdecn7bdo36mu + vue: 3.2.47 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - less + - react + - react-dom + - sass + - stylus + - sugarss + - terser + dev: true + + /vitest/0.25.8_ehzen6rhkzxenlvnrjfqyltjsq: + resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: optional: true - terser: + jsdom: optional: true dependencies: - esbuild: 0.16.10 - postcss: 8.4.20 - resolve: 1.22.1 - rollup: 3.7.5 - sass: 1.57.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /vitepress/1.0.0-alpha.33_b3xgtgfamhr4jiydlntqmtzdsm: - resolution: {integrity: sha512-EhMDqWLllYr5mXqAz4GCQ1o/bu5umQ6C2d8voiSaTHMkYCxsGc31ETykflM6NOhGx6yccwXygrYIIeN1l6BUEA==} - hasBin: true - dependencies: - '@docsearch/css': 3.3.0 - '@docsearch/js': 3.3.0_5hc3kenz2rcl74lgbiauumrhqq - '@vitejs/plugin-vue': 4.0.0_vite@4.0.3+vue@3.2.45 - '@vue/devtools-api': 6.4.5 - '@vueuse/core': 9.8.2_vue@3.2.45 - body-scroll-lock: 4.0.0-beta.0 - shiki: 0.12.1 - vite: 4.0.3_sass@1.57.1 - vue: 3.2.45 + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.15.5 + '@vitest/ui': 0.25.8 + acorn: 8.8.2 + acorn-walk: 8.2.0 + chai: 4.3.7 + debug: 4.3.4 + happy-dom: 8.9.0 + jsdom: 20.0.3 + local-pkg: 0.4.3 + source-map: 0.6.1 + strip-literal: 1.0.1 + tinybench: 2.3.1 + tinypool: 0.3.1 + tinyspy: 1.1.1 + vite: 4.1.4_45ilziqhevcim7urtomwqkimju transitivePeerDependencies: - - '@algolia/client-search' - - '@types/node' - - '@types/react' - - '@vue/composition-api' - less - - react - - react-dom - sass - stylus - sugarss + - supports-color - terser dev: true - /vitest/0.26.2_sass@1.57.1: - resolution: {integrity: sha512-Jvqxh6SDy9SsuslkDjts0iDewDIdq4rveEt69YgDuAb1tVDGV0lDepVaeAFraoySWqneJmOt4TngFFNhlw7GfA==} + /vitest/0.28.5_ehzen6rhkzxenlvnrjfqyltjsq: + resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -3985,19 +16036,31 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.17 - acorn: 8.8.1 + '@types/node': 18.15.5 + '@vitest/expect': 0.28.5 + '@vitest/runner': 0.28.5 + '@vitest/spy': 0.28.5 + '@vitest/ui': 0.25.8 + '@vitest/utils': 0.28.5 + acorn: 8.8.2 acorn-walk: 8.2.0 + cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - local-pkg: 0.4.2 + happy-dom: 8.9.0 + jsdom: 20.0.3 + local-pkg: 0.4.3 + pathe: 1.1.0 + picocolors: 1.0.0 source-map: 0.6.1 - strip-literal: 1.0.0 + std-env: 3.3.2 + strip-literal: 1.0.1 tinybench: 2.3.1 - tinypool: 0.3.0 - tinyspy: 1.0.2 - vite: 4.0.3_gneikmxcpj2uc2xuqjosnroj4e - vite-node: 0.26.2_gneikmxcpj2uc2xuqjosnroj4e + tinypool: 0.3.1 + tinyspy: 1.1.1 + vite: 4.1.4_45ilziqhevcim7urtomwqkimju + vite-node: 0.28.5_45ilziqhevcim7urtomwqkimju + why-is-node-running: 2.2.2 transitivePeerDependencies: - less - sass @@ -4011,22 +16074,18 @@ packages: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: true - /vscode-textmate/5.2.0: - resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} - dev: true - /vscode-textmate/8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true - /vue-console-feed/0.0.27: - resolution: {integrity: sha512-T5HdWvR5Xp5doIwbtv28lU+szJJNV5asiXa5cIYU33BhFxfUo+ky+S3Vsp6Du+SavRK0GgDobNzXrp4Il1QKKA==} + /vue-console-feed/0.0.28: + resolution: {integrity: sha512-IHxhVIEof/9iHfhtw7MrjuoaR7eoJEvjkw6dPLNsNrgZ1DTwcwl9MFhcWvbJtNpS/7elMXf+5UiMmYrrY/Eccg==} engines: {node: '>=10'} dependencies: sprintf-js: 1.1.2 dev: false - /vue-demi/0.13.11_vue@3.2.45: + /vue-demi/0.13.11_vue@3.2.47: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true @@ -4038,28 +16097,394 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.45 + vue: 3.2.47 + dev: true + + /vue-eslint-parser/9.1.0_eslint@8.35.0: + resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.35.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color dev: true - /vue/3.2.45: - resolution: {integrity: sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==} + /vue-i18n/9.2.2_vue@3.2.47: + resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==} + engines: {node: '>= 14'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + dev: false + + /vue-router/4.1.6_vue@3.2.47: + resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + dev: false + + /vue-sfc2esm/0.1.6: + resolution: {integrity: sha512-FXqM7HSajPpTcSOZCVGR8yMrYoRi26OI2EkxIoP083r3v9Ep1o4d6ddaWzP/Rac5TYJ0+P5a4WtDmeez952e3A==} + engines: {node: '>=14.0.0'} dependencies: - '@vue/compiler-dom': 3.2.45 - '@vue/compiler-sfc': 3.2.45 - '@vue/runtime-dom': 3.2.45 - '@vue/server-renderer': 3.2.45_vue@3.2.45 - '@vue/shared': 3.2.45 + '@vue/compiler-sfc': 3.2.47 + vue: 3.2.47 dev: true + /vue/3.2.47: + resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/runtime-dom': 3.2.47 + '@vue/server-renderer': 3.2.47_vue@3.2.47 + '@vue/shared': 3.2.47 + /w3c-keyname/2.2.6: resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} dev: true + /w3c-xmlserializer/4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + /walk-back/5.1.0: resolution: {integrity: sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==} engines: {node: '>=12.17'} dev: true + /walker/1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: true + + /wbuf/1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /webpack-dev-middleware/5.3.3_webpack@5.75.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.13 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /webpack-dev-server/4.11.1_webpack@5.75.0: + resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.17 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.1 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.4 + ansi-html-community: 0.0.8 + bonjour-service: 1.1.0 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.11 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.17 + ipaddr.js: 2.0.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.75.0_@swc+core@1.3.37 + webpack-dev-middleware: 5.3.3_webpack@5.75.0 + ws: 8.12.1 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-node-externals/3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} + dev: true + + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-subresource-integrity/5.1.0_webpack@5.75.0: + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} + engines: {node: '>= 12'} + peerDependencies: + html-webpack-plugin: '>= 5.0.0-beta.1 < 6' + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + dependencies: + typed-assert: 1.0.9 + webpack: 5.75.0_@swc+core@1.3.37 + dev: true + + /webpack-virtual-modules/0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + dev: true + + /webpack/5.75.0_@swc+core@1.3.37: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_5p65lixklixow5gzx3nbknv5nm + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /webpack/5.76.2_@swc+core@1.3.37: + resolution: {integrity: sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.7_acuekt2jnjr2isqp2ltpluj22a + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver/0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions/0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /wget-improved/3.3.1: + resolution: {integrity: sha512-OF22MM9ImbOcuB5ZV3ye0q1udaYeTP/V6LOfjNyGCNNC7bGB219ljZv6Wk5mPogeigJJ6CqheLScv17AFbsdGA==} + engines: {node: '>= 0.6.18'} + hasBin: true + dependencies: + minimist: 1.2.6 + tunnel: 0.0.6 + dev: false + + /whatwg-encoding/2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype/3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-module/2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + dev: true + + /which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /why-is-node-running/2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi/6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -4072,27 +16497,150 @@ packages: /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /write-file-atomic/5.0.0: + resolution: {integrity: sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws/8.12.1: + resolution: {integrity: sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator/4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars/2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + /xmlcreate/2.0.4: resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} dev: true + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /y18n/4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true - /yaml/2.2.0: - resolution: {integrity: sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g==} + /yallist/2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml-eslint-parser/1.1.0: + resolution: {integrity: sha512-b464Q1fYiX1oYx2kE8k4mEp6S9Prk+tfDsY/IPxQ0FCjEuj3AKko5Skf3/yQJeYTTDyjDE+aWIJemnv29HvEWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.3.0 + lodash: 4.17.21 + yaml: 2.2.1 + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml/2.2.1: + resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} engines: {node: '>= 14'} - dev: false + + /yargs-parser/18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs/17.6.2: - resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + /yargs/15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs/17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} engines: {node: '>=12'} dependencies: cliui: 8.0.1 @@ -4103,3 +16651,51 @@ packages: y18n: 5.0.8 yargs-parser: 21.1.1 dev: true + + /yauzl/2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zip-iterator/0.2.7: + resolution: {integrity: sha512-wDLpIBZ0DwuFkTx0rHcOJ8eJHJcCh3ONxcm6vL1f9+pZ8xyJexGfhkkeYx6I/Q9kLg9smWkHUv4Uz8zRLNqrQw==} + engines: {node: '>=0.8'} + dependencies: + buffer-v6-polyfill: 1.0.5 + end-of-stream: 1.4.4 + extract-base-iterator: 0.2.6 + fs-access-compat: 1.0.3 + inherits: 2.0.4 + lifecycle: 1.0.4 + lodash.compact: 3.0.1 + mkpath: 1.0.0 + once: 1.4.0 + queue-cb: 1.1.7 + readable-stream: 2.3.8 + rimraf: 2.7.1 + temp-suffix: 0.1.1 + zip: 1.2.0 + dev: false + + /zip/1.2.0: + resolution: {integrity: sha512-8B4Z9BXJKkI8BkHhKvQan4rwCzUENnj95YHFYrI7F1NbqKCIdW86kujctzEB+kJ6XapHPiAhiZ9xi5GbW5SPdw==} + dependencies: + bops: 0.1.1 + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b8fd764..21e3dbc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,9 @@ -- . -- ./types/@types/* -- ./src/frameworks/react -- ./packages/* -- ./packages/@types/* -- ./scripts +packages: + - . + - bin + - types/@types/* + - src/.vitepress + - src/frameworks/react + - packages/* + - packages/@*/* + - scripts diff --git a/rest.http b/rest.http new file mode 100644 index 0000000..77c0c33 --- /dev/null +++ b/rest.http @@ -0,0 +1,74 @@ +@bucket = https://prod-packager-packages.codesandbox.io/v1/typings +@service = https://ata.codesandbox.io/api/v8 +@fallback = https://typings.csb.dev/api/v8 +### +HEAD https://esm.sh/@starbeam/universal@0.8.9 + +content-type: application/javascript; charset=utf-8 + +HTTP/1.1 200 - OK +date: Tue, 14 Feb 2023 21:51:40 GMT +content-type: application/json; charset=utf-8 +transfer-encoding: chunked +connection: close +cf-ray: 799906c429ccef6f-PDX +access-control-allow-origin: * +age: 9778 +cache-control: public, max-age=31536000, immutable +last-modified: Tue, 14 Feb 2023 19:08:42 GMT +vary: Origin, Accept-Encoding +cf-cache-status: HIT +report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=NSy1YD3Tj%2FCch7FzfeZ05eKlngsbHNFzod3XsDU%2FzKcaEk%2BshBbfrltDWeWduhlHo%2FLIm5tXj46EwzXF7eFewez8yAbIpK2ZFLTHQyhSXoZpyCwOxr4gq94%3D"}],"group":"cf-nel","max_age":604800} +nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} +server: cloudflare +content-encoding: br +alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 +### +GET {{bucket}}/@starbeam/js/0.8.9.json + +HTTP/1.1 200 - OK +date: Wed, 15 Feb 2023 22:10:10 GMT +content-type: application/json +transfer-encoding: chunked +connection: close +x-amz-id-2: qbTy71i4z+qQtuve/k57zcylf5dOA30Kj6OzuqlhNAUBmGdLsEuOxr7uRrdAN58D9DIFv0EVINw= +x-amz-request-id: CSNE1T06XYK080ZE +last-modified: Wed, 15 Feb 2023 22:05:05 GMT +etag: W/"a6cb34aa91c4b76c16824ef9f442e0d4" +x-amz-server-side-encryption: AES256 +cache-control: public, max-age=31536000 +cf-cache-status: MISS +server-timing: cf-q-config;dur=6.9999996412662e-06 +vary: Accept-Encoding +server: cloudflare +cf-ray: 79a15f3f2da0ebfa-SEA +content-encoding: br +alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 +### +GET {{service}}/%40starbeam%2Finterfaces%400.8.9 + +HTTP/1.1 520 +date: Wed, 15 Feb 2023 22:11:29 GMT +content-type: text/html; charset=UTF-8 +transfer-encoding: chunked +connection: close +set-cookie: cf_use_ob=0; path=/; expires=Wed, 15-Feb-23 22:11:59 GMT +x-frame-options: SAMEORIGIN +referrer-policy: same-origin +cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 +expires: Thu, 01 Jan 1970 00:00:01 GMT +cf-ray: 79a16129ce4b6820-SEA +server: cloudflare +### +GET {{fallback}}/%40starbeam%2Finterfaces%400.8.9 + +HTTP/1.1 200 - OK +server: nginx/1.17.5 +date: Wed, 15 Feb 2023 22:12:14 GMT +content-type: application/json +content-length: 36952 +connection: close +x-powered-by: Express +access-control-allow-origin: * +cache-control: public, max-age=31536000 +strict-transport-security: max-age=31536000 \ No newline at end of file diff --git a/scripts/chomp.js b/scripts/chomp.js new file mode 100644 index 0000000..ffbaf17 --- /dev/null +++ b/scripts/chomp.js @@ -0,0 +1,4 @@ +import shell from "shelljs"; + +shell.exec("chomp build:pre"); +shell.exec("chomp build"); diff --git a/scripts/fast-extract.d.ts b/scripts/fast-extract.d.ts new file mode 100644 index 0000000..ef98741 --- /dev/null +++ b/scripts/fast-extract.d.ts @@ -0,0 +1,21 @@ +declare module "fast-extract" { + import type { ReadStream } from "node:fs"; + + type ExtractType = + | "tar" + | "tar.bz2" + | "tar.gz" + | "tar.xz" + | "tgz" + | "zip"; + + export default function extract( + from: string | ReadStream, + to: string, + options?: { + strip?: number; + type: ExtractType; + force?: boolean; + } + ): Promise; +} diff --git a/scripts/fetch-d2.js b/scripts/fetch-d2.js new file mode 100644 index 0000000..32559c2 --- /dev/null +++ b/scripts/fetch-d2.js @@ -0,0 +1,75 @@ +// @ts-check +/// + +import chalk from "chalk"; +import { Presets, SingleBar } from "cli-progress"; +import { resolve } from "path"; +import shell from "shelljs"; +import wget from "wget-improved"; + +import extract from "fast-extract"; +import { existsSync, readFileSync, writeFileSync } from "fs"; + +const __dirname = new URL(".", import.meta.url).pathname; +const root = resolve(__dirname, ".."); + +const D2_VERSION = "0.2.6"; + +const BINS = resolve(root, "bin"); +const D2_BINFILE = resolve(BINS, `d2`); +const D2_VERSIONFILE = resolve(BINS, `d2.version`); + +async function install() { + const currentVersion = existsSync(D2_VERSIONFILE) + ? readFileSync(D2_VERSIONFILE, "utf-8") + : undefined; + + if (D2_VERSION === currentVersion && existsSync(D2_BINFILE)) { + console.info(chalk.green(`D2 version ${D2_VERSION} is already installed.`)); + return; + } else { + console.info(chalk.yellow(`Installing D2 version ${D2_VERSION}...`)); + } + + const LATEST_D2_LINUX = `https://github.com/terrastruct/d2/releases/download/v${D2_VERSION}/d2-v${D2_VERSION}-linux-amd64.tar.gz`; + + shell.cd(root); + shell.mkdir("-p", "bin"); + shell.cd(__dirname); + shell.mkdir("-p", "tmp"); + + const file = await new Promise((fulfill, reject) => { + const output = resolve(__dirname, "tmp/d2.tar.gz"); + const download = wget.download(LATEST_D2_LINUX, output); + + const progress = new SingleBar( + { + format: "Downloading D2 | {bar} | {percentage}%", + }, + Presets.shades_grey + ); + progress.start(100, 0); + + download.on("end", () => { + progress.stop(); + fulfill(output); + }); + download.on("error", (err) => reject(err)); + download.on("progress", (update) => { + progress.update(update * 100); + }); + }); + + await extract(file, resolve(__dirname, "tmp/d2"), { + type: "tar.gz", + force: true, + strip: 1, + }); + + shell.cd(__dirname); + shell.cp("tmp/d2/bin/d2", D2_BINFILE); + writeFileSync(D2_VERSIONFILE, D2_VERSION); + shell.rm("-rf", "tmp"); +} + +await install(); diff --git a/scripts/generate-api.js b/scripts/generate-api.js index 2054263..a75663b 100644 --- a/scripts/generate-api.js +++ b/scripts/generate-api.js @@ -5,10 +5,6 @@ import sh from "shell-escape-tag"; import shell from "shelljs"; import yaml from "yaml"; -const cwd = process.cwd(); - -console.log(cwd); - const docs = await glob("src/api/**/$api/*.yml", { ignore: ["**/node_modules"], }); @@ -21,7 +17,7 @@ for (const doc of docs) { const filename = path.join(root, `${base}.md`); const output = template(base, body.page); - console.log("- writing", filename); + console.info("- writing", filename); await writeFile(filename, output); } diff --git a/scripts/package.json b/scripts/package.json index 0743ee8..137c355 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -6,10 +6,15 @@ "fast-glob": "^3.2.12", "shell-escape-tag": "^2.0.2", "shelljs": "^0.8.5", - "yaml": "^2.2.0" + "yaml": "^2.2.1", + "wget-improved": "^3.3.1", + "cli-progress": "^3.12.0", + "fast-extract": "^0.4.8", + "chalk": "^5.2.0" }, "devDependencies": { - "@types/node": "^18.11.17", + "@types/cli-progress": "^3.11.0", + "@types/node": "^18.11.18", "@types/shell-escape-tag": "workspace:1.0.0", "@types/shelljs": "^0.8.11" } diff --git a/scripts/prepare.js b/scripts/prepare.js new file mode 100644 index 0000000..bf0c05b --- /dev/null +++ b/scripts/prepare.js @@ -0,0 +1,6 @@ +import "./fetch-d2.js"; + +// import shell from "shelljs"; + +// shell.exec("chomp build:pre"); +// shell.exec("chomp build"); diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index 33d3c15..a57dc2b 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -3,19 +3,17 @@ "composite": true, "allowJs": true, "checkJs": true, - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - "jsx": "preserve" /* Specify what JSX code is generated. */, - "module": "esnext" /* Specify what module code is generated. */, - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, - "resolveJsonModule": true /* Enable importing .json files. */, - "noEmit": true /* Disable emitting files from a compilation. */, - "importsNotUsedAsValues": "error" /* Specify emit/checking behavior for imports that are only used for types. */, - "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, - "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "strict": true /* Enable all strict type-checking options. */, - "skipLibCheck": true /* Skip type checking all .d.ts files. */ + "target": "esnext", + "jsx": "preserve", + "module": "esnext", + "moduleResolution": "node", + "noEmit": true, + "verbatimModuleSyntax": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true }, "include": ["*.js"] } diff --git a/scripts/tsconfig.tsbuildinfo b/scripts/tsconfig.tsbuildinfo new file mode 100644 index 0000000..a3b18a8 --- /dev/null +++ b/scripts/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/typescript@5.0.0-dev.20230210/node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@18.11.18/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts","../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/types/index.d.ts","../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/settings.d.ts","../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/managers/tasks.d.ts","../node_modules/.pnpm/fast-glob@3.2.12/node_modules/fast-glob/out/index.d.ts","../packages/@types/shell-escape-tag/index.d.ts","../node_modules/.pnpm/@types+minimatch@5.1.2/node_modules/@types/minimatch/index.d.ts","../node_modules/.pnpm/@types+glob@8.0.0/node_modules/@types/glob/index.d.ts","../node_modules/.pnpm/@types+shelljs@0.8.11/node_modules/@types/shelljs/index.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/line-counter.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/errors.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/doc/applyReviver.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/log.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/toJS.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/Scalar.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/Collection.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/YAMLMap.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/YAMLSeq.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/schema/types.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/schema/Schema.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/doc/createNode.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/Pair.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/schema/tags.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/options.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/stringify/stringify.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/Node.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/cst-scalar.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/cst-stringify.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/cst-visit.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/cst.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/nodes/Alias.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/doc/Document.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/doc/directives.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/compose/composer.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/lexer.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/parse/parser.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/public-api.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/visit.d.ts","../node_modules/.pnpm/yaml@2.2.1/node_modules/yaml/dist/index.d.ts","./generate-api.js","../node_modules/.pnpm/@types+diacritics@1.3.1/node_modules/@types/diacritics/index.d.ts","../node_modules/.pnpm/@types+hash-sum@1.0.0/node_modules/@types/hash-sum/index.d.ts","../types/@types/jsdoc-api/index.d.ts","../node_modules/.pnpm/@types+linkify-it@3.0.2/node_modules/@types/linkify-it/index.d.ts","../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/encode.d.ts","../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/decode.d.ts","../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/parse.d.ts","../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/format.d.ts","../node_modules/.pnpm/@types+mdurl@1.0.2/node_modules/@types/mdurl/index.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/common/utils.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/token.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/helpers/index.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/ruler.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_block.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_core.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/parser_inline.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/renderer.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/lib/index.d.ts","../node_modules/.pnpm/@types+markdown-it@12.2.3/node_modules/@types/markdown-it/index.d.ts","../node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/source-map.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/comment.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/at-rule.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/rule.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/container.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/declaration.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/previous-map.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/input.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/css-syntax-error.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/warning.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/document.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/root.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/lazy-result.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/no-work-result.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/processor.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/result.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/node.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/list.d.ts","../node_modules/.pnpm/postcss@8.4.21/node_modules/postcss/lib/postcss.d.ts","../types/@types/postcss-advanced-variables/index.d.ts","../types/@types/postcss-env-function/index.d.ts","../types/@types/postcss-functions/index.d.ts","../types/@types/postcss-modules-values/index.d.ts","../types/@types/postcss-nesting/index.d.ts","../types/@types/postcss-scss/index.d.ts","../node_modules/.pnpm/@types+react@18.0.26/node_modules/@types/react/global.d.ts","../node_modules/.pnpm/csstype@3.1.1/node_modules/csstype/index.d.ts","../node_modules/.pnpm/@types+prop-types@15.7.5/node_modules/@types/prop-types/index.d.ts","../node_modules/.pnpm/@types+scheduler@0.16.2/node_modules/@types/scheduler/tracing.d.ts","../node_modules/.pnpm/@types+react@18.0.26/node_modules/@types/react/index.d.ts","../node_modules/.pnpm/@types+react-dom@18.0.10/node_modules/@types/react-dom/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"9a60b92bca4c1257db03b349d58e63e4868cfc0d1c8d0ba60c2dbc63f4e6c9f6","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"672099c094378538cc5e9419d4161f41188c794d0dcaab458ef0fa9a86a59eba","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"95f22ce5f9dbcfc757ff850e7326a1ba1bc69806f1e70f48caefa824819d6f4f","affectsGlobalScope":true},"7823c8aa42d88e6cb454fe7dc56996c6fd174b28a9f050e9bdea1c25b7d114ea","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","4498108732bcb5b7000ff9cdc011058b4155e985271ac3f926468acfed0c79dd","36d7b72ed8f35f9e21cc223c06697eca0d4699178fc59cfd3a310e2983fd0fd6","5a5cbc7aa7c4f74f49073d747a2a2518d1ec22694c88bc46092b0f25ccb8ebb7","51bfe35171efe121cefb2501a6cd674c367d541c4c8b0ae639c126adcc84f37d","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","a55ca8b5f8c6a8535bb26fac1e10132a5338234ca3d5b9ed739fbc8ef41c8075","639158c94f9813ac0ef48abc5e24788b5acce74e961ad6d9ac30c18273965bfe","3dfcd0a3bfa70b53135db3cf2e4ddcb7eccc3e4418ce833ae24eecd06928328f","b26f93d773cf3aa4dc421c45323adccaead92598594a56f4a84d77910ee4f510","bc41a8e33caf4d193b0c49ec70d1e8db5ce3312eafe5447c6c1d5a2084fece12","7c33f11a56ba4e79efc4ddae85f8a4a888e216d2bf66c863f344d403437ffc74","2bb86e343b4109c784b11070735fa881af5c870a409a3b87b13800ca2afef421","fc9d4e784c9e7569911d8a6a01e1de90617942639c7c260beffdef1548b1ce06","37c1aeea4ec8df37bbe5d96bda46831acab3f70b2001ec9f51cb3146a101de89","5ac83af1a323158abc8627462fe987f7c67f957f88cdcf2237ae4dddc26677a8","df486e591f21d229d75df323fb9cf34f4b5cdbccee6a9b42227be738a13755d6","69ebf923204206eecef4310dc8bf28ab07feddaa3542066cdafbe67adf45f811","ae8189514ed306971ac9aa7d917487ee51dc3590aa5735f23c1d71811c373ea6","6de9d8858034d3197c1525e1c29c942cf7912f807d4d7f14dea247b7c05b59b0","394b4927dcc6eda44eb759f395da17b6e07f4daf272216b5cfc92eb32239f561","1adcc285d2d477ec6c51d0282d891fdf9d04a5fa8dfa479eab153ae17376f1b4","0ad294cdc42fb1f99cc94db8f77364ddc516643d9c69d4e66942f2cfd783213b","3956f34170e48abf902bc81055fb35a7e8b87109dbf3ca272d096d6d42cf7b84","f3acf8cff186f71a3a9b2da63f1378de6fe68a8578cb47d097776143cc84cd7d","1db170e5dad144b639ddf3d32710491c583f48c6e522580c8d5a8c249a611338","960923ce078ecfef6e5c34468cdba5c552b064c0db7cb0fdd3eafd1bb9d3d7e9","42f034630b3a866d4a88b37cf0f8357b36af2f7298b319d536b7413ba99f979b","33d1d46d7789bebdf9b78cd54f39022aad5d7d1d03a58bdad4fe98658acfef06","b3956ba310c0bcd45b1c77455a9754a35b49642be91bfbb412e04d378fad83a1","052854468e3d8142f440fa9a0da1d743abef903dff09597025d07703c25b601e","284147c679272283a4bea7ccaecbbab198bb1854e19269b2e59d4b5cedd5894a","325994b6f6c7598c73bbd0294bf1e3f1e229772669b3c8a08fe3170442f600b8","581656e45b2555b764e2880a39859e25ac6c0c9a74cff83dd22d3859b2231982","843563f951d16e850a0be806010f630a4a71f0a55810bb9aced67c6d7774bf2f","9af1c478e5403b39b922df9132d779bc6e1ef88cafec17fcecf26356d90ecbd6","a95a6135f2d195c93d930ba01049c33579328e55612477c0ae5652429d3974ad","24ead5861f4400218aeaafa477082022f244e3df46d18831411f3a47fc3ff515","65ce9342063fcf793e7baea7526a5a9a2f6ce05dea0cf4ae726d02eae2b98fa3","b932682e049f41e294a3429aca3b0adb4d2eed8047b4c22f91565e9353d6940c","5a1755f317ac2c0d708fbf7c1dbf076ba3a31f624c534b44275c9c43033fdc2e","ba068e56b15086e5b1dccf72081730a347085bf2f863954e0df90d58b1ff75f2","05c76d6f50d3b4f9d311c770b704235a9d67454a69ae8158692a1939e3ffec65","b1422e928ebea075ae07cfcac94122425804eb9fa3d7d67c95dc5bc37d05eb59","164c34f17f93ca595088de35d1a72c180c8fa21407b0bdbaf8956673e1f9de18","6503fb6addf62f9b10f8564d9869ad824565a914ec1ac3dd7d13da14a3f57036","f313731860257325f13351575f381fef333d4dfe30daf5a2e72f894208feea08","951b37f7d86f6012f09e6b35f1de57c69d75f16908cb0adaa56b93675ea0b853","3816fc03ffd9cbd1a7a3362a264756a4a1d547caabea50ca68303046be40e376","0c417b4ec46b88fb62a43ec00204700b560d01eb5677c7faa8ecd34610f096a8","13d29cdeb64e8496424edf42749bbb47de5e42d201cf958911a4638cbcffbd3f","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","d1c89db652113258e4ba4bbdf5cc7a2a3a600403d4d864a2087b95186253cd5b","11a90d2cb2eaf7fdf931a63b58279e8161f1477a1bd1e914ae026c1bbf9afed3","af18e30f3ba06e9870b61dfa4a109215caabdaa337590c51b4a044a9f338ce96","ace603f7b60599f2dcdbd71c07137b60a747dd33be540f4a294b890f9e0b89dc","7658fbdd425c656fb1849b44932ae7431e8c3198d22c65ce1490deb582743b52","7786c75c1b46e93b33c63dccf689143a5f47ff451a6b3bd9b10e4801cdeadcc2","dbef2851e33a4c2fd2f3164fec70e45df647eb0e87f250de784500a3037e2c37","31491a01ed7466e0b3b0ef8407f2524683055eceb955b1d5ccf7096129468b39","f4b12f7dde4fc0e386648318481bdcfe861b566be246bebf0e8a11ebd909adf9","e8966f7c424780bb0b9d411ebe13eda8555ca15aa675603316c2952bc027b0e3","df0e5f3c4a518111d160cf3bebc9a3ac7d39c6e3bfb7a21d43c304896c3015e2","df4e2f161f74870708c2cc5e1036a6405b878496408fda1ee50d5b10e50d6601","bf791da347fb1c0ffc1e2fcd35867e64bb8355270ae26278198c521bdcf94569","e0e0e3c068e145fbb322120979299ff130ffdd39f0dcd0d5aeaa9f3f8a0d01d9","fde91356172e35b9ea68bbdf33721f7c80307a4ce65b82105eac800e9e744995","9bd5e5a4a1e66b35efe3c48ddac1116537ef86e041717f3a9b9f1e060c74efa6","d7e4a5f4ccfb749c3033fafc233073b4d1dcca0249785186c589602a81f9d86f","68161b6f3004fc10f8bb47a4986cef13c3b0728fb1ca3e1dc7316227d09b2c8d","2a5092b52c4973d6501dc7c96e2f75b80d68f45e0bf52ebabe3a000029be24e6","929a8e35cd464751995e956cb85be5aa12e0ca321ddbe21313c1e79adb999187","5a7289962bbe30ce35d60f1152148af8e173b4a51025b4af58197f40e410024b","349e12f201b10c9a2ded4d496fd16e7c3ec4747282ed76d1b06b927b3d4dcd30","349e12f201b10c9a2ded4d496fd16e7c3ec4747282ed76d1b06b927b3d4dcd30","451d8996a54a85dfcb0a433ed0d84d9675e5ca5e6fa0c9beab53d6492bdf40ff",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"1c29793071152b207c01ea1954e343be9a44d85234447b2b236acae9e709a383","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"ef8a481f9f2205fcc287eef2b4e461d2fc16bc8a0e49a844681f2f742d69747e","affectsGlobalScope":true},"e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042"],"root":[176],"options":{"allowSyntheticDefaultImports":true,"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[111,123,124],[111,124,125,126,127],[111,118,124,126],[111,123,125],[82,111,118],[82,111,118,119],[111,119,120,121,122],[111,119,121],[111,120],[99,111,118,128,129,130,133],[111,129,130,132],[81,111,118,128,129,130,131],[111,130],[111,128,129],[111,118,128],[111],[81,82,111,118,140],[111,200],[111,185],[111,189,190,191],[111,188],[111,190],[111,180,186,187,192,195,197,198,199],[111,187,193,194,200],[111,193,196],[111,187,188,193,200],[111,187,200],[111,181,182,183,184],[65,111],[68,111],[69,74,102,111],[70,81,82,89,99,110,111],[70,71,81,89,111],[72,111],[73,74,82,90,111],[74,99,107,111],[75,77,81,89,111],[76,111],[77,78,111],[81,111],[79,81,111],[81,82,83,99,110,111],[81,82,83,96,99,102,111],[111,115],[77,84,89,99,110,111],[81,82,84,85,89,99,107,110,111],[84,86,99,107,110,111],[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[81,87,111],[88,110,111],[77,81,89,99,111],[90,111],[91,111],[68,92,111],[93,109,111,115],[94,111],[95,111],[81,96,97,111],[96,98,111,113],[69,81,99,100,101,102,111],[69,99,101,111],[99,100,111],[102,111],[103,111],[81,105,106,111],[105,106,111],[74,89,99,107,111],[108,111],[89,109,111],[69,84,95,110,111],[74,111],[99,111,112],[111,113],[111,114],[69,74,81,83,92,99,110,111,113,115],[99,111,116],[111,231],[111,227,228,229,230],[70,111,118,141],[111,118,135,136,137],[111,135,136],[111,135],[111,118,134],[111,206],[111,206,218],[111,203,204,205,207,218],[111,209],[111,206,213,217,220],[111,208,220],[111,211,213,216,217,220],[111,211,213,214,216,217,220],[111,203,204,205,206,207,209,210,211,212,213,217,220],[111,202,203,204,205,206,207,209,210,211,212,213,214,216,217,218,219],[111,202,220],[111,213,214,215,217,220],[111,216,220],[111,206,212,217,220],[111,210,218],[111,202],[111,144,158,160,164,166,167],[111,144,148,150,151,153,156,158,160,165,167],[111,152,153,160,166],[111,166],[111,143],[111,143,144,148,150,151,152,153,156,157,158,160,164,165,166,168,169,170,171,172,173,174],[111,147,148,150,151,159,160,164,166],[111,153,160],[111,148,150,151,156,159,164,165,166],[111,147,148,150,151,153,154,155,159,160,164,165],[111,147,160,164],[111,147,148,149,153,156,159,160,164],[111,147,150,156],[111,159,160,166],[111,143,145,146,148,152,153,156,157,160,167],[111,144,148,160,164],[111,164],[111,161,162,163],[111,145,158,160,166,168],[111,152,156,158,160],[111,152,158],[111,148,150,151,153,154,158,159,160],[111,147,151,152,175],[111,147,148,150,152,153,156,159],[111,158,165,166],[111,148,150,151,156,160,165,166],[83,91,111,138,139,142,175],[111,220]],"referencedMap":[[125,1],[128,2],[127,3],[126,4],[124,5],[120,6],[123,7],[122,8],[121,9],[119,5],[134,10],[133,11],[132,12],[131,13],[130,14],[129,15],[177,16],[141,17],[178,16],[180,16],[201,18],[186,19],[192,20],[190,16],[189,21],[191,22],[200,23],[195,24],[197,25],[198,26],[199,27],[193,16],[194,27],[196,27],[188,27],[187,16],[182,16],[181,16],[184,19],[185,28],[183,19],[140,16],[65,29],[66,29],[68,30],[69,31],[70,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,39],[80,40],[79,41],[81,40],[82,42],[83,43],[67,44],[117,16],[84,45],[85,46],[86,47],[118,48],[87,49],[88,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,58],[98,59],[99,60],[101,61],[100,62],[102,63],[103,64],[104,16],[105,65],[106,66],[107,67],[108,68],[109,69],[110,70],[111,71],[112,72],[113,73],[114,74],[115,75],[116,76],[229,16],[232,77],[227,16],[231,78],[230,16],[142,79],[228,16],[138,80],[137,81],[136,82],[135,83],[204,84],[203,85],[206,86],[210,87],[207,85],[212,88],[209,89],[214,90],[219,16],[215,91],[218,92],[220,93],[208,94],[216,95],[217,96],[213,97],[205,84],[211,98],[202,99],[62,16],[63,16],[12,16],[13,16],[17,16],[16,16],[2,16],[18,16],[19,16],[20,16],[21,16],[22,16],[23,16],[24,16],[25,16],[3,16],[4,16],[29,16],[26,16],[27,16],[28,16],[30,16],[31,16],[32,16],[5,16],[33,16],[34,16],[35,16],[36,16],[6,16],[40,16],[37,16],[38,16],[39,16],[41,16],[7,16],[42,16],[47,16],[48,16],[43,16],[44,16],[45,16],[46,16],[8,16],[52,16],[49,16],[50,16],[51,16],[53,16],[9,16],[54,16],[55,16],[56,16],[59,16],[57,16],[58,16],[60,16],[10,16],[1,16],[11,16],[64,16],[61,16],[15,16],[14,16],[168,100],[166,101],[145,16],[154,102],[167,103],[144,104],[175,105],[146,16],[165,106],[149,107],[160,108],[156,109],[148,110],[150,111],[151,111],[155,112],[147,113],[158,114],[161,115],[162,116],[163,116],[164,117],[169,16],[143,16],[170,116],[171,118],[153,119],[157,120],[152,121],[172,122],[173,123],[159,124],[174,125],[139,16],[176,126],[179,16],[221,127],[222,127],[223,127],[224,127],[225,127],[226,127]],"exportedModulesMap":[[125,1],[128,2],[127,3],[126,4],[124,5],[120,6],[123,7],[122,8],[121,9],[119,5],[134,10],[133,11],[132,12],[131,13],[130,14],[129,15],[177,16],[141,17],[178,16],[180,16],[201,18],[186,19],[192,20],[190,16],[189,21],[191,22],[200,23],[195,24],[197,25],[198,26],[199,27],[193,16],[194,27],[196,27],[188,27],[187,16],[182,16],[181,16],[184,19],[185,28],[183,19],[140,16],[65,29],[66,29],[68,30],[69,31],[70,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,39],[80,40],[79,41],[81,40],[82,42],[83,43],[67,44],[117,16],[84,45],[85,46],[86,47],[118,48],[87,49],[88,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,58],[98,59],[99,60],[101,61],[100,62],[102,63],[103,64],[104,16],[105,65],[106,66],[107,67],[108,68],[109,69],[110,70],[111,71],[112,72],[113,73],[114,74],[115,75],[116,76],[229,16],[232,77],[227,16],[231,78],[230,16],[142,79],[228,16],[138,80],[137,81],[136,82],[135,83],[204,84],[203,85],[206,86],[210,87],[207,85],[212,88],[209,89],[214,90],[219,16],[215,91],[218,92],[220,93],[208,94],[216,95],[217,96],[213,97],[205,84],[211,98],[202,99],[62,16],[63,16],[12,16],[13,16],[17,16],[16,16],[2,16],[18,16],[19,16],[20,16],[21,16],[22,16],[23,16],[24,16],[25,16],[3,16],[4,16],[29,16],[26,16],[27,16],[28,16],[30,16],[31,16],[32,16],[5,16],[33,16],[34,16],[35,16],[36,16],[6,16],[40,16],[37,16],[38,16],[39,16],[41,16],[7,16],[42,16],[47,16],[48,16],[43,16],[44,16],[45,16],[46,16],[8,16],[52,16],[49,16],[50,16],[51,16],[53,16],[9,16],[54,16],[55,16],[56,16],[59,16],[57,16],[58,16],[60,16],[10,16],[1,16],[11,16],[64,16],[61,16],[15,16],[14,16],[168,100],[166,101],[145,16],[154,102],[167,103],[144,104],[175,105],[146,16],[165,106],[149,107],[160,108],[156,109],[148,110],[150,111],[151,111],[155,112],[147,113],[158,114],[161,115],[162,116],[163,116],[164,117],[169,16],[143,16],[170,116],[171,118],[153,119],[157,120],[152,121],[172,122],[173,123],[159,124],[174,125],[139,16],[176,126],[179,16],[221,127],[222,127],[223,127],[224,127],[225,127],[226,127]],"semanticDiagnosticsPerFile":[125,128,127,126,124,120,123,122,121,119,134,133,132,131,130,129,177,141,178,180,201,186,192,190,189,191,200,195,197,198,199,193,194,196,188,187,182,181,184,185,183,140,65,66,68,69,70,71,72,73,74,75,76,77,78,80,79,81,82,83,67,117,84,85,86,118,87,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,229,232,227,231,230,142,228,138,137,136,135,204,203,206,210,207,212,209,214,219,215,218,220,208,216,217,213,205,211,202,62,63,12,13,17,16,2,18,19,20,21,22,23,24,25,3,4,29,26,27,28,30,31,32,5,33,34,35,36,6,40,37,38,39,41,7,42,47,48,43,44,45,46,8,52,49,50,51,53,9,54,55,56,59,57,58,60,10,1,11,64,61,15,14,168,166,145,154,167,144,175,146,165,149,160,156,148,150,151,155,147,158,161,162,163,164,169,143,170,171,153,157,152,172,173,159,174,139,176,179,221,222,223,224,225,226],"affectedFilesPendingEmit":[176],"emitSignatures":[176]},"version":"5.0.0-dev.20230210"} \ No newline at end of file diff --git a/second-monitor.code-workspace b/second-monitor.code-workspace new file mode 100644 index 0000000..5167d6b --- /dev/null +++ b/second-monitor.code-workspace @@ -0,0 +1,101 @@ +{ + "folders": [ + { + "name": "starbeam-docs", + "path": "." + } + ], + "settings": { + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "node_modules": true, + "docs": true + }, + "editor.codeActionsOnSave": { + "source.organizeImports": true + }, + "editor.wordWrap": "bounded", + "files.associations": { + "tsconfig.*.json": "jsonc" + }, + "codeium.enableConfig": { + "*": true + }, + "[markdown]": { + "editor.unicodeHighlight.ambiguousCharacters": false, + "editor.unicodeHighlight.invisibleCharacters": false, + "editor.wordWrap": "on", + "editor.quickSuggestions": { + "comments": "on", + "strings": "on", + "other": "on" + }, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.ts": "${capture}.js, ${capture}.ts.js", + "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts", + "*.jsx": "${capture}.js", + "*.tsx": "${capture}.ts", + "tsconfig.json": "tsconfig.*.json", + "package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, .npmrc, .markdownlint.json" + }, + "explorer.excludeGitIgnore": true, + "search.exclude": { + "**/node_modules": true, + "**/bower_components": true, + "**/*.code-search": true, + "docs": true + }, + "stylelint.enable": true, + "[yaml]": { + "editor.insertSpaces": true, + "editor.defaultFormatter": "redhat.vscode-yaml", + "editor.tabSize": 2, + "editor.autoIndent": "keep", + "gitlens.codeLens.scopes": ["document"], + "editor.quickSuggestions": { + "other": true, + "comments": false, + "strings": true + } + }, + "volar.doctor.checkVueTsc": true, + "volar.vueserver.noProjectReferences": true, + "volar.autoWrapParentheses": true, + "volar.updateImportsOnFileMove.enabled": true, + "volar.doctor.statusBarItem": true, + "volar.vueserver.vitePress.processMdFile": true, + "volar.autoCompleteRefs": true, + "volar.vueserver.textDocumentSync": "incremental", + "volar.vueserver.diagnosticModel": "pull", + "yaml.schemaStore.enable": true, + "yaml.schemas": { + "./packages/api-docs/dist/api.schema.json": "/src/api/**/*.yml" + }, + "yaml.trace.server": "messages", + "json.schemas": [ + { + "fileMatch": ["src/api/**/$api/*.json", "src/api/**/$api/*.jsonc"], + "url": "./packages/api-docs/dist/api.schema.json" + } + ], + "files.trimTrailingWhitespace": false, + "typescript.tsdk": "node_modules/typescript/lib", + "terminal.integrated.fontFamily": "\"ShureTechMono NFM\"", + "terminal.integrated.fontSize": 10, + "terminal.integrated.fontWeight": "normal", + "terminal.integrated.fontWeightBold": "bold", + "workbench.preferredLightColorTheme": "FlatUI Immersed", + "workbench.colorTheme": "Ra Focus", + "window.autoDetectColorScheme": false, + "workbench.preferredDarkColorTheme": "Ra Focus", + "workbench.preferredHighContrastLightColorTheme": "GitHub Light High Contrast" + } +} diff --git a/src/$components/Home.vue b/src/-components/Home.vue similarity index 97% rename from src/$components/Home.vue rename to src/-components/Home.vue index 12e5ee0..304bbb1 100644 --- a/src/$components/Home.vue +++ b/src/-components/Home.vue @@ -55,7 +55,7 @@ const features = [ diff --git a/src/-components/ReactPreact.vue b/src/-components/ReactPreact.vue new file mode 100644 index 0000000..b5f590e --- /dev/null +++ b/src/-components/ReactPreact.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/$components/Tutorial.vue b/src/-components/Tutorial.vue similarity index 90% rename from src/$components/Tutorial.vue rename to src/-components/Tutorial.vue index 69051cd..94be35a 100644 --- a/src/$components/Tutorial.vue +++ b/src/-components/Tutorial.vue @@ -1,5 +1,5 @@ \ No newline at end of file + diff --git a/src/.vitepress/components/Demo/Demo.vue b/src/.vitepress/components/Demo/Demo.vue index 628c23e..0ef662f 100644 --- a/src/.vitepress/components/Demo/Demo.vue +++ b/src/.vitepress/components/Demo/Demo.vue @@ -1,23 +1,24 @@ - - diff --git a/src/.vitepress/components/Demo/DemoBody.vue b/src/.vitepress/components/Demo/DemoBody.vue index bf11dd1..8cc099b 100644 --- a/src/.vitepress/components/Demo/DemoBody.vue +++ b/src/.vitepress/components/Demo/DemoBody.vue @@ -6,7 +6,8 @@ import { SandpackPreview, useSandpackConsole, } from "sandpack-vue3"; -import { ref } from "vue"; +import { usePreviewHeight } from "./bootstrap.js"; +import { ref, watch } from "vue"; import Buttons from "./Buttons.vue"; import DemoConsole from "./DemoConsole.vue"; @@ -29,58 +30,183 @@ const toggleSource = () => { }; const consoleData = useSandpackConsole(); + +const container = usePreviewHeight(); - - \ No newline at end of file + diff --git a/src/.vitepress/components/Demo/bootstrap.ts b/src/.vitepress/components/Demo/bootstrap.ts new file mode 100644 index 0000000..a0f3755 --- /dev/null +++ b/src/.vitepress/components/Demo/bootstrap.ts @@ -0,0 +1,72 @@ +import { useSandpack } from "sandpack-vue3"; +import { Ref, onMounted, onUnmounted, ref, watch } from "vue"; + +function useIframeHeight(container: Ref): Ref { + const height = ref(300); + + onMounted(() => { + let setHeight: null | number = null; + + const observer = new ResizeObserver(() => { + const iframe = container.value.querySelector(":root iframe") as + | HTMLIFrameElement + | undefined; + + if (iframe === undefined) { + console.warn("iframe not found in sandpack preview"); + } + + const currentHeight = iframe?.getBoundingClientRect().height; + + if (!currentHeight || currentHeight === setHeight) { + return; + } + + setHeight = currentHeight + 1; + iframe.style.height = `${setHeight}px`; + + height.value = setHeight; + }); + + observer.observe(container.value); + + onUnmounted(() => { + observer.disconnect(); + }); + }); + + return height; +} + +export function usePreviewHeight(): Ref { + const container = ref(); + const height = useIframeHeight(container); + + watch(height, (h: number) => { + const demo = container.value as HTMLElement | undefined; + + if (!demo) { + console.warn("demo not found in sandpack preview"); + return; + } + + const previewContainer = demo.querySelector(":root .sp-preview") as + | HTMLElement + | undefined; + + if (!previewContainer) { + console.warn("No preview container found"); + return; + } + + const previewActions = demo.querySelector(":root .sp-preview-actions") as + | HTMLElement + | undefined; + + if (!previewActions) { + console.warn("No preview actions found"); + return; + } + }); + return container; +} diff --git a/src/.vitepress/components/Demo/demo.ts b/src/.vitepress/components/Demo/demo.ts index 8416210..6f96d34 100644 --- a/src/.vitepress/components/Demo/demo.ts +++ b/src/.vitepress/components/Demo/demo.ts @@ -28,7 +28,10 @@ export function toSandpackDep(dep: string): [name: string, version: string] { const [name, version = "package.json"] = dep.slice(1).split("@"); return [`@${name}`, version]; } else { - const [name, version = "package.json"] = dep.split("@"); + const [name, version = "package.json"] = dep.split("@") as [ + string, + string | undefined + ]; return [name, version]; } } @@ -113,7 +116,7 @@ export const ARRAY_LOG_METHODS = [ "debug", "error", ] as const; -export type ArrayLogMethod = typeof ARRAY_LOG_METHODS[number]; +export type ArrayLogMethod = (typeof ARRAY_LOG_METHODS)[number]; export function isArrayLogMethod(method: string): method is ArrayLogMethod { return (ARRAY_LOG_METHODS as readonly string[]).includes(method); diff --git a/src/.vitepress/components/Mermaid.ts b/src/.vitepress/components/Mermaid.ts deleted file mode 100644 index 0a9b2ed..0000000 --- a/src/.vitepress/components/Mermaid.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { - defineComponent, - h, - nextTick, - onBeforeUnmount, - onMounted, - ref, - watch, -} from "vue"; - -import type { VNode } from "vue"; - -import { atou } from "../plugins/utils.js"; -import "./mermaid.scss"; -import { LoadingIcon } from "./shared/icons.js"; - -const MARKDOWN_ENHANCE_DELAY = 500; - -const getThemeVariables = (isDarkMode: boolean): Record => { - return { - dark: isDarkMode, - background: isDarkMode ? "#1e1e1e" : "#fff", - - primaryColor: isDarkMode ? "#389d70" : "#4abf8a", - primaryBorderColor: isDarkMode ? "#389d70" : "#4abf8a", - primaryTextColor: "#fff", - - secondaryColor: "#ffb500", - secondaryBorderColor: isDarkMode ? "#fff" : "#000", - secondaryTextColor: isDarkMode ? "#ddd" : "#333", - - tertiaryColor: isDarkMode ? "#282828" : "#efeef4", - tertiaryBorderColor: isDarkMode ? "#bbb" : "#242424", - tertiaryTextColor: isDarkMode ? "#ddd" : "#333", - - // note - noteBkgColor: isDarkMode ? "#f6d365" : "#fff5ad", - noteTextColor: "#242424", - noteBorderColor: isDarkMode ? "#f6d365" : "#333", - - lineColor: isDarkMode ? "#d3d3d3" : "#333", - textColor: isDarkMode ? "#fff" : "#242424", - - mainBkg: isDarkMode ? "#389d70" : "#4abf8a", - errorBkgColor: "#eb4d5d", - errorTextColor: "#fff", - - // flowchart - nodeBorder: isDarkMode ? "#389d70" : "#4abf8a", - nodeTextColor: isDarkMode ? "#fff" : "#242424", - - // sequence - signalTextColor: isDarkMode ? "#9e9e9e" : "#242424", - - // class - classText: "#fff", - - // state - labelColor: "#fff", - - // colors - fillType0: isDarkMode ? "#cf1322" : "#f1636e", - fillType1: "#f39c12", - fillType2: "#2ecc71", - fillType3: "#fa541c", - fillType4: "#25a55b", - fillType5: "#13c2c2", - fillType6: "#096dd9", - fillType7: "#aa6fe9", - }; -}; - -export default defineComponent({ - // eslint-disable-next-line vue/multi-word-component-names - name: "Mermaid", - - props: { - id: { type: String, required: true }, - code: { type: String, required: true }, - }, - - setup(props) { - const svgCode = ref(""); - const mermaidElement = ref(); - const isDarkmode = ref(false); - let observer: MutationObserver | null = null; - - onMounted(() => { - const html = document.querySelector("html")!; - const code = atou(props.code); - - const getDarkmodeStatus = (): boolean => - html.classList.contains("dark") || - html.getAttribute("data-theme") === "dark"; - - // FIXME: Should correct handle dark selector - isDarkmode.value = getDarkmodeStatus(); - - void Promise.all([ - import( - /* webpackChunkName: "mermaid" */ "mermaid" - ) as unknown as typeof import("mermaid"), - new Promise((resolve) => setTimeout(resolve, MARKDOWN_ENHANCE_DELAY)), - ]).then( - ([ - { - default: { initialize, renderAsync }, - }, - ]) => { - const renderMermaid = (): void => { - // generate a invisible container - const container = document.createElement("div"); - - container.style.position = "relative"; - container.style.top = "-9999px"; - - const renderCallback = (code: string): void => { - svgCode.value = code; - document.body.removeChild(container); - }; - - initialize({ - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - theme: "base", - themeVariables: getThemeVariables(isDarkmode.value), - flowchart: { useMaxWidth: false }, - sequence: { useMaxWidth: false }, - journey: { useMaxWidth: false }, - gantt: { useMaxWidth: false }, - er: { useMaxWidth: false }, - pie: { useMaxWidth: false }, - - startOnLoad: false, - }); - - // clear SVG Code - svgCode.value = ""; - - document.body.appendChild(container); - - // make sure dom is refreshed - void nextTick().then(() => - renderAsync(props.id, code, renderCallback, container) - ); - }; - - renderMermaid(); - - // watch darkmode change - observer = new MutationObserver(() => { - isDarkmode.value = getDarkmodeStatus(); - }); - - observer.observe(html, { - attributeFilter: ["class", "data-theme"], - attributes: true, - }); - - watch(isDarkmode, renderMermaid); - } - ); - }); - - onBeforeUnmount(() => { - observer?.disconnect(); - }); - - return (): VNode => - h( - "div", - { - ref: mermaidElement, - class: ["mermaid-wrapper", { loading: !svgCode.value }], - }, - svgCode.value - ? // mermaid - h("div", { class: "content", innerHTML: svgCode.value }) - : // loading - h(LoadingIcon) - ); - }, -}); diff --git a/src/.vitepress/components/StackBlitz.vue b/src/.vitepress/components/StackBlitz.vue index b88b4c2..b714a85 100644 --- a/src/.vitepress/components/StackBlitz.vue +++ b/src/.vitepress/components/StackBlitz.vue @@ -6,7 +6,7 @@ const props = defineProps({ }, height: { type: [String, Number], - default: "80vh", + default: 600, }, file: { type: String, @@ -33,6 +33,19 @@ const props = defineProps({ hidedevtools: Boolean, }); +import sdk from "@stackblitz/sdk"; +import { onMounted, ref } from "vue"; + +onMounted(() => { + sdk.embedProjectId(element.value, "starbeam-react-example-counter", { + openFile: props.file ?? props.initialpath, + width: style.width, + height: 800, + }); +}); + +const element = ref(); + function src() { let path = `https://stackblitz.com/edit/${props.id}`; @@ -63,11 +76,16 @@ function src() { const style = { width: "100%", - "border-radius": "var(--starbeam-radius)", + "border-radius": "var(--sbdoc-radius)", height: typeof props.height === "string" ? props.height : `${props.height}px`, }; diff --git a/src/.vitepress/components/Tabs/CodeTabs.vue b/src/.vitepress/components/Tabs/CodeTabs.vue index 49e843f..744ddd8 100644 --- a/src/.vitepress/components/Tabs/CodeTabs.vue +++ b/src/.vitepress/components/Tabs/CodeTabs.vue @@ -1,6 +1,4 @@