├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── esbuild.config.mjs ├── main.ts ├── manifest.json ├── package.json ├── pnpm-lock.yaml ├── 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 = tab 9 | indent_size = 4 10 | tab_width = 4 11 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | main.js 4 | -------------------------------------------------------------------------------- /.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/publish.yml: -------------------------------------------------------------------------------- 1 | # Courtesy of https://github.com/argenos/nldates-obsidian/blob/master/.github/workflows/release.yml 2 | name: Release Obsidian plugin 3 | 4 | on: 5 | push: 6 | tags: 7 | - "*" 8 | 9 | env: 10 | PLUGIN_NAME: obsidian-automatic-tags 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - uses: actions/checkout@v2 18 | - uses: pnpm/action-setup@v2 19 | with: 20 | version: 8 21 | - name: Build 22 | id: build 23 | run: | 24 | pnpm i 25 | pnpm build --if-present 26 | mkdir ${{ env.PLUGIN_NAME }} 27 | cp main.js manifest.json ${{ env.PLUGIN_NAME }} 28 | zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }} 29 | ls 30 | echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)" 31 | - name: Create Release 32 | id: create_release 33 | uses: actions/create-release@v1 34 | env: 35 | GITHUB_TOKEN: ${{ secrets.PAT }} 36 | VERSION: ${{ github.ref }} 37 | with: 38 | tag_name: ${{ github.ref }} 39 | release_name: ${{ github.ref }} 40 | draft: false 41 | prerelease: false 42 | - name: Upload zip file 43 | id: upload-zip 44 | uses: actions/upload-release-asset@v1 45 | env: 46 | GITHUB_TOKEN: ${{ secrets.PAT }} 47 | with: 48 | upload_url: ${{ steps.create_release.outputs.upload_url }} 49 | asset_path: ./${{ env.PLUGIN_NAME }}.zip 50 | asset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zip 51 | asset_content_type: application/zip 52 | - name: Upload main.js 53 | id: upload-main 54 | uses: actions/upload-release-asset@v1 55 | env: 56 | GITHUB_TOKEN: ${{ secrets.PAT }} 57 | with: 58 | upload_url: ${{ steps.create_release.outputs.upload_url }} 59 | asset_path: ./main.js 60 | asset_name: main.js 61 | asset_content_type: text/javascript 62 | - name: Upload manifest.json 63 | id: upload-manifest 64 | uses: actions/upload-release-asset@v1 65 | env: 66 | GITHUB_TOKEN: ${{ secrets.PAT }} 67 | with: 68 | upload_url: ${{ steps.create_release.outputs.upload_url }} 69 | asset_path: ./manifest.json 70 | asset_name: manifest.json 71 | asset_content_type: application/json 72 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | tag-version-prefix="" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Jamalam 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Obsidian Automatic Tags 2 | 3 | Add tags to new notes automatically based on their path. 4 | 5 | ## Configuration 6 | 7 | There is one config option: a mapping of paths to tags. The path uses a simplified Glob format. 8 | 9 | Comments are not allowed, but are included here for documentation purposes. 10 | 11 | ```yml 12 | *: all # apply the 'all' tag to all new markdown files 13 | physics/: physics # apply the 'physics' tag to all new files in the 'physics' folder 14 | ``` 15 | 16 | ## Installation 17 | 18 | This plugin is available through the Community Plugins tab in Obsidian ([link](https://obsidian.md/plugins?id=automatic-tags)). 19 | -------------------------------------------------------------------------------- /esbuild.config.mjs: -------------------------------------------------------------------------------- 1 | import esbuild from "esbuild"; 2 | import process from "process"; 3 | import builtins from "builtin-modules"; 4 | 5 | const banner = 6 | `/* 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 prod = (process.argv[2] === "production"); 13 | 14 | const context = await esbuild.context({ 15 | banner: { 16 | js: banner, 17 | }, 18 | entryPoints: ["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 | format: "cjs", 36 | target: "es2018", 37 | logLevel: "info", 38 | sourcemap: prod ? false : "inline", 39 | treeShaking: true, 40 | outfile: "main.js", 41 | }); 42 | 43 | if (prod) { 44 | await context.rebuild(); 45 | process.exit(0); 46 | } else { 47 | await context.watch(); 48 | } -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- 1 | import { App, Plugin, PluginSettingTab, Setting, TFile } from "obsidian"; 2 | 3 | interface AutomaticTagsSettings { 4 | tags: Record; 5 | } 6 | 7 | const DEFAULT_SETTINGS: AutomaticTagsSettings = { 8 | tags: {}, 9 | }; 10 | 11 | export default class AutomaticTagsPlugin extends Plugin { 12 | settings: AutomaticTagsSettings; 13 | 14 | async onload() { 15 | await this.loadSettings(); 16 | 17 | this.addSettingTab(new AutomaticTagsSettingTab(this.app, this)); 18 | 19 | this.app.workspace.onLayoutReady(() => { 20 | this.registerEvent(this.app.vault.on("create", async (file) => { 21 | if (Object.entries(this.settings.tags).length === 0) return; 22 | 23 | if (file instanceof TFile) { 24 | this.tagFile(file); 25 | } 26 | })); 27 | }); 28 | 29 | this.addCommand({ 30 | id: "add-tags", 31 | name: "Add tags to existing notes", 32 | callback: async () => { 33 | this.app.vault.getMarkdownFiles().forEach((file) => { 34 | this.tagFile(file); 35 | }); 36 | } 37 | }); 38 | } 39 | 40 | async tagFile(file: TFile) { 41 | const tags: string[] = []; 42 | 43 | Object.entries(this.settings.tags).forEach(([k, v]) => { 44 | if (this.matchesGlob(file.path, k)) { 45 | tags.push(...v); 46 | } 47 | }); 48 | 49 | if (tags.length === 0) return; 50 | 51 | await this.app.fileManager.processFrontMatter(file, (fm) => { 52 | fm.tags = [...new Set([...(fm.tags || []), ...tags])]; 53 | }); 54 | 55 | } 56 | 57 | onunload() { } 58 | 59 | async loadSettings() { 60 | this.settings = Object.assign( 61 | {}, 62 | DEFAULT_SETTINGS, 63 | await this.loadData() 64 | ); 65 | } 66 | 67 | async saveSettings() { 68 | await this.saveData(this.settings); 69 | } 70 | 71 | matchesGlob(path: string, glob: string): boolean { 72 | const regex = glob 73 | .replace(/\./g, "\\.") 74 | .replace(/\*/g, ".*") 75 | .replace(/\//g, "\\/"); 76 | return new RegExp(regex).test(path); 77 | } 78 | } 79 | 80 | class AutomaticTagsSettingTab extends PluginSettingTab { 81 | plugin: AutomaticTagsPlugin; 82 | 83 | constructor(app: App, plugin: AutomaticTagsPlugin) { 84 | super(app, plugin); 85 | this.plugin = plugin; 86 | } 87 | 88 | display(): void { 89 | const { containerEl } = this; 90 | 91 | containerEl.empty(); 92 | 93 | new Setting(containerEl) 94 | .setName("Tags") 95 | .setDesc("Tags to be automatically added to notes, in a simplified glob format") 96 | .addTextArea((area) => 97 | area 98 | .setValue(this.getTagsString()) 99 | .setPlaceholder( 100 | "*: all\nfolder/subfolder: tag1, tag2\nother/folder: tag3" 101 | ) 102 | .onChange(async (newValue) => { 103 | this.setTagsString(newValue); 104 | await this.plugin.saveSettings(); 105 | }) 106 | ); 107 | } 108 | 109 | getTagsString(): string { 110 | let result = ""; 111 | Object.entries(this.plugin.settings.tags).forEach(([k, v]) => { 112 | result += `${k}: ${v.join(", ")}\n`; 113 | }); 114 | return result; 115 | } 116 | 117 | setTagsString(value: string): void { 118 | const result: Record = {}; 119 | 120 | for (const line of value.split("\n")) { 121 | if (line.trim().length === 0) continue; 122 | const key = line.split(":")[0]; 123 | result[key.trim()] = line 124 | .substring(key.length + 1) 125 | .split(",") 126 | .map((v) => v.trim()); 127 | } 128 | 129 | this.plugin.settings.tags = result; 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "automatic-tags", 3 | "name": "Automatic Tags", 4 | "version": "1.1.1", 5 | "minAppVersion": "0.15.0", 6 | "description": "Add tags to new notes automatically based on their path.", 7 | "author": "Jamalam", 8 | "authorUrl": "https://jamalam.tech", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obsidian-automatic-tags", 3 | "version": "1.1.1", 4 | "description": "Add tags to new notes automatically based on their path", 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": "Jamalam", 13 | "license": "MIT", 14 | "devDependencies": { 15 | "@types/node": "^16.11.6", 16 | "@typescript-eslint/eslint-plugin": "5.29.0", 17 | "@typescript-eslint/parser": "5.29.0", 18 | "builtin-modules": "3.3.0", 19 | "esbuild": "0.17.3", 20 | "obsidian": "latest", 21 | "tslib": "2.4.0", 22 | "typescript": "4.7.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | devDependencies: 4 | '@types/node': 5 | specifier: ^16.11.6 6 | version: 16.11.6 7 | '@typescript-eslint/eslint-plugin': 8 | specifier: 5.29.0 9 | version: 5.29.0(@typescript-eslint/parser@5.29.0)(eslint@8.53.0)(typescript@4.7.4) 10 | '@typescript-eslint/parser': 11 | specifier: 5.29.0 12 | version: 5.29.0(eslint@8.53.0)(typescript@4.7.4) 13 | builtin-modules: 14 | specifier: 3.3.0 15 | version: 3.3.0 16 | esbuild: 17 | specifier: 0.17.3 18 | version: 0.17.3 19 | obsidian: 20 | specifier: latest 21 | version: 1.4.11(@codemirror/state@6.3.1)(@codemirror/view@6.22.0) 22 | tslib: 23 | specifier: 2.4.0 24 | version: 2.4.0 25 | typescript: 26 | specifier: 4.7.4 27 | version: 4.7.4 28 | 29 | packages: 30 | 31 | /@aashutoshrathi/word-wrap@1.2.6: 32 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 33 | engines: {node: '>=0.10.0'} 34 | dev: true 35 | 36 | /@codemirror/state@6.3.1: 37 | resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==} 38 | dev: true 39 | 40 | /@codemirror/view@6.22.0: 41 | resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==} 42 | dependencies: 43 | '@codemirror/state': 6.3.1 44 | style-mod: 4.1.0 45 | w3c-keyname: 2.2.8 46 | dev: true 47 | 48 | /@esbuild/android-arm64@0.17.3: 49 | resolution: {integrity: sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==} 50 | engines: {node: '>=12'} 51 | cpu: [arm64] 52 | os: [android] 53 | requiresBuild: true 54 | dev: true 55 | optional: true 56 | 57 | /@esbuild/android-arm@0.17.3: 58 | resolution: {integrity: sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==} 59 | engines: {node: '>=12'} 60 | cpu: [arm] 61 | os: [android] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@esbuild/android-x64@0.17.3: 67 | resolution: {integrity: sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==} 68 | engines: {node: '>=12'} 69 | cpu: [x64] 70 | os: [android] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@esbuild/darwin-arm64@0.17.3: 76 | resolution: {integrity: sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==} 77 | engines: {node: '>=12'} 78 | cpu: [arm64] 79 | os: [darwin] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/darwin-x64@0.17.3: 85 | resolution: {integrity: sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==} 86 | engines: {node: '>=12'} 87 | cpu: [x64] 88 | os: [darwin] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/freebsd-arm64@0.17.3: 94 | resolution: {integrity: sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==} 95 | engines: {node: '>=12'} 96 | cpu: [arm64] 97 | os: [freebsd] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/freebsd-x64@0.17.3: 103 | resolution: {integrity: sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==} 104 | engines: {node: '>=12'} 105 | cpu: [x64] 106 | os: [freebsd] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/linux-arm64@0.17.3: 112 | resolution: {integrity: sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==} 113 | engines: {node: '>=12'} 114 | cpu: [arm64] 115 | os: [linux] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/linux-arm@0.17.3: 121 | resolution: {integrity: sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==} 122 | engines: {node: '>=12'} 123 | cpu: [arm] 124 | os: [linux] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/linux-ia32@0.17.3: 130 | resolution: {integrity: sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==} 131 | engines: {node: '>=12'} 132 | cpu: [ia32] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-loong64@0.17.3: 139 | resolution: {integrity: sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==} 140 | engines: {node: '>=12'} 141 | cpu: [loong64] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-mips64el@0.17.3: 148 | resolution: {integrity: sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==} 149 | engines: {node: '>=12'} 150 | cpu: [mips64el] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-ppc64@0.17.3: 157 | resolution: {integrity: sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==} 158 | engines: {node: '>=12'} 159 | cpu: [ppc64] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-riscv64@0.17.3: 166 | resolution: {integrity: sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==} 167 | engines: {node: '>=12'} 168 | cpu: [riscv64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-s390x@0.17.3: 175 | resolution: {integrity: sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==} 176 | engines: {node: '>=12'} 177 | cpu: [s390x] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-x64@0.17.3: 184 | resolution: {integrity: sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==} 185 | engines: {node: '>=12'} 186 | cpu: [x64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/netbsd-x64@0.17.3: 193 | resolution: {integrity: sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [netbsd] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/openbsd-x64@0.17.3: 202 | resolution: {integrity: sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [openbsd] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/sunos-x64@0.17.3: 211 | resolution: {integrity: sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [sunos] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/win32-arm64@0.17.3: 220 | resolution: {integrity: sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==} 221 | engines: {node: '>=12'} 222 | cpu: [arm64] 223 | os: [win32] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/win32-ia32@0.17.3: 229 | resolution: {integrity: sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==} 230 | engines: {node: '>=12'} 231 | cpu: [ia32] 232 | os: [win32] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/win32-x64@0.17.3: 238 | resolution: {integrity: sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): 247 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 248 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 249 | peerDependencies: 250 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 251 | dependencies: 252 | eslint: 8.53.0 253 | eslint-visitor-keys: 3.4.3 254 | dev: true 255 | 256 | /@eslint-community/regexpp@4.10.0: 257 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 258 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 259 | dev: true 260 | 261 | /@eslint/eslintrc@2.1.3: 262 | resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} 263 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 264 | dependencies: 265 | ajv: 6.12.6 266 | debug: 4.3.4 267 | espree: 9.6.1 268 | globals: 13.23.0 269 | ignore: 5.2.4 270 | import-fresh: 3.3.0 271 | js-yaml: 4.1.0 272 | minimatch: 3.1.2 273 | strip-json-comments: 3.1.1 274 | transitivePeerDependencies: 275 | - supports-color 276 | dev: true 277 | 278 | /@eslint/js@8.53.0: 279 | resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} 280 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 281 | dev: true 282 | 283 | /@humanwhocodes/config-array@0.11.13: 284 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} 285 | engines: {node: '>=10.10.0'} 286 | dependencies: 287 | '@humanwhocodes/object-schema': 2.0.1 288 | debug: 4.3.4 289 | minimatch: 3.1.2 290 | transitivePeerDependencies: 291 | - supports-color 292 | dev: true 293 | 294 | /@humanwhocodes/module-importer@1.0.1: 295 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 296 | engines: {node: '>=12.22'} 297 | dev: true 298 | 299 | /@humanwhocodes/object-schema@2.0.1: 300 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} 301 | dev: true 302 | 303 | /@nodelib/fs.scandir@2.1.5: 304 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 305 | engines: {node: '>= 8'} 306 | dependencies: 307 | '@nodelib/fs.stat': 2.0.5 308 | run-parallel: 1.2.0 309 | dev: true 310 | 311 | /@nodelib/fs.stat@2.0.5: 312 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 313 | engines: {node: '>= 8'} 314 | dev: true 315 | 316 | /@nodelib/fs.walk@1.2.8: 317 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 318 | engines: {node: '>= 8'} 319 | dependencies: 320 | '@nodelib/fs.scandir': 2.1.5 321 | fastq: 1.15.0 322 | dev: true 323 | 324 | /@types/codemirror@5.60.8: 325 | resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} 326 | dependencies: 327 | '@types/tern': 0.23.7 328 | dev: true 329 | 330 | /@types/estree@1.0.5: 331 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 332 | dev: true 333 | 334 | /@types/json-schema@7.0.15: 335 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 336 | dev: true 337 | 338 | /@types/node@16.11.6: 339 | resolution: {integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==} 340 | dev: true 341 | 342 | /@types/tern@0.23.7: 343 | resolution: {integrity: sha512-0YS9XCZ0LAhlP11HV9SqncUYyz9Ggsgc7Om/AmchKvoeFyj0qPaJmX6rJ93mJVExizWDzUMb49gAtVpI1uHd8Q==} 344 | dependencies: 345 | '@types/estree': 1.0.5 346 | dev: true 347 | 348 | /@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0)(eslint@8.53.0)(typescript@4.7.4): 349 | resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==} 350 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 351 | peerDependencies: 352 | '@typescript-eslint/parser': ^5.0.0 353 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 354 | typescript: '*' 355 | peerDependenciesMeta: 356 | typescript: 357 | optional: true 358 | dependencies: 359 | '@typescript-eslint/parser': 5.29.0(eslint@8.53.0)(typescript@4.7.4) 360 | '@typescript-eslint/scope-manager': 5.29.0 361 | '@typescript-eslint/type-utils': 5.29.0(eslint@8.53.0)(typescript@4.7.4) 362 | '@typescript-eslint/utils': 5.29.0(eslint@8.53.0)(typescript@4.7.4) 363 | debug: 4.3.4 364 | eslint: 8.53.0 365 | functional-red-black-tree: 1.0.1 366 | ignore: 5.2.4 367 | regexpp: 3.2.0 368 | semver: 7.5.4 369 | tsutils: 3.21.0(typescript@4.7.4) 370 | typescript: 4.7.4 371 | transitivePeerDependencies: 372 | - supports-color 373 | dev: true 374 | 375 | /@typescript-eslint/parser@5.29.0(eslint@8.53.0)(typescript@4.7.4): 376 | resolution: {integrity: sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==} 377 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 378 | peerDependencies: 379 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 380 | typescript: '*' 381 | peerDependenciesMeta: 382 | typescript: 383 | optional: true 384 | dependencies: 385 | '@typescript-eslint/scope-manager': 5.29.0 386 | '@typescript-eslint/types': 5.29.0 387 | '@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4) 388 | debug: 4.3.4 389 | eslint: 8.53.0 390 | typescript: 4.7.4 391 | transitivePeerDependencies: 392 | - supports-color 393 | dev: true 394 | 395 | /@typescript-eslint/scope-manager@5.29.0: 396 | resolution: {integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==} 397 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 398 | dependencies: 399 | '@typescript-eslint/types': 5.29.0 400 | '@typescript-eslint/visitor-keys': 5.29.0 401 | dev: true 402 | 403 | /@typescript-eslint/type-utils@5.29.0(eslint@8.53.0)(typescript@4.7.4): 404 | resolution: {integrity: sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==} 405 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 406 | peerDependencies: 407 | eslint: '*' 408 | typescript: '*' 409 | peerDependenciesMeta: 410 | typescript: 411 | optional: true 412 | dependencies: 413 | '@typescript-eslint/utils': 5.29.0(eslint@8.53.0)(typescript@4.7.4) 414 | debug: 4.3.4 415 | eslint: 8.53.0 416 | tsutils: 3.21.0(typescript@4.7.4) 417 | typescript: 4.7.4 418 | transitivePeerDependencies: 419 | - supports-color 420 | dev: true 421 | 422 | /@typescript-eslint/types@5.29.0: 423 | resolution: {integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==} 424 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 425 | dev: true 426 | 427 | /@typescript-eslint/typescript-estree@5.29.0(typescript@4.7.4): 428 | resolution: {integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==} 429 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 430 | peerDependencies: 431 | typescript: '*' 432 | peerDependenciesMeta: 433 | typescript: 434 | optional: true 435 | dependencies: 436 | '@typescript-eslint/types': 5.29.0 437 | '@typescript-eslint/visitor-keys': 5.29.0 438 | debug: 4.3.4 439 | globby: 11.1.0 440 | is-glob: 4.0.3 441 | semver: 7.5.4 442 | tsutils: 3.21.0(typescript@4.7.4) 443 | typescript: 4.7.4 444 | transitivePeerDependencies: 445 | - supports-color 446 | dev: true 447 | 448 | /@typescript-eslint/utils@5.29.0(eslint@8.53.0)(typescript@4.7.4): 449 | resolution: {integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==} 450 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 451 | peerDependencies: 452 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 453 | dependencies: 454 | '@types/json-schema': 7.0.15 455 | '@typescript-eslint/scope-manager': 5.29.0 456 | '@typescript-eslint/types': 5.29.0 457 | '@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4) 458 | eslint: 8.53.0 459 | eslint-scope: 5.1.1 460 | eslint-utils: 3.0.0(eslint@8.53.0) 461 | transitivePeerDependencies: 462 | - supports-color 463 | - typescript 464 | dev: true 465 | 466 | /@typescript-eslint/visitor-keys@5.29.0: 467 | resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==} 468 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 469 | dependencies: 470 | '@typescript-eslint/types': 5.29.0 471 | eslint-visitor-keys: 3.4.3 472 | dev: true 473 | 474 | /@ungap/structured-clone@1.2.0: 475 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 476 | dev: true 477 | 478 | /acorn-jsx@5.3.2(acorn@8.11.2): 479 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 480 | peerDependencies: 481 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 482 | dependencies: 483 | acorn: 8.11.2 484 | dev: true 485 | 486 | /acorn@8.11.2: 487 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 488 | engines: {node: '>=0.4.0'} 489 | hasBin: true 490 | dev: true 491 | 492 | /ajv@6.12.6: 493 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 494 | dependencies: 495 | fast-deep-equal: 3.1.3 496 | fast-json-stable-stringify: 2.1.0 497 | json-schema-traverse: 0.4.1 498 | uri-js: 4.4.1 499 | dev: true 500 | 501 | /ansi-regex@5.0.1: 502 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 503 | engines: {node: '>=8'} 504 | dev: true 505 | 506 | /ansi-styles@4.3.0: 507 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 508 | engines: {node: '>=8'} 509 | dependencies: 510 | color-convert: 2.0.1 511 | dev: true 512 | 513 | /argparse@2.0.1: 514 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 515 | dev: true 516 | 517 | /array-union@2.1.0: 518 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 519 | engines: {node: '>=8'} 520 | dev: true 521 | 522 | /balanced-match@1.0.2: 523 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 524 | dev: true 525 | 526 | /brace-expansion@1.1.11: 527 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 528 | dependencies: 529 | balanced-match: 1.0.2 530 | concat-map: 0.0.1 531 | dev: true 532 | 533 | /braces@3.0.2: 534 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 535 | engines: {node: '>=8'} 536 | dependencies: 537 | fill-range: 7.0.1 538 | dev: true 539 | 540 | /builtin-modules@3.3.0: 541 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 542 | engines: {node: '>=6'} 543 | dev: true 544 | 545 | /callsites@3.1.0: 546 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 547 | engines: {node: '>=6'} 548 | dev: true 549 | 550 | /chalk@4.1.2: 551 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 552 | engines: {node: '>=10'} 553 | dependencies: 554 | ansi-styles: 4.3.0 555 | supports-color: 7.2.0 556 | dev: true 557 | 558 | /color-convert@2.0.1: 559 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 560 | engines: {node: '>=7.0.0'} 561 | dependencies: 562 | color-name: 1.1.4 563 | dev: true 564 | 565 | /color-name@1.1.4: 566 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 567 | dev: true 568 | 569 | /concat-map@0.0.1: 570 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 571 | dev: true 572 | 573 | /cross-spawn@7.0.3: 574 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 575 | engines: {node: '>= 8'} 576 | dependencies: 577 | path-key: 3.1.1 578 | shebang-command: 2.0.0 579 | which: 2.0.2 580 | dev: true 581 | 582 | /debug@4.3.4: 583 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 584 | engines: {node: '>=6.0'} 585 | peerDependencies: 586 | supports-color: '*' 587 | peerDependenciesMeta: 588 | supports-color: 589 | optional: true 590 | dependencies: 591 | ms: 2.1.2 592 | dev: true 593 | 594 | /deep-is@0.1.4: 595 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 596 | dev: true 597 | 598 | /dir-glob@3.0.1: 599 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 600 | engines: {node: '>=8'} 601 | dependencies: 602 | path-type: 4.0.0 603 | dev: true 604 | 605 | /doctrine@3.0.0: 606 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 607 | engines: {node: '>=6.0.0'} 608 | dependencies: 609 | esutils: 2.0.3 610 | dev: true 611 | 612 | /esbuild@0.17.3: 613 | resolution: {integrity: sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==} 614 | engines: {node: '>=12'} 615 | hasBin: true 616 | requiresBuild: true 617 | optionalDependencies: 618 | '@esbuild/android-arm': 0.17.3 619 | '@esbuild/android-arm64': 0.17.3 620 | '@esbuild/android-x64': 0.17.3 621 | '@esbuild/darwin-arm64': 0.17.3 622 | '@esbuild/darwin-x64': 0.17.3 623 | '@esbuild/freebsd-arm64': 0.17.3 624 | '@esbuild/freebsd-x64': 0.17.3 625 | '@esbuild/linux-arm': 0.17.3 626 | '@esbuild/linux-arm64': 0.17.3 627 | '@esbuild/linux-ia32': 0.17.3 628 | '@esbuild/linux-loong64': 0.17.3 629 | '@esbuild/linux-mips64el': 0.17.3 630 | '@esbuild/linux-ppc64': 0.17.3 631 | '@esbuild/linux-riscv64': 0.17.3 632 | '@esbuild/linux-s390x': 0.17.3 633 | '@esbuild/linux-x64': 0.17.3 634 | '@esbuild/netbsd-x64': 0.17.3 635 | '@esbuild/openbsd-x64': 0.17.3 636 | '@esbuild/sunos-x64': 0.17.3 637 | '@esbuild/win32-arm64': 0.17.3 638 | '@esbuild/win32-ia32': 0.17.3 639 | '@esbuild/win32-x64': 0.17.3 640 | dev: true 641 | 642 | /escape-string-regexp@4.0.0: 643 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 644 | engines: {node: '>=10'} 645 | dev: true 646 | 647 | /eslint-scope@5.1.1: 648 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 649 | engines: {node: '>=8.0.0'} 650 | dependencies: 651 | esrecurse: 4.3.0 652 | estraverse: 4.3.0 653 | dev: true 654 | 655 | /eslint-scope@7.2.2: 656 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 657 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 658 | dependencies: 659 | esrecurse: 4.3.0 660 | estraverse: 5.3.0 661 | dev: true 662 | 663 | /eslint-utils@3.0.0(eslint@8.53.0): 664 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 665 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 666 | peerDependencies: 667 | eslint: '>=5' 668 | dependencies: 669 | eslint: 8.53.0 670 | eslint-visitor-keys: 2.1.0 671 | dev: true 672 | 673 | /eslint-visitor-keys@2.1.0: 674 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 675 | engines: {node: '>=10'} 676 | dev: true 677 | 678 | /eslint-visitor-keys@3.4.3: 679 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 680 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 681 | dev: true 682 | 683 | /eslint@8.53.0: 684 | resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} 685 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 686 | hasBin: true 687 | dependencies: 688 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) 689 | '@eslint-community/regexpp': 4.10.0 690 | '@eslint/eslintrc': 2.1.3 691 | '@eslint/js': 8.53.0 692 | '@humanwhocodes/config-array': 0.11.13 693 | '@humanwhocodes/module-importer': 1.0.1 694 | '@nodelib/fs.walk': 1.2.8 695 | '@ungap/structured-clone': 1.2.0 696 | ajv: 6.12.6 697 | chalk: 4.1.2 698 | cross-spawn: 7.0.3 699 | debug: 4.3.4 700 | doctrine: 3.0.0 701 | escape-string-regexp: 4.0.0 702 | eslint-scope: 7.2.2 703 | eslint-visitor-keys: 3.4.3 704 | espree: 9.6.1 705 | esquery: 1.5.0 706 | esutils: 2.0.3 707 | fast-deep-equal: 3.1.3 708 | file-entry-cache: 6.0.1 709 | find-up: 5.0.0 710 | glob-parent: 6.0.2 711 | globals: 13.23.0 712 | graphemer: 1.4.0 713 | ignore: 5.2.4 714 | imurmurhash: 0.1.4 715 | is-glob: 4.0.3 716 | is-path-inside: 3.0.3 717 | js-yaml: 4.1.0 718 | json-stable-stringify-without-jsonify: 1.0.1 719 | levn: 0.4.1 720 | lodash.merge: 4.6.2 721 | minimatch: 3.1.2 722 | natural-compare: 1.4.0 723 | optionator: 0.9.3 724 | strip-ansi: 6.0.1 725 | text-table: 0.2.0 726 | transitivePeerDependencies: 727 | - supports-color 728 | dev: true 729 | 730 | /espree@9.6.1: 731 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 732 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 733 | dependencies: 734 | acorn: 8.11.2 735 | acorn-jsx: 5.3.2(acorn@8.11.2) 736 | eslint-visitor-keys: 3.4.3 737 | dev: true 738 | 739 | /esquery@1.5.0: 740 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 741 | engines: {node: '>=0.10'} 742 | dependencies: 743 | estraverse: 5.3.0 744 | dev: true 745 | 746 | /esrecurse@4.3.0: 747 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 748 | engines: {node: '>=4.0'} 749 | dependencies: 750 | estraverse: 5.3.0 751 | dev: true 752 | 753 | /estraverse@4.3.0: 754 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 755 | engines: {node: '>=4.0'} 756 | dev: true 757 | 758 | /estraverse@5.3.0: 759 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 760 | engines: {node: '>=4.0'} 761 | dev: true 762 | 763 | /esutils@2.0.3: 764 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 765 | engines: {node: '>=0.10.0'} 766 | dev: true 767 | 768 | /fast-deep-equal@3.1.3: 769 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 770 | dev: true 771 | 772 | /fast-glob@3.3.2: 773 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 774 | engines: {node: '>=8.6.0'} 775 | dependencies: 776 | '@nodelib/fs.stat': 2.0.5 777 | '@nodelib/fs.walk': 1.2.8 778 | glob-parent: 5.1.2 779 | merge2: 1.4.1 780 | micromatch: 4.0.5 781 | dev: true 782 | 783 | /fast-json-stable-stringify@2.1.0: 784 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 785 | dev: true 786 | 787 | /fast-levenshtein@2.0.6: 788 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 789 | dev: true 790 | 791 | /fastq@1.15.0: 792 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 793 | dependencies: 794 | reusify: 1.0.4 795 | dev: true 796 | 797 | /file-entry-cache@6.0.1: 798 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 799 | engines: {node: ^10.12.0 || >=12.0.0} 800 | dependencies: 801 | flat-cache: 3.2.0 802 | dev: true 803 | 804 | /fill-range@7.0.1: 805 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 806 | engines: {node: '>=8'} 807 | dependencies: 808 | to-regex-range: 5.0.1 809 | dev: true 810 | 811 | /find-up@5.0.0: 812 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 813 | engines: {node: '>=10'} 814 | dependencies: 815 | locate-path: 6.0.0 816 | path-exists: 4.0.0 817 | dev: true 818 | 819 | /flat-cache@3.2.0: 820 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 821 | engines: {node: ^10.12.0 || >=12.0.0} 822 | dependencies: 823 | flatted: 3.2.9 824 | keyv: 4.5.4 825 | rimraf: 3.0.2 826 | dev: true 827 | 828 | /flatted@3.2.9: 829 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} 830 | dev: true 831 | 832 | /fs.realpath@1.0.0: 833 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 834 | dev: true 835 | 836 | /functional-red-black-tree@1.0.1: 837 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 838 | dev: true 839 | 840 | /glob-parent@5.1.2: 841 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 842 | engines: {node: '>= 6'} 843 | dependencies: 844 | is-glob: 4.0.3 845 | dev: true 846 | 847 | /glob-parent@6.0.2: 848 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 849 | engines: {node: '>=10.13.0'} 850 | dependencies: 851 | is-glob: 4.0.3 852 | dev: true 853 | 854 | /glob@7.2.3: 855 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 856 | dependencies: 857 | fs.realpath: 1.0.0 858 | inflight: 1.0.6 859 | inherits: 2.0.4 860 | minimatch: 3.1.2 861 | once: 1.4.0 862 | path-is-absolute: 1.0.1 863 | dev: true 864 | 865 | /globals@13.23.0: 866 | resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} 867 | engines: {node: '>=8'} 868 | dependencies: 869 | type-fest: 0.20.2 870 | dev: true 871 | 872 | /globby@11.1.0: 873 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 874 | engines: {node: '>=10'} 875 | dependencies: 876 | array-union: 2.1.0 877 | dir-glob: 3.0.1 878 | fast-glob: 3.3.2 879 | ignore: 5.2.4 880 | merge2: 1.4.1 881 | slash: 3.0.0 882 | dev: true 883 | 884 | /graphemer@1.4.0: 885 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 886 | dev: true 887 | 888 | /has-flag@4.0.0: 889 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 890 | engines: {node: '>=8'} 891 | dev: true 892 | 893 | /ignore@5.2.4: 894 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 895 | engines: {node: '>= 4'} 896 | dev: true 897 | 898 | /import-fresh@3.3.0: 899 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 900 | engines: {node: '>=6'} 901 | dependencies: 902 | parent-module: 1.0.1 903 | resolve-from: 4.0.0 904 | dev: true 905 | 906 | /imurmurhash@0.1.4: 907 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 908 | engines: {node: '>=0.8.19'} 909 | dev: true 910 | 911 | /inflight@1.0.6: 912 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 913 | dependencies: 914 | once: 1.4.0 915 | wrappy: 1.0.2 916 | dev: true 917 | 918 | /inherits@2.0.4: 919 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 920 | dev: true 921 | 922 | /is-extglob@2.1.1: 923 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 924 | engines: {node: '>=0.10.0'} 925 | dev: true 926 | 927 | /is-glob@4.0.3: 928 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 929 | engines: {node: '>=0.10.0'} 930 | dependencies: 931 | is-extglob: 2.1.1 932 | dev: true 933 | 934 | /is-number@7.0.0: 935 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 936 | engines: {node: '>=0.12.0'} 937 | dev: true 938 | 939 | /is-path-inside@3.0.3: 940 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 941 | engines: {node: '>=8'} 942 | dev: true 943 | 944 | /isexe@2.0.0: 945 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 946 | dev: true 947 | 948 | /js-yaml@4.1.0: 949 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 950 | hasBin: true 951 | dependencies: 952 | argparse: 2.0.1 953 | dev: true 954 | 955 | /json-buffer@3.0.1: 956 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 957 | dev: true 958 | 959 | /json-schema-traverse@0.4.1: 960 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 961 | dev: true 962 | 963 | /json-stable-stringify-without-jsonify@1.0.1: 964 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 965 | dev: true 966 | 967 | /keyv@4.5.4: 968 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 969 | dependencies: 970 | json-buffer: 3.0.1 971 | dev: true 972 | 973 | /levn@0.4.1: 974 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 975 | engines: {node: '>= 0.8.0'} 976 | dependencies: 977 | prelude-ls: 1.2.1 978 | type-check: 0.4.0 979 | dev: true 980 | 981 | /locate-path@6.0.0: 982 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 983 | engines: {node: '>=10'} 984 | dependencies: 985 | p-locate: 5.0.0 986 | dev: true 987 | 988 | /lodash.merge@4.6.2: 989 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 990 | dev: true 991 | 992 | /lru-cache@6.0.0: 993 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 994 | engines: {node: '>=10'} 995 | dependencies: 996 | yallist: 4.0.0 997 | dev: true 998 | 999 | /merge2@1.4.1: 1000 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1001 | engines: {node: '>= 8'} 1002 | dev: true 1003 | 1004 | /micromatch@4.0.5: 1005 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1006 | engines: {node: '>=8.6'} 1007 | dependencies: 1008 | braces: 3.0.2 1009 | picomatch: 2.3.1 1010 | dev: true 1011 | 1012 | /minimatch@3.1.2: 1013 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1014 | dependencies: 1015 | brace-expansion: 1.1.11 1016 | dev: true 1017 | 1018 | /moment@2.29.4: 1019 | resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} 1020 | dev: true 1021 | 1022 | /ms@2.1.2: 1023 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1024 | dev: true 1025 | 1026 | /natural-compare@1.4.0: 1027 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1028 | dev: true 1029 | 1030 | /obsidian@1.4.11(@codemirror/state@6.3.1)(@codemirror/view@6.22.0): 1031 | resolution: {integrity: sha512-BCVYTvaXxElJMl6MMbDdY/CGK+aq18SdtDY/7vH8v6BxCBQ6KF4kKxL0vG9UZ0o5qh139KpUoJHNm+6O5dllKA==} 1032 | peerDependencies: 1033 | '@codemirror/state': ^6.0.0 1034 | '@codemirror/view': ^6.0.0 1035 | dependencies: 1036 | '@codemirror/state': 6.3.1 1037 | '@codemirror/view': 6.22.0 1038 | '@types/codemirror': 5.60.8 1039 | moment: 2.29.4 1040 | dev: true 1041 | 1042 | /once@1.4.0: 1043 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1044 | dependencies: 1045 | wrappy: 1.0.2 1046 | dev: true 1047 | 1048 | /optionator@0.9.3: 1049 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1050 | engines: {node: '>= 0.8.0'} 1051 | dependencies: 1052 | '@aashutoshrathi/word-wrap': 1.2.6 1053 | deep-is: 0.1.4 1054 | fast-levenshtein: 2.0.6 1055 | levn: 0.4.1 1056 | prelude-ls: 1.2.1 1057 | type-check: 0.4.0 1058 | dev: true 1059 | 1060 | /p-limit@3.1.0: 1061 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1062 | engines: {node: '>=10'} 1063 | dependencies: 1064 | yocto-queue: 0.1.0 1065 | dev: true 1066 | 1067 | /p-locate@5.0.0: 1068 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1069 | engines: {node: '>=10'} 1070 | dependencies: 1071 | p-limit: 3.1.0 1072 | dev: true 1073 | 1074 | /parent-module@1.0.1: 1075 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1076 | engines: {node: '>=6'} 1077 | dependencies: 1078 | callsites: 3.1.0 1079 | dev: true 1080 | 1081 | /path-exists@4.0.0: 1082 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1083 | engines: {node: '>=8'} 1084 | dev: true 1085 | 1086 | /path-is-absolute@1.0.1: 1087 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1088 | engines: {node: '>=0.10.0'} 1089 | dev: true 1090 | 1091 | /path-key@3.1.1: 1092 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1093 | engines: {node: '>=8'} 1094 | dev: true 1095 | 1096 | /path-type@4.0.0: 1097 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1098 | engines: {node: '>=8'} 1099 | dev: true 1100 | 1101 | /picomatch@2.3.1: 1102 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1103 | engines: {node: '>=8.6'} 1104 | dev: true 1105 | 1106 | /prelude-ls@1.2.1: 1107 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1108 | engines: {node: '>= 0.8.0'} 1109 | dev: true 1110 | 1111 | /punycode@2.3.1: 1112 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1113 | engines: {node: '>=6'} 1114 | dev: true 1115 | 1116 | /queue-microtask@1.2.3: 1117 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1118 | dev: true 1119 | 1120 | /regexpp@3.2.0: 1121 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 1122 | engines: {node: '>=8'} 1123 | dev: true 1124 | 1125 | /resolve-from@4.0.0: 1126 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1127 | engines: {node: '>=4'} 1128 | dev: true 1129 | 1130 | /reusify@1.0.4: 1131 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1132 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1133 | dev: true 1134 | 1135 | /rimraf@3.0.2: 1136 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1137 | hasBin: true 1138 | dependencies: 1139 | glob: 7.2.3 1140 | dev: true 1141 | 1142 | /run-parallel@1.2.0: 1143 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1144 | dependencies: 1145 | queue-microtask: 1.2.3 1146 | dev: true 1147 | 1148 | /semver@7.5.4: 1149 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1150 | engines: {node: '>=10'} 1151 | hasBin: true 1152 | dependencies: 1153 | lru-cache: 6.0.0 1154 | dev: true 1155 | 1156 | /shebang-command@2.0.0: 1157 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1158 | engines: {node: '>=8'} 1159 | dependencies: 1160 | shebang-regex: 3.0.0 1161 | dev: true 1162 | 1163 | /shebang-regex@3.0.0: 1164 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1165 | engines: {node: '>=8'} 1166 | dev: true 1167 | 1168 | /slash@3.0.0: 1169 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1170 | engines: {node: '>=8'} 1171 | dev: true 1172 | 1173 | /strip-ansi@6.0.1: 1174 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1175 | engines: {node: '>=8'} 1176 | dependencies: 1177 | ansi-regex: 5.0.1 1178 | dev: true 1179 | 1180 | /strip-json-comments@3.1.1: 1181 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1182 | engines: {node: '>=8'} 1183 | dev: true 1184 | 1185 | /style-mod@4.1.0: 1186 | resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} 1187 | dev: true 1188 | 1189 | /supports-color@7.2.0: 1190 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1191 | engines: {node: '>=8'} 1192 | dependencies: 1193 | has-flag: 4.0.0 1194 | dev: true 1195 | 1196 | /text-table@0.2.0: 1197 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1198 | dev: true 1199 | 1200 | /to-regex-range@5.0.1: 1201 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1202 | engines: {node: '>=8.0'} 1203 | dependencies: 1204 | is-number: 7.0.0 1205 | dev: true 1206 | 1207 | /tslib@1.14.1: 1208 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1209 | dev: true 1210 | 1211 | /tslib@2.4.0: 1212 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 1213 | dev: true 1214 | 1215 | /tsutils@3.21.0(typescript@4.7.4): 1216 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1217 | engines: {node: '>= 6'} 1218 | peerDependencies: 1219 | 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' 1220 | dependencies: 1221 | tslib: 1.14.1 1222 | typescript: 4.7.4 1223 | dev: true 1224 | 1225 | /type-check@0.4.0: 1226 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1227 | engines: {node: '>= 0.8.0'} 1228 | dependencies: 1229 | prelude-ls: 1.2.1 1230 | dev: true 1231 | 1232 | /type-fest@0.20.2: 1233 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1234 | engines: {node: '>=10'} 1235 | dev: true 1236 | 1237 | /typescript@4.7.4: 1238 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 1239 | engines: {node: '>=4.2.0'} 1240 | hasBin: true 1241 | dev: true 1242 | 1243 | /uri-js@4.4.1: 1244 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1245 | dependencies: 1246 | punycode: 2.3.1 1247 | dev: true 1248 | 1249 | /w3c-keyname@2.2.8: 1250 | resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} 1251 | dev: true 1252 | 1253 | /which@2.0.2: 1254 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1255 | engines: {node: '>= 8'} 1256 | hasBin: true 1257 | dependencies: 1258 | isexe: 2.0.0 1259 | dev: true 1260 | 1261 | /wrappy@1.0.2: 1262 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1263 | dev: true 1264 | 1265 | /yallist@4.0.0: 1266 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1267 | dev: true 1268 | 1269 | /yocto-queue@0.1.0: 1270 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1271 | engines: {node: '>=10'} 1272 | dev: true 1273 | -------------------------------------------------------------------------------- /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 | "esModuleInterop": true, 14 | "strictNullChecks": true, 15 | "lib": [ 16 | "DOM", 17 | "ES5", 18 | "ES6", 19 | "ES7" 20 | ] 21 | }, 22 | "include": [ 23 | "**/*.ts" 24 | ] 25 | } -------------------------------------------------------------------------------- /version-bump.mjs: -------------------------------------------------------------------------------- 1 | import { readFileSync, writeFileSync } from "fs"; 2 | 3 | const targetVersion = process.env.npm_package_version; 4 | 5 | let manifest = JSON.parse(readFileSync("manifest.json", "utf8")); 6 | const { minAppVersion } = manifest; 7 | manifest.version = targetVersion; 8 | writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t")); 9 | 10 | let versions = JSON.parse(readFileSync("versions.json", "utf8")); 11 | versions[targetVersion] = minAppVersion; 12 | writeFileSync("versions.json", JSON.stringify(versions, null, "\t")); 13 | -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "1.0.0": "0.15.0", 3 | "1.0.1": "0.15.0", 4 | "1.0.2": "0.15.0", 5 | "1.1.0": "0.15.0", 6 | "1.1.1": "0.15.0" 7 | } 8 | --------------------------------------------------------------------------------