├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github └── workflows │ └── release.yml ├── .gitignore ├── .husky └── commit-msg ├── .npmrc ├── .prettierrc.yaml ├── .tool-versions ├── CHANGELOG.md ├── README.md ├── commitlint.config.js ├── esbuild.config.mjs ├── manifest.json ├── package.json ├── pnpm-lock.yaml ├── scripts └── install-in-vault.sh ├── src ├── main.ts ├── settings │ ├── Settings.ts │ ├── Settings.types.ts │ └── index.ts └── types.d.ts ├── tsconfig.json ├── version-bump.mjs └── versions.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | insert_final_newline = true 8 | indent_style = space 9 | indent_size = 2 10 | tab_width = 2 11 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | npm node_modules 2 | build -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "env": { "node": true }, 5 | "plugins": ["@typescript-eslint"], 6 | "extends": [ 7 | "eslint:recommended", 8 | "plugin:@typescript-eslint/eslint-recommended", 9 | "plugin:@typescript-eslint/recommended" 10 | ], 11 | "parserOptions": { 12 | "sourceType": "module" 13 | }, 14 | "rules": { 15 | "no-unused-vars": "off", 16 | "@typescript-eslint/no-unused-vars": ["error", { "args": "none" }], 17 | "@typescript-eslint/ban-ts-comment": "off", 18 | "no-prototype-builtins": "off", 19 | "@typescript-eslint/no-empty-function": "off" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Build obsidian plugin 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' 7 | 8 | env: 9 | PLUGIN_NAME: obsidian-literate-styles 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v3 17 | 18 | - name: Use Node.js 19 | uses: actions/setup-node@v3 20 | with: 21 | node-version-file: '.tool-versions' 22 | 23 | - uses: pnpm/action-setup@v2.0.1 24 | name: Install pnpm 25 | id: pnpm-install 26 | with: 27 | version: 7.9.5 28 | run_install: false 29 | 30 | - name: Get pnpm store directory 31 | id: pnpm-cache 32 | run: | 33 | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" 34 | 35 | - uses: actions/cache@v3 36 | name: Setup pnpm cache 37 | with: 38 | path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} 39 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 40 | restore-keys: | 41 | ${{ runner.os }}-pnpm-store- 42 | 43 | - name: Install dependencies 44 | run: pnpm install 45 | 46 | - name: Build 47 | run: | 48 | pnpm run build --if-present 49 | 50 | - name: Release 51 | uses: softprops/action-gh-release@v1 52 | with: 53 | files: | 54 | main.js 55 | manifest.json 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # vscode 2 | .vscode 3 | 4 | # Intellij 5 | *.iml 6 | .idea 7 | 8 | # npm 9 | node_modules 10 | 11 | # Don't include the compiled main.js file in the repo. 12 | # They should be uploaded to GitHub releases instead. 13 | main.js 14 | 15 | # Exclude sourcemaps 16 | *.map 17 | 18 | # obsidian 19 | data.json 20 | 21 | # Exclude macOS Finder (System Explorer) View States 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx --no -- commitlint --edit ${1} 5 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | tag-version-prefix="" 2 | auto-install-peers=true 3 | message="chore(release): :bookmark: %s " -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | trailingComma: 'es5' 2 | tabWidth: 2 3 | singleQuote: true 4 | endOfLine: 'auto' -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 16.15.0 2 | pnpm 7.12.0-0 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [Unreleased] 9 | 10 | - refactor: switch css renderer to less 11 | - refactor: instead of running every single code fence through the less 12 | renderer run all the code fences through less at once. This means we only get 13 | a render when things are looking good, so styles don't flash in and out when 14 | there is a compile error. 15 | 16 | ## [0.1.2] - 2022-09-11 17 | 18 | ### Changed 19 | 20 | - refactor: :fire: remove sass in favour of zcss.js 21 | 22 | The bundle size of the plugin with sass was more than 4MB. 23 | That is not acceptable. 24 | 25 | ## [0.1.1] - 2022-09-05 26 | 27 | ### Changed 28 | 29 | - :bug: Saving settings caused new style elements to be added to head 30 | 31 | ## [0.1.0] - 2022-09-04 32 | 33 | ### Added 34 | 35 | - :sparkles: Reference implementation of Literate Styles Obsidian plugin. 36 | 37 | [unreleased]: https://github.com/johanfriis/obsidian-literate-styles/compare/0.1.1...HEAD 38 | [0.1.2]: https://github.com/johanfriis/obsidian-literate-styles/releases/tag/0.1.2 39 | [0.1.1]: https://github.com/johanfriis/obsidian-literate-styles/releases/tag/0.1.1 40 | [0.1.0]: https://github.com/johanfriis/obsidian-literate-styles/releases/tag/0.1.0 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Obsidian Literate Styles 2 | 3 | Hello Obsidianites. Here is a little plugin I wrote that allows you to do 4 | **this** inside Obsidian. 5 | 6 | https://user-images.githubusercontent.com/3974347/188511615-86a49df7-4d54-47f4-af25-a28353b4c660.mp4 7 | 8 | Basically, this plugin allows you to write styles in an Obsidian folder that 9 | are then applied to the current running Obsidian instance. A simple form of 10 | `Literate Programming`. 11 | 12 | ### How to install 13 | 14 | For now this plugin is not realeased on the Obsidian Plugin repository, so use 15 | [BRAT][brat] to install a beta version. 16 | 17 | ### What are Literate Styles 18 | 19 | Literate programming is a type of programming where you code is interspersed 20 | with text that describes the code, as well as some common features such as 21 | `tangle` and `weave`. Literate Styles does not currently support tangling and 22 | weaving, and I am not conviced that it would make sense, so for now I have no 23 | ambition to implement that part. 24 | 25 | ### CSS or SCSS 26 | 27 | Literate Styles run the css through the sass compiler, both so it can give some 28 | feedback if the css is not well formed, and to enable writing actual scss. At 29 | this point there is no difference whether the code block is labeled as as `css` 30 | or `scss` code block, both are treated the same way 31 | 32 | ### Performance Considerations 33 | 34 | I have not tested this on very large amounts of css, but I can imagine that at 35 | some point it could start getting slow. I would like to develop some form of 36 | caching, but at the moment I'm uncertain of the best way of keeping a stable 37 | reference to a code block across file changes. 38 | 39 | --- 40 | 41 | ## For Mantainer 42 | 43 | ### How to release a new version 44 | 45 | This describes my current workflow for releasing a new version: 46 | 47 | - Decide on version bump and commit it 48 | - `npm version patch` 49 | - `npm version minor` 50 | - `npm version major` 51 | - Generate changelog and edit it to be human 52 | - `npm run changelog` 53 | - Stage changelog and ammend previous commit 54 | - `git add CHANGELOG.md` 55 | - `git commit --amend` 56 | - Push commit to GH, letting the workflow handle the release 57 | - `git push origin --tags` 58 | - Once release has been generated, modify version notes with changelog 59 | 60 | ## Development Log 61 | 62 | - 2022-09-05 - Fixed a bug that occurs because settings cause `startPlugin` to 63 | be called multiple times and creates multiple style elements in header. 64 | - 2022-09-04 - Released version 0.1.0. Realised that the plugin is a far shout 65 | from being a literate programming environment and that that is probably ok. I 66 | also had some ideas about block level caching and using frontmatter rather 67 | than a styled folder for determining what files to treat. 68 | - 2022-09-11 - Exchanged sass for zcss. The only important part of sass today, 69 | in my opinion, is nesting. zcss gives us that in about 1KB vs ~4MB for sass. 70 | Unfortunately, this means we loose error messages, but I think I can live with 71 | that for now. Prettier should be able to give us some of those soon. 72 | 73 | ## Installing in local vault 74 | 75 | To run the current build in a local vault, run the following scripts: 76 | 77 | ``` 78 | pnpm run build 79 | ./scripts/install-in-vault.sh ~/Path/to/vault 80 | ``` 81 | 82 | This script is copied almost one-to-one from the dataview repo. 83 | 84 | ## Future Plans 85 | 86 | I was considering getting rid of the stylesFolder settings and reading the 87 | frontmatter of the file for some metadata stored there. I would be curious if 88 | there is a quick way of getting the frontmatter only for a given TFile, and if 89 | it would be an issue at all. Since we will only be loading styles across all 90 | files once, it might not be so slow except for the first render. 91 | 92 | To address the initial `fouc` upon opening Obsidian, and in the interest of 93 | efficiency, we could have some file level caching, which would allow a 94 | pregenerated stylesheet to be loaded very early in the render, and then only 95 | later would we parse changed files again. :thinking: 96 | 97 | See the dataview plugin for an example implementation of a file level cache 98 | using localforage, [FullIndex][fullindex] 99 | 100 | I was also thinking about having named style blocks, similar to what is is 101 | described in [jmeiners literate programing][jmeiner] examples. Take some inspiration 102 | from [srcweave][srcweave]. This would allow me to have block level caching as well as 103 | show some UI directly on the block for when a block is being process, if there 104 | are errors, etc ... 105 | 106 | Add an easy "inline" way to get the data for a css selector, á lá Cmd+Shift+c 107 | 108 | Add prettier support? 109 | 110 | [brat]: https://obsidian.md/plugins?id=obsidian42-brat 111 | [fullindex]: https://github.com/blacksmithgu/obsidian-dataview/blob/master/src/data-index/index.ts 112 | [jmeiner]: https://www.jmeiners.com/literate-programming 113 | [srcweave]: https://github.com/justinmeiners/srcweave 114 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'], 3 | }; 4 | -------------------------------------------------------------------------------- /esbuild.config.mjs: -------------------------------------------------------------------------------- 1 | import esbuild from "esbuild"; 2 | import process from "process"; 3 | import builtins from "builtin-modules"; 4 | 5 | const banner = `/* 6 | THIS IS A GENERATED/BUNDLED FILE BY ESBUILD 7 | if you want to view the source, please visit the github repository of this plugin 8 | */ 9 | `; 10 | 11 | const prod = process.argv[2] === "production"; 12 | 13 | esbuild 14 | .build({ 15 | banner: { 16 | js: banner, 17 | }, 18 | entryPoints: ["src/main.ts"], 19 | bundle: true, 20 | external: [ 21 | "obsidian", 22 | "electron", 23 | "@codemirror/autocomplete", 24 | "@codemirror/collab", 25 | "@codemirror/commands", 26 | "@codemirror/language", 27 | "@codemirror/lint", 28 | "@codemirror/search", 29 | "@codemirror/state", 30 | "@codemirror/view", 31 | "@lezer/common", 32 | "@lezer/highlight", 33 | "@lezer/lr", 34 | ...builtins, 35 | ], 36 | format: "cjs", 37 | watch: !prod, 38 | target: "es2018", 39 | logLevel: "info", 40 | sourcemap: prod ? false : "inline", 41 | treeShaking: true, 42 | outfile: "main.js", 43 | }) 44 | .catch(() => process.exit(1)); 45 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-literate-styles", 3 | "name": "Literate Styles", 4 | "minAppVersion": "0.15.9", 5 | "description": "Develop styles straight within obsidian", 6 | "author": "Johan Friis", 7 | "authorUrl": "https://github.com/johanfriis", 8 | "isDesktopOnly": true, 9 | "version": "0.1.2" 10 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obsidian-literate-styles", 3 | "version": "0.1.2", 4 | "description": "Develop Obsidian styles straight within Obsidian", 5 | "main": "main.js", 6 | "scripts": { 7 | "dev": "node esbuild.config.mjs", 8 | "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", 9 | "version:bump": "node version-bump.mjs", 10 | "version:git": "git add manifest.json versions.json CHANGELOG.md", 11 | "version": "run-s version:*", 12 | "changelog": "curl -s 'https://raw.githubusercontent.com/adamtabrams/change/master/change' | sh -s", 13 | "prepare": "husky install" 14 | }, 15 | "keywords": [], 16 | "author": "", 17 | "private": "true", 18 | "license": "MIT", 19 | "devDependencies": { 20 | "@commitlint/cli": "17.1.2", 21 | "@commitlint/config-conventional": "17.1.0", 22 | "@types/less": "3.0.3", 23 | "@types/node": "16.11.6", 24 | "@typescript-eslint/eslint-plugin": "5.29.0", 25 | "@typescript-eslint/parser": "5.29.0", 26 | "builtin-modules": "3.3.0", 27 | "esbuild": "0.14.47", 28 | "husky": "8.0.1", 29 | "npm-run-all": "4.1.5", 30 | "obsidian": "latest", 31 | "tslib": "2.4.0", 32 | "typescript": "4.7.4" 33 | }, 34 | "dependencies": { 35 | "less": "4.1.3" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@commitlint/cli': 17.1.2 5 | '@commitlint/config-conventional': 17.1.0 6 | '@types/less': 3.0.3 7 | '@types/node': 16.11.6 8 | '@typescript-eslint/eslint-plugin': 5.29.0 9 | '@typescript-eslint/parser': 5.29.0 10 | builtin-modules: 3.3.0 11 | esbuild: 0.14.47 12 | husky: 8.0.1 13 | less: 4.1.3 14 | npm-run-all: 4.1.5 15 | obsidian: latest 16 | tslib: 2.4.0 17 | typescript: 4.7.4 18 | 19 | dependencies: 20 | less: 4.1.3 21 | 22 | devDependencies: 23 | '@commitlint/cli': 17.1.2 24 | '@commitlint/config-conventional': 17.1.0 25 | '@types/less': 3.0.3 26 | '@types/node': 16.11.6 27 | '@typescript-eslint/eslint-plugin': 5.29.0_jvghj7jkteugygu4eap3fpvzam 28 | '@typescript-eslint/parser': 5.29.0_sorwav4hsh5vncerguqybud76i 29 | builtin-modules: 3.3.0 30 | esbuild: 0.14.47 31 | husky: 8.0.1 32 | npm-run-all: 4.1.5 33 | obsidian: 0.16.3_qizpravbztgegjbetdhnhcmufm 34 | tslib: 2.4.0 35 | typescript: 4.7.4 36 | 37 | packages: 38 | 39 | /@babel/code-frame/7.18.6: 40 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | '@babel/highlight': 7.18.6 44 | dev: true 45 | 46 | /@babel/helper-validator-identifier/7.18.6: 47 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 48 | engines: {node: '>=6.9.0'} 49 | dev: true 50 | 51 | /@babel/highlight/7.18.6: 52 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 53 | engines: {node: '>=6.9.0'} 54 | dependencies: 55 | '@babel/helper-validator-identifier': 7.18.6 56 | chalk: 2.4.2 57 | js-tokens: 4.0.0 58 | dev: true 59 | 60 | /@codemirror/state/6.1.1: 61 | resolution: {integrity: sha512-2s+aXsxmAwnR3Rd+JDHPG/1lw0YsA9PEwl7Re88gHJHGfxyfEzKBmsN4rr53RyPIR4lzbbhJX0DCq0WlqlBIRw==} 62 | dev: true 63 | 64 | /@codemirror/view/6.2.2: 65 | resolution: {integrity: sha512-RwtFlBM/+xnv95urH1D8bVsX3KYLZGygGyZG2TZoXW2Q/GMrI+AuUXh7jBE1M38IOX3YnLTlp6RdgCx3Xo2jVA==} 66 | dependencies: 67 | '@codemirror/state': 6.1.1 68 | style-mod: 4.0.0 69 | w3c-keyname: 2.2.6 70 | dev: true 71 | 72 | /@commitlint/cli/17.1.2: 73 | resolution: {integrity: sha512-h/4Hlka3bvCLbnxf0Er2ri5A44VMlbMSkdTRp8Adv2tRiklSTRIoPGs7OEXDv3EoDs2AAzILiPookgM4Gi7LOw==} 74 | engines: {node: '>=v14'} 75 | hasBin: true 76 | dependencies: 77 | '@commitlint/format': 17.0.0 78 | '@commitlint/lint': 17.1.0 79 | '@commitlint/load': 17.1.2 80 | '@commitlint/read': 17.1.0 81 | '@commitlint/types': 17.0.0 82 | execa: 5.1.1 83 | lodash: 4.17.21 84 | resolve-from: 5.0.0 85 | resolve-global: 1.0.0 86 | yargs: 17.5.1 87 | transitivePeerDependencies: 88 | - '@swc/core' 89 | - '@swc/wasm' 90 | dev: true 91 | 92 | /@commitlint/config-conventional/17.1.0: 93 | resolution: {integrity: sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==} 94 | engines: {node: '>=v14'} 95 | dependencies: 96 | conventional-changelog-conventionalcommits: 5.0.0 97 | dev: true 98 | 99 | /@commitlint/config-validator/17.1.0: 100 | resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==} 101 | engines: {node: '>=v14'} 102 | dependencies: 103 | '@commitlint/types': 17.0.0 104 | ajv: 8.11.0 105 | dev: true 106 | 107 | /@commitlint/ensure/17.0.0: 108 | resolution: {integrity: sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==} 109 | engines: {node: '>=v14'} 110 | dependencies: 111 | '@commitlint/types': 17.0.0 112 | lodash: 4.17.21 113 | dev: true 114 | 115 | /@commitlint/execute-rule/17.0.0: 116 | resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} 117 | engines: {node: '>=v14'} 118 | dev: true 119 | 120 | /@commitlint/format/17.0.0: 121 | resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==} 122 | engines: {node: '>=v14'} 123 | dependencies: 124 | '@commitlint/types': 17.0.0 125 | chalk: 4.1.2 126 | dev: true 127 | 128 | /@commitlint/is-ignored/17.1.0: 129 | resolution: {integrity: sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==} 130 | engines: {node: '>=v14'} 131 | dependencies: 132 | '@commitlint/types': 17.0.0 133 | semver: 7.3.7 134 | dev: true 135 | 136 | /@commitlint/lint/17.1.0: 137 | resolution: {integrity: sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==} 138 | engines: {node: '>=v14'} 139 | dependencies: 140 | '@commitlint/is-ignored': 17.1.0 141 | '@commitlint/parse': 17.0.0 142 | '@commitlint/rules': 17.0.0 143 | '@commitlint/types': 17.0.0 144 | dev: true 145 | 146 | /@commitlint/load/17.1.2: 147 | resolution: {integrity: sha512-sk2p/jFYAWLChIfOIp/MGSIn/WzZ0vkc3afw+l4X8hGEYkvDe4gQUUAVxjl/6xMRn0HgnSLMZ04xXh5pkTsmgg==} 148 | engines: {node: '>=v14'} 149 | dependencies: 150 | '@commitlint/config-validator': 17.1.0 151 | '@commitlint/execute-rule': 17.0.0 152 | '@commitlint/resolve-extends': 17.1.0 153 | '@commitlint/types': 17.0.0 154 | '@types/node': 14.18.26 155 | chalk: 4.1.2 156 | cosmiconfig: 7.0.1 157 | cosmiconfig-typescript-loader: 4.0.0_g2hk5bvc6tygpm343gjj4vegfu 158 | lodash: 4.17.21 159 | resolve-from: 5.0.0 160 | ts-node: 10.9.1_katx45y2r2njfbceklinbcf2m4 161 | typescript: 4.7.4 162 | transitivePeerDependencies: 163 | - '@swc/core' 164 | - '@swc/wasm' 165 | dev: true 166 | 167 | /@commitlint/message/17.0.0: 168 | resolution: {integrity: sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw==} 169 | engines: {node: '>=v14'} 170 | dev: true 171 | 172 | /@commitlint/parse/17.0.0: 173 | resolution: {integrity: sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A==} 174 | engines: {node: '>=v14'} 175 | dependencies: 176 | '@commitlint/types': 17.0.0 177 | conventional-changelog-angular: 5.0.13 178 | conventional-commits-parser: 3.2.4 179 | dev: true 180 | 181 | /@commitlint/read/17.1.0: 182 | resolution: {integrity: sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==} 183 | engines: {node: '>=v14'} 184 | dependencies: 185 | '@commitlint/top-level': 17.0.0 186 | '@commitlint/types': 17.0.0 187 | fs-extra: 10.1.0 188 | git-raw-commits: 2.0.11 189 | minimist: 1.2.6 190 | dev: true 191 | 192 | /@commitlint/resolve-extends/17.1.0: 193 | resolution: {integrity: sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==} 194 | engines: {node: '>=v14'} 195 | dependencies: 196 | '@commitlint/config-validator': 17.1.0 197 | '@commitlint/types': 17.0.0 198 | import-fresh: 3.3.0 199 | lodash: 4.17.21 200 | resolve-from: 5.0.0 201 | resolve-global: 1.0.0 202 | dev: true 203 | 204 | /@commitlint/rules/17.0.0: 205 | resolution: {integrity: sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ==} 206 | engines: {node: '>=v14'} 207 | dependencies: 208 | '@commitlint/ensure': 17.0.0 209 | '@commitlint/message': 17.0.0 210 | '@commitlint/to-lines': 17.0.0 211 | '@commitlint/types': 17.0.0 212 | execa: 5.1.1 213 | dev: true 214 | 215 | /@commitlint/to-lines/17.0.0: 216 | resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} 217 | engines: {node: '>=v14'} 218 | dev: true 219 | 220 | /@commitlint/top-level/17.0.0: 221 | resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==} 222 | engines: {node: '>=v14'} 223 | dependencies: 224 | find-up: 5.0.0 225 | dev: true 226 | 227 | /@commitlint/types/17.0.0: 228 | resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} 229 | engines: {node: '>=v14'} 230 | dependencies: 231 | chalk: 4.1.2 232 | dev: true 233 | 234 | /@cspotcode/source-map-support/0.8.1: 235 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 236 | engines: {node: '>=12'} 237 | dependencies: 238 | '@jridgewell/trace-mapping': 0.3.9 239 | dev: true 240 | 241 | /@eslint/eslintrc/1.3.1: 242 | resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} 243 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 244 | dependencies: 245 | ajv: 6.12.6 246 | debug: 4.3.4 247 | espree: 9.4.0 248 | globals: 13.17.0 249 | ignore: 5.2.0 250 | import-fresh: 3.3.0 251 | js-yaml: 4.1.0 252 | minimatch: 3.1.2 253 | strip-json-comments: 3.1.1 254 | transitivePeerDependencies: 255 | - supports-color 256 | dev: true 257 | 258 | /@humanwhocodes/config-array/0.10.4: 259 | resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} 260 | engines: {node: '>=10.10.0'} 261 | dependencies: 262 | '@humanwhocodes/object-schema': 1.2.1 263 | debug: 4.3.4 264 | minimatch: 3.1.2 265 | transitivePeerDependencies: 266 | - supports-color 267 | dev: true 268 | 269 | /@humanwhocodes/gitignore-to-minimatch/1.0.2: 270 | resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} 271 | dev: true 272 | 273 | /@humanwhocodes/module-importer/1.0.1: 274 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 275 | engines: {node: '>=12.22'} 276 | dev: true 277 | 278 | /@humanwhocodes/object-schema/1.2.1: 279 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 280 | dev: true 281 | 282 | /@jridgewell/resolve-uri/3.1.0: 283 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 284 | engines: {node: '>=6.0.0'} 285 | dev: true 286 | 287 | /@jridgewell/sourcemap-codec/1.4.14: 288 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 289 | dev: true 290 | 291 | /@jridgewell/trace-mapping/0.3.9: 292 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 293 | dependencies: 294 | '@jridgewell/resolve-uri': 3.1.0 295 | '@jridgewell/sourcemap-codec': 1.4.14 296 | dev: true 297 | 298 | /@nodelib/fs.scandir/2.1.5: 299 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 300 | engines: {node: '>= 8'} 301 | dependencies: 302 | '@nodelib/fs.stat': 2.0.5 303 | run-parallel: 1.2.0 304 | dev: true 305 | 306 | /@nodelib/fs.stat/2.0.5: 307 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 308 | engines: {node: '>= 8'} 309 | dev: true 310 | 311 | /@nodelib/fs.walk/1.2.8: 312 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 313 | engines: {node: '>= 8'} 314 | dependencies: 315 | '@nodelib/fs.scandir': 2.1.5 316 | fastq: 1.13.0 317 | dev: true 318 | 319 | /@tsconfig/node10/1.0.9: 320 | resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} 321 | dev: true 322 | 323 | /@tsconfig/node12/1.0.11: 324 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 325 | dev: true 326 | 327 | /@tsconfig/node14/1.0.3: 328 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 329 | dev: true 330 | 331 | /@tsconfig/node16/1.0.3: 332 | resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} 333 | dev: true 334 | 335 | /@types/codemirror/0.0.108: 336 | resolution: {integrity: sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==} 337 | dependencies: 338 | '@types/tern': 0.23.4 339 | dev: true 340 | 341 | /@types/estree/1.0.0: 342 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 343 | dev: true 344 | 345 | /@types/json-schema/7.0.11: 346 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 347 | dev: true 348 | 349 | /@types/less/3.0.3: 350 | resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} 351 | dev: true 352 | 353 | /@types/minimist/1.2.2: 354 | resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} 355 | dev: true 356 | 357 | /@types/node/14.18.26: 358 | resolution: {integrity: sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA==} 359 | dev: true 360 | 361 | /@types/node/16.11.6: 362 | resolution: {integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==} 363 | dev: true 364 | 365 | /@types/normalize-package-data/2.4.1: 366 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 367 | dev: true 368 | 369 | /@types/parse-json/4.0.0: 370 | resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} 371 | dev: true 372 | 373 | /@types/tern/0.23.4: 374 | resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} 375 | dependencies: 376 | '@types/estree': 1.0.0 377 | dev: true 378 | 379 | /@typescript-eslint/eslint-plugin/5.29.0_jvghj7jkteugygu4eap3fpvzam: 380 | resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==} 381 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 382 | peerDependencies: 383 | '@typescript-eslint/parser': ^5.0.0 384 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 385 | typescript: '*' 386 | peerDependenciesMeta: 387 | typescript: 388 | optional: true 389 | dependencies: 390 | '@typescript-eslint/parser': 5.29.0_sorwav4hsh5vncerguqybud76i 391 | '@typescript-eslint/scope-manager': 5.29.0 392 | '@typescript-eslint/type-utils': 5.29.0_sorwav4hsh5vncerguqybud76i 393 | '@typescript-eslint/utils': 5.29.0_sorwav4hsh5vncerguqybud76i 394 | debug: 4.3.4 395 | eslint: 8.23.0 396 | functional-red-black-tree: 1.0.1 397 | ignore: 5.2.0 398 | regexpp: 3.2.0 399 | semver: 7.3.7 400 | tsutils: 3.21.0_typescript@4.7.4 401 | typescript: 4.7.4 402 | transitivePeerDependencies: 403 | - supports-color 404 | dev: true 405 | 406 | /@typescript-eslint/parser/5.29.0_sorwav4hsh5vncerguqybud76i: 407 | resolution: {integrity: sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==} 408 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 409 | peerDependencies: 410 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 411 | typescript: '*' 412 | peerDependenciesMeta: 413 | typescript: 414 | optional: true 415 | dependencies: 416 | '@typescript-eslint/scope-manager': 5.29.0 417 | '@typescript-eslint/types': 5.29.0 418 | '@typescript-eslint/typescript-estree': 5.29.0_typescript@4.7.4 419 | debug: 4.3.4 420 | eslint: 8.23.0 421 | typescript: 4.7.4 422 | transitivePeerDependencies: 423 | - supports-color 424 | dev: true 425 | 426 | /@typescript-eslint/scope-manager/5.29.0: 427 | resolution: {integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==} 428 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 429 | dependencies: 430 | '@typescript-eslint/types': 5.29.0 431 | '@typescript-eslint/visitor-keys': 5.29.0 432 | dev: true 433 | 434 | /@typescript-eslint/type-utils/5.29.0_sorwav4hsh5vncerguqybud76i: 435 | resolution: {integrity: sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==} 436 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 437 | peerDependencies: 438 | eslint: '*' 439 | typescript: '*' 440 | peerDependenciesMeta: 441 | typescript: 442 | optional: true 443 | dependencies: 444 | '@typescript-eslint/utils': 5.29.0_sorwav4hsh5vncerguqybud76i 445 | debug: 4.3.4 446 | eslint: 8.23.0 447 | tsutils: 3.21.0_typescript@4.7.4 448 | typescript: 4.7.4 449 | transitivePeerDependencies: 450 | - supports-color 451 | dev: true 452 | 453 | /@typescript-eslint/types/5.29.0: 454 | resolution: {integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==} 455 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 456 | dev: true 457 | 458 | /@typescript-eslint/typescript-estree/5.29.0_typescript@4.7.4: 459 | resolution: {integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==} 460 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 461 | peerDependencies: 462 | typescript: '*' 463 | peerDependenciesMeta: 464 | typescript: 465 | optional: true 466 | dependencies: 467 | '@typescript-eslint/types': 5.29.0 468 | '@typescript-eslint/visitor-keys': 5.29.0 469 | debug: 4.3.4 470 | globby: 11.1.0 471 | is-glob: 4.0.3 472 | semver: 7.3.7 473 | tsutils: 3.21.0_typescript@4.7.4 474 | typescript: 4.7.4 475 | transitivePeerDependencies: 476 | - supports-color 477 | dev: true 478 | 479 | /@typescript-eslint/utils/5.29.0_sorwav4hsh5vncerguqybud76i: 480 | resolution: {integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==} 481 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 482 | peerDependencies: 483 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 484 | dependencies: 485 | '@types/json-schema': 7.0.11 486 | '@typescript-eslint/scope-manager': 5.29.0 487 | '@typescript-eslint/types': 5.29.0 488 | '@typescript-eslint/typescript-estree': 5.29.0_typescript@4.7.4 489 | eslint: 8.23.0 490 | eslint-scope: 5.1.1 491 | eslint-utils: 3.0.0_eslint@8.23.0 492 | transitivePeerDependencies: 493 | - supports-color 494 | - typescript 495 | dev: true 496 | 497 | /@typescript-eslint/visitor-keys/5.29.0: 498 | resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==} 499 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 500 | dependencies: 501 | '@typescript-eslint/types': 5.29.0 502 | eslint-visitor-keys: 3.3.0 503 | dev: true 504 | 505 | /JSONStream/1.3.5: 506 | resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} 507 | hasBin: true 508 | dependencies: 509 | jsonparse: 1.3.1 510 | through: 2.3.8 511 | dev: true 512 | 513 | /acorn-jsx/5.3.2_acorn@8.8.0: 514 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 515 | peerDependencies: 516 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 517 | dependencies: 518 | acorn: 8.8.0 519 | dev: true 520 | 521 | /acorn-walk/8.2.0: 522 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 523 | engines: {node: '>=0.4.0'} 524 | dev: true 525 | 526 | /acorn/8.8.0: 527 | resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} 528 | engines: {node: '>=0.4.0'} 529 | hasBin: true 530 | dev: true 531 | 532 | /ajv/6.12.6: 533 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 534 | dependencies: 535 | fast-deep-equal: 3.1.3 536 | fast-json-stable-stringify: 2.1.0 537 | json-schema-traverse: 0.4.1 538 | uri-js: 4.4.1 539 | dev: true 540 | 541 | /ajv/8.11.0: 542 | resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} 543 | dependencies: 544 | fast-deep-equal: 3.1.3 545 | json-schema-traverse: 1.0.0 546 | require-from-string: 2.0.2 547 | uri-js: 4.4.1 548 | dev: true 549 | 550 | /ansi-regex/5.0.1: 551 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 552 | engines: {node: '>=8'} 553 | dev: true 554 | 555 | /ansi-styles/3.2.1: 556 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 557 | engines: {node: '>=4'} 558 | dependencies: 559 | color-convert: 1.9.3 560 | dev: true 561 | 562 | /ansi-styles/4.3.0: 563 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 564 | engines: {node: '>=8'} 565 | dependencies: 566 | color-convert: 2.0.1 567 | dev: true 568 | 569 | /arg/4.1.3: 570 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 571 | dev: true 572 | 573 | /argparse/2.0.1: 574 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 575 | dev: true 576 | 577 | /array-ify/1.0.0: 578 | resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} 579 | dev: true 580 | 581 | /array-union/2.1.0: 582 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 583 | engines: {node: '>=8'} 584 | dev: true 585 | 586 | /arrify/1.0.1: 587 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 588 | engines: {node: '>=0.10.0'} 589 | dev: true 590 | 591 | /balanced-match/1.0.2: 592 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 593 | dev: true 594 | 595 | /brace-expansion/1.1.11: 596 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 597 | dependencies: 598 | balanced-match: 1.0.2 599 | concat-map: 0.0.1 600 | dev: true 601 | 602 | /braces/3.0.2: 603 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 604 | engines: {node: '>=8'} 605 | dependencies: 606 | fill-range: 7.0.1 607 | dev: true 608 | 609 | /builtin-modules/3.3.0: 610 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 611 | engines: {node: '>=6'} 612 | dev: true 613 | 614 | /call-bind/1.0.2: 615 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 616 | dependencies: 617 | function-bind: 1.1.1 618 | get-intrinsic: 1.1.2 619 | dev: true 620 | 621 | /callsites/3.1.0: 622 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 623 | engines: {node: '>=6'} 624 | dev: true 625 | 626 | /camelcase-keys/6.2.2: 627 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 628 | engines: {node: '>=8'} 629 | dependencies: 630 | camelcase: 5.3.1 631 | map-obj: 4.3.0 632 | quick-lru: 4.0.1 633 | dev: true 634 | 635 | /camelcase/5.3.1: 636 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 637 | engines: {node: '>=6'} 638 | dev: true 639 | 640 | /chalk/2.4.2: 641 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 642 | engines: {node: '>=4'} 643 | dependencies: 644 | ansi-styles: 3.2.1 645 | escape-string-regexp: 1.0.5 646 | supports-color: 5.5.0 647 | dev: true 648 | 649 | /chalk/4.1.2: 650 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 651 | engines: {node: '>=10'} 652 | dependencies: 653 | ansi-styles: 4.3.0 654 | supports-color: 7.2.0 655 | dev: true 656 | 657 | /cliui/7.0.4: 658 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 659 | dependencies: 660 | string-width: 4.2.3 661 | strip-ansi: 6.0.1 662 | wrap-ansi: 7.0.0 663 | dev: true 664 | 665 | /color-convert/1.9.3: 666 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 667 | dependencies: 668 | color-name: 1.1.3 669 | dev: true 670 | 671 | /color-convert/2.0.1: 672 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 673 | engines: {node: '>=7.0.0'} 674 | dependencies: 675 | color-name: 1.1.4 676 | dev: true 677 | 678 | /color-name/1.1.3: 679 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 680 | dev: true 681 | 682 | /color-name/1.1.4: 683 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 684 | dev: true 685 | 686 | /compare-func/2.0.0: 687 | resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} 688 | dependencies: 689 | array-ify: 1.0.0 690 | dot-prop: 5.3.0 691 | dev: true 692 | 693 | /concat-map/0.0.1: 694 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 695 | dev: true 696 | 697 | /conventional-changelog-angular/5.0.13: 698 | resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} 699 | engines: {node: '>=10'} 700 | dependencies: 701 | compare-func: 2.0.0 702 | q: 1.5.1 703 | dev: true 704 | 705 | /conventional-changelog-conventionalcommits/5.0.0: 706 | resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} 707 | engines: {node: '>=10'} 708 | dependencies: 709 | compare-func: 2.0.0 710 | lodash: 4.17.21 711 | q: 1.5.1 712 | dev: true 713 | 714 | /conventional-commits-parser/3.2.4: 715 | resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} 716 | engines: {node: '>=10'} 717 | hasBin: true 718 | dependencies: 719 | JSONStream: 1.3.5 720 | is-text-path: 1.0.1 721 | lodash: 4.17.21 722 | meow: 8.1.2 723 | split2: 3.2.2 724 | through2: 4.0.2 725 | dev: true 726 | 727 | /copy-anything/2.0.6: 728 | resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} 729 | dependencies: 730 | is-what: 3.14.1 731 | dev: false 732 | 733 | /cosmiconfig-typescript-loader/4.0.0_g2hk5bvc6tygpm343gjj4vegfu: 734 | resolution: {integrity: sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g==} 735 | engines: {node: '>=12', npm: '>=6'} 736 | peerDependencies: 737 | '@types/node': '*' 738 | cosmiconfig: '>=7' 739 | ts-node: '>=10' 740 | typescript: '>=3' 741 | dependencies: 742 | '@types/node': 14.18.26 743 | cosmiconfig: 7.0.1 744 | ts-node: 10.9.1_katx45y2r2njfbceklinbcf2m4 745 | typescript: 4.7.4 746 | dev: true 747 | 748 | /cosmiconfig/7.0.1: 749 | resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} 750 | engines: {node: '>=10'} 751 | dependencies: 752 | '@types/parse-json': 4.0.0 753 | import-fresh: 3.3.0 754 | parse-json: 5.2.0 755 | path-type: 4.0.0 756 | yaml: 1.10.2 757 | dev: true 758 | 759 | /create-require/1.1.1: 760 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 761 | dev: true 762 | 763 | /cross-spawn/6.0.5: 764 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 765 | engines: {node: '>=4.8'} 766 | dependencies: 767 | nice-try: 1.0.5 768 | path-key: 2.0.1 769 | semver: 5.7.1 770 | shebang-command: 1.2.0 771 | which: 1.3.1 772 | dev: true 773 | 774 | /cross-spawn/7.0.3: 775 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 776 | engines: {node: '>= 8'} 777 | dependencies: 778 | path-key: 3.1.1 779 | shebang-command: 2.0.0 780 | which: 2.0.2 781 | dev: true 782 | 783 | /dargs/7.0.0: 784 | resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} 785 | engines: {node: '>=8'} 786 | dev: true 787 | 788 | /debug/3.2.7: 789 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 790 | peerDependencies: 791 | supports-color: '*' 792 | peerDependenciesMeta: 793 | supports-color: 794 | optional: true 795 | dependencies: 796 | ms: 2.1.2 797 | dev: false 798 | optional: true 799 | 800 | /debug/4.3.4: 801 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 802 | engines: {node: '>=6.0'} 803 | peerDependencies: 804 | supports-color: '*' 805 | peerDependenciesMeta: 806 | supports-color: 807 | optional: true 808 | dependencies: 809 | ms: 2.1.2 810 | dev: true 811 | 812 | /decamelize-keys/1.1.0: 813 | resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} 814 | engines: {node: '>=0.10.0'} 815 | dependencies: 816 | decamelize: 1.2.0 817 | map-obj: 1.0.1 818 | dev: true 819 | 820 | /decamelize/1.2.0: 821 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 822 | engines: {node: '>=0.10.0'} 823 | dev: true 824 | 825 | /deep-is/0.1.4: 826 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 827 | dev: true 828 | 829 | /define-properties/1.1.4: 830 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 831 | engines: {node: '>= 0.4'} 832 | dependencies: 833 | has-property-descriptors: 1.0.0 834 | object-keys: 1.1.1 835 | dev: true 836 | 837 | /diff/4.0.2: 838 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 839 | engines: {node: '>=0.3.1'} 840 | dev: true 841 | 842 | /dir-glob/3.0.1: 843 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 844 | engines: {node: '>=8'} 845 | dependencies: 846 | path-type: 4.0.0 847 | dev: true 848 | 849 | /doctrine/3.0.0: 850 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 851 | engines: {node: '>=6.0.0'} 852 | dependencies: 853 | esutils: 2.0.3 854 | dev: true 855 | 856 | /dot-prop/5.3.0: 857 | resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} 858 | engines: {node: '>=8'} 859 | dependencies: 860 | is-obj: 2.0.0 861 | dev: true 862 | 863 | /emoji-regex/8.0.0: 864 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 865 | dev: true 866 | 867 | /errno/0.1.8: 868 | resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} 869 | hasBin: true 870 | requiresBuild: true 871 | dependencies: 872 | prr: 1.0.1 873 | dev: false 874 | optional: true 875 | 876 | /error-ex/1.3.2: 877 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 878 | dependencies: 879 | is-arrayish: 0.2.1 880 | dev: true 881 | 882 | /es-abstract/1.20.2: 883 | resolution: {integrity: sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==} 884 | engines: {node: '>= 0.4'} 885 | dependencies: 886 | call-bind: 1.0.2 887 | es-to-primitive: 1.2.1 888 | function-bind: 1.1.1 889 | function.prototype.name: 1.1.5 890 | get-intrinsic: 1.1.2 891 | get-symbol-description: 1.0.0 892 | has: 1.0.3 893 | has-property-descriptors: 1.0.0 894 | has-symbols: 1.0.3 895 | internal-slot: 1.0.3 896 | is-callable: 1.2.4 897 | is-negative-zero: 2.0.2 898 | is-regex: 1.1.4 899 | is-shared-array-buffer: 1.0.2 900 | is-string: 1.0.7 901 | is-weakref: 1.0.2 902 | object-inspect: 1.12.2 903 | object-keys: 1.1.1 904 | object.assign: 4.1.4 905 | regexp.prototype.flags: 1.4.3 906 | string.prototype.trimend: 1.0.5 907 | string.prototype.trimstart: 1.0.5 908 | unbox-primitive: 1.0.2 909 | dev: true 910 | 911 | /es-to-primitive/1.2.1: 912 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 913 | engines: {node: '>= 0.4'} 914 | dependencies: 915 | is-callable: 1.2.4 916 | is-date-object: 1.0.5 917 | is-symbol: 1.0.4 918 | dev: true 919 | 920 | /esbuild-android-64/0.14.47: 921 | resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} 922 | engines: {node: '>=12'} 923 | cpu: [x64] 924 | os: [android] 925 | requiresBuild: true 926 | dev: true 927 | optional: true 928 | 929 | /esbuild-android-arm64/0.14.47: 930 | resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} 931 | engines: {node: '>=12'} 932 | cpu: [arm64] 933 | os: [android] 934 | requiresBuild: true 935 | dev: true 936 | optional: true 937 | 938 | /esbuild-darwin-64/0.14.47: 939 | resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} 940 | engines: {node: '>=12'} 941 | cpu: [x64] 942 | os: [darwin] 943 | requiresBuild: true 944 | dev: true 945 | optional: true 946 | 947 | /esbuild-darwin-arm64/0.14.47: 948 | resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} 949 | engines: {node: '>=12'} 950 | cpu: [arm64] 951 | os: [darwin] 952 | requiresBuild: true 953 | dev: true 954 | optional: true 955 | 956 | /esbuild-freebsd-64/0.14.47: 957 | resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} 958 | engines: {node: '>=12'} 959 | cpu: [x64] 960 | os: [freebsd] 961 | requiresBuild: true 962 | dev: true 963 | optional: true 964 | 965 | /esbuild-freebsd-arm64/0.14.47: 966 | resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} 967 | engines: {node: '>=12'} 968 | cpu: [arm64] 969 | os: [freebsd] 970 | requiresBuild: true 971 | dev: true 972 | optional: true 973 | 974 | /esbuild-linux-32/0.14.47: 975 | resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} 976 | engines: {node: '>=12'} 977 | cpu: [ia32] 978 | os: [linux] 979 | requiresBuild: true 980 | dev: true 981 | optional: true 982 | 983 | /esbuild-linux-64/0.14.47: 984 | resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} 985 | engines: {node: '>=12'} 986 | cpu: [x64] 987 | os: [linux] 988 | requiresBuild: true 989 | dev: true 990 | optional: true 991 | 992 | /esbuild-linux-arm/0.14.47: 993 | resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} 994 | engines: {node: '>=12'} 995 | cpu: [arm] 996 | os: [linux] 997 | requiresBuild: true 998 | dev: true 999 | optional: true 1000 | 1001 | /esbuild-linux-arm64/0.14.47: 1002 | resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} 1003 | engines: {node: '>=12'} 1004 | cpu: [arm64] 1005 | os: [linux] 1006 | requiresBuild: true 1007 | dev: true 1008 | optional: true 1009 | 1010 | /esbuild-linux-mips64le/0.14.47: 1011 | resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} 1012 | engines: {node: '>=12'} 1013 | cpu: [mips64el] 1014 | os: [linux] 1015 | requiresBuild: true 1016 | dev: true 1017 | optional: true 1018 | 1019 | /esbuild-linux-ppc64le/0.14.47: 1020 | resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} 1021 | engines: {node: '>=12'} 1022 | cpu: [ppc64] 1023 | os: [linux] 1024 | requiresBuild: true 1025 | dev: true 1026 | optional: true 1027 | 1028 | /esbuild-linux-riscv64/0.14.47: 1029 | resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} 1030 | engines: {node: '>=12'} 1031 | cpu: [riscv64] 1032 | os: [linux] 1033 | requiresBuild: true 1034 | dev: true 1035 | optional: true 1036 | 1037 | /esbuild-linux-s390x/0.14.47: 1038 | resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} 1039 | engines: {node: '>=12'} 1040 | cpu: [s390x] 1041 | os: [linux] 1042 | requiresBuild: true 1043 | dev: true 1044 | optional: true 1045 | 1046 | /esbuild-netbsd-64/0.14.47: 1047 | resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} 1048 | engines: {node: '>=12'} 1049 | cpu: [x64] 1050 | os: [netbsd] 1051 | requiresBuild: true 1052 | dev: true 1053 | optional: true 1054 | 1055 | /esbuild-openbsd-64/0.14.47: 1056 | resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} 1057 | engines: {node: '>=12'} 1058 | cpu: [x64] 1059 | os: [openbsd] 1060 | requiresBuild: true 1061 | dev: true 1062 | optional: true 1063 | 1064 | /esbuild-sunos-64/0.14.47: 1065 | resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} 1066 | engines: {node: '>=12'} 1067 | cpu: [x64] 1068 | os: [sunos] 1069 | requiresBuild: true 1070 | dev: true 1071 | optional: true 1072 | 1073 | /esbuild-windows-32/0.14.47: 1074 | resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} 1075 | engines: {node: '>=12'} 1076 | cpu: [ia32] 1077 | os: [win32] 1078 | requiresBuild: true 1079 | dev: true 1080 | optional: true 1081 | 1082 | /esbuild-windows-64/0.14.47: 1083 | resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} 1084 | engines: {node: '>=12'} 1085 | cpu: [x64] 1086 | os: [win32] 1087 | requiresBuild: true 1088 | dev: true 1089 | optional: true 1090 | 1091 | /esbuild-windows-arm64/0.14.47: 1092 | resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} 1093 | engines: {node: '>=12'} 1094 | cpu: [arm64] 1095 | os: [win32] 1096 | requiresBuild: true 1097 | dev: true 1098 | optional: true 1099 | 1100 | /esbuild/0.14.47: 1101 | resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} 1102 | engines: {node: '>=12'} 1103 | hasBin: true 1104 | requiresBuild: true 1105 | optionalDependencies: 1106 | esbuild-android-64: 0.14.47 1107 | esbuild-android-arm64: 0.14.47 1108 | esbuild-darwin-64: 0.14.47 1109 | esbuild-darwin-arm64: 0.14.47 1110 | esbuild-freebsd-64: 0.14.47 1111 | esbuild-freebsd-arm64: 0.14.47 1112 | esbuild-linux-32: 0.14.47 1113 | esbuild-linux-64: 0.14.47 1114 | esbuild-linux-arm: 0.14.47 1115 | esbuild-linux-arm64: 0.14.47 1116 | esbuild-linux-mips64le: 0.14.47 1117 | esbuild-linux-ppc64le: 0.14.47 1118 | esbuild-linux-riscv64: 0.14.47 1119 | esbuild-linux-s390x: 0.14.47 1120 | esbuild-netbsd-64: 0.14.47 1121 | esbuild-openbsd-64: 0.14.47 1122 | esbuild-sunos-64: 0.14.47 1123 | esbuild-windows-32: 0.14.47 1124 | esbuild-windows-64: 0.14.47 1125 | esbuild-windows-arm64: 0.14.47 1126 | dev: true 1127 | 1128 | /escalade/3.1.1: 1129 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1130 | engines: {node: '>=6'} 1131 | dev: true 1132 | 1133 | /escape-string-regexp/1.0.5: 1134 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1135 | engines: {node: '>=0.8.0'} 1136 | dev: true 1137 | 1138 | /escape-string-regexp/4.0.0: 1139 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1140 | engines: {node: '>=10'} 1141 | dev: true 1142 | 1143 | /eslint-scope/5.1.1: 1144 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1145 | engines: {node: '>=8.0.0'} 1146 | dependencies: 1147 | esrecurse: 4.3.0 1148 | estraverse: 4.3.0 1149 | dev: true 1150 | 1151 | /eslint-scope/7.1.1: 1152 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1153 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1154 | dependencies: 1155 | esrecurse: 4.3.0 1156 | estraverse: 5.3.0 1157 | dev: true 1158 | 1159 | /eslint-utils/3.0.0_eslint@8.23.0: 1160 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1161 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1162 | peerDependencies: 1163 | eslint: '>=5' 1164 | dependencies: 1165 | eslint: 8.23.0 1166 | eslint-visitor-keys: 2.1.0 1167 | dev: true 1168 | 1169 | /eslint-visitor-keys/2.1.0: 1170 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1171 | engines: {node: '>=10'} 1172 | dev: true 1173 | 1174 | /eslint-visitor-keys/3.3.0: 1175 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1176 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1177 | dev: true 1178 | 1179 | /eslint/8.23.0: 1180 | resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} 1181 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1182 | hasBin: true 1183 | dependencies: 1184 | '@eslint/eslintrc': 1.3.1 1185 | '@humanwhocodes/config-array': 0.10.4 1186 | '@humanwhocodes/gitignore-to-minimatch': 1.0.2 1187 | '@humanwhocodes/module-importer': 1.0.1 1188 | ajv: 6.12.6 1189 | chalk: 4.1.2 1190 | cross-spawn: 7.0.3 1191 | debug: 4.3.4 1192 | doctrine: 3.0.0 1193 | escape-string-regexp: 4.0.0 1194 | eslint-scope: 7.1.1 1195 | eslint-utils: 3.0.0_eslint@8.23.0 1196 | eslint-visitor-keys: 3.3.0 1197 | espree: 9.4.0 1198 | esquery: 1.4.0 1199 | esutils: 2.0.3 1200 | fast-deep-equal: 3.1.3 1201 | file-entry-cache: 6.0.1 1202 | find-up: 5.0.0 1203 | functional-red-black-tree: 1.0.1 1204 | glob-parent: 6.0.2 1205 | globals: 13.17.0 1206 | globby: 11.1.0 1207 | grapheme-splitter: 1.0.4 1208 | ignore: 5.2.0 1209 | import-fresh: 3.3.0 1210 | imurmurhash: 0.1.4 1211 | is-glob: 4.0.3 1212 | js-yaml: 4.1.0 1213 | json-stable-stringify-without-jsonify: 1.0.1 1214 | levn: 0.4.1 1215 | lodash.merge: 4.6.2 1216 | minimatch: 3.1.2 1217 | natural-compare: 1.4.0 1218 | optionator: 0.9.1 1219 | regexpp: 3.2.0 1220 | strip-ansi: 6.0.1 1221 | strip-json-comments: 3.1.1 1222 | text-table: 0.2.0 1223 | transitivePeerDependencies: 1224 | - supports-color 1225 | dev: true 1226 | 1227 | /espree/9.4.0: 1228 | resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==} 1229 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1230 | dependencies: 1231 | acorn: 8.8.0 1232 | acorn-jsx: 5.3.2_acorn@8.8.0 1233 | eslint-visitor-keys: 3.3.0 1234 | dev: true 1235 | 1236 | /esquery/1.4.0: 1237 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1238 | engines: {node: '>=0.10'} 1239 | dependencies: 1240 | estraverse: 5.3.0 1241 | dev: true 1242 | 1243 | /esrecurse/4.3.0: 1244 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1245 | engines: {node: '>=4.0'} 1246 | dependencies: 1247 | estraverse: 5.3.0 1248 | dev: true 1249 | 1250 | /estraverse/4.3.0: 1251 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1252 | engines: {node: '>=4.0'} 1253 | dev: true 1254 | 1255 | /estraverse/5.3.0: 1256 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1257 | engines: {node: '>=4.0'} 1258 | dev: true 1259 | 1260 | /esutils/2.0.3: 1261 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1262 | engines: {node: '>=0.10.0'} 1263 | dev: true 1264 | 1265 | /execa/5.1.1: 1266 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1267 | engines: {node: '>=10'} 1268 | dependencies: 1269 | cross-spawn: 7.0.3 1270 | get-stream: 6.0.1 1271 | human-signals: 2.1.0 1272 | is-stream: 2.0.1 1273 | merge-stream: 2.0.0 1274 | npm-run-path: 4.0.1 1275 | onetime: 5.1.2 1276 | signal-exit: 3.0.7 1277 | strip-final-newline: 2.0.0 1278 | dev: true 1279 | 1280 | /fast-deep-equal/3.1.3: 1281 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1282 | dev: true 1283 | 1284 | /fast-glob/3.2.11: 1285 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 1286 | engines: {node: '>=8.6.0'} 1287 | dependencies: 1288 | '@nodelib/fs.stat': 2.0.5 1289 | '@nodelib/fs.walk': 1.2.8 1290 | glob-parent: 5.1.2 1291 | merge2: 1.4.1 1292 | micromatch: 4.0.5 1293 | dev: true 1294 | 1295 | /fast-json-stable-stringify/2.1.0: 1296 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1297 | dev: true 1298 | 1299 | /fast-levenshtein/2.0.6: 1300 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1301 | dev: true 1302 | 1303 | /fastq/1.13.0: 1304 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1305 | dependencies: 1306 | reusify: 1.0.4 1307 | dev: true 1308 | 1309 | /file-entry-cache/6.0.1: 1310 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1311 | engines: {node: ^10.12.0 || >=12.0.0} 1312 | dependencies: 1313 | flat-cache: 3.0.4 1314 | dev: true 1315 | 1316 | /fill-range/7.0.1: 1317 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1318 | engines: {node: '>=8'} 1319 | dependencies: 1320 | to-regex-range: 5.0.1 1321 | dev: true 1322 | 1323 | /find-up/4.1.0: 1324 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1325 | engines: {node: '>=8'} 1326 | dependencies: 1327 | locate-path: 5.0.0 1328 | path-exists: 4.0.0 1329 | dev: true 1330 | 1331 | /find-up/5.0.0: 1332 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1333 | engines: {node: '>=10'} 1334 | dependencies: 1335 | locate-path: 6.0.0 1336 | path-exists: 4.0.0 1337 | dev: true 1338 | 1339 | /flat-cache/3.0.4: 1340 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1341 | engines: {node: ^10.12.0 || >=12.0.0} 1342 | dependencies: 1343 | flatted: 3.2.7 1344 | rimraf: 3.0.2 1345 | dev: true 1346 | 1347 | /flatted/3.2.7: 1348 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1349 | dev: true 1350 | 1351 | /fs-extra/10.1.0: 1352 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1353 | engines: {node: '>=12'} 1354 | dependencies: 1355 | graceful-fs: 4.2.10 1356 | jsonfile: 6.1.0 1357 | universalify: 2.0.0 1358 | dev: true 1359 | 1360 | /fs.realpath/1.0.0: 1361 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1362 | dev: true 1363 | 1364 | /function-bind/1.1.1: 1365 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1366 | dev: true 1367 | 1368 | /function.prototype.name/1.1.5: 1369 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1370 | engines: {node: '>= 0.4'} 1371 | dependencies: 1372 | call-bind: 1.0.2 1373 | define-properties: 1.1.4 1374 | es-abstract: 1.20.2 1375 | functions-have-names: 1.2.3 1376 | dev: true 1377 | 1378 | /functional-red-black-tree/1.0.1: 1379 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 1380 | dev: true 1381 | 1382 | /functions-have-names/1.2.3: 1383 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1384 | dev: true 1385 | 1386 | /get-caller-file/2.0.5: 1387 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1388 | engines: {node: 6.* || 8.* || >= 10.*} 1389 | dev: true 1390 | 1391 | /get-intrinsic/1.1.2: 1392 | resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} 1393 | dependencies: 1394 | function-bind: 1.1.1 1395 | has: 1.0.3 1396 | has-symbols: 1.0.3 1397 | dev: true 1398 | 1399 | /get-stream/6.0.1: 1400 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1401 | engines: {node: '>=10'} 1402 | dev: true 1403 | 1404 | /get-symbol-description/1.0.0: 1405 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1406 | engines: {node: '>= 0.4'} 1407 | dependencies: 1408 | call-bind: 1.0.2 1409 | get-intrinsic: 1.1.2 1410 | dev: true 1411 | 1412 | /git-raw-commits/2.0.11: 1413 | resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} 1414 | engines: {node: '>=10'} 1415 | hasBin: true 1416 | dependencies: 1417 | dargs: 7.0.0 1418 | lodash: 4.17.21 1419 | meow: 8.1.2 1420 | split2: 3.2.2 1421 | through2: 4.0.2 1422 | dev: true 1423 | 1424 | /glob-parent/5.1.2: 1425 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1426 | engines: {node: '>= 6'} 1427 | dependencies: 1428 | is-glob: 4.0.3 1429 | dev: true 1430 | 1431 | /glob-parent/6.0.2: 1432 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1433 | engines: {node: '>=10.13.0'} 1434 | dependencies: 1435 | is-glob: 4.0.3 1436 | dev: true 1437 | 1438 | /glob/7.2.3: 1439 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1440 | dependencies: 1441 | fs.realpath: 1.0.0 1442 | inflight: 1.0.6 1443 | inherits: 2.0.4 1444 | minimatch: 3.1.2 1445 | once: 1.4.0 1446 | path-is-absolute: 1.0.1 1447 | dev: true 1448 | 1449 | /global-dirs/0.1.1: 1450 | resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} 1451 | engines: {node: '>=4'} 1452 | dependencies: 1453 | ini: 1.3.8 1454 | dev: true 1455 | 1456 | /globals/13.17.0: 1457 | resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} 1458 | engines: {node: '>=8'} 1459 | dependencies: 1460 | type-fest: 0.20.2 1461 | dev: true 1462 | 1463 | /globby/11.1.0: 1464 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1465 | engines: {node: '>=10'} 1466 | dependencies: 1467 | array-union: 2.1.0 1468 | dir-glob: 3.0.1 1469 | fast-glob: 3.2.11 1470 | ignore: 5.2.0 1471 | merge2: 1.4.1 1472 | slash: 3.0.0 1473 | dev: true 1474 | 1475 | /graceful-fs/4.2.10: 1476 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1477 | 1478 | /grapheme-splitter/1.0.4: 1479 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1480 | dev: true 1481 | 1482 | /hard-rejection/2.1.0: 1483 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1484 | engines: {node: '>=6'} 1485 | dev: true 1486 | 1487 | /has-bigints/1.0.2: 1488 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1489 | dev: true 1490 | 1491 | /has-flag/3.0.0: 1492 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1493 | engines: {node: '>=4'} 1494 | dev: true 1495 | 1496 | /has-flag/4.0.0: 1497 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1498 | engines: {node: '>=8'} 1499 | dev: true 1500 | 1501 | /has-property-descriptors/1.0.0: 1502 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1503 | dependencies: 1504 | get-intrinsic: 1.1.2 1505 | dev: true 1506 | 1507 | /has-symbols/1.0.3: 1508 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1509 | engines: {node: '>= 0.4'} 1510 | dev: true 1511 | 1512 | /has-tostringtag/1.0.0: 1513 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1514 | engines: {node: '>= 0.4'} 1515 | dependencies: 1516 | has-symbols: 1.0.3 1517 | dev: true 1518 | 1519 | /has/1.0.3: 1520 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1521 | engines: {node: '>= 0.4.0'} 1522 | dependencies: 1523 | function-bind: 1.1.1 1524 | dev: true 1525 | 1526 | /hosted-git-info/2.8.9: 1527 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1528 | dev: true 1529 | 1530 | /hosted-git-info/4.1.0: 1531 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} 1532 | engines: {node: '>=10'} 1533 | dependencies: 1534 | lru-cache: 6.0.0 1535 | dev: true 1536 | 1537 | /human-signals/2.1.0: 1538 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1539 | engines: {node: '>=10.17.0'} 1540 | dev: true 1541 | 1542 | /husky/8.0.1: 1543 | resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} 1544 | engines: {node: '>=14'} 1545 | hasBin: true 1546 | dev: true 1547 | 1548 | /iconv-lite/0.6.3: 1549 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1550 | engines: {node: '>=0.10.0'} 1551 | dependencies: 1552 | safer-buffer: 2.1.2 1553 | dev: false 1554 | optional: true 1555 | 1556 | /ignore/5.2.0: 1557 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 1558 | engines: {node: '>= 4'} 1559 | dev: true 1560 | 1561 | /image-size/0.5.5: 1562 | resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} 1563 | engines: {node: '>=0.10.0'} 1564 | hasBin: true 1565 | requiresBuild: true 1566 | dev: false 1567 | optional: true 1568 | 1569 | /import-fresh/3.3.0: 1570 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1571 | engines: {node: '>=6'} 1572 | dependencies: 1573 | parent-module: 1.0.1 1574 | resolve-from: 4.0.0 1575 | dev: true 1576 | 1577 | /imurmurhash/0.1.4: 1578 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1579 | engines: {node: '>=0.8.19'} 1580 | dev: true 1581 | 1582 | /indent-string/4.0.0: 1583 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1584 | engines: {node: '>=8'} 1585 | dev: true 1586 | 1587 | /inflight/1.0.6: 1588 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1589 | dependencies: 1590 | once: 1.4.0 1591 | wrappy: 1.0.2 1592 | dev: true 1593 | 1594 | /inherits/2.0.4: 1595 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1596 | dev: true 1597 | 1598 | /ini/1.3.8: 1599 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1600 | dev: true 1601 | 1602 | /internal-slot/1.0.3: 1603 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 1604 | engines: {node: '>= 0.4'} 1605 | dependencies: 1606 | get-intrinsic: 1.1.2 1607 | has: 1.0.3 1608 | side-channel: 1.0.4 1609 | dev: true 1610 | 1611 | /is-arrayish/0.2.1: 1612 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1613 | dev: true 1614 | 1615 | /is-bigint/1.0.4: 1616 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1617 | dependencies: 1618 | has-bigints: 1.0.2 1619 | dev: true 1620 | 1621 | /is-boolean-object/1.1.2: 1622 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1623 | engines: {node: '>= 0.4'} 1624 | dependencies: 1625 | call-bind: 1.0.2 1626 | has-tostringtag: 1.0.0 1627 | dev: true 1628 | 1629 | /is-callable/1.2.4: 1630 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 1631 | engines: {node: '>= 0.4'} 1632 | dev: true 1633 | 1634 | /is-core-module/2.10.0: 1635 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 1636 | dependencies: 1637 | has: 1.0.3 1638 | dev: true 1639 | 1640 | /is-date-object/1.0.5: 1641 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1642 | engines: {node: '>= 0.4'} 1643 | dependencies: 1644 | has-tostringtag: 1.0.0 1645 | dev: true 1646 | 1647 | /is-extglob/2.1.1: 1648 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1649 | engines: {node: '>=0.10.0'} 1650 | dev: true 1651 | 1652 | /is-fullwidth-code-point/3.0.0: 1653 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1654 | engines: {node: '>=8'} 1655 | dev: true 1656 | 1657 | /is-glob/4.0.3: 1658 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1659 | engines: {node: '>=0.10.0'} 1660 | dependencies: 1661 | is-extglob: 2.1.1 1662 | dev: true 1663 | 1664 | /is-negative-zero/2.0.2: 1665 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1666 | engines: {node: '>= 0.4'} 1667 | dev: true 1668 | 1669 | /is-number-object/1.0.7: 1670 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1671 | engines: {node: '>= 0.4'} 1672 | dependencies: 1673 | has-tostringtag: 1.0.0 1674 | dev: true 1675 | 1676 | /is-number/7.0.0: 1677 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1678 | engines: {node: '>=0.12.0'} 1679 | dev: true 1680 | 1681 | /is-obj/2.0.0: 1682 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} 1683 | engines: {node: '>=8'} 1684 | dev: true 1685 | 1686 | /is-plain-obj/1.1.0: 1687 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1688 | engines: {node: '>=0.10.0'} 1689 | dev: true 1690 | 1691 | /is-regex/1.1.4: 1692 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1693 | engines: {node: '>= 0.4'} 1694 | dependencies: 1695 | call-bind: 1.0.2 1696 | has-tostringtag: 1.0.0 1697 | dev: true 1698 | 1699 | /is-shared-array-buffer/1.0.2: 1700 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1701 | dependencies: 1702 | call-bind: 1.0.2 1703 | dev: true 1704 | 1705 | /is-stream/2.0.1: 1706 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1707 | engines: {node: '>=8'} 1708 | dev: true 1709 | 1710 | /is-string/1.0.7: 1711 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1712 | engines: {node: '>= 0.4'} 1713 | dependencies: 1714 | has-tostringtag: 1.0.0 1715 | dev: true 1716 | 1717 | /is-symbol/1.0.4: 1718 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1719 | engines: {node: '>= 0.4'} 1720 | dependencies: 1721 | has-symbols: 1.0.3 1722 | dev: true 1723 | 1724 | /is-text-path/1.0.1: 1725 | resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} 1726 | engines: {node: '>=0.10.0'} 1727 | dependencies: 1728 | text-extensions: 1.9.0 1729 | dev: true 1730 | 1731 | /is-weakref/1.0.2: 1732 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1733 | dependencies: 1734 | call-bind: 1.0.2 1735 | dev: true 1736 | 1737 | /is-what/3.14.1: 1738 | resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} 1739 | dev: false 1740 | 1741 | /isexe/2.0.0: 1742 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1743 | dev: true 1744 | 1745 | /js-tokens/4.0.0: 1746 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1747 | dev: true 1748 | 1749 | /js-yaml/4.1.0: 1750 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1751 | hasBin: true 1752 | dependencies: 1753 | argparse: 2.0.1 1754 | dev: true 1755 | 1756 | /json-parse-better-errors/1.0.2: 1757 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1758 | dev: true 1759 | 1760 | /json-parse-even-better-errors/2.3.1: 1761 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1762 | dev: true 1763 | 1764 | /json-schema-traverse/0.4.1: 1765 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1766 | dev: true 1767 | 1768 | /json-schema-traverse/1.0.0: 1769 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1770 | dev: true 1771 | 1772 | /json-stable-stringify-without-jsonify/1.0.1: 1773 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1774 | dev: true 1775 | 1776 | /jsonfile/6.1.0: 1777 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1778 | dependencies: 1779 | universalify: 2.0.0 1780 | optionalDependencies: 1781 | graceful-fs: 4.2.10 1782 | dev: true 1783 | 1784 | /jsonparse/1.3.1: 1785 | resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} 1786 | engines: {'0': node >= 0.2.0} 1787 | dev: true 1788 | 1789 | /kind-of/6.0.3: 1790 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1791 | engines: {node: '>=0.10.0'} 1792 | dev: true 1793 | 1794 | /less/4.1.3: 1795 | resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} 1796 | engines: {node: '>=6'} 1797 | hasBin: true 1798 | dependencies: 1799 | copy-anything: 2.0.6 1800 | parse-node-version: 1.0.1 1801 | tslib: 2.4.0 1802 | optionalDependencies: 1803 | errno: 0.1.8 1804 | graceful-fs: 4.2.10 1805 | image-size: 0.5.5 1806 | make-dir: 2.1.0 1807 | mime: 1.6.0 1808 | needle: 3.1.0 1809 | source-map: 0.6.1 1810 | transitivePeerDependencies: 1811 | - supports-color 1812 | dev: false 1813 | 1814 | /levn/0.4.1: 1815 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1816 | engines: {node: '>= 0.8.0'} 1817 | dependencies: 1818 | prelude-ls: 1.2.1 1819 | type-check: 0.4.0 1820 | dev: true 1821 | 1822 | /lines-and-columns/1.2.4: 1823 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1824 | dev: true 1825 | 1826 | /load-json-file/4.0.0: 1827 | resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} 1828 | engines: {node: '>=4'} 1829 | dependencies: 1830 | graceful-fs: 4.2.10 1831 | parse-json: 4.0.0 1832 | pify: 3.0.0 1833 | strip-bom: 3.0.0 1834 | dev: true 1835 | 1836 | /locate-path/5.0.0: 1837 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1838 | engines: {node: '>=8'} 1839 | dependencies: 1840 | p-locate: 4.1.0 1841 | dev: true 1842 | 1843 | /locate-path/6.0.0: 1844 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1845 | engines: {node: '>=10'} 1846 | dependencies: 1847 | p-locate: 5.0.0 1848 | dev: true 1849 | 1850 | /lodash.merge/4.6.2: 1851 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1852 | dev: true 1853 | 1854 | /lodash/4.17.21: 1855 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1856 | dev: true 1857 | 1858 | /lru-cache/6.0.0: 1859 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1860 | engines: {node: '>=10'} 1861 | dependencies: 1862 | yallist: 4.0.0 1863 | dev: true 1864 | 1865 | /make-dir/2.1.0: 1866 | resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} 1867 | engines: {node: '>=6'} 1868 | requiresBuild: true 1869 | dependencies: 1870 | pify: 4.0.1 1871 | semver: 5.7.1 1872 | dev: false 1873 | optional: true 1874 | 1875 | /make-error/1.3.6: 1876 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1877 | dev: true 1878 | 1879 | /map-obj/1.0.1: 1880 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 1881 | engines: {node: '>=0.10.0'} 1882 | dev: true 1883 | 1884 | /map-obj/4.3.0: 1885 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1886 | engines: {node: '>=8'} 1887 | dev: true 1888 | 1889 | /memorystream/0.3.1: 1890 | resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 1891 | engines: {node: '>= 0.10.0'} 1892 | dev: true 1893 | 1894 | /meow/8.1.2: 1895 | resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} 1896 | engines: {node: '>=10'} 1897 | dependencies: 1898 | '@types/minimist': 1.2.2 1899 | camelcase-keys: 6.2.2 1900 | decamelize-keys: 1.1.0 1901 | hard-rejection: 2.1.0 1902 | minimist-options: 4.1.0 1903 | normalize-package-data: 3.0.3 1904 | read-pkg-up: 7.0.1 1905 | redent: 3.0.0 1906 | trim-newlines: 3.0.1 1907 | type-fest: 0.18.1 1908 | yargs-parser: 20.2.9 1909 | dev: true 1910 | 1911 | /merge-stream/2.0.0: 1912 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1913 | dev: true 1914 | 1915 | /merge2/1.4.1: 1916 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1917 | engines: {node: '>= 8'} 1918 | dev: true 1919 | 1920 | /micromatch/4.0.5: 1921 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1922 | engines: {node: '>=8.6'} 1923 | dependencies: 1924 | braces: 3.0.2 1925 | picomatch: 2.3.1 1926 | dev: true 1927 | 1928 | /mime/1.6.0: 1929 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1930 | engines: {node: '>=4'} 1931 | hasBin: true 1932 | requiresBuild: true 1933 | dev: false 1934 | optional: true 1935 | 1936 | /mimic-fn/2.1.0: 1937 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1938 | engines: {node: '>=6'} 1939 | dev: true 1940 | 1941 | /min-indent/1.0.1: 1942 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1943 | engines: {node: '>=4'} 1944 | dev: true 1945 | 1946 | /minimatch/3.1.2: 1947 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1948 | dependencies: 1949 | brace-expansion: 1.1.11 1950 | dev: true 1951 | 1952 | /minimist-options/4.1.0: 1953 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1954 | engines: {node: '>= 6'} 1955 | dependencies: 1956 | arrify: 1.0.1 1957 | is-plain-obj: 1.1.0 1958 | kind-of: 6.0.3 1959 | dev: true 1960 | 1961 | /minimist/1.2.6: 1962 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} 1963 | dev: true 1964 | 1965 | /moment/2.29.4: 1966 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} 1967 | dev: true 1968 | 1969 | /ms/2.1.2: 1970 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1971 | 1972 | /natural-compare/1.4.0: 1973 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1974 | dev: true 1975 | 1976 | /needle/3.1.0: 1977 | resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==} 1978 | engines: {node: '>= 4.4.x'} 1979 | hasBin: true 1980 | requiresBuild: true 1981 | dependencies: 1982 | debug: 3.2.7 1983 | iconv-lite: 0.6.3 1984 | sax: 1.2.4 1985 | transitivePeerDependencies: 1986 | - supports-color 1987 | dev: false 1988 | optional: true 1989 | 1990 | /nice-try/1.0.5: 1991 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1992 | dev: true 1993 | 1994 | /normalize-package-data/2.5.0: 1995 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1996 | dependencies: 1997 | hosted-git-info: 2.8.9 1998 | resolve: 1.22.1 1999 | semver: 5.7.1 2000 | validate-npm-package-license: 3.0.4 2001 | dev: true 2002 | 2003 | /normalize-package-data/3.0.3: 2004 | resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} 2005 | engines: {node: '>=10'} 2006 | dependencies: 2007 | hosted-git-info: 4.1.0 2008 | is-core-module: 2.10.0 2009 | semver: 7.3.7 2010 | validate-npm-package-license: 3.0.4 2011 | dev: true 2012 | 2013 | /npm-run-all/4.1.5: 2014 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 2015 | engines: {node: '>= 4'} 2016 | hasBin: true 2017 | dependencies: 2018 | ansi-styles: 3.2.1 2019 | chalk: 2.4.2 2020 | cross-spawn: 6.0.5 2021 | memorystream: 0.3.1 2022 | minimatch: 3.1.2 2023 | pidtree: 0.3.1 2024 | read-pkg: 3.0.0 2025 | shell-quote: 1.7.3 2026 | string.prototype.padend: 3.1.3 2027 | dev: true 2028 | 2029 | /npm-run-path/4.0.1: 2030 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2031 | engines: {node: '>=8'} 2032 | dependencies: 2033 | path-key: 3.1.1 2034 | dev: true 2035 | 2036 | /object-inspect/1.12.2: 2037 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 2038 | dev: true 2039 | 2040 | /object-keys/1.1.1: 2041 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2042 | engines: {node: '>= 0.4'} 2043 | dev: true 2044 | 2045 | /object.assign/4.1.4: 2046 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2047 | engines: {node: '>= 0.4'} 2048 | dependencies: 2049 | call-bind: 1.0.2 2050 | define-properties: 1.1.4 2051 | has-symbols: 1.0.3 2052 | object-keys: 1.1.1 2053 | dev: true 2054 | 2055 | /obsidian/0.16.3_qizpravbztgegjbetdhnhcmufm: 2056 | resolution: {integrity: sha512-hal9qk1A0GMhHSeLr2/+o3OpLmImiP+Y+sx2ewP13ds76KXsziG96n+IPFT0mSkup1zSwhEu+DeRhmbcyCCXWw==} 2057 | peerDependencies: 2058 | '@codemirror/state': ^6.0.0 2059 | '@codemirror/view': ^6.0.0 2060 | dependencies: 2061 | '@codemirror/state': 6.1.1 2062 | '@codemirror/view': 6.2.2 2063 | '@types/codemirror': 0.0.108 2064 | moment: 2.29.4 2065 | dev: true 2066 | 2067 | /once/1.4.0: 2068 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2069 | dependencies: 2070 | wrappy: 1.0.2 2071 | dev: true 2072 | 2073 | /onetime/5.1.2: 2074 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2075 | engines: {node: '>=6'} 2076 | dependencies: 2077 | mimic-fn: 2.1.0 2078 | dev: true 2079 | 2080 | /optionator/0.9.1: 2081 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2082 | engines: {node: '>= 0.8.0'} 2083 | dependencies: 2084 | deep-is: 0.1.4 2085 | fast-levenshtein: 2.0.6 2086 | levn: 0.4.1 2087 | prelude-ls: 1.2.1 2088 | type-check: 0.4.0 2089 | word-wrap: 1.2.3 2090 | dev: true 2091 | 2092 | /p-limit/2.3.0: 2093 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2094 | engines: {node: '>=6'} 2095 | dependencies: 2096 | p-try: 2.2.0 2097 | dev: true 2098 | 2099 | /p-limit/3.1.0: 2100 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2101 | engines: {node: '>=10'} 2102 | dependencies: 2103 | yocto-queue: 0.1.0 2104 | dev: true 2105 | 2106 | /p-locate/4.1.0: 2107 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2108 | engines: {node: '>=8'} 2109 | dependencies: 2110 | p-limit: 2.3.0 2111 | dev: true 2112 | 2113 | /p-locate/5.0.0: 2114 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2115 | engines: {node: '>=10'} 2116 | dependencies: 2117 | p-limit: 3.1.0 2118 | dev: true 2119 | 2120 | /p-try/2.2.0: 2121 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2122 | engines: {node: '>=6'} 2123 | dev: true 2124 | 2125 | /parent-module/1.0.1: 2126 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2127 | engines: {node: '>=6'} 2128 | dependencies: 2129 | callsites: 3.1.0 2130 | dev: true 2131 | 2132 | /parse-json/4.0.0: 2133 | resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 2134 | engines: {node: '>=4'} 2135 | dependencies: 2136 | error-ex: 1.3.2 2137 | json-parse-better-errors: 1.0.2 2138 | dev: true 2139 | 2140 | /parse-json/5.2.0: 2141 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2142 | engines: {node: '>=8'} 2143 | dependencies: 2144 | '@babel/code-frame': 7.18.6 2145 | error-ex: 1.3.2 2146 | json-parse-even-better-errors: 2.3.1 2147 | lines-and-columns: 1.2.4 2148 | dev: true 2149 | 2150 | /parse-node-version/1.0.1: 2151 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} 2152 | engines: {node: '>= 0.10'} 2153 | dev: false 2154 | 2155 | /path-exists/4.0.0: 2156 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2157 | engines: {node: '>=8'} 2158 | dev: true 2159 | 2160 | /path-is-absolute/1.0.1: 2161 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2162 | engines: {node: '>=0.10.0'} 2163 | dev: true 2164 | 2165 | /path-key/2.0.1: 2166 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 2167 | engines: {node: '>=4'} 2168 | dev: true 2169 | 2170 | /path-key/3.1.1: 2171 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2172 | engines: {node: '>=8'} 2173 | dev: true 2174 | 2175 | /path-parse/1.0.7: 2176 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2177 | dev: true 2178 | 2179 | /path-type/3.0.0: 2180 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 2181 | engines: {node: '>=4'} 2182 | dependencies: 2183 | pify: 3.0.0 2184 | dev: true 2185 | 2186 | /path-type/4.0.0: 2187 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2188 | engines: {node: '>=8'} 2189 | dev: true 2190 | 2191 | /picomatch/2.3.1: 2192 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2193 | engines: {node: '>=8.6'} 2194 | dev: true 2195 | 2196 | /pidtree/0.3.1: 2197 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 2198 | engines: {node: '>=0.10'} 2199 | hasBin: true 2200 | dev: true 2201 | 2202 | /pify/3.0.0: 2203 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} 2204 | engines: {node: '>=4'} 2205 | dev: true 2206 | 2207 | /pify/4.0.1: 2208 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2209 | engines: {node: '>=6'} 2210 | dev: false 2211 | optional: true 2212 | 2213 | /prelude-ls/1.2.1: 2214 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2215 | engines: {node: '>= 0.8.0'} 2216 | dev: true 2217 | 2218 | /prr/1.0.1: 2219 | resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} 2220 | dev: false 2221 | optional: true 2222 | 2223 | /punycode/2.1.1: 2224 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 2225 | engines: {node: '>=6'} 2226 | dev: true 2227 | 2228 | /q/1.5.1: 2229 | resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} 2230 | engines: {node: '>=0.6.0', teleport: '>=0.2.0'} 2231 | dev: true 2232 | 2233 | /queue-microtask/1.2.3: 2234 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2235 | dev: true 2236 | 2237 | /quick-lru/4.0.1: 2238 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 2239 | engines: {node: '>=8'} 2240 | dev: true 2241 | 2242 | /read-pkg-up/7.0.1: 2243 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 2244 | engines: {node: '>=8'} 2245 | dependencies: 2246 | find-up: 4.1.0 2247 | read-pkg: 5.2.0 2248 | type-fest: 0.8.1 2249 | dev: true 2250 | 2251 | /read-pkg/3.0.0: 2252 | resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} 2253 | engines: {node: '>=4'} 2254 | dependencies: 2255 | load-json-file: 4.0.0 2256 | normalize-package-data: 2.5.0 2257 | path-type: 3.0.0 2258 | dev: true 2259 | 2260 | /read-pkg/5.2.0: 2261 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 2262 | engines: {node: '>=8'} 2263 | dependencies: 2264 | '@types/normalize-package-data': 2.4.1 2265 | normalize-package-data: 2.5.0 2266 | parse-json: 5.2.0 2267 | type-fest: 0.6.0 2268 | dev: true 2269 | 2270 | /readable-stream/3.6.0: 2271 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 2272 | engines: {node: '>= 6'} 2273 | dependencies: 2274 | inherits: 2.0.4 2275 | string_decoder: 1.3.0 2276 | util-deprecate: 1.0.2 2277 | dev: true 2278 | 2279 | /redent/3.0.0: 2280 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 2281 | engines: {node: '>=8'} 2282 | dependencies: 2283 | indent-string: 4.0.0 2284 | strip-indent: 3.0.0 2285 | dev: true 2286 | 2287 | /regexp.prototype.flags/1.4.3: 2288 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2289 | engines: {node: '>= 0.4'} 2290 | dependencies: 2291 | call-bind: 1.0.2 2292 | define-properties: 1.1.4 2293 | functions-have-names: 1.2.3 2294 | dev: true 2295 | 2296 | /regexpp/3.2.0: 2297 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2298 | engines: {node: '>=8'} 2299 | dev: true 2300 | 2301 | /require-directory/2.1.1: 2302 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 2303 | engines: {node: '>=0.10.0'} 2304 | dev: true 2305 | 2306 | /require-from-string/2.0.2: 2307 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 2308 | engines: {node: '>=0.10.0'} 2309 | dev: true 2310 | 2311 | /resolve-from/4.0.0: 2312 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2313 | engines: {node: '>=4'} 2314 | dev: true 2315 | 2316 | /resolve-from/5.0.0: 2317 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2318 | engines: {node: '>=8'} 2319 | dev: true 2320 | 2321 | /resolve-global/1.0.0: 2322 | resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} 2323 | engines: {node: '>=8'} 2324 | dependencies: 2325 | global-dirs: 0.1.1 2326 | dev: true 2327 | 2328 | /resolve/1.22.1: 2329 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2330 | hasBin: true 2331 | dependencies: 2332 | is-core-module: 2.10.0 2333 | path-parse: 1.0.7 2334 | supports-preserve-symlinks-flag: 1.0.0 2335 | dev: true 2336 | 2337 | /reusify/1.0.4: 2338 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2339 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2340 | dev: true 2341 | 2342 | /rimraf/3.0.2: 2343 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2344 | hasBin: true 2345 | dependencies: 2346 | glob: 7.2.3 2347 | dev: true 2348 | 2349 | /run-parallel/1.2.0: 2350 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2351 | dependencies: 2352 | queue-microtask: 1.2.3 2353 | dev: true 2354 | 2355 | /safe-buffer/5.2.1: 2356 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2357 | dev: true 2358 | 2359 | /safer-buffer/2.1.2: 2360 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2361 | dev: false 2362 | optional: true 2363 | 2364 | /sax/1.2.4: 2365 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} 2366 | dev: false 2367 | optional: true 2368 | 2369 | /semver/5.7.1: 2370 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2371 | hasBin: true 2372 | 2373 | /semver/7.3.7: 2374 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} 2375 | engines: {node: '>=10'} 2376 | hasBin: true 2377 | dependencies: 2378 | lru-cache: 6.0.0 2379 | dev: true 2380 | 2381 | /shebang-command/1.2.0: 2382 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 2383 | engines: {node: '>=0.10.0'} 2384 | dependencies: 2385 | shebang-regex: 1.0.0 2386 | dev: true 2387 | 2388 | /shebang-command/2.0.0: 2389 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2390 | engines: {node: '>=8'} 2391 | dependencies: 2392 | shebang-regex: 3.0.0 2393 | dev: true 2394 | 2395 | /shebang-regex/1.0.0: 2396 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 2397 | engines: {node: '>=0.10.0'} 2398 | dev: true 2399 | 2400 | /shebang-regex/3.0.0: 2401 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2402 | engines: {node: '>=8'} 2403 | dev: true 2404 | 2405 | /shell-quote/1.7.3: 2406 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} 2407 | dev: true 2408 | 2409 | /side-channel/1.0.4: 2410 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2411 | dependencies: 2412 | call-bind: 1.0.2 2413 | get-intrinsic: 1.1.2 2414 | object-inspect: 1.12.2 2415 | dev: true 2416 | 2417 | /signal-exit/3.0.7: 2418 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2419 | dev: true 2420 | 2421 | /slash/3.0.0: 2422 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2423 | engines: {node: '>=8'} 2424 | dev: true 2425 | 2426 | /source-map/0.6.1: 2427 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2428 | engines: {node: '>=0.10.0'} 2429 | requiresBuild: true 2430 | dev: false 2431 | optional: true 2432 | 2433 | /spdx-correct/3.1.1: 2434 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 2435 | dependencies: 2436 | spdx-expression-parse: 3.0.1 2437 | spdx-license-ids: 3.0.12 2438 | dev: true 2439 | 2440 | /spdx-exceptions/2.3.0: 2441 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2442 | dev: true 2443 | 2444 | /spdx-expression-parse/3.0.1: 2445 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2446 | dependencies: 2447 | spdx-exceptions: 2.3.0 2448 | spdx-license-ids: 3.0.12 2449 | dev: true 2450 | 2451 | /spdx-license-ids/3.0.12: 2452 | resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} 2453 | dev: true 2454 | 2455 | /split2/3.2.2: 2456 | resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} 2457 | dependencies: 2458 | readable-stream: 3.6.0 2459 | dev: true 2460 | 2461 | /string-width/4.2.3: 2462 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2463 | engines: {node: '>=8'} 2464 | dependencies: 2465 | emoji-regex: 8.0.0 2466 | is-fullwidth-code-point: 3.0.0 2467 | strip-ansi: 6.0.1 2468 | dev: true 2469 | 2470 | /string.prototype.padend/3.1.3: 2471 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 2472 | engines: {node: '>= 0.4'} 2473 | dependencies: 2474 | call-bind: 1.0.2 2475 | define-properties: 1.1.4 2476 | es-abstract: 1.20.2 2477 | dev: true 2478 | 2479 | /string.prototype.trimend/1.0.5: 2480 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} 2481 | dependencies: 2482 | call-bind: 1.0.2 2483 | define-properties: 1.1.4 2484 | es-abstract: 1.20.2 2485 | dev: true 2486 | 2487 | /string.prototype.trimstart/1.0.5: 2488 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} 2489 | dependencies: 2490 | call-bind: 1.0.2 2491 | define-properties: 1.1.4 2492 | es-abstract: 1.20.2 2493 | dev: true 2494 | 2495 | /string_decoder/1.3.0: 2496 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2497 | dependencies: 2498 | safe-buffer: 5.2.1 2499 | dev: true 2500 | 2501 | /strip-ansi/6.0.1: 2502 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2503 | engines: {node: '>=8'} 2504 | dependencies: 2505 | ansi-regex: 5.0.1 2506 | dev: true 2507 | 2508 | /strip-bom/3.0.0: 2509 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2510 | engines: {node: '>=4'} 2511 | dev: true 2512 | 2513 | /strip-final-newline/2.0.0: 2514 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2515 | engines: {node: '>=6'} 2516 | dev: true 2517 | 2518 | /strip-indent/3.0.0: 2519 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2520 | engines: {node: '>=8'} 2521 | dependencies: 2522 | min-indent: 1.0.1 2523 | dev: true 2524 | 2525 | /strip-json-comments/3.1.1: 2526 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2527 | engines: {node: '>=8'} 2528 | dev: true 2529 | 2530 | /style-mod/4.0.0: 2531 | resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} 2532 | dev: true 2533 | 2534 | /supports-color/5.5.0: 2535 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2536 | engines: {node: '>=4'} 2537 | dependencies: 2538 | has-flag: 3.0.0 2539 | dev: true 2540 | 2541 | /supports-color/7.2.0: 2542 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2543 | engines: {node: '>=8'} 2544 | dependencies: 2545 | has-flag: 4.0.0 2546 | dev: true 2547 | 2548 | /supports-preserve-symlinks-flag/1.0.0: 2549 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2550 | engines: {node: '>= 0.4'} 2551 | dev: true 2552 | 2553 | /text-extensions/1.9.0: 2554 | resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} 2555 | engines: {node: '>=0.10'} 2556 | dev: true 2557 | 2558 | /text-table/0.2.0: 2559 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2560 | dev: true 2561 | 2562 | /through/2.3.8: 2563 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 2564 | dev: true 2565 | 2566 | /through2/4.0.2: 2567 | resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} 2568 | dependencies: 2569 | readable-stream: 3.6.0 2570 | dev: true 2571 | 2572 | /to-regex-range/5.0.1: 2573 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2574 | engines: {node: '>=8.0'} 2575 | dependencies: 2576 | is-number: 7.0.0 2577 | dev: true 2578 | 2579 | /trim-newlines/3.0.1: 2580 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 2581 | engines: {node: '>=8'} 2582 | dev: true 2583 | 2584 | /ts-node/10.9.1_katx45y2r2njfbceklinbcf2m4: 2585 | resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} 2586 | hasBin: true 2587 | peerDependencies: 2588 | '@swc/core': '>=1.2.50' 2589 | '@swc/wasm': '>=1.2.50' 2590 | '@types/node': '*' 2591 | typescript: '>=2.7' 2592 | peerDependenciesMeta: 2593 | '@swc/core': 2594 | optional: true 2595 | '@swc/wasm': 2596 | optional: true 2597 | dependencies: 2598 | '@cspotcode/source-map-support': 0.8.1 2599 | '@tsconfig/node10': 1.0.9 2600 | '@tsconfig/node12': 1.0.11 2601 | '@tsconfig/node14': 1.0.3 2602 | '@tsconfig/node16': 1.0.3 2603 | '@types/node': 14.18.26 2604 | acorn: 8.8.0 2605 | acorn-walk: 8.2.0 2606 | arg: 4.1.3 2607 | create-require: 1.1.1 2608 | diff: 4.0.2 2609 | make-error: 1.3.6 2610 | typescript: 4.7.4 2611 | v8-compile-cache-lib: 3.0.1 2612 | yn: 3.1.1 2613 | dev: true 2614 | 2615 | /tslib/1.14.1: 2616 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2617 | dev: true 2618 | 2619 | /tslib/2.4.0: 2620 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 2621 | 2622 | /tsutils/3.21.0_typescript@4.7.4: 2623 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2624 | engines: {node: '>= 6'} 2625 | peerDependencies: 2626 | 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' 2627 | dependencies: 2628 | tslib: 1.14.1 2629 | typescript: 4.7.4 2630 | dev: true 2631 | 2632 | /type-check/0.4.0: 2633 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2634 | engines: {node: '>= 0.8.0'} 2635 | dependencies: 2636 | prelude-ls: 1.2.1 2637 | dev: true 2638 | 2639 | /type-fest/0.18.1: 2640 | resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} 2641 | engines: {node: '>=10'} 2642 | dev: true 2643 | 2644 | /type-fest/0.20.2: 2645 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2646 | engines: {node: '>=10'} 2647 | dev: true 2648 | 2649 | /type-fest/0.6.0: 2650 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2651 | engines: {node: '>=8'} 2652 | dev: true 2653 | 2654 | /type-fest/0.8.1: 2655 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2656 | engines: {node: '>=8'} 2657 | dev: true 2658 | 2659 | /typescript/4.7.4: 2660 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 2661 | engines: {node: '>=4.2.0'} 2662 | hasBin: true 2663 | dev: true 2664 | 2665 | /unbox-primitive/1.0.2: 2666 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2667 | dependencies: 2668 | call-bind: 1.0.2 2669 | has-bigints: 1.0.2 2670 | has-symbols: 1.0.3 2671 | which-boxed-primitive: 1.0.2 2672 | dev: true 2673 | 2674 | /universalify/2.0.0: 2675 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 2676 | engines: {node: '>= 10.0.0'} 2677 | dev: true 2678 | 2679 | /uri-js/4.4.1: 2680 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2681 | dependencies: 2682 | punycode: 2.1.1 2683 | dev: true 2684 | 2685 | /util-deprecate/1.0.2: 2686 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2687 | dev: true 2688 | 2689 | /v8-compile-cache-lib/3.0.1: 2690 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 2691 | dev: true 2692 | 2693 | /validate-npm-package-license/3.0.4: 2694 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2695 | dependencies: 2696 | spdx-correct: 3.1.1 2697 | spdx-expression-parse: 3.0.1 2698 | dev: true 2699 | 2700 | /w3c-keyname/2.2.6: 2701 | resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} 2702 | dev: true 2703 | 2704 | /which-boxed-primitive/1.0.2: 2705 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2706 | dependencies: 2707 | is-bigint: 1.0.4 2708 | is-boolean-object: 1.1.2 2709 | is-number-object: 1.0.7 2710 | is-string: 1.0.7 2711 | is-symbol: 1.0.4 2712 | dev: true 2713 | 2714 | /which/1.3.1: 2715 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2716 | hasBin: true 2717 | dependencies: 2718 | isexe: 2.0.0 2719 | dev: true 2720 | 2721 | /which/2.0.2: 2722 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2723 | engines: {node: '>= 8'} 2724 | hasBin: true 2725 | dependencies: 2726 | isexe: 2.0.0 2727 | dev: true 2728 | 2729 | /word-wrap/1.2.3: 2730 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2731 | engines: {node: '>=0.10.0'} 2732 | dev: true 2733 | 2734 | /wrap-ansi/7.0.0: 2735 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2736 | engines: {node: '>=10'} 2737 | dependencies: 2738 | ansi-styles: 4.3.0 2739 | string-width: 4.2.3 2740 | strip-ansi: 6.0.1 2741 | dev: true 2742 | 2743 | /wrappy/1.0.2: 2744 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2745 | dev: true 2746 | 2747 | /y18n/5.0.8: 2748 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2749 | engines: {node: '>=10'} 2750 | dev: true 2751 | 2752 | /yallist/4.0.0: 2753 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2754 | dev: true 2755 | 2756 | /yaml/1.10.2: 2757 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2758 | engines: {node: '>= 6'} 2759 | dev: true 2760 | 2761 | /yargs-parser/20.2.9: 2762 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 2763 | engines: {node: '>=10'} 2764 | dev: true 2765 | 2766 | /yargs-parser/21.1.1: 2767 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2768 | engines: {node: '>=12'} 2769 | dev: true 2770 | 2771 | /yargs/17.5.1: 2772 | resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} 2773 | engines: {node: '>=12'} 2774 | dependencies: 2775 | cliui: 7.0.4 2776 | escalade: 3.1.1 2777 | get-caller-file: 2.0.5 2778 | require-directory: 2.1.1 2779 | string-width: 4.2.3 2780 | y18n: 5.0.8 2781 | yargs-parser: 21.1.1 2782 | dev: true 2783 | 2784 | /yn/3.1.1: 2785 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2786 | engines: {node: '>=6'} 2787 | dev: true 2788 | 2789 | /yocto-queue/0.1.0: 2790 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2791 | engines: {node: '>=10'} 2792 | dev: true 2793 | -------------------------------------------------------------------------------- /scripts/install-in-vault.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copied from obsidian-dataview 3 | # Builds literate-styles and allows you to provide a path to the vault that it should be installed in. 4 | # Useful for when you want to dry-run the plugin in a vault other than the test vault. 5 | 6 | VAULT="$1" 7 | TARGET="$VAULT/.obsidian/plugins/obsidian-literate-styles/" 8 | mkdir -p "$TARGET" 9 | cp -f main.js "$TARGET" 10 | cp -f manifest.json "$TARGET/manifest.json" 11 | echo Installed plugin files to "$TARGET" -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { Plugin, TFile, TFolder, Notice } from 'obsidian'; 2 | import { LiterateStylesTab, DEFAULT_SETTINGS, Settings } from './settings'; 3 | import { extname } from 'path'; 4 | import { render } from 'less'; 5 | 6 | const LITERATE_STYLES_CLASSNAME = 'literate-styles'; 7 | 8 | export default class LiterateStylesPlugin extends Plugin { 9 | settings: Settings; 10 | 11 | buffer: Map>; 12 | fileQueue: Set; 13 | timeoutId: NodeJS.Timeout; 14 | styleEl: HTMLStyleElement; 15 | skipDebounce: boolean; 16 | 17 | async onload() { 18 | console.log('Loading Literate Styles plugin ...'); 19 | 20 | await this.loadSettings(); 21 | this.addSettingTab(new LiterateStylesTab(this.app, this)); 22 | 23 | this.startPlugin(); 24 | 25 | this.addCommand({ 26 | id: 'literate-styles-refresh', 27 | name: 'Refresh Current File', 28 | checkCallback: (checking) => { 29 | const file = this.app.workspace.getActiveFile(); 30 | if (!file || !this.canProcess(file)) { 31 | return false; 32 | } 33 | if (checking) { 34 | return true; 35 | } 36 | this.skipDebounce = true; 37 | this.handleEvent(file); 38 | this.skipDebounce = false; 39 | }, 40 | }); 41 | 42 | // console.log('Literate Styles plugin running ...'); 43 | } 44 | 45 | startPlugin() { 46 | if (!this.settings.stylesFolder) { 47 | new Notice('Literate Styles can not work without a styles folder set'); 48 | return; 49 | } 50 | 51 | this.fileQueue = new Set(); 52 | this.buffer = new Map(); 53 | this.skipDebounce = false; 54 | 55 | /** 56 | * Add the style element we will be writing to to the header 57 | */ 58 | document 59 | .querySelectorAll(`.${LITERATE_STYLES_CLASSNAME}`) 60 | .forEach((e) => e.remove()); 61 | 62 | this.styleEl = document.createElement('style'); 63 | this.styleEl.setAttribute('type', 'text/css'); 64 | this.styleEl.addClass(LITERATE_STYLES_CLASSNAME); 65 | document.head.appendChild(this.styleEl); 66 | 67 | /** 68 | * Attach event handlers to create and modify events throughout the vault 69 | */ 70 | this.registerEvent( 71 | this.app.vault.on('create', this.handleEvent.bind(this)) 72 | ); 73 | this.registerEvent( 74 | this.app.vault.on('modify', this.handleEvent.bind(this)) 75 | ); 76 | 77 | /** 78 | * Also run through every file once on initialisation. 79 | */ 80 | this.app.workspace.onLayoutReady(async () => { 81 | const files = this.app.vault.getMarkdownFiles(); 82 | this.skipDebounce = true; 83 | await Promise.all(files.map((file) => this.handleEvent(file))); 84 | this.skipDebounce = false; 85 | }); 86 | } 87 | 88 | /** 89 | * Handle events from obsidian and check a few things before handing the event off: 90 | * - Abort if arg is not passed at all, or the arg is a folder 91 | * - Abort if file is not an .md file and not within the literate styles folder 92 | * If all checks pass, request a parse for this file 93 | */ 94 | async handleEvent(arg?: TFolder | TFile | null) { 95 | if (this.canProcess(arg)) { 96 | // console.log('Requesting a parse of file', arg.path); 97 | await this.requestParse(arg); 98 | } 99 | } 100 | 101 | /** 102 | * Add file to the queue and fire off a debounced parseQueue 103 | */ 104 | async requestParse(file: TFile) { 105 | const { refreshRate } = this.settings; 106 | 107 | if (refreshRate === 0 && !this.skipDebounce) { 108 | return; 109 | } 110 | 111 | this.fileQueue.add(file); 112 | 113 | if (this.skipDebounce) { 114 | this.parseQueue(); 115 | return; 116 | } 117 | 118 | if (this.timeoutId) { 119 | clearTimeout(this.timeoutId); 120 | } 121 | 122 | this.timeoutId = setTimeout(() => { 123 | this.parseQueue(); 124 | }, refreshRate); 125 | } 126 | 127 | /** 128 | * Process every file in the queue 129 | */ 130 | async parseQueue() { 131 | for (const file of this.fileQueue) { 132 | /** 133 | * Store all style blocks of this file in a local buffer first 134 | */ 135 | const localBuffer = new Set(); 136 | 137 | /** 138 | * Read the file contents and split them into an array of lines 139 | */ 140 | const contents = await app.vault.cachedRead(file); 141 | const lines = contents.split('\n'); 142 | 143 | /** 144 | * For every line, look for a start of a css code fence and start capturing 145 | * lines into an array. Split code fences into their own array, to be parsed 146 | * and handled individually. 147 | */ 148 | const styleFences: string[][] = []; 149 | const startRegex = /^\s*```(css|less)/; 150 | const endRegex = /^\s*```/; 151 | let shouldCapture = false; 152 | 153 | let fenceIndex = 0; 154 | for (const line of lines) { 155 | if (line.match(startRegex)) { 156 | shouldCapture = true; 157 | styleFences.push([]); 158 | continue; 159 | } 160 | if (shouldCapture) { 161 | if (line.match(endRegex)) { 162 | shouldCapture = false; 163 | fenceIndex++; 164 | continue; 165 | } 166 | styleFences[fenceIndex].push(line); 167 | } 168 | } 169 | 170 | for (const fence of styleFences) { 171 | const styles = fence.join('\n'); 172 | localBuffer.add(styles); 173 | } 174 | /** 175 | * Add the localBuffer to the global buffer 176 | */ 177 | this.buffer.set(file.path, localBuffer); 178 | } 179 | 180 | /** 181 | * Now that we have parsed the code fences, clear the queue 182 | * and pass the rest off to the style renderer 183 | */ 184 | this.fileQueue.clear(); 185 | this.render(); 186 | } 187 | 188 | /** 189 | * Render the contents of the buffer to the style element we are using 190 | */ 191 | render() { 192 | const css = [...this.buffer.values()] 193 | .map((styleSet) => [...styleSet].join('\n')) 194 | .join('\n'); 195 | 196 | try { 197 | render(css, {}, (err, output) => { 198 | if (err) { 199 | throw err; 200 | } 201 | if (!output) return; 202 | this.styleEl.innerHTML = output.css; 203 | }); 204 | } catch (err) { 205 | console.log(err); 206 | } 207 | } 208 | 209 | onunload() { 210 | console.log('Unloading Literate Styles plugin ...'); 211 | this.fileQueue.clear(); 212 | this.buffer.clear(); 213 | document 214 | .querySelectorAll(`.${LITERATE_STYLES_CLASSNAME}`) 215 | .forEach((e) => e.remove()); 216 | } 217 | 218 | canProcess(arg?: TFolder | TFile | null): arg is TFile { 219 | const { stylesFolder = '' } = this.settings; 220 | 221 | if ( 222 | !arg || 223 | this.isFolder(arg) || 224 | !arg.path.startsWith(stylesFolder) || 225 | extname(arg.path) !== '.md' 226 | ) { 227 | return false; 228 | } 229 | return true; 230 | } 231 | 232 | isFolder(arg: TFolder | TFile): boolean { 233 | if (arg instanceof TFolder) { 234 | return true; 235 | } 236 | return false; 237 | } 238 | 239 | async loadSettings() { 240 | this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); 241 | } 242 | 243 | async saveSettings() { 244 | await this.saveData(this.settings); 245 | this.startPlugin(); 246 | } 247 | } 248 | -------------------------------------------------------------------------------- /src/settings/Settings.ts: -------------------------------------------------------------------------------- 1 | import { App, PluginSettingTab, Setting } from 'obsidian'; 2 | import LiterateStylesPlugin from '../main'; 3 | import { Settings } from './Settings.types'; 4 | 5 | export const DEFAULT_SETTINGS: Settings = { 6 | stylesFolder: undefined, 7 | refreshRate: 2500, 8 | errorNoticeTimeout: 10000, 9 | }; 10 | 11 | export class LiterateStylesTab extends PluginSettingTab { 12 | plugin: LiterateStylesPlugin; 13 | 14 | constructor(app: App, plugin: LiterateStylesPlugin) { 15 | super(app, plugin); 16 | this.plugin = plugin; 17 | } 18 | 19 | display(): void { 20 | const { containerEl } = this; 21 | 22 | containerEl.empty(); 23 | 24 | this.addHeading(); 25 | this.addStylesFolderSetting(); 26 | this.addRefreshRateSetting(); 27 | this.addErrorNoticeTimeoutSetting(); 28 | } 29 | 30 | addHeading(): void { 31 | this.containerEl.createEl('h2', { text: 'Literate Styles Settings' }); 32 | } 33 | 34 | addStylesFolderSetting(): void { 35 | new Setting(this.containerEl) 36 | .setName('Styles folder location') 37 | .setDesc('Files in this folder will be treated as literate style files.') 38 | .addText((text) => 39 | text 40 | .setPlaceholder('Path/To/Literate Styles/Folder') 41 | .setValue(this.plugin.settings.stylesFolder ?? '') 42 | .onChange(async (value) => { 43 | this.plugin.settings.stylesFolder = value; 44 | await this.plugin.saveSettings(); 45 | }) 46 | ); 47 | } 48 | 49 | addRefreshRateSetting(): void { 50 | new Setting(this.containerEl) 51 | .setName('Refresh Rate') 52 | .setDesc( 53 | `Pause for X milliseconds after last change before a refresh will trigger. A value of 0 disables automatic refresh.` 54 | ) 55 | .addSlider((slider) => 56 | slider 57 | .setLimits(0, 10000, 500) 58 | .setValue(this.plugin.settings.refreshRate) 59 | .setDynamicTooltip() 60 | .onChange(async (value) => { 61 | this.plugin.settings.refreshRate = value; 62 | await this.plugin.saveSettings(); 63 | }) 64 | ); 65 | } 66 | 67 | addErrorNoticeTimeoutSetting(): void { 68 | new Setting(this.containerEl) 69 | .setName('Error Notice Timeout') 70 | .setDesc( 71 | `Time in milliseconds the error notice should stay visible. A value of 0 disables error notice.` 72 | ) 73 | .addSlider((slider) => 74 | slider 75 | .setLimits(0, 25000, 500) 76 | .setValue(this.plugin.settings.errorNoticeTimeout) 77 | .setDynamicTooltip() 78 | .onChange(async (value) => { 79 | this.plugin.settings.errorNoticeTimeout = value; 80 | await this.plugin.saveSettings(); 81 | }) 82 | ); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/settings/Settings.types.ts: -------------------------------------------------------------------------------- 1 | export type Settings = { 2 | stylesFolder?: string; 3 | refreshRate: number; 4 | errorNoticeTimeout: number; 5 | }; 6 | -------------------------------------------------------------------------------- /src/settings/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Settings'; 2 | export * from './Settings.types'; 3 | -------------------------------------------------------------------------------- /src/types.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'zcss.js' { 2 | export function zcss(src: string): string; 3 | } 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "inlineSourceMap": true, 5 | "inlineSources": true, 6 | "module": "ESNext", 7 | "target": "ES6", 8 | "allowJs": true, 9 | "noImplicitAny": true, 10 | "moduleResolution": "node", 11 | "allowSyntheticDefaultImports": true, 12 | "importHelpers": true, 13 | "isolatedModules": true, 14 | "strictNullChecks": true, 15 | "lib": ["DOM", "ES5", "ES6", "ES7"] 16 | }, 17 | "include": ["**/*.ts"] 18 | } 19 | -------------------------------------------------------------------------------- /version-bump.mjs: -------------------------------------------------------------------------------- 1 | import { readFileSync, writeFileSync } from "fs"; 2 | 3 | const targetVersion = process.env.npm_package_version; 4 | 5 | // read minAppVersion from manifest.json and bump version to target version 6 | let manifest = JSON.parse(readFileSync("manifest.json", "utf8")); 7 | const { minAppVersion } = manifest; 8 | manifest.version = targetVersion; 9 | writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t")); 10 | 11 | // update versions.json with target version and minAppVersion from manifest.json 12 | let versions = JSON.parse(readFileSync("versions.json", "utf8")); 13 | versions[targetVersion] = minAppVersion; 14 | writeFileSync("versions.json", JSON.stringify(versions, null, "\t")); 15 | -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "0.1.0": "0.15.9", 3 | "0.1.1": "0.15.9", 4 | "0.1.2": "0.15.9" 5 | } --------------------------------------------------------------------------------