├── .zprintrc ├── template ├── public │ ├── css │ │ └── style.css │ ├── favicon.ico │ └── index.html ├── .zprintrc ├── .clj-kondo │ └── config.edn ├── gitignore ├── src │ ├── app │ │ ├── core.cljs │ │ ├── hello.cljs │ │ ├── cards.cljs │ │ └── hello_cards.cljs │ └── e2e │ │ └── core.cljs ├── shadow-cljs.edn ├── package.json └── README.md ├── .clj-kondo └── config.edn ├── .gitignore ├── bin └── create-cljs-app.js ├── .vscode └── extensions.json ├── shadow-cljs.edn ├── src ├── create_cljs_app │ ├── utils_spec.cljs │ ├── messages.cljs │ ├── utils.cljs │ ├── lib.cljs │ └── template.cljs └── e2e │ └── core.cljs ├── .github ├── dependabot.yml └── workflows │ └── nodejs.yml ├── LICENSE ├── package.json ├── README.md └── yarn.lock /.zprintrc: -------------------------------------------------------------------------------- 1 | {:style :indent-only} -------------------------------------------------------------------------------- /template/public/css/style.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /template/.zprintrc: -------------------------------------------------------------------------------- 1 | {:style :indent-only} -------------------------------------------------------------------------------- /template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipesilva/create-cljs-app/HEAD/template/public/favicon.ico -------------------------------------------------------------------------------- /.clj-kondo/config.edn: -------------------------------------------------------------------------------- 1 | {:lint-as {devcards.core/defcard cljs.core/def 2 | devcards.core/deftest cljs.core/def}} 3 | -------------------------------------------------------------------------------- /template/.clj-kondo/config.edn: -------------------------------------------------------------------------------- 1 | {:lint-as {devcards.core/defcard cljs.core/def 2 | devcards.core/deftest cljs.core/def}} 3 | -------------------------------------------------------------------------------- /template/gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public/js 3 | out 4 | .shadow-cljs 5 | .nrepl-port 6 | .clj-kondo/.cache 7 | yarn-error.log 8 | report.html 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | out 4 | test*/ 5 | .shadow-cljs 6 | .nrepl-port 7 | yarn-error.log 8 | template/yarn.lock 9 | template/package-lock.json 10 | .clj-kondo/.cache -------------------------------------------------------------------------------- /bin/create-cljs-app.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const { create } = require('../dist/lib'); 4 | const [, , projectPath = ''] = process.argv; 5 | return create(process.cwd(), projectPath); 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // List of extensions which should be recommended for VSCode users of this workspace. 3 | "recommendations": [ 4 | "betterthantomorrow.calva", 5 | "marcomorain.clojure-lint" 6 | ] 7 | } -------------------------------------------------------------------------------- /shadow-cljs.edn: -------------------------------------------------------------------------------- 1 | {:builds 2 | {:e2e {:ns-regexp "e2e.*" 3 | :output-to "out/e2e.js" 4 | :target :node-test} 5 | :lib {:exports-var create-cljs-app.lib/exports 6 | :output-to "dist/lib.js" 7 | :target :node-library} 8 | :test {:ns-regexp "create-cljs-ap.*-spec$" 9 | :output-to "out/test.js" 10 | :target :node-test}} 11 | :dependencies [] 12 | :nrepl {:port 3333} 13 | :source-paths ["src"]} 14 | -------------------------------------------------------------------------------- /template/src/app/core.cljs: -------------------------------------------------------------------------------- 1 | (ns app.core 2 | "This namespace contains your application and is the entrypoint for 'yarn start'." 3 | (:require [reagent.core :as r] 4 | [app.hello :refer [hello]])) 5 | 6 | (defn ^:dev/after-load render 7 | "Render the toplevel component for this app." 8 | [] 9 | (r/render [hello] (.getElementById js/document "app"))) 10 | 11 | (defn ^:export main 12 | "Run application startup logic." 13 | [] 14 | (render)) 15 | -------------------------------------------------------------------------------- /template/src/app/hello.cljs: -------------------------------------------------------------------------------- 1 | (ns app.hello 2 | (:require [reagent.core :as r])) 3 | 4 | (defn click-counter [click-count] 5 | [:div 6 | "The atom " [:code "click-count"] " has value: " 7 | @click-count ". " 8 | [:input {:type "button" :value "Click me!" 9 | :on-click #(swap! click-count inc)}]]) 10 | 11 | (def click-count (r/atom 0)) 12 | 13 | (defn hello [] 14 | [:<> 15 | [:p "Hello, __NAME__ is running!"] 16 | [:p "Here's an example of using a component with state:"] 17 | [click-counter click-count]]) 18 | -------------------------------------------------------------------------------- /template/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | __NAME__ 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/create_cljs_app/utils_spec.cljs: -------------------------------------------------------------------------------- 1 | (ns create-cljs-app.utils-spec 2 | (:require [create-cljs-app.utils :refer [has-binary-on-PATH? is-supported-node?]] 3 | [cljs.test :refer-macros [deftest is]])) 4 | 5 | (deftest binary-detection 6 | (is (= (has-binary-on-PATH? "node") true)) 7 | (is (= (has-binary-on-PATH? "not-node") false))) 8 | 9 | (deftest supported-node 10 | (is (= (is-supported-node? "v6.1.1") false)) 11 | (is (= (is-supported-node? "v8.1.1") false)) 12 | (is (= (is-supported-node? "v10.1.1") false)) 13 | (is (= (is-supported-node? "v10.12.1") true)) 14 | (is (= (is-supported-node? "v12.1.1") true)) 15 | (is (= (is-supported-node? (.-version js/process)) true))) 16 | -------------------------------------------------------------------------------- /template/shadow-cljs.edn: -------------------------------------------------------------------------------- 1 | {:builds 2 | {:app {:asset-path "/js" 3 | :modules {:main {:init-fn app.core/main}} 4 | :output-dir "public/js" 5 | :target :browser} 6 | :cards {:asset-path "/js" 7 | :modules {:main {:init-fn app.cards/main}} 8 | :compiler-options {:devcards true} 9 | :output-dir "public/js" 10 | :target :browser} 11 | :test {:ns-regexp "app.cards" 12 | :output-to "out/test.js" 13 | :target :node-test} 14 | :e2e {:ns-regexp "e2e.*" 15 | :output-to "out/e2e.js" 16 | :target :node-test}} 17 | :dependencies [[reagent "0.8.1"] 18 | [devcards "0.2.6"]] 19 | :dev-http {3000 "public"} 20 | :nrepl {:port 3333} 21 | :source-paths ["src"]} -------------------------------------------------------------------------------- /template/src/app/cards.cljs: -------------------------------------------------------------------------------- 1 | (ns app.cards 2 | "This namespace contains devcards and tests, and is the entrypoint for 3 | both 'yarn cards' and 'yarn test'." 4 | (:require [cljsjs.react] 5 | [cljsjs.react.dom] 6 | ; devcards needs cljsjs.react and cljsjs.react.dom to be imported 7 | ; separately for shadow-cljs to add shims. 8 | [devcards.core :refer [start-devcard-ui!]] 9 | ["jsdom-global" :as jsdom-global] 10 | ; Import all namespaces with cards here to load them. 11 | [app.hello-cards])) 12 | 13 | ; Set jsdom to mock a dom environment for node testing. 14 | (jsdom-global) 15 | 16 | (defn ^:export main 17 | "Start the devcards UI." 18 | [] 19 | ; Add a special class to the body to signal we're in devcards mode. 20 | ; We want to mostly use the same styles as the app, but might need to make 21 | ; some exceptions. 22 | (js/document.body.classList.add "using-devcards") 23 | ; Start the devcards UI. 24 | (start-devcard-ui!)) 25 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: monthly 7 | open-pull-requests-limit: 10 8 | versioning-strategy: increase 9 | ignore: 10 | - dependency-name: shadow-cljs 11 | versions: 12 | - 2.11.11 13 | - 2.11.15 14 | - dependency-name: ora 15 | versions: 16 | - 5.2.0 17 | - package-ecosystem: npm 18 | directory: "/template" 19 | schedule: 20 | interval: monthly 21 | open-pull-requests-limit: 10 22 | versioning-strategy: increase 23 | ignore: 24 | - dependency-name: "@testing-library/dom" 25 | versions: 26 | - 7.29.1 27 | - 7.29.4 28 | - dependency-name: marked 29 | versions: 30 | - 1.2.7 31 | - 1.2.8 32 | - dependency-name: "@testing-library/react" 33 | versions: 34 | - 11.2.2 35 | - 11.2.3 36 | - dependency-name: taiko 37 | versions: 38 | - 1.1.1 39 | - 1.1.4 40 | - dependency-name: shadow-cljs 41 | versions: 42 | - 2.11.11 43 | - 2.11.15 44 | - dependency-name: highlight.js 45 | versions: 46 | - 10.5.0 47 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-present, Filipe Silva. 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. -------------------------------------------------------------------------------- /template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "__NAME__", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "sc": "shadow-cljs", 7 | "server": "shadow-cljs stop && shadow-cljs start", 8 | "start": "shadow-cljs watch app", 9 | "cards": "shadow-cljs watch cards", 10 | "build": "yarn clean && shadow-cljs release app", 11 | "test": "shadow-cljs compile test && node out/test.js", 12 | "test:watch": "shadow-cljs watch test --config-merge \"{:autorun true}\"", 13 | "e2e": "shadow-cljs compile e2e && node out/e2e.js", 14 | "report": "shadow-cljs run shadow.cljs.build-report app report.html", 15 | "lint": "clj-kondo --lint src", 16 | "format": "zprint-clj --hang -i \"./src/**/*.{clj,cljs,cljc,edn}\" -o ./ && zprint-clj -i \"./*.edn\" -o ./", 17 | "clean": "rimraf public/js" 18 | }, 19 | "devDependencies": { 20 | "@testing-library/dom": "^7.19.0", 21 | "@testing-library/react": "^10.4.3", 22 | "clj-kondo": "2020.11.7", 23 | "highlight.js": "10.1.1", 24 | "jsdom": "^16.2.2", 25 | "jsdom-global": "^3.0.2", 26 | "marked": "^1.1.0", 27 | "rimraf": "~3.0.2", 28 | "serve-handler": "~6.1.3", 29 | "shadow-cljs": "~2.10.13", 30 | "taiko": "~1.0.12", 31 | "taiko-diagnostics": "~0.4.0", 32 | "zprint-clj": "~0.8.0" 33 | }, 34 | "dependencies": { 35 | "create-react-class": "~15.6.3", 36 | "react": "~16.8.0", 37 | "react-dom": "~16.8.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /template/src/e2e/core.cljs: -------------------------------------------------------------------------------- 1 | (ns e2e.core 2 | "This namespace contains your e2e tests and is the entrypoint for 'yarn e2e'." 3 | (:require [cljs.test :refer-macros [deftest is async use-fixtures]] 4 | ["http" :as http] 5 | ["serve-handler" :as serve-handler] 6 | ["taiko" :refer [openBrowser goto closeBrowser text diagnostics]])) 7 | 8 | ; Serve public/ on a static server. 9 | (use-fixtures 10 | :once 11 | (let [server (.createServer http #(serve-handler %1 %2 #js {:public "public/"}))] 12 | {:before #(.listen server 5000) 13 | :after #(.close server)})) 14 | 15 | ; Change debug to true to see the browser performing actions. 16 | (def debug false) 17 | (def browser-opts (if debug 18 | #js {:headless false :observe true} 19 | #js {})) 20 | 21 | (deftest app-works 22 | (let [test-string "is running!"] 23 | (async done 24 | (-> 25 | (openBrowser browser-opts) 26 | (.then #(.logConsoleInfo diagnostics)) 27 | (.then #(.on %1 "logEntry" (fn [log] (is (not (= (.-level log) "error")) 28 | (str "Should not log errors: " 29 | (js/JSON.stringify log)))))) 30 | (.then #(goto "http://localhost:5000")) 31 | (.then #(.exists (text test-string))) 32 | (.then #(is % (str "Text '" test-string "' should exist in page"))) 33 | (.catch #(is false "Should not have thrown errors")) 34 | (.finally #(closeBrowser)) 35 | (.then #(done)))))) 36 | -------------------------------------------------------------------------------- /src/create_cljs_app/messages.cljs: -------------------------------------------------------------------------------- 1 | (ns create-cljs-app.messages 2 | (:require ["chalk" :refer [blue green red yellow]])) 3 | 4 | (defn begin-msg [abs-path] 5 | (.log js/console (str "\nCreating a new CLJS app in " (green abs-path) "."))) 6 | 7 | (defn install-packages-msg [] 8 | (.log js/console "\nInstalling packages. This might take a couple of minutes.")) 9 | 10 | (defn init-git-msg [] 11 | (.log js/console "\nInitialized a git repository.")) 12 | 13 | (defn done-msg 14 | [name path abs-path commands install-failed?] 15 | (.log 16 | js/console 17 | (str 18 | "\nSuccess! Created " name " at " abs-path " 19 | Inside that directory, you can run several commands: 20 | 21 | " (blue (:start commands)) " 22 | Starts the development server. 23 | 24 | " (blue (:build commands)) " 25 | Bundles the app into static files for production. 26 | 27 | " (blue (:test commands)) " 28 | Starts the test runner. 29 | 30 | We suggest that you begin by typing: 31 | 32 | " (blue (str "cd " path)) " 33 | " (when install-failed? (str (blue (:install commands)) "\n ")) 34 | (blue (:start commands)) " 35 | 36 | Happy hacking! 37 | "))) 38 | 39 | (defn java-warning [] 40 | (.log js/console (yellow 41 | (str 42 | "\nWARNING: Java is needed to build." 43 | " Download the HotSpot 8+ version from https://adoptopenjdk.net.")))) 44 | 45 | 46 | (defn node-error [] 47 | (.error js/console (red 48 | (str 49 | "\nERROR: NodeJS >= 10.12 is needed to run create-cljs-app." 50 | " Download a recent NodeJS version from https://nodejs.org/en/download/")))) 51 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-cljs-app", 3 | "version": "0.0.0-development", 4 | "description": "Set up a modern cljs app by running one command.", 5 | "main": "index.js", 6 | "bin": { 7 | "create-cljs-app": "./bin/create-cljs-app.js" 8 | }, 9 | "engines": { 10 | "node": ">=10.12" 11 | }, 12 | "scripts": { 13 | "sc": "shadow-cljs", 14 | "server": "shadow-cljs stop && shadow-cljs start", 15 | "start": "shadow-cljs watch lib", 16 | "build": "yarn clean && shadow-cljs release lib", 17 | "test": "shadow-cljs watch test --config-merge \"{:autorun true}\"", 18 | "test:once": "shadow-cljs compile test && node out/test.js", 19 | "e2e": "shadow-cljs compile e2e && node out/e2e.js", 20 | "quick-e2e": "shadow-cljs compile lib && yarn e2e", 21 | "lint": "clj-kondo --lint src", 22 | "format": "zprint-clj --hang -i \"./src/**/*.{clj,cljs,cljc,edn}\" -o ./ && zprint-clj -i \"./*.edn\" -o ./", 23 | "clean": "shx rm -rf dist/" 24 | }, 25 | "repository": { 26 | "type": "git", 27 | "url": "https://github.com/filipesilva/create-cljs-app.git" 28 | }, 29 | "keywords": [ 30 | "clojure", 31 | "clojurescript", 32 | "clj", 33 | "cljs", 34 | "shadow-cljs" 35 | ], 36 | "author": "filipesilva", 37 | "bugs": { 38 | "url": "https://github.com/filipesilva/create-cljs-app/issues" 39 | }, 40 | "homepage": "https://github.com/filipesilva/create-cljs-app#readme", 41 | "devDependencies": { 42 | "clj-kondo": "2020.01.13", 43 | "shadow-cljs": "^2.11.4", 44 | "shx": "^0.3.2", 45 | "zprint-clj": "^0.8.0" 46 | }, 47 | "dependencies": { 48 | "chalk": "^4.1.0", 49 | "ora": "^5.1.0", 50 | "semver": "^7.3.2", 51 | "shelljs": "^0.8.4" 52 | }, 53 | "files": [ 54 | "bin", 55 | "dist", 56 | "template" 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /template/src/app/hello_cards.cljs: -------------------------------------------------------------------------------- 1 | (ns app.hello-cards 2 | (:require [reagent.core :as r] 3 | [devcards.core :as dc :refer [defcard deftest]] 4 | [cljs.test :include-macros true :refer [is]] 5 | ["@testing-library/react" :refer [render cleanup fireEvent]] 6 | [app.hello :refer [click-counter hello]])) 7 | 8 | (defn testing-container 9 | "The container that should be used to render testing-library react components. 10 | We want to provide our own container so that the rendered devcards aren't used." 11 | [] 12 | (let [app-div (js/document.createElement "div")] 13 | (.setAttribute app-div "id" "testing-lib") 14 | (js/document.body.appendChild app-div))) 15 | 16 | (defcard 17 | "This is a live interactive development environment using [Devcards](https://github.com/bhauman/devcards). 18 | You can use it to design, test, and think about parts of your app in isolation. 19 | 20 | The two 'cards' below show the two components in this app.") 21 | 22 | (defcard hello-card 23 | (dc/reagent hello)) 24 | 25 | (defcard click-counter-card 26 | (dc/reagent click-counter) 27 | (r/atom 0) 28 | {:inspect-data true 29 | :frame true 30 | :history true}) 31 | 32 | (defcard 33 | "You can also add tests here and see their results. 34 | Below are some tests using [React Testing Library](https://testing-library.com/docs/react-testing-library/intro). 35 | 36 | Tests will be ran outside the browser when you run the test command.") 37 | 38 | (deftest hello-tests-card 39 | (let [tr (render (r/as-element [hello]) #js {:container (testing-container)})] 40 | (is (.queryByText tr #"Hello") "Should say 'Hello'") 41 | (cleanup))) 42 | 43 | (deftest click-counter-tests-card 44 | (let [atom (r/atom 0) 45 | element (r/as-element [click-counter atom]) 46 | tr (render element #js {:container (testing-container)})] 47 | (is (.queryByText tr #"has value: 0") "Should show the initial value as '0'") 48 | (.click fireEvent (.queryByText tr #"(?i)click me")) 49 | (r/flush) 50 | (is (.queryByText tr #"has value: 1") "Should show the value as '1' after click") 51 | (.click fireEvent (.queryByText tr #"(?i)click me")) 52 | (r/flush) 53 | (is (.queryByText tr #"has value: 2") "Should show the value as '2' after two clicks") 54 | (cleanup))) -------------------------------------------------------------------------------- /src/create_cljs_app/utils.cljs: -------------------------------------------------------------------------------- 1 | (ns create-cljs-app.utils 2 | (:require [cljs.core.async :refer [go chan =10.12.0")) 49 | 50 | (defn silent-install 51 | "Asynchronously install npm packages while showing a spinner. 52 | Returns a channel that contains will receive the exit code. 53 | Must be asynchronous otherwise the spinner would not spin." 54 | [commands] 55 | (let [command (:install commands) 56 | spinner (.start (ora "Installing packages...")) 57 | c (chan)] 58 | ; Note: put! must be used instead of >! because go block analysis stops at 59 | ; function boundaries 60 | ; https://github.com/clojure/core.async/wiki/Go-Block-Best-Practices#unsupported-constructs-and-other-limitations-in-go-blocks 61 | (go (exec command #js {:silent true} #(put! c %)) 62 | (let [code ( 10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | The page will reload if you make edits. 12 | 13 | The app uses [Reagent](https://reagent-project.github.io), a minimalistic interface between ClojureScript and React.
14 | You can use existing npm React components directly via a [interop call](http://reagent-project.github.io/docs/master/InteropWithReact.html#creating-reagent-components-from-react-components). 15 | 16 | Builds use [Shadow CLJS](https://github.com/thheller/shadow-cljs) for maximum compatibility with NPM libraries. You'll need a [Java SDK](https://adoptopenjdk.net/) (Version 8+, Hotspot) to use it.
17 | You can [import npm libraries](https://shadow-cljs.github.io/docs/UsersGuide.html#js-deps) using Shadow CLJS. See the [user manual](https://shadow-cljs.github.io/docs/UsersGuide.html) for more information. 18 | 19 | ### `__CARDS__` 20 | 21 | Runs the interactive live development enviroment.
22 | You can use it to design, test, and think about parts of your app in isolation. 23 | 24 | This environment uses [Devcards](https://github.com/bhauman/devcards) and [React Testing Library](https://testing-library.com/docs/react-testing-library/intro). 25 | 26 | ### `__BUILD__` 27 | 28 | Builds the app for production to the `public` folder.
29 | It correctly bundles all code and optimizes the build for the best performance. 30 | 31 | Your app is ready to be deployed! 32 | 33 | ## Other useful scripts 34 | 35 | ### `__TEST__` and `__E2E__` 36 | 37 | You can use `__TEST__` to run tests a single time, and `__E2E__` to run the end-to-end test app. 38 | `__TEST:WATCH__` launches tests in interactive watch mode.
39 | 40 | See the ClojureScript [testing page](https://clojurescript.org/tools/testing) for more information. E2E tests use [Taiko](https://github.com/getgauge/taiko) to interact with a headless browser. 41 | 42 | ### `__LINT__` and `__FORMAT__` 43 | 44 | `__LINT__` checks the code for known bad code patterns using [clj-kondo](https://github.com/borkdude/clj-kondo). 45 | 46 | `__FORMAT__` will format your code in a consistent manner using [zprint-clj](https://github.com/clj-commons/zprint-clj). 47 | 48 | ### `__REPORT__` 49 | 50 | Make a report of what files contribute to your app size.
51 | Consider [code-splitting](https://code.thheller.com/blog/shadow-cljs/2019/03/03/code-splitting-clojurescript.html) or using smaller libraries to make your app load faster. 52 | 53 | ### `__SERVER__` 54 | 55 | Starts a Shadow CLJS background server.
56 | This will speed up starting time for other commands that use Shadow CLJS. 57 | 58 | ## Useful resources 59 | 60 | Clojurians Slack http://clojurians.net/. 61 | 62 | CLJS FAQ (for JavaScript developers) https://clojurescript.org/guides/faq-js. 63 | 64 | Official CLJS API https://cljs.github.io/api/. 65 | 66 | Quick reference https://cljs.info/cheatsheet/. 67 | 68 | Offline searchable docs https://devdocs.io/. 69 | 70 | VSCode plugin https://github.com/BetterThanTomorrow/calva. 71 | 72 | -------------------------------------------------------------------------------- /src/create_cljs_app/template.cljs: -------------------------------------------------------------------------------- 1 | (ns create-cljs-app.template 2 | (:require [clojure.string :refer [replace]] 3 | ["path" :refer [dirname join]] 4 | ["fs" :refer 5 | [copyFileSync mkdirSync readdirSync readFileSync statSync writeFileSync renameSync]])) 6 | 7 | (def template-dir 8 | "Path there template files are." 9 | (join js/__dirname ".." "template")) 10 | 11 | (def template-ignores 12 | "UNIX-style paths from the template dir to ignore. Mostly leftovers from template development." 13 | #{".shadow-cljs" "node_modules" "out" "yarn.lock" "public/js"}) 14 | 15 | (defn get-template-values-map 16 | "List of string replacements to perform in files while copying. 17 | Will likely need to be replaced with a proper templating library." 18 | [name commands] 19 | {"package.json" [{:from "__NAME__" :to name}] 20 | "public/index.html" [{:from "__NAME__" :to name}] 21 | "src/app/hello.cljs" [{:from "__NAME__" :to name}] 22 | "README.md" [{:from "__START__" :to (:start commands)} 23 | {:from "__CARDS__" :to (:cards commands)} 24 | {:from "__SERVER__" :to (:server commands)} 25 | {:from "__TEST:WATCH__" :to (:test commands)} 26 | {:from "__TEST__" :to (:test:once commands)} 27 | {:from "__E2E__" :to (:e2e commands)} 28 | {:from "__LINT__" :to (:lint commands)} 29 | {:from "__REPORT__" :to (:report commands)} 30 | {:from "__FORMAT__" :to (:format commands)} 31 | {:from "__BUILD__" :to (:build commands)}]}) 32 | 33 | (defn- join-partial 34 | [partial fragment] 35 | (if (= partial "") 36 | fragment 37 | ; Always join partials with UNIX separators to ensure matches with 38 | ; ignores. 39 | (str partial "/" fragment))) 40 | 41 | (defn- list-files-helper 42 | [from ignore partial] 43 | (mapcat 44 | #(let [curr-partial (join-partial partial %)] 45 | (if (.isFile (statSync (join from curr-partial))) 46 | [curr-partial] 47 | (list-files-helper from ignore curr-partial))) 48 | (filter #(not (contains? ignore (join-partial partial %))) 49 | (set (readdirSync (join from partial)))))) 50 | 51 | (defn list-files 52 | "Recursively lists all files in a directory, ignoring some paths along the way." 53 | [from ignore] 54 | (list-files-helper from ignore "")) 55 | 56 | (defn copy-template 57 | "Copy a file while using it as a template with replacements." 58 | [from-abs to-abs template-values] 59 | (writeFileSync to-abs (reduce #(replace %1 (:from %2) (:to %2)) 60 | (readFileSync from-abs "utf-8") 61 | template-values))) 62 | 63 | (defn- copy-file 64 | [from to path template-values] 65 | (let [from-abs (join from path) 66 | to-abs (join to path)] 67 | (mkdirSync (dirname to-abs) #js {:recursive true}) 68 | (if template-values 69 | (copy-template from-abs to-abs template-values) 70 | (copyFileSync from-abs to-abs)))) 71 | 72 | (defn- rename-file 73 | [from to path] 74 | (let [from-abs (join path from) 75 | to-abs (join path to)] 76 | (mkdirSync (dirname to-abs) #js {:recursive true}) 77 | (renameSync from-abs to-abs))) 78 | 79 | (defn copy-files 80 | "Copy files from one directory to another, preserving folder structure." 81 | [files from to template-values-map] 82 | (doall (map #(copy-file from to % (get template-values-map %)) files))) 83 | 84 | (defn use-template 85 | "Create an app from a template into." 86 | [app-path name commands] 87 | (copy-files (list-files template-dir template-ignores) 88 | template-dir 89 | app-path 90 | (get-template-values-map name commands)) 91 | (rename-file "gitignore" ".gitignore" app-path)) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Create CLJS App [![Build Status](https://github.com/filipesilva/create-cljs-app/workflows/Node%20CI/badge.svg?branch=master)](https://github.com/filipesilva/create-cljs-app/actions) 2 | 3 | Create ClojureScript apps with a single command.
4 | It is focused on making it easy for JS and React developers to get started with ClojureScript. 5 | 6 | Create CLJS App works on Windows, Linux, and macOS.
7 | If something doesn’t work, please [file an issue](https://github.com/filipesilva/create-cljs-app/issues/new).
8 | 9 | Heavily inspired on [create-react-app](https://github.com/facebook/create-react-app). A lot of messages are mostly the same for now (create-react-app maintainers: if that's not ok, let me know). 10 | 11 | ## Quick Overview 12 | 13 | ```sh 14 | npx create-cljs-app my-app 15 | cd my-app 16 | npm start 17 | ``` 18 | 19 | Then open [http://localhost:3000/](http://localhost:3000/) to see your app.
20 | When you’re ready to deploy to production, create a minified bundle with `npm run build`. 21 | 22 | ## Creating an App 23 | 24 | **You’ll need to have Node 10.16.0 or later version on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. 25 | 26 | **You'll also need a [Java SDK](https://adoptopenjdk.net/) (Version 8+, Hotspot).** 27 | 28 | To create a new app, you may choose one of the following methods: 29 | 30 | ### npx 31 | 32 | ```sh 33 | npx create-cljs-app my-app 34 | ``` 35 | _([npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) comes with npm 5.2+ and higher)_ 36 | 37 | ### npm 38 | 39 | ```sh 40 | npm init cljs-app my-app 41 | ``` 42 | 43 | _`npm init ` is available in npm 6+_ 44 | 45 | ### Yarn 46 | 47 | ```sh 48 | yarn create cljs-app my-app 49 | ``` 50 | 51 | _`yarn create` is available in Yarn 0.25+_ 52 | 53 | It will create a directory called `my-app` inside the current folder.
54 | Inside that directory, it will generate the initial project structure and install the transitive dependencies: 55 | 56 | ``` 57 | my-app 58 | ├── README.md 59 | ├── package.json 60 | ├── node_modules 61 | ├── shadow-cljs.edn 62 | ├── .gitignore 63 | ├── public 64 | | ├── css 65 | | | └── style.css 66 | | ├── index.html 67 | | └── favicon.ico 68 | └── src 69 | ├── app 70 | | ├── cards.cljs 71 | | ├── core.cljs 72 | | ├── hello.cljs 73 | | └── hello_cards.cljs 74 | └── e2e 75 | └── core.cljs 76 | ``` 77 | 78 | Once the installation is done, you can open your project folder: 79 | 80 | ```sh 81 | cd my-app 82 | ``` 83 | 84 | Inside the newly created project, you can run some built-in commands: 85 | 86 | ### `npm start` or `yarn start` 87 | 88 | Runs the app in the development mode.
89 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 90 | The page will reload if you make edits. 91 | 92 | The app uses [Reagent](https://reagent-project.github.io), a minimalistic interface between ClojureScript and React.
93 | You can use existing npm React components directly via a [interop call](http://reagent-project.github.io/docs/master/InteropWithReact.html#creating-reagent-components-from-react-components). 94 | 95 | Builds use [Shadow CLJS](https://github.com/thheller/shadow-cljs) for maximum compatibility with NPM libraries. You'll need a [Java SDK](https://adoptopenjdk.net/) (Version 8+, Hotspot) to use it.
96 | You can [import npm libraries](https://shadow-cljs.github.io/docs/UsersGuide.html#js-deps) using Shadow CLJS. See the [user manual](https://shadow-cljs.github.io/docs/UsersGuide.html) for more information. 97 | 98 | ### `npm run cards` or `yarn cards` 99 | 100 | Runs the interactive live development environment.
101 | You can use it to design, test, and think about parts of your app in isolation. 102 | 103 | This environment uses [Devcards](https://github.com/bhauman/devcards) and [React Testing Library](https://testing-library.com/docs/react-testing-library/intro). 104 | 105 | ### `npm run build` or `yarn build` 106 | 107 | Builds the app for production to the `public` folder.
108 | It correctly bundles all code and optimizes the build for the best performance. 109 | 110 | ### `npm test` or `yarn test`, and `npm run e2e` or `yarn e2e` 111 | 112 | `test` launches the test runner in the interactive watch mode.
113 | You can use `test:once` instead to run the tests a single time, and `e2e` to run end-to-end tests. 114 | 115 | See the ClojureScript [testing page](https://clojurescript.org/tools/testing) for more information. E2E tests use [Taiko](https://github.com/getgauge/taiko) to interact with a headless browser. 116 | 117 | ### `npm run lint` or `yarn lint`, and `npm run format` or `yarn format` 118 | 119 | `lint` checks the code for known bad code patterns using [clj-kondo](https://github.com/borkdude/clj-kondo). 120 | 121 | `format` will format your code in a consistent manner using [zprint-clj](https://github.com/clj-commons/zprint-clj). 122 | 123 | ### `npm run report` or `yarn report` 124 | 125 | Make a report of what files contribute to your app size.
126 | Consider [code-splitting](https://code.thheller.com/blog/shadow-cljs/2019/03/03/code-splitting-clojurescript.html) or using smaller libraries to make your app load faster. 127 | 128 | ### `npm run server` or `yarn server` 129 | 130 | Starts a Shadow CLJS background server.
131 | This will speed up starting time for other commands that use Shadow CLJS. 132 | 133 | ## License 134 | 135 | Create CLJS App is open source software [licensed as MIT](https://github.com/filipesilva/create-cljs-app/blob/master/LICENSE). 136 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@nodelib/fs.scandir@2.1.3": 6 | version "2.1.3" 7 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" 8 | integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== 9 | dependencies: 10 | "@nodelib/fs.stat" "2.0.3" 11 | run-parallel "^1.1.9" 12 | 13 | "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": 14 | version "2.0.3" 15 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" 16 | integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== 17 | 18 | "@nodelib/fs.walk@^1.2.3": 19 | version "1.2.4" 20 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" 21 | integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== 22 | dependencies: 23 | "@nodelib/fs.scandir" "2.1.3" 24 | fastq "^1.6.0" 25 | 26 | "@types/color-name@^1.1.1": 27 | version "1.1.1" 28 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 29 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 30 | 31 | ajv@^6.5.5: 32 | version "6.12.2" 33 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" 34 | integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== 35 | dependencies: 36 | fast-deep-equal "^3.1.1" 37 | fast-json-stable-stringify "^2.0.0" 38 | json-schema-traverse "^0.4.1" 39 | uri-js "^4.2.2" 40 | 41 | ansi-regex@^5.0.0: 42 | version "5.0.0" 43 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 44 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 45 | 46 | ansi-styles@^4.1.0: 47 | version "4.2.1" 48 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 49 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== 50 | dependencies: 51 | "@types/color-name" "^1.1.1" 52 | color-convert "^2.0.1" 53 | 54 | asn1.js@^4.0.0: 55 | version "4.10.1" 56 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 57 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== 58 | dependencies: 59 | bn.js "^4.0.0" 60 | inherits "^2.0.1" 61 | minimalistic-assert "^1.0.0" 62 | 63 | asn1@~0.2.3: 64 | version "0.2.4" 65 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 66 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 67 | dependencies: 68 | safer-buffer "~2.1.0" 69 | 70 | assert-plus@1.0.0, assert-plus@^1.0.0: 71 | version "1.0.0" 72 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 73 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 74 | 75 | assert@^1.1.1: 76 | version "1.5.0" 77 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" 78 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== 79 | dependencies: 80 | object-assign "^4.1.1" 81 | util "0.10.3" 82 | 83 | async-limiter@~1.0.0: 84 | version "1.0.1" 85 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" 86 | integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== 87 | 88 | asynckit@^0.4.0: 89 | version "0.4.0" 90 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 91 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 92 | 93 | aws-sign2@~0.7.0: 94 | version "0.7.0" 95 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 96 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 97 | 98 | aws4@^1.8.0: 99 | version "1.9.1" 100 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" 101 | integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== 102 | 103 | balanced-match@^1.0.0: 104 | version "1.0.0" 105 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 106 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 107 | 108 | base64-js@^1.0.2: 109 | version "1.3.1" 110 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" 111 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== 112 | 113 | bcrypt-pbkdf@^1.0.0: 114 | version "1.0.2" 115 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 116 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 117 | dependencies: 118 | tweetnacl "^0.14.3" 119 | 120 | binary@^0.3.0: 121 | version "0.3.0" 122 | resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" 123 | integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= 124 | dependencies: 125 | buffers "~0.1.1" 126 | chainsaw "~0.1.0" 127 | 128 | binwrap@^0.2.2: 129 | version "0.2.2" 130 | resolved "https://registry.yarnpkg.com/binwrap/-/binwrap-0.2.2.tgz#7d1ea74b28332f18dfdc75548aef993041ffafc9" 131 | integrity sha512-Y+Wvypk3JhH5GPZAvlwJAWOVH/OsOhQMSj37vySuWHwQivoALplPxfBA8b973rFJI7OS+O+1YmmYXIiEXVMAcw== 132 | dependencies: 133 | mustache "^3.0.1" 134 | request "^2.88.0" 135 | request-promise "^4.2.4" 136 | tar "^4.4.10" 137 | unzip-stream "^0.3.0" 138 | 139 | bluebird@^3.5.0: 140 | version "3.7.2" 141 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 142 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 143 | 144 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 145 | version "4.11.8" 146 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 147 | integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== 148 | 149 | brace-expansion@^1.1.7: 150 | version "1.1.11" 151 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 152 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 153 | dependencies: 154 | balanced-match "^1.0.0" 155 | concat-map "0.0.1" 156 | 157 | braces@^3.0.1: 158 | version "3.0.2" 159 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 160 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 161 | dependencies: 162 | fill-range "^7.0.1" 163 | 164 | brorand@^1.0.1: 165 | version "1.1.0" 166 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 167 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 168 | 169 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 170 | version "1.2.0" 171 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 172 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 173 | dependencies: 174 | buffer-xor "^1.0.3" 175 | cipher-base "^1.0.0" 176 | create-hash "^1.1.0" 177 | evp_bytestokey "^1.0.3" 178 | inherits "^2.0.1" 179 | safe-buffer "^5.0.1" 180 | 181 | browserify-cipher@^1.0.0: 182 | version "1.0.1" 183 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 184 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 185 | dependencies: 186 | browserify-aes "^1.0.4" 187 | browserify-des "^1.0.0" 188 | evp_bytestokey "^1.0.0" 189 | 190 | browserify-des@^1.0.0: 191 | version "1.0.2" 192 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 193 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 194 | dependencies: 195 | cipher-base "^1.0.1" 196 | des.js "^1.0.0" 197 | inherits "^2.0.1" 198 | safe-buffer "^5.1.2" 199 | 200 | browserify-rsa@^4.0.0: 201 | version "4.0.1" 202 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 203 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= 204 | dependencies: 205 | bn.js "^4.1.0" 206 | randombytes "^2.0.1" 207 | 208 | browserify-sign@^4.0.0: 209 | version "4.0.4" 210 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 211 | integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= 212 | dependencies: 213 | bn.js "^4.1.1" 214 | browserify-rsa "^4.0.0" 215 | create-hash "^1.1.0" 216 | create-hmac "^1.1.2" 217 | elliptic "^6.0.0" 218 | inherits "^2.0.1" 219 | parse-asn1 "^5.0.0" 220 | 221 | browserify-zlib@^0.2.0: 222 | version "0.2.0" 223 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 224 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 225 | dependencies: 226 | pako "~1.0.5" 227 | 228 | buffer-xor@^1.0.3: 229 | version "1.0.3" 230 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 231 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 232 | 233 | buffer@^4.3.0: 234 | version "4.9.2" 235 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" 236 | integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== 237 | dependencies: 238 | base64-js "^1.0.2" 239 | ieee754 "^1.1.4" 240 | isarray "^1.0.0" 241 | 242 | buffers@~0.1.1: 243 | version "0.1.1" 244 | resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" 245 | integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= 246 | 247 | builtin-status-codes@^3.0.0: 248 | version "3.0.0" 249 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 250 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 251 | 252 | caseless@~0.12.0: 253 | version "0.12.0" 254 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 255 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 256 | 257 | chainsaw@~0.1.0: 258 | version "0.1.0" 259 | resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" 260 | integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= 261 | dependencies: 262 | traverse ">=0.3.0 <0.4" 263 | 264 | chalk@^4.0.0, chalk@^4.1.0: 265 | version "4.1.0" 266 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 267 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 268 | dependencies: 269 | ansi-styles "^4.1.0" 270 | supports-color "^7.1.0" 271 | 272 | chownr@^1.1.1: 273 | version "1.1.4" 274 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 275 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 276 | 277 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 278 | version "1.0.4" 279 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 280 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 281 | dependencies: 282 | inherits "^2.0.1" 283 | safe-buffer "^5.0.1" 284 | 285 | cli-cursor@^3.1.0: 286 | version "3.1.0" 287 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 288 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 289 | dependencies: 290 | restore-cursor "^3.1.0" 291 | 292 | cli-spinners@^2.4.0: 293 | version "2.4.0" 294 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" 295 | integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== 296 | 297 | clj-kondo@2020.01.13: 298 | version "2020.1.13" 299 | resolved "https://registry.yarnpkg.com/clj-kondo/-/clj-kondo-2020.1.13.tgz#bffe0dde83169f3b7a605f459f835cbf90ef9347" 300 | integrity sha512-hLKi4toY3UFe1WnuX/HGr2e3PWEt4++7286Jiv/nyBoy1zcEopz7k+e0XnjX5GkxFUgXv1KrIyHQ3eM4+iW2dw== 301 | dependencies: 302 | binwrap "^0.2.2" 303 | request "^2.88.0" 304 | 305 | clone@^1.0.2: 306 | version "1.0.4" 307 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 308 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 309 | 310 | color-convert@^2.0.1: 311 | version "2.0.1" 312 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 313 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 314 | dependencies: 315 | color-name "~1.1.4" 316 | 317 | color-name@~1.1.4: 318 | version "1.1.4" 319 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 320 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 321 | 322 | combined-stream@^1.0.6, combined-stream@~1.0.6: 323 | version "1.0.8" 324 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 325 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 326 | dependencies: 327 | delayed-stream "~1.0.0" 328 | 329 | commander@^2.13.0: 330 | version "2.20.3" 331 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 332 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 333 | 334 | concat-map@0.0.1: 335 | version "0.0.1" 336 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 337 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 338 | 339 | console-browserify@^1.1.0: 340 | version "1.2.0" 341 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" 342 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== 343 | 344 | constants-browserify@^1.0.0: 345 | version "1.0.0" 346 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 347 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 348 | 349 | core-util-is@1.0.2, core-util-is@~1.0.0: 350 | version "1.0.2" 351 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 352 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 353 | 354 | create-ecdh@^4.0.0: 355 | version "4.0.3" 356 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 357 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== 358 | dependencies: 359 | bn.js "^4.1.0" 360 | elliptic "^6.0.0" 361 | 362 | create-hash@^1.1.0, create-hash@^1.1.2: 363 | version "1.2.0" 364 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 365 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 366 | dependencies: 367 | cipher-base "^1.0.1" 368 | inherits "^2.0.1" 369 | md5.js "^1.3.4" 370 | ripemd160 "^2.0.1" 371 | sha.js "^2.4.0" 372 | 373 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 374 | version "1.1.7" 375 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 376 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 377 | dependencies: 378 | cipher-base "^1.0.3" 379 | create-hash "^1.1.0" 380 | inherits "^2.0.1" 381 | ripemd160 "^2.0.0" 382 | safe-buffer "^5.0.1" 383 | sha.js "^2.4.8" 384 | 385 | crypto-browserify@^3.11.0: 386 | version "3.12.0" 387 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 388 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 389 | dependencies: 390 | browserify-cipher "^1.0.0" 391 | browserify-sign "^4.0.0" 392 | create-ecdh "^4.0.0" 393 | create-hash "^1.1.0" 394 | create-hmac "^1.1.0" 395 | diffie-hellman "^5.0.0" 396 | inherits "^2.0.1" 397 | pbkdf2 "^3.0.3" 398 | public-encrypt "^4.0.0" 399 | randombytes "^2.0.0" 400 | randomfill "^1.0.3" 401 | 402 | dashdash@^1.12.0: 403 | version "1.14.1" 404 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 405 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 406 | dependencies: 407 | assert-plus "^1.0.0" 408 | 409 | defaults@^1.0.3: 410 | version "1.0.3" 411 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 412 | integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 413 | dependencies: 414 | clone "^1.0.2" 415 | 416 | delayed-stream@~1.0.0: 417 | version "1.0.0" 418 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 419 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 420 | 421 | des.js@^1.0.0: 422 | version "1.0.1" 423 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" 424 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== 425 | dependencies: 426 | inherits "^2.0.1" 427 | minimalistic-assert "^1.0.0" 428 | 429 | diffie-hellman@^5.0.0: 430 | version "5.0.3" 431 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 432 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 433 | dependencies: 434 | bn.js "^4.1.0" 435 | miller-rabin "^4.0.0" 436 | randombytes "^2.0.0" 437 | 438 | domain-browser@^1.1.1: 439 | version "1.2.0" 440 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 441 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== 442 | 443 | ecc-jsbn@~0.1.1: 444 | version "0.1.2" 445 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 446 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 447 | dependencies: 448 | jsbn "~0.1.0" 449 | safer-buffer "^2.1.0" 450 | 451 | elliptic@6.5.3, elliptic@^6.0.0: 452 | version "6.5.3" 453 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" 454 | integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== 455 | dependencies: 456 | bn.js "^4.4.0" 457 | brorand "^1.0.1" 458 | hash.js "^1.0.0" 459 | hmac-drbg "^1.0.0" 460 | inherits "^2.0.1" 461 | minimalistic-assert "^1.0.0" 462 | minimalistic-crypto-utils "^1.0.0" 463 | 464 | es6-object-assign@^1.0.3: 465 | version "1.1.0" 466 | resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" 467 | integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= 468 | 469 | events@^3.0.0: 470 | version "3.1.0" 471 | resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" 472 | integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== 473 | 474 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 475 | version "1.0.3" 476 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 477 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 478 | dependencies: 479 | md5.js "^1.3.4" 480 | safe-buffer "^5.1.1" 481 | 482 | extend@~3.0.2: 483 | version "3.0.2" 484 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 485 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 486 | 487 | extsprintf@1.3.0: 488 | version "1.3.0" 489 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 490 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 491 | 492 | extsprintf@^1.2.0: 493 | version "1.4.0" 494 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 495 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 496 | 497 | fast-deep-equal@^3.1.1: 498 | version "3.1.1" 499 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" 500 | integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== 501 | 502 | fast-glob@3.1.0: 503 | version "3.1.0" 504 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.0.tgz#77375a7e3e6f6fc9b18f061cddd28b8d1eec75ae" 505 | integrity sha512-TrUz3THiq2Vy3bjfQUB2wNyPdGBeGmdjbzzBLhfHN4YFurYptCKwGq/TfiRavbGywFRzY6U2CdmQ1zmsY5yYaw== 506 | dependencies: 507 | "@nodelib/fs.stat" "^2.0.2" 508 | "@nodelib/fs.walk" "^1.2.3" 509 | glob-parent "^5.1.0" 510 | merge2 "^1.3.0" 511 | micromatch "^4.0.2" 512 | 513 | fast-json-stable-stringify@^2.0.0: 514 | version "2.1.0" 515 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 516 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 517 | 518 | fastq@^1.6.0: 519 | version "1.7.0" 520 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801" 521 | integrity sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ== 522 | dependencies: 523 | reusify "^1.0.4" 524 | 525 | fill-range@^7.0.1: 526 | version "7.0.1" 527 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 528 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 529 | dependencies: 530 | to-regex-range "^5.0.1" 531 | 532 | forever-agent@~0.6.1: 533 | version "0.6.1" 534 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 535 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 536 | 537 | form-data@~2.3.2: 538 | version "2.3.3" 539 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 540 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 541 | dependencies: 542 | asynckit "^0.4.0" 543 | combined-stream "^1.0.6" 544 | mime-types "^2.1.12" 545 | 546 | fs-minipass@^1.2.5: 547 | version "1.2.7" 548 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" 549 | integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== 550 | dependencies: 551 | minipass "^2.6.0" 552 | 553 | fs.realpath@^1.0.0: 554 | version "1.0.0" 555 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 556 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 557 | 558 | getpass@^0.1.1: 559 | version "0.1.7" 560 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 561 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 562 | dependencies: 563 | assert-plus "^1.0.0" 564 | 565 | glob-parent@^5.1.0: 566 | version "5.1.1" 567 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 568 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 569 | dependencies: 570 | is-glob "^4.0.1" 571 | 572 | glob@^7.0.0: 573 | version "7.1.6" 574 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 575 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 576 | dependencies: 577 | fs.realpath "^1.0.0" 578 | inflight "^1.0.4" 579 | inherits "2" 580 | minimatch "^3.0.4" 581 | once "^1.3.0" 582 | path-is-absolute "^1.0.0" 583 | 584 | har-schema@^2.0.0: 585 | version "2.0.0" 586 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 587 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 588 | 589 | har-validator@~5.1.3: 590 | version "5.1.3" 591 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" 592 | integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== 593 | dependencies: 594 | ajv "^6.5.5" 595 | har-schema "^2.0.0" 596 | 597 | has-flag@^4.0.0: 598 | version "4.0.0" 599 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 600 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 601 | 602 | hash-base@^3.0.0: 603 | version "3.1.0" 604 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" 605 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== 606 | dependencies: 607 | inherits "^2.0.4" 608 | readable-stream "^3.6.0" 609 | safe-buffer "^5.2.0" 610 | 611 | hash.js@^1.0.0, hash.js@^1.0.3: 612 | version "1.1.7" 613 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 614 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 615 | dependencies: 616 | inherits "^2.0.3" 617 | minimalistic-assert "^1.0.1" 618 | 619 | hmac-drbg@^1.0.0: 620 | version "1.0.1" 621 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 622 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 623 | dependencies: 624 | hash.js "^1.0.3" 625 | minimalistic-assert "^1.0.0" 626 | minimalistic-crypto-utils "^1.0.1" 627 | 628 | http-signature@~1.2.0: 629 | version "1.2.0" 630 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 631 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 632 | dependencies: 633 | assert-plus "^1.0.0" 634 | jsprim "^1.2.2" 635 | sshpk "^1.7.0" 636 | 637 | https-browserify@^1.0.0: 638 | version "1.0.0" 639 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 640 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 641 | 642 | ieee754@^1.1.4: 643 | version "1.1.13" 644 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 645 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 646 | 647 | inflight@^1.0.4: 648 | version "1.0.6" 649 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 650 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 651 | dependencies: 652 | once "^1.3.0" 653 | wrappy "1" 654 | 655 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: 656 | version "2.0.4" 657 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 658 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 659 | 660 | inherits@2.0.1: 661 | version "2.0.1" 662 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 663 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 664 | 665 | inherits@2.0.3: 666 | version "2.0.3" 667 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 668 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 669 | 670 | interpret@^1.0.0: 671 | version "1.2.0" 672 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" 673 | integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== 674 | 675 | is-extglob@^2.1.1: 676 | version "2.1.1" 677 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 678 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 679 | 680 | is-glob@^4.0.1: 681 | version "4.0.1" 682 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 683 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 684 | dependencies: 685 | is-extglob "^2.1.1" 686 | 687 | is-interactive@^1.0.0: 688 | version "1.0.0" 689 | resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" 690 | integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== 691 | 692 | is-number@^7.0.0: 693 | version "7.0.0" 694 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 695 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 696 | 697 | is-typedarray@~1.0.0: 698 | version "1.0.0" 699 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 700 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 701 | 702 | isarray@^1.0.0, isarray@~1.0.0: 703 | version "1.0.0" 704 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 705 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 706 | 707 | isexe@^2.0.0: 708 | version "2.0.0" 709 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 710 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 711 | 712 | isstream@~0.1.2: 713 | version "0.1.2" 714 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 715 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 716 | 717 | jsbn@~0.1.0: 718 | version "0.1.1" 719 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 720 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 721 | 722 | json-schema-traverse@^0.4.1: 723 | version "0.4.1" 724 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 725 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 726 | 727 | json-schema@0.2.3: 728 | version "0.2.3" 729 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 730 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 731 | 732 | json-stringify-safe@~5.0.1: 733 | version "5.0.1" 734 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 735 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 736 | 737 | jsprim@^1.2.2: 738 | version "1.4.1" 739 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 740 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 741 | dependencies: 742 | assert-plus "1.0.0" 743 | extsprintf "1.3.0" 744 | json-schema "0.2.3" 745 | verror "1.10.0" 746 | 747 | lodash@^4.17.15: 748 | version "4.17.19" 749 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 750 | integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== 751 | 752 | log-symbols@^4.0.0: 753 | version "4.0.0" 754 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" 755 | integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== 756 | dependencies: 757 | chalk "^4.0.0" 758 | 759 | md5.js@^1.3.4: 760 | version "1.3.5" 761 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 762 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 763 | dependencies: 764 | hash-base "^3.0.0" 765 | inherits "^2.0.1" 766 | safe-buffer "^5.1.2" 767 | 768 | merge2@^1.3.0: 769 | version "1.3.0" 770 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" 771 | integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== 772 | 773 | micromatch@^4.0.2: 774 | version "4.0.2" 775 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" 776 | integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 777 | dependencies: 778 | braces "^3.0.1" 779 | picomatch "^2.0.5" 780 | 781 | miller-rabin@^4.0.0: 782 | version "4.0.1" 783 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 784 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 785 | dependencies: 786 | bn.js "^4.0.0" 787 | brorand "^1.0.1" 788 | 789 | mime-db@1.44.0: 790 | version "1.44.0" 791 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 792 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 793 | 794 | mime-types@^2.1.12, mime-types@~2.1.19: 795 | version "2.1.27" 796 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 797 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 798 | dependencies: 799 | mime-db "1.44.0" 800 | 801 | mimic-fn@^2.1.0: 802 | version "2.1.0" 803 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 804 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 805 | 806 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 807 | version "1.0.1" 808 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 809 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 810 | 811 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 812 | version "1.0.1" 813 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 814 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 815 | 816 | minimatch@^3.0.4: 817 | version "3.0.4" 818 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 819 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 820 | dependencies: 821 | brace-expansion "^1.1.7" 822 | 823 | minimist@^1.2.0, minimist@^1.2.5: 824 | version "1.2.5" 825 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 826 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 827 | 828 | minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: 829 | version "2.9.0" 830 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" 831 | integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== 832 | dependencies: 833 | safe-buffer "^5.1.2" 834 | yallist "^3.0.0" 835 | 836 | minizlib@^1.2.1: 837 | version "1.3.3" 838 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" 839 | integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== 840 | dependencies: 841 | minipass "^2.9.0" 842 | 843 | mkdirp@^0.5.0, mkdirp@^0.5.1: 844 | version "0.5.5" 845 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 846 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 847 | dependencies: 848 | minimist "^1.2.5" 849 | 850 | mustache@^3.0.1: 851 | version "3.2.1" 852 | resolved "https://registry.yarnpkg.com/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322" 853 | integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA== 854 | 855 | mute-stream@0.0.8: 856 | version "0.0.8" 857 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 858 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 859 | 860 | node-libs-browser@^2.2.1: 861 | version "2.2.1" 862 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" 863 | integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== 864 | dependencies: 865 | assert "^1.1.1" 866 | browserify-zlib "^0.2.0" 867 | buffer "^4.3.0" 868 | console-browserify "^1.1.0" 869 | constants-browserify "^1.0.0" 870 | crypto-browserify "^3.11.0" 871 | domain-browser "^1.1.1" 872 | events "^3.0.0" 873 | https-browserify "^1.0.0" 874 | os-browserify "^0.3.0" 875 | path-browserify "0.0.1" 876 | process "^0.11.10" 877 | punycode "^1.2.4" 878 | querystring-es3 "^0.2.0" 879 | readable-stream "^2.3.3" 880 | stream-browserify "^2.0.1" 881 | stream-http "^2.7.2" 882 | string_decoder "^1.0.0" 883 | timers-browserify "^2.0.4" 884 | tty-browserify "0.0.0" 885 | url "^0.11.0" 886 | util "^0.11.0" 887 | vm-browserify "^1.0.1" 888 | 889 | oauth-sign@~0.9.0: 890 | version "0.9.0" 891 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 892 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 893 | 894 | object-assign@^4.1.1: 895 | version "4.1.1" 896 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 897 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 898 | 899 | once@^1.3.0: 900 | version "1.4.0" 901 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 902 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 903 | dependencies: 904 | wrappy "1" 905 | 906 | onetime@^5.1.0: 907 | version "5.1.0" 908 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" 909 | integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== 910 | dependencies: 911 | mimic-fn "^2.1.0" 912 | 913 | ora@^5.1.0: 914 | version "5.1.0" 915 | resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" 916 | integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== 917 | dependencies: 918 | chalk "^4.1.0" 919 | cli-cursor "^3.1.0" 920 | cli-spinners "^2.4.0" 921 | is-interactive "^1.0.0" 922 | log-symbols "^4.0.0" 923 | mute-stream "0.0.8" 924 | strip-ansi "^6.0.0" 925 | wcwidth "^1.0.1" 926 | 927 | os-browserify@^0.3.0: 928 | version "0.3.0" 929 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 930 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 931 | 932 | pako@~1.0.5: 933 | version "1.0.11" 934 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 935 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 936 | 937 | parse-asn1@^5.0.0: 938 | version "5.1.5" 939 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" 940 | integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== 941 | dependencies: 942 | asn1.js "^4.0.0" 943 | browserify-aes "^1.0.0" 944 | create-hash "^1.1.0" 945 | evp_bytestokey "^1.0.0" 946 | pbkdf2 "^3.0.3" 947 | safe-buffer "^5.1.1" 948 | 949 | path-browserify@0.0.1: 950 | version "0.0.1" 951 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" 952 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== 953 | 954 | path-is-absolute@^1.0.0: 955 | version "1.0.1" 956 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 957 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 958 | 959 | path-parse@^1.0.6: 960 | version "1.0.6" 961 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 962 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 963 | 964 | pbkdf2@^3.0.3: 965 | version "3.0.17" 966 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 967 | integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== 968 | dependencies: 969 | create-hash "^1.1.2" 970 | create-hmac "^1.1.4" 971 | ripemd160 "^2.0.1" 972 | safe-buffer "^5.0.1" 973 | sha.js "^2.4.8" 974 | 975 | performance-now@^2.1.0: 976 | version "2.1.0" 977 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 978 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 979 | 980 | picomatch@^2.0.5: 981 | version "2.2.2" 982 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 983 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 984 | 985 | process-nextick-args@~2.0.0: 986 | version "2.0.1" 987 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 988 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 989 | 990 | process@^0.11.10: 991 | version "0.11.10" 992 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 993 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 994 | 995 | psl@^1.1.28: 996 | version "1.8.0" 997 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 998 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 999 | 1000 | public-encrypt@^4.0.0: 1001 | version "4.0.3" 1002 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 1003 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 1004 | dependencies: 1005 | bn.js "^4.1.0" 1006 | browserify-rsa "^4.0.0" 1007 | create-hash "^1.1.0" 1008 | parse-asn1 "^5.0.0" 1009 | randombytes "^2.0.1" 1010 | safe-buffer "^5.1.2" 1011 | 1012 | punycode@1.3.2: 1013 | version "1.3.2" 1014 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 1015 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 1016 | 1017 | punycode@^1.2.4: 1018 | version "1.4.1" 1019 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1020 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 1021 | 1022 | punycode@^2.1.0, punycode@^2.1.1: 1023 | version "2.1.1" 1024 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1025 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1026 | 1027 | qs@~6.5.2: 1028 | version "6.5.2" 1029 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1030 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 1031 | 1032 | querystring-es3@^0.2.0: 1033 | version "0.2.1" 1034 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 1035 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 1036 | 1037 | querystring@0.2.0: 1038 | version "0.2.0" 1039 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 1040 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 1041 | 1042 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 1043 | version "2.1.0" 1044 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1045 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1046 | dependencies: 1047 | safe-buffer "^5.1.0" 1048 | 1049 | randomfill@^1.0.3: 1050 | version "1.0.4" 1051 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 1052 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 1053 | dependencies: 1054 | randombytes "^2.0.5" 1055 | safe-buffer "^5.1.0" 1056 | 1057 | readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6: 1058 | version "2.3.7" 1059 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1060 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1061 | dependencies: 1062 | core-util-is "~1.0.0" 1063 | inherits "~2.0.3" 1064 | isarray "~1.0.0" 1065 | process-nextick-args "~2.0.0" 1066 | safe-buffer "~5.1.1" 1067 | string_decoder "~1.1.1" 1068 | util-deprecate "~1.0.1" 1069 | 1070 | readable-stream@^3.6.0: 1071 | version "3.6.0" 1072 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 1073 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 1074 | dependencies: 1075 | inherits "^2.0.3" 1076 | string_decoder "^1.1.1" 1077 | util-deprecate "^1.0.1" 1078 | 1079 | readline-sync@^1.4.7: 1080 | version "1.4.10" 1081 | resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" 1082 | integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== 1083 | 1084 | rechoir@^0.6.2: 1085 | version "0.6.2" 1086 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 1087 | integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= 1088 | dependencies: 1089 | resolve "^1.1.6" 1090 | 1091 | request-promise-core@1.1.3: 1092 | version "1.1.3" 1093 | resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" 1094 | integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== 1095 | dependencies: 1096 | lodash "^4.17.15" 1097 | 1098 | request-promise@^4.2.4: 1099 | version "4.2.5" 1100 | resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.5.tgz#186222c59ae512f3497dfe4d75a9c8461bd0053c" 1101 | integrity sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg== 1102 | dependencies: 1103 | bluebird "^3.5.0" 1104 | request-promise-core "1.1.3" 1105 | stealthy-require "^1.1.1" 1106 | tough-cookie "^2.3.3" 1107 | 1108 | request@^2.88.0: 1109 | version "2.88.2" 1110 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" 1111 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 1112 | dependencies: 1113 | aws-sign2 "~0.7.0" 1114 | aws4 "^1.8.0" 1115 | caseless "~0.12.0" 1116 | combined-stream "~1.0.6" 1117 | extend "~3.0.2" 1118 | forever-agent "~0.6.1" 1119 | form-data "~2.3.2" 1120 | har-validator "~5.1.3" 1121 | http-signature "~1.2.0" 1122 | is-typedarray "~1.0.0" 1123 | isstream "~0.1.2" 1124 | json-stringify-safe "~5.0.1" 1125 | mime-types "~2.1.19" 1126 | oauth-sign "~0.9.0" 1127 | performance-now "^2.1.0" 1128 | qs "~6.5.2" 1129 | safe-buffer "^5.1.2" 1130 | tough-cookie "~2.5.0" 1131 | tunnel-agent "^0.6.0" 1132 | uuid "^3.3.2" 1133 | 1134 | resolve@^1.1.6: 1135 | version "1.17.0" 1136 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 1137 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 1138 | dependencies: 1139 | path-parse "^1.0.6" 1140 | 1141 | restore-cursor@^3.1.0: 1142 | version "3.1.0" 1143 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1144 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 1145 | dependencies: 1146 | onetime "^5.1.0" 1147 | signal-exit "^3.0.2" 1148 | 1149 | reusify@^1.0.4: 1150 | version "1.0.4" 1151 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1152 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1153 | 1154 | ripemd160@^2.0.0, ripemd160@^2.0.1: 1155 | version "2.0.2" 1156 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 1157 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 1158 | dependencies: 1159 | hash-base "^3.0.0" 1160 | inherits "^2.0.1" 1161 | 1162 | run-parallel@^1.1.9: 1163 | version "1.1.9" 1164 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" 1165 | integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== 1166 | 1167 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: 1168 | version "5.2.0" 1169 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" 1170 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== 1171 | 1172 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1173 | version "5.1.2" 1174 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1175 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1176 | 1177 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 1178 | version "2.1.2" 1179 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1180 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1181 | 1182 | semver@^7.3.2: 1183 | version "7.3.2" 1184 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" 1185 | integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== 1186 | 1187 | setimmediate@^1.0.4: 1188 | version "1.0.5" 1189 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1190 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 1191 | 1192 | sha.js@^2.4.0, sha.js@^2.4.8: 1193 | version "2.4.11" 1194 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 1195 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 1196 | dependencies: 1197 | inherits "^2.0.1" 1198 | safe-buffer "^5.0.1" 1199 | 1200 | shadow-cljs-jar@1.3.2: 1201 | version "1.3.2" 1202 | resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz#97273afe1747b6a2311917c1c88d9e243c81957b" 1203 | integrity sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg== 1204 | 1205 | shadow-cljs@^2.11.4: 1206 | version "2.11.4" 1207 | resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-2.11.4.tgz#11778b0cccd67be472f57278a0b870ed17ca878c" 1208 | integrity sha512-sIc1MfN/JsGenbFkDXs0+iVrKTSzAE5DzBFuUGxHc4LbcAJ9GWRQlAeE0WRT3fOCQQOlxeBLrxlZ6WiUjKlQgg== 1209 | dependencies: 1210 | node-libs-browser "^2.2.1" 1211 | readline-sync "^1.4.7" 1212 | shadow-cljs-jar "1.3.2" 1213 | source-map-support "^0.4.15" 1214 | which "^1.3.1" 1215 | ws "^3.0.0" 1216 | 1217 | shelljs@^0.8.1, shelljs@^0.8.4: 1218 | version "0.8.4" 1219 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" 1220 | integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== 1221 | dependencies: 1222 | glob "^7.0.0" 1223 | interpret "^1.0.0" 1224 | rechoir "^0.6.2" 1225 | 1226 | shx@^0.3.2: 1227 | version "0.3.2" 1228 | resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.2.tgz#40501ce14eb5e0cbcac7ddbd4b325563aad8c123" 1229 | integrity sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA== 1230 | dependencies: 1231 | es6-object-assign "^1.0.3" 1232 | minimist "^1.2.0" 1233 | shelljs "^0.8.1" 1234 | 1235 | signal-exit@^3.0.2: 1236 | version "3.0.3" 1237 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1238 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1239 | 1240 | source-map-support@^0.4.15: 1241 | version "0.4.18" 1242 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 1243 | integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== 1244 | dependencies: 1245 | source-map "^0.5.6" 1246 | 1247 | source-map@^0.5.6: 1248 | version "0.5.7" 1249 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1250 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1251 | 1252 | sshpk@^1.7.0: 1253 | version "1.16.1" 1254 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 1255 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 1256 | dependencies: 1257 | asn1 "~0.2.3" 1258 | assert-plus "^1.0.0" 1259 | bcrypt-pbkdf "^1.0.0" 1260 | dashdash "^1.12.0" 1261 | ecc-jsbn "~0.1.1" 1262 | getpass "^0.1.1" 1263 | jsbn "~0.1.0" 1264 | safer-buffer "^2.0.2" 1265 | tweetnacl "~0.14.0" 1266 | 1267 | stealthy-require@^1.1.1: 1268 | version "1.1.1" 1269 | resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" 1270 | integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= 1271 | 1272 | stream-browserify@^2.0.1: 1273 | version "2.0.2" 1274 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" 1275 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== 1276 | dependencies: 1277 | inherits "~2.0.1" 1278 | readable-stream "^2.0.2" 1279 | 1280 | stream-http@^2.7.2: 1281 | version "2.8.3" 1282 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 1283 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== 1284 | dependencies: 1285 | builtin-status-codes "^3.0.0" 1286 | inherits "^2.0.1" 1287 | readable-stream "^2.3.6" 1288 | to-arraybuffer "^1.0.0" 1289 | xtend "^4.0.0" 1290 | 1291 | string_decoder@^1.0.0, string_decoder@^1.1.1: 1292 | version "1.3.0" 1293 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1294 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1295 | dependencies: 1296 | safe-buffer "~5.2.0" 1297 | 1298 | string_decoder@~1.1.1: 1299 | version "1.1.1" 1300 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1301 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1302 | dependencies: 1303 | safe-buffer "~5.1.0" 1304 | 1305 | strip-ansi@^6.0.0: 1306 | version "6.0.0" 1307 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1308 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1309 | dependencies: 1310 | ansi-regex "^5.0.0" 1311 | 1312 | supports-color@^7.1.0: 1313 | version "7.1.0" 1314 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1315 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 1316 | dependencies: 1317 | has-flag "^4.0.0" 1318 | 1319 | tar@^4.4.10: 1320 | version "4.4.13" 1321 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" 1322 | integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== 1323 | dependencies: 1324 | chownr "^1.1.1" 1325 | fs-minipass "^1.2.5" 1326 | minipass "^2.8.6" 1327 | minizlib "^1.2.1" 1328 | mkdirp "^0.5.0" 1329 | safe-buffer "^5.1.2" 1330 | yallist "^3.0.3" 1331 | 1332 | timers-browserify@^2.0.4: 1333 | version "2.0.11" 1334 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" 1335 | integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== 1336 | dependencies: 1337 | setimmediate "^1.0.4" 1338 | 1339 | to-arraybuffer@^1.0.0: 1340 | version "1.0.1" 1341 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 1342 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= 1343 | 1344 | to-regex-range@^5.0.1: 1345 | version "5.0.1" 1346 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1347 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1348 | dependencies: 1349 | is-number "^7.0.0" 1350 | 1351 | tough-cookie@^2.3.3, tough-cookie@~2.5.0: 1352 | version "2.5.0" 1353 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" 1354 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 1355 | dependencies: 1356 | psl "^1.1.28" 1357 | punycode "^2.1.1" 1358 | 1359 | "traverse@>=0.3.0 <0.4": 1360 | version "0.3.9" 1361 | resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" 1362 | integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= 1363 | 1364 | tty-browserify@0.0.0: 1365 | version "0.0.0" 1366 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 1367 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= 1368 | 1369 | tunnel-agent@^0.6.0: 1370 | version "0.6.0" 1371 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1372 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 1373 | dependencies: 1374 | safe-buffer "^5.0.1" 1375 | 1376 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1377 | version "0.14.5" 1378 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1379 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 1380 | 1381 | ultron@~1.1.0: 1382 | version "1.1.1" 1383 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 1384 | integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== 1385 | 1386 | unzip-stream@^0.3.0: 1387 | version "0.3.0" 1388 | resolved "https://registry.yarnpkg.com/unzip-stream/-/unzip-stream-0.3.0.tgz#c30c054cd6b0d64b13a23cd3ece911eb0b2b52d8" 1389 | integrity sha512-NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A== 1390 | dependencies: 1391 | binary "^0.3.0" 1392 | mkdirp "^0.5.1" 1393 | 1394 | uri-js@^4.2.2: 1395 | version "4.2.2" 1396 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1397 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1398 | dependencies: 1399 | punycode "^2.1.0" 1400 | 1401 | url@^0.11.0: 1402 | version "0.11.0" 1403 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 1404 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 1405 | dependencies: 1406 | punycode "1.3.2" 1407 | querystring "0.2.0" 1408 | 1409 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 1410 | version "1.0.2" 1411 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1412 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1413 | 1414 | util@0.10.3: 1415 | version "0.10.3" 1416 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 1417 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 1418 | dependencies: 1419 | inherits "2.0.1" 1420 | 1421 | util@^0.11.0: 1422 | version "0.11.1" 1423 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" 1424 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== 1425 | dependencies: 1426 | inherits "2.0.3" 1427 | 1428 | uuid@^3.3.2: 1429 | version "3.4.0" 1430 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 1431 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 1432 | 1433 | verror@1.10.0: 1434 | version "1.10.0" 1435 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1436 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 1437 | dependencies: 1438 | assert-plus "^1.0.0" 1439 | core-util-is "1.0.2" 1440 | extsprintf "^1.2.0" 1441 | 1442 | vm-browserify@^1.0.1: 1443 | version "1.1.2" 1444 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" 1445 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== 1446 | 1447 | wcwidth@^1.0.1: 1448 | version "1.0.1" 1449 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 1450 | integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 1451 | dependencies: 1452 | defaults "^1.0.3" 1453 | 1454 | which@^1.3.1: 1455 | version "1.3.1" 1456 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1457 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1458 | dependencies: 1459 | isexe "^2.0.0" 1460 | 1461 | wrappy@1: 1462 | version "1.0.2" 1463 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1464 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1465 | 1466 | ws@^3.0.0: 1467 | version "3.3.3" 1468 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 1469 | integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== 1470 | dependencies: 1471 | async-limiter "~1.0.0" 1472 | safe-buffer "~5.1.0" 1473 | ultron "~1.1.0" 1474 | 1475 | xtend@^4.0.0: 1476 | version "4.0.2" 1477 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1478 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1479 | 1480 | yallist@^3.0.0, yallist@^3.0.3: 1481 | version "3.1.1" 1482 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1483 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1484 | 1485 | zprint-clj@^0.8.0: 1486 | version "0.8.0" 1487 | resolved "https://registry.yarnpkg.com/zprint-clj/-/zprint-clj-0.8.0.tgz#0c63a3b32fae5abbd9cd328b52c8ac4cb0c84da4" 1488 | integrity sha512-9Z9p5d6UK/rnrvX/pZ0UM3H9octsdAy+UaGr6hMSK3KXtPFFD3PIrTJ6cNXYvsWiAeFmitcYK/AQQVw/vTf1NQ== 1489 | dependencies: 1490 | commander "^2.13.0" 1491 | fast-glob "3.1.0" 1492 | --------------------------------------------------------------------------------