├── .github └── workflows │ └── release.yml ├── .gitignore ├── .release-please-manifest.json ├── .vscode └── launch.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── demo ├── .editorconfig ├── .gitignore ├── .vscode │ └── settings.json ├── checkbox_with_label.test.js ├── clojure.clj ├── clojurescript.cljs ├── cplusplus-header.h ├── cplusplus-source.cc ├── csharp.cs ├── css.css ├── elm.elm ├── flutter.dart ├── html.html ├── issue-91.jsx ├── issue-91.tsx ├── js.js ├── json.json ├── markdown.md ├── newfile.js ├── php.php ├── powershell.ps1 ├── pug.pug ├── python.py ├── react.js ├── reacthook.js ├── ruby.rb ├── statelessfunctionalreact.js ├── stylus.styl ├── tsx.tsx ├── vuedemo.vue └── yml.yml ├── media ├── icon.png └── preview.png ├── package.json ├── release-please-config.json ├── sync.sh ├── themes └── codesandbox-dark.json └── yarn.lock /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | on: 3 | push: 4 | branches: [main] 5 | 6 | jobs: 7 | publish: 8 | name: Publish 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: google-github-actions/release-please-action@v3 12 | id: release 13 | with: 14 | command: manifest 15 | 16 | - name: Checkout 17 | uses: actions/checkout@v3 18 | if: ${{ steps.release.outputs.release_created }} 19 | 20 | - name: Configure Node.js 21 | if: ${{ steps.release.outputs.release_created }} 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: lts/* 25 | cache: yarn 26 | 27 | - name: Install dependencies 28 | if: ${{ steps.release.outputs.release_created }} 29 | run: yarn install --frozen-lockfile 30 | 31 | - name: Configure Git 32 | if: ${{ steps.release.outputs.release_created }} 33 | run: | 34 | git config --local user.email "action@github.com" 35 | git config --local user.name "GitHub Action" 36 | 37 | - name: Publish 38 | if: ${{ steps.release.outputs.release_created }} 39 | run: yarn release 40 | env: 41 | VSCE_PAT: ${{ secrets.VSCODE_MARKETPLACE_TOKEN }} 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *-error.log -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- 1 | {".":"1.1.0"} 2 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "runtimeExecutable": "${execPath}", 9 | "args": ["--extensionDevelopmentPath=${workspaceFolder}"] 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [1.1.0](https://github.com/codesandbox/vscode-theme/compare/codesandbox-projects-theme-v1.0.2...codesandbox-projects-theme-v1.1.0) (2022-08-03) 4 | 5 | 6 | ### Features 7 | 8 | * use entity.name.function ([#18](https://github.com/codesandbox/vscode-theme/issues/18)) ([f3d358d](https://github.com/codesandbox/vscode-theme/commit/f3d358d3a64303a320cbb594ddd39bf81f401ca5)) 9 | 10 | ## [1.0.2](https://github.com/codesandbox/vscode-theme/compare/codesandbox-projects-theme-v1.0.1...codesandbox-projects-theme-v1.0.2) (2022-06-27) 11 | 12 | 13 | ### Bug Fixes 14 | 15 | * improve active tab visibility ([#16](https://github.com/codesandbox/vscode-theme/issues/16)) ([a9f4803](https://github.com/codesandbox/vscode-theme/commit/a9f4803350b56890cea99232b11b7184a921a78e)) 16 | * use different colors for git decorators ([#15](https://github.com/codesandbox/vscode-theme/issues/15)) ([c227d09](https://github.com/codesandbox/vscode-theme/commit/c227d092e151373fee420c8178d9ae30aa2410cb)) 17 | 18 | ### [1.0.1](https://github.com/codesandbox/vscode-theme/compare/codesandbox-projects-theme-v1.0.0...codesandbox-projects-theme-v1.0.1) (2022-04-20) 19 | 20 | 21 | ### Bug Fixes 22 | 23 | * **markdown:** color deprecated html attributes ([#12](https://github.com/codesandbox/vscode-theme/issues/12)) ([e5999be](https://github.com/codesandbox/vscode-theme/commit/e5999be0abc2863e4cb6275fa4306c4733bdc408)) 24 | 25 | ## 1.0.0 (2022-04-20) 26 | 27 | 28 | ### Bug Fixes 29 | 30 | * add displayName and license to package.json ([517cb10](https://github.com/codesandbox/vscode-theme/commit/517cb10a5ad2a5d86189ac03c4e8aba544007fcb)) 31 | * add keywords to package.json ([ef2e76f](https://github.com/codesandbox/vscode-theme/commit/ef2e76f4ae77bdad463397a3ad75d79e49c8f152)) 32 | * add marketplace icon ([8fac354](https://github.com/codesandbox/vscode-theme/commit/8fac354bdf9879f73cd9f979a1cd6a9922361247)) 33 | * clean icon and preview images ([5a660ee](https://github.com/codesandbox/vscode-theme/commit/5a660eeb769aefdd888e4d9e434c072c345bf99c)) 34 | * rename to "codesandbox-projects-theme" ([8ddde27](https://github.com/codesandbox/vscode-theme/commit/8ddde278b222d78b2b56ab1949a628685f4ed7bd)) 35 | * use https repo url to support relative links ([8b44a38](https://github.com/codesandbox/vscode-theme/commit/8b44a384358639893ba514517abbeebf43e20aad)) 36 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thank you for deciding to contribute to our Visual Studio Code Theme! Please read through the page below that will take you through everything you need to know to land your first contribution. See you in the pull requests! 4 | 5 | ## Development 6 | 7 | ### Create a fork 8 | 9 | First, create a fork (your own copy) of this repository by clicking on the "Fork" button in the upper right corner of this page. 10 | 11 | ### Clone 12 | 13 | ```sh 14 | git clone 15 | cd vscode-theme 16 | ``` 17 | 18 | ### Install locally 19 | 20 | To use this extension locally, it must be copied to the Visual Studio Code Extensions folder on your machine. 21 | 22 | #### Copy automatically 23 | 24 | Use the following command to do that: 25 | 26 | ```sh 27 | ./sync.sh 28 | ``` 29 | 30 | #### Copy manually 31 | 32 | ```sh 33 | cd vscode-theme 34 | cp -r . ~/.vscode/extensions/codesandbox-theme 35 | ``` 36 | 37 | ### Preview 38 | 39 | It's always more pleasant to develop when you see your changes take effect in real time. Below you can find the instructions on how to preview your local version of this theme. 40 | 41 | 1. Open the repository in Visual Studio Code. 42 | 1. Click F5 to switch to the "Debugger" section. 43 | 1. Click on the "Play" button to run the theme in a separate extension window. 44 | 1. In the newly opened VS Code window, press CMD + SHIFT + P, then type "Color Theme". 45 | 1. Choose "CodeSandbox" from the themes list. If you don't see this option in the list, please make sure to [have installed the theme locally](#install-locally). 46 | 47 | Editing the theme files under `./themes` will update the running extension window automatically. 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and 10 | distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by the 13 | copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other 16 | entities that control, are controlled by, or are under common control with 17 | that entity. For the purposes of this definition, "control" means (i) the 18 | power, direct or indirect, to cause the direction or management of such 19 | entity, whether by contract or otherwise, or (ii) ownership of fifty percent 20 | (50%) or more of the outstanding shares, or (iii) beneficial ownership of 21 | such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity exercising 24 | permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation source, and 28 | configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical transformation 31 | or translation of a Source form, including but not limited to compiled 32 | object code, generated documentation, and conversions to other media types. 33 | 34 | "Work" shall mean the work of authorship, whether in Source or Object form, 35 | made available under the License, as indicated by a copyright notice that is 36 | included in or attached to the work (an example is provided in the Appendix 37 | below). 38 | 39 | "Derivative Works" shall mean any work, whether in Source or Object form, 40 | that is based on (or derived from) the Work and for which the editorial 41 | revisions, annotations, elaborations, or other modifications represent, as a 42 | whole, an original work of authorship. For the purposes of this License, 43 | Derivative Works shall not include works that remain separable from, or 44 | merely link (or bind by name) to the interfaces of, the Work and Derivative 45 | Works thereof. 46 | 47 | "Contribution" shall mean any work of authorship, including the original 48 | version of the Work and any modifications or additions to that Work or 49 | Derivative Works thereof, that is intentionally submitted to Licensor for 50 | inclusion in the Work by the copyright owner or by an individual or Legal 51 | Entity authorized to submit on behalf of the copyright owner. For the 52 | purposes of this definition, "submitted" means any form of electronic, 53 | verbal, or written communication sent to the Licensor or its 54 | representatives, including but not limited to communication on electronic 55 | mailing lists, source code control systems, and issue tracking systems that 56 | are managed by, or on behalf of, the Licensor for the purpose of discussing 57 | and improving the Work, but excluding communication that is conspicuously 58 | marked or otherwise designated in writing by the copyright owner as "Not a 59 | Contribution." 60 | 61 | "Contributor" shall mean Licensor and any individual or Legal Entity on 62 | behalf of whom a Contribution has been received by Licensor and subsequently 63 | incorporated within the Work. 64 | 65 | 2. Grant of Copyright License. Subject to the terms and conditions of this 66 | License, each Contributor hereby grants to You a perpetual, worldwide, 67 | non-exclusive, no-charge, royalty-free, irrevocable copyright license to 68 | reproduce, prepare Derivative Works of, publicly display, publicly perform, 69 | sublicense, and distribute the Work and such Derivative Works in Source or 70 | Object form. 71 | 72 | 3. Grant of Patent License. Subject to the terms and conditions of this 73 | License, each Contributor hereby grants to You a perpetual, worldwide, 74 | non-exclusive, no-charge, royalty-free, irrevocable (except as stated in 75 | this section) patent license to make, have made, use, offer to sell, sell, 76 | import, and otherwise transfer the Work, where such license applies only to 77 | those patent claims licensable by such Contributor that are necessarily 78 | infringed by their Contribution(s) alone or by combination of their 79 | Contribution(s) with the Work to which such Contribution(s) was submitted. 80 | If You institute patent litigation against any entity (including a 81 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a 82 | Contribution incorporated within the Work constitutes direct or contributory 83 | patent infringement, then any patent licenses granted to You under this 84 | License for that Work shall terminate as of the date such litigation is 85 | filed. 86 | 87 | 4. Redistribution. You may reproduce and distribute copies of the Work or 88 | Derivative Works thereof in any medium, with or without modifications, and 89 | in Source or Object form, provided that You meet the following conditions: 90 | 91 | (a) You must give any other recipients of the Work or Derivative Works a 92 | copy of this License; and 93 | 94 | (b) You must cause any modified files to carry prominent notices stating 95 | that You changed the files; and 96 | 97 | (c) You must retain, in the Source form of any Derivative Works that You 98 | distribute, all copyright, patent, trademark, and attribution notices from 99 | the Source form of the Work, excluding those notices that do not pertain to 100 | any part of the Derivative Works; and 101 | 102 | (d) If the Work includes a "NOTICE" text file as part of its distribution, 103 | then any Derivative Works that You distribute must include a readable copy 104 | of the attribution notices contained within such NOTICE file, excluding 105 | those notices that do not pertain to any part of the Derivative Works, in at 106 | least one of the following places: within a NOTICE text file distributed as 107 | part of the Derivative Works; within the Source form or documentation, if 108 | provided along with the Derivative Works; or, within a display generated by 109 | the Derivative Works, if and wherever such third-party notices normally 110 | appear. The contents of the NOTICE file are for informational purposes only 111 | and do not modify the License. You may add Your own attribution notices 112 | within Derivative Works that You distribute, alongside or as an addendum to 113 | the NOTICE text from the Work, provided that such additional attribution 114 | notices cannot be construed as modifying the License. 115 | 116 | You may add Your own copyright statement to Your modifications and may 117 | provide additional or different license terms and conditions for use, 118 | reproduction, or distribution of Your modifications, or for any such 119 | Derivative Works as a whole, provided Your use, reproduction, and 120 | distribution of the Work otherwise complies with the conditions stated in 121 | this License. 122 | 123 | 5. Submission of Contributions. Unless You explicitly state otherwise, any 124 | Contribution intentionally submitted for inclusion in the Work by You to the 125 | Licensor shall be under the terms and conditions of this License, without 126 | any additional terms or conditions. Notwithstanding the above, nothing 127 | herein shall supersede or modify the terms of any separate license agreement 128 | you may have executed with Licensor regarding such Contributions. 129 | 130 | 6. Trademarks. This License does not grant permission to use the trade names, 131 | trademarks, service marks, or product names of the Licensor, except as 132 | required for reasonable and customary use in describing the origin of the 133 | Work and reproducing the content of the NOTICE file. 134 | 135 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in 136 | writing, Licensor provides the Work (and each Contributor provides its 137 | Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 138 | KIND, either express or implied, including, without limitation, any 139 | warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or 140 | FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining 141 | the appropriateness of using or redistributing the Work and assume any risks 142 | associated with Your exercise of permissions under this License. 143 | 144 | 8. Limitation of Liability. In no event and under no legal theory, whether in 145 | tort (including negligence), contract, or otherwise, unless required by 146 | applicable law (such as deliberate and grossly negligent acts) or agreed to 147 | in writing, shall any Contributor be liable to You for damages, including 148 | any direct, indirect, special, incidental, or consequential damages of any 149 | character arising as a result of this License or out of the use or inability 150 | to use the Work (including but not limited to damages for loss of goodwill, 151 | work stoppage, computer failure or malfunction, or any and all other 152 | commercial damages or losses), even if such Contributor has been advised of 153 | the possibility of such damages. 154 | 155 | 9. Accepting Warranty or Additional Liability. While redistributing the Work or 156 | Derivative Works thereof, You may choose to offer, and charge a fee for, 157 | acceptance of support, warranty, indemnity, or other liability obligations 158 | and/or rights consistent with this License. However, in accepting such 159 | obligations, You may act only on Your own behalf and on Your sole 160 | responsibility, not on behalf of any other Contributor, and only if You 161 | agree to indemnify, defend, and hold each Contributor harmless for any 162 | liability incurred by, or claims asserted against, such Contributor by 163 | reason of your accepting any such warranty or additional liability. 164 | 165 | END OF TERMS AND CONDITIONS 166 | 167 | APPENDIX: How to apply the Apache License to your work. 168 | 169 | To apply the Apache License to your work, attach the following 170 | boilerplate notice, with the fields enclosed by brackets "[]" 171 | replaced with your own identifying information. (Don't include 172 | the brackets!) The text should be enclosed in the appropriate 173 | comment syntax for the file format. We also recommend that a 174 | file or class name and description of purpose be included on the 175 | same "printed page" as the copyright notice for easier 176 | identification within third-party archives. 177 | 178 | Copyright 2022 CodeSandbox BV 179 | 180 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 181 | this file except in compliance with the License. You may obtain a copy of the 182 | License at 183 | 184 | http://www.apache.org/licenses/LICENSE-2.0 185 | 186 | Unless required by applicable law or agreed to in writing, software distributed 187 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 188 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 189 | specific language governing permissions and limitations under the License. 190 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
CodeSandbox Theme Logo 2 |

CodeSandbox Theme

3 |

An official CodeSandbox theme for Visual Studio Code.

4 |
5 | 6 | Theme preview in Visual Studio Code 7 | 8 | ## Install 9 | 10 | Install this syntax theme [from the Marketplace][theme-install]. 11 | 12 | ## Recommendations 13 | 14 | Below you can find a few recommendations for your `settings.json` to match the CodeSandbox experience even closer in your Visual Studio Code: 15 | 16 | ```json 17 | { 18 | "editor.fontSize": 14, 19 | "editor.fontFamily": "'Fira Code'", 20 | "editor.fontLigatures": true 21 | } 22 | ``` 23 | 24 | > You can download the [Fira Code font][fira-code-install] from GitHub. 25 | 26 | ## CodeSandbox Projects Extension 27 | 28 | Did you know you can get the entire power of CodeSandbox right in your editor, not just the theme? Check out the [CodeSandbox Projects extension][projects-install] for Visual Studio Code to enable features like live following, collaborative tasks and terminals, enhanced Git workflow, and so much more! 29 | 30 | ## Contribute 31 | 32 | Found an issue? Would like to propose an improvement? Please follow our [Contribution guidelines](CONTRIBUTING.md) to make those changes happen. Thank you! 33 | 34 | [theme-install]: https://marketplace.visualstudio.com/items?itemName=CodeSandbox-io.codesandbox-projects-theme 35 | [fira-code-install]: https://github.com/tonsky/FiraCode 36 | [projects-install]: https://marketplace.visualstudio.com/items?itemName=CodeSandbox-io.codesandbox-projects 37 | -------------------------------------------------------------------------------- /demo/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /demo/.gitignore: -------------------------------------------------------------------------------- 1 | git-ignored.txt -------------------------------------------------------------------------------- /demo/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.enabled": false 3 | } -------------------------------------------------------------------------------- /demo/checkbox_with_label.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import * as TestUtils from 'react-dom/test-utils'; 4 | import CheckboxWithLabel from '../CheckboxWithLabel'; 5 | 6 | it('CheckboxWithLabel changes the text after click', () => { 7 | // Render a checkbox with label in the document 8 | const checkbox = TestUtils.renderIntoDocument( 9 | 10 | ) 11 | 12 | const checkboxNode = ReactDOM.findDOMNode(checkbox) 13 | 14 | // Verify that it's Off by default 15 | expect(checkboxNode.textContent).toEqual('Off') 16 | 17 | // Simulate a click and verify that it is now On 18 | TestUtils.Simulate.change( 19 | TestUtils.findRenderedDOMComponentWithTag(checkbox, 'input') 20 | ) 21 | expect(checkboxNode.textContent).toEqual('On') 22 | }) -------------------------------------------------------------------------------- /demo/clojure.clj: -------------------------------------------------------------------------------- 1 | (ns hello.world.clojure) 2 | 3 | (defn sum [& numbers] 4 | (if (empty? numbers) 5 | 0 6 | (reduce + 0 numbers))) 7 | 8 | (defn print-name [{:keys [first last age]}] 9 | (println (str "Your name is " first " " last " and you are " age " years old."))) 10 | 11 | (defn set-age [person new-age] 12 | (assoc person :age new-age)) 13 | 14 | (defn hello-world [] 15 | (let [john {:first "John" :last "Smith" :age 65} 16 | jack {:first "Jack" :last "Road" :age 76} 17 | george {:first "George" :last "Way" :age 23} 18 | george-junior (assoc george :age 6) 19 | all-persons [john jack george george-junior]] 20 | 21 | (doseq [person all-persons] 22 | (print-name person)) 23 | 24 | (println (str "Total age is: " (apply sum (map :age all-persons)))))) 25 | 26 | (hello-world) 27 | -------------------------------------------------------------------------------- /demo/clojurescript.cljs: -------------------------------------------------------------------------------- 1 | (ns hello.world.clojurescript 2 | (:require [reagent.core :as r]) 3 | 4 | (def counter (r/atom 0)) 5 | (def text-component-style {:background-color :grey 6 | :border "1px solid black" 7 | :padding "5px"}) 8 | 9 | (defn counter-clicked [] 10 | (.log js/console "You clicked the counter component.") 11 | (swap! counter inc)) 12 | 13 | (defn text-counter [text] 14 | [:div {:on-click counter-clicked 15 | :style text-component-style}) 16 | (str text @counter]) 17 | 18 | (defn main-component [] 19 | [:div 20 | [:p {:style {:color :red}} "Hello world! Click the element below:"] 21 | [text-counter "Clicked: "]]) 22 | -------------------------------------------------------------------------------- /demo/cplusplus-header.h: -------------------------------------------------------------------------------- 1 | // Copyright 2012 the V8 project authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef V8_API_H_ 6 | #define V8_API_H_ 7 | 8 | #include "include/v8-testing.h" 9 | #include "src/contexts.h" 10 | #include "src/debug/debug-interface.h" 11 | #include "src/detachable-vector.h" 12 | #include "src/heap/factory.h" 13 | #include "src/isolate.h" 14 | #include "src/objects.h" 15 | #include "src/objects/bigint.h" 16 | #include "src/objects/js-collection.h" 17 | #include "src/objects/js-generator.h" 18 | #include "src/objects/js-promise.h" 19 | #include "src/objects/js-proxy.h" 20 | #include "src/objects/module.h" 21 | #include "src/objects/shared-function-info.h" 22 | 23 | #include "src/objects/templates.h" 24 | 25 | namespace v8 { 26 | 27 | // Constants used in the implementation of the API. The most natural thing 28 | // would usually be to place these with the classes that use them, but 29 | // we want to keep them out of v8.h because it is an externally 30 | // visible file. 31 | class Consts { 32 | public: 33 | enum TemplateType { 34 | FUNCTION_TEMPLATE = 0, 35 | OBJECT_TEMPLATE = 1 36 | }; 37 | }; 38 | 39 | template 40 | inline T ToCData(v8::internal::Object* obj); 41 | 42 | template <> 43 | inline v8::internal::Address ToCData(v8::internal::Object* obj); 44 | 45 | template 46 | inline v8::internal::Handle FromCData( 47 | v8::internal::Isolate* isolate, T obj); 48 | 49 | template <> 50 | inline v8::internal::Handle FromCData( 51 | v8::internal::Isolate* isolate, v8::internal::Address obj); 52 | 53 | class ApiFunction { 54 | public: 55 | explicit ApiFunction(v8::internal::Address addr) : addr_(addr) { } 56 | v8::internal::Address address() { return addr_; } 57 | private: 58 | v8::internal::Address addr_; 59 | }; 60 | 61 | 62 | 63 | class RegisteredExtension { 64 | public: 65 | explicit RegisteredExtension(Extension* extension); 66 | static void Register(RegisteredExtension* that); 67 | static void UnregisterAll(); 68 | Extension* extension() { return extension_; } 69 | RegisteredExtension* next() { return next_; } 70 | static RegisteredExtension* first_extension() { return first_extension_; } 71 | private: 72 | Extension* extension_; 73 | RegisteredExtension* next_; 74 | static RegisteredExtension* first_extension_; 75 | }; 76 | 77 | #define OPEN_HANDLE_LIST(V) \ 78 | V(Template, TemplateInfo) \ 79 | V(FunctionTemplate, FunctionTemplateInfo) \ 80 | V(ObjectTemplate, ObjectTemplateInfo) \ 81 | V(Signature, FunctionTemplateInfo) \ 82 | V(AccessorSignature, FunctionTemplateInfo) \ 83 | V(Data, Object) \ 84 | V(RegExp, JSRegExp) \ 85 | V(Object, JSReceiver) \ 86 | V(Array, JSArray) \ 87 | V(Map, JSMap) \ 88 | V(Set, JSSet) \ 89 | V(ArrayBuffer, JSArrayBuffer) \ 90 | V(ArrayBufferView, JSArrayBufferView) \ 91 | V(TypedArray, JSTypedArray) \ 92 | V(Uint8Array, JSTypedArray) \ 93 | V(Uint8ClampedArray, JSTypedArray) \ 94 | V(Int8Array, JSTypedArray) \ 95 | V(Uint16Array, JSTypedArray) \ 96 | V(Int16Array, JSTypedArray) \ 97 | V(Uint32Array, JSTypedArray) \ 98 | V(Int32Array, JSTypedArray) \ 99 | V(Float32Array, JSTypedArray) \ 100 | V(Float64Array, JSTypedArray) \ 101 | V(DataView, JSDataView) \ 102 | V(SharedArrayBuffer, JSArrayBuffer) \ 103 | V(Name, Name) \ 104 | V(String, String) \ 105 | V(Symbol, Symbol) \ 106 | V(Script, JSFunction) \ 107 | V(UnboundModuleScript, SharedFunctionInfo) \ 108 | V(UnboundScript, SharedFunctionInfo) \ 109 | V(Module, Module) \ 110 | V(Function, JSReceiver) \ 111 | V(Message, JSMessageObject) \ 112 | V(Context, Context) \ 113 | V(External, Object) \ 114 | V(StackTrace, FixedArray) \ 115 | V(StackFrame, StackFrameInfo) \ 116 | V(Proxy, JSProxy) \ 117 | V(debug::GeneratorObject, JSGeneratorObject) \ 118 | V(debug::Script, Script) \ 119 | V(debug::WeakMap, JSWeakMap) \ 120 | V(Promise, JSPromise) \ 121 | V(Primitive, Object) \ 122 | V(PrimitiveArray, FixedArray) \ 123 | V(BigInt, BigInt) \ 124 | V(ScriptOrModule, Script) 125 | 126 | class Utils { 127 | public: 128 | static inline bool ApiCheck(bool condition, 129 | const char* location, 130 | const char* message) { 131 | if (!condition) Utils::ReportApiFailure(location, message); 132 | return condition; 133 | } 134 | static void ReportOOMFailure(v8::internal::Isolate* isolate, 135 | const char* location, bool is_heap_oom); 136 | 137 | static inline Local ToLocal( 138 | v8::internal::Handle obj); 139 | static inline Local ToLocal( 140 | v8::internal::Handle obj); 141 | static inline Local ToLocal( 142 | v8::internal::Handle obj); 143 | static inline Local ToLocal( 144 | v8::internal::Handle obj); 145 | static inline Local ToLocal( 146 | v8::internal::Handle obj); 147 | static inline Local ToLocal( 148 | v8::internal::Handle obj); 149 | static inline Local ToLocal( 150 | v8::internal::Handle obj); 151 | static inline Local ToLocal( 152 | v8::internal::Handle obj); 153 | static inline Local ToLocal( 154 | v8::internal::Handle obj); 155 | static inline Local ToLocal( 156 | v8::internal::Handle obj); 157 | static inline Local ToLocal( 158 | v8::internal::Handle obj); 159 | static inline Local ToLocal( 160 | v8::internal::Handle obj); 161 | static inline Local ToLocal( 162 | v8::internal::Handle obj); 163 | static inline Local ToLocal( 164 | v8::internal::Handle obj); 165 | static inline Local ToLocal( 166 | v8::internal::Handle obj); 167 | static inline Local ToLocal( 168 | v8::internal::Handle obj); 169 | static inline Local ToLocal( 170 | v8::internal::Handle obj); 171 | static inline Local ToLocal( 172 | v8::internal::Handle obj); 173 | static inline Local ToLocalUint8Array( 174 | v8::internal::Handle obj); 175 | static inline Local ToLocalUint8ClampedArray( 176 | v8::internal::Handle obj); 177 | static inline Local ToLocalInt8Array( 178 | v8::internal::Handle obj); 179 | static inline Local ToLocalUint16Array( 180 | v8::internal::Handle obj); 181 | static inline Local ToLocalInt16Array( 182 | v8::internal::Handle obj); 183 | static inline Local ToLocalUint32Array( 184 | v8::internal::Handle obj); 185 | static inline Local ToLocalInt32Array( 186 | v8::internal::Handle obj); 187 | static inline Local ToLocalFloat32Array( 188 | v8::internal::Handle obj); 189 | static inline Local ToLocalFloat64Array( 190 | v8::internal::Handle obj); 191 | static inline Local ToLocalBigInt64Array( 192 | v8::internal::Handle obj); 193 | static inline Local ToLocalBigUint64Array( 194 | v8::internal::Handle obj); 195 | 196 | static inline Local ToLocalShared( 197 | v8::internal::Handle obj); 198 | 199 | static inline Local MessageToLocal( 200 | v8::internal::Handle obj); 201 | static inline Local PromiseToLocal( 202 | v8::internal::Handle obj); 203 | static inline Local StackTraceToLocal( 204 | v8::internal::Handle obj); 205 | static inline Local StackFrameToLocal( 206 | v8::internal::Handle obj); 207 | static inline Local NumberToLocal( 208 | v8::internal::Handle obj); 209 | static inline Local IntegerToLocal( 210 | v8::internal::Handle obj); 211 | static inline Local Uint32ToLocal( 212 | v8::internal::Handle obj); 213 | static inline Local ToLocal( 214 | v8::internal::Handle obj); 215 | static inline Local ToLocal( 216 | v8::internal::Handle obj); 217 | static inline Local ToLocal( 218 | v8::internal::Handle obj); 219 | static inline Local SignatureToLocal( 220 | v8::internal::Handle obj); 221 | static inline Local AccessorSignatureToLocal( 222 | v8::internal::Handle obj); 223 | static inline Local ExternalToLocal( 224 | v8::internal::Handle obj); 225 | static inline Local CallableToLocal( 226 | v8::internal::Handle obj); 227 | static inline Local ToLocalPrimitive( 228 | v8::internal::Handle obj); 229 | static inline Local ToLocal( 230 | v8::internal::Handle obj); 231 | static inline Local ScriptOrModuleToLocal( 232 | v8::internal::Handle obj); 233 | 234 | #define DECLARE_OPEN_HANDLE(From, To) \ 235 | static inline v8::internal::Handle \ 236 | OpenHandle(const From* that, bool allow_empty_handle = false); 237 | 238 | OPEN_HANDLE_LIST(DECLARE_OPEN_HANDLE) 239 | 240 | #undef DECLARE_OPEN_HANDLE 241 | 242 | template 243 | static inline Local Convert(v8::internal::Handle obj); 244 | 245 | template 246 | static inline v8::internal::Handle OpenPersistent( 247 | const v8::Persistent& persistent) { 248 | return v8::internal::Handle( 249 | reinterpret_cast(persistent.val_)); 250 | } 251 | 252 | template 253 | static inline v8::internal::Handle OpenPersistent( 254 | v8::Persistent* persistent) { 255 | return OpenPersistent(*persistent); 256 | } 257 | 258 | template 259 | static inline v8::internal::Handle OpenHandle(v8::Local handle) { 260 | return OpenHandle(*handle); 261 | } 262 | 263 | private: 264 | static void ReportApiFailure(const char* location, const char* message); 265 | }; 266 | 267 | 268 | template 269 | inline T* ToApi(v8::internal::Handle obj) { 270 | return reinterpret_cast(obj.location()); 271 | } 272 | 273 | template 274 | inline v8::Local ToApiHandle( 275 | v8::internal::Handle obj) { 276 | return Utils::Convert(obj); 277 | } 278 | 279 | 280 | template 281 | inline bool ToLocal(v8::internal::MaybeHandle maybe, 282 | Local* local) { 283 | v8::internal::Handle handle; 284 | if (maybe.ToHandle(&handle)) { 285 | *local = Utils::Convert(handle); 286 | return true; 287 | } 288 | return false; 289 | } 290 | 291 | namespace internal { 292 | 293 | class V8_EXPORT_PRIVATE DeferredHandles { 294 | public: 295 | ~DeferredHandles(); 296 | 297 | private: 298 | DeferredHandles(Object** first_block_limit, Isolate* isolate) 299 | : next_(nullptr), 300 | previous_(nullptr), 301 | first_block_limit_(first_block_limit), 302 | isolate_(isolate) { 303 | isolate->LinkDeferredHandles(this); 304 | } 305 | 306 | void Iterate(RootVisitor* v); 307 | 308 | std::vector blocks_; 309 | DeferredHandles* next_; 310 | DeferredHandles* previous_; 311 | Object** first_block_limit_; 312 | Isolate* isolate_; 313 | 314 | friend class HandleScopeImplementer; 315 | friend class Isolate; 316 | }; 317 | 318 | 319 | // This class is here in order to be able to declare it a friend of 320 | // HandleScope. Moving these methods to be members of HandleScope would be 321 | // neat in some ways, but it would expose internal implementation details in 322 | // our public header file, which is undesirable. 323 | // 324 | // An isolate has a single instance of this class to hold the current thread's 325 | // data. In multithreaded V8 programs this data is copied in and out of storage 326 | // so that the currently executing thread always has its own copy of this 327 | // data. 328 | class HandleScopeImplementer { 329 | public: 330 | explicit HandleScopeImplementer(Isolate* isolate) 331 | : isolate_(isolate), 332 | microtask_context_(nullptr), 333 | spare_(nullptr), 334 | call_depth_(0), 335 | microtasks_depth_(0), 336 | microtasks_suppressions_(0), 337 | entered_contexts_count_(0), 338 | entered_context_count_during_microtasks_(0), 339 | #ifdef DEBUG 340 | debug_microtasks_depth_(0), 341 | #endif 342 | microtasks_policy_(v8::MicrotasksPolicy::kAuto), 343 | last_handle_before_deferred_block_(nullptr) { 344 | } 345 | 346 | ~HandleScopeImplementer() { 347 | DeleteArray(spare_); 348 | } 349 | 350 | // Threading support for handle data. 351 | static int ArchiveSpacePerThread(); 352 | char* RestoreThread(char* from); 353 | char* ArchiveThread(char* to); 354 | void FreeThreadResources(); 355 | 356 | // Garbage collection support. 357 | void Iterate(v8::internal::RootVisitor* v); 358 | static char* Iterate(v8::internal::RootVisitor* v, char* data); 359 | 360 | inline internal::Object** GetSpareOrNewBlock(); 361 | inline void DeleteExtensions(internal::Object** prev_limit); 362 | 363 | // Call depth represents nested v8 api calls. 364 | inline void IncrementCallDepth() {call_depth_++;} 365 | inline void DecrementCallDepth() {call_depth_--;} 366 | inline bool CallDepthIsZero() { return call_depth_ == 0; } 367 | 368 | // Microtasks scope depth represents nested scopes controlling microtasks 369 | // invocation, which happens when depth reaches zero. 370 | inline void IncrementMicrotasksScopeDepth() {microtasks_depth_++;} 371 | inline void DecrementMicrotasksScopeDepth() {microtasks_depth_--;} 372 | inline int GetMicrotasksScopeDepth() { return microtasks_depth_; } 373 | 374 | // Possibly nested microtasks suppression scopes prevent microtasks 375 | // from running. 376 | inline void IncrementMicrotasksSuppressions() {microtasks_suppressions_++;} 377 | inline void DecrementMicrotasksSuppressions() {microtasks_suppressions_--;} 378 | inline bool HasMicrotasksSuppressions() { return !!microtasks_suppressions_; } 379 | 380 | #ifdef DEBUG 381 | // In debug we check that calls not intended to invoke microtasks are 382 | // still correctly wrapped with microtask scopes. 383 | inline void IncrementDebugMicrotasksScopeDepth() {debug_microtasks_depth_++;} 384 | inline void DecrementDebugMicrotasksScopeDepth() {debug_microtasks_depth_--;} 385 | inline bool DebugMicrotasksScopeDepthIsZero() { 386 | return debug_microtasks_depth_ == 0; 387 | } 388 | #endif 389 | 390 | inline void set_microtasks_policy(v8::MicrotasksPolicy policy); 391 | inline v8::MicrotasksPolicy microtasks_policy() const; 392 | 393 | inline void EnterContext(Handle context); 394 | inline void LeaveContext(); 395 | inline bool LastEnteredContextWas(Handle context); 396 | 397 | // Returns the last entered context or an empty handle if no 398 | // contexts have been entered. 399 | inline Handle LastEnteredContext(); 400 | 401 | inline void EnterMicrotaskContext(Handle context); 402 | inline void LeaveMicrotaskContext(); 403 | inline Handle MicrotaskContext(); 404 | inline bool MicrotaskContextIsLastEnteredContext() const { 405 | return microtask_context_ && 406 | entered_context_count_during_microtasks_ == entered_contexts_.size(); 407 | } 408 | 409 | inline void SaveContext(Context* context); 410 | inline Context* RestoreContext(); 411 | inline bool HasSavedContexts(); 412 | 413 | inline DetachableVector* blocks() { return &blocks_; } 414 | Isolate* isolate() const { return isolate_; } 415 | 416 | void ReturnBlock(Object** block) { 417 | DCHECK_NOT_NULL(block); 418 | if (spare_ != nullptr) DeleteArray(spare_); 419 | spare_ = block; 420 | } 421 | 422 | private: 423 | void ResetAfterArchive() { 424 | blocks_.detach(); 425 | entered_contexts_.detach(); 426 | saved_contexts_.detach(); 427 | microtask_context_ = nullptr; 428 | entered_context_count_during_microtasks_ = 0; 429 | spare_ = nullptr; 430 | last_handle_before_deferred_block_ = nullptr; 431 | call_depth_ = 0; 432 | } 433 | 434 | void Free() { 435 | DCHECK(blocks_.empty()); 436 | DCHECK(entered_contexts_.empty()); 437 | DCHECK(saved_contexts_.empty()); 438 | DCHECK(!microtask_context_); 439 | 440 | blocks_.free(); 441 | entered_contexts_.free(); 442 | saved_contexts_.free(); 443 | if (spare_ != nullptr) { 444 | DeleteArray(spare_); 445 | spare_ = nullptr; 446 | } 447 | DCHECK_EQ(call_depth_, 0); 448 | } 449 | 450 | void BeginDeferredScope(); 451 | DeferredHandles* Detach(Object** prev_limit); 452 | 453 | Isolate* isolate_; 454 | DetachableVector blocks_; 455 | // Used as a stack to keep track of entered contexts. 456 | DetachableVector entered_contexts_; 457 | // Used as a stack to keep track of saved contexts. 458 | DetachableVector saved_contexts_; 459 | Context* microtask_context_; 460 | Object** spare_; 461 | int call_depth_; 462 | int microtasks_depth_; 463 | int microtasks_suppressions_; 464 | size_t entered_contexts_count_; 465 | size_t entered_context_count_during_microtasks_; 466 | #ifdef DEBUG 467 | int debug_microtasks_depth_; 468 | #endif 469 | v8::MicrotasksPolicy microtasks_policy_; 470 | Object** last_handle_before_deferred_block_; 471 | // This is only used for threading support. 472 | HandleScopeData handle_scope_data_; 473 | 474 | void IterateThis(RootVisitor* v); 475 | char* RestoreThreadHelper(char* from); 476 | char* ArchiveThreadHelper(char* to); 477 | 478 | friend class DeferredHandles; 479 | friend class DeferredHandleScope; 480 | friend class HandleScopeImplementerOffsets; 481 | 482 | DISALLOW_COPY_AND_ASSIGN(HandleScopeImplementer); 483 | }; 484 | 485 | class HandleScopeImplementerOffsets { 486 | public: 487 | enum Offsets { 488 | kMicrotaskContext = offsetof(HandleScopeImplementer, microtask_context_), 489 | kEnteredContexts = offsetof(HandleScopeImplementer, entered_contexts_), 490 | kEnteredContextsCount = 491 | offsetof(HandleScopeImplementer, entered_contexts_count_), 492 | kEnteredContextCountDuringMicrotasks = offsetof( 493 | HandleScopeImplementer, entered_context_count_during_microtasks_) 494 | }; 495 | 496 | private: 497 | DISALLOW_IMPLICIT_CONSTRUCTORS(HandleScopeImplementerOffsets); 498 | }; 499 | 500 | const int kHandleBlockSize = v8::internal::KB - 2; // fit in one page 501 | 502 | 503 | void HandleScopeImplementer::set_microtasks_policy( 504 | v8::MicrotasksPolicy policy) { 505 | microtasks_policy_ = policy; 506 | } 507 | 508 | 509 | v8::MicrotasksPolicy HandleScopeImplementer::microtasks_policy() const { 510 | return microtasks_policy_; 511 | } 512 | 513 | 514 | void HandleScopeImplementer::SaveContext(Context* context) { 515 | saved_contexts_.push_back(context); 516 | } 517 | 518 | 519 | Context* HandleScopeImplementer::RestoreContext() { 520 | Context* last_context = saved_contexts_.back(); 521 | saved_contexts_.pop_back(); 522 | return last_context; 523 | } 524 | 525 | 526 | bool HandleScopeImplementer::HasSavedContexts() { 527 | return !saved_contexts_.empty(); 528 | } 529 | 530 | 531 | void HandleScopeImplementer::EnterContext(Handle context) { 532 | entered_contexts_.push_back(*context); 533 | entered_contexts_count_ = entered_contexts_.size(); 534 | } 535 | 536 | void HandleScopeImplementer::LeaveContext() { 537 | entered_contexts_.pop_back(); 538 | entered_contexts_count_ = entered_contexts_.size(); 539 | } 540 | 541 | bool HandleScopeImplementer::LastEnteredContextWas(Handle context) { 542 | return !entered_contexts_.empty() && entered_contexts_.back() == *context; 543 | } 544 | 545 | void HandleScopeImplementer::EnterMicrotaskContext(Handle context) { 546 | DCHECK(!microtask_context_); 547 | microtask_context_ = *context; 548 | entered_context_count_during_microtasks_ = entered_contexts_.size(); 549 | } 550 | 551 | void HandleScopeImplementer::LeaveMicrotaskContext() { 552 | microtask_context_ = nullptr; 553 | entered_context_count_during_microtasks_ = 0; 554 | } 555 | 556 | // If there's a spare block, use it for growing the current scope. 557 | internal::Object** HandleScopeImplementer::GetSpareOrNewBlock() { 558 | internal::Object** block = 559 | (spare_ != nullptr) ? spare_ 560 | : NewArray(kHandleBlockSize); 561 | spare_ = nullptr; 562 | return block; 563 | } 564 | 565 | 566 | void HandleScopeImplementer::DeleteExtensions(internal::Object** prev_limit) { 567 | while (!blocks_.empty()) { 568 | internal::Object** block_start = blocks_.back(); 569 | internal::Object** block_limit = block_start + kHandleBlockSize; 570 | 571 | // SealHandleScope may make the prev_limit to point inside the block. 572 | if (block_start <= prev_limit && prev_limit <= block_limit) { 573 | #ifdef ENABLE_HANDLE_ZAPPING 574 | internal::HandleScope::ZapRange(prev_limit, block_limit); 575 | #endif 576 | break; 577 | } 578 | 579 | blocks_.pop_back(); 580 | #ifdef ENABLE_HANDLE_ZAPPING 581 | internal::HandleScope::ZapRange(block_start, block_limit); 582 | #endif 583 | if (spare_ != nullptr) { 584 | DeleteArray(spare_); 585 | } 586 | spare_ = block_start; 587 | } 588 | DCHECK((blocks_.empty() && prev_limit == nullptr) || 589 | (!blocks_.empty() && prev_limit != nullptr)); 590 | } 591 | 592 | // Interceptor functions called from generated inline caches to notify 593 | // CPU profiler that external callbacks are invoked. 594 | void InvokeAccessorGetterCallback( 595 | v8::Local property, 596 | const v8::PropertyCallbackInfo& info, 597 | v8::AccessorNameGetterCallback getter); 598 | 599 | void InvokeFunctionCallback(const v8::FunctionCallbackInfo& info, 600 | v8::FunctionCallback callback); 601 | 602 | class Testing { 603 | public: 604 | static v8::Testing::StressType stress_type() { return stress_type_; } 605 | static void set_stress_type(v8::Testing::StressType stress_type) { 606 | stress_type_ = stress_type; 607 | } 608 | 609 | private: 610 | static v8::Testing::StressType stress_type_; 611 | }; 612 | 613 | } // namespace internal 614 | } // namespace v8 615 | 616 | #endif // V8_API_H_ 617 | -------------------------------------------------------------------------------- /demo/csharp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace NightOwl.demo 8 | { 9 | public class CSharp 10 | { 11 | private readonly string _testField; 12 | 13 | public string TestProperty { get; set; } 14 | 15 | #region RegionTest 16 | public string Getter => TestProperty; 17 | 18 | public CSharp(string testField) 19 | { 20 | _testField = testField; 21 | string text = $"{TestProperty} this is a text string"; 22 | int number = 1; 23 | } 24 | 25 | #endregion 26 | 27 | /// 28 | /// Hello this is an xml comment 29 | /// 30 | /// param comment 31 | /// 32 | public async Task TestMethod(string testParam) 33 | { 34 | for(var i = 0; i <= 5; i++) 35 | { 36 | testParam.Trim(); 37 | _testField?.Trim(); 38 | 39 | var enumVal = (int)TestEnum.TestValue; 40 | 41 | 42 | // Hello this is a normal comment 43 | new List().Where(c => c == "Test"); 44 | } 45 | 46 | return await Task.FromResult(testParam); 47 | } 48 | } 49 | 50 | public enum TestEnum 51 | { 52 | TestValue 53 | } 54 | } -------------------------------------------------------------------------------- /demo/css.css: -------------------------------------------------------------------------------- 1 | .someClass { 2 | font-family: serif; 3 | } 4 | 5 | #someID { 6 | background: yellow; 7 | } 8 | 9 | main { 10 | margin-top: 20px; 11 | } 12 | -------------------------------------------------------------------------------- /demo/elm.elm: -------------------------------------------------------------------------------- 1 | main : Program Never Model Msg 2 | main = 3 | program 4 | { init = init 5 | , view = view 6 | , update = update 7 | , subscriptions = subscriptions 8 | } -------------------------------------------------------------------------------- /demo/flutter.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart' as material; 2 | 3 | void main(){ 4 | runApp( 5 | new MaterialApp( 6 | home: new MyButton(), 7 | ) 8 | ); 9 | } 10 | 11 | class MyButton extends StatefulWidget{ 12 | @override 13 | MyButtonState createState() => new MyButtonState(); 14 | } 15 | 16 | class MyButtonState extends State{ 17 | String flutterText = ""; 18 | List collection = ['Flutter', 'is', 'great']; 19 | int index = 0; 20 | 21 | void changeText(){ 22 | setState( 23 | () { 24 | flutterText = collection[index]; 25 | index++; 26 | index = index % 3; 27 | } 28 | ); 29 | } 30 | 31 | @override 32 | Widget build(BuildContext context){ 33 | return new Scaffold( 34 | appBar: new AppBar( 35 | title: new Text("Stateful Widget"), 36 | backgroundColor: Colors.orangeAccent, 37 | ), 38 | body: Center( 39 | child: new Column( 40 | mainAxisAlignment: MainAxisAlignment.center, 41 | children: [ 42 | new Text( 43 | flutterText, 44 | style: new TextStyle(fontSize: 40.0) 45 | ), 46 | new Padding( 47 | padding: new EdgeInsets.all(10.0) 48 | ), 49 | new RaisedButton( 50 | child: new Text( 51 | "Update", 52 | style: new TextStyle(color: Colors.white) 53 | ), 54 | color: Colors.blueAccent, 55 | onPressed: changeText, 56 | ) 57 | ], 58 | ) 59 | ) 60 | ); 61 | } 62 | } -------------------------------------------------------------------------------- /demo/html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 |
Tacos Tacos
13 | 14 |

Tacos tacos tacos

15 | 16 | 17 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /demo/issue-91.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import calculate from '../logic/calculate' 3 | import './App.css' 4 | import ButtonPanel from './ButtonPanel' 5 | import Display from './Display' 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null 12 | } 13 | } 14 | 15 | handleClick = buttonName => { 16 | this.setState(calculate(this.state, buttonName)) 17 | } 18 | 19 | render() { 20 | return ( 21 |
22 | Tacos 23 | 24 | 25 |
26 | ) 27 | } 28 | } 29 | export default App 30 | -------------------------------------------------------------------------------- /demo/issue-91.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import calculate from '../logic/calculate' 3 | import './App.css' 4 | import ButtonPanel from './ButtonPanel' 5 | import Display from './Display' 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null 12 | } 13 | } 14 | 15 | handleClick = buttonName => { 16 | this.setState(calculate(this.state, buttonName)) 17 | } 18 | 19 | render() { 20 | return ( 21 |
22 | Tacos 23 | 24 | 25 |
26 | ) 27 | } 28 | } 29 | export default App 30 | -------------------------------------------------------------------------------- /demo/js.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | class Sale { 3 | constructor(price) { 4 | ;[this.decoratorsList, this.price] = [[], price] 5 | } 6 | 7 | decorate(decorator) { 8 | if (!Sale[decorator]) throw new Error(`decorator not exist: ${decorator}`) 9 | this.decoratorsList.push(Sale[decorator]) 10 | } 11 | 12 | getPrice() { 13 | for (let decorator of this.decoratorsList) { 14 | this.price = decorator(this.price) 15 | } 16 | return this.price.toFixed(2) 17 | } 18 | 19 | static quebec(price) { 20 | // this is a comment 21 | return price + price * 7.5 / 100 22 | } 23 | 24 | static fedtax(price) { 25 | return price + price * 5 / 100 26 | } 27 | } 28 | 29 | let sale = new Sale(100) 30 | sale.decorate('fedtax') 31 | sale.decorate('quebec') 32 | console.log(sale.getPrice()) //112.88 33 | 34 | getPrice() 35 | 36 | //deeply nested 37 | 38 | async function asyncCall() { 39 | var result = await resolveAfter2Seconds(); 40 | } 41 | 42 | const options = { 43 | connections: { 44 | compression: false 45 | } 46 | } 47 | 48 | for (let i = 0; i < 10; i++) { 49 | continue; 50 | } 51 | 52 | if (true) { } 53 | 54 | while (true) { } 55 | 56 | switch (2) { 57 | case 2: 58 | break; 59 | default: 60 | break; 61 | } 62 | 63 | class EditFishForm extends Component { 64 | static propTypes = { 65 | updateFish: PropTypes.func, 66 | deleteFish: PropTypes.func, 67 | index: PropTypes.string, 68 | fish: PropTypes.shape({ 69 | image: PropTypes.string, 70 | name: PropTypes.string.isRequired 71 | }) 72 | } 73 | } -------------------------------------------------------------------------------- /demo/json.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "es6": true, 4 | "mocha": true, 5 | "node": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "rules": { 9 | "indent": ["error", 2], 10 | "linebreak-style": ["error", "unix"], 11 | "quotes": ["error", "single"], 12 | "semi": ["error", "always"] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /demo/markdown.md: -------------------------------------------------------------------------------- 1 | # Night Owl Theme 2 | 3 | > Night Owl theme for VS Code. 4 | 5 | ![Preview](images/preview.gif) 6 | 7 | # Installation 8 | 9 | 1. Install [Visual Studio Code](https://code.visualstudio.com/) 10 | 2. Launch Visual Studio Code 11 | 3. Choose **Extensions** from menu 12 | 4. Search for `night-owl` 13 | 5. Click **Install** to install it 14 | 6. Click **Reload** to reload the Code 15 | 7. File > Preferences > Color Theme > **Night Owl** 16 | 17 | - [ ] check check 12 12 18 | - [ ] check check 12 12 19 | 20 | # Heading 1 21 | 22 | ## Heading 2 23 | 24 | ### Heading 3 25 | 26 |
27 | Example image 28 |
29 | -------------------------------------------------------------------------------- /demo/newfile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/vscode-theme/6ebc6c0280f04459b5a5fd1eff808aedd394549c/demo/newfile.js -------------------------------------------------------------------------------- /demo/php.php: -------------------------------------------------------------------------------- 1 | pdo = new PDO($GLOBALS['db_dsn'], $GLOBALS['db_username'], $GLOBALS['db_password']); 11 | $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 | $this->pdo->query("CREATE TABLE hello (what VARCHAR(50) NOT NULL)"); 13 | } 14 | public function tearDown() 15 | { 16 | $this->pdo->query("DROP TABLE hello"); 17 | } 18 | public function testHelloWorld() 19 | { 20 | $helloWorld = new HelloWorld($this->pdo); 21 | $this->assertEquals('Hello World', $helloWorld->hello()); 22 | } 23 | public function testHello() 24 | { 25 | $helloWorld = new HelloWorld($this->pdo); 26 | $this->assertEquals('Hello Bar', $helloWorld->hello('Bar')); 27 | } 28 | public function testWhat() 29 | { 30 | $helloWorld = new HelloWorld($this->pdo); 31 | $this->assertFalse($helloWorld->what()); 32 | $helloWorld->hello('Bar'); 33 | $this->assertEquals('Bar', $helloWorld->what()); 34 | } 35 | } 36 | ?> -------------------------------------------------------------------------------- /demo/powershell.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Provisions a example powershell function 4 | .EXAMPLE 5 | PS C:\> .\powershell.ps1 -Argument1 "hola soy un texto" 6 | #> 7 | [CmdletBinding()] 8 | param( 9 | [Parameter(Mandatory = $true, HelpMessage = "This argument is required")] 10 | [String] 11 | $textParameter 12 | ) 13 | 14 | try { 15 | #almost every function is called like this: 16 | Write-Host "Initializing example function" 17 | Write-Host "The parameter is " $textParameter -ForegroundColor Red 18 | 19 | #this are variables 20 | $customArray = @( 21 | @{ 22 | Id = 1; 23 | Value = "I'm an option"; 24 | }, 25 | @{ 26 | Id = 2; 27 | Value = "Option No. 2"; 28 | } 29 | ) 30 | 31 | foreach ($option in $customArray) { 32 | Write-Host "Iterating options:" $option.Value 33 | } 34 | 35 | $collectionWithItems = New-Object System.Collections.ArrayList 36 | $temp = New-Object System.Object 37 | $temp | Add-Member -MemberType NoteProperty -Name "Title" -Value "Custom Object Title 1" 38 | $temp | Add-Member -MemberType NoteProperty -Name "Subject" -Value "Delegación del plan de acción [Folio_PlandeAccion]" 39 | $temp | Add-Member -MemberType NoteProperty -Name "Body" -Value "
This s a note example, with lots of text
40 |

 
41 |
It happens to be in html format, but is just text the property couldnt't know
42 |

 
43 |
It's up for the one who uses me to render me correctly. Or not.
" 44 | $collectionWithItems.Add($temp) | Out-Null 45 | Write-Host "My collection has" $collectionWithItems.Count "item(s)" -ForegroundColor Green 46 | 47 | #Calling some other scripts. Sometimes its nice to have a "master" script and call subscripts with other functions / actions 48 | .\otherscript.ps1 "Parameter ?" 49 | .\thisonewithoutparams.ps1 50 | 51 | #little bit of SharePoint *the original issue* :D 52 | $web = Get-SPWeb http://mysharepointsite 53 | $list = $web.Lists["ListName"] 54 | $query = New-Object Microsoft.SharePoint.SPQuery 55 | $query.Query= "CAMLQuery here" 56 | $query.ViewFields= "" 57 | $query.ViewFieldsOnly= $true 58 | $listitems = $list.GetItems($query); 59 | foreach($item in $listitems) { 60 | if($item -ne $null) { 61 | Write-Host "There is an elmeent in the list, id" $item.ID 62 | } 63 | } 64 | } 65 | catch { 66 | Write-Host -ForegroundColor Red "Exception Type: $($_.Exception.GetType().FullName)" 67 | Write-Host -ForegroundColor Red "Exception Message: $($_.Exception.Message)" 68 | } 69 | -------------------------------------------------------------------------------- /demo/pug.pug: -------------------------------------------------------------------------------- 1 | 2 | html(lang="en") 3 | 4 | head 5 | meta(charset="UTF-8") 6 | meta(name="viewport", content="width=device-width, initial-scale=1.0") 7 | meta(http-equiv="X-UA-Compatible", content="ie=edge") 8 | title Document 9 | 10 | body 11 | h1 Pug 12 | -------------------------------------------------------------------------------- /demo/python.py: -------------------------------------------------------------------------------- 1 | from collections import deque 2 | 3 | 4 | def topo(G, ind=None, Q=[1]): 5 | if ind == None: 6 | ind = [0] * (len(G) + 1) # this is a comment 7 | for u in G: 8 | for v in G[u]: 9 | ind[v] += 1 10 | Q = deque() 11 | for i in G: 12 | if ind[i] == 0: 13 | Q.append(i) 14 | if len(Q) == 0: 15 | return 16 | v = Q.popleft() 17 | print(v) 18 | for w in G[v]: 19 | ind[w] -= 1 20 | if ind[w] == 0: 21 | Q.append(w) 22 | topo(G, ind, Q) 23 | 24 | 25 | class SomeClass: 26 | def create_arr(self): # An instance method 27 | self.arr = [] 28 | 29 | def insert_to_arr(self, value): #An instance method 30 | self.arr.append(value) 31 | 32 | @classmethod 33 | def class_method(cls): 34 | print("the class method was called") 35 | -------------------------------------------------------------------------------- /demo/react.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import calculate from '../logic/calculate'; 3 | import './App.css'; 4 | import ButtonPanel from './ButtonPanel'; 5 | import Display from './Display'; 6 | 7 | class App extends React.Component { 8 | constructor(props) { 9 | super(props) 10 | this.state = { 11 | total: null, 12 | next: null, 13 | operation: null 14 | } 15 | } 16 | 17 | handleClick = buttonName => { 18 | this.setState(calculate(this.state, buttonName)) 19 | } 20 | 21 | render() { 22 | return ( 23 |
24 | Tacos 25 | 26 | 27 |
28 | ) 29 | } 30 | } 31 | export default App 32 | -------------------------------------------------------------------------------- /demo/reacthook.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | 3 | function Example() { 4 | const [count, setCount] = useState(0); 5 | 6 | // Similar to componentDidMount and componentDidUpdate: 7 | useEffect(() => { 8 | // Update the document title using the browser API 9 | document.title = `You clicked ${count} times`; 10 | }); 11 | 12 | return ( 13 |
14 |

You clicked {count} times

15 | 18 |
19 | ); 20 | } -------------------------------------------------------------------------------- /demo/ruby.rb: -------------------------------------------------------------------------------- 1 | module ExampleModule 2 | class ExampleClass::ScopeResolution < NewScope::Operator 3 | include Another::Scoped::Module 4 | 5 | def initialize(options) 6 | @@class_var = options[:class] 7 | @instance_var = options[:instance] 8 | 9 | config.data = [] 10 | config.actions = [] 11 | 12 | new.run 13 | end 14 | 15 | def method_examples 16 | method_with_args(:arg) 17 | method_no_args 18 | # method defined on base ruby object 19 | method(:array_access) 20 | end 21 | 22 | def array_access 23 | array = ([1, 2] << 3).uniq 24 | array[1] 25 | array[dynamic_key] 26 | end 27 | 28 | def blocks 29 | yield if block_given? 30 | [1].each do |num| 31 | do_something 32 | end 33 | 34 | [2].each { |num| do_something } 35 | lambda { do_something } 36 | ->(arg1) { do_something} 37 | Proc.new { |arg| do_something } 38 | end 39 | 40 | def hash_access 41 | symbol_hash = { 42 | key1: 'info', 43 | key2: 'info', 44 | }.compact 45 | 46 | string_hash = { 47 | method_key => 'info', 48 | 'key2' => 'info', 49 | } 50 | 51 | symbol_hash[:key1] 52 | string_hash['key2'] 53 | end 54 | 55 | def output 56 | puts 'Output here' 57 | pp 'Output here' 58 | end 59 | 60 | def self.class_method 61 | return "I am a class method!" 62 | end 63 | 64 | class << self 65 | def another_private_method(arg1, default_arg = {}, **args, &block); end 66 | end 67 | 68 | private 69 | 70 | def other_method(*args) 71 | puts "doing other stuff #{42}" 72 | end 73 | 74 | def self.private 75 | [1, 2, 3].each do |item| 76 | puts item 77 | end 78 | end 79 | 80 | private_class_method :private 81 | 82 | private 83 | 84 | def user_params 85 | params.require(:user).permit(:username, :email, :password) 86 | params.pluck(:user) 87 | end 88 | end 89 | end 90 | 91 | ExampleModule::ExampleClass::ScopeResolution 92 | example_instance = ExampleModule::ExampleClass::ScopeResolution.new(:arg) 93 | 94 | example_instance.method(:arg) do 95 | puts 'yielding in block!' 96 | end -------------------------------------------------------------------------------- /demo/statelessfunctionalreact.js: -------------------------------------------------------------------------------- 1 | // I use this syntax when my component fits on one line 2 | const ListItem = props =>
  • {props.item.name}
  • 3 | 4 | // I use this when my component has no logic outside JSX 5 | const List = ({ items }) => ( 6 |
      {items.map(item => )}
    7 | ) 8 | 9 | // I use this when the component needs logic outside JSX. 10 | const Body = props => { 11 | let items = transformItems(props.rawItems) 12 | return ( 13 |
    14 |

    {props.header}

    15 | 16 |
    17 | ) 18 | } 19 | 20 | const Foo = () =>
    21 |
    22 |
    23 | 24 | // This is equivalent to the last example 25 | function Page(props, context) { 26 | return ( 27 |
    28 | 29 |
    30 | ) 31 | } 32 | // propTypes and contextTypes are supported 33 | Page.propTypes = { 34 | rawItems: React.PropTypes.array.isRequired 35 | } 36 | -------------------------------------------------------------------------------- /demo/stylus.styl: -------------------------------------------------------------------------------- 1 | .someClass { 2 | font-family: serif; 3 | } 4 | 5 | #someID { 6 | background: yellow; 7 | } 8 | 9 | main { 10 | margin-top: 20px; 11 | } 12 | 13 | .someotherclass { 14 | padding: 20px; 15 | box-shadow: 0 0 0 2px inset; 16 | } 17 | -------------------------------------------------------------------------------- /demo/tsx.tsx: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, OnDestroy } from '@angular/core' 2 | import { Person, SearchService } from '../shared' 3 | import { ActivatedRoute } from '@angular/router' 4 | import { Subscription } from 'rxjs' 5 | 6 | @Component({ 7 | selector: 'app-search', 8 | templateUrl: './search.component.html', 9 | styleUrls: ['./search.component.css'] 10 | }) 11 | export class SearchComponent implements OnInit, OnDestroy { 12 | query: string 13 | searchResults: Array 14 | sub: Subscription 15 | 16 | constructor( 17 | private searchService: SearchService, 18 | private route: ActivatedRoute 19 | ) {} 20 | 21 | ngOnInit() { 22 | this.sub = this.route.params.subscribe(params => { 23 | if (params['term']) { 24 | this.query = decodeURIComponent(params['term']) 25 | this.search() 26 | } 27 | }) 28 | } 29 | 30 | search(): void { 31 | this.searchService.search(this.query).subscribe( 32 | (data: any) => { 33 | this.searchResults = data 34 | }, 35 | error => console.log(error) 36 | ) 37 | } 38 | 39 | ngOnDestroy() { 40 | if (this.sub) { 41 | this.sub.unsubscribe() 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /demo/vuedemo.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 33 | 34 | -------------------------------------------------------------------------------- /demo/yml.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | install: 5 | - npm install 6 | script: 7 | - npm test 8 | after_script: 9 | - npm run coveralls 10 | notifications: 11 | email: 12 | on_success: never 13 | on_failure: always 14 | -------------------------------------------------------------------------------- /media/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/vscode-theme/6ebc6c0280f04459b5a5fd1eff808aedd394549c/media/icon.png -------------------------------------------------------------------------------- /media/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/vscode-theme/6ebc6c0280f04459b5a5fd1eff808aedd394549c/media/preview.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codesandbox-projects-theme", 3 | "displayName": "CodeSandbox Theme", 4 | "description": "A CodeSandbox theme for Visual Studio Code", 5 | "version": "1.1.0", 6 | "publisher": "CodeSandbox-io", 7 | "license": "Apache-2.0", 8 | "scripts": { 9 | "release": "yes | vsce publish $BUMP --no-git-tag-version" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/codesandbox/vscode-theme" 14 | }, 15 | "author": { 16 | "name": "CodeSandbox", 17 | "url": "https://codesandbox.io" 18 | }, 19 | "icon": "media/icon.png", 20 | "categories": [ 21 | "Themes" 22 | ], 23 | "contributes": { 24 | "themes": [ 25 | { 26 | "label": "CodeSandbox", 27 | "uiTheme": "vs-dark", 28 | "path": "./themes/codesandbox-dark.json" 29 | } 30 | ] 31 | }, 32 | "engines": { 33 | "vscode": "^1.45.0" 34 | }, 35 | "keywords": [ 36 | "Theme", 37 | "Dark Theme", 38 | "CodeSandbox", 39 | "Sandbox", 40 | "CSB" 41 | ], 42 | "galleryBanner": { 43 | "color": "#000000", 44 | "theme": "dark" 45 | }, 46 | "devDependencies": { 47 | "vsce": "^2.7.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /release-please-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "bootstrap-sha": "b1e658f71f2065e6b7eb041d9bae5dde94628457", 3 | "release-type": "node", 4 | "packages": { 5 | ".": {} 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sync.sh: -------------------------------------------------------------------------------- 1 | rm -rf ~/.vscode/extensions/codesandbox-theme 2 | cp -r . ~/.vscode/extensions/codesandbox-theme 3 | 4 | echo "Successfully installed the theme locally!" -------------------------------------------------------------------------------- /themes/codesandbox-dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CodeSandbox", 3 | "type": "dark", 4 | "semanticHighlighting": true, 5 | "semanticTokenColors": { 6 | "function.defaultLibrary": "#a390ff", 7 | "class.defaultLibrary": "#a390ff" 8 | }, 9 | "colors": { 10 | "background": "#151515", 11 | "foreground": "#e5e5e5", 12 | "focusBorder": "#AD9CFF", 13 | "selection.background": "#6f6f6f", 14 | "scrollbar.shadow": "#0000007e", 15 | "input.background": "#0F0E0E", 16 | "input.foreground": "#999", 17 | "button.background": "#edffa5", 18 | "button.foreground": "#151515", 19 | "button.hoverBackground": "#dcff50", 20 | "textLink.foreground": "#e5e5e5", 21 | "button.secondaryForeground": "#c5c5c5", 22 | "button.secondaryBacground": "#2a2a2a", 23 | "button.secondaryHoverBackground": "#373737", 24 | 25 | "activityBar.foreground": "#dedede", 26 | "activityBar.background": "#000", 27 | "activityBar.inactiveForeground": "#999", 28 | "activityBarBadge.foreground": "#000", 29 | "activityBarBadge.background": "#edffa5", 30 | "activityBar.border": "#000", 31 | "actibityBar.activeBackground": "#151515", 32 | 33 | "sideBar.background": "#000", 34 | "sideBar.foreground": "#999", 35 | "sideBarSectionHeader.background": "#151515", 36 | "sideBarSectionHeader.border": "#00000000", 37 | "sideBarSectionHeader.foreground": "#e5e5e5", 38 | "sideBarTitle.foreground": "#e5e5e5", 39 | "sideBar.border": "#00000000", 40 | "list.dropBackground": "#151515", 41 | "list.focusForeground": "#808080", 42 | "list.focusBackground": "#e5e5e51a", 43 | "list.highlightForeground": "#e5e5e5", 44 | 45 | "statusBar.background": "#000", 46 | "statusBar.foreground": "#808080", 47 | "statusBar.border": "#00000000", 48 | "statusBar.debuggingBackground": "#563300", 49 | "statusBar.debuggingForeground": "#999", 50 | "statusBar.noFolderBackground": "#5d3fe0", 51 | "statusBar.noFolderForeground": "#e5e5e5", 52 | "statusBarItem.remoteBackground": "#cef144", 53 | "statusBarItem.remoteForeground": "#151515", 54 | 55 | "tab.activeBackground": "#151515", 56 | "tab.activeForeground": "#e5e5e5", 57 | "tab.inactiveBackground": "#000", 58 | "tab.inactiveForeground": "#999", 59 | "tab.hoverBackground": "#E5E5E51A", 60 | "tab.border": "#151515", 61 | 62 | "titleBar.activeBackground": "#000", 63 | "titleBar.activeForeground": "#808080", 64 | "titleBar.border": "#00000000", 65 | "titleBar.inactiveBackground": "#000", 66 | 67 | "menu.foreground": "#e5e5e5", 68 | "menu.background": "#373737", 69 | "menubar.selectionForeground": "#c5c5c5", 70 | "menubar.selectionBackground": "#e5e5e51a", 71 | "menu.selectionForeground": "#e5e5e5", 72 | "menu.selectionBackground": "#e5e5e51a", 73 | "menu.selectionBorder": "#00000000", 74 | "menu.border": "#00000000", 75 | 76 | "editor.background": "#151515", 77 | "editorLineNumber.foreground": "#858585", 78 | "editorLineNumber.activeForeground": "#c6c6c6", 79 | 80 | "breadcrumb.background": "#151515", 81 | "breadcrumb.foreground": "#999", 82 | "breadcrumb.focusForeground": "#e5e5e5", 83 | "editorGroupHeader.border": "#00000000", 84 | "editorGroupHeader.tabsBackground": "#000", 85 | 86 | "scrollbarSlider.background": "#79797966", 87 | "scrollbarSlider.hoverBackground": "#646464b3", 88 | "scrollbarSlider.activeBackground": "#bfbfbf66", 89 | 90 | "widget.shadow": "#0000005c", 91 | "editorWidget.foreground": "#ccc", 92 | "editorWidget.background": "#252526", 93 | "pickerGroup.border": "#3f3f46", 94 | "pickerGroup.foreground": "#3794ff", 95 | "editorWidget.resizeBorder": "#5f5f5f", 96 | "debugToolBar.background": "#333", 97 | "debugToolBar.border": "#474747", 98 | 99 | "errorForeground": "#f48771", 100 | "warningForeground": "#F7CC66", 101 | "editorError.foreground": "#f48771", 102 | "list.errorForeground": "#f48771", 103 | "list.warningForeground": "#F7CC66", 104 | "editorWarning.foreground": "#F7CC66", 105 | 106 | "gitDecoration.deletedResourceForeground": "#C54444", 107 | "gitDecoration.untrackedResourceForeground": "#9FE7A0", 108 | "gitDecoration.conflictingResourceForeground": "#ED6C6C", 109 | "gitDecoration.ignoredResourceForeground": "#585858", 110 | "gitDecoration.modifiedResourceForeground": "#DD763C" 111 | }, 112 | "tokenColors": [ 113 | { 114 | "name": "string", 115 | "scope": ["string"], 116 | "settings": { "foreground": "#BFD084" } 117 | }, 118 | { 119 | "name": "punctuation.definition.string", 120 | "scope": ["punctuation.definition.string"], 121 | "settings": { "foreground": "#BFD084" } 122 | }, 123 | { 124 | "name": "constant.character.escape", 125 | "scope": ["constant.character.escape"], 126 | "settings": { "foreground": "#BFD084" } 127 | }, 128 | { 129 | "name": "text.html constant.character.entity.named", 130 | "scope": ["text.html constant.character.entity.named"], 131 | "settings": { "foreground": "#BFD084" } 132 | }, 133 | { 134 | "name": "text.html.derivative", 135 | "scope": ["text.html.derivative"], 136 | "settings": { "foreground": "#E5E5E5" } 137 | }, 138 | { 139 | "name": "punctuation.definition.entity.html", 140 | "scope": ["punctuation.definition.entity.html"], 141 | "settings": { "foreground": "#BFD084" } 142 | }, 143 | { 144 | "name": "template.expression.begin", 145 | "scope": ["template.expression.begin"], 146 | "settings": { "foreground": "#7AD9FB" } 147 | }, 148 | { 149 | "name": "template.expression.end", 150 | "scope": ["template.expression.end"], 151 | "settings": { "foreground": "#7AD9FB" } 152 | }, 153 | { 154 | "name": "punctuation.definition.template-expression.begin", 155 | "scope": ["punctuation.definition.template-expression.begin"], 156 | "settings": { "foreground": "#7AD9FB" } 157 | }, 158 | { 159 | "name": "punctuation.definition.template-expression.end", 160 | "scope": ["punctuation.definition.template-expression.end"], 161 | "settings": { "foreground": "#7AD9FB" } 162 | }, 163 | { 164 | "name": "constant", 165 | "scope": ["constant"], 166 | "settings": { "foreground": "#7AD9FB" } 167 | }, 168 | { 169 | "name": "keyword", 170 | "scope": ["keyword"], 171 | "settings": { "foreground": "#A390FF" } 172 | }, 173 | { 174 | "name": "modifier", 175 | "scope": ["modifier"], 176 | "settings": { "foreground": "#A390FF" } 177 | }, 178 | { 179 | "name": "storage", 180 | "scope": ["storage"], 181 | "settings": { "foreground": "#A390FF" } 182 | }, 183 | { 184 | "name": "punctuation.definition.block", 185 | "scope": ["punctuation.definition.block"], 186 | "settings": { "foreground": "#86897A" } 187 | }, 188 | { 189 | "name": "punctuation.definition.parameters", 190 | "scope": ["punctuation.definition.parameters"], 191 | "settings": { "foreground": "#86897A" } 192 | }, 193 | { 194 | "name": "meta.brace.round", 195 | "scope": ["meta.brace.round"], 196 | "settings": { "foreground": "#86897A" } 197 | }, 198 | { 199 | "name": "meta.jsx.children", 200 | "scope": ["meta.jsx.children"], 201 | "settings": { "foreground": "#e5e5e5" } 202 | }, 203 | { 204 | "name": "punctuation.accessor", 205 | "scope": ["punctuation.accessor"], 206 | "settings": { "foreground": "#86897A" } 207 | }, 208 | { 209 | "name": "variable.other", 210 | "scope": ["variable.other"], 211 | "settings": { "foreground": "#ffffff" } 212 | }, 213 | { 214 | "name": "variable.parameter", 215 | "scope": ["variable.parameter"], 216 | "settings": { "foreground": "#ffffff" } 217 | }, 218 | { 219 | "name": "meta.embedded", 220 | "scope": ["meta.embedded"], 221 | "settings": { "foreground": "#E5E5E5" } 222 | }, 223 | { 224 | "name": "source.groovy.embedded", 225 | "scope": ["source.groovy.embedded"], 226 | "settings": { "foreground": "#E5E5E5" } 227 | }, 228 | { 229 | "name": "meta.template.expression", 230 | "scope": ["meta.template.expression"], 231 | "settings": { "foreground": "#E5E5E5" } 232 | }, 233 | { 234 | "name": "comment", 235 | "scope": ["comment"], 236 | "settings": { "foreground": "#6f6f6f" } 237 | }, 238 | { 239 | "name": "docblock", 240 | "scope": ["docblock"], 241 | "settings": { "foreground": "#6f6f6f" } 242 | }, 243 | { 244 | "name": "meta.function-call", 245 | "scope": ["meta.function-call"], 246 | "settings": { "foreground": "#CDF861" } 247 | }, 248 | { 249 | "name": "entity.name.type.class", 250 | "scope": ["meta.class entity.name.type.class"], 251 | "settings": { "foreground": "#ffffff", "fontStyle": "underline" } 252 | }, 253 | { 254 | "name": "entity.name.type.module", 255 | "scope": ["meta.class entity.name.type.module"], 256 | "settings": { "foreground": "#CABEFF" } 257 | }, 258 | { 259 | "name": "meta.type.annotation", 260 | "scope": [ 261 | "meta.class meta.type.annotation", 262 | "meta.class support.type.primitive", 263 | "meta.interface support.type.primitive", 264 | "meta.type.annotation support.type.primitive" 265 | ], 266 | "settings": { "foreground": "#A390FF" } 267 | }, 268 | { 269 | "name": "meta.type.annotation entity.name.type", 270 | "scope": ["meta.type.annotation entity.name.type"], 271 | "settings": { "foreground": "#CABEFF" } 272 | }, 273 | { 274 | "name": "variable.object.property", 275 | "scope": ["variable.object.property"], 276 | "settings": { "foreground": "#ffffff" } 277 | }, 278 | { 279 | "name": "entity.name.function", 280 | "scope": ["entity.name.function"], 281 | "settings": { "foreground": "#CDF861" } 282 | }, 283 | { 284 | "name": "meta.definition.variable", 285 | "scope": ["meta.definition.variable"], 286 | "settings": { "foreground": "#ffffff" } 287 | }, 288 | { 289 | "name": "modifier", 290 | "scope": ["modifier"], 291 | "settings": { "foreground": "#A390FF" } 292 | }, 293 | { 294 | "name": "variable.language.this", 295 | "scope": ["variable.language.this"], 296 | "settings": { "foreground": "#A390FF" } 297 | }, 298 | { 299 | "name": "support.type.object", 300 | "scope": ["support.type.object"], 301 | "settings": { "foreground": "#A390FF" } 302 | }, 303 | { 304 | "name": "support.module", 305 | "scope": ["support.module"], 306 | "settings": { "foreground": "#7AD9FB", "fontStyle": "italic" } 307 | }, 308 | { 309 | "name": "support.node", 310 | "scope": ["support.node"], 311 | "settings": { "foreground": "#7AD9FB", "fontStyle": "italic" } 312 | }, 313 | { 314 | "name": "support.type.ts", 315 | "scope": ["support.type.ts"], 316 | "settings": { "foreground": "#7AD9FB" } 317 | }, 318 | { 319 | "name": "entity.other.inherited-class", 320 | "scope": ["entity.other.inherited-class"], 321 | "settings": { "foreground": "#7AD9FB" } 322 | }, 323 | { 324 | "name": "entity.name.type.interface", 325 | "scope": ["meta.interface entity.name.type.interface"], 326 | "settings": { "foreground": "#7AD9FB" } 327 | }, 328 | { 329 | "name": "keyword.operator", 330 | "scope": ["keyword.operator"], 331 | "settings": { "foreground": "#b3e8b4" } 332 | }, 333 | { 334 | "name": "storage.type.function.arrow", 335 | "scope": ["storage.type.function.arrow"], 336 | "settings": { "foreground": "#b3e8b4" } 337 | }, 338 | { 339 | "name": "variable.css", 340 | "scope": ["variable.css"], 341 | "settings": { "foreground": "#7AD9FB" } 342 | }, 343 | { 344 | "name": "source.css", 345 | "scope": ["source.css"], 346 | "settings": { "foreground": "#CDF861" } 347 | }, 348 | { 349 | "name": "entity.other.attribute-name", 350 | "scope": ["entity.other.attribute-name"], 351 | "settings": { "foreground": "#CDF861" } 352 | }, 353 | { 354 | "name": "entity.name.tag.css", 355 | "scope": ["entity.name.tag.css"], 356 | "settings": { "foreground": "#CDF861" } 357 | }, 358 | { 359 | "name": "entity.other.attribute-name.id", 360 | "scope": ["entity.other.attribute-name.id"], 361 | "settings": { "foreground": "#CDF861" } 362 | }, 363 | { 364 | "name": "entity.other.attribute-name.class", 365 | "scope": ["entity.other.attribute-name.class"], 366 | "settings": { "foreground": "#CDF861" } 367 | }, 368 | { 369 | "name": "source.css meta.selector.css", 370 | "scope": ["source.css meta.selector.css"], 371 | "settings": { "foreground": "#CDF861" } 372 | }, 373 | { 374 | "name": "support.type.property-name.css", 375 | "scope": ["support.type.property-name.css"], 376 | "settings": { "foreground": "#ffffff" } 377 | }, 378 | { 379 | "name": "support.function.css", 380 | "scope": ["support.function.css"], 381 | "settings": { "foreground": "#A390FF" } 382 | }, 383 | { 384 | "name": "support.constant.css", 385 | "scope": ["support.constant.css"], 386 | "settings": { "foreground": "#A390FF" } 387 | }, 388 | { 389 | "name": "keyword.css", 390 | "scope": ["keyword.css"], 391 | "settings": { "foreground": "#A390FF" } 392 | }, 393 | { 394 | "name": "constant.numeric.css", 395 | "scope": ["constant.numeric.css"], 396 | "settings": { "foreground": "#A390FF" } 397 | }, 398 | { 399 | "name": "constant.other.color.css", 400 | "scope": ["constant.other.color.css"], 401 | "settings": { "foreground": "#A390FF" } 402 | }, 403 | { 404 | "name": "punctuation.section", 405 | "scope": ["punctuation.section"], 406 | "settings": { "foreground": "#86897A" } 407 | }, 408 | { 409 | "name": "punctuation.separator", 410 | "scope": ["punctuation.separator"], 411 | "settings": { "foreground": "#86897A" } 412 | }, 413 | { 414 | "name": "punctuation.definition.entity.css", 415 | "scope": ["punctuation.definition.entity.css"], 416 | "settings": { "foreground": "#86897A" } 417 | }, 418 | { 419 | "name": "punctuation.terminator.rule.css", 420 | "scope": ["punctuation.terminator.rule.css"], 421 | "settings": { "foreground": "#E5E5E5" } 422 | }, 423 | { 424 | "name": "keyword.other.unit.css", 425 | "scope": ["source.css keyword.other.unit"], 426 | "settings": { "foreground": "#CABEFF" } 427 | }, 428 | { 429 | "name": "string.css", 430 | "scope": ["string.css"], 431 | "settings": { "foreground": "#CABEFF" } 432 | }, 433 | { 434 | "name": "punctuation.definition.string.css", 435 | "scope": ["punctuation.definition.string.css"], 436 | "settings": { "foreground": "#CABEFF" } 437 | }, 438 | { 439 | "name": "support.type.property-name", 440 | "scope": ["support.type.property-name"], 441 | "settings": { "foreground": "#ffffff" } 442 | }, 443 | { 444 | "name": "string.html", 445 | "scope": ["string.html"], 446 | "settings": { "foreground": "#CDF861" } 447 | }, 448 | { 449 | "name": "punctuation.definition.tag", 450 | "scope": ["punctuation.definition.tag"], 451 | "settings": { "foreground": "#86897A" } 452 | }, 453 | { 454 | "name": "entity.other.attribute-name", 455 | "scope": ["entity.other.attribute-name"], 456 | "settings": { "foreground": "#CABEFF" } 457 | }, 458 | { 459 | "name": "entity.name.tag", 460 | "scope": ["entity.name.tag"], 461 | "settings": { "foreground": "#A390FF" } 462 | }, 463 | { 464 | "name": "entity.name.tag.wildcard", 465 | "scope": ["entity.name.tag.wildcard"], 466 | "settings": { "foreground": "#CDF861" } 467 | }, 468 | { 469 | "name": "markup.markdown", 470 | "scope": ["markup.markdown"], 471 | "settings": { "foreground": "#ffffff" } 472 | }, 473 | { 474 | "name": "markup.heading.markdown", 475 | "scope": ["markup.heading.markdown"], 476 | "settings": { "foreground": "#b3e8b4" } 477 | }, 478 | { 479 | "name": "punctuation.definition.bold.markdown", 480 | "scope": ["punctuation.definition.bold.markdown"], 481 | "settings": { "foreground": "#b3e8b4" } 482 | }, 483 | { 484 | "name": "punctuation.definition.link.description", 485 | "scope": [ 486 | "meta.paragraph.markdown punctuation.definition.link.description" 487 | ], 488 | "settings": { "foreground": "#b3e8b4" } 489 | }, 490 | { 491 | "name": "punctuation.definition.raw.markdown", 492 | "scope": ["punctuation.definition.raw.markdown"], 493 | "settings": { "foreground": "#b3e8b4" } 494 | }, 495 | { 496 | "name": "meta.paragraph.markdown", 497 | "scope": ["meta.paragraph.markdown"], 498 | "settings": { "foreground": "#e5e5e5" } 499 | }, 500 | { 501 | "name": "text.html.markdown meta.attribute", 502 | "scope": ["text.html.markdown meta.attribute"], 503 | "settings": { "foreground": "#CABEFF" } 504 | }, 505 | { 506 | "name": "entity.name.section", 507 | "scope": ["entity.name.section"], 508 | "settings": { "foreground": "#ffffff" } 509 | }, 510 | { 511 | "name": "string.other", 512 | "scope": ["string.other"], 513 | "settings": { "foreground": "#ffffff" } 514 | }, 515 | { 516 | "name": "string.other.link", 517 | "scope": ["string.other.link"], 518 | "settings": { "foreground": "#ffffff" } 519 | }, 520 | { 521 | "name": "punctuation.definition.markdown", 522 | "scope": ["punctuation.definition.markdown"], 523 | "settings": { "foreground": "#b3e8b4" } 524 | }, 525 | { 526 | "name": "punctuation.definition.string", 527 | "scope": ["punctuation.definition.string"], 528 | "settings": { "foreground": "#b3e8b4" } 529 | }, 530 | { 531 | "name": "punctuation.definition.string.begin.shell", 532 | "scope": ["punctuation.definition.string.begin.shell"], 533 | "settings": { "foreground": "#b3e8b4" } 534 | }, 535 | { 536 | "name": "markup.underline.link", 537 | "scope": ["markup.underline.link"], 538 | "settings": { "foreground": "#BFD084" } 539 | }, 540 | { 541 | "name": "markup.inline.raw", 542 | "scope": ["markup.inline.raw"], 543 | "settings": { "foreground": "#86897A" } 544 | }, 545 | { 546 | "name": "vue variable.other.readwrite", 547 | "scope": ["text.html.vue variable.other.readwrite"], 548 | "settings": { "foreground": "#A390FF" } 549 | }, 550 | { 551 | "name": "vue meta.object-literal.key", 552 | "scope": ["text.html.vue meta.object-literal.key"], 553 | "settings": { "foreground": "#ffffff" } 554 | }, 555 | { 556 | "name": "vue entity.name.tag.css", 557 | "scope": ["text.html.vue entity.name.tag.css"], 558 | "settings": { "foreground": "#A390FF" } 559 | }, 560 | { 561 | "name": "vue entity.other.attribute-name", 562 | "scope": ["text.html.vue entity.other.attribute-name"], 563 | "settings": { "foreground": "#ffffff" } 564 | }, 565 | { 566 | "name": "vue constant.numeric.css", 567 | "scope": ["text.html.vue constant.numeric.css"], 568 | "settings": { "foreground": "#7AD9FB" } 569 | }, 570 | { 571 | "scope": [ 572 | "text.html.vue keyword.other.unit", 573 | "text.html.vue support.constant.property-value", 574 | "text.html.vue support.constant.color" 575 | ], 576 | "settings": { "foreground": "#A390FF" } 577 | }, 578 | { "background": "#151515", "token": "" }, 579 | { "foreground": "#E5E5E5", "token": "" } 580 | ] 581 | } 582 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ansi-regex@^2.0.0: 6 | version "2.1.1" 7 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 8 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 9 | 10 | ansi-regex@^5.0.1: 11 | version "5.0.1" 12 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 13 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 14 | 15 | ansi-styles@^3.2.1: 16 | version "3.2.1" 17 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 18 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 19 | dependencies: 20 | color-convert "^1.9.0" 21 | 22 | aproba@^1.0.3: 23 | version "1.2.0" 24 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 25 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 26 | 27 | are-we-there-yet@~1.1.2: 28 | version "1.1.7" 29 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" 30 | integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== 31 | dependencies: 32 | delegates "^1.0.0" 33 | readable-stream "^2.0.6" 34 | 35 | argparse@^2.0.1: 36 | version "2.0.1" 37 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 38 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 39 | 40 | azure-devops-node-api@^11.0.1: 41 | version "11.1.1" 42 | resolved "https://registry.yarnpkg.com/azure-devops-node-api/-/azure-devops-node-api-11.1.1.tgz#dd1356031fa4e334e016732594e8fee0f68268c4" 43 | integrity sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg== 44 | dependencies: 45 | tunnel "0.0.6" 46 | typed-rest-client "^1.8.4" 47 | 48 | balanced-match@^1.0.0: 49 | version "1.0.2" 50 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 51 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 52 | 53 | base64-js@^1.3.1: 54 | version "1.5.1" 55 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 56 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 57 | 58 | bl@^4.0.3: 59 | version "4.1.0" 60 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 61 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 62 | dependencies: 63 | buffer "^5.5.0" 64 | inherits "^2.0.4" 65 | readable-stream "^3.4.0" 66 | 67 | boolbase@^1.0.0: 68 | version "1.0.0" 69 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 70 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 71 | 72 | brace-expansion@^1.1.7: 73 | version "1.1.11" 74 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 75 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 76 | dependencies: 77 | balanced-match "^1.0.0" 78 | concat-map "0.0.1" 79 | 80 | buffer-crc32@~0.2.3: 81 | version "0.2.13" 82 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 83 | integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 84 | 85 | buffer@^5.5.0: 86 | version "5.7.1" 87 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 88 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 89 | dependencies: 90 | base64-js "^1.3.1" 91 | ieee754 "^1.1.13" 92 | 93 | call-bind@^1.0.0: 94 | version "1.0.2" 95 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 96 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 97 | dependencies: 98 | function-bind "^1.1.1" 99 | get-intrinsic "^1.0.2" 100 | 101 | chalk@^2.4.2: 102 | version "2.4.2" 103 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 104 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 105 | dependencies: 106 | ansi-styles "^3.2.1" 107 | escape-string-regexp "^1.0.5" 108 | supports-color "^5.3.0" 109 | 110 | cheerio-select@^1.5.0: 111 | version "1.6.0" 112 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" 113 | integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== 114 | dependencies: 115 | css-select "^4.3.0" 116 | css-what "^6.0.1" 117 | domelementtype "^2.2.0" 118 | domhandler "^4.3.1" 119 | domutils "^2.8.0" 120 | 121 | cheerio@^1.0.0-rc.9: 122 | version "1.0.0-rc.10" 123 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" 124 | integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== 125 | dependencies: 126 | cheerio-select "^1.5.0" 127 | dom-serializer "^1.3.2" 128 | domhandler "^4.2.0" 129 | htmlparser2 "^6.1.0" 130 | parse5 "^6.0.1" 131 | parse5-htmlparser2-tree-adapter "^6.0.1" 132 | tslib "^2.2.0" 133 | 134 | chownr@^1.1.1: 135 | version "1.1.4" 136 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 137 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 138 | 139 | code-point-at@^1.0.0: 140 | version "1.1.0" 141 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 142 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 143 | 144 | color-convert@^1.9.0: 145 | version "1.9.3" 146 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 147 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 148 | dependencies: 149 | color-name "1.1.3" 150 | 151 | color-name@1.1.3: 152 | version "1.1.3" 153 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 154 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 155 | 156 | commander@^6.1.0: 157 | version "6.2.1" 158 | resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" 159 | integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== 160 | 161 | concat-map@0.0.1: 162 | version "0.0.1" 163 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 164 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 165 | 166 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 167 | version "1.1.0" 168 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 169 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 170 | 171 | core-util-is@~1.0.0: 172 | version "1.0.3" 173 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 174 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 175 | 176 | css-select@^4.3.0: 177 | version "4.3.0" 178 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" 179 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== 180 | dependencies: 181 | boolbase "^1.0.0" 182 | css-what "^6.0.1" 183 | domhandler "^4.3.1" 184 | domutils "^2.8.0" 185 | nth-check "^2.0.1" 186 | 187 | css-what@^6.0.1: 188 | version "6.1.0" 189 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 190 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 191 | 192 | decompress-response@^6.0.0: 193 | version "6.0.0" 194 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 195 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 196 | dependencies: 197 | mimic-response "^3.1.0" 198 | 199 | deep-extend@^0.6.0: 200 | version "0.6.0" 201 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 202 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 203 | 204 | delegates@^1.0.0: 205 | version "1.0.0" 206 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 207 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 208 | 209 | detect-libc@^2.0.0: 210 | version "2.0.1" 211 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" 212 | integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== 213 | 214 | dom-serializer@^1.0.1, dom-serializer@^1.3.2: 215 | version "1.4.1" 216 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" 217 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 218 | dependencies: 219 | domelementtype "^2.0.1" 220 | domhandler "^4.2.0" 221 | entities "^2.0.0" 222 | 223 | domelementtype@^2.0.1, domelementtype@^2.2.0: 224 | version "2.3.0" 225 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 226 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 227 | 228 | domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: 229 | version "4.3.1" 230 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" 231 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 232 | dependencies: 233 | domelementtype "^2.2.0" 234 | 235 | domutils@^2.5.2, domutils@^2.8.0: 236 | version "2.8.0" 237 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 238 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 239 | dependencies: 240 | dom-serializer "^1.0.1" 241 | domelementtype "^2.2.0" 242 | domhandler "^4.2.0" 243 | 244 | emoji-regex@^8.0.0: 245 | version "8.0.0" 246 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 247 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 248 | 249 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 250 | version "1.4.4" 251 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 252 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 253 | dependencies: 254 | once "^1.4.0" 255 | 256 | entities@^2.0.0: 257 | version "2.2.0" 258 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 259 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 260 | 261 | entities@~2.1.0: 262 | version "2.1.0" 263 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" 264 | integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== 265 | 266 | escape-string-regexp@^1.0.5: 267 | version "1.0.5" 268 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 269 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 270 | 271 | expand-template@^2.0.3: 272 | version "2.0.3" 273 | resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" 274 | integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 275 | 276 | fd-slicer@~1.1.0: 277 | version "1.1.0" 278 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 279 | integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 280 | dependencies: 281 | pend "~1.2.0" 282 | 283 | fs-constants@^1.0.0: 284 | version "1.0.0" 285 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 286 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 287 | 288 | fs.realpath@^1.0.0: 289 | version "1.0.0" 290 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 291 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 292 | 293 | function-bind@^1.1.1: 294 | version "1.1.1" 295 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 296 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 297 | 298 | gauge@~2.7.3: 299 | version "2.7.4" 300 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 301 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 302 | dependencies: 303 | aproba "^1.0.3" 304 | console-control-strings "^1.0.0" 305 | has-unicode "^2.0.0" 306 | object-assign "^4.1.0" 307 | signal-exit "^3.0.0" 308 | string-width "^1.0.1" 309 | strip-ansi "^3.0.1" 310 | wide-align "^1.1.0" 311 | 312 | get-intrinsic@^1.0.2: 313 | version "1.1.1" 314 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 315 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 316 | dependencies: 317 | function-bind "^1.1.1" 318 | has "^1.0.3" 319 | has-symbols "^1.0.1" 320 | 321 | github-from-package@0.0.0: 322 | version "0.0.0" 323 | resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" 324 | integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= 325 | 326 | glob@^7.0.6, glob@^7.1.3: 327 | version "7.2.0" 328 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 329 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 330 | dependencies: 331 | fs.realpath "^1.0.0" 332 | inflight "^1.0.4" 333 | inherits "2" 334 | minimatch "^3.0.4" 335 | once "^1.3.0" 336 | path-is-absolute "^1.0.0" 337 | 338 | has-flag@^3.0.0: 339 | version "3.0.0" 340 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 341 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 342 | 343 | has-symbols@^1.0.1: 344 | version "1.0.3" 345 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 346 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 347 | 348 | has-unicode@^2.0.0: 349 | version "2.0.1" 350 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 351 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 352 | 353 | has@^1.0.3: 354 | version "1.0.3" 355 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 356 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 357 | dependencies: 358 | function-bind "^1.1.1" 359 | 360 | hosted-git-info@^4.0.2: 361 | version "4.1.0" 362 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" 363 | integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== 364 | dependencies: 365 | lru-cache "^6.0.0" 366 | 367 | htmlparser2@^6.1.0: 368 | version "6.1.0" 369 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" 370 | integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== 371 | dependencies: 372 | domelementtype "^2.0.1" 373 | domhandler "^4.0.0" 374 | domutils "^2.5.2" 375 | entities "^2.0.0" 376 | 377 | ieee754@^1.1.13: 378 | version "1.2.1" 379 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 380 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 381 | 382 | inflight@^1.0.4: 383 | version "1.0.6" 384 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 385 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 386 | dependencies: 387 | once "^1.3.0" 388 | wrappy "1" 389 | 390 | inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: 391 | version "2.0.4" 392 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 393 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 394 | 395 | ini@~1.3.0: 396 | version "1.3.8" 397 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 398 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 399 | 400 | is-fullwidth-code-point@^1.0.0: 401 | version "1.0.0" 402 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 403 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 404 | dependencies: 405 | number-is-nan "^1.0.0" 406 | 407 | is-fullwidth-code-point@^3.0.0: 408 | version "3.0.0" 409 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 410 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 411 | 412 | isarray@~1.0.0: 413 | version "1.0.0" 414 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 415 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 416 | 417 | keytar@^7.7.0: 418 | version "7.9.0" 419 | resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb" 420 | integrity sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ== 421 | dependencies: 422 | node-addon-api "^4.3.0" 423 | prebuild-install "^7.0.1" 424 | 425 | leven@^3.1.0: 426 | version "3.1.0" 427 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" 428 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 429 | 430 | linkify-it@^3.0.1: 431 | version "3.0.3" 432 | resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" 433 | integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== 434 | dependencies: 435 | uc.micro "^1.0.1" 436 | 437 | lru-cache@^6.0.0: 438 | version "6.0.0" 439 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 440 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 441 | dependencies: 442 | yallist "^4.0.0" 443 | 444 | markdown-it@^12.3.2: 445 | version "12.3.2" 446 | resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" 447 | integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== 448 | dependencies: 449 | argparse "^2.0.1" 450 | entities "~2.1.0" 451 | linkify-it "^3.0.1" 452 | mdurl "^1.0.1" 453 | uc.micro "^1.0.5" 454 | 455 | mdurl@^1.0.1: 456 | version "1.0.1" 457 | resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" 458 | integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= 459 | 460 | mime@^1.3.4: 461 | version "1.6.0" 462 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 463 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 464 | 465 | mimic-response@^3.1.0: 466 | version "3.1.0" 467 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 468 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 469 | 470 | minimatch@^3.0.3, minimatch@^3.0.4: 471 | version "3.1.2" 472 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 473 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 474 | dependencies: 475 | brace-expansion "^1.1.7" 476 | 477 | minimist@^1.2.0, minimist@^1.2.3: 478 | version "1.2.6" 479 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 480 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 481 | 482 | mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 483 | version "0.5.3" 484 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 485 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 486 | 487 | mute-stream@~0.0.4: 488 | version "0.0.8" 489 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 490 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 491 | 492 | napi-build-utils@^1.0.1: 493 | version "1.0.2" 494 | resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" 495 | integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 496 | 497 | node-abi@^3.3.0: 498 | version "3.8.0" 499 | resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32" 500 | integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw== 501 | dependencies: 502 | semver "^7.3.5" 503 | 504 | node-addon-api@^4.3.0: 505 | version "4.3.0" 506 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" 507 | integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== 508 | 509 | npmlog@^4.0.1: 510 | version "4.1.2" 511 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 512 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 513 | dependencies: 514 | are-we-there-yet "~1.1.2" 515 | console-control-strings "~1.1.0" 516 | gauge "~2.7.3" 517 | set-blocking "~2.0.0" 518 | 519 | nth-check@^2.0.1: 520 | version "2.0.1" 521 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" 522 | integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== 523 | dependencies: 524 | boolbase "^1.0.0" 525 | 526 | number-is-nan@^1.0.0: 527 | version "1.0.1" 528 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 529 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 530 | 531 | object-assign@^4.1.0: 532 | version "4.1.1" 533 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 534 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 535 | 536 | object-inspect@^1.9.0: 537 | version "1.12.0" 538 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" 539 | integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== 540 | 541 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 542 | version "1.4.0" 543 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 544 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 545 | dependencies: 546 | wrappy "1" 547 | 548 | parse-semver@^1.1.1: 549 | version "1.1.1" 550 | resolved "https://registry.yarnpkg.com/parse-semver/-/parse-semver-1.1.1.tgz#9a4afd6df063dc4826f93fba4a99cf223f666cb8" 551 | integrity sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg= 552 | dependencies: 553 | semver "^5.1.0" 554 | 555 | parse5-htmlparser2-tree-adapter@^6.0.1: 556 | version "6.0.1" 557 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" 558 | integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== 559 | dependencies: 560 | parse5 "^6.0.1" 561 | 562 | parse5@^6.0.1: 563 | version "6.0.1" 564 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 565 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 566 | 567 | path-is-absolute@^1.0.0: 568 | version "1.0.1" 569 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 570 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 571 | 572 | pend@~1.2.0: 573 | version "1.2.0" 574 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 575 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 576 | 577 | prebuild-install@^7.0.1: 578 | version "7.0.1" 579 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870" 580 | integrity sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg== 581 | dependencies: 582 | detect-libc "^2.0.0" 583 | expand-template "^2.0.3" 584 | github-from-package "0.0.0" 585 | minimist "^1.2.3" 586 | mkdirp-classic "^0.5.3" 587 | napi-build-utils "^1.0.1" 588 | node-abi "^3.3.0" 589 | npmlog "^4.0.1" 590 | pump "^3.0.0" 591 | rc "^1.2.7" 592 | simple-get "^4.0.0" 593 | tar-fs "^2.0.0" 594 | tunnel-agent "^0.6.0" 595 | 596 | process-nextick-args@~2.0.0: 597 | version "2.0.1" 598 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 599 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 600 | 601 | pump@^3.0.0: 602 | version "3.0.0" 603 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 604 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 605 | dependencies: 606 | end-of-stream "^1.1.0" 607 | once "^1.3.1" 608 | 609 | qs@^6.9.1: 610 | version "6.10.3" 611 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" 612 | integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== 613 | dependencies: 614 | side-channel "^1.0.4" 615 | 616 | rc@^1.2.7: 617 | version "1.2.8" 618 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 619 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 620 | dependencies: 621 | deep-extend "^0.6.0" 622 | ini "~1.3.0" 623 | minimist "^1.2.0" 624 | strip-json-comments "~2.0.1" 625 | 626 | read@^1.0.7: 627 | version "1.0.7" 628 | resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" 629 | integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= 630 | dependencies: 631 | mute-stream "~0.0.4" 632 | 633 | readable-stream@^2.0.6: 634 | version "2.3.7" 635 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 636 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 637 | dependencies: 638 | core-util-is "~1.0.0" 639 | inherits "~2.0.3" 640 | isarray "~1.0.0" 641 | process-nextick-args "~2.0.0" 642 | safe-buffer "~5.1.1" 643 | string_decoder "~1.1.1" 644 | util-deprecate "~1.0.1" 645 | 646 | readable-stream@^3.1.1, readable-stream@^3.4.0: 647 | version "3.6.0" 648 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 649 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 650 | dependencies: 651 | inherits "^2.0.3" 652 | string_decoder "^1.1.1" 653 | util-deprecate "^1.0.1" 654 | 655 | rimraf@^3.0.0: 656 | version "3.0.2" 657 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 658 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 659 | dependencies: 660 | glob "^7.1.3" 661 | 662 | safe-buffer@^5.0.1, safe-buffer@~5.2.0: 663 | version "5.2.1" 664 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 665 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 666 | 667 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 668 | version "5.1.2" 669 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 670 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 671 | 672 | sax@>=0.6.0: 673 | version "1.2.4" 674 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 675 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 676 | 677 | semver@^5.1.0: 678 | version "5.7.2" 679 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" 680 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== 681 | 682 | semver@^7.3.5: 683 | version "7.5.4" 684 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 685 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 686 | dependencies: 687 | lru-cache "^6.0.0" 688 | 689 | set-blocking@~2.0.0: 690 | version "2.0.0" 691 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 692 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 693 | 694 | side-channel@^1.0.4: 695 | version "1.0.4" 696 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 697 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 698 | dependencies: 699 | call-bind "^1.0.0" 700 | get-intrinsic "^1.0.2" 701 | object-inspect "^1.9.0" 702 | 703 | signal-exit@^3.0.0: 704 | version "3.0.7" 705 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 706 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 707 | 708 | simple-concat@^1.0.0: 709 | version "1.0.1" 710 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" 711 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 712 | 713 | simple-get@^4.0.0: 714 | version "4.0.1" 715 | resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" 716 | integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== 717 | dependencies: 718 | decompress-response "^6.0.0" 719 | once "^1.3.1" 720 | simple-concat "^1.0.0" 721 | 722 | string-width@^1.0.1: 723 | version "1.0.2" 724 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 725 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 726 | dependencies: 727 | code-point-at "^1.0.0" 728 | is-fullwidth-code-point "^1.0.0" 729 | strip-ansi "^3.0.0" 730 | 731 | "string-width@^1.0.2 || 2 || 3 || 4": 732 | version "4.2.3" 733 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 734 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 735 | dependencies: 736 | emoji-regex "^8.0.0" 737 | is-fullwidth-code-point "^3.0.0" 738 | strip-ansi "^6.0.1" 739 | 740 | string_decoder@^1.1.1: 741 | version "1.3.0" 742 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 743 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 744 | dependencies: 745 | safe-buffer "~5.2.0" 746 | 747 | string_decoder@~1.1.1: 748 | version "1.1.1" 749 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 750 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 751 | dependencies: 752 | safe-buffer "~5.1.0" 753 | 754 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 755 | version "3.0.1" 756 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 757 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 758 | dependencies: 759 | ansi-regex "^2.0.0" 760 | 761 | strip-ansi@^6.0.1: 762 | version "6.0.1" 763 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 764 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 765 | dependencies: 766 | ansi-regex "^5.0.1" 767 | 768 | strip-json-comments@~2.0.1: 769 | version "2.0.1" 770 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 771 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 772 | 773 | supports-color@^5.3.0: 774 | version "5.5.0" 775 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 776 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 777 | dependencies: 778 | has-flag "^3.0.0" 779 | 780 | tar-fs@^2.0.0: 781 | version "2.1.1" 782 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 783 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 784 | dependencies: 785 | chownr "^1.1.1" 786 | mkdirp-classic "^0.5.2" 787 | pump "^3.0.0" 788 | tar-stream "^2.1.4" 789 | 790 | tar-stream@^2.1.4: 791 | version "2.2.0" 792 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 793 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 794 | dependencies: 795 | bl "^4.0.3" 796 | end-of-stream "^1.4.1" 797 | fs-constants "^1.0.0" 798 | inherits "^2.0.3" 799 | readable-stream "^3.1.1" 800 | 801 | tmp@^0.2.1: 802 | version "0.2.1" 803 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" 804 | integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== 805 | dependencies: 806 | rimraf "^3.0.0" 807 | 808 | tslib@^2.2.0: 809 | version "2.3.1" 810 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 811 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 812 | 813 | tunnel-agent@^0.6.0: 814 | version "0.6.0" 815 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 816 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 817 | dependencies: 818 | safe-buffer "^5.0.1" 819 | 820 | tunnel@0.0.6: 821 | version "0.0.6" 822 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" 823 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== 824 | 825 | typed-rest-client@^1.8.4: 826 | version "1.8.6" 827 | resolved "https://registry.yarnpkg.com/typed-rest-client/-/typed-rest-client-1.8.6.tgz#d8facd6abd98cbd8ad14cccf056ca5cc306919d7" 828 | integrity sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA== 829 | dependencies: 830 | qs "^6.9.1" 831 | tunnel "0.0.6" 832 | underscore "^1.12.1" 833 | 834 | uc.micro@^1.0.1, uc.micro@^1.0.5: 835 | version "1.0.6" 836 | resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" 837 | integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== 838 | 839 | underscore@^1.12.1: 840 | version "1.13.2" 841 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" 842 | integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== 843 | 844 | url-join@^4.0.1: 845 | version "4.0.1" 846 | resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" 847 | integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== 848 | 849 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 850 | version "1.0.2" 851 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 852 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 853 | 854 | vsce@^2.7.0: 855 | version "2.7.0" 856 | resolved "https://registry.yarnpkg.com/vsce/-/vsce-2.7.0.tgz#7be8deebd1e673b996238d608e7f7324c98744ed" 857 | integrity sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA== 858 | dependencies: 859 | azure-devops-node-api "^11.0.1" 860 | chalk "^2.4.2" 861 | cheerio "^1.0.0-rc.9" 862 | commander "^6.1.0" 863 | glob "^7.0.6" 864 | hosted-git-info "^4.0.2" 865 | keytar "^7.7.0" 866 | leven "^3.1.0" 867 | markdown-it "^12.3.2" 868 | mime "^1.3.4" 869 | minimatch "^3.0.3" 870 | parse-semver "^1.1.1" 871 | read "^1.0.7" 872 | semver "^5.1.0" 873 | tmp "^0.2.1" 874 | typed-rest-client "^1.8.4" 875 | url-join "^4.0.1" 876 | xml2js "^0.4.23" 877 | yauzl "^2.3.1" 878 | yazl "^2.2.2" 879 | 880 | wide-align@^1.1.0: 881 | version "1.1.5" 882 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" 883 | integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== 884 | dependencies: 885 | string-width "^1.0.2 || 2 || 3 || 4" 886 | 887 | wrappy@1: 888 | version "1.0.2" 889 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 890 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 891 | 892 | xml2js@^0.4.23: 893 | version "0.4.23" 894 | resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" 895 | integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== 896 | dependencies: 897 | sax ">=0.6.0" 898 | xmlbuilder "~11.0.0" 899 | 900 | xmlbuilder@~11.0.0: 901 | version "11.0.1" 902 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" 903 | integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== 904 | 905 | yallist@^4.0.0: 906 | version "4.0.0" 907 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 908 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 909 | 910 | yauzl@^2.3.1: 911 | version "2.10.0" 912 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 913 | integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 914 | dependencies: 915 | buffer-crc32 "~0.2.3" 916 | fd-slicer "~1.1.0" 917 | 918 | yazl@^2.2.2: 919 | version "2.5.1" 920 | resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" 921 | integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== 922 | dependencies: 923 | buffer-crc32 "~0.2.3" 924 | --------------------------------------------------------------------------------