├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github └── workflows │ └── release.yml ├── .gitignore ├── .npmrc ├── LICENSE.md ├── README.md ├── bin └── release.sh ├── esbuild.config.mjs ├── main.ts ├── manifest.json ├── package.json ├── pnpm-lock.yaml ├── readme-assets ├── blockquote-levels-128.png ├── blockquote-levels-256.png ├── blockquote-levels-64.png └── showcase.gif ├── tsconfig.json ├── types.d.ts └── 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 = spaces 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": [ 6 | "@typescript-eslint" 7 | ], 8 | "extends": [ 9 | "eslint:recommended", 10 | "plugin:@typescript-eslint/eslint-recommended", 11 | "plugin:@typescript-eslint/recommended" 12 | ], 13 | "parserOptions": { 14 | "sourceType": "module" 15 | }, 16 | "rules": { 17 | "no-unused-vars": "off", 18 | "@typescript-eslint/no-unused-vars": ["error", { "args": "none" }], 19 | "@typescript-eslint/ban-ts-comment": "off", 20 | "no-prototype-builtins": "off", 21 | "@typescript-eslint/no-empty-function": "off" 22 | } 23 | } -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release Obsidian Plugin 2 | on: 3 | push: 4 | # Sequence of patterns matched against refs/tags 5 | tags: 6 | - "*" # Push events to matching any tag format, i.e. 1.0, 20.15.10 7 | permissions: 8 | contents: write 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | fetch-depth: 0 # otherwise, you will failed to push refs to dest repo 16 | - uses: actions/setup-node@v3 17 | with: 18 | node-version: "16.x" # You might need to adjust this value to your own version 19 | 20 | # Build the plugin 21 | - name: Build 22 | run: | 23 | yarn 24 | yarn run build 25 | 26 | # Get the version number and put it in a variable 27 | - name: Get version info 28 | id: version 29 | run: | 30 | echo "name=$(git describe --abbrev=0 --tags)" >> $GITHUB_OUTPUT 31 | 32 | # Package the required files into a zip 33 | - name: Package plugin archive 34 | run: | 35 | mkdir ${{ github.event.repository.name }} 36 | cp main.js manifest.json README.md ${{ github.event.repository.name }} 37 | zip -r ${{ github.event.repository.name }}-${{ steps.version.outputs.name }}.zip ${{ github.event.repository.name }} 38 | 39 | # Create the release on github 40 | - name: Create release 41 | uses: softprops/action-gh-release@v1 42 | if: startsWith(github.ref, 'refs/tags/') 43 | with: 44 | draft: true 45 | files: | 46 | ${{ github.event.repository.name }}-${{ steps.version.outputs.name }}.zip 47 | main.js 48 | manifest.json 49 | name: ${{ steps.version.outputs.name }} 50 | prerelease: false 51 | tag_name: ${{ github.ref }} 52 | token: ${{ secrets.GITHUB_TOKEN }} 53 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # vscode 2 | .vscode 3 | 4 | # npm 5 | node_modules 6 | 7 | # Don't include the compiled main.js file in the repo. 8 | # They should be uploaded to GitHub releases instead. 9 | main.js 10 | 11 | # Exclude sourcemaps 12 | *.map 13 | 14 | # obsidian 15 | data.json 16 | 17 | # Exclude macOS Finder (System Explorer) View States 18 | .DS_Store 19 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | auto-install-peers=true 2 | tag-version-prefix="" 3 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2021-present Carlo Zottmann, https://zottmann.org/ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Plugin logo thingie: a chevron, a plus, a chevron 2 | 3 | # Blockquote Levels 4 | 5 | This plugin for [Obsidian](https://obsidian.md) adds commands for increasing/decreasing the blockquote level of the current line or selection(s). 6 | 7 | 8 | ## Usage 9 | 10 | The plugin introduces two new commands, "Blockquote Levels: Increase" and "Blockquote Levels: Decrease". 11 | 12 | "Increase" adds a Markdown blockquote prefix (`>`) to the current line, the current selection or selections. Subsequent calls will add subsequent prefixes, thus increasing the quote levels. 13 | 14 | "Decrease" removes the first Markdown blockquote prefix (`>`) from the current line, the current selection or selections. Mix'n'match is fine as each line is processed individually; when the selected lines sport different quote levels, only one prefix (`>`) is removed from each line (where present). 15 | 16 | Out of the box the plugin doesn't set hotkeys, set them yourself as you see fit, or trigger the commands using the command palette. The World is your oyster! 17 | 18 | 19 | ## Showcase 20 | 21 | ![Showcase GIF](https://raw.githubusercontent.com/czottmann/obsidian-blockquote-levels/main/readme-assets/showcase.gif) 22 | 23 | 24 | ## Bug Reports & Discussions 25 | 26 | For bug reports please use this repo's Issues section — thank you! 27 | 28 | I've moved all plugin **discussions** to the ActionsDotWork Forum which is a hub for both my Obsidian plugins and the macOS/iOS productivity apps I'm building: [Carlo's Obsidian Plugins - ActionsDotWork Forum](https://forum.actions.work/c/obsidian-plugins/8). 29 | 30 | The forum supports single-sign-on via GitHub, Apple and Google, meaning you can log in with your GitHub account. 31 | 32 | 33 | ## Installation 34 | 35 | 1. Search for "Blockquote Levels" in Obsidian's community plugins browser. ([This link should bring it up.](https://obsidian.md/plugins?id=zottmann)) 36 | 2. Install it. 37 | 3. Enable the plugin in your Obsidian settings under "Community plugins". 38 | 39 | That's it. 40 | 41 | 42 | ## Installation via BRAT (for pre-releases or betas) 43 | 44 | 1. Install [BRAT](https://github.com/TfTHacker/obsidian42-brat). 45 | 2. Add "Blockquote Levels" to BRAT: 46 | 1. Open "Obsidian42 - BRAT" via Settings → Community Plugins 47 | 2. Click "Add Beta plugin" 48 | 3. Use the repository address `czottmann/obsidian-blockquote-levels` 49 | 3. Enable "Blockquote Levels" under Settings → Options → Community Plugins 50 | 51 | 52 | ## Development 53 | 54 | Clone the repository, run `pnpm install` OR `npm install` to install the dependencies. Afterwards, run `pnpm dev` OR `npm run dev` to compile and have it watch for file changes. 55 | 56 | 57 | ## Thanks to … 58 | 59 | - the [obsidian-tasks](https://github.com/obsidian-tasks-group/obsidian-tasks) crew for the "starter templates" for the GitHub Action workflow and the handy `release.sh` script 60 | 61 | 62 | ## Author 63 | 64 | Carlo Zottmann, , https://zottmann.org/ 65 | 66 | 67 | ## License 68 | 69 | MIT, see [LICENSE.md](https://github.com/czottmann/obsidian-blockquote-levels/blob/main/LICENSE.md). 70 | -------------------------------------------------------------------------------- /bin/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Thanks to https://github.com/obsidian-tasks-group/obsidian-tasks for this 4 | # script! 5 | 6 | set -euo pipefail 7 | 8 | if [ "$#" -ne 2 ]; then 9 | echo "Must provide exactly two arguments." 10 | echo "First one must be the new version number." 11 | echo "Second one must be the minimum obsidian version for this release." 12 | echo "" 13 | echo "Example usage:" 14 | echo "./release.sh 0.3.0 0.11.13" 15 | echo "Exiting." 16 | 17 | exit 1 18 | fi 19 | 20 | if [[ $(git status --porcelain) ]]; then 21 | echo "Changes in the git repo." 22 | echo "Exiting." 23 | 24 | exit 1 25 | fi 26 | 27 | NEW_VERSION=$1 28 | MINIMUM_OBSIDIAN_VERSION=$2 29 | 30 | echo "Updating to version ${NEW_VERSION} with minimum Obsidian version ${MINIMUM_OBSIDIAN_VERSION}" 31 | 32 | read -p "Continue? [y/N] " -n 1 -r 33 | echo 34 | if [[ $REPLY =~ ^[Yy]$ ]] 35 | then 36 | echo "Updating package.json" 37 | TEMP_FILE=$(mktemp) 38 | jq ".version |= \"${NEW_VERSION}\"" package.json > "$TEMP_FILE" || exit 1 39 | mv "$TEMP_FILE" package.json 40 | 41 | echo "Updating manifest.json" 42 | TEMP_FILE=$(mktemp) 43 | jq ".version |= \"${NEW_VERSION}\" | .minAppVersion |= \"${MINIMUM_OBSIDIAN_VERSION}\"" manifest.json > "$TEMP_FILE" || exit 1 44 | mv "$TEMP_FILE" manifest.json 45 | 46 | echo "Updating versions.json" 47 | TEMP_FILE=$(mktemp) 48 | jq ". += {\"${NEW_VERSION}\": \"${MINIMUM_OBSIDIAN_VERSION}\"}" versions.json > "$TEMP_FILE" || exit 1 49 | mv "$TEMP_FILE" versions.json 50 | 51 | read -p "Create git commit, tag, and push? [y/N] " -n 1 -r 52 | echo 53 | if [[ $REPLY =~ ^[Yy]$ ]] 54 | then 55 | git add -A . 56 | git commit -m"[REL] Releases version ${NEW_VERSION}" 57 | git tag "${NEW_VERSION}" 58 | git push 59 | LEFTHOOK=0 git push --tags 60 | fi 61 | 62 | else 63 | echo "Exiting." 64 | exit 1 65 | fi 66 | -------------------------------------------------------------------------------- /esbuild.config.mjs: -------------------------------------------------------------------------------- 1 | import esbuild from "esbuild"; 2 | import process from "process"; 3 | import builtins from "builtin-modules"; 4 | import { exec } from "child_process"; 5 | 6 | const banner = `/* 7 | THIS IS A GENERATED/BUNDLED FILE BY ESBUILD 8 | if you want to view the source, please visit the github repository of this plugin 9 | */ 10 | `; 11 | 12 | const isProduction = process.argv[2] === "production"; 13 | const rsyncPlugin = { 14 | name: "rsyncPlugin", 15 | setup(build) { 16 | build.onEnd((result) => { 17 | if (process.env.USER !== "czottmann" || isProduction) { 18 | return; 19 | } 20 | 21 | exec( 22 | "../bin/sync-current-plugins-to-workbench-vault.fish", 23 | (error, stdout, stderr) => { 24 | if (error) { 25 | console.log(`exec error: ${error}`); 26 | } 27 | if (stderr) { 28 | console.log(stderr); 29 | } else 30 | console.log( 31 | "[watch] sync'd via `../bin/sync-current-plugins-to-workbench-vault.fish`" 32 | ); 33 | } 34 | ); 35 | }); 36 | }, 37 | }; 38 | 39 | esbuild 40 | .build({ 41 | banner: { 42 | js: banner, 43 | }, 44 | entryPoints: ["main.ts"], 45 | bundle: true, 46 | external: [ 47 | "obsidian", 48 | "electron", 49 | "@codemirror/autocomplete", 50 | "@codemirror/collab", 51 | "@codemirror/commands", 52 | "@codemirror/language", 53 | "@codemirror/lint", 54 | "@codemirror/search", 55 | "@codemirror/state", 56 | "@codemirror/view", 57 | "@lezer/common", 58 | "@lezer/highlight", 59 | "@lezer/lr", 60 | ...builtins, 61 | ], 62 | format: "cjs", 63 | watch: !isProduction, 64 | target: "es2018", 65 | logLevel: "info", 66 | sourcemap: isProduction ? false : "inline", 67 | treeShaking: true, 68 | outfile: "main.js", 69 | plugins: [rsyncPlugin], 70 | }) 71 | .catch(() => process.exit(1)); 72 | -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- 1 | import { 2 | App, 3 | Editor, 4 | EditorSelection, 5 | EditorSelectionOrCaret, 6 | MarkdownView, 7 | Plugin, 8 | PluginSettingTab, 9 | Setting, 10 | } from "obsidian"; 11 | import { 12 | LineProcessor, 13 | SelectionLineNumbers, 14 | SelectionProcessor, 15 | } from "./types"; 16 | 17 | interface BlockquoteLevelsSettings { 18 | spaceBetweenPrefixes: boolean; 19 | } 20 | 21 | const DEFAULT_SETTINGS: BlockquoteLevelsSettings = { 22 | spaceBetweenPrefixes: false, 23 | }; 24 | 25 | export default class BlockquoteLevels extends Plugin { 26 | settings: BlockquoteLevelsSettings; 27 | 28 | async onload() { 29 | await this.loadSettings(); 30 | this.addSettingTab(new BlockquoteLevelsSettingTab(this.app, this)); 31 | 32 | this.addCommand({ 33 | id: "blockquote-levels-increase", 34 | name: "Increase", 35 | editorCallback: (editor: Editor, view: MarkdownView) => { 36 | if (editor.somethingSelected()) { 37 | this.increaseLevelForSelections(editor); 38 | } else { 39 | this.increaseLevelForLine(editor); 40 | } 41 | }, 42 | }); 43 | 44 | this.addCommand({ 45 | id: "blockquote-levels-decrease", 46 | name: "Decrease", 47 | editorCallback: (editor: Editor, view: MarkdownView) => { 48 | if (editor.somethingSelected()) { 49 | this.decreaseLevelForSelections(editor); 50 | } else { 51 | this.decreaseLevelForLine(editor); 52 | } 53 | }, 54 | }); 55 | } 56 | 57 | onunload() {} 58 | 59 | async loadSettings() { 60 | this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); 61 | } 62 | 63 | async saveSettings() { 64 | await this.saveData(this.settings); 65 | } 66 | 67 | private increaseLevelForSelections(editor: Editor) { 68 | const prefix = this.settings.spaceBetweenPrefixes ? "> " : ">"; 69 | this.processSelections( 70 | editor, 71 | (line: string) => /^>/.test(line) ? `${prefix}${line}` : `> ${line}`, 72 | ); 73 | } 74 | 75 | private decreaseLevelForSelections(editor: Editor) { 76 | this.processSelections( 77 | editor, 78 | (line: string) => line.replace(/^>\s*/, ""), 79 | ); 80 | } 81 | 82 | private processSelections(editor: Editor, lineProcessor: LineProcessor) { 83 | this.expandAndSortSelections(editor); 84 | 85 | // Replace text 86 | for (const selection of editor.listSelections()) { 87 | const text = editor.getRange(selection.anchor, selection.head) 88 | .split(/\n/) 89 | .map(lineProcessor) 90 | .join("\n"); 91 | 92 | editor.replaceRange(text, selection.anchor, selection.head); 93 | } 94 | } 95 | 96 | private expandAndSortSelections(editor: Editor) { 97 | const preparedSelections = editor.listSelections() 98 | // Sort selections by line numbers, descending, so we're working from the 99 | // bottom up, seems safer 100 | .sort((s1, s2) => 101 | this.getLineNumbersOfSelection(s2).lastLine - 102 | this.getLineNumbersOfSelection(s1).lastLine 103 | ) 104 | // Expand selections to full lines 105 | .map((selection): EditorSelectionOrCaret => { 106 | const { firstLine, lastLine } = this.getLineNumbersOfSelection( 107 | selection, 108 | ); 109 | return { 110 | anchor: { line: firstLine, ch: 0 }, 111 | head: { line: lastLine, ch: editor.getLine(lastLine).length }, 112 | }; 113 | }); 114 | 115 | editor.setSelections(preparedSelections); 116 | } 117 | 118 | getLineNumbersOfSelection(selection: EditorSelection): SelectionLineNumbers { 119 | const nos = [selection.anchor.line, selection.head.line] 120 | .sort((a, b) => a - b); 121 | 122 | return { 123 | firstLine: nos[0], 124 | lastLine: nos[1], 125 | }; 126 | } 127 | 128 | private increaseLevelForLine(editor: Editor) { 129 | this.processLine( 130 | editor, 131 | () => this.increaseLevelForSelections(editor), 132 | ); 133 | } 134 | 135 | private decreaseLevelForLine(editor: Editor) { 136 | this.processLine( 137 | editor, 138 | () => this.decreaseLevelForSelections(editor), 139 | ); 140 | } 141 | 142 | private processLine(editor: Editor, selectionProcessor: SelectionProcessor) { 143 | const { line, ch } = editor.getCursor("head"); 144 | const origLineLength = editor.getLine(line).length; 145 | 146 | // Create selection containing the line the cursor is in 147 | editor.setSelection( 148 | { line, ch: 0 }, 149 | { line, ch: origLineLength }, 150 | ); 151 | selectionProcessor(editor); 152 | 153 | // Set correct new cursor position, which also clears the selection 154 | const cursorOffset = editor.getLine(line).length - origLineLength; 155 | editor.setCursor({ line, ch: ch + cursorOffset }); 156 | } 157 | } 158 | 159 | class BlockquoteLevelsSettingTab extends PluginSettingTab { 160 | plugin: BlockquoteLevels; 161 | 162 | constructor(app: App, plugin: BlockquoteLevels) { 163 | super(app, plugin); 164 | this.plugin = plugin; 165 | } 166 | 167 | display(): void { 168 | const { containerEl } = this; 169 | 170 | containerEl.empty(); 171 | containerEl.createEl("h2", { text: "Blockquote Levels Settings" }); 172 | 173 | new Setting(containerEl) 174 | .setName("Use a space between subsequent blockquote prefixes") 175 | .setDesc('Disabled: ">>> quote", Enabled: "> > > quote"') 176 | .addToggle((toggle) => 177 | toggle 178 | .setValue(this.plugin.settings.spaceBetweenPrefixes) 179 | .onChange(async (value) => { 180 | console.log( 181 | "[Blockquote Levels] " + 182 | "Use spaces between subsequent blockquote prefixes: " + 183 | value, 184 | ); 185 | this.plugin.settings.spaceBetweenPrefixes = value; 186 | await this.plugin.saveSettings(); 187 | }) 188 | ); 189 | } 190 | } 191 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "blockquote-levels", 3 | "name": "Blockquote Levels", 4 | "version": "1.1.0", 5 | "minAppVersion": "0.15.0", 6 | "description": "Adds commands for increasing/decreasing the blockquote level of the current line or selection.", 7 | "author": "Carlo Zottmann", 8 | "authorUrl": "https://github.com/czottmann", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obsidian-blockquote-levels", 3 | "version": "1.1.0", 4 | "description": "This plugin for Obsidian (https://obsidian.md) adds commands for increasing/decreasing the blockquote level of the current line or selection.", 5 | "main": "main.js", 6 | "scripts": { 7 | "dev": "node esbuild.config.mjs", 8 | "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", 9 | "version": "node version-bump.mjs && git add manifest.json versions.json" 10 | }, 11 | "keywords": [], 12 | "author": "Carlo Zottmann, https://github.com/czottmann/", 13 | "license": "MIT", 14 | "devDependencies": { 15 | "@types/node": "^16.11.58", 16 | "@typescript-eslint/eslint-plugin": "5.36.2", 17 | "@typescript-eslint/parser": "5.36.2", 18 | "builtin-modules": "3.3.0", 19 | "esbuild": "0.15.7", 20 | "obsidian": "latest", 21 | "tslib": "2.4.0", 22 | "typescript": "4.8.3" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@types/node': 12 | specifier: ^16.11.58 13 | version: 16.18.108 14 | '@typescript-eslint/eslint-plugin': 15 | specifier: 5.36.2 16 | version: 5.36.2(@typescript-eslint/parser@5.36.2(eslint@8.57.1)(typescript@4.8.3))(eslint@8.57.1)(typescript@4.8.3) 17 | '@typescript-eslint/parser': 18 | specifier: 5.36.2 19 | version: 5.36.2(eslint@8.57.1)(typescript@4.8.3) 20 | builtin-modules: 21 | specifier: 3.3.0 22 | version: 3.3.0 23 | esbuild: 24 | specifier: 0.15.7 25 | version: 0.15.7 26 | obsidian: 27 | specifier: latest 28 | version: 1.6.6(@codemirror/state@6.4.1)(@codemirror/view@6.33.0) 29 | tslib: 30 | specifier: 2.4.0 31 | version: 2.4.0 32 | typescript: 33 | specifier: 4.8.3 34 | version: 4.8.3 35 | 36 | packages: 37 | 38 | '@codemirror/state@6.4.1': 39 | resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} 40 | 41 | '@codemirror/view@6.33.0': 42 | resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} 43 | 44 | '@esbuild/linux-loong64@0.15.7': 45 | resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} 46 | engines: {node: '>=12'} 47 | cpu: [loong64] 48 | os: [linux] 49 | 50 | '@eslint-community/eslint-utils@4.4.0': 51 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 52 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 53 | peerDependencies: 54 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 55 | 56 | '@eslint-community/regexpp@4.11.1': 57 | resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} 58 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 59 | 60 | '@eslint/eslintrc@2.1.4': 61 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 62 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 63 | 64 | '@eslint/js@8.57.1': 65 | resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} 66 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 67 | 68 | '@humanwhocodes/config-array@0.13.0': 69 | resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} 70 | engines: {node: '>=10.10.0'} 71 | deprecated: Use @eslint/config-array instead 72 | 73 | '@humanwhocodes/module-importer@1.0.1': 74 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 75 | engines: {node: '>=12.22'} 76 | 77 | '@humanwhocodes/object-schema@2.0.3': 78 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 79 | deprecated: Use @eslint/object-schema instead 80 | 81 | '@nodelib/fs.scandir@2.1.5': 82 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 83 | engines: {node: '>= 8'} 84 | 85 | '@nodelib/fs.stat@2.0.5': 86 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 87 | engines: {node: '>= 8'} 88 | 89 | '@nodelib/fs.walk@1.2.8': 90 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 91 | engines: {node: '>= 8'} 92 | 93 | '@types/codemirror@5.60.8': 94 | resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} 95 | 96 | '@types/estree@1.0.5': 97 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 98 | 99 | '@types/json-schema@7.0.15': 100 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 101 | 102 | '@types/node@16.18.108': 103 | resolution: {integrity: sha512-fj42LD82fSv6yN9C6Q4dzS+hujHj+pTv0IpRR3kI20fnYeS0ytBpjFO9OjmDowSPPt4lNKN46JLaKbCyP+BW2A==} 104 | 105 | '@types/tern@0.23.9': 106 | resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} 107 | 108 | '@typescript-eslint/eslint-plugin@5.36.2': 109 | resolution: {integrity: sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw==} 110 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 111 | peerDependencies: 112 | '@typescript-eslint/parser': ^5.0.0 113 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 114 | typescript: '*' 115 | peerDependenciesMeta: 116 | typescript: 117 | optional: true 118 | 119 | '@typescript-eslint/parser@5.36.2': 120 | resolution: {integrity: sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA==} 121 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 122 | peerDependencies: 123 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 124 | typescript: '*' 125 | peerDependenciesMeta: 126 | typescript: 127 | optional: true 128 | 129 | '@typescript-eslint/scope-manager@5.36.2': 130 | resolution: {integrity: sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw==} 131 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 132 | 133 | '@typescript-eslint/type-utils@5.36.2': 134 | resolution: {integrity: sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw==} 135 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 136 | peerDependencies: 137 | eslint: '*' 138 | typescript: '*' 139 | peerDependenciesMeta: 140 | typescript: 141 | optional: true 142 | 143 | '@typescript-eslint/types@5.36.2': 144 | resolution: {integrity: sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ==} 145 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 146 | 147 | '@typescript-eslint/typescript-estree@5.36.2': 148 | resolution: {integrity: sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w==} 149 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 150 | peerDependencies: 151 | typescript: '*' 152 | peerDependenciesMeta: 153 | typescript: 154 | optional: true 155 | 156 | '@typescript-eslint/utils@5.36.2': 157 | resolution: {integrity: sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg==} 158 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 159 | peerDependencies: 160 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 161 | 162 | '@typescript-eslint/visitor-keys@5.36.2': 163 | resolution: {integrity: sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A==} 164 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 165 | 166 | '@ungap/structured-clone@1.2.0': 167 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 168 | 169 | acorn-jsx@5.3.2: 170 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 171 | peerDependencies: 172 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 173 | 174 | acorn@8.12.1: 175 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 176 | engines: {node: '>=0.4.0'} 177 | hasBin: true 178 | 179 | ajv@6.12.6: 180 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 181 | 182 | ansi-regex@5.0.1: 183 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 184 | engines: {node: '>=8'} 185 | 186 | ansi-styles@4.3.0: 187 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 188 | engines: {node: '>=8'} 189 | 190 | argparse@2.0.1: 191 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 192 | 193 | array-union@2.1.0: 194 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 195 | engines: {node: '>=8'} 196 | 197 | balanced-match@1.0.2: 198 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 199 | 200 | brace-expansion@1.1.11: 201 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 202 | 203 | braces@3.0.3: 204 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 205 | engines: {node: '>=8'} 206 | 207 | builtin-modules@3.3.0: 208 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 209 | engines: {node: '>=6'} 210 | 211 | callsites@3.1.0: 212 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 213 | engines: {node: '>=6'} 214 | 215 | chalk@4.1.2: 216 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 217 | engines: {node: '>=10'} 218 | 219 | color-convert@2.0.1: 220 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 221 | engines: {node: '>=7.0.0'} 222 | 223 | color-name@1.1.4: 224 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 225 | 226 | concat-map@0.0.1: 227 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 228 | 229 | cross-spawn@7.0.3: 230 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 231 | engines: {node: '>= 8'} 232 | 233 | debug@4.3.7: 234 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 235 | engines: {node: '>=6.0'} 236 | peerDependencies: 237 | supports-color: '*' 238 | peerDependenciesMeta: 239 | supports-color: 240 | optional: true 241 | 242 | deep-is@0.1.4: 243 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 244 | 245 | dir-glob@3.0.1: 246 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 247 | engines: {node: '>=8'} 248 | 249 | doctrine@3.0.0: 250 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 251 | engines: {node: '>=6.0.0'} 252 | 253 | esbuild-android-64@0.15.7: 254 | resolution: {integrity: sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==} 255 | engines: {node: '>=12'} 256 | cpu: [x64] 257 | os: [android] 258 | 259 | esbuild-android-arm64@0.15.7: 260 | resolution: {integrity: sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==} 261 | engines: {node: '>=12'} 262 | cpu: [arm64] 263 | os: [android] 264 | 265 | esbuild-darwin-64@0.15.7: 266 | resolution: {integrity: sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==} 267 | engines: {node: '>=12'} 268 | cpu: [x64] 269 | os: [darwin] 270 | 271 | esbuild-darwin-arm64@0.15.7: 272 | resolution: {integrity: sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==} 273 | engines: {node: '>=12'} 274 | cpu: [arm64] 275 | os: [darwin] 276 | 277 | esbuild-freebsd-64@0.15.7: 278 | resolution: {integrity: sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==} 279 | engines: {node: '>=12'} 280 | cpu: [x64] 281 | os: [freebsd] 282 | 283 | esbuild-freebsd-arm64@0.15.7: 284 | resolution: {integrity: sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==} 285 | engines: {node: '>=12'} 286 | cpu: [arm64] 287 | os: [freebsd] 288 | 289 | esbuild-linux-32@0.15.7: 290 | resolution: {integrity: sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==} 291 | engines: {node: '>=12'} 292 | cpu: [ia32] 293 | os: [linux] 294 | 295 | esbuild-linux-64@0.15.7: 296 | resolution: {integrity: sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==} 297 | engines: {node: '>=12'} 298 | cpu: [x64] 299 | os: [linux] 300 | 301 | esbuild-linux-arm64@0.15.7: 302 | resolution: {integrity: sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==} 303 | engines: {node: '>=12'} 304 | cpu: [arm64] 305 | os: [linux] 306 | 307 | esbuild-linux-arm@0.15.7: 308 | resolution: {integrity: sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==} 309 | engines: {node: '>=12'} 310 | cpu: [arm] 311 | os: [linux] 312 | 313 | esbuild-linux-mips64le@0.15.7: 314 | resolution: {integrity: sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==} 315 | engines: {node: '>=12'} 316 | cpu: [mips64el] 317 | os: [linux] 318 | 319 | esbuild-linux-ppc64le@0.15.7: 320 | resolution: {integrity: sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==} 321 | engines: {node: '>=12'} 322 | cpu: [ppc64] 323 | os: [linux] 324 | 325 | esbuild-linux-riscv64@0.15.7: 326 | resolution: {integrity: sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==} 327 | engines: {node: '>=12'} 328 | cpu: [riscv64] 329 | os: [linux] 330 | 331 | esbuild-linux-s390x@0.15.7: 332 | resolution: {integrity: sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==} 333 | engines: {node: '>=12'} 334 | cpu: [s390x] 335 | os: [linux] 336 | 337 | esbuild-netbsd-64@0.15.7: 338 | resolution: {integrity: sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==} 339 | engines: {node: '>=12'} 340 | cpu: [x64] 341 | os: [netbsd] 342 | 343 | esbuild-openbsd-64@0.15.7: 344 | resolution: {integrity: sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==} 345 | engines: {node: '>=12'} 346 | cpu: [x64] 347 | os: [openbsd] 348 | 349 | esbuild-sunos-64@0.15.7: 350 | resolution: {integrity: sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==} 351 | engines: {node: '>=12'} 352 | cpu: [x64] 353 | os: [sunos] 354 | 355 | esbuild-windows-32@0.15.7: 356 | resolution: {integrity: sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==} 357 | engines: {node: '>=12'} 358 | cpu: [ia32] 359 | os: [win32] 360 | 361 | esbuild-windows-64@0.15.7: 362 | resolution: {integrity: sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==} 363 | engines: {node: '>=12'} 364 | cpu: [x64] 365 | os: [win32] 366 | 367 | esbuild-windows-arm64@0.15.7: 368 | resolution: {integrity: sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==} 369 | engines: {node: '>=12'} 370 | cpu: [arm64] 371 | os: [win32] 372 | 373 | esbuild@0.15.7: 374 | resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} 375 | engines: {node: '>=12'} 376 | hasBin: true 377 | 378 | escape-string-regexp@4.0.0: 379 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 380 | engines: {node: '>=10'} 381 | 382 | eslint-scope@5.1.1: 383 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 384 | engines: {node: '>=8.0.0'} 385 | 386 | eslint-scope@7.2.2: 387 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 388 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 389 | 390 | eslint-utils@3.0.0: 391 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 392 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 393 | peerDependencies: 394 | eslint: '>=5' 395 | 396 | eslint-visitor-keys@2.1.0: 397 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 398 | engines: {node: '>=10'} 399 | 400 | eslint-visitor-keys@3.4.3: 401 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 402 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 403 | 404 | eslint@8.57.1: 405 | resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} 406 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 407 | hasBin: true 408 | 409 | espree@9.6.1: 410 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 411 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 412 | 413 | esquery@1.6.0: 414 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 415 | engines: {node: '>=0.10'} 416 | 417 | esrecurse@4.3.0: 418 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 419 | engines: {node: '>=4.0'} 420 | 421 | estraverse@4.3.0: 422 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 423 | engines: {node: '>=4.0'} 424 | 425 | estraverse@5.3.0: 426 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 427 | engines: {node: '>=4.0'} 428 | 429 | esutils@2.0.3: 430 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 431 | engines: {node: '>=0.10.0'} 432 | 433 | fast-deep-equal@3.1.3: 434 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 435 | 436 | fast-glob@3.3.2: 437 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 438 | engines: {node: '>=8.6.0'} 439 | 440 | fast-json-stable-stringify@2.1.0: 441 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 442 | 443 | fast-levenshtein@2.0.6: 444 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 445 | 446 | fastq@1.17.1: 447 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 448 | 449 | file-entry-cache@6.0.1: 450 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 451 | engines: {node: ^10.12.0 || >=12.0.0} 452 | 453 | fill-range@7.1.1: 454 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 455 | engines: {node: '>=8'} 456 | 457 | find-up@5.0.0: 458 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 459 | engines: {node: '>=10'} 460 | 461 | flat-cache@3.2.0: 462 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 463 | engines: {node: ^10.12.0 || >=12.0.0} 464 | 465 | flatted@3.3.1: 466 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 467 | 468 | fs.realpath@1.0.0: 469 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 470 | 471 | functional-red-black-tree@1.0.1: 472 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 473 | 474 | glob-parent@5.1.2: 475 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 476 | engines: {node: '>= 6'} 477 | 478 | glob-parent@6.0.2: 479 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 480 | engines: {node: '>=10.13.0'} 481 | 482 | glob@7.2.3: 483 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 484 | deprecated: Glob versions prior to v9 are no longer supported 485 | 486 | globals@13.24.0: 487 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 488 | engines: {node: '>=8'} 489 | 490 | globby@11.1.0: 491 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 492 | engines: {node: '>=10'} 493 | 494 | graphemer@1.4.0: 495 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 496 | 497 | has-flag@4.0.0: 498 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 499 | engines: {node: '>=8'} 500 | 501 | ignore@5.3.2: 502 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 503 | engines: {node: '>= 4'} 504 | 505 | import-fresh@3.3.0: 506 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 507 | engines: {node: '>=6'} 508 | 509 | imurmurhash@0.1.4: 510 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 511 | engines: {node: '>=0.8.19'} 512 | 513 | inflight@1.0.6: 514 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 515 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 516 | 517 | inherits@2.0.4: 518 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 519 | 520 | is-extglob@2.1.1: 521 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 522 | engines: {node: '>=0.10.0'} 523 | 524 | is-glob@4.0.3: 525 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 526 | engines: {node: '>=0.10.0'} 527 | 528 | is-number@7.0.0: 529 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 530 | engines: {node: '>=0.12.0'} 531 | 532 | is-path-inside@3.0.3: 533 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 534 | engines: {node: '>=8'} 535 | 536 | isexe@2.0.0: 537 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 538 | 539 | js-yaml@4.1.0: 540 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 541 | hasBin: true 542 | 543 | json-buffer@3.0.1: 544 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 545 | 546 | json-schema-traverse@0.4.1: 547 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 548 | 549 | json-stable-stringify-without-jsonify@1.0.1: 550 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 551 | 552 | keyv@4.5.4: 553 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 554 | 555 | levn@0.4.1: 556 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 557 | engines: {node: '>= 0.8.0'} 558 | 559 | locate-path@6.0.0: 560 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 561 | engines: {node: '>=10'} 562 | 563 | lodash.merge@4.6.2: 564 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 565 | 566 | merge2@1.4.1: 567 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 568 | engines: {node: '>= 8'} 569 | 570 | micromatch@4.0.8: 571 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 572 | engines: {node: '>=8.6'} 573 | 574 | minimatch@3.1.2: 575 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 576 | 577 | moment@2.29.4: 578 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} 579 | 580 | ms@2.1.3: 581 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 582 | 583 | natural-compare@1.4.0: 584 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 585 | 586 | obsidian@1.6.6: 587 | resolution: {integrity: sha512-GZHzeOiwmw/wBjB5JwrsxAZBLqxGQmqtEKSvJJvT0LtTcqeOFnV8jv0ZK5kO7hBb44WxJc+LdS7mZgLXbb+qXQ==} 588 | peerDependencies: 589 | '@codemirror/state': ^6.0.0 590 | '@codemirror/view': ^6.0.0 591 | 592 | once@1.4.0: 593 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 594 | 595 | optionator@0.9.4: 596 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 597 | engines: {node: '>= 0.8.0'} 598 | 599 | p-limit@3.1.0: 600 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 601 | engines: {node: '>=10'} 602 | 603 | p-locate@5.0.0: 604 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 605 | engines: {node: '>=10'} 606 | 607 | parent-module@1.0.1: 608 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 609 | engines: {node: '>=6'} 610 | 611 | path-exists@4.0.0: 612 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 613 | engines: {node: '>=8'} 614 | 615 | path-is-absolute@1.0.1: 616 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 617 | engines: {node: '>=0.10.0'} 618 | 619 | path-key@3.1.1: 620 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 621 | engines: {node: '>=8'} 622 | 623 | path-type@4.0.0: 624 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 625 | engines: {node: '>=8'} 626 | 627 | picomatch@2.3.1: 628 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 629 | engines: {node: '>=8.6'} 630 | 631 | prelude-ls@1.2.1: 632 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 633 | engines: {node: '>= 0.8.0'} 634 | 635 | punycode@2.3.1: 636 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 637 | engines: {node: '>=6'} 638 | 639 | queue-microtask@1.2.3: 640 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 641 | 642 | regexpp@3.2.0: 643 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 644 | engines: {node: '>=8'} 645 | 646 | resolve-from@4.0.0: 647 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 648 | engines: {node: '>=4'} 649 | 650 | reusify@1.0.4: 651 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 652 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 653 | 654 | rimraf@3.0.2: 655 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 656 | deprecated: Rimraf versions prior to v4 are no longer supported 657 | hasBin: true 658 | 659 | run-parallel@1.2.0: 660 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 661 | 662 | semver@7.6.3: 663 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 664 | engines: {node: '>=10'} 665 | hasBin: true 666 | 667 | shebang-command@2.0.0: 668 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 669 | engines: {node: '>=8'} 670 | 671 | shebang-regex@3.0.0: 672 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 673 | engines: {node: '>=8'} 674 | 675 | slash@3.0.0: 676 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 677 | engines: {node: '>=8'} 678 | 679 | strip-ansi@6.0.1: 680 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 681 | engines: {node: '>=8'} 682 | 683 | strip-json-comments@3.1.1: 684 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 685 | engines: {node: '>=8'} 686 | 687 | style-mod@4.1.2: 688 | resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} 689 | 690 | supports-color@7.2.0: 691 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 692 | engines: {node: '>=8'} 693 | 694 | text-table@0.2.0: 695 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 696 | 697 | to-regex-range@5.0.1: 698 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 699 | engines: {node: '>=8.0'} 700 | 701 | tslib@1.14.1: 702 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 703 | 704 | tslib@2.4.0: 705 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 706 | 707 | tsutils@3.21.0: 708 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 709 | engines: {node: '>= 6'} 710 | peerDependencies: 711 | 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' 712 | 713 | type-check@0.4.0: 714 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 715 | engines: {node: '>= 0.8.0'} 716 | 717 | type-fest@0.20.2: 718 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 719 | engines: {node: '>=10'} 720 | 721 | typescript@4.8.3: 722 | resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} 723 | engines: {node: '>=4.2.0'} 724 | hasBin: true 725 | 726 | uri-js@4.4.1: 727 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 728 | 729 | w3c-keyname@2.2.8: 730 | resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} 731 | 732 | which@2.0.2: 733 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 734 | engines: {node: '>= 8'} 735 | hasBin: true 736 | 737 | word-wrap@1.2.5: 738 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 739 | engines: {node: '>=0.10.0'} 740 | 741 | wrappy@1.0.2: 742 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 743 | 744 | yocto-queue@0.1.0: 745 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 746 | engines: {node: '>=10'} 747 | 748 | snapshots: 749 | 750 | '@codemirror/state@6.4.1': {} 751 | 752 | '@codemirror/view@6.33.0': 753 | dependencies: 754 | '@codemirror/state': 6.4.1 755 | style-mod: 4.1.2 756 | w3c-keyname: 2.2.8 757 | 758 | '@esbuild/linux-loong64@0.15.7': 759 | optional: true 760 | 761 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': 762 | dependencies: 763 | eslint: 8.57.1 764 | eslint-visitor-keys: 3.4.3 765 | 766 | '@eslint-community/regexpp@4.11.1': {} 767 | 768 | '@eslint/eslintrc@2.1.4': 769 | dependencies: 770 | ajv: 6.12.6 771 | debug: 4.3.7 772 | espree: 9.6.1 773 | globals: 13.24.0 774 | ignore: 5.3.2 775 | import-fresh: 3.3.0 776 | js-yaml: 4.1.0 777 | minimatch: 3.1.2 778 | strip-json-comments: 3.1.1 779 | transitivePeerDependencies: 780 | - supports-color 781 | 782 | '@eslint/js@8.57.1': {} 783 | 784 | '@humanwhocodes/config-array@0.13.0': 785 | dependencies: 786 | '@humanwhocodes/object-schema': 2.0.3 787 | debug: 4.3.7 788 | minimatch: 3.1.2 789 | transitivePeerDependencies: 790 | - supports-color 791 | 792 | '@humanwhocodes/module-importer@1.0.1': {} 793 | 794 | '@humanwhocodes/object-schema@2.0.3': {} 795 | 796 | '@nodelib/fs.scandir@2.1.5': 797 | dependencies: 798 | '@nodelib/fs.stat': 2.0.5 799 | run-parallel: 1.2.0 800 | 801 | '@nodelib/fs.stat@2.0.5': {} 802 | 803 | '@nodelib/fs.walk@1.2.8': 804 | dependencies: 805 | '@nodelib/fs.scandir': 2.1.5 806 | fastq: 1.17.1 807 | 808 | '@types/codemirror@5.60.8': 809 | dependencies: 810 | '@types/tern': 0.23.9 811 | 812 | '@types/estree@1.0.5': {} 813 | 814 | '@types/json-schema@7.0.15': {} 815 | 816 | '@types/node@16.18.108': {} 817 | 818 | '@types/tern@0.23.9': 819 | dependencies: 820 | '@types/estree': 1.0.5 821 | 822 | '@typescript-eslint/eslint-plugin@5.36.2(@typescript-eslint/parser@5.36.2(eslint@8.57.1)(typescript@4.8.3))(eslint@8.57.1)(typescript@4.8.3)': 823 | dependencies: 824 | '@typescript-eslint/parser': 5.36.2(eslint@8.57.1)(typescript@4.8.3) 825 | '@typescript-eslint/scope-manager': 5.36.2 826 | '@typescript-eslint/type-utils': 5.36.2(eslint@8.57.1)(typescript@4.8.3) 827 | '@typescript-eslint/utils': 5.36.2(eslint@8.57.1)(typescript@4.8.3) 828 | debug: 4.3.7 829 | eslint: 8.57.1 830 | functional-red-black-tree: 1.0.1 831 | ignore: 5.3.2 832 | regexpp: 3.2.0 833 | semver: 7.6.3 834 | tsutils: 3.21.0(typescript@4.8.3) 835 | optionalDependencies: 836 | typescript: 4.8.3 837 | transitivePeerDependencies: 838 | - supports-color 839 | 840 | '@typescript-eslint/parser@5.36.2(eslint@8.57.1)(typescript@4.8.3)': 841 | dependencies: 842 | '@typescript-eslint/scope-manager': 5.36.2 843 | '@typescript-eslint/types': 5.36.2 844 | '@typescript-eslint/typescript-estree': 5.36.2(typescript@4.8.3) 845 | debug: 4.3.7 846 | eslint: 8.57.1 847 | optionalDependencies: 848 | typescript: 4.8.3 849 | transitivePeerDependencies: 850 | - supports-color 851 | 852 | '@typescript-eslint/scope-manager@5.36.2': 853 | dependencies: 854 | '@typescript-eslint/types': 5.36.2 855 | '@typescript-eslint/visitor-keys': 5.36.2 856 | 857 | '@typescript-eslint/type-utils@5.36.2(eslint@8.57.1)(typescript@4.8.3)': 858 | dependencies: 859 | '@typescript-eslint/typescript-estree': 5.36.2(typescript@4.8.3) 860 | '@typescript-eslint/utils': 5.36.2(eslint@8.57.1)(typescript@4.8.3) 861 | debug: 4.3.7 862 | eslint: 8.57.1 863 | tsutils: 3.21.0(typescript@4.8.3) 864 | optionalDependencies: 865 | typescript: 4.8.3 866 | transitivePeerDependencies: 867 | - supports-color 868 | 869 | '@typescript-eslint/types@5.36.2': {} 870 | 871 | '@typescript-eslint/typescript-estree@5.36.2(typescript@4.8.3)': 872 | dependencies: 873 | '@typescript-eslint/types': 5.36.2 874 | '@typescript-eslint/visitor-keys': 5.36.2 875 | debug: 4.3.7 876 | globby: 11.1.0 877 | is-glob: 4.0.3 878 | semver: 7.6.3 879 | tsutils: 3.21.0(typescript@4.8.3) 880 | optionalDependencies: 881 | typescript: 4.8.3 882 | transitivePeerDependencies: 883 | - supports-color 884 | 885 | '@typescript-eslint/utils@5.36.2(eslint@8.57.1)(typescript@4.8.3)': 886 | dependencies: 887 | '@types/json-schema': 7.0.15 888 | '@typescript-eslint/scope-manager': 5.36.2 889 | '@typescript-eslint/types': 5.36.2 890 | '@typescript-eslint/typescript-estree': 5.36.2(typescript@4.8.3) 891 | eslint: 8.57.1 892 | eslint-scope: 5.1.1 893 | eslint-utils: 3.0.0(eslint@8.57.1) 894 | transitivePeerDependencies: 895 | - supports-color 896 | - typescript 897 | 898 | '@typescript-eslint/visitor-keys@5.36.2': 899 | dependencies: 900 | '@typescript-eslint/types': 5.36.2 901 | eslint-visitor-keys: 3.4.3 902 | 903 | '@ungap/structured-clone@1.2.0': {} 904 | 905 | acorn-jsx@5.3.2(acorn@8.12.1): 906 | dependencies: 907 | acorn: 8.12.1 908 | 909 | acorn@8.12.1: {} 910 | 911 | ajv@6.12.6: 912 | dependencies: 913 | fast-deep-equal: 3.1.3 914 | fast-json-stable-stringify: 2.1.0 915 | json-schema-traverse: 0.4.1 916 | uri-js: 4.4.1 917 | 918 | ansi-regex@5.0.1: {} 919 | 920 | ansi-styles@4.3.0: 921 | dependencies: 922 | color-convert: 2.0.1 923 | 924 | argparse@2.0.1: {} 925 | 926 | array-union@2.1.0: {} 927 | 928 | balanced-match@1.0.2: {} 929 | 930 | brace-expansion@1.1.11: 931 | dependencies: 932 | balanced-match: 1.0.2 933 | concat-map: 0.0.1 934 | 935 | braces@3.0.3: 936 | dependencies: 937 | fill-range: 7.1.1 938 | 939 | builtin-modules@3.3.0: {} 940 | 941 | callsites@3.1.0: {} 942 | 943 | chalk@4.1.2: 944 | dependencies: 945 | ansi-styles: 4.3.0 946 | supports-color: 7.2.0 947 | 948 | color-convert@2.0.1: 949 | dependencies: 950 | color-name: 1.1.4 951 | 952 | color-name@1.1.4: {} 953 | 954 | concat-map@0.0.1: {} 955 | 956 | cross-spawn@7.0.3: 957 | dependencies: 958 | path-key: 3.1.1 959 | shebang-command: 2.0.0 960 | which: 2.0.2 961 | 962 | debug@4.3.7: 963 | dependencies: 964 | ms: 2.1.3 965 | 966 | deep-is@0.1.4: {} 967 | 968 | dir-glob@3.0.1: 969 | dependencies: 970 | path-type: 4.0.0 971 | 972 | doctrine@3.0.0: 973 | dependencies: 974 | esutils: 2.0.3 975 | 976 | esbuild-android-64@0.15.7: 977 | optional: true 978 | 979 | esbuild-android-arm64@0.15.7: 980 | optional: true 981 | 982 | esbuild-darwin-64@0.15.7: 983 | optional: true 984 | 985 | esbuild-darwin-arm64@0.15.7: 986 | optional: true 987 | 988 | esbuild-freebsd-64@0.15.7: 989 | optional: true 990 | 991 | esbuild-freebsd-arm64@0.15.7: 992 | optional: true 993 | 994 | esbuild-linux-32@0.15.7: 995 | optional: true 996 | 997 | esbuild-linux-64@0.15.7: 998 | optional: true 999 | 1000 | esbuild-linux-arm64@0.15.7: 1001 | optional: true 1002 | 1003 | esbuild-linux-arm@0.15.7: 1004 | optional: true 1005 | 1006 | esbuild-linux-mips64le@0.15.7: 1007 | optional: true 1008 | 1009 | esbuild-linux-ppc64le@0.15.7: 1010 | optional: true 1011 | 1012 | esbuild-linux-riscv64@0.15.7: 1013 | optional: true 1014 | 1015 | esbuild-linux-s390x@0.15.7: 1016 | optional: true 1017 | 1018 | esbuild-netbsd-64@0.15.7: 1019 | optional: true 1020 | 1021 | esbuild-openbsd-64@0.15.7: 1022 | optional: true 1023 | 1024 | esbuild-sunos-64@0.15.7: 1025 | optional: true 1026 | 1027 | esbuild-windows-32@0.15.7: 1028 | optional: true 1029 | 1030 | esbuild-windows-64@0.15.7: 1031 | optional: true 1032 | 1033 | esbuild-windows-arm64@0.15.7: 1034 | optional: true 1035 | 1036 | esbuild@0.15.7: 1037 | optionalDependencies: 1038 | '@esbuild/linux-loong64': 0.15.7 1039 | esbuild-android-64: 0.15.7 1040 | esbuild-android-arm64: 0.15.7 1041 | esbuild-darwin-64: 0.15.7 1042 | esbuild-darwin-arm64: 0.15.7 1043 | esbuild-freebsd-64: 0.15.7 1044 | esbuild-freebsd-arm64: 0.15.7 1045 | esbuild-linux-32: 0.15.7 1046 | esbuild-linux-64: 0.15.7 1047 | esbuild-linux-arm: 0.15.7 1048 | esbuild-linux-arm64: 0.15.7 1049 | esbuild-linux-mips64le: 0.15.7 1050 | esbuild-linux-ppc64le: 0.15.7 1051 | esbuild-linux-riscv64: 0.15.7 1052 | esbuild-linux-s390x: 0.15.7 1053 | esbuild-netbsd-64: 0.15.7 1054 | esbuild-openbsd-64: 0.15.7 1055 | esbuild-sunos-64: 0.15.7 1056 | esbuild-windows-32: 0.15.7 1057 | esbuild-windows-64: 0.15.7 1058 | esbuild-windows-arm64: 0.15.7 1059 | 1060 | escape-string-regexp@4.0.0: {} 1061 | 1062 | eslint-scope@5.1.1: 1063 | dependencies: 1064 | esrecurse: 4.3.0 1065 | estraverse: 4.3.0 1066 | 1067 | eslint-scope@7.2.2: 1068 | dependencies: 1069 | esrecurse: 4.3.0 1070 | estraverse: 5.3.0 1071 | 1072 | eslint-utils@3.0.0(eslint@8.57.1): 1073 | dependencies: 1074 | eslint: 8.57.1 1075 | eslint-visitor-keys: 2.1.0 1076 | 1077 | eslint-visitor-keys@2.1.0: {} 1078 | 1079 | eslint-visitor-keys@3.4.3: {} 1080 | 1081 | eslint@8.57.1: 1082 | dependencies: 1083 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) 1084 | '@eslint-community/regexpp': 4.11.1 1085 | '@eslint/eslintrc': 2.1.4 1086 | '@eslint/js': 8.57.1 1087 | '@humanwhocodes/config-array': 0.13.0 1088 | '@humanwhocodes/module-importer': 1.0.1 1089 | '@nodelib/fs.walk': 1.2.8 1090 | '@ungap/structured-clone': 1.2.0 1091 | ajv: 6.12.6 1092 | chalk: 4.1.2 1093 | cross-spawn: 7.0.3 1094 | debug: 4.3.7 1095 | doctrine: 3.0.0 1096 | escape-string-regexp: 4.0.0 1097 | eslint-scope: 7.2.2 1098 | eslint-visitor-keys: 3.4.3 1099 | espree: 9.6.1 1100 | esquery: 1.6.0 1101 | esutils: 2.0.3 1102 | fast-deep-equal: 3.1.3 1103 | file-entry-cache: 6.0.1 1104 | find-up: 5.0.0 1105 | glob-parent: 6.0.2 1106 | globals: 13.24.0 1107 | graphemer: 1.4.0 1108 | ignore: 5.3.2 1109 | imurmurhash: 0.1.4 1110 | is-glob: 4.0.3 1111 | is-path-inside: 3.0.3 1112 | js-yaml: 4.1.0 1113 | json-stable-stringify-without-jsonify: 1.0.1 1114 | levn: 0.4.1 1115 | lodash.merge: 4.6.2 1116 | minimatch: 3.1.2 1117 | natural-compare: 1.4.0 1118 | optionator: 0.9.4 1119 | strip-ansi: 6.0.1 1120 | text-table: 0.2.0 1121 | transitivePeerDependencies: 1122 | - supports-color 1123 | 1124 | espree@9.6.1: 1125 | dependencies: 1126 | acorn: 8.12.1 1127 | acorn-jsx: 5.3.2(acorn@8.12.1) 1128 | eslint-visitor-keys: 3.4.3 1129 | 1130 | esquery@1.6.0: 1131 | dependencies: 1132 | estraverse: 5.3.0 1133 | 1134 | esrecurse@4.3.0: 1135 | dependencies: 1136 | estraverse: 5.3.0 1137 | 1138 | estraverse@4.3.0: {} 1139 | 1140 | estraverse@5.3.0: {} 1141 | 1142 | esutils@2.0.3: {} 1143 | 1144 | fast-deep-equal@3.1.3: {} 1145 | 1146 | fast-glob@3.3.2: 1147 | dependencies: 1148 | '@nodelib/fs.stat': 2.0.5 1149 | '@nodelib/fs.walk': 1.2.8 1150 | glob-parent: 5.1.2 1151 | merge2: 1.4.1 1152 | micromatch: 4.0.8 1153 | 1154 | fast-json-stable-stringify@2.1.0: {} 1155 | 1156 | fast-levenshtein@2.0.6: {} 1157 | 1158 | fastq@1.17.1: 1159 | dependencies: 1160 | reusify: 1.0.4 1161 | 1162 | file-entry-cache@6.0.1: 1163 | dependencies: 1164 | flat-cache: 3.2.0 1165 | 1166 | fill-range@7.1.1: 1167 | dependencies: 1168 | to-regex-range: 5.0.1 1169 | 1170 | find-up@5.0.0: 1171 | dependencies: 1172 | locate-path: 6.0.0 1173 | path-exists: 4.0.0 1174 | 1175 | flat-cache@3.2.0: 1176 | dependencies: 1177 | flatted: 3.3.1 1178 | keyv: 4.5.4 1179 | rimraf: 3.0.2 1180 | 1181 | flatted@3.3.1: {} 1182 | 1183 | fs.realpath@1.0.0: {} 1184 | 1185 | functional-red-black-tree@1.0.1: {} 1186 | 1187 | glob-parent@5.1.2: 1188 | dependencies: 1189 | is-glob: 4.0.3 1190 | 1191 | glob-parent@6.0.2: 1192 | dependencies: 1193 | is-glob: 4.0.3 1194 | 1195 | glob@7.2.3: 1196 | dependencies: 1197 | fs.realpath: 1.0.0 1198 | inflight: 1.0.6 1199 | inherits: 2.0.4 1200 | minimatch: 3.1.2 1201 | once: 1.4.0 1202 | path-is-absolute: 1.0.1 1203 | 1204 | globals@13.24.0: 1205 | dependencies: 1206 | type-fest: 0.20.2 1207 | 1208 | globby@11.1.0: 1209 | dependencies: 1210 | array-union: 2.1.0 1211 | dir-glob: 3.0.1 1212 | fast-glob: 3.3.2 1213 | ignore: 5.3.2 1214 | merge2: 1.4.1 1215 | slash: 3.0.0 1216 | 1217 | graphemer@1.4.0: {} 1218 | 1219 | has-flag@4.0.0: {} 1220 | 1221 | ignore@5.3.2: {} 1222 | 1223 | import-fresh@3.3.0: 1224 | dependencies: 1225 | parent-module: 1.0.1 1226 | resolve-from: 4.0.0 1227 | 1228 | imurmurhash@0.1.4: {} 1229 | 1230 | inflight@1.0.6: 1231 | dependencies: 1232 | once: 1.4.0 1233 | wrappy: 1.0.2 1234 | 1235 | inherits@2.0.4: {} 1236 | 1237 | is-extglob@2.1.1: {} 1238 | 1239 | is-glob@4.0.3: 1240 | dependencies: 1241 | is-extglob: 2.1.1 1242 | 1243 | is-number@7.0.0: {} 1244 | 1245 | is-path-inside@3.0.3: {} 1246 | 1247 | isexe@2.0.0: {} 1248 | 1249 | js-yaml@4.1.0: 1250 | dependencies: 1251 | argparse: 2.0.1 1252 | 1253 | json-buffer@3.0.1: {} 1254 | 1255 | json-schema-traverse@0.4.1: {} 1256 | 1257 | json-stable-stringify-without-jsonify@1.0.1: {} 1258 | 1259 | keyv@4.5.4: 1260 | dependencies: 1261 | json-buffer: 3.0.1 1262 | 1263 | levn@0.4.1: 1264 | dependencies: 1265 | prelude-ls: 1.2.1 1266 | type-check: 0.4.0 1267 | 1268 | locate-path@6.0.0: 1269 | dependencies: 1270 | p-locate: 5.0.0 1271 | 1272 | lodash.merge@4.6.2: {} 1273 | 1274 | merge2@1.4.1: {} 1275 | 1276 | micromatch@4.0.8: 1277 | dependencies: 1278 | braces: 3.0.3 1279 | picomatch: 2.3.1 1280 | 1281 | minimatch@3.1.2: 1282 | dependencies: 1283 | brace-expansion: 1.1.11 1284 | 1285 | moment@2.29.4: {} 1286 | 1287 | ms@2.1.3: {} 1288 | 1289 | natural-compare@1.4.0: {} 1290 | 1291 | obsidian@1.6.6(@codemirror/state@6.4.1)(@codemirror/view@6.33.0): 1292 | dependencies: 1293 | '@codemirror/state': 6.4.1 1294 | '@codemirror/view': 6.33.0 1295 | '@types/codemirror': 5.60.8 1296 | moment: 2.29.4 1297 | 1298 | once@1.4.0: 1299 | dependencies: 1300 | wrappy: 1.0.2 1301 | 1302 | optionator@0.9.4: 1303 | dependencies: 1304 | deep-is: 0.1.4 1305 | fast-levenshtein: 2.0.6 1306 | levn: 0.4.1 1307 | prelude-ls: 1.2.1 1308 | type-check: 0.4.0 1309 | word-wrap: 1.2.5 1310 | 1311 | p-limit@3.1.0: 1312 | dependencies: 1313 | yocto-queue: 0.1.0 1314 | 1315 | p-locate@5.0.0: 1316 | dependencies: 1317 | p-limit: 3.1.0 1318 | 1319 | parent-module@1.0.1: 1320 | dependencies: 1321 | callsites: 3.1.0 1322 | 1323 | path-exists@4.0.0: {} 1324 | 1325 | path-is-absolute@1.0.1: {} 1326 | 1327 | path-key@3.1.1: {} 1328 | 1329 | path-type@4.0.0: {} 1330 | 1331 | picomatch@2.3.1: {} 1332 | 1333 | prelude-ls@1.2.1: {} 1334 | 1335 | punycode@2.3.1: {} 1336 | 1337 | queue-microtask@1.2.3: {} 1338 | 1339 | regexpp@3.2.0: {} 1340 | 1341 | resolve-from@4.0.0: {} 1342 | 1343 | reusify@1.0.4: {} 1344 | 1345 | rimraf@3.0.2: 1346 | dependencies: 1347 | glob: 7.2.3 1348 | 1349 | run-parallel@1.2.0: 1350 | dependencies: 1351 | queue-microtask: 1.2.3 1352 | 1353 | semver@7.6.3: {} 1354 | 1355 | shebang-command@2.0.0: 1356 | dependencies: 1357 | shebang-regex: 3.0.0 1358 | 1359 | shebang-regex@3.0.0: {} 1360 | 1361 | slash@3.0.0: {} 1362 | 1363 | strip-ansi@6.0.1: 1364 | dependencies: 1365 | ansi-regex: 5.0.1 1366 | 1367 | strip-json-comments@3.1.1: {} 1368 | 1369 | style-mod@4.1.2: {} 1370 | 1371 | supports-color@7.2.0: 1372 | dependencies: 1373 | has-flag: 4.0.0 1374 | 1375 | text-table@0.2.0: {} 1376 | 1377 | to-regex-range@5.0.1: 1378 | dependencies: 1379 | is-number: 7.0.0 1380 | 1381 | tslib@1.14.1: {} 1382 | 1383 | tslib@2.4.0: {} 1384 | 1385 | tsutils@3.21.0(typescript@4.8.3): 1386 | dependencies: 1387 | tslib: 1.14.1 1388 | typescript: 4.8.3 1389 | 1390 | type-check@0.4.0: 1391 | dependencies: 1392 | prelude-ls: 1.2.1 1393 | 1394 | type-fest@0.20.2: {} 1395 | 1396 | typescript@4.8.3: {} 1397 | 1398 | uri-js@4.4.1: 1399 | dependencies: 1400 | punycode: 2.3.1 1401 | 1402 | w3c-keyname@2.2.8: {} 1403 | 1404 | which@2.0.2: 1405 | dependencies: 1406 | isexe: 2.0.0 1407 | 1408 | word-wrap@1.2.5: {} 1409 | 1410 | wrappy@1.0.2: {} 1411 | 1412 | yocto-queue@0.1.0: {} 1413 | -------------------------------------------------------------------------------- /readme-assets/blockquote-levels-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/czottmann/obsidian-blockquote-levels/30c45d7224a37cb2e5cd396422c36188289b2ef8/readme-assets/blockquote-levels-128.png -------------------------------------------------------------------------------- /readme-assets/blockquote-levels-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/czottmann/obsidian-blockquote-levels/30c45d7224a37cb2e5cd396422c36188289b2ef8/readme-assets/blockquote-levels-256.png -------------------------------------------------------------------------------- /readme-assets/blockquote-levels-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/czottmann/obsidian-blockquote-levels/30c45d7224a37cb2e5cd396422c36188289b2ef8/readme-assets/blockquote-levels-64.png -------------------------------------------------------------------------------- /readme-assets/showcase.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/czottmann/obsidian-blockquote-levels/30c45d7224a37cb2e5cd396422c36188289b2ef8/readme-assets/showcase.gif -------------------------------------------------------------------------------- /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 | "importHelpers": true, 12 | "isolatedModules": true, 13 | "strictNullChecks": true, 14 | "lib": [ 15 | "DOM", 16 | "ES5", 17 | "ES6", 18 | "ES7" 19 | ] 20 | }, 21 | "include": [ 22 | "**/*.ts" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /types.d.ts: -------------------------------------------------------------------------------- 1 | import { Editor } from "obsidian"; 2 | 3 | export interface LineProcessor { 4 | (line: string): string; 5 | } 6 | 7 | export interface SelectionProcessor { 8 | (editor: Editor): void; 9 | } 10 | 11 | export interface SelectionLineNumbers { 12 | firstLine: number; 13 | lastLine: number; 14 | } 15 | -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "1.0.0": "0.15.0", 3 | "1.1.0": "0.15.0" 4 | } 5 | --------------------------------------------------------------------------------