├── .github └── workflows │ └── node.js-test.yml ├── .gitignore ├── README.md ├── data.json ├── demo.gif ├── main.js ├── manifest.json ├── package.json ├── patches ├── @opendocsg+pdf2md+0.1.16 2.patch └── @opendocsg+pdf2md+0.1.16.patch ├── rollup.config.js ├── src ├── ExtractPDFSettings.ts ├── ExtractPDFSettingsTab.ts ├── additionalTypes.d.ts └── main.ts ├── styles.css ├── tsconfig.json ├── tsconfig.testing.json └── yarn.lock /.github/workflows/node.js-test.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [10.x, 12.x, 14.x] 20 | 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v1 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | - run: npm install 28 | - run: npm test 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # Intellij 4 | *.iml 5 | .idea 6 | 7 | # npm 8 | node_modules 9 | package-lock.json 10 | 11 | # build 12 | # main.js 13 | *.js.map 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Extract PDF text to Markdown 2 | 3 | Allows you to extract the basic textual content of a PDF into a Markdown file. Works well with headings, paragraphs and lists. 4 | 5 | ### Demo 6 | 7 | ![](https://github.com/akaalias/obsidian-extract-pdf/blob/master/demo.gif?raw=true) 8 | 9 | ### How to use this plugin 10 | 11 | After you've installed and activated the plugin: 12 | 13 | 1. Drag your PDF into Obsidian 14 | 2. Open the PDF within Obsidian 15 | 3. Make sure the pane with your PDF is focused 16 | 4. Click the "PDF to Markdown" button in the sidebar 17 | 5. Edit the generated markdown file to your needs 18 | 19 | ### Tips & Tricks for editing the generated markdown file 20 | 21 | I just went ahead and turned a 500 page PDF into markdown and found that it worked better and faster than I expected. 22 | 23 | #### Bulk-removing page footers 24 | 25 | The book I used had the same footer on every page. That means they got copied into the markdown file over and over, too. 26 | 27 | For bulk search-and-replace I use the Atom editor (https://atom.io): 28 | 29 | 0. Copy the footer text into your clipboard 30 | 1. Download and install Atom 31 | 2. Open Atom and open the Markdown file inside 32 | 3. Use "Find -> Find in Buffer" and paste the footer text 33 | 4. Use the button "Replace" or "Replace All" to remove footer text 34 | 35 | #### Remove a single space before a new line of text 36 | 37 | Weirdly, sometimes, new lines of text had a space infront of them. Such as: 38 | 39 | ` Some text` 40 | 41 | ...which resulted in Obisidian treating it as a sub-block of the preceding line. 42 | 43 | To remove the space for those lines, I used a regular expression search-and-replace: 44 | 45 | 1. In "Find in current buffer" activate "Regex Search" (The `.*` icon) 46 | 2. Enter `^([ ]|\t)+` into the search field 47 | 4. Use the button "Replace" or "Replace All" to remove the space 48 | 49 | ## Known issues 50 | 51 | ### First-time use 52 | 53 | If you had a PDF open in Obisidian _before_ you installed and activated the plugin, hitting the button may not work. I've had this issue with other plugins as well. The code just doesn't hook up to already-open files. 54 | 55 | The solution is to simply close the PDF note and re-open it. That will allow the plugin to hook into it. 56 | 57 | ### Limited PDF parsing 58 | 59 | Please understand that this is a basic, best-effort tool to get basic text and headings from a PDF. It really just gets the text from a pdf and turns it into Markdown. The plugin doesn't handle anything more complex, like tables, images, annotations etc: 60 | 61 | - Does not turn PDF highlights and annotations into MD highlights 62 | - Does not retain PDF numbered lists 63 | - Does not skip text in headers and footers 64 | -------------------------------------------------------------------------------- /data.json: -------------------------------------------------------------------------------- 1 | {"createNewFile":true,"copyToClipboard":true} -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akaalias/obsidian-extract-pdf/bda8937dc0438803dafec3237bc0d08106e59e67/demo.gif -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "pdf-to-markdown-plugin", 3 | "name": "PDF to Markdown", 4 | "version": "0.0.7", 5 | "description": "Save a PDF's text (headings, paragraphs, lists, etc.) to a Markdown file.", 6 | "author": "Alexis Rondeau", 7 | "authorUrl": "https://publish.obsidian.md/alexisrondeau", 8 | "js": "main.js" 9 | } 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pdf-to-markdown-plugin", 3 | "version": "0.0.1", 4 | "description": "Extract the text from a PDF to a Markdown file.", 5 | "main": "main.js", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "rollup --config rollup.config.js -w", 9 | "build": "rollup --config rollup.config.js", 10 | "test": "cross-env TS_NODE_COMPILER_OPTIONS='{ \"module\": \"commonjs\" }' mocha -r ts-node/register -r ignore-styles -r jsdom-global/register test/**/*.ts", 11 | "test:watch": "cross-env TS_NODE_COMPILER_OPTIONS='{ \"module\": \"commonjs\" }' mocha -r ts-node/register -r ignore-styles -r jsdom-global/register --watch --watch-files src, test/**/*.ts" 12 | }, 13 | "keywords": [], 14 | "author": "", 15 | "license": "MIT", 16 | "devDependencies": { 17 | "@rollup/plugin-commonjs": "^15.1.0", 18 | "@rollup/plugin-node-resolve": "^9.0.0", 19 | "@rollup/plugin-typescript": "^6.0.0", 20 | "@types/chai": "^4.2.14", 21 | "@types/mocha": "^8.2.0", 22 | "@types/node": "^14.14.16", 23 | "chai": "^4.2.0", 24 | "cross-env": "^7.0.2", 25 | "ignore-styles": "^5.0.1", 26 | "jsdom": "^16.4.0", 27 | "jsdom-global": "^3.0.2", 28 | "mocha": "^8.2.1", 29 | "obsidian": "https://github.com/obsidianmd/obsidian-api/tarball/master", 30 | "rollup": "^2.35.1", 31 | "ts-node": "^9.1.1", 32 | "tslib": "^1.14.1", 33 | "typescript": "^4.1.3" 34 | }, 35 | "dependencies": { 36 | "@opendocsg/pdf2md": "^0.1.21", 37 | "electron": "^10.2.0", 38 | "pdfjs-dist": "^2.6.347" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /patches/@opendocsg+pdf2md+0.1.16 2.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/@opendocsg/pdf2md/lib/util/pdf.js b/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 2 | index 0ed1512..e491a0b 100644 3 | --- a/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 4 | +++ b/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 5 | @@ -42,7 +42,7 @@ exports.parse = async function parse (docOptions, callbacks) { 6 | } 7 | } 8 | 9 | - let pageNum = firstPage.pageNum 10 | + let pageNum = 0; // firstPage.pageNum 11 | for (let j = 1; j <= pdfDocument.numPages; j++) { 12 | const page = await pdfDocument.getPage(j) 13 | 14 | -------------------------------------------------------------------------------- /patches/@opendocsg+pdf2md+0.1.16.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/@opendocsg/pdf2md/lib/util/pdf.js b/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 2 | index 0ed1512..2cf8408 100644 3 | --- a/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 4 | +++ b/node_modules/@opendocsg/pdf2md/lib/util/pdf.js 5 | @@ -5,7 +5,8 @@ const Page = require('../models/Page') 6 | 7 | const NO_OP = () => {} 8 | 9 | -exports.parse = async function parse (docOptions, callbacks) { 10 | +exports.parse = async function parse (pdfDocument, callbacks) { 11 | + 12 | const { metadataParsed, pageParsed, fontParsed, documentParsed } = { 13 | metadataParsed: NO_OP, 14 | pageParsed: NO_OP, 15 | @@ -13,10 +14,9 @@ exports.parse = async function parse (docOptions, callbacks) { 16 | documentParsed: NO_OP, 17 | ...(callbacks || {}), 18 | } 19 | - const pdfDocument = await pdfjs.getDocument(docOptions).promise 20 | + 21 | const metadata = await pdfDocument.getMetadata() 22 | metadataParsed(metadata) 23 | - 24 | const pages = [...Array(pdfDocument.numPages).keys()].map( 25 | index => new Page({ index }) 26 | ) 27 | @@ -42,7 +42,7 @@ exports.parse = async function parse (docOptions, callbacks) { 28 | } 29 | } 30 | 31 | - let pageNum = firstPage.pageNum 32 | + let pageNum = 0 // firstPage.pageNum 33 | for (let j = 1; j <= pdfDocument.numPages; j++) { 34 | const page = await pdfDocument.getPage(j) 35 | 36 | @@ -90,6 +90,7 @@ exports.parse = async function parse (docOptions, callbacks) { 37 | fontParsed(fonts) 38 | } 39 | } 40 | + 41 | } 42 | return { 43 | fonts, 44 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from '@rollup/plugin-typescript'; 2 | import {nodeResolve} from '@rollup/plugin-node-resolve'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | 5 | export default { 6 | input: 'src/main.ts', 7 | output: { 8 | dir: '.', 9 | sourcemap: 'inline', 10 | format: 'cjs', 11 | exports: 'default' 12 | }, 13 | external: ['obsidian'], 14 | plugins: [ 15 | typescript(), 16 | nodeResolve({browser: true}), 17 | commonjs(), 18 | ] 19 | }; -------------------------------------------------------------------------------- /src/ExtractPDFSettings.ts: -------------------------------------------------------------------------------- 1 | export default class ExtractPDFSettings { 2 | public createNewFile: boolean; 3 | public copyToClipboard: boolean; 4 | 5 | constructor() { 6 | this.createNewFile = true; 7 | this.copyToClipboard = true; 8 | } 9 | } -------------------------------------------------------------------------------- /src/ExtractPDFSettingsTab.ts: -------------------------------------------------------------------------------- 1 | import ExtractPDFPlugin from "./main"; 2 | import {App, PluginSettingTab, Setting} from "obsidian"; 3 | 4 | export default class ExtractPDFSettingsTab extends PluginSettingTab { 5 | 6 | private readonly plugin: ExtractPDFPlugin; 7 | 8 | constructor(app: App, plugin: ExtractPDFPlugin) { 9 | super(app, plugin); 10 | this.plugin = plugin; 11 | } 12 | 13 | display(): void { 14 | const {containerEl} = this; 15 | 16 | containerEl.empty(); 17 | 18 | containerEl.createEl("h2", {text: "Extract Highlights Plugin"}); 19 | containerEl.createEl("p", {text: "When invoked, will parse the currently focused PDF and copy its content to the cilpboard."}); 20 | 21 | new Setting(containerEl) 22 | .setName('Create new file') 23 | .setDesc( 24 | 'If enabled, will automatically create a new .md file from the PDF', 25 | ) 26 | .addToggle((toggle) => 27 | toggle.setValue(this.plugin.settings.createNewFile).onChange((value) => { 28 | this.plugin.settings.createNewFile = value; 29 | this.plugin.saveData(this.plugin.settings); 30 | }), 31 | ); 32 | 33 | 34 | new Setting(containerEl) 35 | .setName('Copy content to clipboard') 36 | .setDesc( 37 | 'If enabled, will copy the extracted Markdown to your clipboard', 38 | ) 39 | .addToggle((toggle) => 40 | toggle.setValue(this.plugin.settings.copyToClipboard).onChange((value) => { 41 | this.plugin.settings.copyToClipboard = value; 42 | this.plugin.saveData(this.plugin.settings); 43 | }), 44 | ); 45 | } 46 | } -------------------------------------------------------------------------------- /src/additionalTypes.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@opendocsg/pdf2md'; 2 | declare module 'pdfjs-dist/es5/build/pdf'; 3 | declare module 'pdfjs-dist/es5/build/pdf.worker.entry'; 4 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import {Plugin, addIcon, Notice, Modal, App} from "obsidian" 2 | import * as pdf2md from '@opendocsg/pdf2md' 3 | // @opendocsg/pdf2md uses the ES5 build of pdfjs-dist. 4 | // We want to explicitly set the worker for the module, 5 | // so bring these in as modules 6 | import pdfjs from 'pdfjs-dist/es5/build/pdf'; 7 | import worker from 'pdfjs-dist/es5/build/pdf.worker.entry'; 8 | 9 | import ExtractPDFSettings from "./ExtractPDFSettings"; 10 | import ExtractPDFSettingsTab from "./ExtractPDFSettingsTab"; 11 | 12 | addIcon('extract', '') 13 | 14 | export default class ExtractPDFPlugin extends Plugin { 15 | public settings: ExtractPDFSettings; 16 | private modal: ProgressModal; 17 | 18 | async onload() { 19 | this.loadSettings(); 20 | this.addSettingTab(new ExtractPDFSettingsTab(this.app, this)); 21 | this.modal = new ProgressModal(this.app); 22 | 23 | this.addRibbonIcon('extract', 'PDF to Markdown', () => { 24 | this.extract(); 25 | }); 26 | } 27 | 28 | loadSettings() { 29 | this.settings = new ExtractPDFSettings(); 30 | (async () => { 31 | const loadedSettings: ExtractPDFSettings = await this.loadData(); 32 | if (loadedSettings) { 33 | console.log("Found existing settings file"); 34 | this.settings.createNewFile = loadedSettings.createNewFile; 35 | this.settings.copyToClipboard = loadedSettings.copyToClipboard; 36 | } else { 37 | console.log("No settings file found, saving..."); 38 | this.saveData(this.settings); 39 | } 40 | })(); 41 | } 42 | 43 | async extract() { 44 | // this.modal.open(); 45 | 46 | let file = this.app.workspace.getActiveFile(); 47 | 48 | if(file === null) return; 49 | if(file.extension !== 'pdf') return; 50 | 51 | let arrayBuffer = await this.app.vault.readBinary(file); 52 | 53 | pdfjs.GlobalWorkerOptions.workerSrc = worker; 54 | 55 | let doc = await pdfjs.getDocument(arrayBuffer).promise; 56 | 57 | this.modal.fileName = file.name; 58 | // this.modal.open(); 59 | 60 | var result = await parse(doc); 61 | const {fonts, pages} = result 62 | const transformations = makeTransformations(fonts.map) 63 | const parseResult = transform(pages, transformations) 64 | const resultMD = parseResult.pages 65 | // @ts-ignore 66 | .map(page => page.items.join('\n')) 67 | .join('---\n\n') 68 | 69 | const filePath = file.name.replace(".pdf", ".md"); 70 | 71 | if(this.settings.copyToClipboard) { 72 | this.saveToClipboard(resultMD); 73 | } 74 | 75 | if(this.settings.createNewFile) { 76 | await this.saveToFile(filePath, resultMD); 77 | await this.app.workspace.openLinkText(filePath, '', true); 78 | } 79 | 80 | this.modal.close(); 81 | 82 | } 83 | 84 | saveToClipboard(data: string) { 85 | if (data.length > 0) { 86 | navigator.clipboard.writeText(data); 87 | } else { 88 | new Notice( "No text found"); 89 | } 90 | } 91 | 92 | async saveToFile(filePath: string, mdString: string) { 93 | const fileExists = await this.app.vault.adapter.exists(filePath); 94 | if (fileExists) { 95 | await this.appendFile(filePath, mdString); 96 | } else { 97 | await this.app.vault.create(filePath, mdString); 98 | } 99 | } 100 | 101 | async appendFile(filePath: string, note: string) { 102 | let existingContent = await this.app.vault.adapter.read(filePath); 103 | if(existingContent.length > 0) { 104 | existingContent = existingContent + '\r\r'; 105 | } 106 | await this.app.vault.adapter.write(filePath, existingContent + note); 107 | } 108 | } 109 | 110 | class ProgressModal extends Modal { 111 | public fileName: string; 112 | 113 | constructor(app: App) { 114 | super(app); 115 | } 116 | 117 | onOpen() { 118 | let {contentEl} = this; 119 | contentEl.createEl("h2", {text: "Extract PDF Plugin"}); 120 | contentEl.createEl("p", {text: "I'm sorry but due to an unexpected incompatibility with Obsidian Core PDF handling as of v0.10.8 this plugin is currently disabled. In the meantime, you can use https://pdf2md.morethan.io/ to extract PDF to markdown. I'm sorry for the inconvenience and working on fixing this issue. If you have any questions, please email me at alexis.rondeau@gmail.com! Thank you for your patience, Alexis :)"}); 121 | } 122 | 123 | onClose() { 124 | let {contentEl} = this; 125 | contentEl.empty(); 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akaalias/obsidian-extract-pdf/bda8937dc0438803dafec3237bc0d08106e59e67/styles.css -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "inlineSourceMap": true, 5 | "inlineSources": true, 6 | "module": "ESNext", 7 | "target": "es5", 8 | "allowJs": true, 9 | "noImplicitAny": true, 10 | "moduleResolution": "node", 11 | "importHelpers": true, 12 | "lib": [ 13 | "dom", 14 | "es5", 15 | "scripthost", 16 | "es2015" 17 | ] 18 | }, 19 | "include": [ 20 | "**/*.ts" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /tsconfig.testing.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6" 5 | }, 6 | "include": ["**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@electron/get@^1.0.1": 6 | "integrity" "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==" 7 | "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz" 8 | "version" "1.12.2" 9 | dependencies: 10 | "debug" "^4.1.1" 11 | "env-paths" "^2.2.0" 12 | "fs-extra" "^8.1.0" 13 | "global-agent" "^2.0.2" 14 | "global-tunnel-ng" "^2.7.1" 15 | "got" "^9.6.0" 16 | "progress" "^2.0.3" 17 | "sanitize-filename" "^1.6.2" 18 | "sumchecker" "^3.0.1" 19 | optionalDependencies: 20 | "global-agent" "^2.0.2" 21 | "global-tunnel-ng" "^2.7.1" 22 | 23 | "@rollup/plugin-commonjs@^15.1.0": 24 | "integrity" "sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==" 25 | "resolved" "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz" 26 | "version" "15.1.0" 27 | dependencies: 28 | "@rollup/pluginutils" "^3.1.0" 29 | "commondir" "^1.0.1" 30 | "estree-walker" "^2.0.1" 31 | "glob" "^7.1.6" 32 | "is-reference" "^1.2.1" 33 | "magic-string" "^0.25.7" 34 | "resolve" "^1.17.0" 35 | 36 | "@rollup/plugin-node-resolve@^9.0.0": 37 | "integrity" "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==" 38 | "resolved" "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz" 39 | "version" "9.0.0" 40 | dependencies: 41 | "@rollup/pluginutils" "^3.1.0" 42 | "@types/resolve" "1.17.1" 43 | "builtin-modules" "^3.1.0" 44 | "deepmerge" "^4.2.2" 45 | "is-module" "^1.0.0" 46 | "resolve" "^1.17.0" 47 | 48 | "@rollup/plugin-typescript@^6.0.0": 49 | "integrity" "sha512-hJxaiE6WyNOsK+fZpbFh9CUijZYqPQuAOWO5khaGTUkM8DYNNyA2TDlgamecE+qLOG1G1+CwbWMAx3rbqpp6xQ==" 50 | "resolved" "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-6.1.0.tgz" 51 | "version" "6.1.0" 52 | dependencies: 53 | "@rollup/pluginutils" "^3.1.0" 54 | "resolve" "^1.17.0" 55 | 56 | "@rollup/pluginutils@^3.1.0": 57 | "integrity" "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==" 58 | "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz" 59 | "version" "3.1.0" 60 | dependencies: 61 | "@types/estree" "0.0.39" 62 | "estree-walker" "^1.0.1" 63 | "picomatch" "^2.2.2" 64 | 65 | "@sindresorhus/is@^0.14.0": 66 | "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" 67 | "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" 68 | "version" "0.14.0" 69 | 70 | "@szmarczak/http-timer@^1.1.2": 71 | "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" 72 | "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" 73 | "version" "1.1.2" 74 | dependencies: 75 | "defer-to-connect" "^1.0.1" 76 | 77 | "@types/codemirror@0.0.98": 78 | "integrity" "sha512-cbty5LPayy2vNSeuUdjNA9tggG+go5vAxmnLDRWpiZI5a+RDBi9dlozy4/jW/7P/gletbBWbQREEa7A81YxstA==" 79 | "resolved" "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.98.tgz" 80 | "version" "0.0.98" 81 | dependencies: 82 | "@types/tern" "*" 83 | 84 | "@types/estree@*", "@types/estree@0.0.39": 85 | "integrity" "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" 86 | "resolved" "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" 87 | "version" "0.0.39" 88 | 89 | "@types/node@*", "@types/node@^14.14.2": 90 | "integrity" "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" 91 | "resolved" "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz" 92 | "version" "14.14.6" 93 | 94 | "@types/node@^12.0.12": 95 | "integrity" "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==" 96 | "resolved" "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz" 97 | "version" "12.19.3" 98 | 99 | "@types/resolve@1.17.1": 100 | "integrity" "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==" 101 | "resolved" "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz" 102 | "version" "1.17.1" 103 | dependencies: 104 | "@types/node" "*" 105 | 106 | "@types/tern@*": 107 | "integrity" "sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w==" 108 | "resolved" "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz" 109 | "version" "0.23.3" 110 | dependencies: 111 | "@types/estree" "*" 112 | 113 | "balanced-match@^1.0.0": 114 | "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 115 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" 116 | "version" "1.0.0" 117 | 118 | "boolean@^3.0.1": 119 | "integrity" "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==" 120 | "resolved" "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz" 121 | "version" "3.0.2" 122 | 123 | "brace-expansion@^1.1.7": 124 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" 125 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 126 | "version" "1.1.11" 127 | dependencies: 128 | "balanced-match" "^1.0.0" 129 | "concat-map" "0.0.1" 130 | 131 | "buffer-crc32@~0.2.3": 132 | "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 133 | "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" 134 | "version" "0.2.13" 135 | 136 | "buffer-from@^1.0.0": 137 | "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 138 | "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" 139 | "version" "1.1.1" 140 | 141 | "builtin-modules@^3.1.0": 142 | "integrity" "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" 143 | "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz" 144 | "version" "3.1.0" 145 | 146 | "cacheable-request@^6.0.0": 147 | "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" 148 | "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" 149 | "version" "6.1.0" 150 | dependencies: 151 | "clone-response" "^1.0.2" 152 | "get-stream" "^5.1.0" 153 | "http-cache-semantics" "^4.0.0" 154 | "keyv" "^3.0.0" 155 | "lowercase-keys" "^2.0.0" 156 | "normalize-url" "^4.1.0" 157 | "responselike" "^1.0.2" 158 | 159 | "clone-response@^1.0.2": 160 | "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" 161 | "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" 162 | "version" "1.0.2" 163 | dependencies: 164 | "mimic-response" "^1.0.0" 165 | 166 | "commondir@^1.0.1": 167 | "integrity" "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" 168 | "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" 169 | "version" "1.0.1" 170 | 171 | "concat-map@0.0.1": 172 | "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 173 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 174 | "version" "0.0.1" 175 | 176 | "concat-stream@^1.6.2": 177 | "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" 178 | "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" 179 | "version" "1.6.2" 180 | dependencies: 181 | "buffer-from" "^1.0.0" 182 | "inherits" "^2.0.3" 183 | "readable-stream" "^2.2.2" 184 | "typedarray" "^0.0.6" 185 | 186 | "config-chain@^1.1.11": 187 | "integrity" "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==" 188 | "resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" 189 | "version" "1.1.12" 190 | dependencies: 191 | "ini" "^1.3.4" 192 | "proto-list" "~1.2.1" 193 | 194 | "core-js@^3.6.5": 195 | "integrity" "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==" 196 | "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz" 197 | "version" "3.7.0" 198 | 199 | "core-util-is@~1.0.0": 200 | "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 201 | "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" 202 | "version" "1.0.2" 203 | 204 | "debug@^2.6.9": 205 | "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" 206 | "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 207 | "version" "2.6.9" 208 | dependencies: 209 | "ms" "2.0.0" 210 | 211 | "debug@^4.1.0", "debug@^4.1.1": 212 | "integrity" "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==" 213 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz" 214 | "version" "4.2.0" 215 | dependencies: 216 | "ms" "2.1.2" 217 | 218 | "decompress-response@^3.3.0": 219 | "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" 220 | "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" 221 | "version" "3.3.0" 222 | dependencies: 223 | "mimic-response" "^1.0.0" 224 | 225 | "deepmerge@^4.2.2": 226 | "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 227 | "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" 228 | "version" "4.2.2" 229 | 230 | "defer-to-connect@^1.0.1": 231 | "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" 232 | "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" 233 | "version" "1.1.3" 234 | 235 | "define-properties@^1.1.3": 236 | "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" 237 | "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" 238 | "version" "1.1.3" 239 | dependencies: 240 | "object-keys" "^1.0.12" 241 | 242 | "detect-node@^2.0.4": 243 | "integrity" "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" 244 | "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" 245 | "version" "2.0.4" 246 | 247 | "duplexer3@^0.1.4": 248 | "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" 249 | "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" 250 | "version" "0.1.4" 251 | 252 | "electron@^10.1.5": 253 | "integrity" "sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ==" 254 | "resolved" "https://registry.npmjs.org/electron/-/electron-10.1.5.tgz" 255 | "version" "10.1.5" 256 | dependencies: 257 | "@electron/get" "^1.0.1" 258 | "@types/node" "^12.0.12" 259 | "extract-zip" "^1.0.3" 260 | 261 | "encodeurl@^1.0.2": 262 | "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 263 | "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" 264 | "version" "1.0.2" 265 | 266 | "end-of-stream@^1.1.0": 267 | "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" 268 | "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 269 | "version" "1.4.4" 270 | dependencies: 271 | "once" "^1.4.0" 272 | 273 | "env-paths@^2.2.0": 274 | "integrity" "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" 275 | "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" 276 | "version" "2.2.0" 277 | 278 | "es6-error@^4.1.1": 279 | "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" 280 | "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" 281 | "version" "4.1.1" 282 | 283 | "escape-string-regexp@^4.0.0": 284 | "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" 285 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 286 | "version" "4.0.0" 287 | 288 | "estree-walker@^1.0.1": 289 | "integrity" "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" 290 | "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" 291 | "version" "1.0.1" 292 | 293 | "estree-walker@^2.0.1": 294 | "integrity" "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==" 295 | "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz" 296 | "version" "2.0.1" 297 | 298 | "extract-zip@^1.0.3": 299 | "integrity" "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==" 300 | "resolved" "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" 301 | "version" "1.7.0" 302 | dependencies: 303 | "concat-stream" "^1.6.2" 304 | "debug" "^2.6.9" 305 | "mkdirp" "^0.5.4" 306 | "yauzl" "^2.10.0" 307 | 308 | "fd-slicer@~1.1.0": 309 | "integrity" "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=" 310 | "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" 311 | "version" "1.1.0" 312 | dependencies: 313 | "pend" "~1.2.0" 314 | 315 | "fs-extra@^8.1.0": 316 | "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" 317 | "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" 318 | "version" "8.1.0" 319 | dependencies: 320 | "graceful-fs" "^4.2.0" 321 | "jsonfile" "^4.0.0" 322 | "universalify" "^0.1.0" 323 | 324 | "fs.realpath@^1.0.0": 325 | "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 326 | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 327 | "version" "1.0.0" 328 | 329 | "fsevents@~2.1.2": 330 | "integrity" "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==" 331 | "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz" 332 | "version" "2.1.3" 333 | 334 | "function-bind@^1.1.1": 335 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 336 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 337 | "version" "1.1.1" 338 | 339 | "get-stream@^4.1.0": 340 | "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" 341 | "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" 342 | "version" "4.1.0" 343 | dependencies: 344 | "pump" "^3.0.0" 345 | 346 | "get-stream@^5.1.0": 347 | "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" 348 | "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" 349 | "version" "5.2.0" 350 | dependencies: 351 | "pump" "^3.0.0" 352 | 353 | "glob@^7.1.6": 354 | "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" 355 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" 356 | "version" "7.1.6" 357 | dependencies: 358 | "fs.realpath" "^1.0.0" 359 | "inflight" "^1.0.4" 360 | "inherits" "2" 361 | "minimatch" "^3.0.4" 362 | "once" "^1.3.0" 363 | "path-is-absolute" "^1.0.0" 364 | 365 | "global-agent@^2.0.2": 366 | "integrity" "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==" 367 | "resolved" "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz" 368 | "version" "2.1.12" 369 | dependencies: 370 | "boolean" "^3.0.1" 371 | "core-js" "^3.6.5" 372 | "es6-error" "^4.1.1" 373 | "matcher" "^3.0.0" 374 | "roarr" "^2.15.3" 375 | "semver" "^7.3.2" 376 | "serialize-error" "^7.0.1" 377 | 378 | "global-tunnel-ng@^2.7.1": 379 | "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" 380 | "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" 381 | "version" "2.7.1" 382 | dependencies: 383 | "encodeurl" "^1.0.2" 384 | "lodash" "^4.17.10" 385 | "npm-conf" "^1.1.3" 386 | "tunnel" "^0.0.6" 387 | 388 | "globalthis@^1.0.1": 389 | "integrity" "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==" 390 | "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz" 391 | "version" "1.0.1" 392 | dependencies: 393 | "define-properties" "^1.1.3" 394 | 395 | "got@^9.6.0": 396 | "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" 397 | "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" 398 | "version" "9.6.0" 399 | dependencies: 400 | "@sindresorhus/is" "^0.14.0" 401 | "@szmarczak/http-timer" "^1.1.2" 402 | "cacheable-request" "^6.0.0" 403 | "decompress-response" "^3.3.0" 404 | "duplexer3" "^0.1.4" 405 | "get-stream" "^4.1.0" 406 | "lowercase-keys" "^1.0.1" 407 | "mimic-response" "^1.0.1" 408 | "p-cancelable" "^1.0.0" 409 | "to-readable-stream" "^1.0.0" 410 | "url-parse-lax" "^3.0.0" 411 | 412 | "graceful-fs@^4.1.6", "graceful-fs@^4.2.0": 413 | "integrity" "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" 414 | "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" 415 | "version" "4.2.4" 416 | 417 | "has@^1.0.3": 418 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" 419 | "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 420 | "version" "1.0.3" 421 | dependencies: 422 | "function-bind" "^1.1.1" 423 | 424 | "http-cache-semantics@^4.0.0": 425 | "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" 426 | "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" 427 | "version" "4.1.0" 428 | 429 | "inflight@^1.0.4": 430 | "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" 431 | "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 432 | "version" "1.0.6" 433 | dependencies: 434 | "once" "^1.3.0" 435 | "wrappy" "1" 436 | 437 | "inherits@^2.0.3", "inherits@~2.0.3", "inherits@2": 438 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 439 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 440 | "version" "2.0.4" 441 | 442 | "ini@^1.3.4": 443 | "integrity" "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 444 | "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz" 445 | "version" "1.3.5" 446 | 447 | "is-core-module@^2.0.0": 448 | "integrity" "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==" 449 | "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz" 450 | "version" "2.1.0" 451 | dependencies: 452 | "has" "^1.0.3" 453 | 454 | "is-module@^1.0.0": 455 | "integrity" "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" 456 | "resolved" "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz" 457 | "version" "1.0.0" 458 | 459 | "is-reference@^1.2.1": 460 | "integrity" "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==" 461 | "resolved" "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz" 462 | "version" "1.2.1" 463 | dependencies: 464 | "@types/estree" "*" 465 | 466 | "isarray@~1.0.0": 467 | "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 468 | "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" 469 | "version" "1.0.0" 470 | 471 | "json-buffer@3.0.0": 472 | "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" 473 | "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" 474 | "version" "3.0.0" 475 | 476 | "json-stringify-safe@^5.0.1": 477 | "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 478 | "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" 479 | "version" "5.0.1" 480 | 481 | "jsonfile@^4.0.0": 482 | "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" 483 | "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" 484 | "version" "4.0.0" 485 | dependencies: 486 | "graceful-fs" "^4.1.6" 487 | optionalDependencies: 488 | "graceful-fs" "^4.1.6" 489 | 490 | "keyv@^3.0.0": 491 | "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" 492 | "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" 493 | "version" "3.1.0" 494 | dependencies: 495 | "json-buffer" "3.0.0" 496 | 497 | "lodash@^4.17.10": 498 | "integrity" "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 499 | "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" 500 | "version" "4.17.20" 501 | 502 | "lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": 503 | "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" 504 | "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" 505 | "version" "1.0.1" 506 | 507 | "lowercase-keys@^2.0.0": 508 | "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" 509 | "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" 510 | "version" "2.0.0" 511 | 512 | "magic-string@^0.25.7": 513 | "integrity" "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==" 514 | "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" 515 | "version" "0.25.7" 516 | dependencies: 517 | "sourcemap-codec" "^1.4.4" 518 | 519 | "matcher@^3.0.0": 520 | "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==" 521 | "resolved" "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" 522 | "version" "3.0.0" 523 | dependencies: 524 | "escape-string-regexp" "^4.0.0" 525 | 526 | "mimic-response@^1.0.0", "mimic-response@^1.0.1": 527 | "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" 528 | "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" 529 | "version" "1.0.1" 530 | 531 | "minimatch@^3.0.4": 532 | "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" 533 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" 534 | "version" "3.0.4" 535 | dependencies: 536 | "brace-expansion" "^1.1.7" 537 | 538 | "minimist@^1.2.5": 539 | "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 540 | "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" 541 | "version" "1.2.5" 542 | 543 | "mkdirp@^0.5.4": 544 | "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" 545 | "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" 546 | "version" "0.5.5" 547 | dependencies: 548 | "minimist" "^1.2.5" 549 | 550 | "ms@2.0.0": 551 | "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 552 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 553 | "version" "2.0.0" 554 | 555 | "ms@2.1.2": 556 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 557 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 558 | "version" "2.1.2" 559 | 560 | "normalize-url@^4.1.0": 561 | "integrity" "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" 562 | "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" 563 | "version" "4.5.0" 564 | 565 | "npm-conf@^1.1.3": 566 | "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==" 567 | "resolved" "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" 568 | "version" "1.1.3" 569 | dependencies: 570 | "config-chain" "^1.1.11" 571 | "pify" "^3.0.0" 572 | 573 | "object-keys@^1.0.12": 574 | "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 575 | "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 576 | "version" "1.1.1" 577 | 578 | "obsidian@https://github.com/obsidianmd/obsidian-api/tarball/master": 579 | "integrity" "sha512-AqIFKumTQk1zHCoBHVajfAIV0RYX/mw1I9KODkimBguCvPSmvYLsossh/WT7aOD0e0wqObkgZ7y1Yv3s3ZMNEw==" 580 | "resolved" "https://github.com/obsidianmd/obsidian-api/tarball/master" 581 | "version" "0.9.12" 582 | dependencies: 583 | "@types/codemirror" "0.0.98" 584 | 585 | "once@^1.3.0", "once@^1.3.1", "once@^1.4.0": 586 | "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" 587 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 588 | "version" "1.4.0" 589 | dependencies: 590 | "wrappy" "1" 591 | 592 | "p-cancelable@^1.0.0": 593 | "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" 594 | "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" 595 | "version" "1.1.0" 596 | 597 | "path-is-absolute@^1.0.0": 598 | "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 599 | "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 600 | "version" "1.0.1" 601 | 602 | "path-parse@^1.0.6": 603 | "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 604 | "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" 605 | "version" "1.0.6" 606 | 607 | "pend@~1.2.0": 608 | "integrity" "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 609 | "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" 610 | "version" "1.2.0" 611 | 612 | "picomatch@^2.2.2": 613 | "integrity" "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" 614 | "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" 615 | "version" "2.2.2" 616 | 617 | "pify@^3.0.0": 618 | "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 619 | "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" 620 | "version" "3.0.0" 621 | 622 | "prepend-http@^2.0.0": 623 | "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" 624 | "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" 625 | "version" "2.0.0" 626 | 627 | "process-nextick-args@~2.0.0": 628 | "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 629 | "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" 630 | "version" "2.0.1" 631 | 632 | "progress@^2.0.3": 633 | "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 634 | "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" 635 | "version" "2.0.3" 636 | 637 | "proto-list@~1.2.1": 638 | "integrity" "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" 639 | "resolved" "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" 640 | "version" "1.2.4" 641 | 642 | "pump@^3.0.0": 643 | "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" 644 | "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 645 | "version" "3.0.0" 646 | dependencies: 647 | "end-of-stream" "^1.1.0" 648 | "once" "^1.3.1" 649 | 650 | "readable-stream@^2.2.2": 651 | "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" 652 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" 653 | "version" "2.3.7" 654 | dependencies: 655 | "core-util-is" "~1.0.0" 656 | "inherits" "~2.0.3" 657 | "isarray" "~1.0.0" 658 | "process-nextick-args" "~2.0.0" 659 | "safe-buffer" "~5.1.1" 660 | "string_decoder" "~1.1.1" 661 | "util-deprecate" "~1.0.1" 662 | 663 | "resolve@^1.17.0": 664 | "integrity" "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==" 665 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz" 666 | "version" "1.18.1" 667 | dependencies: 668 | "is-core-module" "^2.0.0" 669 | "path-parse" "^1.0.6" 670 | 671 | "responselike@^1.0.2": 672 | "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" 673 | "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" 674 | "version" "1.0.2" 675 | dependencies: 676 | "lowercase-keys" "^1.0.0" 677 | 678 | "roarr@^2.15.3": 679 | "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" 680 | "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" 681 | "version" "2.15.4" 682 | dependencies: 683 | "boolean" "^3.0.1" 684 | "detect-node" "^2.0.4" 685 | "globalthis" "^1.0.1" 686 | "json-stringify-safe" "^5.0.1" 687 | "semver-compare" "^1.0.0" 688 | "sprintf-js" "^1.1.2" 689 | 690 | "rollup@^1.20.0||^2.0.0", "rollup@^2.14.0", "rollup@^2.22.0", "rollup@^2.32.1": 691 | "integrity" "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==" 692 | "resolved" "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz" 693 | "version" "2.33.1" 694 | dependencies: 695 | "fsevents" "~2.1.2" 696 | optionalDependencies: 697 | "fsevents" "~2.1.2" 698 | 699 | "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": 700 | "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 701 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 702 | "version" "5.1.2" 703 | 704 | "sanitize-filename@^1.6.2": 705 | "integrity" "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==" 706 | "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" 707 | "version" "1.6.3" 708 | dependencies: 709 | "truncate-utf8-bytes" "^1.0.0" 710 | 711 | "semver-compare@^1.0.0": 712 | "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" 713 | "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" 714 | "version" "1.0.0" 715 | 716 | "semver@^7.3.2": 717 | "integrity" "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" 718 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" 719 | "version" "7.3.2" 720 | 721 | "serialize-error@^7.0.1": 722 | "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" 723 | "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" 724 | "version" "7.0.1" 725 | dependencies: 726 | "type-fest" "^0.13.1" 727 | 728 | "sourcemap-codec@^1.4.4": 729 | "integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 730 | "resolved" "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" 731 | "version" "1.4.8" 732 | 733 | "sprintf-js@^1.1.2": 734 | "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" 735 | "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" 736 | "version" "1.1.2" 737 | 738 | "string_decoder@~1.1.1": 739 | "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" 740 | "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" 741 | "version" "1.1.1" 742 | dependencies: 743 | "safe-buffer" "~5.1.0" 744 | 745 | "sumchecker@^3.0.1": 746 | "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" 747 | "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" 748 | "version" "3.0.1" 749 | dependencies: 750 | "debug" "^4.1.0" 751 | 752 | "to-readable-stream@^1.0.0": 753 | "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" 754 | "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" 755 | "version" "1.0.0" 756 | 757 | "truncate-utf8-bytes@^1.0.0": 758 | "integrity" "sha1-QFkjkJWS1W94pYGENLC3hInKXys=" 759 | "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" 760 | "version" "1.0.2" 761 | dependencies: 762 | "utf8-byte-length" "^1.0.1" 763 | 764 | "tslib@*", "tslib@^2.0.3": 765 | "integrity" "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" 766 | "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz" 767 | "version" "2.0.3" 768 | 769 | "tunnel@^0.0.6": 770 | "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" 771 | "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" 772 | "version" "0.0.6" 773 | 774 | "type-fest@^0.13.1": 775 | "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" 776 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" 777 | "version" "0.13.1" 778 | 779 | "typedarray@^0.0.6": 780 | "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" 781 | "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" 782 | "version" "0.0.6" 783 | 784 | "typescript@^4.0.3", "typescript@>=3.4.0": 785 | "integrity" "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==" 786 | "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz" 787 | "version" "4.0.5" 788 | 789 | "universalify@^0.1.0": 790 | "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" 791 | "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" 792 | "version" "0.1.2" 793 | 794 | "url-parse-lax@^3.0.0": 795 | "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" 796 | "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" 797 | "version" "3.0.0" 798 | dependencies: 799 | "prepend-http" "^2.0.0" 800 | 801 | "utf8-byte-length@^1.0.1": 802 | "integrity" "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" 803 | "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" 804 | "version" "1.0.4" 805 | 806 | "util-deprecate@~1.0.1": 807 | "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 808 | "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 809 | "version" "1.0.2" 810 | 811 | "wrappy@1": 812 | "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 813 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 814 | "version" "1.0.2" 815 | 816 | "yauzl@^2.10.0": 817 | "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" 818 | "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" 819 | "version" "2.10.0" 820 | dependencies: 821 | "buffer-crc32" "~0.2.3" 822 | "fd-slicer" "~1.1.0" 823 | --------------------------------------------------------------------------------