├── .gitignore ├── examples ├── README.md ├── todomvc │ ├── README.md │ ├── webpack.config.js │ ├── dev-build.edn │ ├── package.json │ ├── deps.edn │ └── src │ │ └── todomvc │ │ └── core.cljs ├── calculator │ ├── webpack.config.js │ ├── dev-build.edn │ ├── package.json │ ├── deps.edn │ ├── src │ │ └── calculator │ │ │ ├── events.cljs │ │ │ └── core.cljs │ └── package-lock.json └── showcase │ ├── webpack.config.js │ ├── dev-build.edn │ ├── package.json │ ├── deps.edn │ └── src │ └── showcase │ └── core.cljs ├── webpack.config.js ├── dev-build.edn ├── package.json ├── deps.edn ├── LICENSE ├── src └── koukku │ ├── html.cljs │ ├── core.cljs │ ├── html │ └── markdown.clj │ ├── events.cljs │ └── html.clj └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | **/node_modules/ 2 | **/out/ 3 | **/.cpcache/ 4 | **/.nrepl-port 5 | **/koukku.debug -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | # Some small example applications using koukku 2 | 3 | - *todomvc* is the traditional TODO list app 4 | -------------------------------------------------------------------------------- /examples/todomvc/README.md: -------------------------------------------------------------------------------- 1 | # koukku todomvc example 2 | 3 | Implements todomvc like app with MaterialUI components. 4 | 5 | run with: `clj -A:dev` 6 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: './out/index.js', 3 | output: { 4 | path: __dirname + "/out", 5 | filename: 'out/main.js' 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/calculator/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: './out/index.js', 3 | output: { 4 | path: __dirname + "/out", 5 | filename: 'out/main.js' 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/showcase/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: './out/index.js', 3 | output: { 4 | path: __dirname + "/out", 5 | filename: 'out/main.js' 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/todomvc/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | entry: './out/index.js', 3 | output: { 4 | path: __dirname + "/out", 5 | filename: 'out/main.js' 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /dev-build.edn: -------------------------------------------------------------------------------- 1 | {:main koukku.demo 2 | :output-to "out/index.js" 3 | :output-dir "out" 4 | :target :bundle 5 | :bundle-cmd {:none ["npx" "webpack" "--mode=development"] 6 | :default ["npx" "webpack"]}} 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "react": "^16.13.1", 4 | "react-dom": "^16.13.1" 5 | }, 6 | "devDependencies": { 7 | "webpack": "^4.43.0", 8 | "webpack-cli": "^3.3.11" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/showcase/dev-build.edn: -------------------------------------------------------------------------------- 1 | {:main showcase.core 2 | :output-to "out/index.js" 3 | :output-dir "out" 4 | :target :bundle 5 | :bundle-cmd {:none ["npx" "webpack" "--mode=development"] 6 | :default ["npx" "webpack"]}} 7 | -------------------------------------------------------------------------------- /examples/todomvc/dev-build.edn: -------------------------------------------------------------------------------- 1 | {:main todomvc.core 2 | :output-to "out/index.js" 3 | :output-dir "out" 4 | :target :bundle 5 | :bundle-cmd {:none ["npx" "webpack" "--mode=development"] 6 | :default ["npx" "webpack"]}} 7 | -------------------------------------------------------------------------------- /examples/calculator/dev-build.edn: -------------------------------------------------------------------------------- 1 | {:main calculator.core 2 | :output-to "out/index.js" 3 | :output-dir "out" 4 | :target :bundle 5 | :bundle-cmd {:none ["npx" "webpack" "--mode=development"] 6 | :default ["npx" "webpack"]}} 7 | -------------------------------------------------------------------------------- /examples/calculator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "webpack": "^4.43.0", 4 | "webpack-cli": "^3.3.11" 5 | }, 6 | "dependencies": { 7 | "react": "^16.13.1", 8 | "react-dom": "^16.13.1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/showcase/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "webpack": "^4.43.0", 4 | "webpack-cli": "^3.3.11" 5 | }, 6 | "dependencies": { 7 | "react": "^16.13.1", 8 | "react-dom": "^16.13.1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /examples/todomvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "webpack": "^4.43.0", 4 | "webpack-cli": "^3.3.11" 5 | }, 6 | "dependencies": { 7 | "@material-ui/core": "^4.9.11", 8 | "react": "^16.13.1", 9 | "react-dom": "^16.13.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/todomvc/deps.edn: -------------------------------------------------------------------------------- 1 | {:paths ["../../src" "src"] 2 | :deps {org.clojure/clojurescript {:mvn/version "1.10.741"}} 3 | :aliases {:dev {:main-opts ["-m" "cljs.main" "-co" "dev-build.edn" "-v" "-c" "-r" 4 | "-w" "src" 5 | ]}}} 6 | -------------------------------------------------------------------------------- /examples/calculator/deps.edn: -------------------------------------------------------------------------------- 1 | {:paths ["../../src" "src"] 2 | :deps {org.clojure/clojurescript {:mvn/version "1.10.741"}} 3 | :aliases {:dev {:main-opts ["-m" "cljs.main" "-co" "dev-build.edn" "-v" "-c" "-r" 4 | "-w" "src" 5 | ]}}} 6 | -------------------------------------------------------------------------------- /examples/showcase/deps.edn: -------------------------------------------------------------------------------- 1 | {:paths ["src"] 2 | :deps {koukku {:local/root "../.."} 3 | org.clojure/clojurescript {:mvn/version "1.10.741"}} 4 | :aliases {:dev {:main-opts ["-m" "cljs.main" "-co" "dev-build.edn" "-v" "-c" "-r" 5 | "-w" "src" 6 | ]}}} 7 | -------------------------------------------------------------------------------- /deps.edn: -------------------------------------------------------------------------------- 1 | {:paths ["src"] 2 | :deps {org.clojure/clojurescript {:mvn/version "1.10.741"} 3 | org.jsoup/jsoup {:mvn/version "1.11.3"} 4 | com.vladsch.flexmark/flexmark-all {:mvn/version "0.61.20"}} 5 | :aliases {:dev {:main-opts ["-m" "cljs.main" "-co" "dev-build.edn" "-v" "-c" "-r" 6 | "-w" "src" 7 | ]}}} 8 | -------------------------------------------------------------------------------- /examples/showcase/src/showcase/core.cljs: -------------------------------------------------------------------------------- 1 | (ns showcase.core 2 | "Various little tests for koukku... nothing interesting" 3 | (:require [koukku.core :as k] 4 | [koukku.html :as h])) 5 | 6 | (defn markdown [{:keys [name description]}] 7 | (h/html 8 | [::h/md 9 | " 10 | ## This is my section 11 | And here I have a list of my info: 12 | - **name**: " name " 13 | - **description**: " description " 14 | 15 | 16 | "])) 17 | 18 | (defn showcase-root [] 19 | (h/html 20 | [:<> 21 | [:h1 "markdown test"] 22 | [markdown {:name "Koukku" 23 | :description "a React library"}]])) 24 | 25 | (defn main [] 26 | (k/main showcase-root "app")) 27 | 28 | (main) 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Tatu Tarvainen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/calculator/src/calculator/events.cljs: -------------------------------------------------------------------------------- 1 | (ns calculator.events 2 | (:require [koukku.events :as ev])) 3 | 4 | (defrecord InputNumber [num]) 5 | (defrecord Op [op]) 6 | (defrecord Clear []) 7 | 8 | (defn operate [op n1 n2] 9 | ((case op 10 | "*" * 11 | "/" / 12 | "-" - 13 | "+" +) n1 n2)) 14 | 15 | (defn handle-op [op {:keys [input-number result store-op] :as state}] 16 | (cond 17 | (nil? result) 18 | {:result input-number 19 | :store-op (if (= op "=") nil op) 20 | :input-number 0} 21 | 22 | (and store-op (= op "=")) 23 | {:result (operate store-op result input-number) 24 | :input-number 0} 25 | 26 | (= op "=") 27 | state 28 | 29 | :else 30 | {:result (operate (or store-op op) result input-number) 31 | :store-op (if store-op op nil) 32 | :input-number 0})) 33 | 34 | (defrecord BeastEffect [] 35 | ev/Effect 36 | (process-effect [_] 37 | (js/alert "Oh no, that's a bad number!") 38 | (js/setTimeout (ev/e! ->Clear) 2000))) 39 | 40 | (extend-protocol ev/Event 41 | InputNumber 42 | (process-event [{num :num} state] 43 | (update state :input-number #(+ (* 10 %) num))) 44 | 45 | Op 46 | (process-event [{op :op} state] 47 | (let [new-state (handle-op op state)] 48 | (if (= 666 (:result new-state)) 49 | ;; unacceptable! 50 | (ev/fx new-state 51 | (->BeastEffect)) 52 | 53 | ;; carry on calculating 54 | new-state))) 55 | 56 | Clear 57 | (process-event [_ _] 58 | {:input-number 0})) 59 | -------------------------------------------------------------------------------- /examples/calculator/src/calculator/core.cljs: -------------------------------------------------------------------------------- 1 | (ns calculator.core 2 | (:require [koukku.core :as k] 3 | [koukku.html :as h] 4 | [koukku.events :refer [e! with-state]] 5 | [calculator.events :as ev])) 6 | 7 | (def initial-calculator-state {:input-number 0}) 8 | 9 | (defn number-button [n] 10 | (h/html 11 | [:button {:on-click (e! ev/->InputNumber n)} 12 | (str n)])) 13 | 14 | (defn op-button [op] 15 | (h/html 16 | [:button {:on-click (e! ev/->InputNumber op)} 17 | op])) 18 | 19 | (defn calculator [{:keys [input-number result] :as state}] 20 | (h/html 21 | [:<> 22 | [:table ;; A good old fashioned table 23 | [:tbody 24 | [:tr.result 25 | [:td {:col-span 4 26 | :style {:text-align :right}} 27 | (if (and result (zero? input-number)) 28 | (str result) 29 | (str input-number))]] 30 | [::h/for [row [[7 8 9 nil] 31 | [4 5 6 "*"] 32 | [1 2 3 "/"] 33 | [0 "+" "-" "="]]] 34 | ^{:key (first row)} 35 | [:tr.buttons 36 | [::h/for [btn row] 37 | ^{:key btn} 38 | [:td.button 39 | [::h/cond 40 | (nil? btn) "" 41 | (number? btn) [number-button btn] 42 | :else [op-button btn]]]]]]]] 43 | (pr-str state)])) 44 | 45 | (defn calculator-root [] 46 | (with-state {:initial-state initial-calculator-state} 47 | calculator)) 48 | 49 | (defn main [] 50 | (k/main calculator-root "app")) 51 | 52 | (main) 53 | -------------------------------------------------------------------------------- /src/koukku/html.cljs: -------------------------------------------------------------------------------- 1 | (ns koukku.html 2 | (:require-macros [koukku.html]) 3 | (:require react 4 | [goog.object :as gobj])) 5 | 6 | (defn ->js [x] 7 | (cond 8 | (map? x) 9 | (reduce (fn [acc [key val]] 10 | (aset acc 11 | (if (keyword? key) 12 | (name key) 13 | key) 14 | (->js val)) 15 | acc) 16 | #js {} 17 | x) 18 | 19 | (vector? x) 20 | (reduce (fn [acc val] 21 | (.push acc val) 22 | acc) 23 | #js [] 24 | x) 25 | 26 | :else 27 | x)) 28 | 29 | (defn gather-children [& children] 30 | (reduce 31 | (fn [acc child] 32 | (.push acc child) 33 | acc) 34 | #js [] 35 | (mapcat #(if (seq? %) % [%]) children))) 36 | 37 | 38 | (def component-fn-host 39 | (memoize 40 | (fn [comp-name comp-fn] 41 | (let [host (fn [props _children] 42 | (apply comp-fn (aget props "args")))] 43 | (set! (.-displayName host) comp-name) 44 | host)))) 45 | 46 | (defn ->elt [element props & children] 47 | (apply react/createElement 48 | element 49 | props 50 | children)) 51 | 52 | (defn ->fragment [props & children] 53 | (apply react/createElement 54 | react/Fragment 55 | props 56 | children)) 57 | 58 | (defn js-comp 59 | "Return JS component usable with react/createElement. 60 | If comp is js object containing \"default\" key, it is 61 | a required module. 62 | Otherwise the component is returned as is." 63 | [comp] 64 | (if (and (object? comp) 65 | (gobj/containsKey comp "default")) 66 | (gobj/get comp "default") 67 | comp)) 68 | -------------------------------------------------------------------------------- /src/koukku/core.cljs: -------------------------------------------------------------------------------- 1 | (ns koukku.core 2 | "Koukku the hook based React library" 3 | (:require react 4 | react-dom)) 5 | 6 | (defn- get-or-create-element [id] 7 | (let [elt (js/document.getElementById id)] 8 | (or elt 9 | (let [elt (js/document.createElement "div")] 10 | (js/document.body.appendChild elt) 11 | elt)))) 12 | 13 | (defn main 14 | "Main entrypoint: renders component to page." 15 | [component-fn element-or-id] 16 | (let [elt (if (string? element-or-id) 17 | (get-or-create-element element-or-id) 18 | element-or-id)] 19 | (react-dom/render (react/createElement component-fn nil) elt))) 20 | 21 | (defn use-effect 22 | "Simple wrapper for react/useEffect. Takes effect fn 23 | and optional dependencies. 24 | 25 | If effect-fn returns a function, it is used as the cleanup." 26 | [effect-fn & dependencies] 27 | (react/useEffect (fn [] 28 | (let [ret (effect-fn)] 29 | (if (fn? ret) 30 | ret 31 | (constantly nil)))) 32 | (into-array dependencies))) 33 | 34 | (defn use-state 35 | "Simple wrapper for react/useState." 36 | [initial-state] 37 | (react/useState initial-state)) 38 | 39 | (defn use-reducer 40 | "Simple wrapper for react/useReducer. 41 | Wraps the reducer-fn in a function so any clojure `ifn?` implementing 42 | object with 2-arity can be used as reducer (like multimethods)." 43 | [reducer-fn initial-state] 44 | (react/useReducer (fn [state action] 45 | (reducer-fn state action)) 46 | initial-state)) 47 | 48 | (defn use-context 49 | "Simple wrapper for react/useContext." 50 | [ctx] 51 | (react/useContext ctx)) 52 | -------------------------------------------------------------------------------- /src/koukku/html/markdown.clj: -------------------------------------------------------------------------------- 1 | (ns koukku.html.markdown 2 | "Implement compiler for markdown using commonmark library" 3 | (:import (com.vladsch.flexmark.parser Parser) 4 | (com.vladsch.flexmark.html HtmlRenderer) 5 | (org.jsoup Jsoup) 6 | (org.jsoup.nodes Element Comment DataNode DocumentType TextNode XmlDeclaration)) 7 | (:require [clojure.string :as str])) 8 | 9 | (defn parse [str] 10 | (-> (Parser/builder) .build (.parse str))) 11 | 12 | (defn md->html [doc] 13 | (-> (HtmlRenderer/builder) .build (.render doc))) 14 | 15 | (defn html->elements [html] 16 | (-> html Jsoup/parseBodyFragment .body .children)) 17 | 18 | ;; 1. combine all children to text 19 | ;; 1.1 replacing forms with special identifiers we can find in text later 20 | ;; 1.2 so '("some *markdown* " [hiccup-comp ...] " and more stuff.") 21 | ;; will become simple string "some *markdown* KFfr61c91x0 and more stuff." 22 | ;; where KFfr61c91x0 is a generated random identifier 23 | ;; 2. parse and render markdown to html 24 | ;; 3. parse generated html with jsoup 25 | ;; 4. recursively create react element forms from jsoup dom 26 | ;; 4.1 replacing form identifiers in test with actual child components 27 | 28 | (let [chars (str/join 29 | (map char 30 | (concat (range (int \A) (inc (int \Z))) 31 | (range (int \a) (inc (int \z))) 32 | (range (int \0) (inc (int \9)))))) 33 | random-id (fn [] (str "KF" (str/join (repeatedly 16 #(rand-nth chars)))))] 34 | (defn form-with-random-id [{:keys [forms text]} new-value] 35 | (let [new-id (first (drop-while #(contains? forms %) 36 | (repeatedly random-id)))] 37 | {:forms (assoc forms new-id new-value) 38 | :text (str text new-id)}))) 39 | 40 | (defn prepare-body [body] 41 | (reduce (fn [acc form] 42 | (if (string? form) 43 | (update acc :text str form) 44 | (form-with-random-id acc form))) 45 | {:text "" 46 | :forms {}} 47 | body)) 48 | 49 | (defmulti element->hiccup (fn [_forms element] (type element))) 50 | 51 | (defmethod element->hiccup Element [forms element] 52 | (let [tag (.tagName element) 53 | id (.id element) 54 | classes (.classNames element) 55 | tag (keyword 56 | (str tag 57 | (when-not (str/blank? id) 58 | (str "#" id)) 59 | (str/join "" 60 | (map #(str "." %) classes)))) 61 | attrs (into {} 62 | (keep (fn [attr] 63 | (let [key (.getKey attr) 64 | val (.getValue attr)] 65 | (when (and (not= key "id") 66 | (not= key "class")) 67 | [key val])))) 68 | (-> element .attributes .asList))] 69 | [(into (if (seq attrs) 70 | [tag attrs] 71 | [tag]) 72 | (mapcat (partial element->hiccup forms)) 73 | (.childNodes element))])) 74 | 75 | ;; Pattern to return text before, the form reference and text after 76 | (def form-reference-pattern #"^(.*?)((KF[\w\d]{16})(.*))?$") 77 | 78 | (defmethod element->hiccup TextNode [forms element] 79 | (loop [acc [] 80 | [txt before _ form-ref after :as m] (re-find form-reference-pattern (.text element))] 81 | (if-not form-ref 82 | (if (str/blank? before) 83 | acc 84 | (conj acc before)) 85 | (let [form (get forms (str/trim form-ref))] 86 | (recur (into acc [before form]) 87 | (re-find form-reference-pattern after)))))) 88 | 89 | (defmethod element->hiccup :default [_ element] 90 | ;; Only element and textnode implement, shouldn't need others 91 | nil) 92 | 93 | (defn compile-md [body] 94 | (let [{:keys [forms text]} (prepare-body body) 95 | elements (-> text parse md->html html->elements)] 96 | (into [:<>] 97 | (mapcat (partial element->hiccup forms)) 98 | elements))) 99 | 100 | (def test-md "## My section\nThis is a *very nice* section. A list:\n- item 1\n- second item") 101 | -------------------------------------------------------------------------------- /src/koukku/events.cljs: -------------------------------------------------------------------------------- 1 | (ns koukku.events 2 | "Event based app state with React reducer hook. 3 | 4 | Call `(with-state {:initial-state ...} root-component)` to initialize. 5 | The `root-component` will be called with the current app state. 6 | 7 | To create event dispatch callbacks call `e!` with an `Event` instance 8 | constructor and arguments. It will return a callback that will construct 9 | and process the event with any extra args passed along. 10 | 11 | To get the dispatcher function, that can be directly called with 12 | an event instance, use `use-dispatch`. 13 | 14 | Events must implement the `process-event` method which receives 15 | the event and the current app state and return the new app state. 16 | 17 | Events may return effects along with the new state by using `fx` 18 | function. An effect is a record that implements `Effect` protocol 19 | and the `process-effect` method. Effects are run after the next 20 | render using a React useEffect hook. Effects can side effect 21 | and use `e!` to get more callbacks to send events asynchronously." 22 | (:require react 23 | [koukku.html :as h] 24 | [koukku.core :as k])) 25 | 26 | (defprotocol Event 27 | (process-event [this state] 28 | "Process this event against current state and return new state.")) 29 | 30 | (defprotocol Effect 31 | (process-effect [this] 32 | "Process this side-effect. May use additional event callbacks with `e!`. 33 | Return value is ignored.")) 34 | 35 | (deftype EffectReturn [state effects]) 36 | 37 | (defn fx 38 | "Creates an effect to be returned from a `process-event` invocation. 39 | Takes the updated `state` and one or more effects to be 40 | applied. An effect is an instance of `Effect`. 41 | 42 | Effects are run after the state has been updated to its 43 | new value. 44 | " 45 | [state & effects] 46 | (EffectReturn. state effects)) 47 | 48 | (defonce dispatch-context (react/createContext nil)) 49 | (defonce dispatch-provider (aget dispatch-context "Provider")) 50 | 51 | (defn use-dispatch 52 | "Returns the dispatcher inside the component tree of `with-state`." 53 | [] 54 | (react/useContext dispatch-context)) 55 | 56 | ;; Dispatch used inside process-effect 57 | (def ^{:private true 58 | :dynamic true} *dispatch* nil) 59 | 60 | (defn e! [& event-constructor-and-args] 61 | (let [create-callback 62 | (fn [dispatch!] 63 | (fn [& more-args] 64 | (let [evt (apply (first event-constructor-and-args) 65 | (concat (drop 1 event-constructor-and-args) 66 | more-args))] 67 | (assert (satisfies? Event evt) "constructor must return an Event instance") 68 | (dispatch! evt))))] 69 | (if-let [dispatch! *dispatch*] 70 | ;; Inside process-effect 71 | (create-callback dispatch!) 72 | 73 | ;; Inside component render 74 | (let [dispatch! (use-dispatch)] 75 | ;; PENDING: useCallback memoing doesn't seem to have benefit here 76 | (create-callback dispatch!) 77 | #_(react/useCallback (create-callback dispatch!) 78 | (into-array event-constructor-and-args)))))) 79 | 80 | (defn- dispatch-event [set-effects! state event] 81 | (let [ret (process-event event state)] 82 | (if (instance? EffectReturn ret) 83 | (do (set-effects! (vec (.-effects ret))) 84 | (.-state ret)) 85 | ret))) 86 | 87 | (defn- process-effects [dispatch! effects] 88 | (binding [*dispatch* dispatch!] 89 | (doseq [effect effects] 90 | (assert (satisfies? Effect effect) "effect must be an Effect instance") 91 | (process-effect effect)))) 92 | 93 | (defn with-state 94 | "Main entry point for event system." 95 | [{:keys [initial-state] :as _opts} root-component] 96 | (let [[effects-to-run set-effects!] (k/use-state nil) 97 | [state dispatch!] (k/use-reducer (fn [state event] 98 | (dispatch-event set-effects! state event)) 99 | initial-state)] 100 | (k/use-effect #(process-effects dispatch! effects-to-run) true effects-to-run) 101 | (react/createElement dispatch-provider #js {:value dispatch!} 102 | (h/html 103 | [root-component state])))) 104 | -------------------------------------------------------------------------------- /examples/todomvc/src/todomvc/core.cljs: -------------------------------------------------------------------------------- 1 | (ns todomvc.core 2 | "The traditional TodoMVC with Material UI" 3 | (:require react 4 | [koukku.core :as k] 5 | [koukku.html :as h] 6 | ["@material-ui/core/List" :as mui-List] 7 | ["@material-ui/core/ListItem" :as mui-ListItem] 8 | ["@material-ui/core/ListItemText" :as mui-ListItemText] 9 | ["@material-ui/core/ListItemIcon" :as mui-ListItemIcon] 10 | ["@material-ui/core/Checkbox" :as mui-Checkbox] 11 | ["@material-ui/core/TextField" :as mui-TextField] 12 | [clojure.string :as str])) 13 | 14 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 15 | ;; Event handling 16 | ;; 17 | ;; Create a multimethod that takes app state and event 18 | ;; and returns new app state. 19 | ;; 20 | ;; The event multimethod is then used as reducer. 21 | 22 | (defmulti event (fn [_app action] (:event action))) 23 | 24 | (defn- update-event [app id new-data] 25 | (update app :todos 26 | (fn [todos] 27 | (mapv #(if (= id (:id %)) 28 | (merge % new-data) 29 | %) 30 | todos)))) 31 | 32 | (defmethod event :mark-complete [app {id :id}] 33 | (update-event app id {:complete? true})) 34 | 35 | (defmethod event :mark-incomplete [app {id :id}] 36 | (update-event app id {:complete? false})) 37 | 38 | (defmethod event :new-todo [app {description :description}] 39 | (let [id (:new-todo-id app)] 40 | (-> app 41 | (update :new-todo-id inc) 42 | (update :todos conj {:id id 43 | :description description 44 | :complete? false})))) 45 | 46 | (defmethod event :default [app event] 47 | (js/console.error "Unimplemented event: " (pr-str event)) 48 | app) 49 | 50 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 51 | ;; Initial app state containing some todos 52 | 53 | (def initial-state {:todos [{:id 0 54 | :description "make new React wrapper" 55 | :complete? false} 56 | {:id 1 57 | :description "create todomvc example" 58 | :complete? true}] 59 | :new-todo-id 2}) 60 | 61 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 62 | ;; The actual UI part 63 | 64 | (defn todo-item [dispatch! {:keys [id description complete?]}] 65 | (h/html 66 | [:> mui-ListItem {:dense true :button true 67 | :on-click #(dispatch! {:event (if complete? 68 | :mark-incomplete 69 | :mark-complete) 70 | :id id})} 71 | [:> mui-ListItemIcon 72 | [:> mui-Checkbox {:checked complete?}]] 73 | [:> mui-ListItemText {:primary description 74 | :style {:text-decoration (if complete? 75 | "line-through" 76 | "none")}}]])) 77 | (defn todo-list [dispatch! todos] 78 | (h/html 79 | [:> mui-List {:dense true} 80 | [::h/for [{id :id :as todo} todos] 81 | ^{:key id} 82 | [todo-item dispatch! todo]]])) 83 | 84 | (defn todo-summary [todos] 85 | (h/html 86 | [:div (count (filter :complete? todos)) " out of " (count todos) " tasks complete"])) 87 | 88 | (defn todo-form [dispatch!] 89 | (let [[text set-text!] (k/use-state "")] 90 | (h/html 91 | [:> mui-TextField {:placeholder "What needs to be done?" 92 | :value text 93 | :on-change #(-> % .-target .-value set-text!) 94 | :on-key-press #(when (and (= "Enter" (.-key %)) 95 | (not (str/blank? text))) 96 | (set-text! "") 97 | (dispatch! {:event :new-todo 98 | :description text}))}]))) 99 | (defn todo-app [] 100 | (let [[{:keys [todos]} dispatch!] (k/use-reducer event initial-state)] 101 | 102 | (h/html 103 | [:div "Here's the todos:" 104 | 105 | [todo-list dispatch! todos] 106 | [todo-form dispatch!] 107 | [todo-summary todos]]))) 108 | 109 | ;;;;;;;;;;;;;;;;;;;;;;;;; 110 | ;; The main entrypoint 111 | 112 | (defn main [] 113 | (k/main todo-app "app")) 114 | 115 | (main) 116 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Koukku 2 | 3 | Koukku is a minimal npm React wrapper for hook based use. 4 | It has no runtime library dependencies apart from React. 5 | 6 | Contains a macro based hiccup style rendering. 7 | 8 | **WARNING** This is very young library, for a mature and battle tested React wrapper please use Reagent. 9 | 10 | Quick start: see examples/todomvc 11 | 12 | **Features** 13 | - Lightweight and simple React interface 14 | - Compile time compilation of hiccup-style markup 15 | - Compile time markdown support 16 | - Easy microframework for reducer based event 17 | - Interface with JS React components without overhead 18 | 19 | **Goals** 20 | - Keep runtime dependencies very small (only React) 21 | - Low footprint and overhead: HMTL generation compiles to `react/createElement` calls 22 | - Explore compile time features 23 | 24 | # API 25 | 26 | ## koukku.core namespace 27 | 28 | `koukku.core/main` entrypoint takes a function component and an element 29 | and renders the component. The element may be an element id string or an 30 | actual DOM element. If it is an id, the element will be created and added 31 | to the body if it doesn't exist. 32 | 33 | `koukku.core/use-state` wraps React `useState` hook. 34 | 35 | `koukku.core/use-effect` wraps React `useEffect` hook. 36 | 37 | `koukku.core/use-reducer` wraps React `useReducer` hook. 38 | It wraps the given reducer in a function so that any `ifn?` with 2-arity 39 | can be used as a reducer, for example a multimethod. 40 | 41 | ## koukku.html namespace 42 | 43 | The html namespace is the JSX equivalent and works very similar 44 | to hiccup in Reagent, but with some restrictions. The html is 45 | based on a macro and tries to do as much work in compile time. 46 | 47 | `koukku.html/html` takes hiccup style markup and yields code that 48 | returns a React Element (by calling `react/createElement`). 49 | 50 | The basic form of markup contains a dom element, attributes 51 | and children, for example: 52 | ```clojure 53 | [:div#thediv.someclass {:on-click #(js/alert "click")} 54 | [:ul 55 | [:li "first list item"] 56 | [:li "second list item"]]] 57 | ``` 58 | 59 | The element name may contain an id (after `#`) and class names (each starting with `.`). 60 | 61 | Calling other ClojureScript functions as components is in the 62 | form 63 | 64 | ```clojure 65 | [component-fn ...args...] 66 | ``` 67 | 68 | Calling JS React components is done with: 69 | ``` 70 | [:> SomeJSComponent {:some-attr value} ...children...] 71 | ``` 72 | 73 | Creating fragments can be done with the pseudo element name `:<>`. 74 | 75 | ### Special elements for control flow 76 | 77 | The html generation includes special elements for regular control flow 78 | for convenience. 79 | 80 | Included special elements are: 81 | - `:koukku.html/if` 82 | - `:koukku.html/when` 83 | - `:koukku.html/for` 84 | - `:koukku.html/cond` 85 | 86 | The special elements work like in clojure except the body is compiled as 87 | html as well. This is often convenient as breaking into Clojure code you 88 | need to call `koukku.html/html` to get back into html templating. 89 | 90 | ```clojure 91 | (h/html 92 | [:ul 93 | [::h/for [item ["one" "two" "three"]] 94 | ^{:key item} 95 | [:li item]]]) 96 | ``` 97 | 98 | is equivalent to the Clojure code: 99 | ```clojure 100 | (h/html 101 | [:ul 102 | (into-array 103 | (for [item ["one" "two" "three"]] 104 | (h/html 105 | ^{:key item} 106 | [:li item])))]) 107 | ``` 108 | 109 | ## koukku.events namespace 110 | 111 | koukku.events provides a protocol based reducer abstraction 112 | on top of React useReducer. 113 | 114 | See namespace docstring and `koukku.events/with-state` and `koukku.events/e!`. 115 | 116 | ## Examples 117 | 118 | See todomvc example in examples/todomvc/ folder. 119 | 120 | Define components as pure functions that use React hooks. 121 | Use `koukku.html/html` macro to output hiccup style HTML. 122 | 123 | Like: 124 | 125 | ```clojure 126 | (defn list-item [{name :name}] 127 | (h/html 128 | [:li name])) 129 | 130 | (def items [{:name "item1" :id 1} 131 | {:name "item 2" :id 2}]) 132 | 133 | (defn listing [items] 134 | (let [[items set-items!] (react/useState items)] 135 | (h/html 136 | [:div.someclass 137 | [:ul 138 | [::h/for [{id :id :as item} items] 139 | ^{:key id} 140 | [list-item item]]] 141 | [:button {:onClick #(set-items! (conj items {:name "new item"}))} 142 | "add item"]]))) 143 | 144 | (defn main-component [] 145 | (h/html [listing items])) 146 | 147 | (k/main main-component "app") 148 | ``` 149 | -------------------------------------------------------------------------------- /src/koukku/html.clj: -------------------------------------------------------------------------------- 1 | (ns koukku.html 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str] 4 | [koukku.html.markdown :as md])) 5 | 6 | (if (System/getenv "KOUKKU_DEBUG") 7 | (defn log [& things] 8 | (with-open [out (io/writer (io/file "koukku.debug") :append true)] 9 | (.write out 10 | (str (str/join " " things) "\n")))) 11 | (defn log [& things])) 12 | 13 | (defn to-camel-case [kw] 14 | (str/replace (name kw) 15 | #"-\w" 16 | (fn [m] 17 | (str/upper-case (subs m 1))))) 18 | 19 | (def special-keys {:class "className"}) 20 | 21 | (defn ->js 22 | "Compile time js conversion. 23 | 24 | Conversion rules: 25 | maps => (js-obj \"key1\" val1 ...) 26 | keywords (as value) => name string 27 | keywords (as key) => camelCased name string (or map special keys like :class => \"className\") 28 | vector => (array val1 ...) 29 | 30 | Other values are passed as is." 31 | [x] 32 | (cond 33 | (map? x) 34 | `(cljs.core/js-obj ~@(mapcat 35 | (fn [[k v]] 36 | [(cond 37 | (keyword? k) (or (special-keys k) 38 | (to-camel-case k)) 39 | (or (string? k) 40 | (number? k)) k 41 | ;; some weird key, try runtime conversion 42 | :else `(koukku.html/->js k)) 43 | (->js v)]) x)) 44 | 45 | (vector? x) 46 | `(cljs.core/array ~@(map ->js x)) 47 | 48 | (keyword? x) 49 | (name x) 50 | 51 | :else x)) 52 | 53 | (defn element-class-names [elt] 54 | (map second (re-seq #"\.([^.#]+)" (name elt)))) 55 | 56 | (defn element-name [elt] 57 | (second (re-find #"^([^.#]+)" (name elt)))) 58 | 59 | (defn element-id [elt] 60 | (second (re-find #"#([^.]+)" (name elt)))) 61 | 62 | (declare compile-html) 63 | 64 | (defn props-and-children [body] 65 | (let [has-props? (map? (second body)) 66 | props (if has-props? 67 | (second body) 68 | nil) 69 | children (drop (if has-props? 2 1) body)] 70 | [props children])) 71 | 72 | (defn compile-children [children] 73 | (map compile-html children)) 74 | 75 | (defn get-key [body] 76 | (-> body meta :key)) 77 | 78 | (defn compile-html-element 79 | "Compile HTML markup element, like [:div.someclass \"content\"]." 80 | [body] 81 | (let [element-kw (first body) 82 | element (element-name element-kw) 83 | class-names (element-class-names element-kw) 84 | id (element-id element-kw) 85 | [props children] (props-and-children body) 86 | props (merge (when-let [k (get-key body)] 87 | {:key k}) 88 | props 89 | (when (seq class-names) 90 | {:className (str/join " " class-names)}) 91 | (when id 92 | {:id id}))] 93 | (log "HTML Element:" element "with props:" props "and" (count children) "children") 94 | `(koukku.html/->elt 95 | ~(if (keyword? element) 96 | (name element) 97 | element) 98 | ~(->js props) 99 | 100 | ~@(compile-children children)))) 101 | 102 | (defn compile-component [body] 103 | (let [component-fn (first body) 104 | args (subvec body 1) 105 | key (get-key body)] 106 | (log "compile-component, component-fn=" component-fn ", args=" args ", key=" key) 107 | `(koukku.html/->elt 108 | (koukku.html/component-fn-host ~(str component-fn) ~component-fn) 109 | ;; PENDING: check element is valid? (like symbol) 110 | (cljs.core/js-obj ~@(when key ["key" key]) 111 | "args" ~args)))) 112 | 113 | (defn compile-fragment [body] 114 | (let [[props children] (props-and-children body) 115 | key (get-key body)] 116 | (log "Fragment with props: " props " and key " key) 117 | `(koukku.html/->fragment 118 | ~(->js (if key 119 | (merge {:key key} props) 120 | props)) 121 | ~@(compile-children children)))) 122 | 123 | (defn compile-js-component [body] 124 | (let [key (get-key body) 125 | body (drop 1 body) 126 | component (first body) 127 | [props children] (props-and-children body)] 128 | (log "JS component, component=" component ", props=" props ", children="children ", key=" key) 129 | `(koukku.html/->elt 130 | (koukku.html/js-comp ~component) 131 | ~(->js (if key 132 | (merge {:key key} props) 133 | props)) 134 | ~@(compile-children children)))) 135 | 136 | (defn compile-for 137 | "Compile special :koukku.html/for element." 138 | [[_ bindings body :as form]] 139 | (assert (vector? bindings) ":koukku.html/for bindings must be a vector") 140 | (assert (= 3 (count form)) ":koukku.html/for must have bindings and a single child form") 141 | `(into-array 142 | (for ~bindings 143 | ~(compile-html body)))) 144 | 145 | (defn compile-if 146 | "Compile special :koukku.html/if element." 147 | [[_ test then else :as form]] 148 | (assert (= 4 (count form)) ":koukku.html/if must have exactly 3 forms: test, then and else") 149 | `(if ~test 150 | ~(compile-html then) 151 | ~(compile-html else))) 152 | 153 | (defn compile-when 154 | "Compile special :koukku.html/when element." 155 | [[_ test then :as form]] 156 | (assert (= 3 (count form)) ":koukku.html/when must have exactly 2 forms: test and then") 157 | `(when ~test 158 | ~(compile-html then))) 159 | 160 | (defn compile-cond 161 | "Compile special :koukku.html/cond element." 162 | [[_ & clauses]] 163 | (assert (even? (count clauses)) ":koukku.html/cond must have even number of forms") 164 | `(cond 165 | ~@(mapcat (fn [[test expr]] 166 | [test (compile-html expr)]) 167 | (partition 2 clauses)))) 168 | 169 | (defn compile-md 170 | "Compile special :koukku.html/md element." 171 | [body] 172 | (let [[_props children] (props-and-children body)] 173 | ;; PENDING: props ignored for now, could be used to 174 | ;; customize generated elements 175 | (-> children md/compile-md compile-html))) 176 | 177 | (def compile-special {:<> compile-fragment 178 | :> compile-js-component 179 | ::for compile-for 180 | ::if compile-if 181 | ::when compile-when 182 | ::cond compile-cond 183 | ::md compile-md}) 184 | 185 | (defn compile-html [body] 186 | (cond 187 | (vector? body) 188 | (cond 189 | ;; first element is special element 190 | (contains? compile-special (first body)) 191 | ((compile-special (first body)) body) 192 | 193 | ;; first element is a keyword this is static HTML markup 194 | (keyword? (first body)) 195 | (compile-html-element body) 196 | 197 | ;; otherwise treat first element as function component 198 | :else 199 | (compile-component body)) 200 | 201 | ;; Some content: a static string or symbol reference 202 | ;; or a list that evaluates to children 203 | (or (string? body) 204 | (symbol? body) 205 | (list? body)) 206 | body 207 | 208 | :else 209 | (throw (ex-info (str "Can't compile to HTML: " (pr-str body)) 210 | {:element body})))) 211 | 212 | (defmacro html 213 | "Render hiccup HTML as React elements." 214 | [body] 215 | (compile-html body)) 216 | -------------------------------------------------------------------------------- /examples/calculator/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "requires": true, 3 | "lockfileVersion": 1, 4 | "dependencies": { 5 | "@webassemblyjs/ast": { 6 | "version": "1.9.0", 7 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", 8 | "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", 9 | "dev": true, 10 | "requires": { 11 | "@webassemblyjs/helper-module-context": "1.9.0", 12 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 13 | "@webassemblyjs/wast-parser": "1.9.0" 14 | } 15 | }, 16 | "@webassemblyjs/floating-point-hex-parser": { 17 | "version": "1.9.0", 18 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", 19 | "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", 20 | "dev": true 21 | }, 22 | "@webassemblyjs/helper-api-error": { 23 | "version": "1.9.0", 24 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", 25 | "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", 26 | "dev": true 27 | }, 28 | "@webassemblyjs/helper-buffer": { 29 | "version": "1.9.0", 30 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", 31 | "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", 32 | "dev": true 33 | }, 34 | "@webassemblyjs/helper-code-frame": { 35 | "version": "1.9.0", 36 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", 37 | "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", 38 | "dev": true, 39 | "requires": { 40 | "@webassemblyjs/wast-printer": "1.9.0" 41 | } 42 | }, 43 | "@webassemblyjs/helper-fsm": { 44 | "version": "1.9.0", 45 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", 46 | "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", 47 | "dev": true 48 | }, 49 | "@webassemblyjs/helper-module-context": { 50 | "version": "1.9.0", 51 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", 52 | "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", 53 | "dev": true, 54 | "requires": { 55 | "@webassemblyjs/ast": "1.9.0" 56 | } 57 | }, 58 | "@webassemblyjs/helper-wasm-bytecode": { 59 | "version": "1.9.0", 60 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", 61 | "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", 62 | "dev": true 63 | }, 64 | "@webassemblyjs/helper-wasm-section": { 65 | "version": "1.9.0", 66 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", 67 | "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", 68 | "dev": true, 69 | "requires": { 70 | "@webassemblyjs/ast": "1.9.0", 71 | "@webassemblyjs/helper-buffer": "1.9.0", 72 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 73 | "@webassemblyjs/wasm-gen": "1.9.0" 74 | } 75 | }, 76 | "@webassemblyjs/ieee754": { 77 | "version": "1.9.0", 78 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", 79 | "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", 80 | "dev": true, 81 | "requires": { 82 | "@xtuc/ieee754": "^1.2.0" 83 | } 84 | }, 85 | "@webassemblyjs/leb128": { 86 | "version": "1.9.0", 87 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", 88 | "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", 89 | "dev": true, 90 | "requires": { 91 | "@xtuc/long": "4.2.2" 92 | } 93 | }, 94 | "@webassemblyjs/utf8": { 95 | "version": "1.9.0", 96 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", 97 | "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", 98 | "dev": true 99 | }, 100 | "@webassemblyjs/wasm-edit": { 101 | "version": "1.9.0", 102 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", 103 | "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", 104 | "dev": true, 105 | "requires": { 106 | "@webassemblyjs/ast": "1.9.0", 107 | "@webassemblyjs/helper-buffer": "1.9.0", 108 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 109 | "@webassemblyjs/helper-wasm-section": "1.9.0", 110 | "@webassemblyjs/wasm-gen": "1.9.0", 111 | "@webassemblyjs/wasm-opt": "1.9.0", 112 | "@webassemblyjs/wasm-parser": "1.9.0", 113 | "@webassemblyjs/wast-printer": "1.9.0" 114 | } 115 | }, 116 | "@webassemblyjs/wasm-gen": { 117 | "version": "1.9.0", 118 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", 119 | "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", 120 | "dev": true, 121 | "requires": { 122 | "@webassemblyjs/ast": "1.9.0", 123 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 124 | "@webassemblyjs/ieee754": "1.9.0", 125 | "@webassemblyjs/leb128": "1.9.0", 126 | "@webassemblyjs/utf8": "1.9.0" 127 | } 128 | }, 129 | "@webassemblyjs/wasm-opt": { 130 | "version": "1.9.0", 131 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", 132 | "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", 133 | "dev": true, 134 | "requires": { 135 | "@webassemblyjs/ast": "1.9.0", 136 | "@webassemblyjs/helper-buffer": "1.9.0", 137 | "@webassemblyjs/wasm-gen": "1.9.0", 138 | "@webassemblyjs/wasm-parser": "1.9.0" 139 | } 140 | }, 141 | "@webassemblyjs/wasm-parser": { 142 | "version": "1.9.0", 143 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", 144 | "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", 145 | "dev": true, 146 | "requires": { 147 | "@webassemblyjs/ast": "1.9.0", 148 | "@webassemblyjs/helper-api-error": "1.9.0", 149 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 150 | "@webassemblyjs/ieee754": "1.9.0", 151 | "@webassemblyjs/leb128": "1.9.0", 152 | "@webassemblyjs/utf8": "1.9.0" 153 | } 154 | }, 155 | "@webassemblyjs/wast-parser": { 156 | "version": "1.9.0", 157 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", 158 | "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", 159 | "dev": true, 160 | "requires": { 161 | "@webassemblyjs/ast": "1.9.0", 162 | "@webassemblyjs/floating-point-hex-parser": "1.9.0", 163 | "@webassemblyjs/helper-api-error": "1.9.0", 164 | "@webassemblyjs/helper-code-frame": "1.9.0", 165 | "@webassemblyjs/helper-fsm": "1.9.0", 166 | "@xtuc/long": "4.2.2" 167 | } 168 | }, 169 | "@webassemblyjs/wast-printer": { 170 | "version": "1.9.0", 171 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", 172 | "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", 173 | "dev": true, 174 | "requires": { 175 | "@webassemblyjs/ast": "1.9.0", 176 | "@webassemblyjs/wast-parser": "1.9.0", 177 | "@xtuc/long": "4.2.2" 178 | } 179 | }, 180 | "@xtuc/ieee754": { 181 | "version": "1.2.0", 182 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 183 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 184 | "dev": true 185 | }, 186 | "@xtuc/long": { 187 | "version": "4.2.2", 188 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", 189 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 190 | "dev": true 191 | }, 192 | "acorn": { 193 | "version": "6.4.1", 194 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", 195 | "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", 196 | "dev": true 197 | }, 198 | "ajv": { 199 | "version": "6.12.2", 200 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", 201 | "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", 202 | "dev": true, 203 | "requires": { 204 | "fast-deep-equal": "^3.1.1", 205 | "fast-json-stable-stringify": "^2.0.0", 206 | "json-schema-traverse": "^0.4.1", 207 | "uri-js": "^4.2.2" 208 | } 209 | }, 210 | "ajv-errors": { 211 | "version": "1.0.1", 212 | "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", 213 | "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", 214 | "dev": true 215 | }, 216 | "ajv-keywords": { 217 | "version": "3.4.1", 218 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", 219 | "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", 220 | "dev": true 221 | }, 222 | "ansi-regex": { 223 | "version": "4.1.0", 224 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 225 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 226 | "dev": true 227 | }, 228 | "ansi-styles": { 229 | "version": "3.2.1", 230 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 231 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 232 | "dev": true, 233 | "requires": { 234 | "color-convert": "^1.9.0" 235 | } 236 | }, 237 | "anymatch": { 238 | "version": "2.0.0", 239 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 240 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 241 | "dev": true, 242 | "requires": { 243 | "micromatch": "^3.1.4", 244 | "normalize-path": "^2.1.1" 245 | }, 246 | "dependencies": { 247 | "normalize-path": { 248 | "version": "2.1.1", 249 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 250 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 251 | "dev": true, 252 | "requires": { 253 | "remove-trailing-separator": "^1.0.1" 254 | } 255 | } 256 | } 257 | }, 258 | "aproba": { 259 | "version": "1.2.0", 260 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 261 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 262 | "dev": true 263 | }, 264 | "arr-diff": { 265 | "version": "4.0.0", 266 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 267 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 268 | "dev": true 269 | }, 270 | "arr-flatten": { 271 | "version": "1.1.0", 272 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 273 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 274 | "dev": true 275 | }, 276 | "arr-union": { 277 | "version": "3.1.0", 278 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 279 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 280 | "dev": true 281 | }, 282 | "array-unique": { 283 | "version": "0.3.2", 284 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 285 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 286 | "dev": true 287 | }, 288 | "asn1.js": { 289 | "version": "4.10.1", 290 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 291 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 292 | "dev": true, 293 | "requires": { 294 | "bn.js": "^4.0.0", 295 | "inherits": "^2.0.1", 296 | "minimalistic-assert": "^1.0.0" 297 | } 298 | }, 299 | "assert": { 300 | "version": "1.5.0", 301 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", 302 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", 303 | "dev": true, 304 | "requires": { 305 | "object-assign": "^4.1.1", 306 | "util": "0.10.3" 307 | }, 308 | "dependencies": { 309 | "inherits": { 310 | "version": "2.0.1", 311 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 312 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 313 | "dev": true 314 | }, 315 | "util": { 316 | "version": "0.10.3", 317 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 318 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 319 | "dev": true, 320 | "requires": { 321 | "inherits": "2.0.1" 322 | } 323 | } 324 | } 325 | }, 326 | "assign-symbols": { 327 | "version": "1.0.0", 328 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 329 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 330 | "dev": true 331 | }, 332 | "async-each": { 333 | "version": "1.0.3", 334 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", 335 | "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", 336 | "dev": true 337 | }, 338 | "atob": { 339 | "version": "2.1.2", 340 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 341 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 342 | "dev": true 343 | }, 344 | "balanced-match": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 347 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 348 | "dev": true 349 | }, 350 | "base": { 351 | "version": "0.11.2", 352 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 353 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 354 | "dev": true, 355 | "requires": { 356 | "cache-base": "^1.0.1", 357 | "class-utils": "^0.3.5", 358 | "component-emitter": "^1.2.1", 359 | "define-property": "^1.0.0", 360 | "isobject": "^3.0.1", 361 | "mixin-deep": "^1.2.0", 362 | "pascalcase": "^0.1.1" 363 | }, 364 | "dependencies": { 365 | "define-property": { 366 | "version": "1.0.0", 367 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 368 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 369 | "dev": true, 370 | "requires": { 371 | "is-descriptor": "^1.0.0" 372 | } 373 | }, 374 | "is-accessor-descriptor": { 375 | "version": "1.0.0", 376 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 377 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 378 | "dev": true, 379 | "requires": { 380 | "kind-of": "^6.0.0" 381 | } 382 | }, 383 | "is-data-descriptor": { 384 | "version": "1.0.0", 385 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 386 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 387 | "dev": true, 388 | "requires": { 389 | "kind-of": "^6.0.0" 390 | } 391 | }, 392 | "is-descriptor": { 393 | "version": "1.0.2", 394 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 395 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 396 | "dev": true, 397 | "requires": { 398 | "is-accessor-descriptor": "^1.0.0", 399 | "is-data-descriptor": "^1.0.0", 400 | "kind-of": "^6.0.2" 401 | } 402 | } 403 | } 404 | }, 405 | "base64-js": { 406 | "version": "1.3.1", 407 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 408 | "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", 409 | "dev": true 410 | }, 411 | "big.js": { 412 | "version": "5.2.2", 413 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", 414 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", 415 | "dev": true 416 | }, 417 | "binary-extensions": { 418 | "version": "1.13.1", 419 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", 420 | "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", 421 | "dev": true 422 | }, 423 | "bindings": { 424 | "version": "1.5.0", 425 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 426 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 427 | "dev": true, 428 | "optional": true, 429 | "requires": { 430 | "file-uri-to-path": "1.0.0" 431 | } 432 | }, 433 | "bluebird": { 434 | "version": "3.7.2", 435 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", 436 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", 437 | "dev": true 438 | }, 439 | "bn.js": { 440 | "version": "4.11.8", 441 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 442 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", 443 | "dev": true 444 | }, 445 | "brace-expansion": { 446 | "version": "1.1.11", 447 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 448 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 449 | "dev": true, 450 | "requires": { 451 | "balanced-match": "^1.0.0", 452 | "concat-map": "0.0.1" 453 | } 454 | }, 455 | "braces": { 456 | "version": "2.3.2", 457 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 458 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 459 | "dev": true, 460 | "requires": { 461 | "arr-flatten": "^1.1.0", 462 | "array-unique": "^0.3.2", 463 | "extend-shallow": "^2.0.1", 464 | "fill-range": "^4.0.0", 465 | "isobject": "^3.0.1", 466 | "repeat-element": "^1.1.2", 467 | "snapdragon": "^0.8.1", 468 | "snapdragon-node": "^2.0.1", 469 | "split-string": "^3.0.2", 470 | "to-regex": "^3.0.1" 471 | }, 472 | "dependencies": { 473 | "extend-shallow": { 474 | "version": "2.0.1", 475 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 476 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 477 | "dev": true, 478 | "requires": { 479 | "is-extendable": "^0.1.0" 480 | } 481 | } 482 | } 483 | }, 484 | "brorand": { 485 | "version": "1.1.0", 486 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 487 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 488 | "dev": true 489 | }, 490 | "browserify-aes": { 491 | "version": "1.2.0", 492 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 493 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 494 | "dev": true, 495 | "requires": { 496 | "buffer-xor": "^1.0.3", 497 | "cipher-base": "^1.0.0", 498 | "create-hash": "^1.1.0", 499 | "evp_bytestokey": "^1.0.3", 500 | "inherits": "^2.0.1", 501 | "safe-buffer": "^5.0.1" 502 | } 503 | }, 504 | "browserify-cipher": { 505 | "version": "1.0.1", 506 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 507 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 508 | "dev": true, 509 | "requires": { 510 | "browserify-aes": "^1.0.4", 511 | "browserify-des": "^1.0.0", 512 | "evp_bytestokey": "^1.0.0" 513 | } 514 | }, 515 | "browserify-des": { 516 | "version": "1.0.2", 517 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 518 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 519 | "dev": true, 520 | "requires": { 521 | "cipher-base": "^1.0.1", 522 | "des.js": "^1.0.0", 523 | "inherits": "^2.0.1", 524 | "safe-buffer": "^5.1.2" 525 | } 526 | }, 527 | "browserify-rsa": { 528 | "version": "4.0.1", 529 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 530 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 531 | "dev": true, 532 | "requires": { 533 | "bn.js": "^4.1.0", 534 | "randombytes": "^2.0.1" 535 | } 536 | }, 537 | "browserify-sign": { 538 | "version": "4.0.4", 539 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 540 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 541 | "dev": true, 542 | "requires": { 543 | "bn.js": "^4.1.1", 544 | "browserify-rsa": "^4.0.0", 545 | "create-hash": "^1.1.0", 546 | "create-hmac": "^1.1.2", 547 | "elliptic": "^6.0.0", 548 | "inherits": "^2.0.1", 549 | "parse-asn1": "^5.0.0" 550 | } 551 | }, 552 | "browserify-zlib": { 553 | "version": "0.2.0", 554 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 555 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 556 | "dev": true, 557 | "requires": { 558 | "pako": "~1.0.5" 559 | } 560 | }, 561 | "buffer": { 562 | "version": "4.9.2", 563 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", 564 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", 565 | "dev": true, 566 | "requires": { 567 | "base64-js": "^1.0.2", 568 | "ieee754": "^1.1.4", 569 | "isarray": "^1.0.0" 570 | } 571 | }, 572 | "buffer-from": { 573 | "version": "1.1.1", 574 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 575 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 576 | "dev": true 577 | }, 578 | "buffer-xor": { 579 | "version": "1.0.3", 580 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 581 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 582 | "dev": true 583 | }, 584 | "builtin-status-codes": { 585 | "version": "3.0.0", 586 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 587 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 588 | "dev": true 589 | }, 590 | "cacache": { 591 | "version": "12.0.4", 592 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", 593 | "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", 594 | "dev": true, 595 | "requires": { 596 | "bluebird": "^3.5.5", 597 | "chownr": "^1.1.1", 598 | "figgy-pudding": "^3.5.1", 599 | "glob": "^7.1.4", 600 | "graceful-fs": "^4.1.15", 601 | "infer-owner": "^1.0.3", 602 | "lru-cache": "^5.1.1", 603 | "mississippi": "^3.0.0", 604 | "mkdirp": "^0.5.1", 605 | "move-concurrently": "^1.0.1", 606 | "promise-inflight": "^1.0.1", 607 | "rimraf": "^2.6.3", 608 | "ssri": "^6.0.1", 609 | "unique-filename": "^1.1.1", 610 | "y18n": "^4.0.0" 611 | } 612 | }, 613 | "cache-base": { 614 | "version": "1.0.1", 615 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 616 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 617 | "dev": true, 618 | "requires": { 619 | "collection-visit": "^1.0.0", 620 | "component-emitter": "^1.2.1", 621 | "get-value": "^2.0.6", 622 | "has-value": "^1.0.0", 623 | "isobject": "^3.0.1", 624 | "set-value": "^2.0.0", 625 | "to-object-path": "^0.3.0", 626 | "union-value": "^1.0.0", 627 | "unset-value": "^1.0.0" 628 | } 629 | }, 630 | "camelcase": { 631 | "version": "5.3.1", 632 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 633 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 634 | "dev": true 635 | }, 636 | "chalk": { 637 | "version": "2.4.2", 638 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 639 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 640 | "dev": true, 641 | "requires": { 642 | "ansi-styles": "^3.2.1", 643 | "escape-string-regexp": "^1.0.5", 644 | "supports-color": "^5.3.0" 645 | }, 646 | "dependencies": { 647 | "supports-color": { 648 | "version": "5.5.0", 649 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 650 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 651 | "dev": true, 652 | "requires": { 653 | "has-flag": "^3.0.0" 654 | } 655 | } 656 | } 657 | }, 658 | "chokidar": { 659 | "version": "2.1.8", 660 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", 661 | "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", 662 | "dev": true, 663 | "requires": { 664 | "anymatch": "^2.0.0", 665 | "async-each": "^1.0.1", 666 | "braces": "^2.3.2", 667 | "fsevents": "^1.2.7", 668 | "glob-parent": "^3.1.0", 669 | "inherits": "^2.0.3", 670 | "is-binary-path": "^1.0.0", 671 | "is-glob": "^4.0.0", 672 | "normalize-path": "^3.0.0", 673 | "path-is-absolute": "^1.0.0", 674 | "readdirp": "^2.2.1", 675 | "upath": "^1.1.1" 676 | } 677 | }, 678 | "chownr": { 679 | "version": "1.1.4", 680 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 681 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 682 | "dev": true 683 | }, 684 | "chrome-trace-event": { 685 | "version": "1.0.2", 686 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", 687 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", 688 | "dev": true, 689 | "requires": { 690 | "tslib": "^1.9.0" 691 | } 692 | }, 693 | "cipher-base": { 694 | "version": "1.0.4", 695 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 696 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 697 | "dev": true, 698 | "requires": { 699 | "inherits": "^2.0.1", 700 | "safe-buffer": "^5.0.1" 701 | } 702 | }, 703 | "class-utils": { 704 | "version": "0.3.6", 705 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 706 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 707 | "dev": true, 708 | "requires": { 709 | "arr-union": "^3.1.0", 710 | "define-property": "^0.2.5", 711 | "isobject": "^3.0.0", 712 | "static-extend": "^0.1.1" 713 | }, 714 | "dependencies": { 715 | "define-property": { 716 | "version": "0.2.5", 717 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 718 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 719 | "dev": true, 720 | "requires": { 721 | "is-descriptor": "^0.1.0" 722 | } 723 | } 724 | } 725 | }, 726 | "cliui": { 727 | "version": "5.0.0", 728 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 729 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 730 | "dev": true, 731 | "requires": { 732 | "string-width": "^3.1.0", 733 | "strip-ansi": "^5.2.0", 734 | "wrap-ansi": "^5.1.0" 735 | } 736 | }, 737 | "collection-visit": { 738 | "version": "1.0.0", 739 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 740 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 741 | "dev": true, 742 | "requires": { 743 | "map-visit": "^1.0.0", 744 | "object-visit": "^1.0.0" 745 | } 746 | }, 747 | "color-convert": { 748 | "version": "1.9.3", 749 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 750 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 751 | "dev": true, 752 | "requires": { 753 | "color-name": "1.1.3" 754 | } 755 | }, 756 | "color-name": { 757 | "version": "1.1.3", 758 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 759 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 760 | "dev": true 761 | }, 762 | "commander": { 763 | "version": "2.20.3", 764 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 765 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 766 | "dev": true 767 | }, 768 | "commondir": { 769 | "version": "1.0.1", 770 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 771 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 772 | "dev": true 773 | }, 774 | "component-emitter": { 775 | "version": "1.3.0", 776 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 777 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 778 | "dev": true 779 | }, 780 | "concat-map": { 781 | "version": "0.0.1", 782 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 783 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 784 | "dev": true 785 | }, 786 | "concat-stream": { 787 | "version": "1.6.2", 788 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 789 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 790 | "dev": true, 791 | "requires": { 792 | "buffer-from": "^1.0.0", 793 | "inherits": "^2.0.3", 794 | "readable-stream": "^2.2.2", 795 | "typedarray": "^0.0.6" 796 | } 797 | }, 798 | "console-browserify": { 799 | "version": "1.2.0", 800 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", 801 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", 802 | "dev": true 803 | }, 804 | "constants-browserify": { 805 | "version": "1.0.0", 806 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 807 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 808 | "dev": true 809 | }, 810 | "copy-concurrently": { 811 | "version": "1.0.5", 812 | "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", 813 | "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", 814 | "dev": true, 815 | "requires": { 816 | "aproba": "^1.1.1", 817 | "fs-write-stream-atomic": "^1.0.8", 818 | "iferr": "^0.1.5", 819 | "mkdirp": "^0.5.1", 820 | "rimraf": "^2.5.4", 821 | "run-queue": "^1.0.0" 822 | } 823 | }, 824 | "copy-descriptor": { 825 | "version": "0.1.1", 826 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 827 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 828 | "dev": true 829 | }, 830 | "core-util-is": { 831 | "version": "1.0.2", 832 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 833 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 834 | "dev": true 835 | }, 836 | "create-ecdh": { 837 | "version": "4.0.3", 838 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", 839 | "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", 840 | "dev": true, 841 | "requires": { 842 | "bn.js": "^4.1.0", 843 | "elliptic": "^6.0.0" 844 | } 845 | }, 846 | "create-hash": { 847 | "version": "1.2.0", 848 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 849 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 850 | "dev": true, 851 | "requires": { 852 | "cipher-base": "^1.0.1", 853 | "inherits": "^2.0.1", 854 | "md5.js": "^1.3.4", 855 | "ripemd160": "^2.0.1", 856 | "sha.js": "^2.4.0" 857 | } 858 | }, 859 | "create-hmac": { 860 | "version": "1.1.7", 861 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 862 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 863 | "dev": true, 864 | "requires": { 865 | "cipher-base": "^1.0.3", 866 | "create-hash": "^1.1.0", 867 | "inherits": "^2.0.1", 868 | "ripemd160": "^2.0.0", 869 | "safe-buffer": "^5.0.1", 870 | "sha.js": "^2.4.8" 871 | } 872 | }, 873 | "cross-spawn": { 874 | "version": "6.0.5", 875 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 876 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 877 | "dev": true, 878 | "requires": { 879 | "nice-try": "^1.0.4", 880 | "path-key": "^2.0.1", 881 | "semver": "^5.5.0", 882 | "shebang-command": "^1.2.0", 883 | "which": "^1.2.9" 884 | } 885 | }, 886 | "crypto-browserify": { 887 | "version": "3.12.0", 888 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 889 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 890 | "dev": true, 891 | "requires": { 892 | "browserify-cipher": "^1.0.0", 893 | "browserify-sign": "^4.0.0", 894 | "create-ecdh": "^4.0.0", 895 | "create-hash": "^1.1.0", 896 | "create-hmac": "^1.1.0", 897 | "diffie-hellman": "^5.0.0", 898 | "inherits": "^2.0.1", 899 | "pbkdf2": "^3.0.3", 900 | "public-encrypt": "^4.0.0", 901 | "randombytes": "^2.0.0", 902 | "randomfill": "^1.0.3" 903 | } 904 | }, 905 | "cyclist": { 906 | "version": "1.0.1", 907 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", 908 | "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", 909 | "dev": true 910 | }, 911 | "debug": { 912 | "version": "2.6.9", 913 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 914 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 915 | "dev": true, 916 | "requires": { 917 | "ms": "2.0.0" 918 | } 919 | }, 920 | "decamelize": { 921 | "version": "1.2.0", 922 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 923 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 924 | "dev": true 925 | }, 926 | "decode-uri-component": { 927 | "version": "0.2.0", 928 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 929 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 930 | "dev": true 931 | }, 932 | "define-property": { 933 | "version": "2.0.2", 934 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 935 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 936 | "dev": true, 937 | "requires": { 938 | "is-descriptor": "^1.0.2", 939 | "isobject": "^3.0.1" 940 | }, 941 | "dependencies": { 942 | "is-accessor-descriptor": { 943 | "version": "1.0.0", 944 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 945 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 946 | "dev": true, 947 | "requires": { 948 | "kind-of": "^6.0.0" 949 | } 950 | }, 951 | "is-data-descriptor": { 952 | "version": "1.0.0", 953 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 954 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 955 | "dev": true, 956 | "requires": { 957 | "kind-of": "^6.0.0" 958 | } 959 | }, 960 | "is-descriptor": { 961 | "version": "1.0.2", 962 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 963 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 964 | "dev": true, 965 | "requires": { 966 | "is-accessor-descriptor": "^1.0.0", 967 | "is-data-descriptor": "^1.0.0", 968 | "kind-of": "^6.0.2" 969 | } 970 | } 971 | } 972 | }, 973 | "des.js": { 974 | "version": "1.0.1", 975 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", 976 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", 977 | "dev": true, 978 | "requires": { 979 | "inherits": "^2.0.1", 980 | "minimalistic-assert": "^1.0.0" 981 | } 982 | }, 983 | "detect-file": { 984 | "version": "1.0.0", 985 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", 986 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", 987 | "dev": true 988 | }, 989 | "diffie-hellman": { 990 | "version": "5.0.3", 991 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 992 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 993 | "dev": true, 994 | "requires": { 995 | "bn.js": "^4.1.0", 996 | "miller-rabin": "^4.0.0", 997 | "randombytes": "^2.0.0" 998 | } 999 | }, 1000 | "domain-browser": { 1001 | "version": "1.2.0", 1002 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 1003 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", 1004 | "dev": true 1005 | }, 1006 | "duplexify": { 1007 | "version": "3.7.1", 1008 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", 1009 | "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", 1010 | "dev": true, 1011 | "requires": { 1012 | "end-of-stream": "^1.0.0", 1013 | "inherits": "^2.0.1", 1014 | "readable-stream": "^2.0.0", 1015 | "stream-shift": "^1.0.0" 1016 | } 1017 | }, 1018 | "elliptic": { 1019 | "version": "6.5.2", 1020 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", 1021 | "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", 1022 | "dev": true, 1023 | "requires": { 1024 | "bn.js": "^4.4.0", 1025 | "brorand": "^1.0.1", 1026 | "hash.js": "^1.0.0", 1027 | "hmac-drbg": "^1.0.0", 1028 | "inherits": "^2.0.1", 1029 | "minimalistic-assert": "^1.0.0", 1030 | "minimalistic-crypto-utils": "^1.0.0" 1031 | } 1032 | }, 1033 | "emoji-regex": { 1034 | "version": "7.0.3", 1035 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 1036 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 1037 | "dev": true 1038 | }, 1039 | "emojis-list": { 1040 | "version": "3.0.0", 1041 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", 1042 | "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", 1043 | "dev": true 1044 | }, 1045 | "end-of-stream": { 1046 | "version": "1.4.4", 1047 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1048 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1049 | "dev": true, 1050 | "requires": { 1051 | "once": "^1.4.0" 1052 | } 1053 | }, 1054 | "enhanced-resolve": { 1055 | "version": "4.1.1", 1056 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", 1057 | "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", 1058 | "dev": true, 1059 | "requires": { 1060 | "graceful-fs": "^4.1.2", 1061 | "memory-fs": "^0.5.0", 1062 | "tapable": "^1.0.0" 1063 | }, 1064 | "dependencies": { 1065 | "memory-fs": { 1066 | "version": "0.5.0", 1067 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", 1068 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", 1069 | "dev": true, 1070 | "requires": { 1071 | "errno": "^0.1.3", 1072 | "readable-stream": "^2.0.1" 1073 | } 1074 | } 1075 | } 1076 | }, 1077 | "errno": { 1078 | "version": "0.1.7", 1079 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", 1080 | "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", 1081 | "dev": true, 1082 | "requires": { 1083 | "prr": "~1.0.1" 1084 | } 1085 | }, 1086 | "escape-string-regexp": { 1087 | "version": "1.0.5", 1088 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1089 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1090 | "dev": true 1091 | }, 1092 | "eslint-scope": { 1093 | "version": "4.0.3", 1094 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", 1095 | "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", 1096 | "dev": true, 1097 | "requires": { 1098 | "esrecurse": "^4.1.0", 1099 | "estraverse": "^4.1.1" 1100 | } 1101 | }, 1102 | "esrecurse": { 1103 | "version": "4.2.1", 1104 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 1105 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 1106 | "dev": true, 1107 | "requires": { 1108 | "estraverse": "^4.1.0" 1109 | } 1110 | }, 1111 | "estraverse": { 1112 | "version": "4.3.0", 1113 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1114 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1115 | "dev": true 1116 | }, 1117 | "events": { 1118 | "version": "3.1.0", 1119 | "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", 1120 | "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", 1121 | "dev": true 1122 | }, 1123 | "evp_bytestokey": { 1124 | "version": "1.0.3", 1125 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1126 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1127 | "dev": true, 1128 | "requires": { 1129 | "md5.js": "^1.3.4", 1130 | "safe-buffer": "^5.1.1" 1131 | } 1132 | }, 1133 | "execa": { 1134 | "version": "1.0.0", 1135 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 1136 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 1137 | "dev": true, 1138 | "requires": { 1139 | "cross-spawn": "^6.0.0", 1140 | "get-stream": "^4.0.0", 1141 | "is-stream": "^1.1.0", 1142 | "npm-run-path": "^2.0.0", 1143 | "p-finally": "^1.0.0", 1144 | "signal-exit": "^3.0.0", 1145 | "strip-eof": "^1.0.0" 1146 | } 1147 | }, 1148 | "expand-brackets": { 1149 | "version": "2.1.4", 1150 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1151 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1152 | "dev": true, 1153 | "requires": { 1154 | "debug": "^2.3.3", 1155 | "define-property": "^0.2.5", 1156 | "extend-shallow": "^2.0.1", 1157 | "posix-character-classes": "^0.1.0", 1158 | "regex-not": "^1.0.0", 1159 | "snapdragon": "^0.8.1", 1160 | "to-regex": "^3.0.1" 1161 | }, 1162 | "dependencies": { 1163 | "define-property": { 1164 | "version": "0.2.5", 1165 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1166 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1167 | "dev": true, 1168 | "requires": { 1169 | "is-descriptor": "^0.1.0" 1170 | } 1171 | }, 1172 | "extend-shallow": { 1173 | "version": "2.0.1", 1174 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1175 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1176 | "dev": true, 1177 | "requires": { 1178 | "is-extendable": "^0.1.0" 1179 | } 1180 | } 1181 | } 1182 | }, 1183 | "expand-tilde": { 1184 | "version": "2.0.2", 1185 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", 1186 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", 1187 | "dev": true, 1188 | "requires": { 1189 | "homedir-polyfill": "^1.0.1" 1190 | } 1191 | }, 1192 | "extend-shallow": { 1193 | "version": "3.0.2", 1194 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1195 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1196 | "dev": true, 1197 | "requires": { 1198 | "assign-symbols": "^1.0.0", 1199 | "is-extendable": "^1.0.1" 1200 | }, 1201 | "dependencies": { 1202 | "is-extendable": { 1203 | "version": "1.0.1", 1204 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1205 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1206 | "dev": true, 1207 | "requires": { 1208 | "is-plain-object": "^2.0.4" 1209 | } 1210 | } 1211 | } 1212 | }, 1213 | "extglob": { 1214 | "version": "2.0.4", 1215 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1216 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1217 | "dev": true, 1218 | "requires": { 1219 | "array-unique": "^0.3.2", 1220 | "define-property": "^1.0.0", 1221 | "expand-brackets": "^2.1.4", 1222 | "extend-shallow": "^2.0.1", 1223 | "fragment-cache": "^0.2.1", 1224 | "regex-not": "^1.0.0", 1225 | "snapdragon": "^0.8.1", 1226 | "to-regex": "^3.0.1" 1227 | }, 1228 | "dependencies": { 1229 | "define-property": { 1230 | "version": "1.0.0", 1231 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1232 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1233 | "dev": true, 1234 | "requires": { 1235 | "is-descriptor": "^1.0.0" 1236 | } 1237 | }, 1238 | "extend-shallow": { 1239 | "version": "2.0.1", 1240 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1241 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1242 | "dev": true, 1243 | "requires": { 1244 | "is-extendable": "^0.1.0" 1245 | } 1246 | }, 1247 | "is-accessor-descriptor": { 1248 | "version": "1.0.0", 1249 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1250 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1251 | "dev": true, 1252 | "requires": { 1253 | "kind-of": "^6.0.0" 1254 | } 1255 | }, 1256 | "is-data-descriptor": { 1257 | "version": "1.0.0", 1258 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1259 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1260 | "dev": true, 1261 | "requires": { 1262 | "kind-of": "^6.0.0" 1263 | } 1264 | }, 1265 | "is-descriptor": { 1266 | "version": "1.0.2", 1267 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1268 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1269 | "dev": true, 1270 | "requires": { 1271 | "is-accessor-descriptor": "^1.0.0", 1272 | "is-data-descriptor": "^1.0.0", 1273 | "kind-of": "^6.0.2" 1274 | } 1275 | } 1276 | } 1277 | }, 1278 | "fast-deep-equal": { 1279 | "version": "3.1.1", 1280 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", 1281 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", 1282 | "dev": true 1283 | }, 1284 | "fast-json-stable-stringify": { 1285 | "version": "2.1.0", 1286 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1287 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1288 | "dev": true 1289 | }, 1290 | "figgy-pudding": { 1291 | "version": "3.5.2", 1292 | "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", 1293 | "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", 1294 | "dev": true 1295 | }, 1296 | "file-uri-to-path": { 1297 | "version": "1.0.0", 1298 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1299 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 1300 | "dev": true, 1301 | "optional": true 1302 | }, 1303 | "fill-range": { 1304 | "version": "4.0.0", 1305 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1306 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1307 | "dev": true, 1308 | "requires": { 1309 | "extend-shallow": "^2.0.1", 1310 | "is-number": "^3.0.0", 1311 | "repeat-string": "^1.6.1", 1312 | "to-regex-range": "^2.1.0" 1313 | }, 1314 | "dependencies": { 1315 | "extend-shallow": { 1316 | "version": "2.0.1", 1317 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1318 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1319 | "dev": true, 1320 | "requires": { 1321 | "is-extendable": "^0.1.0" 1322 | } 1323 | } 1324 | } 1325 | }, 1326 | "find-cache-dir": { 1327 | "version": "2.1.0", 1328 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", 1329 | "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", 1330 | "dev": true, 1331 | "requires": { 1332 | "commondir": "^1.0.1", 1333 | "make-dir": "^2.0.0", 1334 | "pkg-dir": "^3.0.0" 1335 | } 1336 | }, 1337 | "find-up": { 1338 | "version": "3.0.0", 1339 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1340 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1341 | "dev": true, 1342 | "requires": { 1343 | "locate-path": "^3.0.0" 1344 | } 1345 | }, 1346 | "findup-sync": { 1347 | "version": "3.0.0", 1348 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", 1349 | "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", 1350 | "dev": true, 1351 | "requires": { 1352 | "detect-file": "^1.0.0", 1353 | "is-glob": "^4.0.0", 1354 | "micromatch": "^3.0.4", 1355 | "resolve-dir": "^1.0.1" 1356 | } 1357 | }, 1358 | "flush-write-stream": { 1359 | "version": "1.1.1", 1360 | "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", 1361 | "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", 1362 | "dev": true, 1363 | "requires": { 1364 | "inherits": "^2.0.3", 1365 | "readable-stream": "^2.3.6" 1366 | } 1367 | }, 1368 | "for-in": { 1369 | "version": "1.0.2", 1370 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1371 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1372 | "dev": true 1373 | }, 1374 | "fragment-cache": { 1375 | "version": "0.2.1", 1376 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1377 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1378 | "dev": true, 1379 | "requires": { 1380 | "map-cache": "^0.2.2" 1381 | } 1382 | }, 1383 | "from2": { 1384 | "version": "2.3.0", 1385 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", 1386 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1387 | "dev": true, 1388 | "requires": { 1389 | "inherits": "^2.0.1", 1390 | "readable-stream": "^2.0.0" 1391 | } 1392 | }, 1393 | "fs-write-stream-atomic": { 1394 | "version": "1.0.10", 1395 | "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", 1396 | "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", 1397 | "dev": true, 1398 | "requires": { 1399 | "graceful-fs": "^4.1.2", 1400 | "iferr": "^0.1.5", 1401 | "imurmurhash": "^0.1.4", 1402 | "readable-stream": "1 || 2" 1403 | } 1404 | }, 1405 | "fs.realpath": { 1406 | "version": "1.0.0", 1407 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1408 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1409 | "dev": true 1410 | }, 1411 | "fsevents": { 1412 | "version": "1.2.12", 1413 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", 1414 | "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", 1415 | "dev": true, 1416 | "optional": true, 1417 | "requires": { 1418 | "bindings": "^1.5.0", 1419 | "nan": "^2.12.1", 1420 | "node-pre-gyp": "*" 1421 | }, 1422 | "dependencies": { 1423 | "abbrev": { 1424 | "version": "1.1.1", 1425 | "bundled": true, 1426 | "dev": true, 1427 | "optional": true 1428 | }, 1429 | "ansi-regex": { 1430 | "version": "2.1.1", 1431 | "bundled": true, 1432 | "dev": true, 1433 | "optional": true 1434 | }, 1435 | "aproba": { 1436 | "version": "1.2.0", 1437 | "bundled": true, 1438 | "dev": true, 1439 | "optional": true 1440 | }, 1441 | "are-we-there-yet": { 1442 | "version": "1.1.5", 1443 | "bundled": true, 1444 | "dev": true, 1445 | "optional": true, 1446 | "requires": { 1447 | "delegates": "^1.0.0", 1448 | "readable-stream": "^2.0.6" 1449 | } 1450 | }, 1451 | "balanced-match": { 1452 | "version": "1.0.0", 1453 | "bundled": true, 1454 | "dev": true, 1455 | "optional": true 1456 | }, 1457 | "brace-expansion": { 1458 | "version": "1.1.11", 1459 | "bundled": true, 1460 | "dev": true, 1461 | "optional": true, 1462 | "requires": { 1463 | "balanced-match": "^1.0.0", 1464 | "concat-map": "0.0.1" 1465 | } 1466 | }, 1467 | "chownr": { 1468 | "version": "1.1.4", 1469 | "bundled": true, 1470 | "dev": true, 1471 | "optional": true 1472 | }, 1473 | "code-point-at": { 1474 | "version": "1.1.0", 1475 | "bundled": true, 1476 | "dev": true, 1477 | "optional": true 1478 | }, 1479 | "concat-map": { 1480 | "version": "0.0.1", 1481 | "bundled": true, 1482 | "dev": true, 1483 | "optional": true 1484 | }, 1485 | "console-control-strings": { 1486 | "version": "1.1.0", 1487 | "bundled": true, 1488 | "dev": true, 1489 | "optional": true 1490 | }, 1491 | "core-util-is": { 1492 | "version": "1.0.2", 1493 | "bundled": true, 1494 | "dev": true, 1495 | "optional": true 1496 | }, 1497 | "debug": { 1498 | "version": "3.2.6", 1499 | "bundled": true, 1500 | "dev": true, 1501 | "optional": true, 1502 | "requires": { 1503 | "ms": "^2.1.1" 1504 | } 1505 | }, 1506 | "deep-extend": { 1507 | "version": "0.6.0", 1508 | "bundled": true, 1509 | "dev": true, 1510 | "optional": true 1511 | }, 1512 | "delegates": { 1513 | "version": "1.0.0", 1514 | "bundled": true, 1515 | "dev": true, 1516 | "optional": true 1517 | }, 1518 | "detect-libc": { 1519 | "version": "1.0.3", 1520 | "bundled": true, 1521 | "dev": true, 1522 | "optional": true 1523 | }, 1524 | "fs-minipass": { 1525 | "version": "1.2.7", 1526 | "bundled": true, 1527 | "dev": true, 1528 | "optional": true, 1529 | "requires": { 1530 | "minipass": "^2.6.0" 1531 | } 1532 | }, 1533 | "fs.realpath": { 1534 | "version": "1.0.0", 1535 | "bundled": true, 1536 | "dev": true, 1537 | "optional": true 1538 | }, 1539 | "gauge": { 1540 | "version": "2.7.4", 1541 | "bundled": true, 1542 | "dev": true, 1543 | "optional": true, 1544 | "requires": { 1545 | "aproba": "^1.0.3", 1546 | "console-control-strings": "^1.0.0", 1547 | "has-unicode": "^2.0.0", 1548 | "object-assign": "^4.1.0", 1549 | "signal-exit": "^3.0.0", 1550 | "string-width": "^1.0.1", 1551 | "strip-ansi": "^3.0.1", 1552 | "wide-align": "^1.1.0" 1553 | } 1554 | }, 1555 | "glob": { 1556 | "version": "7.1.6", 1557 | "bundled": true, 1558 | "dev": true, 1559 | "optional": true, 1560 | "requires": { 1561 | "fs.realpath": "^1.0.0", 1562 | "inflight": "^1.0.4", 1563 | "inherits": "2", 1564 | "minimatch": "^3.0.4", 1565 | "once": "^1.3.0", 1566 | "path-is-absolute": "^1.0.0" 1567 | } 1568 | }, 1569 | "has-unicode": { 1570 | "version": "2.0.1", 1571 | "bundled": true, 1572 | "dev": true, 1573 | "optional": true 1574 | }, 1575 | "iconv-lite": { 1576 | "version": "0.4.24", 1577 | "bundled": true, 1578 | "dev": true, 1579 | "optional": true, 1580 | "requires": { 1581 | "safer-buffer": ">= 2.1.2 < 3" 1582 | } 1583 | }, 1584 | "ignore-walk": { 1585 | "version": "3.0.3", 1586 | "bundled": true, 1587 | "dev": true, 1588 | "optional": true, 1589 | "requires": { 1590 | "minimatch": "^3.0.4" 1591 | } 1592 | }, 1593 | "inflight": { 1594 | "version": "1.0.6", 1595 | "bundled": true, 1596 | "dev": true, 1597 | "optional": true, 1598 | "requires": { 1599 | "once": "^1.3.0", 1600 | "wrappy": "1" 1601 | } 1602 | }, 1603 | "inherits": { 1604 | "version": "2.0.4", 1605 | "bundled": true, 1606 | "dev": true, 1607 | "optional": true 1608 | }, 1609 | "ini": { 1610 | "version": "1.3.5", 1611 | "bundled": true, 1612 | "dev": true, 1613 | "optional": true 1614 | }, 1615 | "is-fullwidth-code-point": { 1616 | "version": "1.0.0", 1617 | "bundled": true, 1618 | "dev": true, 1619 | "optional": true, 1620 | "requires": { 1621 | "number-is-nan": "^1.0.0" 1622 | } 1623 | }, 1624 | "isarray": { 1625 | "version": "1.0.0", 1626 | "bundled": true, 1627 | "dev": true, 1628 | "optional": true 1629 | }, 1630 | "minimatch": { 1631 | "version": "3.0.4", 1632 | "bundled": true, 1633 | "dev": true, 1634 | "optional": true, 1635 | "requires": { 1636 | "brace-expansion": "^1.1.7" 1637 | } 1638 | }, 1639 | "minimist": { 1640 | "version": "1.2.5", 1641 | "bundled": true, 1642 | "dev": true, 1643 | "optional": true 1644 | }, 1645 | "minipass": { 1646 | "version": "2.9.0", 1647 | "bundled": true, 1648 | "dev": true, 1649 | "optional": true, 1650 | "requires": { 1651 | "safe-buffer": "^5.1.2", 1652 | "yallist": "^3.0.0" 1653 | } 1654 | }, 1655 | "minizlib": { 1656 | "version": "1.3.3", 1657 | "bundled": true, 1658 | "dev": true, 1659 | "optional": true, 1660 | "requires": { 1661 | "minipass": "^2.9.0" 1662 | } 1663 | }, 1664 | "mkdirp": { 1665 | "version": "0.5.3", 1666 | "bundled": true, 1667 | "dev": true, 1668 | "optional": true, 1669 | "requires": { 1670 | "minimist": "^1.2.5" 1671 | } 1672 | }, 1673 | "ms": { 1674 | "version": "2.1.2", 1675 | "bundled": true, 1676 | "dev": true, 1677 | "optional": true 1678 | }, 1679 | "needle": { 1680 | "version": "2.3.3", 1681 | "bundled": true, 1682 | "dev": true, 1683 | "optional": true, 1684 | "requires": { 1685 | "debug": "^3.2.6", 1686 | "iconv-lite": "^0.4.4", 1687 | "sax": "^1.2.4" 1688 | } 1689 | }, 1690 | "node-pre-gyp": { 1691 | "version": "0.14.0", 1692 | "bundled": true, 1693 | "dev": true, 1694 | "optional": true, 1695 | "requires": { 1696 | "detect-libc": "^1.0.2", 1697 | "mkdirp": "^0.5.1", 1698 | "needle": "^2.2.1", 1699 | "nopt": "^4.0.1", 1700 | "npm-packlist": "^1.1.6", 1701 | "npmlog": "^4.0.2", 1702 | "rc": "^1.2.7", 1703 | "rimraf": "^2.6.1", 1704 | "semver": "^5.3.0", 1705 | "tar": "^4.4.2" 1706 | } 1707 | }, 1708 | "nopt": { 1709 | "version": "4.0.3", 1710 | "bundled": true, 1711 | "dev": true, 1712 | "optional": true, 1713 | "requires": { 1714 | "abbrev": "1", 1715 | "osenv": "^0.1.4" 1716 | } 1717 | }, 1718 | "npm-bundled": { 1719 | "version": "1.1.1", 1720 | "bundled": true, 1721 | "dev": true, 1722 | "optional": true, 1723 | "requires": { 1724 | "npm-normalize-package-bin": "^1.0.1" 1725 | } 1726 | }, 1727 | "npm-normalize-package-bin": { 1728 | "version": "1.0.1", 1729 | "bundled": true, 1730 | "dev": true, 1731 | "optional": true 1732 | }, 1733 | "npm-packlist": { 1734 | "version": "1.4.8", 1735 | "bundled": true, 1736 | "dev": true, 1737 | "optional": true, 1738 | "requires": { 1739 | "ignore-walk": "^3.0.1", 1740 | "npm-bundled": "^1.0.1", 1741 | "npm-normalize-package-bin": "^1.0.1" 1742 | } 1743 | }, 1744 | "npmlog": { 1745 | "version": "4.1.2", 1746 | "bundled": true, 1747 | "dev": true, 1748 | "optional": true, 1749 | "requires": { 1750 | "are-we-there-yet": "~1.1.2", 1751 | "console-control-strings": "~1.1.0", 1752 | "gauge": "~2.7.3", 1753 | "set-blocking": "~2.0.0" 1754 | } 1755 | }, 1756 | "number-is-nan": { 1757 | "version": "1.0.1", 1758 | "bundled": true, 1759 | "dev": true, 1760 | "optional": true 1761 | }, 1762 | "object-assign": { 1763 | "version": "4.1.1", 1764 | "bundled": true, 1765 | "dev": true, 1766 | "optional": true 1767 | }, 1768 | "once": { 1769 | "version": "1.4.0", 1770 | "bundled": true, 1771 | "dev": true, 1772 | "optional": true, 1773 | "requires": { 1774 | "wrappy": "1" 1775 | } 1776 | }, 1777 | "os-homedir": { 1778 | "version": "1.0.2", 1779 | "bundled": true, 1780 | "dev": true, 1781 | "optional": true 1782 | }, 1783 | "os-tmpdir": { 1784 | "version": "1.0.2", 1785 | "bundled": true, 1786 | "dev": true, 1787 | "optional": true 1788 | }, 1789 | "osenv": { 1790 | "version": "0.1.5", 1791 | "bundled": true, 1792 | "dev": true, 1793 | "optional": true, 1794 | "requires": { 1795 | "os-homedir": "^1.0.0", 1796 | "os-tmpdir": "^1.0.0" 1797 | } 1798 | }, 1799 | "path-is-absolute": { 1800 | "version": "1.0.1", 1801 | "bundled": true, 1802 | "dev": true, 1803 | "optional": true 1804 | }, 1805 | "process-nextick-args": { 1806 | "version": "2.0.1", 1807 | "bundled": true, 1808 | "dev": true, 1809 | "optional": true 1810 | }, 1811 | "rc": { 1812 | "version": "1.2.8", 1813 | "bundled": true, 1814 | "dev": true, 1815 | "optional": true, 1816 | "requires": { 1817 | "deep-extend": "^0.6.0", 1818 | "ini": "~1.3.0", 1819 | "minimist": "^1.2.0", 1820 | "strip-json-comments": "~2.0.1" 1821 | } 1822 | }, 1823 | "readable-stream": { 1824 | "version": "2.3.7", 1825 | "bundled": true, 1826 | "dev": true, 1827 | "optional": true, 1828 | "requires": { 1829 | "core-util-is": "~1.0.0", 1830 | "inherits": "~2.0.3", 1831 | "isarray": "~1.0.0", 1832 | "process-nextick-args": "~2.0.0", 1833 | "safe-buffer": "~5.1.1", 1834 | "string_decoder": "~1.1.1", 1835 | "util-deprecate": "~1.0.1" 1836 | } 1837 | }, 1838 | "rimraf": { 1839 | "version": "2.7.1", 1840 | "bundled": true, 1841 | "dev": true, 1842 | "optional": true, 1843 | "requires": { 1844 | "glob": "^7.1.3" 1845 | } 1846 | }, 1847 | "safe-buffer": { 1848 | "version": "5.1.2", 1849 | "bundled": true, 1850 | "dev": true, 1851 | "optional": true 1852 | }, 1853 | "safer-buffer": { 1854 | "version": "2.1.2", 1855 | "bundled": true, 1856 | "dev": true, 1857 | "optional": true 1858 | }, 1859 | "sax": { 1860 | "version": "1.2.4", 1861 | "bundled": true, 1862 | "dev": true, 1863 | "optional": true 1864 | }, 1865 | "semver": { 1866 | "version": "5.7.1", 1867 | "bundled": true, 1868 | "dev": true, 1869 | "optional": true 1870 | }, 1871 | "set-blocking": { 1872 | "version": "2.0.0", 1873 | "bundled": true, 1874 | "dev": true, 1875 | "optional": true 1876 | }, 1877 | "signal-exit": { 1878 | "version": "3.0.2", 1879 | "bundled": true, 1880 | "dev": true, 1881 | "optional": true 1882 | }, 1883 | "string-width": { 1884 | "version": "1.0.2", 1885 | "bundled": true, 1886 | "dev": true, 1887 | "optional": true, 1888 | "requires": { 1889 | "code-point-at": "^1.0.0", 1890 | "is-fullwidth-code-point": "^1.0.0", 1891 | "strip-ansi": "^3.0.0" 1892 | } 1893 | }, 1894 | "string_decoder": { 1895 | "version": "1.1.1", 1896 | "bundled": true, 1897 | "dev": true, 1898 | "optional": true, 1899 | "requires": { 1900 | "safe-buffer": "~5.1.0" 1901 | } 1902 | }, 1903 | "strip-ansi": { 1904 | "version": "3.0.1", 1905 | "bundled": true, 1906 | "dev": true, 1907 | "optional": true, 1908 | "requires": { 1909 | "ansi-regex": "^2.0.0" 1910 | } 1911 | }, 1912 | "strip-json-comments": { 1913 | "version": "2.0.1", 1914 | "bundled": true, 1915 | "dev": true, 1916 | "optional": true 1917 | }, 1918 | "tar": { 1919 | "version": "4.4.13", 1920 | "bundled": true, 1921 | "dev": true, 1922 | "optional": true, 1923 | "requires": { 1924 | "chownr": "^1.1.1", 1925 | "fs-minipass": "^1.2.5", 1926 | "minipass": "^2.8.6", 1927 | "minizlib": "^1.2.1", 1928 | "mkdirp": "^0.5.0", 1929 | "safe-buffer": "^5.1.2", 1930 | "yallist": "^3.0.3" 1931 | } 1932 | }, 1933 | "util-deprecate": { 1934 | "version": "1.0.2", 1935 | "bundled": true, 1936 | "dev": true, 1937 | "optional": true 1938 | }, 1939 | "wide-align": { 1940 | "version": "1.1.3", 1941 | "bundled": true, 1942 | "dev": true, 1943 | "optional": true, 1944 | "requires": { 1945 | "string-width": "^1.0.2 || 2" 1946 | } 1947 | }, 1948 | "wrappy": { 1949 | "version": "1.0.2", 1950 | "bundled": true, 1951 | "dev": true, 1952 | "optional": true 1953 | }, 1954 | "yallist": { 1955 | "version": "3.1.1", 1956 | "bundled": true, 1957 | "dev": true, 1958 | "optional": true 1959 | } 1960 | } 1961 | }, 1962 | "get-caller-file": { 1963 | "version": "2.0.5", 1964 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1965 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 1966 | "dev": true 1967 | }, 1968 | "get-stream": { 1969 | "version": "4.1.0", 1970 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 1971 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 1972 | "dev": true, 1973 | "requires": { 1974 | "pump": "^3.0.0" 1975 | } 1976 | }, 1977 | "get-value": { 1978 | "version": "2.0.6", 1979 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1980 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1981 | "dev": true 1982 | }, 1983 | "glob": { 1984 | "version": "7.1.6", 1985 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1986 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1987 | "dev": true, 1988 | "requires": { 1989 | "fs.realpath": "^1.0.0", 1990 | "inflight": "^1.0.4", 1991 | "inherits": "2", 1992 | "minimatch": "^3.0.4", 1993 | "once": "^1.3.0", 1994 | "path-is-absolute": "^1.0.0" 1995 | } 1996 | }, 1997 | "glob-parent": { 1998 | "version": "3.1.0", 1999 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", 2000 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 2001 | "dev": true, 2002 | "requires": { 2003 | "is-glob": "^3.1.0", 2004 | "path-dirname": "^1.0.0" 2005 | }, 2006 | "dependencies": { 2007 | "is-glob": { 2008 | "version": "3.1.0", 2009 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 2010 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 2011 | "dev": true, 2012 | "requires": { 2013 | "is-extglob": "^2.1.0" 2014 | } 2015 | } 2016 | } 2017 | }, 2018 | "global-modules": { 2019 | "version": "2.0.0", 2020 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", 2021 | "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", 2022 | "dev": true, 2023 | "requires": { 2024 | "global-prefix": "^3.0.0" 2025 | }, 2026 | "dependencies": { 2027 | "global-prefix": { 2028 | "version": "3.0.0", 2029 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", 2030 | "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", 2031 | "dev": true, 2032 | "requires": { 2033 | "ini": "^1.3.5", 2034 | "kind-of": "^6.0.2", 2035 | "which": "^1.3.1" 2036 | } 2037 | } 2038 | } 2039 | }, 2040 | "global-prefix": { 2041 | "version": "1.0.2", 2042 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", 2043 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", 2044 | "dev": true, 2045 | "requires": { 2046 | "expand-tilde": "^2.0.2", 2047 | "homedir-polyfill": "^1.0.1", 2048 | "ini": "^1.3.4", 2049 | "is-windows": "^1.0.1", 2050 | "which": "^1.2.14" 2051 | } 2052 | }, 2053 | "graceful-fs": { 2054 | "version": "4.2.3", 2055 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 2056 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 2057 | "dev": true 2058 | }, 2059 | "has-flag": { 2060 | "version": "3.0.0", 2061 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2062 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2063 | "dev": true 2064 | }, 2065 | "has-value": { 2066 | "version": "1.0.0", 2067 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 2068 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 2069 | "dev": true, 2070 | "requires": { 2071 | "get-value": "^2.0.6", 2072 | "has-values": "^1.0.0", 2073 | "isobject": "^3.0.0" 2074 | } 2075 | }, 2076 | "has-values": { 2077 | "version": "1.0.0", 2078 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 2079 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 2080 | "dev": true, 2081 | "requires": { 2082 | "is-number": "^3.0.0", 2083 | "kind-of": "^4.0.0" 2084 | }, 2085 | "dependencies": { 2086 | "kind-of": { 2087 | "version": "4.0.0", 2088 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2089 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2090 | "dev": true, 2091 | "requires": { 2092 | "is-buffer": "^1.1.5" 2093 | } 2094 | } 2095 | } 2096 | }, 2097 | "hash-base": { 2098 | "version": "3.0.4", 2099 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 2100 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 2101 | "dev": true, 2102 | "requires": { 2103 | "inherits": "^2.0.1", 2104 | "safe-buffer": "^5.0.1" 2105 | } 2106 | }, 2107 | "hash.js": { 2108 | "version": "1.1.7", 2109 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 2110 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 2111 | "dev": true, 2112 | "requires": { 2113 | "inherits": "^2.0.3", 2114 | "minimalistic-assert": "^1.0.1" 2115 | } 2116 | }, 2117 | "hmac-drbg": { 2118 | "version": "1.0.1", 2119 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 2120 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 2121 | "dev": true, 2122 | "requires": { 2123 | "hash.js": "^1.0.3", 2124 | "minimalistic-assert": "^1.0.0", 2125 | "minimalistic-crypto-utils": "^1.0.1" 2126 | } 2127 | }, 2128 | "homedir-polyfill": { 2129 | "version": "1.0.3", 2130 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", 2131 | "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", 2132 | "dev": true, 2133 | "requires": { 2134 | "parse-passwd": "^1.0.0" 2135 | } 2136 | }, 2137 | "https-browserify": { 2138 | "version": "1.0.0", 2139 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 2140 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 2141 | "dev": true 2142 | }, 2143 | "ieee754": { 2144 | "version": "1.1.13", 2145 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 2146 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", 2147 | "dev": true 2148 | }, 2149 | "iferr": { 2150 | "version": "0.1.5", 2151 | "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", 2152 | "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", 2153 | "dev": true 2154 | }, 2155 | "import-local": { 2156 | "version": "2.0.0", 2157 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", 2158 | "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", 2159 | "dev": true, 2160 | "requires": { 2161 | "pkg-dir": "^3.0.0", 2162 | "resolve-cwd": "^2.0.0" 2163 | } 2164 | }, 2165 | "imurmurhash": { 2166 | "version": "0.1.4", 2167 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2168 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2169 | "dev": true 2170 | }, 2171 | "infer-owner": { 2172 | "version": "1.0.4", 2173 | "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", 2174 | "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", 2175 | "dev": true 2176 | }, 2177 | "inflight": { 2178 | "version": "1.0.6", 2179 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2180 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2181 | "dev": true, 2182 | "requires": { 2183 | "once": "^1.3.0", 2184 | "wrappy": "1" 2185 | } 2186 | }, 2187 | "inherits": { 2188 | "version": "2.0.4", 2189 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2190 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2191 | "dev": true 2192 | }, 2193 | "ini": { 2194 | "version": "1.3.5", 2195 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 2196 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 2197 | "dev": true 2198 | }, 2199 | "interpret": { 2200 | "version": "1.2.0", 2201 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", 2202 | "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", 2203 | "dev": true 2204 | }, 2205 | "invert-kv": { 2206 | "version": "2.0.0", 2207 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", 2208 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", 2209 | "dev": true 2210 | }, 2211 | "is-accessor-descriptor": { 2212 | "version": "0.1.6", 2213 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2214 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 2215 | "dev": true, 2216 | "requires": { 2217 | "kind-of": "^3.0.2" 2218 | }, 2219 | "dependencies": { 2220 | "kind-of": { 2221 | "version": "3.2.2", 2222 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2223 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2224 | "dev": true, 2225 | "requires": { 2226 | "is-buffer": "^1.1.5" 2227 | } 2228 | } 2229 | } 2230 | }, 2231 | "is-binary-path": { 2232 | "version": "1.0.1", 2233 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2234 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2235 | "dev": true, 2236 | "requires": { 2237 | "binary-extensions": "^1.0.0" 2238 | } 2239 | }, 2240 | "is-buffer": { 2241 | "version": "1.1.6", 2242 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2243 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2244 | "dev": true 2245 | }, 2246 | "is-data-descriptor": { 2247 | "version": "0.1.4", 2248 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 2249 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 2250 | "dev": true, 2251 | "requires": { 2252 | "kind-of": "^3.0.2" 2253 | }, 2254 | "dependencies": { 2255 | "kind-of": { 2256 | "version": "3.2.2", 2257 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2258 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2259 | "dev": true, 2260 | "requires": { 2261 | "is-buffer": "^1.1.5" 2262 | } 2263 | } 2264 | } 2265 | }, 2266 | "is-descriptor": { 2267 | "version": "0.1.6", 2268 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2269 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2270 | "dev": true, 2271 | "requires": { 2272 | "is-accessor-descriptor": "^0.1.6", 2273 | "is-data-descriptor": "^0.1.4", 2274 | "kind-of": "^5.0.0" 2275 | }, 2276 | "dependencies": { 2277 | "kind-of": { 2278 | "version": "5.1.0", 2279 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2280 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2281 | "dev": true 2282 | } 2283 | } 2284 | }, 2285 | "is-extendable": { 2286 | "version": "0.1.1", 2287 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2288 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2289 | "dev": true 2290 | }, 2291 | "is-extglob": { 2292 | "version": "2.1.1", 2293 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2294 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2295 | "dev": true 2296 | }, 2297 | "is-fullwidth-code-point": { 2298 | "version": "2.0.0", 2299 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2300 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2301 | "dev": true 2302 | }, 2303 | "is-glob": { 2304 | "version": "4.0.1", 2305 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 2306 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 2307 | "dev": true, 2308 | "requires": { 2309 | "is-extglob": "^2.1.1" 2310 | } 2311 | }, 2312 | "is-number": { 2313 | "version": "3.0.0", 2314 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2315 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2316 | "dev": true, 2317 | "requires": { 2318 | "kind-of": "^3.0.2" 2319 | }, 2320 | "dependencies": { 2321 | "kind-of": { 2322 | "version": "3.2.2", 2323 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2324 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2325 | "dev": true, 2326 | "requires": { 2327 | "is-buffer": "^1.1.5" 2328 | } 2329 | } 2330 | } 2331 | }, 2332 | "is-plain-object": { 2333 | "version": "2.0.4", 2334 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2335 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2336 | "dev": true, 2337 | "requires": { 2338 | "isobject": "^3.0.1" 2339 | } 2340 | }, 2341 | "is-stream": { 2342 | "version": "1.1.0", 2343 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2344 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2345 | "dev": true 2346 | }, 2347 | "is-windows": { 2348 | "version": "1.0.2", 2349 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2350 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2351 | "dev": true 2352 | }, 2353 | "is-wsl": { 2354 | "version": "1.1.0", 2355 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 2356 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2357 | "dev": true 2358 | }, 2359 | "isarray": { 2360 | "version": "1.0.0", 2361 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2362 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2363 | "dev": true 2364 | }, 2365 | "isexe": { 2366 | "version": "2.0.0", 2367 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2368 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2369 | "dev": true 2370 | }, 2371 | "isobject": { 2372 | "version": "3.0.1", 2373 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2374 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2375 | "dev": true 2376 | }, 2377 | "js-tokens": { 2378 | "version": "4.0.0", 2379 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2380 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2381 | }, 2382 | "json-parse-better-errors": { 2383 | "version": "1.0.2", 2384 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2385 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2386 | "dev": true 2387 | }, 2388 | "json-schema-traverse": { 2389 | "version": "0.4.1", 2390 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2391 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2392 | "dev": true 2393 | }, 2394 | "json5": { 2395 | "version": "1.0.1", 2396 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", 2397 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", 2398 | "dev": true, 2399 | "requires": { 2400 | "minimist": "^1.2.0" 2401 | } 2402 | }, 2403 | "kind-of": { 2404 | "version": "6.0.3", 2405 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 2406 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 2407 | "dev": true 2408 | }, 2409 | "lcid": { 2410 | "version": "2.0.0", 2411 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", 2412 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", 2413 | "dev": true, 2414 | "requires": { 2415 | "invert-kv": "^2.0.0" 2416 | } 2417 | }, 2418 | "loader-runner": { 2419 | "version": "2.4.0", 2420 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", 2421 | "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", 2422 | "dev": true 2423 | }, 2424 | "loader-utils": { 2425 | "version": "1.4.0", 2426 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", 2427 | "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", 2428 | "dev": true, 2429 | "requires": { 2430 | "big.js": "^5.2.2", 2431 | "emojis-list": "^3.0.0", 2432 | "json5": "^1.0.1" 2433 | } 2434 | }, 2435 | "locate-path": { 2436 | "version": "3.0.0", 2437 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2438 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2439 | "dev": true, 2440 | "requires": { 2441 | "p-locate": "^3.0.0", 2442 | "path-exists": "^3.0.0" 2443 | } 2444 | }, 2445 | "loose-envify": { 2446 | "version": "1.4.0", 2447 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2448 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2449 | "requires": { 2450 | "js-tokens": "^3.0.0 || ^4.0.0" 2451 | } 2452 | }, 2453 | "lru-cache": { 2454 | "version": "5.1.1", 2455 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 2456 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 2457 | "dev": true, 2458 | "requires": { 2459 | "yallist": "^3.0.2" 2460 | } 2461 | }, 2462 | "make-dir": { 2463 | "version": "2.1.0", 2464 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 2465 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 2466 | "dev": true, 2467 | "requires": { 2468 | "pify": "^4.0.1", 2469 | "semver": "^5.6.0" 2470 | } 2471 | }, 2472 | "map-age-cleaner": { 2473 | "version": "0.1.3", 2474 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 2475 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 2476 | "dev": true, 2477 | "requires": { 2478 | "p-defer": "^1.0.0" 2479 | } 2480 | }, 2481 | "map-cache": { 2482 | "version": "0.2.2", 2483 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 2484 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 2485 | "dev": true 2486 | }, 2487 | "map-visit": { 2488 | "version": "1.0.0", 2489 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 2490 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 2491 | "dev": true, 2492 | "requires": { 2493 | "object-visit": "^1.0.0" 2494 | } 2495 | }, 2496 | "md5.js": { 2497 | "version": "1.3.5", 2498 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 2499 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 2500 | "dev": true, 2501 | "requires": { 2502 | "hash-base": "^3.0.0", 2503 | "inherits": "^2.0.1", 2504 | "safe-buffer": "^5.1.2" 2505 | } 2506 | }, 2507 | "mem": { 2508 | "version": "4.3.0", 2509 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 2510 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 2511 | "dev": true, 2512 | "requires": { 2513 | "map-age-cleaner": "^0.1.1", 2514 | "mimic-fn": "^2.0.0", 2515 | "p-is-promise": "^2.0.0" 2516 | } 2517 | }, 2518 | "memory-fs": { 2519 | "version": "0.4.1", 2520 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", 2521 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 2522 | "dev": true, 2523 | "requires": { 2524 | "errno": "^0.1.3", 2525 | "readable-stream": "^2.0.1" 2526 | } 2527 | }, 2528 | "micromatch": { 2529 | "version": "3.1.10", 2530 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 2531 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 2532 | "dev": true, 2533 | "requires": { 2534 | "arr-diff": "^4.0.0", 2535 | "array-unique": "^0.3.2", 2536 | "braces": "^2.3.1", 2537 | "define-property": "^2.0.2", 2538 | "extend-shallow": "^3.0.2", 2539 | "extglob": "^2.0.4", 2540 | "fragment-cache": "^0.2.1", 2541 | "kind-of": "^6.0.2", 2542 | "nanomatch": "^1.2.9", 2543 | "object.pick": "^1.3.0", 2544 | "regex-not": "^1.0.0", 2545 | "snapdragon": "^0.8.1", 2546 | "to-regex": "^3.0.2" 2547 | } 2548 | }, 2549 | "miller-rabin": { 2550 | "version": "4.0.1", 2551 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 2552 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 2553 | "dev": true, 2554 | "requires": { 2555 | "bn.js": "^4.0.0", 2556 | "brorand": "^1.0.1" 2557 | } 2558 | }, 2559 | "mimic-fn": { 2560 | "version": "2.1.0", 2561 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2562 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2563 | "dev": true 2564 | }, 2565 | "minimalistic-assert": { 2566 | "version": "1.0.1", 2567 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 2568 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", 2569 | "dev": true 2570 | }, 2571 | "minimalistic-crypto-utils": { 2572 | "version": "1.0.1", 2573 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2574 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2575 | "dev": true 2576 | }, 2577 | "minimatch": { 2578 | "version": "3.0.4", 2579 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2580 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2581 | "dev": true, 2582 | "requires": { 2583 | "brace-expansion": "^1.1.7" 2584 | } 2585 | }, 2586 | "minimist": { 2587 | "version": "1.2.5", 2588 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2589 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2590 | "dev": true 2591 | }, 2592 | "mississippi": { 2593 | "version": "3.0.0", 2594 | "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", 2595 | "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", 2596 | "dev": true, 2597 | "requires": { 2598 | "concat-stream": "^1.5.0", 2599 | "duplexify": "^3.4.2", 2600 | "end-of-stream": "^1.1.0", 2601 | "flush-write-stream": "^1.0.0", 2602 | "from2": "^2.1.0", 2603 | "parallel-transform": "^1.1.0", 2604 | "pump": "^3.0.0", 2605 | "pumpify": "^1.3.3", 2606 | "stream-each": "^1.1.0", 2607 | "through2": "^2.0.0" 2608 | } 2609 | }, 2610 | "mixin-deep": { 2611 | "version": "1.3.2", 2612 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 2613 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 2614 | "dev": true, 2615 | "requires": { 2616 | "for-in": "^1.0.2", 2617 | "is-extendable": "^1.0.1" 2618 | }, 2619 | "dependencies": { 2620 | "is-extendable": { 2621 | "version": "1.0.1", 2622 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 2623 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 2624 | "dev": true, 2625 | "requires": { 2626 | "is-plain-object": "^2.0.4" 2627 | } 2628 | } 2629 | } 2630 | }, 2631 | "mkdirp": { 2632 | "version": "0.5.5", 2633 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2634 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2635 | "dev": true, 2636 | "requires": { 2637 | "minimist": "^1.2.5" 2638 | } 2639 | }, 2640 | "move-concurrently": { 2641 | "version": "1.0.1", 2642 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", 2643 | "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", 2644 | "dev": true, 2645 | "requires": { 2646 | "aproba": "^1.1.1", 2647 | "copy-concurrently": "^1.0.0", 2648 | "fs-write-stream-atomic": "^1.0.8", 2649 | "mkdirp": "^0.5.1", 2650 | "rimraf": "^2.5.4", 2651 | "run-queue": "^1.0.3" 2652 | } 2653 | }, 2654 | "ms": { 2655 | "version": "2.0.0", 2656 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2657 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2658 | "dev": true 2659 | }, 2660 | "nan": { 2661 | "version": "2.14.1", 2662 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", 2663 | "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", 2664 | "dev": true, 2665 | "optional": true 2666 | }, 2667 | "nanomatch": { 2668 | "version": "1.2.13", 2669 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 2670 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 2671 | "dev": true, 2672 | "requires": { 2673 | "arr-diff": "^4.0.0", 2674 | "array-unique": "^0.3.2", 2675 | "define-property": "^2.0.2", 2676 | "extend-shallow": "^3.0.2", 2677 | "fragment-cache": "^0.2.1", 2678 | "is-windows": "^1.0.2", 2679 | "kind-of": "^6.0.2", 2680 | "object.pick": "^1.3.0", 2681 | "regex-not": "^1.0.0", 2682 | "snapdragon": "^0.8.1", 2683 | "to-regex": "^3.0.1" 2684 | } 2685 | }, 2686 | "neo-async": { 2687 | "version": "2.6.1", 2688 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", 2689 | "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", 2690 | "dev": true 2691 | }, 2692 | "nice-try": { 2693 | "version": "1.0.5", 2694 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 2695 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 2696 | "dev": true 2697 | }, 2698 | "node-libs-browser": { 2699 | "version": "2.2.1", 2700 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", 2701 | "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", 2702 | "dev": true, 2703 | "requires": { 2704 | "assert": "^1.1.1", 2705 | "browserify-zlib": "^0.2.0", 2706 | "buffer": "^4.3.0", 2707 | "console-browserify": "^1.1.0", 2708 | "constants-browserify": "^1.0.0", 2709 | "crypto-browserify": "^3.11.0", 2710 | "domain-browser": "^1.1.1", 2711 | "events": "^3.0.0", 2712 | "https-browserify": "^1.0.0", 2713 | "os-browserify": "^0.3.0", 2714 | "path-browserify": "0.0.1", 2715 | "process": "^0.11.10", 2716 | "punycode": "^1.2.4", 2717 | "querystring-es3": "^0.2.0", 2718 | "readable-stream": "^2.3.3", 2719 | "stream-browserify": "^2.0.1", 2720 | "stream-http": "^2.7.2", 2721 | "string_decoder": "^1.0.0", 2722 | "timers-browserify": "^2.0.4", 2723 | "tty-browserify": "0.0.0", 2724 | "url": "^0.11.0", 2725 | "util": "^0.11.0", 2726 | "vm-browserify": "^1.0.1" 2727 | }, 2728 | "dependencies": { 2729 | "punycode": { 2730 | "version": "1.4.1", 2731 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2732 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2733 | "dev": true 2734 | } 2735 | } 2736 | }, 2737 | "normalize-path": { 2738 | "version": "3.0.0", 2739 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2740 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2741 | "dev": true 2742 | }, 2743 | "npm-run-path": { 2744 | "version": "2.0.2", 2745 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 2746 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 2747 | "dev": true, 2748 | "requires": { 2749 | "path-key": "^2.0.0" 2750 | } 2751 | }, 2752 | "object-assign": { 2753 | "version": "4.1.1", 2754 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2755 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2756 | }, 2757 | "object-copy": { 2758 | "version": "0.1.0", 2759 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 2760 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 2761 | "dev": true, 2762 | "requires": { 2763 | "copy-descriptor": "^0.1.0", 2764 | "define-property": "^0.2.5", 2765 | "kind-of": "^3.0.3" 2766 | }, 2767 | "dependencies": { 2768 | "define-property": { 2769 | "version": "0.2.5", 2770 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 2771 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2772 | "dev": true, 2773 | "requires": { 2774 | "is-descriptor": "^0.1.0" 2775 | } 2776 | }, 2777 | "kind-of": { 2778 | "version": "3.2.2", 2779 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2780 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2781 | "dev": true, 2782 | "requires": { 2783 | "is-buffer": "^1.1.5" 2784 | } 2785 | } 2786 | } 2787 | }, 2788 | "object-visit": { 2789 | "version": "1.0.1", 2790 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 2791 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 2792 | "dev": true, 2793 | "requires": { 2794 | "isobject": "^3.0.0" 2795 | } 2796 | }, 2797 | "object.pick": { 2798 | "version": "1.3.0", 2799 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 2800 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 2801 | "dev": true, 2802 | "requires": { 2803 | "isobject": "^3.0.1" 2804 | } 2805 | }, 2806 | "once": { 2807 | "version": "1.4.0", 2808 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2809 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2810 | "dev": true, 2811 | "requires": { 2812 | "wrappy": "1" 2813 | } 2814 | }, 2815 | "os-browserify": { 2816 | "version": "0.3.0", 2817 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 2818 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 2819 | "dev": true 2820 | }, 2821 | "os-locale": { 2822 | "version": "3.1.0", 2823 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", 2824 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", 2825 | "dev": true, 2826 | "requires": { 2827 | "execa": "^1.0.0", 2828 | "lcid": "^2.0.0", 2829 | "mem": "^4.0.0" 2830 | } 2831 | }, 2832 | "p-defer": { 2833 | "version": "1.0.0", 2834 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 2835 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", 2836 | "dev": true 2837 | }, 2838 | "p-finally": { 2839 | "version": "1.0.0", 2840 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 2841 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 2842 | "dev": true 2843 | }, 2844 | "p-is-promise": { 2845 | "version": "2.1.0", 2846 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 2847 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", 2848 | "dev": true 2849 | }, 2850 | "p-limit": { 2851 | "version": "2.3.0", 2852 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 2853 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2854 | "dev": true, 2855 | "requires": { 2856 | "p-try": "^2.0.0" 2857 | } 2858 | }, 2859 | "p-locate": { 2860 | "version": "3.0.0", 2861 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 2862 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 2863 | "dev": true, 2864 | "requires": { 2865 | "p-limit": "^2.0.0" 2866 | } 2867 | }, 2868 | "p-try": { 2869 | "version": "2.2.0", 2870 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2871 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2872 | "dev": true 2873 | }, 2874 | "pako": { 2875 | "version": "1.0.11", 2876 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 2877 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", 2878 | "dev": true 2879 | }, 2880 | "parallel-transform": { 2881 | "version": "1.2.0", 2882 | "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", 2883 | "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", 2884 | "dev": true, 2885 | "requires": { 2886 | "cyclist": "^1.0.1", 2887 | "inherits": "^2.0.3", 2888 | "readable-stream": "^2.1.5" 2889 | } 2890 | }, 2891 | "parse-asn1": { 2892 | "version": "5.1.5", 2893 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", 2894 | "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", 2895 | "dev": true, 2896 | "requires": { 2897 | "asn1.js": "^4.0.0", 2898 | "browserify-aes": "^1.0.0", 2899 | "create-hash": "^1.1.0", 2900 | "evp_bytestokey": "^1.0.0", 2901 | "pbkdf2": "^3.0.3", 2902 | "safe-buffer": "^5.1.1" 2903 | } 2904 | }, 2905 | "parse-passwd": { 2906 | "version": "1.0.0", 2907 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 2908 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 2909 | "dev": true 2910 | }, 2911 | "pascalcase": { 2912 | "version": "0.1.1", 2913 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 2914 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 2915 | "dev": true 2916 | }, 2917 | "path-browserify": { 2918 | "version": "0.0.1", 2919 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", 2920 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", 2921 | "dev": true 2922 | }, 2923 | "path-dirname": { 2924 | "version": "1.0.2", 2925 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", 2926 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", 2927 | "dev": true 2928 | }, 2929 | "path-exists": { 2930 | "version": "3.0.0", 2931 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2932 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2933 | "dev": true 2934 | }, 2935 | "path-is-absolute": { 2936 | "version": "1.0.1", 2937 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2938 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2939 | "dev": true 2940 | }, 2941 | "path-key": { 2942 | "version": "2.0.1", 2943 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 2944 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 2945 | "dev": true 2946 | }, 2947 | "pbkdf2": { 2948 | "version": "3.0.17", 2949 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", 2950 | "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", 2951 | "dev": true, 2952 | "requires": { 2953 | "create-hash": "^1.1.2", 2954 | "create-hmac": "^1.1.4", 2955 | "ripemd160": "^2.0.1", 2956 | "safe-buffer": "^5.0.1", 2957 | "sha.js": "^2.4.8" 2958 | } 2959 | }, 2960 | "pify": { 2961 | "version": "4.0.1", 2962 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 2963 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 2964 | "dev": true 2965 | }, 2966 | "pkg-dir": { 2967 | "version": "3.0.0", 2968 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", 2969 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", 2970 | "dev": true, 2971 | "requires": { 2972 | "find-up": "^3.0.0" 2973 | } 2974 | }, 2975 | "posix-character-classes": { 2976 | "version": "0.1.1", 2977 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 2978 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 2979 | "dev": true 2980 | }, 2981 | "process": { 2982 | "version": "0.11.10", 2983 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2984 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 2985 | "dev": true 2986 | }, 2987 | "process-nextick-args": { 2988 | "version": "2.0.1", 2989 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2990 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 2991 | "dev": true 2992 | }, 2993 | "promise-inflight": { 2994 | "version": "1.0.1", 2995 | "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", 2996 | "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", 2997 | "dev": true 2998 | }, 2999 | "prop-types": { 3000 | "version": "15.7.2", 3001 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", 3002 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", 3003 | "requires": { 3004 | "loose-envify": "^1.4.0", 3005 | "object-assign": "^4.1.1", 3006 | "react-is": "^16.8.1" 3007 | } 3008 | }, 3009 | "prr": { 3010 | "version": "1.0.1", 3011 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 3012 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 3013 | "dev": true 3014 | }, 3015 | "public-encrypt": { 3016 | "version": "4.0.3", 3017 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", 3018 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", 3019 | "dev": true, 3020 | "requires": { 3021 | "bn.js": "^4.1.0", 3022 | "browserify-rsa": "^4.0.0", 3023 | "create-hash": "^1.1.0", 3024 | "parse-asn1": "^5.0.0", 3025 | "randombytes": "^2.0.1", 3026 | "safe-buffer": "^5.1.2" 3027 | } 3028 | }, 3029 | "pump": { 3030 | "version": "3.0.0", 3031 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 3032 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 3033 | "dev": true, 3034 | "requires": { 3035 | "end-of-stream": "^1.1.0", 3036 | "once": "^1.3.1" 3037 | } 3038 | }, 3039 | "pumpify": { 3040 | "version": "1.5.1", 3041 | "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", 3042 | "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", 3043 | "dev": true, 3044 | "requires": { 3045 | "duplexify": "^3.6.0", 3046 | "inherits": "^2.0.3", 3047 | "pump": "^2.0.0" 3048 | }, 3049 | "dependencies": { 3050 | "pump": { 3051 | "version": "2.0.1", 3052 | "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", 3053 | "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", 3054 | "dev": true, 3055 | "requires": { 3056 | "end-of-stream": "^1.1.0", 3057 | "once": "^1.3.1" 3058 | } 3059 | } 3060 | } 3061 | }, 3062 | "punycode": { 3063 | "version": "2.1.1", 3064 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3065 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3066 | "dev": true 3067 | }, 3068 | "querystring": { 3069 | "version": "0.2.0", 3070 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 3071 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 3072 | "dev": true 3073 | }, 3074 | "querystring-es3": { 3075 | "version": "0.2.1", 3076 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 3077 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 3078 | "dev": true 3079 | }, 3080 | "randombytes": { 3081 | "version": "2.1.0", 3082 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 3083 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 3084 | "dev": true, 3085 | "requires": { 3086 | "safe-buffer": "^5.1.0" 3087 | } 3088 | }, 3089 | "randomfill": { 3090 | "version": "1.0.4", 3091 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 3092 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 3093 | "dev": true, 3094 | "requires": { 3095 | "randombytes": "^2.0.5", 3096 | "safe-buffer": "^5.1.0" 3097 | } 3098 | }, 3099 | "react": { 3100 | "version": "16.13.1", 3101 | "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", 3102 | "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", 3103 | "requires": { 3104 | "loose-envify": "^1.1.0", 3105 | "object-assign": "^4.1.1", 3106 | "prop-types": "^15.6.2" 3107 | } 3108 | }, 3109 | "react-dom": { 3110 | "version": "16.13.1", 3111 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", 3112 | "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", 3113 | "requires": { 3114 | "loose-envify": "^1.1.0", 3115 | "object-assign": "^4.1.1", 3116 | "prop-types": "^15.6.2", 3117 | "scheduler": "^0.19.1" 3118 | } 3119 | }, 3120 | "react-is": { 3121 | "version": "16.13.1", 3122 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 3123 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 3124 | }, 3125 | "readable-stream": { 3126 | "version": "2.3.7", 3127 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 3128 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 3129 | "dev": true, 3130 | "requires": { 3131 | "core-util-is": "~1.0.0", 3132 | "inherits": "~2.0.3", 3133 | "isarray": "~1.0.0", 3134 | "process-nextick-args": "~2.0.0", 3135 | "safe-buffer": "~5.1.1", 3136 | "string_decoder": "~1.1.1", 3137 | "util-deprecate": "~1.0.1" 3138 | } 3139 | }, 3140 | "readdirp": { 3141 | "version": "2.2.1", 3142 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", 3143 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", 3144 | "dev": true, 3145 | "requires": { 3146 | "graceful-fs": "^4.1.11", 3147 | "micromatch": "^3.1.10", 3148 | "readable-stream": "^2.0.2" 3149 | } 3150 | }, 3151 | "regex-not": { 3152 | "version": "1.0.2", 3153 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 3154 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 3155 | "dev": true, 3156 | "requires": { 3157 | "extend-shallow": "^3.0.2", 3158 | "safe-regex": "^1.1.0" 3159 | } 3160 | }, 3161 | "remove-trailing-separator": { 3162 | "version": "1.1.0", 3163 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3164 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3165 | "dev": true 3166 | }, 3167 | "repeat-element": { 3168 | "version": "1.1.3", 3169 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 3170 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 3171 | "dev": true 3172 | }, 3173 | "repeat-string": { 3174 | "version": "1.6.1", 3175 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3176 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3177 | "dev": true 3178 | }, 3179 | "require-directory": { 3180 | "version": "2.1.1", 3181 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3182 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3183 | "dev": true 3184 | }, 3185 | "require-main-filename": { 3186 | "version": "2.0.0", 3187 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 3188 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 3189 | "dev": true 3190 | }, 3191 | "resolve-cwd": { 3192 | "version": "2.0.0", 3193 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", 3194 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 3195 | "dev": true, 3196 | "requires": { 3197 | "resolve-from": "^3.0.0" 3198 | } 3199 | }, 3200 | "resolve-dir": { 3201 | "version": "1.0.1", 3202 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", 3203 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", 3204 | "dev": true, 3205 | "requires": { 3206 | "expand-tilde": "^2.0.0", 3207 | "global-modules": "^1.0.0" 3208 | }, 3209 | "dependencies": { 3210 | "global-modules": { 3211 | "version": "1.0.0", 3212 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", 3213 | "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", 3214 | "dev": true, 3215 | "requires": { 3216 | "global-prefix": "^1.0.1", 3217 | "is-windows": "^1.0.1", 3218 | "resolve-dir": "^1.0.0" 3219 | } 3220 | } 3221 | } 3222 | }, 3223 | "resolve-from": { 3224 | "version": "3.0.0", 3225 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3226 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3227 | "dev": true 3228 | }, 3229 | "resolve-url": { 3230 | "version": "0.2.1", 3231 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 3232 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 3233 | "dev": true 3234 | }, 3235 | "ret": { 3236 | "version": "0.1.15", 3237 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 3238 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 3239 | "dev": true 3240 | }, 3241 | "rimraf": { 3242 | "version": "2.7.1", 3243 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 3244 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 3245 | "dev": true, 3246 | "requires": { 3247 | "glob": "^7.1.3" 3248 | } 3249 | }, 3250 | "ripemd160": { 3251 | "version": "2.0.2", 3252 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 3253 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 3254 | "dev": true, 3255 | "requires": { 3256 | "hash-base": "^3.0.0", 3257 | "inherits": "^2.0.1" 3258 | } 3259 | }, 3260 | "run-queue": { 3261 | "version": "1.0.3", 3262 | "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", 3263 | "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", 3264 | "dev": true, 3265 | "requires": { 3266 | "aproba": "^1.1.1" 3267 | } 3268 | }, 3269 | "safe-buffer": { 3270 | "version": "5.1.2", 3271 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3272 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 3273 | "dev": true 3274 | }, 3275 | "safe-regex": { 3276 | "version": "1.1.0", 3277 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 3278 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 3279 | "dev": true, 3280 | "requires": { 3281 | "ret": "~0.1.10" 3282 | } 3283 | }, 3284 | "scheduler": { 3285 | "version": "0.19.1", 3286 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", 3287 | "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", 3288 | "requires": { 3289 | "loose-envify": "^1.1.0", 3290 | "object-assign": "^4.1.1" 3291 | } 3292 | }, 3293 | "schema-utils": { 3294 | "version": "1.0.0", 3295 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", 3296 | "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", 3297 | "dev": true, 3298 | "requires": { 3299 | "ajv": "^6.1.0", 3300 | "ajv-errors": "^1.0.0", 3301 | "ajv-keywords": "^3.1.0" 3302 | } 3303 | }, 3304 | "semver": { 3305 | "version": "5.7.1", 3306 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 3307 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 3308 | "dev": true 3309 | }, 3310 | "serialize-javascript": { 3311 | "version": "2.1.2", 3312 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", 3313 | "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", 3314 | "dev": true 3315 | }, 3316 | "set-blocking": { 3317 | "version": "2.0.0", 3318 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3319 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3320 | "dev": true 3321 | }, 3322 | "set-value": { 3323 | "version": "2.0.1", 3324 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 3325 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 3326 | "dev": true, 3327 | "requires": { 3328 | "extend-shallow": "^2.0.1", 3329 | "is-extendable": "^0.1.1", 3330 | "is-plain-object": "^2.0.3", 3331 | "split-string": "^3.0.1" 3332 | }, 3333 | "dependencies": { 3334 | "extend-shallow": { 3335 | "version": "2.0.1", 3336 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3337 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3338 | "dev": true, 3339 | "requires": { 3340 | "is-extendable": "^0.1.0" 3341 | } 3342 | } 3343 | } 3344 | }, 3345 | "setimmediate": { 3346 | "version": "1.0.5", 3347 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 3348 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 3349 | "dev": true 3350 | }, 3351 | "sha.js": { 3352 | "version": "2.4.11", 3353 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 3354 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 3355 | "dev": true, 3356 | "requires": { 3357 | "inherits": "^2.0.1", 3358 | "safe-buffer": "^5.0.1" 3359 | } 3360 | }, 3361 | "shebang-command": { 3362 | "version": "1.2.0", 3363 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3364 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3365 | "dev": true, 3366 | "requires": { 3367 | "shebang-regex": "^1.0.0" 3368 | } 3369 | }, 3370 | "shebang-regex": { 3371 | "version": "1.0.0", 3372 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3373 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3374 | "dev": true 3375 | }, 3376 | "signal-exit": { 3377 | "version": "3.0.3", 3378 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 3379 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 3380 | "dev": true 3381 | }, 3382 | "snapdragon": { 3383 | "version": "0.8.2", 3384 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 3385 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 3386 | "dev": true, 3387 | "requires": { 3388 | "base": "^0.11.1", 3389 | "debug": "^2.2.0", 3390 | "define-property": "^0.2.5", 3391 | "extend-shallow": "^2.0.1", 3392 | "map-cache": "^0.2.2", 3393 | "source-map": "^0.5.6", 3394 | "source-map-resolve": "^0.5.0", 3395 | "use": "^3.1.0" 3396 | }, 3397 | "dependencies": { 3398 | "define-property": { 3399 | "version": "0.2.5", 3400 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3401 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3402 | "dev": true, 3403 | "requires": { 3404 | "is-descriptor": "^0.1.0" 3405 | } 3406 | }, 3407 | "extend-shallow": { 3408 | "version": "2.0.1", 3409 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3410 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3411 | "dev": true, 3412 | "requires": { 3413 | "is-extendable": "^0.1.0" 3414 | } 3415 | } 3416 | } 3417 | }, 3418 | "snapdragon-node": { 3419 | "version": "2.1.1", 3420 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 3421 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 3422 | "dev": true, 3423 | "requires": { 3424 | "define-property": "^1.0.0", 3425 | "isobject": "^3.0.0", 3426 | "snapdragon-util": "^3.0.1" 3427 | }, 3428 | "dependencies": { 3429 | "define-property": { 3430 | "version": "1.0.0", 3431 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 3432 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 3433 | "dev": true, 3434 | "requires": { 3435 | "is-descriptor": "^1.0.0" 3436 | } 3437 | }, 3438 | "is-accessor-descriptor": { 3439 | "version": "1.0.0", 3440 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 3441 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 3442 | "dev": true, 3443 | "requires": { 3444 | "kind-of": "^6.0.0" 3445 | } 3446 | }, 3447 | "is-data-descriptor": { 3448 | "version": "1.0.0", 3449 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 3450 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 3451 | "dev": true, 3452 | "requires": { 3453 | "kind-of": "^6.0.0" 3454 | } 3455 | }, 3456 | "is-descriptor": { 3457 | "version": "1.0.2", 3458 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 3459 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 3460 | "dev": true, 3461 | "requires": { 3462 | "is-accessor-descriptor": "^1.0.0", 3463 | "is-data-descriptor": "^1.0.0", 3464 | "kind-of": "^6.0.2" 3465 | } 3466 | } 3467 | } 3468 | }, 3469 | "snapdragon-util": { 3470 | "version": "3.0.1", 3471 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 3472 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 3473 | "dev": true, 3474 | "requires": { 3475 | "kind-of": "^3.2.0" 3476 | }, 3477 | "dependencies": { 3478 | "kind-of": { 3479 | "version": "3.2.2", 3480 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3481 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3482 | "dev": true, 3483 | "requires": { 3484 | "is-buffer": "^1.1.5" 3485 | } 3486 | } 3487 | } 3488 | }, 3489 | "source-list-map": { 3490 | "version": "2.0.1", 3491 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", 3492 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", 3493 | "dev": true 3494 | }, 3495 | "source-map": { 3496 | "version": "0.5.7", 3497 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3498 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3499 | "dev": true 3500 | }, 3501 | "source-map-resolve": { 3502 | "version": "0.5.3", 3503 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", 3504 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", 3505 | "dev": true, 3506 | "requires": { 3507 | "atob": "^2.1.2", 3508 | "decode-uri-component": "^0.2.0", 3509 | "resolve-url": "^0.2.1", 3510 | "source-map-url": "^0.4.0", 3511 | "urix": "^0.1.0" 3512 | } 3513 | }, 3514 | "source-map-support": { 3515 | "version": "0.5.19", 3516 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 3517 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 3518 | "dev": true, 3519 | "requires": { 3520 | "buffer-from": "^1.0.0", 3521 | "source-map": "^0.6.0" 3522 | }, 3523 | "dependencies": { 3524 | "source-map": { 3525 | "version": "0.6.1", 3526 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3527 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3528 | "dev": true 3529 | } 3530 | } 3531 | }, 3532 | "source-map-url": { 3533 | "version": "0.4.0", 3534 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 3535 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 3536 | "dev": true 3537 | }, 3538 | "split-string": { 3539 | "version": "3.1.0", 3540 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 3541 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 3542 | "dev": true, 3543 | "requires": { 3544 | "extend-shallow": "^3.0.0" 3545 | } 3546 | }, 3547 | "ssri": { 3548 | "version": "6.0.1", 3549 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", 3550 | "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", 3551 | "dev": true, 3552 | "requires": { 3553 | "figgy-pudding": "^3.5.1" 3554 | } 3555 | }, 3556 | "static-extend": { 3557 | "version": "0.1.2", 3558 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 3559 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 3560 | "dev": true, 3561 | "requires": { 3562 | "define-property": "^0.2.5", 3563 | "object-copy": "^0.1.0" 3564 | }, 3565 | "dependencies": { 3566 | "define-property": { 3567 | "version": "0.2.5", 3568 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3569 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3570 | "dev": true, 3571 | "requires": { 3572 | "is-descriptor": "^0.1.0" 3573 | } 3574 | } 3575 | } 3576 | }, 3577 | "stream-browserify": { 3578 | "version": "2.0.2", 3579 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", 3580 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", 3581 | "dev": true, 3582 | "requires": { 3583 | "inherits": "~2.0.1", 3584 | "readable-stream": "^2.0.2" 3585 | } 3586 | }, 3587 | "stream-each": { 3588 | "version": "1.2.3", 3589 | "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", 3590 | "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", 3591 | "dev": true, 3592 | "requires": { 3593 | "end-of-stream": "^1.1.0", 3594 | "stream-shift": "^1.0.0" 3595 | } 3596 | }, 3597 | "stream-http": { 3598 | "version": "2.8.3", 3599 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", 3600 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", 3601 | "dev": true, 3602 | "requires": { 3603 | "builtin-status-codes": "^3.0.0", 3604 | "inherits": "^2.0.1", 3605 | "readable-stream": "^2.3.6", 3606 | "to-arraybuffer": "^1.0.0", 3607 | "xtend": "^4.0.0" 3608 | } 3609 | }, 3610 | "stream-shift": { 3611 | "version": "1.0.1", 3612 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", 3613 | "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", 3614 | "dev": true 3615 | }, 3616 | "string-width": { 3617 | "version": "3.1.0", 3618 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 3619 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 3620 | "dev": true, 3621 | "requires": { 3622 | "emoji-regex": "^7.0.1", 3623 | "is-fullwidth-code-point": "^2.0.0", 3624 | "strip-ansi": "^5.1.0" 3625 | } 3626 | }, 3627 | "string_decoder": { 3628 | "version": "1.1.1", 3629 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3630 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3631 | "dev": true, 3632 | "requires": { 3633 | "safe-buffer": "~5.1.0" 3634 | } 3635 | }, 3636 | "strip-ansi": { 3637 | "version": "5.2.0", 3638 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 3639 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 3640 | "dev": true, 3641 | "requires": { 3642 | "ansi-regex": "^4.1.0" 3643 | } 3644 | }, 3645 | "strip-eof": { 3646 | "version": "1.0.0", 3647 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3648 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3649 | "dev": true 3650 | }, 3651 | "supports-color": { 3652 | "version": "6.1.0", 3653 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 3654 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 3655 | "dev": true, 3656 | "requires": { 3657 | "has-flag": "^3.0.0" 3658 | } 3659 | }, 3660 | "tapable": { 3661 | "version": "1.1.3", 3662 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", 3663 | "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", 3664 | "dev": true 3665 | }, 3666 | "terser": { 3667 | "version": "4.6.12", 3668 | "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", 3669 | "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", 3670 | "dev": true, 3671 | "requires": { 3672 | "commander": "^2.20.0", 3673 | "source-map": "~0.6.1", 3674 | "source-map-support": "~0.5.12" 3675 | }, 3676 | "dependencies": { 3677 | "source-map": { 3678 | "version": "0.6.1", 3679 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3680 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3681 | "dev": true 3682 | } 3683 | } 3684 | }, 3685 | "terser-webpack-plugin": { 3686 | "version": "1.4.3", 3687 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", 3688 | "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", 3689 | "dev": true, 3690 | "requires": { 3691 | "cacache": "^12.0.2", 3692 | "find-cache-dir": "^2.1.0", 3693 | "is-wsl": "^1.1.0", 3694 | "schema-utils": "^1.0.0", 3695 | "serialize-javascript": "^2.1.2", 3696 | "source-map": "^0.6.1", 3697 | "terser": "^4.1.2", 3698 | "webpack-sources": "^1.4.0", 3699 | "worker-farm": "^1.7.0" 3700 | }, 3701 | "dependencies": { 3702 | "source-map": { 3703 | "version": "0.6.1", 3704 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3705 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3706 | "dev": true 3707 | } 3708 | } 3709 | }, 3710 | "through2": { 3711 | "version": "2.0.5", 3712 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 3713 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 3714 | "dev": true, 3715 | "requires": { 3716 | "readable-stream": "~2.3.6", 3717 | "xtend": "~4.0.1" 3718 | } 3719 | }, 3720 | "timers-browserify": { 3721 | "version": "2.0.11", 3722 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", 3723 | "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", 3724 | "dev": true, 3725 | "requires": { 3726 | "setimmediate": "^1.0.4" 3727 | } 3728 | }, 3729 | "to-arraybuffer": { 3730 | "version": "1.0.1", 3731 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 3732 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 3733 | "dev": true 3734 | }, 3735 | "to-object-path": { 3736 | "version": "0.3.0", 3737 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 3738 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 3739 | "dev": true, 3740 | "requires": { 3741 | "kind-of": "^3.0.2" 3742 | }, 3743 | "dependencies": { 3744 | "kind-of": { 3745 | "version": "3.2.2", 3746 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3747 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3748 | "dev": true, 3749 | "requires": { 3750 | "is-buffer": "^1.1.5" 3751 | } 3752 | } 3753 | } 3754 | }, 3755 | "to-regex": { 3756 | "version": "3.0.2", 3757 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 3758 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 3759 | "dev": true, 3760 | "requires": { 3761 | "define-property": "^2.0.2", 3762 | "extend-shallow": "^3.0.2", 3763 | "regex-not": "^1.0.2", 3764 | "safe-regex": "^1.1.0" 3765 | } 3766 | }, 3767 | "to-regex-range": { 3768 | "version": "2.1.1", 3769 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 3770 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 3771 | "dev": true, 3772 | "requires": { 3773 | "is-number": "^3.0.0", 3774 | "repeat-string": "^1.6.1" 3775 | } 3776 | }, 3777 | "tslib": { 3778 | "version": "1.11.1", 3779 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", 3780 | "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", 3781 | "dev": true 3782 | }, 3783 | "tty-browserify": { 3784 | "version": "0.0.0", 3785 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 3786 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 3787 | "dev": true 3788 | }, 3789 | "typedarray": { 3790 | "version": "0.0.6", 3791 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3792 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3793 | "dev": true 3794 | }, 3795 | "union-value": { 3796 | "version": "1.0.1", 3797 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", 3798 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", 3799 | "dev": true, 3800 | "requires": { 3801 | "arr-union": "^3.1.0", 3802 | "get-value": "^2.0.6", 3803 | "is-extendable": "^0.1.1", 3804 | "set-value": "^2.0.1" 3805 | } 3806 | }, 3807 | "unique-filename": { 3808 | "version": "1.1.1", 3809 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", 3810 | "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", 3811 | "dev": true, 3812 | "requires": { 3813 | "unique-slug": "^2.0.0" 3814 | } 3815 | }, 3816 | "unique-slug": { 3817 | "version": "2.0.2", 3818 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", 3819 | "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", 3820 | "dev": true, 3821 | "requires": { 3822 | "imurmurhash": "^0.1.4" 3823 | } 3824 | }, 3825 | "unset-value": { 3826 | "version": "1.0.0", 3827 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 3828 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 3829 | "dev": true, 3830 | "requires": { 3831 | "has-value": "^0.3.1", 3832 | "isobject": "^3.0.0" 3833 | }, 3834 | "dependencies": { 3835 | "has-value": { 3836 | "version": "0.3.1", 3837 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 3838 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 3839 | "dev": true, 3840 | "requires": { 3841 | "get-value": "^2.0.3", 3842 | "has-values": "^0.1.4", 3843 | "isobject": "^2.0.0" 3844 | }, 3845 | "dependencies": { 3846 | "isobject": { 3847 | "version": "2.1.0", 3848 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 3849 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 3850 | "dev": true, 3851 | "requires": { 3852 | "isarray": "1.0.0" 3853 | } 3854 | } 3855 | } 3856 | }, 3857 | "has-values": { 3858 | "version": "0.1.4", 3859 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 3860 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 3861 | "dev": true 3862 | } 3863 | } 3864 | }, 3865 | "upath": { 3866 | "version": "1.2.0", 3867 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", 3868 | "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", 3869 | "dev": true 3870 | }, 3871 | "uri-js": { 3872 | "version": "4.2.2", 3873 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 3874 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 3875 | "dev": true, 3876 | "requires": { 3877 | "punycode": "^2.1.0" 3878 | } 3879 | }, 3880 | "urix": { 3881 | "version": "0.1.0", 3882 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 3883 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 3884 | "dev": true 3885 | }, 3886 | "url": { 3887 | "version": "0.11.0", 3888 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 3889 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 3890 | "dev": true, 3891 | "requires": { 3892 | "punycode": "1.3.2", 3893 | "querystring": "0.2.0" 3894 | }, 3895 | "dependencies": { 3896 | "punycode": { 3897 | "version": "1.3.2", 3898 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 3899 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 3900 | "dev": true 3901 | } 3902 | } 3903 | }, 3904 | "use": { 3905 | "version": "3.1.1", 3906 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 3907 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 3908 | "dev": true 3909 | }, 3910 | "util": { 3911 | "version": "0.11.1", 3912 | "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", 3913 | "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", 3914 | "dev": true, 3915 | "requires": { 3916 | "inherits": "2.0.3" 3917 | }, 3918 | "dependencies": { 3919 | "inherits": { 3920 | "version": "2.0.3", 3921 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 3922 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 3923 | "dev": true 3924 | } 3925 | } 3926 | }, 3927 | "util-deprecate": { 3928 | "version": "1.0.2", 3929 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3930 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3931 | "dev": true 3932 | }, 3933 | "v8-compile-cache": { 3934 | "version": "2.0.3", 3935 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", 3936 | "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", 3937 | "dev": true 3938 | }, 3939 | "vm-browserify": { 3940 | "version": "1.1.2", 3941 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", 3942 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", 3943 | "dev": true 3944 | }, 3945 | "watchpack": { 3946 | "version": "1.6.1", 3947 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", 3948 | "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", 3949 | "dev": true, 3950 | "requires": { 3951 | "chokidar": "^2.1.8", 3952 | "graceful-fs": "^4.1.2", 3953 | "neo-async": "^2.5.0" 3954 | } 3955 | }, 3956 | "webpack": { 3957 | "version": "4.43.0", 3958 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", 3959 | "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", 3960 | "dev": true, 3961 | "requires": { 3962 | "@webassemblyjs/ast": "1.9.0", 3963 | "@webassemblyjs/helper-module-context": "1.9.0", 3964 | "@webassemblyjs/wasm-edit": "1.9.0", 3965 | "@webassemblyjs/wasm-parser": "1.9.0", 3966 | "acorn": "^6.4.1", 3967 | "ajv": "^6.10.2", 3968 | "ajv-keywords": "^3.4.1", 3969 | "chrome-trace-event": "^1.0.2", 3970 | "enhanced-resolve": "^4.1.0", 3971 | "eslint-scope": "^4.0.3", 3972 | "json-parse-better-errors": "^1.0.2", 3973 | "loader-runner": "^2.4.0", 3974 | "loader-utils": "^1.2.3", 3975 | "memory-fs": "^0.4.1", 3976 | "micromatch": "^3.1.10", 3977 | "mkdirp": "^0.5.3", 3978 | "neo-async": "^2.6.1", 3979 | "node-libs-browser": "^2.2.1", 3980 | "schema-utils": "^1.0.0", 3981 | "tapable": "^1.1.3", 3982 | "terser-webpack-plugin": "^1.4.3", 3983 | "watchpack": "^1.6.1", 3984 | "webpack-sources": "^1.4.1" 3985 | } 3986 | }, 3987 | "webpack-cli": { 3988 | "version": "3.3.11", 3989 | "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", 3990 | "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", 3991 | "dev": true, 3992 | "requires": { 3993 | "chalk": "2.4.2", 3994 | "cross-spawn": "6.0.5", 3995 | "enhanced-resolve": "4.1.0", 3996 | "findup-sync": "3.0.0", 3997 | "global-modules": "2.0.0", 3998 | "import-local": "2.0.0", 3999 | "interpret": "1.2.0", 4000 | "loader-utils": "1.2.3", 4001 | "supports-color": "6.1.0", 4002 | "v8-compile-cache": "2.0.3", 4003 | "yargs": "13.2.4" 4004 | }, 4005 | "dependencies": { 4006 | "emojis-list": { 4007 | "version": "2.1.0", 4008 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 4009 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 4010 | "dev": true 4011 | }, 4012 | "enhanced-resolve": { 4013 | "version": "4.1.0", 4014 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", 4015 | "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", 4016 | "dev": true, 4017 | "requires": { 4018 | "graceful-fs": "^4.1.2", 4019 | "memory-fs": "^0.4.0", 4020 | "tapable": "^1.0.0" 4021 | } 4022 | }, 4023 | "loader-utils": { 4024 | "version": "1.2.3", 4025 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", 4026 | "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", 4027 | "dev": true, 4028 | "requires": { 4029 | "big.js": "^5.2.2", 4030 | "emojis-list": "^2.0.0", 4031 | "json5": "^1.0.1" 4032 | } 4033 | } 4034 | } 4035 | }, 4036 | "webpack-sources": { 4037 | "version": "1.4.3", 4038 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", 4039 | "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", 4040 | "dev": true, 4041 | "requires": { 4042 | "source-list-map": "^2.0.0", 4043 | "source-map": "~0.6.1" 4044 | }, 4045 | "dependencies": { 4046 | "source-map": { 4047 | "version": "0.6.1", 4048 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4049 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4050 | "dev": true 4051 | } 4052 | } 4053 | }, 4054 | "which": { 4055 | "version": "1.3.1", 4056 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4057 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4058 | "dev": true, 4059 | "requires": { 4060 | "isexe": "^2.0.0" 4061 | } 4062 | }, 4063 | "which-module": { 4064 | "version": "2.0.0", 4065 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 4066 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 4067 | "dev": true 4068 | }, 4069 | "worker-farm": { 4070 | "version": "1.7.0", 4071 | "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", 4072 | "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", 4073 | "dev": true, 4074 | "requires": { 4075 | "errno": "~0.1.7" 4076 | } 4077 | }, 4078 | "wrap-ansi": { 4079 | "version": "5.1.0", 4080 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 4081 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 4082 | "dev": true, 4083 | "requires": { 4084 | "ansi-styles": "^3.2.0", 4085 | "string-width": "^3.0.0", 4086 | "strip-ansi": "^5.0.0" 4087 | } 4088 | }, 4089 | "wrappy": { 4090 | "version": "1.0.2", 4091 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4092 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4093 | "dev": true 4094 | }, 4095 | "xtend": { 4096 | "version": "4.0.2", 4097 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 4098 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 4099 | "dev": true 4100 | }, 4101 | "y18n": { 4102 | "version": "4.0.0", 4103 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 4104 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 4105 | "dev": true 4106 | }, 4107 | "yallist": { 4108 | "version": "3.1.1", 4109 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 4110 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 4111 | "dev": true 4112 | }, 4113 | "yargs": { 4114 | "version": "13.2.4", 4115 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", 4116 | "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", 4117 | "dev": true, 4118 | "requires": { 4119 | "cliui": "^5.0.0", 4120 | "find-up": "^3.0.0", 4121 | "get-caller-file": "^2.0.1", 4122 | "os-locale": "^3.1.0", 4123 | "require-directory": "^2.1.1", 4124 | "require-main-filename": "^2.0.0", 4125 | "set-blocking": "^2.0.0", 4126 | "string-width": "^3.0.0", 4127 | "which-module": "^2.0.0", 4128 | "y18n": "^4.0.0", 4129 | "yargs-parser": "^13.1.0" 4130 | } 4131 | }, 4132 | "yargs-parser": { 4133 | "version": "13.1.2", 4134 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 4135 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 4136 | "dev": true, 4137 | "requires": { 4138 | "camelcase": "^5.0.0", 4139 | "decamelize": "^1.2.0" 4140 | } 4141 | } 4142 | } 4143 | } 4144 | --------------------------------------------------------------------------------