├── .gitattributes ├── .github └── workflows │ ├── premerge.yml │ └── release.yml ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── assets └── obsidian-css-snippets.gif ├── manifest.json ├── package-lock.json ├── package.json ├── rollup.config.js ├── src └── index.ts └── tsconfig.json /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /.github/workflows/premerge.yml: -------------------------------------------------------------------------------- 1 | name: "premerge" 2 | on: [push] 3 | 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - name: Checkout source 9 | uses: actions/checkout@v2 10 | 11 | - name: Install NPM dependencies 12 | run: npm install 13 | 14 | - name: Lint 15 | run: npm run lint 16 | 17 | - name: Build 18 | run: npm run build 19 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: "Create Release" 2 | on: 3 | push: 4 | tags: 5 | - "*" 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout source 12 | uses: actions/checkout@v2 13 | 14 | - name: Install NPM dependencies 15 | run: npm install 16 | 17 | - name: Build 18 | run: npm run build 19 | 20 | - name: Create release 21 | id: create_release 22 | uses: actions/create-release@v1 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | with: 26 | tag_name: ${{ github.ref }} 27 | release_name: Release ${{ github.ref }} 28 | 29 | - name: Upload release assets (1/2) 30 | uses: actions/upload-release-asset@v1 31 | env: 32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | with: 34 | upload_url: ${{ steps.create_release.outputs.upload_url }} 35 | asset_path: ./dist/main.js 36 | asset_name: main.js 37 | asset_content_type: application/javascript 38 | 39 | - name: Upload release assets (2/2) 40 | uses: actions/upload-release-asset@v1 41 | env: 42 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 43 | with: 44 | upload_url: ${{ steps.create_release.outputs.upload_url }} 45 | asset_path: ./dist/manifest.json 46 | asset_name: manifest.json 47 | asset_content_type: application/json 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "auto" 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Daniel Brandenburg 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 | # Obsidian CSS Snippet Manager 2 | 3 | An Obsidian plugin for loading custom css snippets 4 | 5 | ![Example gif](./assets/obsidian-css-snippets.gif) 6 | 7 | ## Usage 8 | 9 | Put `.css` files into `css-snippets` in the vault root. They get automagically loaded when the plugin loads. 10 | 11 | This adds two commands: 12 | 1. "css snippet: Reload" - loads or reloads the css files, use this if you add a new file to the folder. 13 | 2. "css snippet: Unload" - unloads all loaded style snippets 14 | 15 | ## Roadmap 16 | - [ ] Setting tab that allows user to set the folder for storing snippets 17 | - [ ] Toggle snippets individually ( command palette?) 18 | - [ ] consider adding scss and sass compilation??? 19 | - [ ] scoped styles (defined in page frontmatter or based on tags etc.) - but need to find a solution for applying scoped style so that they apply only to the page not global 20 | 21 | 22 | ### Compatibility 23 | 24 | Custom plugins are only available for Obsidian v0.9.7+. 25 | The current API of this repo targets Obsidian **v0.9.7+**. 26 | 27 | 28 | 29 | ## Installation 30 | 31 | ### From within Obsidian 32 | From Obsidian v0.9.8, you can activate this plugin within Obsidian by doing the following: 33 | - Open Settings > Third-party plugin 34 | - Make sure Safe mode is **off** 35 | - Click Browse community plugins 36 | - Search for "css snippets" 37 | - Click Install 38 | - Once installed, close the community plugins window and activate the newly installed plugin 39 | #### Updates 40 | You can follow the same procedure to update the plugin 41 | 42 | ### From GitHub 43 | - Download the [Latest release](https://github.com/jdbrice/obsidian-css-snippets/releases/latest) 44 | - Extract the `obsidian-css-snippets` folder from the zip to your vault's plugins folder: `/.obsidian/plugins/` 45 | Note: On some machines the `.obsidian` folder may be hidden. On MacOS you should be able to press `Command+Shift+Dot` to show the folder in Finder. 46 | - Reload Obsidian 47 | - If prompted about Safe Mode, you can disable safe mode and enable the plugin. 48 | Otherwise head to Settings, third-party plugins, make sure safe mode is off and 49 | enable the plugin from there. 50 | 51 | ## Development 52 | 53 | This project uses Typescript to provide type checking and documentation. 54 | The repo depends on the latest [plugin API](https://github.com/obsidianmd/obsidian-api) in Typescript Definition format, which contains TSDoc comments describing what it does. 55 | 56 | **Note:** The Obsidian API is still in early alpha and is subject to change at any time! 57 | 58 | If you want to contribute to development and/or just customize it with your own 59 | tweaks, you can do the following: 60 | - Clone this repo. 61 | - `npm i` or `yarn` to install dependencies 62 | - `npm run build` to compile. 63 | - Copy `manifest.json`, `main.js` and `styles.css` to a subfolder of your plugins 64 | folder (e.g, `/.obsidian/plugins/cm-editor-syntax-highlight-obsidian/`) 65 | - Reload obsidian to see changes 66 | 67 | Alternately, you can clone the repo directly into your plugins folder and once 68 | dependencies are installed use `npm run dev` to start compilation in watch mode. 69 | You may have to reload obsidian (`ctrl+R`) to see changes. 70 | 71 | # Version History 72 | 73 | ## v0.1.0 74 | Initial Release. Basic functionality 75 | 76 | 77 | -------------------------------------------------------------------------------- /assets/obsidian-css-snippets.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdbrice/obsidian-css-snippets/39297259a816934595c9b1e80d8686982ef3b20b/assets/obsidian-css-snippets.gif -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "css-snippets", 3 | "name": "css snippets", 4 | "version": "0.1.2", 5 | "description": "Load and manage css snippets", 6 | "author": "dandandan", 7 | "authorUrl": "https://github.com/jdbrice/obsidian-css-snippets", 8 | "isDesktopOnly": "true" 9 | } 10 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "todoist-plugin", 3 | "version": "1.5.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@nodelib/fs.scandir": { 8 | "version": "2.1.3", 9 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", 10 | "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", 11 | "dev": true, 12 | "requires": { 13 | "@nodelib/fs.stat": "2.0.3", 14 | "run-parallel": "^1.1.9" 15 | } 16 | }, 17 | "@nodelib/fs.stat": { 18 | "version": "2.0.3", 19 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", 20 | "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", 21 | "dev": true 22 | }, 23 | "@nodelib/fs.walk": { 24 | "version": "1.2.4", 25 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", 26 | "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", 27 | "dev": true, 28 | "requires": { 29 | "@nodelib/fs.scandir": "2.1.3", 30 | "fastq": "^1.6.0" 31 | } 32 | }, 33 | "@rollup/plugin-commonjs": { 34 | "version": "15.1.0", 35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz", 36 | "integrity": "sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==", 37 | "requires": { 38 | "@rollup/pluginutils": "^3.1.0", 39 | "commondir": "^1.0.1", 40 | "estree-walker": "^2.0.1", 41 | "glob": "^7.1.6", 42 | "is-reference": "^1.2.1", 43 | "magic-string": "^0.25.7", 44 | "resolve": "^1.17.0" 45 | } 46 | }, 47 | "@rollup/plugin-node-resolve": { 48 | "version": "9.0.0", 49 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", 50 | "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", 51 | "requires": { 52 | "@rollup/pluginutils": "^3.1.0", 53 | "@types/resolve": "1.17.1", 54 | "builtin-modules": "^3.1.0", 55 | "deepmerge": "^4.2.2", 56 | "is-module": "^1.0.0", 57 | "resolve": "^1.17.0" 58 | } 59 | }, 60 | "@rollup/plugin-typescript": { 61 | "version": "5.0.2", 62 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-5.0.2.tgz", 63 | "integrity": "sha512-CkS028Itwjqm1uLbFVfpJgtVtnNvZ+og/m6UlNRR5wOOnNTWPcVQzOu5xGdEX+WWJxdvWIqUq2uR/RBt2ZipWg==", 64 | "dev": true, 65 | "requires": { 66 | "@rollup/pluginutils": "^3.0.1", 67 | "resolve": "^1.14.1" 68 | } 69 | }, 70 | "@rollup/pluginutils": { 71 | "version": "3.1.0", 72 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 73 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 74 | "requires": { 75 | "@types/estree": "0.0.39", 76 | "estree-walker": "^1.0.1", 77 | "picomatch": "^2.2.2" 78 | }, 79 | "dependencies": { 80 | "estree-walker": { 81 | "version": "1.0.1", 82 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 83 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" 84 | } 85 | } 86 | }, 87 | "@tsconfig/svelte": { 88 | "version": "1.0.10", 89 | "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-1.0.10.tgz", 90 | "integrity": "sha512-EBrpH2iXXfaf/9z81koiDYkp2mlwW2XzFcAqn6qh7VKyP8zBvHHAQzNhY+W9vH5arAjmGAm5g8ElWq6YmXm3ig==", 91 | "dev": true 92 | }, 93 | "@types/chai": { 94 | "version": "4.2.14", 95 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz", 96 | "integrity": "sha512-G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==", 97 | "dev": true 98 | }, 99 | "@types/codemirror": { 100 | "version": "0.0.98", 101 | "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.98.tgz", 102 | "integrity": "sha512-cbty5LPayy2vNSeuUdjNA9tggG+go5vAxmnLDRWpiZI5a+RDBi9dlozy4/jW/7P/gletbBWbQREEa7A81YxstA==", 103 | "requires": { 104 | "@types/tern": "*" 105 | } 106 | }, 107 | "@types/estree": { 108 | "version": "0.0.39", 109 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 110 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" 111 | }, 112 | "@types/fs-extra": { 113 | "version": "8.1.1", 114 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", 115 | "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", 116 | "dev": true, 117 | "requires": { 118 | "@types/node": "*" 119 | } 120 | }, 121 | "@types/glob": { 122 | "version": "7.1.3", 123 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", 124 | "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", 125 | "dev": true, 126 | "requires": { 127 | "@types/minimatch": "*", 128 | "@types/node": "*" 129 | } 130 | }, 131 | "@types/minimatch": { 132 | "version": "3.0.3", 133 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 134 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", 135 | "dev": true 136 | }, 137 | "@types/mocha": { 138 | "version": "8.0.3", 139 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.3.tgz", 140 | "integrity": "sha512-vyxR57nv8NfcU0GZu8EUXZLTbCMupIUwy95LJ6lllN+JRPG25CwMHoB1q5xKh8YKhQnHYRAn4yW2yuHbf/5xgg==", 141 | "dev": true 142 | }, 143 | "@types/node": { 144 | "version": "14.14.7", 145 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.7.tgz", 146 | "integrity": "sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==" 147 | }, 148 | "@types/pug": { 149 | "version": "2.0.4", 150 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz", 151 | "integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=", 152 | "dev": true 153 | }, 154 | "@types/resolve": { 155 | "version": "1.17.1", 156 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 157 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 158 | "requires": { 159 | "@types/node": "*" 160 | } 161 | }, 162 | "@types/sass": { 163 | "version": "1.16.0", 164 | "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz", 165 | "integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==", 166 | "dev": true, 167 | "requires": { 168 | "@types/node": "*" 169 | } 170 | }, 171 | "@types/tern": { 172 | "version": "0.23.3", 173 | "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz", 174 | "integrity": "sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w==", 175 | "requires": { 176 | "@types/estree": "*" 177 | } 178 | }, 179 | "@ungap/promise-all-settled": { 180 | "version": "1.1.2", 181 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", 182 | "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", 183 | "dev": true 184 | }, 185 | "ansi-colors": { 186 | "version": "4.1.1", 187 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 188 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 189 | "dev": true 190 | }, 191 | "ansi-regex": { 192 | "version": "3.0.0", 193 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 194 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 195 | "dev": true 196 | }, 197 | "ansi-styles": { 198 | "version": "4.3.0", 199 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 200 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 201 | "dev": true, 202 | "requires": { 203 | "color-convert": "^2.0.1" 204 | } 205 | }, 206 | "anymatch": { 207 | "version": "3.1.1", 208 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 209 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 210 | "dev": true, 211 | "requires": { 212 | "normalize-path": "^3.0.0", 213 | "picomatch": "^2.0.4" 214 | } 215 | }, 216 | "arg": { 217 | "version": "4.1.3", 218 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", 219 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", 220 | "dev": true 221 | }, 222 | "argparse": { 223 | "version": "1.0.10", 224 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 225 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 226 | "dev": true, 227 | "requires": { 228 | "sprintf-js": "~1.0.2" 229 | } 230 | }, 231 | "array-union": { 232 | "version": "2.1.0", 233 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 234 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 235 | "dev": true 236 | }, 237 | "assertion-error": { 238 | "version": "1.1.0", 239 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 240 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 241 | "dev": true 242 | }, 243 | "balanced-match": { 244 | "version": "1.0.0", 245 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 246 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 247 | }, 248 | "binary-extensions": { 249 | "version": "2.1.0", 250 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", 251 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", 252 | "dev": true 253 | }, 254 | "brace-expansion": { 255 | "version": "1.1.11", 256 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 257 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 258 | "requires": { 259 | "balanced-match": "^1.0.0", 260 | "concat-map": "0.0.1" 261 | } 262 | }, 263 | "braces": { 264 | "version": "3.0.2", 265 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 266 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 267 | "dev": true, 268 | "requires": { 269 | "fill-range": "^7.0.1" 270 | } 271 | }, 272 | "browser-stdout": { 273 | "version": "1.3.1", 274 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 275 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 276 | "dev": true 277 | }, 278 | "buffer-from": { 279 | "version": "1.1.1", 280 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 281 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 282 | "dev": true 283 | }, 284 | "builtin-modules": { 285 | "version": "3.1.0", 286 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", 287 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" 288 | }, 289 | "callsites": { 290 | "version": "3.1.0", 291 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 292 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 293 | "dev": true 294 | }, 295 | "camelcase": { 296 | "version": "5.3.1", 297 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 298 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 299 | "dev": true 300 | }, 301 | "chai": { 302 | "version": "4.2.0", 303 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", 304 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", 305 | "dev": true, 306 | "requires": { 307 | "assertion-error": "^1.1.0", 308 | "check-error": "^1.0.2", 309 | "deep-eql": "^3.0.1", 310 | "get-func-name": "^2.0.0", 311 | "pathval": "^1.1.0", 312 | "type-detect": "^4.0.5" 313 | } 314 | }, 315 | "chalk": { 316 | "version": "4.1.0", 317 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 318 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 319 | "dev": true, 320 | "requires": { 321 | "ansi-styles": "^4.1.0", 322 | "supports-color": "^7.1.0" 323 | } 324 | }, 325 | "check-error": { 326 | "version": "1.0.2", 327 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 328 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 329 | "dev": true 330 | }, 331 | "chokidar": { 332 | "version": "3.4.3", 333 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", 334 | "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", 335 | "dev": true, 336 | "requires": { 337 | "anymatch": "~3.1.1", 338 | "braces": "~3.0.2", 339 | "fsevents": "~2.1.2", 340 | "glob-parent": "~5.1.0", 341 | "is-binary-path": "~2.1.0", 342 | "is-glob": "~4.0.1", 343 | "normalize-path": "~3.0.0", 344 | "readdirp": "~3.5.0" 345 | } 346 | }, 347 | "cliui": { 348 | "version": "5.0.0", 349 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 350 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 351 | "dev": true, 352 | "requires": { 353 | "string-width": "^3.1.0", 354 | "strip-ansi": "^5.2.0", 355 | "wrap-ansi": "^5.1.0" 356 | }, 357 | "dependencies": { 358 | "ansi-regex": { 359 | "version": "4.1.0", 360 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 361 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 362 | "dev": true 363 | }, 364 | "string-width": { 365 | "version": "3.1.0", 366 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 367 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 368 | "dev": true, 369 | "requires": { 370 | "emoji-regex": "^7.0.1", 371 | "is-fullwidth-code-point": "^2.0.0", 372 | "strip-ansi": "^5.1.0" 373 | } 374 | }, 375 | "strip-ansi": { 376 | "version": "5.2.0", 377 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 378 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 379 | "dev": true, 380 | "requires": { 381 | "ansi-regex": "^4.1.0" 382 | } 383 | } 384 | } 385 | }, 386 | "color-convert": { 387 | "version": "2.0.1", 388 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 389 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 390 | "dev": true, 391 | "requires": { 392 | "color-name": "~1.1.4" 393 | } 394 | }, 395 | "color-name": { 396 | "version": "1.1.4", 397 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 398 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 399 | "dev": true 400 | }, 401 | "colorette": { 402 | "version": "1.2.1", 403 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", 404 | "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", 405 | "dev": true 406 | }, 407 | "commondir": { 408 | "version": "1.0.1", 409 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 410 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" 411 | }, 412 | "concat-map": { 413 | "version": "0.0.1", 414 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 415 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 416 | }, 417 | "debug": { 418 | "version": "4.2.0", 419 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", 420 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", 421 | "dev": true, 422 | "requires": { 423 | "ms": "2.1.2" 424 | } 425 | }, 426 | "decamelize": { 427 | "version": "1.2.0", 428 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 429 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 430 | "dev": true 431 | }, 432 | "deep-eql": { 433 | "version": "3.0.1", 434 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 435 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 436 | "dev": true, 437 | "requires": { 438 | "type-detect": "^4.0.0" 439 | } 440 | }, 441 | "deepmerge": { 442 | "version": "4.2.2", 443 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 444 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 445 | }, 446 | "detect-indent": { 447 | "version": "6.0.0", 448 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 449 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 450 | "dev": true 451 | }, 452 | "diff": { 453 | "version": "4.0.2", 454 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 455 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 456 | "dev": true 457 | }, 458 | "dir-glob": { 459 | "version": "3.0.1", 460 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 461 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 462 | "dev": true, 463 | "requires": { 464 | "path-type": "^4.0.0" 465 | } 466 | }, 467 | "emoji-regex": { 468 | "version": "7.0.3", 469 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 470 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 471 | "dev": true 472 | }, 473 | "escape-string-regexp": { 474 | "version": "4.0.0", 475 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 476 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 477 | "dev": true 478 | }, 479 | "esprima": { 480 | "version": "4.0.1", 481 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 482 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 483 | "dev": true 484 | }, 485 | "estree-walker": { 486 | "version": "2.0.1", 487 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", 488 | "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==" 489 | }, 490 | "fast-glob": { 491 | "version": "3.2.4", 492 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", 493 | "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", 494 | "dev": true, 495 | "requires": { 496 | "@nodelib/fs.stat": "^2.0.2", 497 | "@nodelib/fs.walk": "^1.2.3", 498 | "glob-parent": "^5.1.0", 499 | "merge2": "^1.3.0", 500 | "micromatch": "^4.0.2", 501 | "picomatch": "^2.2.1" 502 | } 503 | }, 504 | "fastq": { 505 | "version": "1.9.0", 506 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", 507 | "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", 508 | "dev": true, 509 | "requires": { 510 | "reusify": "^1.0.4" 511 | } 512 | }, 513 | "fill-range": { 514 | "version": "7.0.1", 515 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 516 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 517 | "dev": true, 518 | "requires": { 519 | "to-regex-range": "^5.0.1" 520 | } 521 | }, 522 | "find-up": { 523 | "version": "5.0.0", 524 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 525 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 526 | "dev": true, 527 | "requires": { 528 | "locate-path": "^6.0.0", 529 | "path-exists": "^4.0.0" 530 | } 531 | }, 532 | "flat": { 533 | "version": "5.0.2", 534 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", 535 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", 536 | "dev": true 537 | }, 538 | "fs-extra": { 539 | "version": "8.1.0", 540 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 541 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 542 | "dev": true, 543 | "requires": { 544 | "graceful-fs": "^4.2.0", 545 | "jsonfile": "^4.0.0", 546 | "universalify": "^0.1.0" 547 | } 548 | }, 549 | "fs.realpath": { 550 | "version": "1.0.0", 551 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 552 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 553 | }, 554 | "fsevents": { 555 | "version": "2.1.3", 556 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", 557 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", 558 | "optional": true 559 | }, 560 | "function-bind": { 561 | "version": "1.1.1", 562 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 563 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 564 | }, 565 | "get-caller-file": { 566 | "version": "2.0.5", 567 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 568 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 569 | "dev": true 570 | }, 571 | "get-func-name": { 572 | "version": "2.0.0", 573 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 574 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 575 | "dev": true 576 | }, 577 | "glob": { 578 | "version": "7.1.6", 579 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 580 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 581 | "requires": { 582 | "fs.realpath": "^1.0.0", 583 | "inflight": "^1.0.4", 584 | "inherits": "2", 585 | "minimatch": "^3.0.4", 586 | "once": "^1.3.0", 587 | "path-is-absolute": "^1.0.0" 588 | } 589 | }, 590 | "glob-parent": { 591 | "version": "5.1.1", 592 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 593 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 594 | "dev": true, 595 | "requires": { 596 | "is-glob": "^4.0.1" 597 | } 598 | }, 599 | "globby": { 600 | "version": "10.0.1", 601 | "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", 602 | "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", 603 | "dev": true, 604 | "requires": { 605 | "@types/glob": "^7.1.1", 606 | "array-union": "^2.1.0", 607 | "dir-glob": "^3.0.1", 608 | "fast-glob": "^3.0.3", 609 | "glob": "^7.1.3", 610 | "ignore": "^5.1.1", 611 | "merge2": "^1.2.3", 612 | "slash": "^3.0.0" 613 | } 614 | }, 615 | "graceful-fs": { 616 | "version": "4.2.4", 617 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 618 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", 619 | "dev": true 620 | }, 621 | "growl": { 622 | "version": "1.10.5", 623 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 624 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 625 | "dev": true 626 | }, 627 | "has": { 628 | "version": "1.0.3", 629 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 630 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 631 | "requires": { 632 | "function-bind": "^1.1.1" 633 | } 634 | }, 635 | "has-flag": { 636 | "version": "4.0.0", 637 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 638 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 639 | "dev": true 640 | }, 641 | "he": { 642 | "version": "1.2.0", 643 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 644 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 645 | "dev": true 646 | }, 647 | "ignore": { 648 | "version": "5.1.8", 649 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 650 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 651 | "dev": true 652 | }, 653 | "import-fresh": { 654 | "version": "3.2.2", 655 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", 656 | "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", 657 | "dev": true, 658 | "requires": { 659 | "parent-module": "^1.0.0", 660 | "resolve-from": "^4.0.0" 661 | } 662 | }, 663 | "inflight": { 664 | "version": "1.0.6", 665 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 666 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 667 | "requires": { 668 | "once": "^1.3.0", 669 | "wrappy": "1" 670 | } 671 | }, 672 | "inherits": { 673 | "version": "2.0.4", 674 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 675 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 676 | }, 677 | "is-binary-path": { 678 | "version": "2.1.0", 679 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 680 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 681 | "dev": true, 682 | "requires": { 683 | "binary-extensions": "^2.0.0" 684 | } 685 | }, 686 | "is-core-module": { 687 | "version": "2.1.0", 688 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", 689 | "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", 690 | "requires": { 691 | "has": "^1.0.3" 692 | } 693 | }, 694 | "is-extglob": { 695 | "version": "2.1.1", 696 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 697 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 698 | "dev": true 699 | }, 700 | "is-fullwidth-code-point": { 701 | "version": "2.0.0", 702 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 703 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 704 | "dev": true 705 | }, 706 | "is-glob": { 707 | "version": "4.0.1", 708 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 709 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 710 | "dev": true, 711 | "requires": { 712 | "is-extglob": "^2.1.1" 713 | } 714 | }, 715 | "is-module": { 716 | "version": "1.0.0", 717 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 718 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" 719 | }, 720 | "is-number": { 721 | "version": "7.0.0", 722 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 723 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 724 | "dev": true 725 | }, 726 | "is-plain-obj": { 727 | "version": "2.1.0", 728 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 729 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", 730 | "dev": true 731 | }, 732 | "is-plain-object": { 733 | "version": "3.0.1", 734 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", 735 | "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", 736 | "dev": true 737 | }, 738 | "is-reference": { 739 | "version": "1.2.1", 740 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 741 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 742 | "requires": { 743 | "@types/estree": "*" 744 | } 745 | }, 746 | "isexe": { 747 | "version": "2.0.0", 748 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 749 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 750 | "dev": true 751 | }, 752 | "js-yaml": { 753 | "version": "3.14.0", 754 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 755 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 756 | "dev": true, 757 | "requires": { 758 | "argparse": "^1.0.7", 759 | "esprima": "^4.0.0" 760 | } 761 | }, 762 | "jsonfile": { 763 | "version": "4.0.0", 764 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 765 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 766 | "dev": true, 767 | "requires": { 768 | "graceful-fs": "^4.1.6" 769 | } 770 | }, 771 | "locate-path": { 772 | "version": "6.0.0", 773 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 774 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 775 | "dev": true, 776 | "requires": { 777 | "p-locate": "^5.0.0" 778 | } 779 | }, 780 | "log-symbols": { 781 | "version": "4.0.0", 782 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", 783 | "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", 784 | "dev": true, 785 | "requires": { 786 | "chalk": "^4.0.0" 787 | } 788 | }, 789 | "magic-string": { 790 | "version": "0.25.7", 791 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 792 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 793 | "requires": { 794 | "sourcemap-codec": "^1.4.4" 795 | } 796 | }, 797 | "make-error": { 798 | "version": "1.3.6", 799 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 800 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 801 | "dev": true 802 | }, 803 | "merge2": { 804 | "version": "1.4.1", 805 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 806 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 807 | "dev": true 808 | }, 809 | "micromatch": { 810 | "version": "4.0.2", 811 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", 812 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", 813 | "dev": true, 814 | "requires": { 815 | "braces": "^3.0.1", 816 | "picomatch": "^2.0.5" 817 | } 818 | }, 819 | "min-indent": { 820 | "version": "1.0.1", 821 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 822 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 823 | "dev": true 824 | }, 825 | "minimatch": { 826 | "version": "3.0.4", 827 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 828 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 829 | "requires": { 830 | "brace-expansion": "^1.1.7" 831 | } 832 | }, 833 | "minimist": { 834 | "version": "1.2.5", 835 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 836 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 837 | "dev": true 838 | }, 839 | "mocha": { 840 | "version": "8.2.1", 841 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", 842 | "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", 843 | "dev": true, 844 | "requires": { 845 | "@ungap/promise-all-settled": "1.1.2", 846 | "ansi-colors": "4.1.1", 847 | "browser-stdout": "1.3.1", 848 | "chokidar": "3.4.3", 849 | "debug": "4.2.0", 850 | "diff": "4.0.2", 851 | "escape-string-regexp": "4.0.0", 852 | "find-up": "5.0.0", 853 | "glob": "7.1.6", 854 | "growl": "1.10.5", 855 | "he": "1.2.0", 856 | "js-yaml": "3.14.0", 857 | "log-symbols": "4.0.0", 858 | "minimatch": "3.0.4", 859 | "ms": "2.1.2", 860 | "nanoid": "3.1.12", 861 | "serialize-javascript": "5.0.1", 862 | "strip-json-comments": "3.1.1", 863 | "supports-color": "7.2.0", 864 | "which": "2.0.2", 865 | "wide-align": "1.1.3", 866 | "workerpool": "6.0.2", 867 | "yargs": "13.3.2", 868 | "yargs-parser": "13.1.2", 869 | "yargs-unparser": "2.0.0" 870 | } 871 | }, 872 | "moment": { 873 | "version": "2.29.1", 874 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", 875 | "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" 876 | }, 877 | "ms": { 878 | "version": "2.1.2", 879 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 880 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 881 | "dev": true 882 | }, 883 | "nanoid": { 884 | "version": "3.1.12", 885 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", 886 | "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", 887 | "dev": true 888 | }, 889 | "normalize-path": { 890 | "version": "3.0.0", 891 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 892 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 893 | "dev": true 894 | }, 895 | "obsidian": { 896 | "version": "https://github.com/obsidianmd/obsidian-api/tarball/master", 897 | "integrity": "sha512-AqIFKumTQk1zHCoBHVajfAIV0RYX/mw1I9KODkimBguCvPSmvYLsossh/WT7aOD0e0wqObkgZ7y1Yv3s3ZMNEw==", 898 | "requires": { 899 | "@types/codemirror": "0.0.98" 900 | } 901 | }, 902 | "once": { 903 | "version": "1.4.0", 904 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 905 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 906 | "requires": { 907 | "wrappy": "1" 908 | } 909 | }, 910 | "p-limit": { 911 | "version": "3.0.2", 912 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", 913 | "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", 914 | "dev": true, 915 | "requires": { 916 | "p-try": "^2.0.0" 917 | } 918 | }, 919 | "p-locate": { 920 | "version": "5.0.0", 921 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 922 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 923 | "dev": true, 924 | "requires": { 925 | "p-limit": "^3.0.2" 926 | } 927 | }, 928 | "p-try": { 929 | "version": "2.2.0", 930 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 931 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 932 | "dev": true 933 | }, 934 | "parent-module": { 935 | "version": "1.0.1", 936 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 937 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 938 | "dev": true, 939 | "requires": { 940 | "callsites": "^3.0.0" 941 | } 942 | }, 943 | "path-exists": { 944 | "version": "4.0.0", 945 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 946 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 947 | "dev": true 948 | }, 949 | "path-is-absolute": { 950 | "version": "1.0.1", 951 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 952 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 953 | }, 954 | "path-parse": { 955 | "version": "1.0.6", 956 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 957 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 958 | }, 959 | "path-type": { 960 | "version": "4.0.0", 961 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 962 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 963 | "dev": true 964 | }, 965 | "pathval": { 966 | "version": "1.1.0", 967 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", 968 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", 969 | "dev": true 970 | }, 971 | "picomatch": { 972 | "version": "2.2.2", 973 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 974 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" 975 | }, 976 | "prettier": { 977 | "version": "2.1.2", 978 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", 979 | "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", 980 | "dev": true 981 | }, 982 | "prettier-plugin-svelte": { 983 | "version": "1.4.1", 984 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-1.4.1.tgz", 985 | "integrity": "sha512-6y0m37Xw01GRf/WIHau+Kp3uXj2JB1agtEmNVKb9opMy34A6OMOYhfneVpNIlrghQSw/jIV+t3e5Ngt4up2CMA==", 986 | "dev": true 987 | }, 988 | "randombytes": { 989 | "version": "2.1.0", 990 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 991 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 992 | "dev": true, 993 | "requires": { 994 | "safe-buffer": "^5.1.0" 995 | } 996 | }, 997 | "readdirp": { 998 | "version": "3.5.0", 999 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 1000 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 1001 | "dev": true, 1002 | "requires": { 1003 | "picomatch": "^2.2.1" 1004 | } 1005 | }, 1006 | "require-directory": { 1007 | "version": "2.1.1", 1008 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1009 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1010 | "dev": true 1011 | }, 1012 | "require-main-filename": { 1013 | "version": "2.0.0", 1014 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 1015 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 1016 | "dev": true 1017 | }, 1018 | "require-relative": { 1019 | "version": "0.8.7", 1020 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 1021 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=" 1022 | }, 1023 | "resolve": { 1024 | "version": "1.18.1", 1025 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", 1026 | "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", 1027 | "requires": { 1028 | "is-core-module": "^2.0.0", 1029 | "path-parse": "^1.0.6" 1030 | } 1031 | }, 1032 | "resolve-from": { 1033 | "version": "4.0.0", 1034 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1035 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1036 | "dev": true 1037 | }, 1038 | "reusify": { 1039 | "version": "1.0.4", 1040 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1041 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1042 | "dev": true 1043 | }, 1044 | "rollup": { 1045 | "version": "2.33.1", 1046 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz", 1047 | "integrity": "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==", 1048 | "requires": { 1049 | "fsevents": "~2.1.2" 1050 | } 1051 | }, 1052 | "rollup-plugin-copy": { 1053 | "version": "3.3.0", 1054 | "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.3.0.tgz", 1055 | "integrity": "sha512-euDjCUSBXZa06nqnwCNADbkAcYDfzwowfZQkto9K/TFhiH+QG7I4PUsEMwM9tDgomGWJc//z7KLW8t+tZwxADA==", 1056 | "dev": true, 1057 | "requires": { 1058 | "@types/fs-extra": "^8.0.1", 1059 | "colorette": "^1.1.0", 1060 | "fs-extra": "^8.1.0", 1061 | "globby": "10.0.1", 1062 | "is-plain-object": "^3.0.0" 1063 | } 1064 | }, 1065 | "rollup-plugin-svelte": { 1066 | "version": "6.1.1", 1067 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", 1068 | "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", 1069 | "requires": { 1070 | "require-relative": "^0.8.7", 1071 | "rollup-pluginutils": "^2.8.2", 1072 | "sourcemap-codec": "^1.4.8" 1073 | } 1074 | }, 1075 | "rollup-pluginutils": { 1076 | "version": "2.8.2", 1077 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1078 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1079 | "requires": { 1080 | "estree-walker": "^0.6.1" 1081 | }, 1082 | "dependencies": { 1083 | "estree-walker": { 1084 | "version": "0.6.1", 1085 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1086 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" 1087 | } 1088 | } 1089 | }, 1090 | "run-parallel": { 1091 | "version": "1.1.10", 1092 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", 1093 | "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", 1094 | "dev": true 1095 | }, 1096 | "safe-buffer": { 1097 | "version": "5.2.1", 1098 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1099 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1100 | "dev": true 1101 | }, 1102 | "semver-compare": { 1103 | "version": "1.0.0", 1104 | "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", 1105 | "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" 1106 | }, 1107 | "serialize-javascript": { 1108 | "version": "5.0.1", 1109 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", 1110 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", 1111 | "dev": true, 1112 | "requires": { 1113 | "randombytes": "^2.1.0" 1114 | } 1115 | }, 1116 | "set-blocking": { 1117 | "version": "2.0.0", 1118 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1119 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1120 | "dev": true 1121 | }, 1122 | "slash": { 1123 | "version": "3.0.0", 1124 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 1125 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1126 | "dev": true 1127 | }, 1128 | "source-map": { 1129 | "version": "0.7.3", 1130 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1131 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1132 | "dev": true 1133 | }, 1134 | "source-map-support": { 1135 | "version": "0.5.19", 1136 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 1137 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 1138 | "dev": true, 1139 | "requires": { 1140 | "buffer-from": "^1.0.0", 1141 | "source-map": "^0.6.0" 1142 | }, 1143 | "dependencies": { 1144 | "source-map": { 1145 | "version": "0.6.1", 1146 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1147 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1148 | "dev": true 1149 | } 1150 | } 1151 | }, 1152 | "sourcemap-codec": { 1153 | "version": "1.4.8", 1154 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1155 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 1156 | }, 1157 | "sprintf-js": { 1158 | "version": "1.0.3", 1159 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1160 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1161 | "dev": true 1162 | }, 1163 | "string-width": { 1164 | "version": "2.1.1", 1165 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1166 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1167 | "dev": true, 1168 | "requires": { 1169 | "is-fullwidth-code-point": "^2.0.0", 1170 | "strip-ansi": "^4.0.0" 1171 | } 1172 | }, 1173 | "strip-ansi": { 1174 | "version": "4.0.0", 1175 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1176 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1177 | "dev": true, 1178 | "requires": { 1179 | "ansi-regex": "^3.0.0" 1180 | } 1181 | }, 1182 | "strip-indent": { 1183 | "version": "3.0.0", 1184 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1185 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1186 | "dev": true, 1187 | "requires": { 1188 | "min-indent": "^1.0.0" 1189 | } 1190 | }, 1191 | "strip-json-comments": { 1192 | "version": "3.1.1", 1193 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1194 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1195 | "dev": true 1196 | }, 1197 | "supports-color": { 1198 | "version": "7.2.0", 1199 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1200 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1201 | "dev": true, 1202 | "requires": { 1203 | "has-flag": "^4.0.0" 1204 | } 1205 | }, 1206 | "svelte": { 1207 | "version": "3.29.6", 1208 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.29.6.tgz", 1209 | "integrity": "sha512-VIQMHPPEg/d4BQTy+WX1hHi/0EzjwjgjBK+DF0kLFy5hBsDKHQemd7xrCO1Spz57sT0xUb/YgRwFoozQrK0cmQ==" 1210 | }, 1211 | "svelte-check": { 1212 | "version": "1.1.11", 1213 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-1.1.11.tgz", 1214 | "integrity": "sha512-kUd8caplQGERPfAGLwwbJ0EZ5dzsEVqEEfH93Ur4RJsPi7hW+gV6czEn3KVbJP7XrPmnoi3y2B/G1RUzyPr6yQ==", 1215 | "dev": true, 1216 | "requires": { 1217 | "chalk": "^4.0.0", 1218 | "chokidar": "^3.4.1", 1219 | "glob": "^7.1.6", 1220 | "import-fresh": "^3.2.1", 1221 | "minimist": "^1.2.5", 1222 | "source-map": "^0.7.3", 1223 | "svelte-preprocess": "^4.0.0", 1224 | "typescript": "*" 1225 | } 1226 | }, 1227 | "svelte-preprocess": { 1228 | "version": "4.5.2", 1229 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.5.2.tgz", 1230 | "integrity": "sha512-ClUX5NecnGBwI+nJnnBvKKy0XutCq5uHTIKe6cPhpvuOj9AAnyvef9wOZAE93yr85OKPutGCNIJa/X1TrJ7O0Q==", 1231 | "dev": true, 1232 | "requires": { 1233 | "@types/pug": "^2.0.4", 1234 | "@types/sass": "^1.16.0", 1235 | "detect-indent": "^6.0.0", 1236 | "strip-indent": "^3.0.0" 1237 | } 1238 | }, 1239 | "to-regex-range": { 1240 | "version": "5.0.1", 1241 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1242 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1243 | "dev": true, 1244 | "requires": { 1245 | "is-number": "^7.0.0" 1246 | } 1247 | }, 1248 | "ts-node": { 1249 | "version": "9.0.0", 1250 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", 1251 | "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", 1252 | "dev": true, 1253 | "requires": { 1254 | "arg": "^4.1.0", 1255 | "diff": "^4.0.1", 1256 | "make-error": "^1.1.1", 1257 | "source-map-support": "^0.5.17", 1258 | "yn": "3.1.1" 1259 | } 1260 | }, 1261 | "tslib": { 1262 | "version": "2.0.3", 1263 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", 1264 | "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" 1265 | }, 1266 | "type-detect": { 1267 | "version": "4.0.8", 1268 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 1269 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 1270 | "dev": true 1271 | }, 1272 | "typescript": { 1273 | "version": "4.0.5", 1274 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", 1275 | "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", 1276 | "dev": true 1277 | }, 1278 | "universalify": { 1279 | "version": "0.1.2", 1280 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 1281 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 1282 | "dev": true 1283 | }, 1284 | "which": { 1285 | "version": "2.0.2", 1286 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1287 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1288 | "dev": true, 1289 | "requires": { 1290 | "isexe": "^2.0.0" 1291 | } 1292 | }, 1293 | "which-module": { 1294 | "version": "2.0.0", 1295 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1296 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 1297 | "dev": true 1298 | }, 1299 | "wide-align": { 1300 | "version": "1.1.3", 1301 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1302 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1303 | "dev": true, 1304 | "requires": { 1305 | "string-width": "^1.0.2 || 2" 1306 | } 1307 | }, 1308 | "workerpool": { 1309 | "version": "6.0.2", 1310 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", 1311 | "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", 1312 | "dev": true 1313 | }, 1314 | "wrap-ansi": { 1315 | "version": "5.1.0", 1316 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 1317 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 1318 | "dev": true, 1319 | "requires": { 1320 | "ansi-styles": "^3.2.0", 1321 | "string-width": "^3.0.0", 1322 | "strip-ansi": "^5.0.0" 1323 | }, 1324 | "dependencies": { 1325 | "ansi-regex": { 1326 | "version": "4.1.0", 1327 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1328 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1329 | "dev": true 1330 | }, 1331 | "ansi-styles": { 1332 | "version": "3.2.1", 1333 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1334 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1335 | "dev": true, 1336 | "requires": { 1337 | "color-convert": "^1.9.0" 1338 | } 1339 | }, 1340 | "color-convert": { 1341 | "version": "1.9.3", 1342 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1343 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1344 | "dev": true, 1345 | "requires": { 1346 | "color-name": "1.1.3" 1347 | } 1348 | }, 1349 | "color-name": { 1350 | "version": "1.1.3", 1351 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1352 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1353 | "dev": true 1354 | }, 1355 | "string-width": { 1356 | "version": "3.1.0", 1357 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1358 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1359 | "dev": true, 1360 | "requires": { 1361 | "emoji-regex": "^7.0.1", 1362 | "is-fullwidth-code-point": "^2.0.0", 1363 | "strip-ansi": "^5.1.0" 1364 | } 1365 | }, 1366 | "strip-ansi": { 1367 | "version": "5.2.0", 1368 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1369 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1370 | "dev": true, 1371 | "requires": { 1372 | "ansi-regex": "^4.1.0" 1373 | } 1374 | } 1375 | } 1376 | }, 1377 | "wrappy": { 1378 | "version": "1.0.2", 1379 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1380 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1381 | }, 1382 | "y18n": { 1383 | "version": "4.0.0", 1384 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1385 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 1386 | "dev": true 1387 | }, 1388 | "yargs": { 1389 | "version": "13.3.2", 1390 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", 1391 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", 1392 | "dev": true, 1393 | "requires": { 1394 | "cliui": "^5.0.0", 1395 | "find-up": "^3.0.0", 1396 | "get-caller-file": "^2.0.1", 1397 | "require-directory": "^2.1.1", 1398 | "require-main-filename": "^2.0.0", 1399 | "set-blocking": "^2.0.0", 1400 | "string-width": "^3.0.0", 1401 | "which-module": "^2.0.0", 1402 | "y18n": "^4.0.0", 1403 | "yargs-parser": "^13.1.2" 1404 | }, 1405 | "dependencies": { 1406 | "ansi-regex": { 1407 | "version": "4.1.0", 1408 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1409 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1410 | "dev": true 1411 | }, 1412 | "find-up": { 1413 | "version": "3.0.0", 1414 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1415 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1416 | "dev": true, 1417 | "requires": { 1418 | "locate-path": "^3.0.0" 1419 | } 1420 | }, 1421 | "locate-path": { 1422 | "version": "3.0.0", 1423 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1424 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1425 | "dev": true, 1426 | "requires": { 1427 | "p-locate": "^3.0.0", 1428 | "path-exists": "^3.0.0" 1429 | } 1430 | }, 1431 | "p-limit": { 1432 | "version": "2.3.0", 1433 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1434 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1435 | "dev": true, 1436 | "requires": { 1437 | "p-try": "^2.0.0" 1438 | } 1439 | }, 1440 | "p-locate": { 1441 | "version": "3.0.0", 1442 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1443 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1444 | "dev": true, 1445 | "requires": { 1446 | "p-limit": "^2.0.0" 1447 | } 1448 | }, 1449 | "path-exists": { 1450 | "version": "3.0.0", 1451 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1452 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1453 | "dev": true 1454 | }, 1455 | "string-width": { 1456 | "version": "3.1.0", 1457 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1458 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1459 | "dev": true, 1460 | "requires": { 1461 | "emoji-regex": "^7.0.1", 1462 | "is-fullwidth-code-point": "^2.0.0", 1463 | "strip-ansi": "^5.1.0" 1464 | } 1465 | }, 1466 | "strip-ansi": { 1467 | "version": "5.2.0", 1468 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1469 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1470 | "dev": true, 1471 | "requires": { 1472 | "ansi-regex": "^4.1.0" 1473 | } 1474 | } 1475 | } 1476 | }, 1477 | "yargs-parser": { 1478 | "version": "13.1.2", 1479 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 1480 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 1481 | "dev": true, 1482 | "requires": { 1483 | "camelcase": "^5.0.0", 1484 | "decamelize": "^1.2.0" 1485 | } 1486 | }, 1487 | "yargs-unparser": { 1488 | "version": "2.0.0", 1489 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", 1490 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", 1491 | "dev": true, 1492 | "requires": { 1493 | "camelcase": "^6.0.0", 1494 | "decamelize": "^4.0.0", 1495 | "flat": "^5.0.2", 1496 | "is-plain-obj": "^2.1.0" 1497 | }, 1498 | "dependencies": { 1499 | "camelcase": { 1500 | "version": "6.2.0", 1501 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", 1502 | "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", 1503 | "dev": true 1504 | }, 1505 | "decamelize": { 1506 | "version": "4.0.0", 1507 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", 1508 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", 1509 | "dev": true 1510 | } 1511 | } 1512 | }, 1513 | "yn": { 1514 | "version": "3.1.1", 1515 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", 1516 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", 1517 | "dev": true 1518 | } 1519 | } 1520 | } 1521 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-snippet-plugin", 3 | "version": "0.1.0", 4 | "description": "An Obsidian plugin for loading css snippets", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "build": "svelte-check && rollup -c", 8 | "test": "mocha -r ts-node/register tests/*.ts", 9 | "format": "prettier --write src/**/*", 10 | "lint": "prettier --check src/**/*" 11 | }, 12 | "author": "jdbrice", 13 | "license": "MIT", 14 | "dependencies": { 15 | "@rollup/plugin-commonjs": "^15.0.0", 16 | "@rollup/plugin-node-resolve": "^9.0.0", 17 | "@types/node": "^14.14.6", 18 | "moment": "^2.27.0", 19 | "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", 20 | "rollup": "^2.26.7", 21 | "rollup-plugin-svelte": "^6.0.0", 22 | "semver-compare": "1.0.0", 23 | "svelte": "^3.24.1", 24 | "tslib": "^2.0.1" 25 | }, 26 | "devDependencies": { 27 | "@rollup/plugin-typescript": "^5.0.2", 28 | "@tsconfig/svelte": "^1.0.10", 29 | "@types/chai": "^4.2.12", 30 | "@types/mocha": "^8.0.3", 31 | "chai": "^4.2.0", 32 | "mocha": "^8.1.3", 33 | "prettier": "^2.1.1", 34 | "prettier-plugin-svelte": "^1.2.1", 35 | "rollup-plugin-copy": "^3.3.0", 36 | "svelte-check": "^1.0.31", 37 | "svelte-preprocess": "^4.2.0", 38 | "ts-node": "^9.0.0", 39 | "typescript": "^4.0.2" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from "rollup-plugin-svelte"; 2 | import resolve from "@rollup/plugin-node-resolve"; 3 | import commonjs from "@rollup/plugin-commonjs"; 4 | import typescript from "@rollup/plugin-typescript"; 5 | import autoPreprocess from "svelte-preprocess"; 6 | 7 | import copy from "rollup-plugin-copy"; 8 | 9 | export default { 10 | input: "src/index.ts", 11 | output: { 12 | format: "cjs", 13 | file: "dist/main.js", 14 | sourcemap: "inline", 15 | exports: "default", 16 | }, 17 | external: ["obsidian"], 18 | plugins: [ 19 | svelte({ 20 | preprocess: autoPreprocess(), 21 | }), 22 | typescript({ sourceMap: true }), 23 | resolve({ 24 | browser: true, 25 | dedupe: ["svelte"], 26 | }), 27 | commonjs(), 28 | copy({ 29 | targets: [ 30 | { 31 | src: "manifest.json", 32 | dest: "dist/", 33 | }, 34 | ], 35 | }), 36 | ], 37 | }; 38 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { App, Plugin, PluginManifest } from "obsidian"; 2 | 3 | const defSnippetFolder: string = "css-snippets"; 4 | 5 | export default class CssSnippetsPlugin extends Plugin { 6 | public loadedStyles: Array; 7 | 8 | constructor(app: App, pluginManifest: PluginManifest) { 9 | super(app, pluginManifest); 10 | } 11 | 12 | async onload() { 13 | this.addCommand({ 14 | id: "refresh-styles", 15 | name: "Reload", 16 | callback: async () => { 17 | this.loadSnippets(); 18 | }, 19 | }); 20 | 21 | this.addCommand({ 22 | id: "unload-styles", 23 | name: "Unload", 24 | callback: async () => { 25 | this.unloadSnippets(); 26 | }, 27 | }); 28 | 29 | this.loadedStyles = Array(0); 30 | this.loadSnippets(); 31 | } 32 | 33 | onunload() { 34 | this.unloadSnippets(); 35 | } 36 | 37 | async loadSnippets() { 38 | this.unloadSnippets(); 39 | 40 | // enumerate the style files 41 | let style_files = await this.app.vault.adapter.list(defSnippetFolder); 42 | style_files.files; 43 | for (let fstyle of style_files.files) { 44 | // console.log( "Found file: ", fstyle ); 45 | if (fstyle.indexOf(".css") < 0) { 46 | // console.log( "Skipping non css file"); 47 | } 48 | 49 | let content = await this.app.vault.adapter.read(fstyle); 50 | let css = content; 51 | 52 | var style = document.createElement("style"); 53 | style.innerHTML = css; 54 | document.head.appendChild(style); 55 | this.loadedStyles.push(style); 56 | } 57 | } 58 | 59 | async unloadSnippets() { 60 | for (let tag of this.loadedStyles) { 61 | // console.log( "Removing style tag: ", tag ); 62 | document.head.removeChild(tag); 63 | } 64 | this.loadedStyles = Array(0); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | 4 | "include": ["src/**/*"], 5 | "exclude": ["node_modules/*"], 6 | "compilerOptions": { 7 | "types": ["node", "svelte"] 8 | } 9 | } 10 | --------------------------------------------------------------------------------