├── .editorconfig
├── .gitignore
├── .version
├── BUILDING.md
├── LICENSE
├── Makefile
├── PRIVACY.md
├── README.md
├── src
├── Makefile
├── background.js
├── fonts
│ └── OpenSans-Regular.ttf
├── icon.png
├── icon.svg
├── icon16.png
├── inject.js
├── manifest-chromium.json
├── manifest-firefox.json
├── package.json
├── popup
│ ├── copy.svg
│ ├── popup.html
│ ├── popup.js
│ └── popup.less
└── yarn.lock
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 4
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 | max_line_length = 100
11 |
12 | [Makefile]
13 | indent_style = tab
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /chromium
2 | /firefox
3 | /dist
4 | /dist-webstore
5 |
6 | /src/node_modules
7 | /src/css
8 | /src/js
9 | /src/*.log
10 |
11 | *.pem
12 | *.crx
13 |
--------------------------------------------------------------------------------
/.version:
--------------------------------------------------------------------------------
1 | 0.2.3-dev
2 |
--------------------------------------------------------------------------------
/BUILDING.md:
--------------------------------------------------------------------------------
1 | Build Instructions
2 | ==================
3 |
4 | Run `make` to build unpacked, or `make dist` to build release packages.
5 |
6 | ## Dependencies
7 |
8 | In order to build successfully, the following are necessary:
9 |
10 | * A standard POSIX-compatible shell
11 | * Any recent version of GNU make
12 | * Any recent version of yarn
13 | * An internet connection, to download package dependencies from npmjs
14 | * git (dist only)
15 | * zip (dist only)
16 | * gpg (dist only)
17 | * Google Chrome or other Chromium-based browser (crx-* and dist only)
18 |
19 | ## Build Targets
20 |
21 | Depending on the desired output, we have several build targets available.
22 |
23 | ## all (default)
24 |
25 | Builds the extension unpacked, for both Chromium and Firefox browsers. The output from this build will be placed in the `chromium` and `firefox` directories respectively.
26 |
27 | ## chromium
28 |
29 | Builds the extension unpacked, for Chromium browsers. The output is placed in the `chromium` directory.
30 |
31 | ## firefox
32 |
33 | Builds the extension unpacked, for Firefox browsers. The output is placed in the `firefox` directory.
34 |
35 | ## crx-github
36 |
37 | Builds the extension packed, signed for GitHub distribution. Requires the private signing key to be present as `github.pem`. The build output is provided as `browserpass-otp-github.crx`.
38 |
39 | ## crx-webstore
40 |
41 | Builds the extension packed, signed using the same key as the Chrome webstore. Requires the private signing key to be present as `webstore.pem`. The build output is provided as `browserpass-otp-webstore.crx`.
42 |
43 | ## dist
44 |
45 | Builds the extension packed for distribution via Mozilla Addons store, Chrome webstore, and GitHub. GitHub release packages are output to the `dist` directory, along with PGP detached signatures. Webstore release packages are output to the `dist-webstore` directory, along with the required source archive for AMO. Please note that both a working GPG setup and private keys for the CRX targets are required for this build target to complete successfully.
46 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | ISC License
2 |
3 | Copyright (c) 2019, Maxim Baz & Steve Gilberd
4 |
5 | Permission to use, copy, modify, and/or distribute this software for any
6 | purpose with or without fee is hereby granted, provided that the above
7 | copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | VERSION ?= $(shell cat .version)
2 |
3 | CLEAN_FILES := chromium firefox dist dist-webstore
4 | CHROME := $(shell which chromium 2>/dev/null || which chromium-browser 2>/dev/null || which chrome 2>/dev/null || which google-chrome 2>/dev/null || which google-chrome-stable 2>/dev/null)
5 |
6 | #######################
7 | # For local development
8 |
9 | .PHONY: all
10 | all: extension chromium firefox
11 |
12 | .PHONY: extension
13 | extension:
14 | $(MAKE) -C src
15 |
16 | EXTENSION_FILES := \
17 | src/*.css \
18 | src/*.png \
19 | src/*.svg \
20 | src/fonts/* \
21 | src/popup/*.html \
22 | src/popup/*.svg
23 | EXTENSION_FILES := \
24 | $(wildcard $(EXTENSION_FILES)) \
25 | src/css/popup.dist.css \
26 | src/js/background.dist.js \
27 | src/js/popup.dist.js \
28 | src/js/inject.dist.js
29 | CHROMIUM_FILES := $(patsubst src/%,chromium/%, $(EXTENSION_FILES))
30 | FIREFOX_FILES := $(patsubst src/%,firefox/%, $(EXTENSION_FILES))
31 |
32 | .PHONY: chromium
33 | chromium: extension $(CHROMIUM_FILES) chromium/manifest.json
34 |
35 | $(CHROMIUM_FILES) : chromium/% : src/%
36 | [ -d $(dir $@) ] || mkdir -p $(dir $@)
37 | cp $< $@
38 |
39 | chromium/manifest.json : src/manifest-chromium.json
40 | [ -d $(dir $@) ] || mkdir -p $(dir $@)
41 | cp $< $@
42 |
43 | .PHONY: firefox
44 | firefox: extension $(FIREFOX_FILES) firefox/manifest.json
45 |
46 | $(FIREFOX_FILES) : firefox/% : src/%
47 | [ -d $(dir $@) ] || mkdir -p $(dir $@)
48 | cp $< $@
49 |
50 | firefox/manifest.json : src/manifest-firefox.json
51 | [ -d $(dir $@) ] || mkdir -p $(dir $@)
52 | cp $< $@
53 |
54 | #######################
55 | # For official releases
56 |
57 | .PHONY: clean
58 | clean:
59 | rm -rf $(CLEAN_FILES)
60 | $(MAKE) -C src clean
61 |
62 | .PHONY: crx-webstore
63 | crx-webstore:
64 | "$(CHROME)" --disable-gpu --pack-extension=./chromium --pack-extension-key=webstore.pem
65 | mv chromium.crx browserpass-otp-webstore.crx
66 |
67 | .PHONY: crx-github
68 | crx-github:
69 | "$(CHROME)" --disable-gpu --pack-extension=./chromium --pack-extension-key=github.pem
70 | mv chromium.crx browserpass-otp-github.crx
71 |
72 | .PHONY: dist
73 | dist: clean extension chromium firefox crx-webstore crx-github
74 | mkdir -p dist
75 |
76 | git archive -o dist/browserpass-otp-$(VERSION).tar.gz --format tar.gz --prefix=browserpass-otp-$(VERSION)/ $(VERSION)
77 |
78 | (cd chromium && zip -r ../dist/browserpass-otp-chromium-$(VERSION).zip *)
79 | (cd firefox && zip -r ../dist/browserpass-otp-firefox-$(VERSION).zip *)
80 |
81 | mv browserpass-otp-webstore.crx dist/browserpass-otp-webstore-$(VERSION).crx
82 | mv browserpass-otp-github.crx dist/browserpass-otp-github-$(VERSION).crx
83 |
84 | for file in dist/*; do \
85 | gpg --detach-sign --armor "$$file"; \
86 | done
87 |
88 | mkdir -p dist-webstore
89 |
90 | cp dist/browserpass-otp-firefox-$(VERSION).zip dist-webstore/firefox-$(VERSION).zip
91 | mv dist/browserpass-otp-$(VERSION).tar.gz dist-webstore/firefox-$(VERSION)-src.tar.gz
92 |
93 | cp -a chromium dist-webstore/
94 | sed -i '/"key"/d' dist-webstore/chromium/manifest.json
95 | (cd dist-webstore/chromium && zip -r ../chrome-$(VERSION).zip *)
96 | rm -rf dist-webstore/chromium
97 |
--------------------------------------------------------------------------------
/PRIVACY.md:
--------------------------------------------------------------------------------
1 | Browserpass Privacy Policy
2 | ==========================
3 |
4 | ## Definitions
5 |
6 | - Browserpass means the WebExtension at https://github.com/browserpass/browserpass-extension
7 | - Browserpass OTP means the WebExtension at https://github.com/browserpass/browserpass-otp
8 | - User means the user of the web browser where Browserpass or Browserpass OTP is installed.
9 | - Password Store means one or more locations on disk where the user stores encrypted credential files.
10 | - Credential File(s) means the individual credential files in the User's password store.
11 | - Developer(s) means the individuals who are responsible for the development of Browserpass and Browserpass OTP.
12 |
13 | ## Applicability
14 |
15 | This Privacy Policy applies to Browserpass and Browserpass OTP.
16 |
17 | ## Usage of Credential Files
18 |
19 | During the course of normal operation, Browserpass handles decrypted Credential Files.
20 | Only files selected by the User via the Browserpass interface are decrypted.
21 |
22 | The contents of decrypted Credential Files are used *only* for the following purposes:
23 |
24 | - To copy login credentials to the clipboard;
25 | - To automatically fill login credentials into a website in the current tab;
26 | - To provide the User with an interface to edit the contents of a selected Credential File,
27 | - To provide the OTP seed to Browserpass OTP
28 | - To fill other fields as requested by the User (e.g. credit card data)
29 |
30 | ## Use & Transmission of Data
31 |
32 | Browserpass will fill data selected by the User to the website in the currently
33 | active browser tab. This implies that data will be sent to that site when the
34 | form into which the data has been filled is submitted.
35 |
36 | If the form fields detected by Browserpass belong to a foreign origin, Browserpass
37 | will prompt the User to confirm whether they would like to continue filling those
38 | fields.
39 |
40 | If an OTP seed is detected in a credential file when it is decrypted, it will be
41 | passed to Browserpass OTP.
42 |
43 | Browserpass only holds the decrypted contents of Credential Files while they are
44 | actively being used by the User. Once the action selected by the User has been
45 | completed, the data becomes out of scope, and will be cleaned up by the browser's
46 | garbage collection mechanism.
47 |
48 | Browserpass contains an autosubmit feature, which defaults to disabled. If enabled by
49 | the user, this will cause Browserpass to automatically submit the form into which
50 | credentials were filled immediately after filling. The Developers do not recommend
51 | use of this feature, and it will never be enabled by default.
52 |
53 | Browserpass OTP will, upon receipt of an OTP seed from Browserpass, generate an OTP
54 | code and make it available on demand via the Browserpass OTP popup interface. If
55 | Browserpass is not already using the clipboard, it will also place that code on the
56 | clipboard.
57 |
58 | Browserpass OTP will retain the OTP seed until the tab for which the seed applies is
59 | navigated to a different origin, so that it can generate new codes as needed (typically
60 | every 30 seconds).
61 |
62 | IN NO EVENT WILL BROWSERPASS OR BROWSERPASS OTP EVER SEND DATA OF ANY KIND TO ANY PARTY
63 | OTHER THAN A WEBSITE INTO INTO WHICH THE USER HAS DELIBERATELY REQUESTED BROWSERPASS
64 | TO FILL DATA.
65 |
66 | ## Security of Transmission
67 |
68 | Filled content will be submitted via whatever mechanism is provided by the form that
69 | has been filled. This is determined by the website to which the form belongs. For clarity,
70 | please note that some sites do not properly secure such forms - Browserpass will prompt
71 | the User before filling data into any non-https origin.
72 |
73 | Some websites may use a secure origin, but transmit data via insecure means. It is possible
74 | that Browserpass may not be able to detect all such sites, so filling and submitting
75 | data is done solely at the User's own risk.
76 |
77 | ## Local Storage
78 |
79 | Browserpass may store the following via the browser's local storage API:
80 |
81 | - Historical usage data, in order to sort the list of Credential Files in the Browserpass
82 | popup interface by recency and usage count.
83 | - Usage of any given Credential File on an origin that cannot be automatically matched.
84 | - Responses to confirmation prompts.
85 |
86 | Local storage may be cleared via the Browserpass options screen.
87 |
88 | Decrypted contents of Credential Files are never placed in local storage for any reason.
89 |
90 | ## Further Detail
91 |
92 | For further detail on how Browserpass functions and protects your data, please see the
93 | readme at https://github.com/browserpass/browserpass-extension/blob/master/README.md.
94 |
95 | ## Liability
96 |
97 | THE SOFTWARE IS PROVIDED "AS IS" AND THE DEVELOPERS DISCLAIM ALL WARRANTIES
98 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
99 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR
100 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
101 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
102 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
103 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
104 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | BrowserPass OTP
2 | ===============
3 |
4 | This is a companion extension which adds OTP capabilities to Browserpass. Whenever Browserpass is used to fill or copy login details, that entry is checked for a TOTP seed. If such a seed exists, it will be used to generate an OTP code.
5 |
6 | TOTP seeds may be provided either as an otpauth URL (e.g. `otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example`) or as a plain seed (e.g. `totp: JBSWY3DPEHPK3PXP`). Please note that the plain form is unsuitable for any TOTP implementation that does not use a period of 30 seconds and a length of 6 digits.
7 |
8 | The OTP code may be accessed by clicking on the OTP extension icon, and can be copied to the clipboard by clicking the 'copy' icon. In addition, the generated OTP code will be copied to the clipboard immediately after Browserpass is invoked, unless Browserpass is already using the clipboard for something else.
9 |
10 | Please note that this extension requires Browserpass v3.0.13 or greater in order to function - earlier versions will not trigger OTP at all. It does not currently require any configuration.
11 |
--------------------------------------------------------------------------------
/src/Makefile:
--------------------------------------------------------------------------------
1 | BROWSERIFY := node_modules/.bin/browserify
2 | PRETTIER := node_modules/.bin/prettier
3 | LESSC := node_modules/.bin/lessc
4 |
5 | CLEAN_FILES := js
6 | PRETTIER_FILES := $(wildcard *.json *.js popup/*.js *.less popup/*.less *.html popup/*.html)
7 |
8 | .PHONY: all
9 | all: deps prettier css/popup.dist.css js/background.dist.js js/popup.dist.js js/inject.dist.js
10 |
11 | .PHONY: deps
12 | deps:
13 | yarn install
14 |
15 | .PHONY: prettier
16 | prettier: $(PRETTIER) $(PRETTIER_FILES)
17 | $(PRETTIER) --write $(PRETTIER_FILES)
18 |
19 | css/popup.dist.css: $(LESSC) popup/popup.less
20 | [ -d css ] || mkdir -p css
21 | $(LESSC) popup/popup.less css/popup.dist.css
22 |
23 | js/background.dist.js: $(BROWSERIFY) background.js
24 | [ -d js ] || mkdir -p js
25 | $(BROWSERIFY) -o js/background.dist.js background.js
26 |
27 | js/popup.dist.js: $(BROWSERIFY) popup/*.js
28 | [ -d js ] || mkdir -p js
29 | $(BROWSERIFY) -o js/popup.dist.js popup/popup.js
30 |
31 | js/inject.dist.js: $(BROWSERIFY) inject.js
32 | [ -d js ] || mkdir -p js
33 | $(BROWSERIFY) -o js/inject.dist.js inject.js
34 |
35 | # Firefox requires the last command to evaluate to something serializable
36 | # https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript#Return_value
37 | echo ";undefined" >> js/inject.dist.js
38 |
39 | .PHONY: clean
40 | clean:
41 | rm -rf $(CLEAN_FILES)
42 |
--------------------------------------------------------------------------------
/src/background.js:
--------------------------------------------------------------------------------
1 | //------------------------------------- Initialisation --------------------------------------//
2 |
3 | "use strict";
4 |
5 | require("chrome-extension-async");
6 | const hash = require("hash.js");
7 | const Authenticator = require("otplib").authenticator.Authenticator;
8 |
9 | const validSenders = [
10 | "naepdomgkenhinolocfifgehidddafch",
11 | "pjmbgaakjkbhpopmakjoedenlfdmcdgm",
12 | "klfoddkbhleoaabpmiigbmpbjfljimgb",
13 | "browserpass@maximbaz.com"
14 | ];
15 |
16 | // instance registry
17 | var registry = {};
18 |
19 | // Main entry point, invoked from browserpass. No response is expected.
20 | chrome.runtime.onMessageExternal.addListener(function(request, sender) {
21 | // reject invalid senders
22 | if (!validSenders.includes(sender.id)) {
23 | return;
24 | }
25 |
26 | // hydrate request
27 | if (!request.hasOwnProperty("version")) {
28 | // REMOVE this block once browserpass-extension-3.1 is fully deployed in prod.
29 | request.version = "3.0.12";
30 | request.action = "noop";
31 | }
32 | request.version = (version => {
33 | var [major, minor, patch] = version.split(".");
34 | return parseInt(major) * 1000000 + parseInt(minor) * 1000 + parseInt(patch);
35 | })(request.version);
36 |
37 | // parse OTP object
38 | if (request.otp.key === null) {
39 | // this is an OTP URI, so extract the pieces
40 | try {
41 | let url = new URL(request.otp.data.toLowerCase());
42 | let parts = url.pathname.split("/").filter(s => s.trim());
43 | var otp = {
44 | type: parts[0],
45 | secret: url.searchParams.get("secret").toUpperCase(),
46 | algorithm: url.searchParams.get("algorithm") || "sha1",
47 | digits: parseInt(url.searchParams.get("digits") || "6"),
48 | period: parseInt(url.searchParams.get("period") || "30")
49 | };
50 | } catch (e) {
51 | console.log(`Unable to parse uri: ${request.otp.data}`, e);
52 | return;
53 | }
54 | } else {
55 | var otp = {
56 | type: request.otp.key.toLowerCase(),
57 | secret: request.otp.data.toUpperCase(),
58 | algorithm: "sha1",
59 | digits: 6,
60 | period: 30
61 | };
62 | }
63 |
64 | // fix default type
65 | if (otp.type === "otp") {
66 | otp.type = "totp";
67 | }
68 |
69 | // set handler
70 | if (otp.type === "totp") {
71 | otp.generate = makeTOTP.bind(otp);
72 | } else {
73 | console.log(`Unsupported OTP type: ${otp.type}`);
74 | }
75 |
76 | // update registry
77 | registry[request.settings.tab.id] = {
78 | otp: otp,
79 | origin: request.settings.origin,
80 | host: request.settings.host
81 | };
82 |
83 | // copy to clipboard
84 | // TODO only do this automatically when option is enabled
85 | if (!request.action.match(/^copy[A-Z]*/)) {
86 | copyToClipboard(otp.generate());
87 | }
88 | });
89 |
90 | // popup entry point
91 | chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
92 | switch (request.action) {
93 | case "getToken":
94 | if (
95 | registry.hasOwnProperty(request.tabID) &&
96 | (registry[request.tabID].origin
97 | ? registry[request.tabID].origin === request.origin
98 | : registry[request.tabID].host === request.host)
99 | ) {
100 | let otp = registry[request.tabID].otp;
101 | let response = { token: otp.generate() };
102 | if (otp.type == "totp") {
103 | // refresh after this many seconds
104 | response.refresh = otp.period - (Math.floor(Date.now() / 1000) % otp.period);
105 | response.period = otp.period;
106 | }
107 | sendResponse(response);
108 | } else {
109 | sendResponse({ token: null });
110 | }
111 | break;
112 | default:
113 | throw new Error(`Unknown action: ${request.action}`);
114 | }
115 | });
116 |
117 | // clean up stale registry entries
118 | chrome.tabs.onRemoved.addListener(tabID => {
119 | delete registry[tabID];
120 | });
121 |
122 | //----------------------------------- Function definitions ----------------------------------//
123 |
124 | /**
125 | * Generate a TOTP code
126 | *
127 | * @since 3.0.0
128 | *
129 | * @return string Generated code
130 | */
131 | function makeTOTP() {
132 | switch (this.algorithm) {
133 | case "sha1":
134 | case "sha256":
135 | case "sha512":
136 | break;
137 | default:
138 | throw new Error(`Unsupported TOTP algorithm: ${this.algorithm}`);
139 | }
140 |
141 | var generator = new Authenticator();
142 | generator.options = {
143 | crypto: {
144 | createHmac: (a, k) => hash.hmac(hash[a], k)
145 | },
146 | algorithm: this.algorithm,
147 | digits: this.digits,
148 | step: this.period
149 | };
150 |
151 | return generator.generate(this.secret);
152 | }
153 |
154 | /**
155 | * Copy text to clipboard
156 | *
157 | * @since 3.0.0
158 | *
159 | * @param string text Text to copy
160 | * @return void
161 | */
162 | function copyToClipboard(text) {
163 | document.addEventListener(
164 | "copy",
165 | function(e) {
166 | e.clipboardData.setData("text/plain", text);
167 | e.preventDefault();
168 | },
169 | { once: true }
170 | );
171 | document.execCommand("copy");
172 | }
173 |
--------------------------------------------------------------------------------
/src/fonts/OpenSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/browserpass/browserpass-otp/e4b9acae38d762e4da9411f1a5515f08dc957f91/src/fonts/OpenSans-Regular.ttf
--------------------------------------------------------------------------------
/src/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/browserpass/browserpass-otp/e4b9acae38d762e4da9411f1a5515f08dc957f91/src/icon.png
--------------------------------------------------------------------------------
/src/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/browserpass/browserpass-otp/e4b9acae38d762e4da9411f1a5515f08dc957f91/src/icon16.png
--------------------------------------------------------------------------------
/src/inject.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/browserpass/browserpass-otp/e4b9acae38d762e4da9411f1a5515f08dc957f91/src/inject.js
--------------------------------------------------------------------------------
/src/manifest-chromium.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzCCoXUbvVtAC6rN7QNTLIQ/ThQWBcp9TgeS0HOcpkUxOypD0fyJDMv2U3c6yuCwIqmBa+LwDncLbSyhb788N6hc4+01QWKzQa9qjpAWKHTx1erKxs8+OjbdTxJBgfKI9s9hVUuBTeNBv4PoC1pv3F2wk0HyZct63GcMCikZMMri/3/HRXTPAsT+ROxwrohsyZLSg4FptrNYPQb/7XpPS1+eHOqzNqv0Zhh6/gJSJ5gML6tKjudjnhF0pi6weKbvkIlf9g2nT/Wo8iarimJX49ENqpSuqP+BFpspoptwyIqfUmi3NQZXDOXkyg9DYQvXjU4+yrVmJs7XpzU9RdNDe9wIDAQAB",
3 | "manifest_version": 2,
4 | "name": "Browserpass OTP",
5 | "description": "OTP extension for browserpass",
6 | "version": "0.2.5",
7 | "author": "Maxim Baz , Steve Gilberd ",
8 | "homepage_url": "https://github.com/browserpass/browserpass-otp",
9 | "background": {
10 | "persistent": true,
11 | "scripts": ["js/background.dist.js"]
12 | },
13 | "icons": {
14 | "16": "icon16.png",
15 | "128": "icon.png"
16 | },
17 | "browser_action": {
18 | "default_popup": "popup/popup.html"
19 | },
20 | "permissions": ["activeTab", "clipboardWrite"]
21 | }
22 |
--------------------------------------------------------------------------------
/src/manifest-firefox.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 2,
3 | "name": "Browserpass OTP",
4 | "description": "OTP extension for browserpass",
5 | "version": "0.2.5",
6 | "author": "Maxim Baz , Steve Gilberd ",
7 | "homepage_url": "https://github.com/browserpass/browserpass-otp",
8 | "background": {
9 | "persistent": true,
10 | "scripts": ["js/background.dist.js"]
11 | },
12 | "icons": {
13 | "16": "icon16.png",
14 | "128": "icon.png"
15 | },
16 | "browser_action": {
17 | "default_popup": "popup/popup.html"
18 | },
19 | "applications": {
20 | "gecko": {
21 | "id": "browserpass-otp@maximbaz.com",
22 | "strict_min_version": "54.0"
23 | }
24 | },
25 | "permissions": ["activeTab", "clipboardWrite"]
26 | }
27 |
--------------------------------------------------------------------------------
/src/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "browserpass-otp",
3 | "version": "0.2.2-dev",
4 | "description": "OTP extension for browserpass.",
5 | "homepage": "https://github.com/browserpass/browserpass-otp",
6 | "license": "ISC",
7 | "author": [
8 | {
9 | "name": "Maxim Baz",
10 | "email": "browserpass@maximbaz.com"
11 | },
12 | {
13 | "name": "Steve Gilberd",
14 | "email": "steve@erayd.net"
15 | }
16 | ],
17 | "dependencies": {
18 | "chrome-extension-async": "^3.3.2",
19 | "hash.js": "^1.1.7",
20 | "mithril": "^1.1.0",
21 | "moment": "^2.24.0",
22 | "otplib": "^11.0.0"
23 | },
24 | "devDependencies": {
25 | "browserify": "^16.2.3",
26 | "less": "^3.9.0",
27 | "prettier": "^1.16.4"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/popup/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/src/popup/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Loading...
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/popup/popup.js:
--------------------------------------------------------------------------------
1 | //------------------------------------- Initialisation --------------------------------------//
2 | //
3 | "use strict";
4 |
5 | //require("chrome-extension-async");
6 | var m = require("mithril");
7 | var token = null;
8 | var progress = null;
9 |
10 | // interface definition
11 | var display = {
12 | view: function() {
13 | var nodes = [];
14 |
15 | if (token !== null) {
16 | nodes.push(
17 | m(
18 | "div.outline",
19 | {
20 | onclick: function() {
21 | copyToClipboard(token);
22 | }
23 | },
24 | [m("div.token", token), m("div.copy")]
25 | )
26 | );
27 | if (progress !== null) {
28 | let updateProgress = vnode => {
29 | let refresh = progress.refresh - (Date.now() - progress.begin) / 1000;
30 | vnode.dom.style.transition = "none";
31 | vnode.dom.style.width = `${(refresh / progress.period) * 100}%`;
32 | setTimeout(function() {
33 | vnode.dom.style.transition = `width linear ${progress.refresh}s`;
34 | vnode.dom.style.width = "0%";
35 | }, 100);
36 | };
37 | let progressNode = m("div.progress", {
38 | oncreate: updateProgress,
39 | onupdate: updateProgress
40 | });
41 | nodes.push(progressNode);
42 | }
43 | } else {
44 | nodes.push(m("div.info", "No token available"));
45 | }
46 |
47 | nodes.push(
48 | m(
49 | "div.notice",
50 | "From Browserpass v3.7.0, OTP functionality will move into the main Browserpass extension. It's disabled by default; enable it via the Browserpass options screen."
51 | )
52 | );
53 |
54 | return nodes;
55 | }
56 | };
57 |
58 | // attach to popup
59 | m.mount(document.body, display);
60 |
61 | // attach key handler
62 | document.addEventListener("keydown", e => {
63 | e.preventDefault();
64 | if (e.code == "KeyC" && e.ctrlKey && token !== null) {
65 | copyToClipboard(token);
66 | }
67 | });
68 |
69 | // dispatch initial token request
70 | dispatchRequest();
71 |
72 | //----------------------------------- Function definitions ----------------------------------//
73 | /**
74 | * Copy text to clipboard
75 | *
76 | * @since 3.0.0
77 | *
78 | * @param string text Text to copy
79 | * @return void
80 | */
81 | function copyToClipboard(text) {
82 | document.addEventListener(
83 | "copy",
84 | function(e) {
85 | e.clipboardData.setData("text/plain", text);
86 | e.preventDefault();
87 | },
88 | { once: true }
89 | );
90 | document.execCommand("copy");
91 |
92 | // flash container
93 | document.querySelector(".outline").classList.add("copied");
94 | setTimeout(function() {
95 | document.querySelector(".outline").classList.remove("copied");
96 | }, 200);
97 | }
98 |
99 | /**
100 | * Dispatch background token request
101 | *
102 | * @since 3.0.0
103 | *
104 | * @return void
105 | */
106 | function dispatchRequest() {
107 | // get active tab
108 | chrome.tabs.query({ active: true, currentWindow: true }, tabs => {
109 | var request = {
110 | action: "getToken",
111 | tabID: tabs[0].id,
112 | origin: new URL(tabs[0].url).origin,
113 | host: new URL(tabs[0].url).hostname
114 | };
115 | // request new token
116 | chrome.runtime.sendMessage(request, response => {
117 | if (response.hasOwnProperty("refresh")) {
118 | setTimeout(dispatchRequest, response.refresh * 1000);
119 | progress = {
120 | refresh: response.refresh,
121 | period: response.period,
122 | begin: Date.now()
123 | };
124 | }
125 | updateToken(response.token);
126 | });
127 |
128 | return true;
129 | });
130 | }
131 |
132 | /**
133 | * Update the displayed token
134 | *
135 | * @param string newToken New token data
136 | * @since 3.0.0
137 | */
138 | function updateToken(newToken) {
139 | token = newToken;
140 | m.redraw();
141 | }
142 |
--------------------------------------------------------------------------------
/src/popup/popup.less:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "Open Sans";
3 | src: url("../fonts/OpenSans-Regular.ttf");
4 | }
5 |
6 | body {
7 | display: flex;
8 | flex-direction: column;
9 | font-family: "Open Sans", sans-serif;
10 | font-size: 16px;
11 | line-height: 16px;
12 | margin: 0;
13 | padding: 5px;
14 | }
15 |
16 | .outline {
17 | display: flex;
18 | align-items: center;
19 | outline: 1px solid #7f7f7f;
20 | padding: 3px 4px;
21 | transition: background-color 0.5s ease-out, outline 0.5s ease-out;
22 |
23 | &.copied {
24 | background-color: #d0ebff;
25 | outline: 1px solid #1c7ed6;
26 | transition: none;
27 | }
28 | }
29 |
30 | .notice {
31 | font-size: 0.7em;
32 | margin-top: 2px;
33 | width: 280px;
34 | }
35 |
36 | .info + .notice {
37 | border-top: 0.5px solid #333;
38 | }
39 |
40 | .token {
41 | border: none;
42 | text-align: center;
43 | width: 100%;
44 | }
45 |
46 | .copy {
47 | background: url("../popup/copy.svg") no-repeat;
48 | background-size: cover;
49 | cursor: pointer;
50 | height: 14px;
51 | margin-left: 4px;
52 | width: 14px;
53 | }
54 |
55 | .progress {
56 | background-color: #1c7ed6;
57 | height: 3px;
58 | margin: 0 -1px;
59 | }
60 |
61 | .info {
62 | white-space: nowrap;
63 | }
64 |
--------------------------------------------------------------------------------
/src/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | JSONStream@^1.0.3:
6 | version "1.3.5"
7 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
8 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
9 | dependencies:
10 | jsonparse "^1.2.0"
11 | through ">=2.2.7 <3"
12 |
13 | acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1:
14 | version "1.8.2"
15 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
16 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
17 | dependencies:
18 | acorn "^7.0.0"
19 | acorn-walk "^7.0.0"
20 | xtend "^4.0.2"
21 |
22 | acorn-walk@^7.0.0:
23 | version "7.1.1"
24 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e"
25 | integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==
26 |
27 | acorn@^7.0.0:
28 | version "7.2.0"
29 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe"
30 | integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==
31 |
32 | ajv@^6.5.5:
33 | version "6.12.2"
34 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
35 | integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
36 | dependencies:
37 | fast-deep-equal "^3.1.1"
38 | fast-json-stable-stringify "^2.0.0"
39 | json-schema-traverse "^0.4.1"
40 | uri-js "^4.2.2"
41 |
42 | asap@~2.0.3:
43 | version "2.0.6"
44 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
45 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
46 |
47 | asn1.js@^4.0.0:
48 | version "4.10.1"
49 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
50 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
51 | dependencies:
52 | bn.js "^4.0.0"
53 | inherits "^2.0.1"
54 | minimalistic-assert "^1.0.0"
55 |
56 | asn1@~0.2.3:
57 | version "0.2.4"
58 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
59 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
60 | dependencies:
61 | safer-buffer "~2.1.0"
62 |
63 | assert-plus@1.0.0, assert-plus@^1.0.0:
64 | version "1.0.0"
65 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
66 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
67 |
68 | assert@^1.4.0:
69 | version "1.5.0"
70 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
71 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
72 | dependencies:
73 | object-assign "^4.1.1"
74 | util "0.10.3"
75 |
76 | asynckit@^0.4.0:
77 | version "0.4.0"
78 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
79 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
80 |
81 | aws-sign2@~0.7.0:
82 | version "0.7.0"
83 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
84 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
85 |
86 | aws4@^1.8.0:
87 | version "1.10.0"
88 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2"
89 | integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==
90 |
91 | balanced-match@^1.0.0:
92 | version "1.0.0"
93 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
94 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
95 |
96 | base64-js@^1.0.2:
97 | version "1.3.1"
98 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
99 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
100 |
101 | bcrypt-pbkdf@^1.0.0:
102 | version "1.0.2"
103 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
104 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
105 | dependencies:
106 | tweetnacl "^0.14.3"
107 |
108 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
109 | version "4.11.9"
110 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
111 | integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
112 |
113 | bn.js@^5.1.1:
114 | version "5.1.2"
115 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0"
116 | integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==
117 |
118 | brace-expansion@^1.1.7:
119 | version "1.1.11"
120 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
121 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
122 | dependencies:
123 | balanced-match "^1.0.0"
124 | concat-map "0.0.1"
125 |
126 | brorand@^1.0.1:
127 | version "1.1.0"
128 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
129 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
130 |
131 | browser-pack@^6.0.1:
132 | version "6.1.0"
133 | resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774"
134 | integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==
135 | dependencies:
136 | JSONStream "^1.0.3"
137 | combine-source-map "~0.8.0"
138 | defined "^1.0.0"
139 | safe-buffer "^5.1.1"
140 | through2 "^2.0.0"
141 | umd "^3.0.0"
142 |
143 | browser-resolve@^1.11.0, browser-resolve@^1.7.0:
144 | version "1.11.3"
145 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
146 | integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
147 | dependencies:
148 | resolve "1.1.7"
149 |
150 | browserify-aes@^1.0.0, browserify-aes@^1.0.4:
151 | version "1.2.0"
152 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
153 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
154 | dependencies:
155 | buffer-xor "^1.0.3"
156 | cipher-base "^1.0.0"
157 | create-hash "^1.1.0"
158 | evp_bytestokey "^1.0.3"
159 | inherits "^2.0.1"
160 | safe-buffer "^5.0.1"
161 |
162 | browserify-cipher@^1.0.0:
163 | version "1.0.1"
164 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
165 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
166 | dependencies:
167 | browserify-aes "^1.0.4"
168 | browserify-des "^1.0.0"
169 | evp_bytestokey "^1.0.0"
170 |
171 | browserify-des@^1.0.0:
172 | version "1.0.2"
173 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
174 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
175 | dependencies:
176 | cipher-base "^1.0.1"
177 | des.js "^1.0.0"
178 | inherits "^2.0.1"
179 | safe-buffer "^5.1.2"
180 |
181 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
182 | version "4.0.1"
183 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
184 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
185 | dependencies:
186 | bn.js "^4.1.0"
187 | randombytes "^2.0.1"
188 |
189 | browserify-sign@^4.0.0:
190 | version "4.2.0"
191 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11"
192 | integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==
193 | dependencies:
194 | bn.js "^5.1.1"
195 | browserify-rsa "^4.0.1"
196 | create-hash "^1.2.0"
197 | create-hmac "^1.1.7"
198 | elliptic "^6.5.2"
199 | inherits "^2.0.4"
200 | parse-asn1 "^5.1.5"
201 | readable-stream "^3.6.0"
202 | safe-buffer "^5.2.0"
203 |
204 | browserify-zlib@~0.2.0:
205 | version "0.2.0"
206 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
207 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
208 | dependencies:
209 | pako "~1.0.5"
210 |
211 | browserify@^16.2.3:
212 | version "16.5.1"
213 | resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.1.tgz#3c13c97436802930d5c3ae28658ddc33bfd37dc2"
214 | integrity sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==
215 | dependencies:
216 | JSONStream "^1.0.3"
217 | assert "^1.4.0"
218 | browser-pack "^6.0.1"
219 | browser-resolve "^1.11.0"
220 | browserify-zlib "~0.2.0"
221 | buffer "~5.2.1"
222 | cached-path-relative "^1.0.0"
223 | concat-stream "^1.6.0"
224 | console-browserify "^1.1.0"
225 | constants-browserify "~1.0.0"
226 | crypto-browserify "^3.0.0"
227 | defined "^1.0.0"
228 | deps-sort "^2.0.0"
229 | domain-browser "^1.2.0"
230 | duplexer2 "~0.1.2"
231 | events "^2.0.0"
232 | glob "^7.1.0"
233 | has "^1.0.0"
234 | htmlescape "^1.1.0"
235 | https-browserify "^1.0.0"
236 | inherits "~2.0.1"
237 | insert-module-globals "^7.0.0"
238 | labeled-stream-splicer "^2.0.0"
239 | mkdirp-classic "^0.5.2"
240 | module-deps "^6.0.0"
241 | os-browserify "~0.3.0"
242 | parents "^1.0.1"
243 | path-browserify "~0.0.0"
244 | process "~0.11.0"
245 | punycode "^1.3.2"
246 | querystring-es3 "~0.2.0"
247 | read-only-stream "^2.0.0"
248 | readable-stream "^2.0.2"
249 | resolve "^1.1.4"
250 | shasum "^1.0.0"
251 | shell-quote "^1.6.1"
252 | stream-browserify "^2.0.0"
253 | stream-http "^3.0.0"
254 | string_decoder "^1.1.1"
255 | subarg "^1.0.0"
256 | syntax-error "^1.1.1"
257 | through2 "^2.0.0"
258 | timers-browserify "^1.0.1"
259 | tty-browserify "0.0.1"
260 | url "~0.11.0"
261 | util "~0.10.1"
262 | vm-browserify "^1.0.0"
263 | xtend "^4.0.0"
264 |
265 | buffer-from@^1.0.0:
266 | version "1.1.1"
267 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
268 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
269 |
270 | buffer-xor@^1.0.3:
271 | version "1.0.3"
272 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
273 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
274 |
275 | buffer@~5.2.1:
276 | version "5.2.1"
277 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
278 | integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
279 | dependencies:
280 | base64-js "^1.0.2"
281 | ieee754 "^1.1.4"
282 |
283 | builtin-status-codes@^3.0.0:
284 | version "3.0.0"
285 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
286 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
287 |
288 | cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
289 | version "1.0.2"
290 | resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db"
291 | integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
292 |
293 | caseless@~0.12.0:
294 | version "0.12.0"
295 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
296 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
297 |
298 | chrome-extension-async@^3.3.2:
299 | version "3.4.1"
300 | resolved "https://registry.yarnpkg.com/chrome-extension-async/-/chrome-extension-async-3.4.1.tgz#bac9b1924e85c0968ed19b4d56ec98cddaf42567"
301 | integrity sha512-YBkFGFL+8MpkHvZ4nB/NU0uPkJU4LWjSlqxgXOwHcBe5sGs/YT0etEkmQXay3Op6p2c+34zf1k4Osi0ma4HtiQ==
302 |
303 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
304 | version "1.0.4"
305 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
306 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
307 | dependencies:
308 | inherits "^2.0.1"
309 | safe-buffer "^5.0.1"
310 |
311 | clone@^2.1.2:
312 | version "2.1.2"
313 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
314 | integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
315 |
316 | combine-source-map@^0.8.0, combine-source-map@~0.8.0:
317 | version "0.8.0"
318 | resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b"
319 | integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=
320 | dependencies:
321 | convert-source-map "~1.1.0"
322 | inline-source-map "~0.6.0"
323 | lodash.memoize "~3.0.3"
324 | source-map "~0.5.3"
325 |
326 | combined-stream@^1.0.6, combined-stream@~1.0.6:
327 | version "1.0.8"
328 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
329 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
330 | dependencies:
331 | delayed-stream "~1.0.0"
332 |
333 | concat-map@0.0.1:
334 | version "0.0.1"
335 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
336 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
337 |
338 | concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0:
339 | version "1.6.2"
340 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
341 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
342 | dependencies:
343 | buffer-from "^1.0.0"
344 | inherits "^2.0.3"
345 | readable-stream "^2.2.2"
346 | typedarray "^0.0.6"
347 |
348 | console-browserify@^1.1.0:
349 | version "1.2.0"
350 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
351 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
352 |
353 | constants-browserify@~1.0.0:
354 | version "1.0.0"
355 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
356 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
357 |
358 | convert-source-map@~1.1.0:
359 | version "1.1.3"
360 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
361 | integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=
362 |
363 | core-util-is@1.0.2, core-util-is@~1.0.0:
364 | version "1.0.2"
365 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
366 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
367 |
368 | create-ecdh@^4.0.0:
369 | version "4.0.3"
370 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
371 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
372 | dependencies:
373 | bn.js "^4.1.0"
374 | elliptic "^6.0.0"
375 |
376 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
377 | version "1.2.0"
378 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
379 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
380 | dependencies:
381 | cipher-base "^1.0.1"
382 | inherits "^2.0.1"
383 | md5.js "^1.3.4"
384 | ripemd160 "^2.0.1"
385 | sha.js "^2.4.0"
386 |
387 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
388 | version "1.1.7"
389 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
390 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
391 | dependencies:
392 | cipher-base "^1.0.3"
393 | create-hash "^1.1.0"
394 | inherits "^2.0.1"
395 | ripemd160 "^2.0.0"
396 | safe-buffer "^5.0.1"
397 | sha.js "^2.4.8"
398 |
399 | crypto-browserify@^3.0.0:
400 | version "3.12.0"
401 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
402 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
403 | dependencies:
404 | browserify-cipher "^1.0.0"
405 | browserify-sign "^4.0.0"
406 | create-ecdh "^4.0.0"
407 | create-hash "^1.1.0"
408 | create-hmac "^1.1.0"
409 | diffie-hellman "^5.0.0"
410 | inherits "^2.0.1"
411 | pbkdf2 "^3.0.3"
412 | public-encrypt "^4.0.0"
413 | randombytes "^2.0.0"
414 | randomfill "^1.0.3"
415 |
416 | dash-ast@^1.0.0:
417 | version "1.0.0"
418 | resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37"
419 | integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
420 |
421 | dashdash@^1.12.0:
422 | version "1.14.1"
423 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
424 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
425 | dependencies:
426 | assert-plus "^1.0.0"
427 |
428 | defined@^1.0.0:
429 | version "1.0.0"
430 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
431 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
432 |
433 | delayed-stream@~1.0.0:
434 | version "1.0.0"
435 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
436 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
437 |
438 | deps-sort@^2.0.0:
439 | version "2.0.1"
440 | resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d"
441 | integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==
442 | dependencies:
443 | JSONStream "^1.0.3"
444 | shasum-object "^1.0.0"
445 | subarg "^1.0.0"
446 | through2 "^2.0.0"
447 |
448 | des.js@^1.0.0:
449 | version "1.0.1"
450 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
451 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
452 | dependencies:
453 | inherits "^2.0.1"
454 | minimalistic-assert "^1.0.0"
455 |
456 | detective@^5.2.0:
457 | version "5.2.0"
458 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
459 | integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
460 | dependencies:
461 | acorn-node "^1.6.1"
462 | defined "^1.0.0"
463 | minimist "^1.1.1"
464 |
465 | diffie-hellman@^5.0.0:
466 | version "5.0.3"
467 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
468 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
469 | dependencies:
470 | bn.js "^4.1.0"
471 | miller-rabin "^4.0.0"
472 | randombytes "^2.0.0"
473 |
474 | domain-browser@^1.2.0:
475 | version "1.2.0"
476 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
477 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
478 |
479 | duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2:
480 | version "0.1.4"
481 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
482 | integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
483 | dependencies:
484 | readable-stream "^2.0.2"
485 |
486 | ecc-jsbn@~0.1.1:
487 | version "0.1.2"
488 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
489 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
490 | dependencies:
491 | jsbn "~0.1.0"
492 | safer-buffer "^2.1.0"
493 |
494 | elliptic@^6.0.0, elliptic@^6.5.2:
495 | version "6.5.2"
496 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
497 | integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==
498 | dependencies:
499 | bn.js "^4.4.0"
500 | brorand "^1.0.1"
501 | hash.js "^1.0.0"
502 | hmac-drbg "^1.0.0"
503 | inherits "^2.0.1"
504 | minimalistic-assert "^1.0.0"
505 | minimalistic-crypto-utils "^1.0.0"
506 |
507 | errno@^0.1.1:
508 | version "0.1.7"
509 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
510 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
511 | dependencies:
512 | prr "~1.0.1"
513 |
514 | events@^2.0.0:
515 | version "2.1.0"
516 | resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5"
517 | integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==
518 |
519 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
520 | version "1.0.3"
521 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
522 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
523 | dependencies:
524 | md5.js "^1.3.4"
525 | safe-buffer "^5.1.1"
526 |
527 | extend@~3.0.2:
528 | version "3.0.2"
529 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
530 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
531 |
532 | extsprintf@1.3.0:
533 | version "1.3.0"
534 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
535 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
536 |
537 | extsprintf@^1.2.0:
538 | version "1.4.0"
539 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
540 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
541 |
542 | fast-deep-equal@^3.1.1:
543 | version "3.1.1"
544 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
545 | integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
546 |
547 | fast-json-stable-stringify@^2.0.0:
548 | version "2.1.0"
549 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
550 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
551 |
552 | fast-safe-stringify@^2.0.7:
553 | version "2.0.7"
554 | resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
555 | integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
556 |
557 | forever-agent@~0.6.1:
558 | version "0.6.1"
559 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
560 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
561 |
562 | form-data@~2.3.2:
563 | version "2.3.3"
564 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
565 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
566 | dependencies:
567 | asynckit "^0.4.0"
568 | combined-stream "^1.0.6"
569 | mime-types "^2.1.12"
570 |
571 | fs.realpath@^1.0.0:
572 | version "1.0.0"
573 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
574 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
575 |
576 | function-bind@^1.1.1:
577 | version "1.1.1"
578 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
579 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
580 |
581 | get-assigned-identifiers@^1.2.0:
582 | version "1.2.0"
583 | resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1"
584 | integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==
585 |
586 | getpass@^0.1.1:
587 | version "0.1.7"
588 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
589 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
590 | dependencies:
591 | assert-plus "^1.0.0"
592 |
593 | glob@^7.1.0:
594 | version "7.1.6"
595 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
596 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
597 | dependencies:
598 | fs.realpath "^1.0.0"
599 | inflight "^1.0.4"
600 | inherits "2"
601 | minimatch "^3.0.4"
602 | once "^1.3.0"
603 | path-is-absolute "^1.0.0"
604 |
605 | graceful-fs@^4.1.2:
606 | version "4.2.4"
607 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
608 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
609 |
610 | har-schema@^2.0.0:
611 | version "2.0.0"
612 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
613 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
614 |
615 | har-validator@~5.1.3:
616 | version "5.1.3"
617 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
618 | integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
619 | dependencies:
620 | ajv "^6.5.5"
621 | har-schema "^2.0.0"
622 |
623 | has@^1.0.0:
624 | version "1.0.3"
625 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
626 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
627 | dependencies:
628 | function-bind "^1.1.1"
629 |
630 | hash-base@^3.0.0:
631 | version "3.1.0"
632 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
633 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
634 | dependencies:
635 | inherits "^2.0.4"
636 | readable-stream "^3.6.0"
637 | safe-buffer "^5.2.0"
638 |
639 | hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
640 | version "1.1.7"
641 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
642 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
643 | dependencies:
644 | inherits "^2.0.3"
645 | minimalistic-assert "^1.0.1"
646 |
647 | hmac-drbg@^1.0.0:
648 | version "1.0.1"
649 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
650 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
651 | dependencies:
652 | hash.js "^1.0.3"
653 | minimalistic-assert "^1.0.0"
654 | minimalistic-crypto-utils "^1.0.1"
655 |
656 | htmlescape@^1.1.0:
657 | version "1.1.1"
658 | resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
659 | integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=
660 |
661 | http-signature@~1.2.0:
662 | version "1.2.0"
663 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
664 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
665 | dependencies:
666 | assert-plus "^1.0.0"
667 | jsprim "^1.2.2"
668 | sshpk "^1.7.0"
669 |
670 | https-browserify@^1.0.0:
671 | version "1.0.0"
672 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
673 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
674 |
675 | ieee754@^1.1.4:
676 | version "1.1.13"
677 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
678 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
679 |
680 | image-size@~0.5.0:
681 | version "0.5.5"
682 | resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
683 | integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
684 |
685 | inflight@^1.0.4:
686 | version "1.0.6"
687 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
688 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
689 | dependencies:
690 | once "^1.3.0"
691 | wrappy "1"
692 |
693 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
694 | version "2.0.4"
695 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
696 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
697 |
698 | inherits@2.0.1:
699 | version "2.0.1"
700 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
701 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
702 |
703 | inherits@2.0.3:
704 | version "2.0.3"
705 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
706 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
707 |
708 | inline-source-map@~0.6.0:
709 | version "0.6.2"
710 | resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
711 | integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=
712 | dependencies:
713 | source-map "~0.5.3"
714 |
715 | insert-module-globals@^7.0.0:
716 | version "7.2.0"
717 | resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba"
718 | integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==
719 | dependencies:
720 | JSONStream "^1.0.3"
721 | acorn-node "^1.5.2"
722 | combine-source-map "^0.8.0"
723 | concat-stream "^1.6.1"
724 | is-buffer "^1.1.0"
725 | path-is-absolute "^1.0.1"
726 | process "~0.11.0"
727 | through2 "^2.0.0"
728 | undeclared-identifiers "^1.1.2"
729 | xtend "^4.0.0"
730 |
731 | is-buffer@^1.1.0:
732 | version "1.1.6"
733 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
734 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
735 |
736 | is-typedarray@~1.0.0:
737 | version "1.0.0"
738 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
739 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
740 |
741 | isarray@~1.0.0:
742 | version "1.0.0"
743 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
744 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
745 |
746 | isstream@~0.1.2:
747 | version "0.1.2"
748 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
749 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
750 |
751 | jsbn@~0.1.0:
752 | version "0.1.1"
753 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
754 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
755 |
756 | json-schema-traverse@^0.4.1:
757 | version "0.4.1"
758 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
759 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
760 |
761 | json-schema@0.2.3:
762 | version "0.2.3"
763 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
764 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
765 |
766 | json-stable-stringify@~0.0.0:
767 | version "0.0.1"
768 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45"
769 | integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=
770 | dependencies:
771 | jsonify "~0.0.0"
772 |
773 | json-stringify-safe@~5.0.1:
774 | version "5.0.1"
775 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
776 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
777 |
778 | jsonify@~0.0.0:
779 | version "0.0.0"
780 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
781 | integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
782 |
783 | jsonparse@^1.2.0:
784 | version "1.3.1"
785 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
786 | integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
787 |
788 | jsprim@^1.2.2:
789 | version "1.4.1"
790 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
791 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
792 | dependencies:
793 | assert-plus "1.0.0"
794 | extsprintf "1.3.0"
795 | json-schema "0.2.3"
796 | verror "1.10.0"
797 |
798 | labeled-stream-splicer@^2.0.0:
799 | version "2.0.2"
800 | resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21"
801 | integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==
802 | dependencies:
803 | inherits "^2.0.1"
804 | stream-splicer "^2.0.0"
805 |
806 | less@^3.9.0:
807 | version "3.11.2"
808 | resolved "https://registry.yarnpkg.com/less/-/less-3.11.2.tgz#51a484e9017287f5ac3db921cb86970eb7506e81"
809 | integrity sha512-ed8Lir98Tu6a+LeU7+8ShpRLSUdk//lWf1sh+5w7tNju4wGItztqDHp03Z+a2o1nzU6pObVxw1n4Gu7VzQYusQ==
810 | dependencies:
811 | clone "^2.1.2"
812 | tslib "^1.10.0"
813 | optionalDependencies:
814 | errno "^0.1.1"
815 | graceful-fs "^4.1.2"
816 | image-size "~0.5.0"
817 | make-dir "^2.1.0"
818 | mime "^1.4.1"
819 | promise "^7.1.1"
820 | request "^2.83.0"
821 | source-map "~0.6.0"
822 |
823 | lodash.memoize@~3.0.3:
824 | version "3.0.4"
825 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
826 | integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=
827 |
828 | make-dir@^2.1.0:
829 | version "2.1.0"
830 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
831 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
832 | dependencies:
833 | pify "^4.0.1"
834 | semver "^5.6.0"
835 |
836 | md5.js@^1.3.4:
837 | version "1.3.5"
838 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
839 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
840 | dependencies:
841 | hash-base "^3.0.0"
842 | inherits "^2.0.1"
843 | safe-buffer "^5.1.2"
844 |
845 | miller-rabin@^4.0.0:
846 | version "4.0.1"
847 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
848 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
849 | dependencies:
850 | bn.js "^4.0.0"
851 | brorand "^1.0.1"
852 |
853 | mime-db@1.44.0:
854 | version "1.44.0"
855 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
856 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
857 |
858 | mime-types@^2.1.12, mime-types@~2.1.19:
859 | version "2.1.27"
860 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
861 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
862 | dependencies:
863 | mime-db "1.44.0"
864 |
865 | mime@^1.4.1:
866 | version "1.6.0"
867 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
868 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
869 |
870 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
871 | version "1.0.1"
872 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
873 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
874 |
875 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
876 | version "1.0.1"
877 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
878 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
879 |
880 | minimatch@^3.0.4:
881 | version "3.0.4"
882 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
883 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
884 | dependencies:
885 | brace-expansion "^1.1.7"
886 |
887 | minimist@^1.1.0, minimist@^1.1.1:
888 | version "1.2.5"
889 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
890 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
891 |
892 | mithril@^1.1.0:
893 | version "1.1.7"
894 | resolved "https://registry.yarnpkg.com/mithril/-/mithril-1.1.7.tgz#505d7d77fe164ff16969de8f9b6eda42e0346cbe"
895 | integrity sha512-1SAkGeVrIVvkUHlPHvR3pXdWzNfTzmS/fBAe+rC2ApEBfZFFc+idi8Qg/M5JoW/sZkIDXSfQYVgvENMIhBIVAg==
896 |
897 | mkdirp-classic@^0.5.2:
898 | version "0.5.3"
899 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
900 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
901 |
902 | module-deps@^6.0.0:
903 | version "6.2.2"
904 | resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.2.tgz#d8a15c2265dfc119153c29bb47386987d0ee423b"
905 | integrity sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==
906 | dependencies:
907 | JSONStream "^1.0.3"
908 | browser-resolve "^1.7.0"
909 | cached-path-relative "^1.0.2"
910 | concat-stream "~1.6.0"
911 | defined "^1.0.0"
912 | detective "^5.2.0"
913 | duplexer2 "^0.1.2"
914 | inherits "^2.0.1"
915 | parents "^1.0.0"
916 | readable-stream "^2.0.2"
917 | resolve "^1.4.0"
918 | stream-combiner2 "^1.1.1"
919 | subarg "^1.0.0"
920 | through2 "^2.0.0"
921 | xtend "^4.0.0"
922 |
923 | moment@^2.24.0:
924 | version "2.26.0"
925 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a"
926 | integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==
927 |
928 | oauth-sign@~0.9.0:
929 | version "0.9.0"
930 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
931 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
932 |
933 | object-assign@^4.1.1:
934 | version "4.1.1"
935 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
936 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
937 |
938 | once@^1.3.0:
939 | version "1.4.0"
940 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
941 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
942 | dependencies:
943 | wrappy "1"
944 |
945 | os-browserify@~0.3.0:
946 | version "0.3.0"
947 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
948 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
949 |
950 | otplib@^11.0.0:
951 | version "11.0.1"
952 | resolved "https://registry.yarnpkg.com/otplib/-/otplib-11.0.1.tgz#7d64aa87029f07c99c7f96819fb10cdb67dea886"
953 | integrity sha512-oi57teljNyWTC/JqJztHOtSGeFNDiDh5C1myd+faocUtFAX27Sm1mbx69kpEJ8/JqrblI3kAm4Pqd6tZJoOIBQ==
954 | dependencies:
955 | thirty-two "1.0.2"
956 |
957 | pako@~1.0.5:
958 | version "1.0.11"
959 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
960 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
961 |
962 | parents@^1.0.0, parents@^1.0.1:
963 | version "1.0.1"
964 | resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
965 | integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=
966 | dependencies:
967 | path-platform "~0.11.15"
968 |
969 | parse-asn1@^5.0.0, parse-asn1@^5.1.5:
970 | version "5.1.5"
971 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e"
972 | integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==
973 | dependencies:
974 | asn1.js "^4.0.0"
975 | browserify-aes "^1.0.0"
976 | create-hash "^1.1.0"
977 | evp_bytestokey "^1.0.0"
978 | pbkdf2 "^3.0.3"
979 | safe-buffer "^5.1.1"
980 |
981 | path-browserify@~0.0.0:
982 | version "0.0.1"
983 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
984 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
985 |
986 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
987 | version "1.0.1"
988 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
989 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
990 |
991 | path-parse@^1.0.6:
992 | version "1.0.6"
993 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
994 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
995 |
996 | path-platform@~0.11.15:
997 | version "0.11.15"
998 | resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
999 | integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=
1000 |
1001 | pbkdf2@^3.0.3:
1002 | version "3.0.17"
1003 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
1004 | integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
1005 | dependencies:
1006 | create-hash "^1.1.2"
1007 | create-hmac "^1.1.4"
1008 | ripemd160 "^2.0.1"
1009 | safe-buffer "^5.0.1"
1010 | sha.js "^2.4.8"
1011 |
1012 | performance-now@^2.1.0:
1013 | version "2.1.0"
1014 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
1015 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
1016 |
1017 | pify@^4.0.1:
1018 | version "4.0.1"
1019 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
1020 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
1021 |
1022 | prettier@^1.16.4:
1023 | version "1.19.1"
1024 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
1025 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
1026 |
1027 | process-nextick-args@~2.0.0:
1028 | version "2.0.1"
1029 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
1030 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1031 |
1032 | process@~0.11.0:
1033 | version "0.11.10"
1034 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1035 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
1036 |
1037 | promise@^7.1.1:
1038 | version "7.3.1"
1039 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
1040 | integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
1041 | dependencies:
1042 | asap "~2.0.3"
1043 |
1044 | prr@~1.0.1:
1045 | version "1.0.1"
1046 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
1047 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
1048 |
1049 | psl@^1.1.28:
1050 | version "1.8.0"
1051 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
1052 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
1053 |
1054 | public-encrypt@^4.0.0:
1055 | version "4.0.3"
1056 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
1057 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
1058 | dependencies:
1059 | bn.js "^4.1.0"
1060 | browserify-rsa "^4.0.0"
1061 | create-hash "^1.1.0"
1062 | parse-asn1 "^5.0.0"
1063 | randombytes "^2.0.1"
1064 | safe-buffer "^5.1.2"
1065 |
1066 | punycode@1.3.2:
1067 | version "1.3.2"
1068 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
1069 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
1070 |
1071 | punycode@^1.3.2:
1072 | version "1.4.1"
1073 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1074 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
1075 |
1076 | punycode@^2.1.0, punycode@^2.1.1:
1077 | version "2.1.1"
1078 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1079 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1080 |
1081 | qs@~6.5.2:
1082 | version "6.5.2"
1083 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
1084 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
1085 |
1086 | querystring-es3@~0.2.0:
1087 | version "0.2.1"
1088 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
1089 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
1090 |
1091 | querystring@0.2.0:
1092 | version "0.2.0"
1093 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
1094 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
1095 |
1096 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
1097 | version "2.1.0"
1098 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1099 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1100 | dependencies:
1101 | safe-buffer "^5.1.0"
1102 |
1103 | randomfill@^1.0.3:
1104 | version "1.0.4"
1105 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
1106 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
1107 | dependencies:
1108 | randombytes "^2.0.5"
1109 | safe-buffer "^5.1.0"
1110 |
1111 | read-only-stream@^2.0.0:
1112 | version "2.0.0"
1113 | resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
1114 | integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=
1115 | dependencies:
1116 | readable-stream "^2.0.2"
1117 |
1118 | readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6:
1119 | version "2.3.7"
1120 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
1121 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
1122 | dependencies:
1123 | core-util-is "~1.0.0"
1124 | inherits "~2.0.3"
1125 | isarray "~1.0.0"
1126 | process-nextick-args "~2.0.0"
1127 | safe-buffer "~5.1.1"
1128 | string_decoder "~1.1.1"
1129 | util-deprecate "~1.0.1"
1130 |
1131 | readable-stream@^3.6.0:
1132 | version "3.6.0"
1133 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
1134 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
1135 | dependencies:
1136 | inherits "^2.0.3"
1137 | string_decoder "^1.1.1"
1138 | util-deprecate "^1.0.1"
1139 |
1140 | request@^2.83.0:
1141 | version "2.88.2"
1142 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
1143 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
1144 | dependencies:
1145 | aws-sign2 "~0.7.0"
1146 | aws4 "^1.8.0"
1147 | caseless "~0.12.0"
1148 | combined-stream "~1.0.6"
1149 | extend "~3.0.2"
1150 | forever-agent "~0.6.1"
1151 | form-data "~2.3.2"
1152 | har-validator "~5.1.3"
1153 | http-signature "~1.2.0"
1154 | is-typedarray "~1.0.0"
1155 | isstream "~0.1.2"
1156 | json-stringify-safe "~5.0.1"
1157 | mime-types "~2.1.19"
1158 | oauth-sign "~0.9.0"
1159 | performance-now "^2.1.0"
1160 | qs "~6.5.2"
1161 | safe-buffer "^5.1.2"
1162 | tough-cookie "~2.5.0"
1163 | tunnel-agent "^0.6.0"
1164 | uuid "^3.3.2"
1165 |
1166 | resolve@1.1.7:
1167 | version "1.1.7"
1168 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
1169 | integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
1170 |
1171 | resolve@^1.1.4, resolve@^1.4.0:
1172 | version "1.17.0"
1173 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
1174 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
1175 | dependencies:
1176 | path-parse "^1.0.6"
1177 |
1178 | ripemd160@^2.0.0, ripemd160@^2.0.1:
1179 | version "2.0.2"
1180 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
1181 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
1182 | dependencies:
1183 | hash-base "^3.0.0"
1184 | inherits "^2.0.1"
1185 |
1186 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
1187 | version "5.2.1"
1188 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1189 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1190 |
1191 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1192 | version "5.1.2"
1193 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1194 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1195 |
1196 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
1197 | version "2.1.2"
1198 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1199 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1200 |
1201 | semver@^5.6.0:
1202 | version "5.7.1"
1203 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1204 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1205 |
1206 | sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4:
1207 | version "2.4.11"
1208 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
1209 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
1210 | dependencies:
1211 | inherits "^2.0.1"
1212 | safe-buffer "^5.0.1"
1213 |
1214 | shasum-object@^1.0.0:
1215 | version "1.0.0"
1216 | resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e"
1217 | integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==
1218 | dependencies:
1219 | fast-safe-stringify "^2.0.7"
1220 |
1221 | shasum@^1.0.0:
1222 | version "1.0.2"
1223 | resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f"
1224 | integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8=
1225 | dependencies:
1226 | json-stable-stringify "~0.0.0"
1227 | sha.js "~2.4.4"
1228 |
1229 | shell-quote@^1.6.1:
1230 | version "1.7.2"
1231 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
1232 | integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
1233 |
1234 | simple-concat@^1.0.0:
1235 | version "1.0.0"
1236 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
1237 | integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
1238 |
1239 | source-map@~0.5.3:
1240 | version "0.5.7"
1241 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1242 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1243 |
1244 | source-map@~0.6.0:
1245 | version "0.6.1"
1246 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1247 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1248 |
1249 | sshpk@^1.7.0:
1250 | version "1.16.1"
1251 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
1252 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
1253 | dependencies:
1254 | asn1 "~0.2.3"
1255 | assert-plus "^1.0.0"
1256 | bcrypt-pbkdf "^1.0.0"
1257 | dashdash "^1.12.0"
1258 | ecc-jsbn "~0.1.1"
1259 | getpass "^0.1.1"
1260 | jsbn "~0.1.0"
1261 | safer-buffer "^2.0.2"
1262 | tweetnacl "~0.14.0"
1263 |
1264 | stream-browserify@^2.0.0:
1265 | version "2.0.2"
1266 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
1267 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
1268 | dependencies:
1269 | inherits "~2.0.1"
1270 | readable-stream "^2.0.2"
1271 |
1272 | stream-combiner2@^1.1.1:
1273 | version "1.1.1"
1274 | resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
1275 | integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4=
1276 | dependencies:
1277 | duplexer2 "~0.1.0"
1278 | readable-stream "^2.0.2"
1279 |
1280 | stream-http@^3.0.0:
1281 | version "3.1.1"
1282 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564"
1283 | integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==
1284 | dependencies:
1285 | builtin-status-codes "^3.0.0"
1286 | inherits "^2.0.4"
1287 | readable-stream "^3.6.0"
1288 | xtend "^4.0.2"
1289 |
1290 | stream-splicer@^2.0.0:
1291 | version "2.0.1"
1292 | resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd"
1293 | integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==
1294 | dependencies:
1295 | inherits "^2.0.1"
1296 | readable-stream "^2.0.2"
1297 |
1298 | string_decoder@^1.1.1:
1299 | version "1.3.0"
1300 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
1301 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
1302 | dependencies:
1303 | safe-buffer "~5.2.0"
1304 |
1305 | string_decoder@~1.1.1:
1306 | version "1.1.1"
1307 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1308 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1309 | dependencies:
1310 | safe-buffer "~5.1.0"
1311 |
1312 | subarg@^1.0.0:
1313 | version "1.0.0"
1314 | resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
1315 | integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI=
1316 | dependencies:
1317 | minimist "^1.1.0"
1318 |
1319 | syntax-error@^1.1.1:
1320 | version "1.4.0"
1321 | resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c"
1322 | integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==
1323 | dependencies:
1324 | acorn-node "^1.2.0"
1325 |
1326 | thirty-two@1.0.2:
1327 | version "1.0.2"
1328 | resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
1329 | integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno=
1330 |
1331 | through2@^2.0.0:
1332 | version "2.0.5"
1333 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
1334 | integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
1335 | dependencies:
1336 | readable-stream "~2.3.6"
1337 | xtend "~4.0.1"
1338 |
1339 | "through@>=2.2.7 <3":
1340 | version "2.3.8"
1341 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1342 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1343 |
1344 | timers-browserify@^1.0.1:
1345 | version "1.4.2"
1346 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
1347 | integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=
1348 | dependencies:
1349 | process "~0.11.0"
1350 |
1351 | tough-cookie@~2.5.0:
1352 | version "2.5.0"
1353 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
1354 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
1355 | dependencies:
1356 | psl "^1.1.28"
1357 | punycode "^2.1.1"
1358 |
1359 | tslib@^1.10.0:
1360 | version "1.13.0"
1361 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
1362 | integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
1363 |
1364 | tty-browserify@0.0.1:
1365 | version "0.0.1"
1366 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
1367 | integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
1368 |
1369 | tunnel-agent@^0.6.0:
1370 | version "0.6.0"
1371 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
1372 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
1373 | dependencies:
1374 | safe-buffer "^5.0.1"
1375 |
1376 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1377 | version "0.14.5"
1378 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
1379 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
1380 |
1381 | typedarray@^0.0.6:
1382 | version "0.0.6"
1383 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1384 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
1385 |
1386 | umd@^3.0.0:
1387 | version "3.0.3"
1388 | resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf"
1389 | integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==
1390 |
1391 | undeclared-identifiers@^1.1.2:
1392 | version "1.1.3"
1393 | resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f"
1394 | integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==
1395 | dependencies:
1396 | acorn-node "^1.3.0"
1397 | dash-ast "^1.0.0"
1398 | get-assigned-identifiers "^1.2.0"
1399 | simple-concat "^1.0.0"
1400 | xtend "^4.0.1"
1401 |
1402 | uri-js@^4.2.2:
1403 | version "4.2.2"
1404 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
1405 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
1406 | dependencies:
1407 | punycode "^2.1.0"
1408 |
1409 | url@~0.11.0:
1410 | version "0.11.0"
1411 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
1412 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
1413 | dependencies:
1414 | punycode "1.3.2"
1415 | querystring "0.2.0"
1416 |
1417 | util-deprecate@^1.0.1, util-deprecate@~1.0.1:
1418 | version "1.0.2"
1419 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1420 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1421 |
1422 | util@0.10.3:
1423 | version "0.10.3"
1424 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
1425 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
1426 | dependencies:
1427 | inherits "2.0.1"
1428 |
1429 | util@~0.10.1:
1430 | version "0.10.4"
1431 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
1432 | integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
1433 | dependencies:
1434 | inherits "2.0.3"
1435 |
1436 | uuid@^3.3.2:
1437 | version "3.4.0"
1438 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
1439 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
1440 |
1441 | verror@1.10.0:
1442 | version "1.10.0"
1443 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
1444 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
1445 | dependencies:
1446 | assert-plus "^1.0.0"
1447 | core-util-is "1.0.2"
1448 | extsprintf "^1.2.0"
1449 |
1450 | vm-browserify@^1.0.0:
1451 | version "1.1.2"
1452 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
1453 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
1454 |
1455 | wrappy@1:
1456 | version "1.0.2"
1457 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1458 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1459 |
1460 | xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:
1461 | version "4.0.2"
1462 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1463 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1464 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | base32-decode@^1.0.0:
6 | version "1.0.0"
7 | resolved "https://registry.yarnpkg.com/base32-decode/-/base32-decode-1.0.0.tgz#2a821d6a664890c872f20aa9aca95a4b4b80e2a7"
8 | integrity sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g==
9 |
--------------------------------------------------------------------------------