├── .gitignore
├── README-ja.md
├── README.md
├── package-lock.json
├── package.json
├── public
├── css
│ └── main.css
└── index.html
├── shadow-cljs.edn
└── src
└── main
└── starter
└── browser.cljs
/.gitignore:
--------------------------------------------------------------------------------
1 | /public/js
2 | /node_modules
3 | /target
4 | /.shadow-cljs
5 | /*.iml
6 | /.nrepl-port
7 | /.idea
8 |
--------------------------------------------------------------------------------
/README-ja.md:
--------------------------------------------------------------------------------
1 | # shadow-cljs - ブラウザ・クイックスタート
2 |
3 | これはブラウザ上で動作するCLJSプロジェクトで利用できる最小限のテンプレートです。
4 |
5 | ## 必要なソフトウェア
6 |
7 | - [node.js (v6.0.0+)](https://nodejs.org/en/download/)
8 | - [Java JDK (8+)](http://www.oracle.com/technetwork/java/javase/downloads/index.html) または [Open JDK (8+)](http://jdk.java.net/10/)
9 |
10 | ## ユーザーガイド
11 |
12 | このリポジトリでは、基本的なブラウザ向けのビルド方法を示します。
13 |
14 | 詳細は完全な[ユーザーガイド](https://shadow-cljs.github.io/docs/UsersGuide.html)をご参照ください。
15 |
16 |
17 | ## 例の実行
18 |
19 | ```bash
20 | git clone https://github.com/shadow-cljs/quickstart-browser.git quickstart
21 | cd quickstart
22 | npm install
23 | npx shadow-cljs server
24 | ```
25 |
26 | 以上により `shadow-cljs` サーバープロセスが実行され、以下のすべてのコマンドはこのプロセスに応答します。
27 | このプロセスを実行したまま、新しいターミナルを開いて続行してください。
28 |
29 | 最初の起動は、すべての依存関係をダウンロードして準備作業を行う必要があるため、少し時間がかかります。
30 | これが実行されると、すぐに始められます。
31 |
32 | ```txt
33 | npx shadow-cljs watch app
34 | ```
35 |
36 | これにより設定された `:app` ビルドのコンパイルが開始して、ファイルを変更するたびに再コンパイルします。
37 |
38 | "Build completed." というメッセージが表示されたら、ビルドを使用する準備が整いました。
39 |
40 | ```txt
41 | [:app] Build completed. (23 files, 4 compiled, 0 warnings, 7.41s)
42 | ```
43 |
44 | では [http://localhost:8020](http://localhost:8020)を開きましょう。
45 |
46 | このアプリは、最も便利な開発ツールが設定された基本的なスケルトンに過ぎません。
47 |
48 | `shadow-cljs` の設定は `shadow-cljs.edn` でします。次のようなものです。
49 |
50 | ```clojure
51 | ;; shadow-cljs の設定
52 | {:source-paths ; .cljs ファイルはここで指定します
53 | ["src/dev"
54 | "src/main"
55 | "src/test"]
56 |
57 | :dependencies ; 後ほど説明します
58 | []
59 |
60 | :dev-http ; http://localhost:8020 上で http 開発用サーバーを起動し、`public` をサーブします。
61 | {8020 "public"}
62 |
63 | :builds
64 | {:app ; build identifier
65 | {:target :browser
66 | :output-dir "public/js"
67 | :asset-path "/js"
68 |
69 | :modules
70 | {:main ; becomes public/js/main.js
71 | {:init-fn starter.browser/init}}}}}
72 | ```
73 |
74 | この設定では、`:target` を `:browser` に設定した `:app` ビルドを定義します。
75 | すべての出力は `public/js` に書き込まれます。
76 | これはプロジェクトのルートからの相対パスです。つまり、`shadow-cljs.edn` の設定があるディレクトリからの相対パスです。
77 |
78 | `:modules` は、出力をどのようにまとめるかを定義します。
79 | 今のところ、1つのファイルだけが必要です。
80 | `main` モジュールは `public/js/main.js` に書き込まれ、`:entrices` のコードと、それらの依存関係をすべて含みます。
81 |
82 | 最後の部分は、`http://localhost:8020` を開いたときに読み込まれる実際の `index.html` です。
83 | この index ファイルは、生成された `js/main.js` をロードして、`src/main/start/browser.cljs` で定義された `start.browser.init` を呼び出します。
84 |
85 | ```html
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | Browser Starter
94 |
95 |
96 | shadow-cljs - Browser
97 |
98 | You need to enable JavaScript to run this app.
99 |
100 |
101 |
102 | ```
103 |
104 | ## ライブリロード
105 |
106 | ライブリロードの動作を確認するには、`src/main/start/browser.cljs`を編集します。
107 | ブラウザのコンソールにいくつかの出力が表示されます。
108 |
109 | ## REPL
110 |
111 | 開発時には、REPLが非常に便利です。
112 |
113 | コマンドラインから`npx shadow-cljs cljs-repl app`を使用します。
114 |
115 | ```
116 | shadow-cljs - config .../shadow-cljs.edn
117 | shadow-cljs - connected to server
118 | cljs.user=>
119 | ```
120 |
121 | これで、ブラウザ上でコードを評価することができるようになりました(ブラウザを開いていることが前提です)。
122 | 試しに `(js/alert "Hi.")` を実行してみてください。
123 | ここでたくさんの文字を入力するつもりなら、`rlwrap npx shadow-cljs cljs-repl app`を使用するとよいでしょう。
124 |
125 | REPLを終了するには、`CTRL+C`か、`:repl/quit`と入力します。
126 |
127 | ## リリース
128 |
129 | 最初に始めた `watch` プロセスは、すべて開発のためのものです。
130 | REPLや他のすべての開発ツールに必要なコードを注入しますが、
131 | コードを「プロダクション」(つまり一般に公開すること)に投入する際には、そのようなコードは必要ありません。
132 |
133 | `release`アクションは、すべての開発コードを削除し、コードをClosure Compilerに通して、最小化された`main.js`ファイルを生成します。
134 | このファイルは `watch` で作成されたファイルを上書きするため、まず watch プロセスを停止する必要があります。
135 |
136 | `CTRL+C`で`watch`プロセスを停止し、代わりに`npx shadow-cljs release app`を実行します。
137 |
138 | `http://localhost:8020` を開くと、`release` のビルドが動作しているのを見ることができます。
139 | 通常だと、この時点で `public` ディレクトリを プロダクションの Web サーバにコピーします。
140 |
141 | デフォルトの設定では、`watch` で作成された `public/js/main.js` を上書きしていることに注意してください。
142 | リリースビルドに使用する別のパスを設定することもできますが、
143 | 出力を同じファイルに書き込むことで`index.html` を変更する必要がなくなり、すべてをそのままテストすることができます。
144 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # shadow-cljs - browser quickstart
2 |
3 | This is a minimum template you can use as the basis for CLJS projects intended to run in the browser.
4 |
5 | ## Required Software
6 |
7 | - [node.js (v6.0.0+)](https://nodejs.org/en/download/)
8 | - [Java JDK (8+)](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or [Open JDK (8+)](http://jdk.java.net/10/)
9 |
10 | ## User Guide
11 |
12 | This repository only shows a basic example of how to get a basic Browser build.
13 |
14 | Please refer to the full [User Guide](https://shadow-cljs.github.io/docs/UsersGuide.html) for more information.
15 |
16 |
17 | ## Running the Example
18 |
19 | ```bash
20 | git clone https://github.com/shadow-cljs/quickstart-browser.git quickstart
21 | cd quickstart
22 | npm install
23 | npx shadow-cljs server
24 | ```
25 |
26 | This runs the `shadow-cljs` server process which all following commands will talk to. Just leave it running and open a new terminal to continue.
27 |
28 | The first startup takes a bit of time since it has to download all the dependencies and do some prep work. Once this is running we can get started.
29 |
30 | ```txt
31 | npx shadow-cljs watch app
32 | ```
33 |
34 | This will begin the compilation of the configured `:app` build and re-compile whenever you change a file.
35 |
36 | When you see a "Build completed." message your build is ready to be used.
37 |
38 | ```txt
39 | [:app] Build completed. (23 files, 4 compiled, 0 warnings, 7.41s)
40 | ```
41 |
42 | You can now then open [http://localhost:8020](http://localhost:8020).
43 |
44 | The app is only a very basic skeleton with the most useful development tools configured.
45 |
46 | `shadow-cljs` is configured by the `shadow-cljs.edn` config. It looks like this:
47 |
48 | ```clojure
49 | ;; shadow-cljs configuration
50 | {:source-paths ; .cljs files go here
51 | ["src/dev"
52 | "src/main"
53 | "src/test"]
54 |
55 | :dependencies ; covered later
56 | []
57 |
58 | :dev-http ; starts a http dev server on http://localhost:8020 and serves `public`
59 | {8020 "public"}
60 |
61 | :builds
62 | {:app ; build identifier
63 | {:target :browser
64 | :output-dir "public/js"
65 | :asset-path "/js"
66 |
67 | :modules
68 | {:main ; becomes public/js/main.js
69 | {:init-fn starter.browser/init}}}}}
70 |
71 | ```
72 |
73 | It defines the `:app` build with the `:target` set to `:browser`. All output will be written to `public/js` which is a path relative to the project root (ie. the directory the `shadow-cljs.edn` config is in).
74 |
75 | `:modules` defines the how the output should be bundled together. For now we just want one file. The `:main` module will be written to `public/js/main.js`, it will include the code from the `:entries` and all their dependencies.
76 |
77 | The last part is the actual `index.html` that is loaded when you open `http://localhost:8020`. It loads the generated `/js/main.js` and then calls `start.browser.init` which we defined in the `src/main/start/browser.cljs`.
78 |
79 | ```html
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | Browser Starter
88 |
89 |
90 | shadow-cljs - Browser
91 |
92 | You need to enable JavaScript to run this app.
93 |
94 |
95 |
96 | ```
97 |
98 | ## Live reload
99 |
100 | To see the live reload in action you can edit the `src/main/start/browser.cljs`. Some output will be printed in the browser console.
101 |
102 | ## REPL
103 |
104 | During development it the REPL is very useful.
105 |
106 | From the command line use `npx shadow-cljs cljs-repl app`.
107 |
108 | ```
109 | shadow-cljs - config .../shadow-cljs.edn
110 | shadow-cljs - connected to server
111 | cljs.user=>
112 | ```
113 |
114 | This can now be used to eval code in the browser (assuming you still have it open). Try `(js/alert "Hi.")` and take it from there. You might want to use `rlwrap npx shadow-cljs cljs-repl app` if you intend to type a lot here.
115 |
116 | You can exit the REPL by either `CTRL+C` or typing `:repl/quit`.
117 |
118 | ## Release
119 |
120 | The `watch` process we started is all about development. It injects the code required for the REPL and the all other devtools but we do not want any of that when putting the code into "production" (ie. making it available publicly).
121 |
122 | The `release` action will remove all development code and run the code through the Closure Compiler to produce a minified `main.js` file. Since that will overwrite the file created by the `watch` we first need to stop that.
123 |
124 | Use `CTRL+C` to stop the `watch` process and instead run `npx shadow-cljs release app`.
125 |
126 | When done you can open `http://localhost:8020` and see the `release` build in action. At this point you would usually copy the `public` directory to the "production" web server.
127 |
128 | Note that in the default config we overwrote the `public/js/main.js` created by the `watch`. You can also configure a different path to use for release builds but writing the output to the same file means we do not have to change the `index.html` and test everything as is.
129 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "quickstart-browser",
3 | "lockfileVersion": 2,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "devDependencies": {
8 | "shadow-cljs": "^2.26.2"
9 | }
10 | },
11 | "node_modules/asn1.js": {
12 | "version": "5.4.1",
13 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
14 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
15 | "dev": true,
16 | "dependencies": {
17 | "bn.js": "^4.0.0",
18 | "inherits": "^2.0.1",
19 | "minimalistic-assert": "^1.0.0",
20 | "safer-buffer": "^2.1.0"
21 | }
22 | },
23 | "node_modules/asn1.js/node_modules/bn.js": {
24 | "version": "4.12.0",
25 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
26 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
27 | "dev": true
28 | },
29 | "node_modules/assert": {
30 | "version": "1.5.0",
31 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
32 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
33 | "dev": true,
34 | "dependencies": {
35 | "object-assign": "^4.1.1",
36 | "util": "0.10.3"
37 | }
38 | },
39 | "node_modules/assert/node_modules/inherits": {
40 | "version": "2.0.1",
41 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
42 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
43 | "dev": true
44 | },
45 | "node_modules/assert/node_modules/util": {
46 | "version": "0.10.3",
47 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
48 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
49 | "dev": true,
50 | "dependencies": {
51 | "inherits": "2.0.1"
52 | }
53 | },
54 | "node_modules/base64-js": {
55 | "version": "1.5.1",
56 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
57 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
58 | "dev": true,
59 | "funding": [
60 | {
61 | "type": "github",
62 | "url": "https://github.com/sponsors/feross"
63 | },
64 | {
65 | "type": "patreon",
66 | "url": "https://www.patreon.com/feross"
67 | },
68 | {
69 | "type": "consulting",
70 | "url": "https://feross.org/support"
71 | }
72 | ]
73 | },
74 | "node_modules/bn.js": {
75 | "version": "5.2.0",
76 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
77 | "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
78 | "dev": true
79 | },
80 | "node_modules/brorand": {
81 | "version": "1.1.0",
82 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
83 | "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
84 | "dev": true
85 | },
86 | "node_modules/browserify-aes": {
87 | "version": "1.2.0",
88 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
89 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
90 | "dev": true,
91 | "dependencies": {
92 | "buffer-xor": "^1.0.3",
93 | "cipher-base": "^1.0.0",
94 | "create-hash": "^1.1.0",
95 | "evp_bytestokey": "^1.0.3",
96 | "inherits": "^2.0.1",
97 | "safe-buffer": "^5.0.1"
98 | }
99 | },
100 | "node_modules/browserify-cipher": {
101 | "version": "1.0.1",
102 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
103 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
104 | "dev": true,
105 | "dependencies": {
106 | "browserify-aes": "^1.0.4",
107 | "browserify-des": "^1.0.0",
108 | "evp_bytestokey": "^1.0.0"
109 | }
110 | },
111 | "node_modules/browserify-des": {
112 | "version": "1.0.2",
113 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
114 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
115 | "dev": true,
116 | "dependencies": {
117 | "cipher-base": "^1.0.1",
118 | "des.js": "^1.0.0",
119 | "inherits": "^2.0.1",
120 | "safe-buffer": "^5.1.2"
121 | }
122 | },
123 | "node_modules/browserify-rsa": {
124 | "version": "4.1.0",
125 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
126 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
127 | "dev": true,
128 | "dependencies": {
129 | "bn.js": "^5.0.0",
130 | "randombytes": "^2.0.1"
131 | }
132 | },
133 | "node_modules/browserify-sign": {
134 | "version": "4.2.1",
135 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
136 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
137 | "dev": true,
138 | "dependencies": {
139 | "bn.js": "^5.1.1",
140 | "browserify-rsa": "^4.0.1",
141 | "create-hash": "^1.2.0",
142 | "create-hmac": "^1.1.7",
143 | "elliptic": "^6.5.3",
144 | "inherits": "^2.0.4",
145 | "parse-asn1": "^5.1.5",
146 | "readable-stream": "^3.6.0",
147 | "safe-buffer": "^5.2.0"
148 | }
149 | },
150 | "node_modules/browserify-sign/node_modules/readable-stream": {
151 | "version": "3.6.0",
152 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
153 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
154 | "dev": true,
155 | "dependencies": {
156 | "inherits": "^2.0.3",
157 | "string_decoder": "^1.1.1",
158 | "util-deprecate": "^1.0.1"
159 | },
160 | "engines": {
161 | "node": ">= 6"
162 | }
163 | },
164 | "node_modules/browserify-zlib": {
165 | "version": "0.2.0",
166 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
167 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
168 | "dev": true,
169 | "dependencies": {
170 | "pako": "~1.0.5"
171 | }
172 | },
173 | "node_modules/buffer": {
174 | "version": "4.9.2",
175 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
176 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
177 | "dev": true,
178 | "dependencies": {
179 | "base64-js": "^1.0.2",
180 | "ieee754": "^1.1.4",
181 | "isarray": "^1.0.0"
182 | }
183 | },
184 | "node_modules/buffer-xor": {
185 | "version": "1.0.3",
186 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
187 | "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
188 | "dev": true
189 | },
190 | "node_modules/builtin-status-codes": {
191 | "version": "3.0.0",
192 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
193 | "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
194 | "dev": true
195 | },
196 | "node_modules/cipher-base": {
197 | "version": "1.0.4",
198 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
199 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
200 | "dev": true,
201 | "dependencies": {
202 | "inherits": "^2.0.1",
203 | "safe-buffer": "^5.0.1"
204 | }
205 | },
206 | "node_modules/console-browserify": {
207 | "version": "1.2.0",
208 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
209 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
210 | "dev": true
211 | },
212 | "node_modules/constants-browserify": {
213 | "version": "1.0.0",
214 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
215 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
216 | "dev": true
217 | },
218 | "node_modules/core-util-is": {
219 | "version": "1.0.3",
220 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
221 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
222 | "dev": true
223 | },
224 | "node_modules/create-ecdh": {
225 | "version": "4.0.4",
226 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
227 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
228 | "dev": true,
229 | "dependencies": {
230 | "bn.js": "^4.1.0",
231 | "elliptic": "^6.5.3"
232 | }
233 | },
234 | "node_modules/create-ecdh/node_modules/bn.js": {
235 | "version": "4.12.0",
236 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
237 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
238 | "dev": true
239 | },
240 | "node_modules/create-hash": {
241 | "version": "1.2.0",
242 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
243 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
244 | "dev": true,
245 | "dependencies": {
246 | "cipher-base": "^1.0.1",
247 | "inherits": "^2.0.1",
248 | "md5.js": "^1.3.4",
249 | "ripemd160": "^2.0.1",
250 | "sha.js": "^2.4.0"
251 | }
252 | },
253 | "node_modules/create-hmac": {
254 | "version": "1.1.7",
255 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
256 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
257 | "dev": true,
258 | "dependencies": {
259 | "cipher-base": "^1.0.3",
260 | "create-hash": "^1.1.0",
261 | "inherits": "^2.0.1",
262 | "ripemd160": "^2.0.0",
263 | "safe-buffer": "^5.0.1",
264 | "sha.js": "^2.4.8"
265 | }
266 | },
267 | "node_modules/crypto-browserify": {
268 | "version": "3.12.0",
269 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
270 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
271 | "dev": true,
272 | "dependencies": {
273 | "browserify-cipher": "^1.0.0",
274 | "browserify-sign": "^4.0.0",
275 | "create-ecdh": "^4.0.0",
276 | "create-hash": "^1.1.0",
277 | "create-hmac": "^1.1.0",
278 | "diffie-hellman": "^5.0.0",
279 | "inherits": "^2.0.1",
280 | "pbkdf2": "^3.0.3",
281 | "public-encrypt": "^4.0.0",
282 | "randombytes": "^2.0.0",
283 | "randomfill": "^1.0.3"
284 | },
285 | "engines": {
286 | "node": "*"
287 | }
288 | },
289 | "node_modules/des.js": {
290 | "version": "1.0.1",
291 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
292 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
293 | "dev": true,
294 | "dependencies": {
295 | "inherits": "^2.0.1",
296 | "minimalistic-assert": "^1.0.0"
297 | }
298 | },
299 | "node_modules/diffie-hellman": {
300 | "version": "5.0.3",
301 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
302 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
303 | "dev": true,
304 | "dependencies": {
305 | "bn.js": "^4.1.0",
306 | "miller-rabin": "^4.0.0",
307 | "randombytes": "^2.0.0"
308 | }
309 | },
310 | "node_modules/diffie-hellman/node_modules/bn.js": {
311 | "version": "4.12.0",
312 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
313 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
314 | "dev": true
315 | },
316 | "node_modules/domain-browser": {
317 | "version": "1.2.0",
318 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
319 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
320 | "dev": true,
321 | "engines": {
322 | "node": ">=0.4",
323 | "npm": ">=1.2"
324 | }
325 | },
326 | "node_modules/elliptic": {
327 | "version": "6.5.4",
328 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
329 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
330 | "dev": true,
331 | "dependencies": {
332 | "bn.js": "^4.11.9",
333 | "brorand": "^1.1.0",
334 | "hash.js": "^1.0.0",
335 | "hmac-drbg": "^1.0.1",
336 | "inherits": "^2.0.4",
337 | "minimalistic-assert": "^1.0.1",
338 | "minimalistic-crypto-utils": "^1.0.1"
339 | }
340 | },
341 | "node_modules/elliptic/node_modules/bn.js": {
342 | "version": "4.12.0",
343 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
344 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
345 | "dev": true
346 | },
347 | "node_modules/events": {
348 | "version": "3.3.0",
349 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
350 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
351 | "dev": true,
352 | "engines": {
353 | "node": ">=0.8.x"
354 | }
355 | },
356 | "node_modules/evp_bytestokey": {
357 | "version": "1.0.3",
358 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
359 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
360 | "dev": true,
361 | "dependencies": {
362 | "md5.js": "^1.3.4",
363 | "safe-buffer": "^5.1.1"
364 | }
365 | },
366 | "node_modules/hash-base": {
367 | "version": "3.1.0",
368 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
369 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
370 | "dev": true,
371 | "dependencies": {
372 | "inherits": "^2.0.4",
373 | "readable-stream": "^3.6.0",
374 | "safe-buffer": "^5.2.0"
375 | },
376 | "engines": {
377 | "node": ">=4"
378 | }
379 | },
380 | "node_modules/hash-base/node_modules/readable-stream": {
381 | "version": "3.6.0",
382 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
383 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
384 | "dev": true,
385 | "dependencies": {
386 | "inherits": "^2.0.3",
387 | "string_decoder": "^1.1.1",
388 | "util-deprecate": "^1.0.1"
389 | },
390 | "engines": {
391 | "node": ">= 6"
392 | }
393 | },
394 | "node_modules/hash.js": {
395 | "version": "1.1.7",
396 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
397 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
398 | "dev": true,
399 | "dependencies": {
400 | "inherits": "^2.0.3",
401 | "minimalistic-assert": "^1.0.1"
402 | }
403 | },
404 | "node_modules/hmac-drbg": {
405 | "version": "1.0.1",
406 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
407 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
408 | "dev": true,
409 | "dependencies": {
410 | "hash.js": "^1.0.3",
411 | "minimalistic-assert": "^1.0.0",
412 | "minimalistic-crypto-utils": "^1.0.1"
413 | }
414 | },
415 | "node_modules/https-browserify": {
416 | "version": "1.0.0",
417 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
418 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
419 | "dev": true
420 | },
421 | "node_modules/ieee754": {
422 | "version": "1.2.1",
423 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
424 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
425 | "dev": true,
426 | "funding": [
427 | {
428 | "type": "github",
429 | "url": "https://github.com/sponsors/feross"
430 | },
431 | {
432 | "type": "patreon",
433 | "url": "https://www.patreon.com/feross"
434 | },
435 | {
436 | "type": "consulting",
437 | "url": "https://feross.org/support"
438 | }
439 | ]
440 | },
441 | "node_modules/inherits": {
442 | "version": "2.0.4",
443 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
444 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
445 | "dev": true
446 | },
447 | "node_modules/isarray": {
448 | "version": "1.0.0",
449 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
450 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
451 | "dev": true
452 | },
453 | "node_modules/isexe": {
454 | "version": "2.0.0",
455 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
456 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
457 | "dev": true
458 | },
459 | "node_modules/md5.js": {
460 | "version": "1.3.5",
461 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
462 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
463 | "dev": true,
464 | "dependencies": {
465 | "hash-base": "^3.0.0",
466 | "inherits": "^2.0.1",
467 | "safe-buffer": "^5.1.2"
468 | }
469 | },
470 | "node_modules/miller-rabin": {
471 | "version": "4.0.1",
472 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
473 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
474 | "dev": true,
475 | "dependencies": {
476 | "bn.js": "^4.0.0",
477 | "brorand": "^1.0.1"
478 | },
479 | "bin": {
480 | "miller-rabin": "bin/miller-rabin"
481 | }
482 | },
483 | "node_modules/miller-rabin/node_modules/bn.js": {
484 | "version": "4.12.0",
485 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
486 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
487 | "dev": true
488 | },
489 | "node_modules/minimalistic-assert": {
490 | "version": "1.0.1",
491 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
492 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
493 | "dev": true
494 | },
495 | "node_modules/minimalistic-crypto-utils": {
496 | "version": "1.0.1",
497 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
498 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
499 | "dev": true
500 | },
501 | "node_modules/node-libs-browser": {
502 | "version": "2.2.1",
503 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
504 | "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
505 | "dev": true,
506 | "dependencies": {
507 | "assert": "^1.1.1",
508 | "browserify-zlib": "^0.2.0",
509 | "buffer": "^4.3.0",
510 | "console-browserify": "^1.1.0",
511 | "constants-browserify": "^1.0.0",
512 | "crypto-browserify": "^3.11.0",
513 | "domain-browser": "^1.1.1",
514 | "events": "^3.0.0",
515 | "https-browserify": "^1.0.0",
516 | "os-browserify": "^0.3.0",
517 | "path-browserify": "0.0.1",
518 | "process": "^0.11.10",
519 | "punycode": "^1.2.4",
520 | "querystring-es3": "^0.2.0",
521 | "readable-stream": "^2.3.3",
522 | "stream-browserify": "^2.0.1",
523 | "stream-http": "^2.7.2",
524 | "string_decoder": "^1.0.0",
525 | "timers-browserify": "^2.0.4",
526 | "tty-browserify": "0.0.0",
527 | "url": "^0.11.0",
528 | "util": "^0.11.0",
529 | "vm-browserify": "^1.0.1"
530 | }
531 | },
532 | "node_modules/object-assign": {
533 | "version": "4.1.1",
534 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
535 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
536 | "dev": true,
537 | "engines": {
538 | "node": ">=0.10.0"
539 | }
540 | },
541 | "node_modules/os-browserify": {
542 | "version": "0.3.0",
543 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
544 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
545 | "dev": true
546 | },
547 | "node_modules/pako": {
548 | "version": "1.0.11",
549 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
550 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
551 | "dev": true
552 | },
553 | "node_modules/parse-asn1": {
554 | "version": "5.1.6",
555 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
556 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
557 | "dev": true,
558 | "dependencies": {
559 | "asn1.js": "^5.2.0",
560 | "browserify-aes": "^1.0.0",
561 | "evp_bytestokey": "^1.0.0",
562 | "pbkdf2": "^3.0.3",
563 | "safe-buffer": "^5.1.1"
564 | }
565 | },
566 | "node_modules/path-browserify": {
567 | "version": "0.0.1",
568 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
569 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
570 | "dev": true
571 | },
572 | "node_modules/pbkdf2": {
573 | "version": "3.1.2",
574 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
575 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
576 | "dev": true,
577 | "dependencies": {
578 | "create-hash": "^1.1.2",
579 | "create-hmac": "^1.1.4",
580 | "ripemd160": "^2.0.1",
581 | "safe-buffer": "^5.0.1",
582 | "sha.js": "^2.4.8"
583 | },
584 | "engines": {
585 | "node": ">=0.12"
586 | }
587 | },
588 | "node_modules/process": {
589 | "version": "0.11.10",
590 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
591 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
592 | "dev": true,
593 | "engines": {
594 | "node": ">= 0.6.0"
595 | }
596 | },
597 | "node_modules/process-nextick-args": {
598 | "version": "2.0.1",
599 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
600 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
601 | "dev": true
602 | },
603 | "node_modules/public-encrypt": {
604 | "version": "4.0.3",
605 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
606 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
607 | "dev": true,
608 | "dependencies": {
609 | "bn.js": "^4.1.0",
610 | "browserify-rsa": "^4.0.0",
611 | "create-hash": "^1.1.0",
612 | "parse-asn1": "^5.0.0",
613 | "randombytes": "^2.0.1",
614 | "safe-buffer": "^5.1.2"
615 | }
616 | },
617 | "node_modules/public-encrypt/node_modules/bn.js": {
618 | "version": "4.12.0",
619 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
620 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
621 | "dev": true
622 | },
623 | "node_modules/punycode": {
624 | "version": "1.4.1",
625 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
626 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
627 | "dev": true
628 | },
629 | "node_modules/querystring": {
630 | "version": "0.2.0",
631 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
632 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
633 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
634 | "dev": true,
635 | "engines": {
636 | "node": ">=0.4.x"
637 | }
638 | },
639 | "node_modules/querystring-es3": {
640 | "version": "0.2.1",
641 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
642 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
643 | "dev": true,
644 | "engines": {
645 | "node": ">=0.4.x"
646 | }
647 | },
648 | "node_modules/randombytes": {
649 | "version": "2.1.0",
650 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
651 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
652 | "dev": true,
653 | "dependencies": {
654 | "safe-buffer": "^5.1.0"
655 | }
656 | },
657 | "node_modules/randomfill": {
658 | "version": "1.0.4",
659 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
660 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
661 | "dev": true,
662 | "dependencies": {
663 | "randombytes": "^2.0.5",
664 | "safe-buffer": "^5.1.0"
665 | }
666 | },
667 | "node_modules/readable-stream": {
668 | "version": "2.3.7",
669 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
670 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
671 | "dev": true,
672 | "dependencies": {
673 | "core-util-is": "~1.0.0",
674 | "inherits": "~2.0.3",
675 | "isarray": "~1.0.0",
676 | "process-nextick-args": "~2.0.0",
677 | "safe-buffer": "~5.1.1",
678 | "string_decoder": "~1.1.1",
679 | "util-deprecate": "~1.0.1"
680 | }
681 | },
682 | "node_modules/readable-stream/node_modules/safe-buffer": {
683 | "version": "5.1.2",
684 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
685 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
686 | "dev": true
687 | },
688 | "node_modules/readable-stream/node_modules/string_decoder": {
689 | "version": "1.1.1",
690 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
691 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
692 | "dev": true,
693 | "dependencies": {
694 | "safe-buffer": "~5.1.0"
695 | }
696 | },
697 | "node_modules/readline-sync": {
698 | "version": "1.4.10",
699 | "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
700 | "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==",
701 | "dev": true,
702 | "engines": {
703 | "node": ">= 0.8.0"
704 | }
705 | },
706 | "node_modules/ripemd160": {
707 | "version": "2.0.2",
708 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
709 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
710 | "dev": true,
711 | "dependencies": {
712 | "hash-base": "^3.0.0",
713 | "inherits": "^2.0.1"
714 | }
715 | },
716 | "node_modules/safe-buffer": {
717 | "version": "5.2.1",
718 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
719 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
720 | "dev": true,
721 | "funding": [
722 | {
723 | "type": "github",
724 | "url": "https://github.com/sponsors/feross"
725 | },
726 | {
727 | "type": "patreon",
728 | "url": "https://www.patreon.com/feross"
729 | },
730 | {
731 | "type": "consulting",
732 | "url": "https://feross.org/support"
733 | }
734 | ]
735 | },
736 | "node_modules/safer-buffer": {
737 | "version": "2.1.2",
738 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
739 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
740 | "dev": true
741 | },
742 | "node_modules/setimmediate": {
743 | "version": "1.0.5",
744 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
745 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
746 | "dev": true
747 | },
748 | "node_modules/sha.js": {
749 | "version": "2.4.11",
750 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
751 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
752 | "dev": true,
753 | "dependencies": {
754 | "inherits": "^2.0.1",
755 | "safe-buffer": "^5.0.1"
756 | },
757 | "bin": {
758 | "sha.js": "bin.js"
759 | }
760 | },
761 | "node_modules/shadow-cljs": {
762 | "version": "2.26.2",
763 | "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.26.2.tgz",
764 | "integrity": "sha512-xBJxBxSpfoVQLSDA+WN+ZgtnyA5qYf3EE4ARZpov0JOz0YBTdIQajnNYMs5+5OzCbbNfhWGLybyu/Pj4dIwsWw==",
765 | "dev": true,
766 | "dependencies": {
767 | "node-libs-browser": "^2.2.1",
768 | "readline-sync": "^1.4.7",
769 | "shadow-cljs-jar": "1.3.4",
770 | "source-map-support": "^0.4.15",
771 | "which": "^1.3.1",
772 | "ws": "^7.4.6"
773 | },
774 | "bin": {
775 | "shadow-cljs": "cli/runner.js"
776 | },
777 | "engines": {
778 | "node": ">=6.0.0"
779 | }
780 | },
781 | "node_modules/shadow-cljs-jar": {
782 | "version": "1.3.4",
783 | "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.4.tgz",
784 | "integrity": "sha512-cZB2pzVXBnhpJ6PQdsjO+j/MksR28mv4QD/hP/2y1fsIa9Z9RutYgh3N34FZ8Ktl4puAXaIGlct+gMCJ5BmwmA==",
785 | "dev": true
786 | },
787 | "node_modules/source-map": {
788 | "version": "0.5.7",
789 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
790 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
791 | "dev": true,
792 | "engines": {
793 | "node": ">=0.10.0"
794 | }
795 | },
796 | "node_modules/source-map-support": {
797 | "version": "0.4.18",
798 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
799 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
800 | "dev": true,
801 | "dependencies": {
802 | "source-map": "^0.5.6"
803 | }
804 | },
805 | "node_modules/stream-browserify": {
806 | "version": "2.0.2",
807 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
808 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
809 | "dev": true,
810 | "dependencies": {
811 | "inherits": "~2.0.1",
812 | "readable-stream": "^2.0.2"
813 | }
814 | },
815 | "node_modules/stream-http": {
816 | "version": "2.8.3",
817 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
818 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
819 | "dev": true,
820 | "dependencies": {
821 | "builtin-status-codes": "^3.0.0",
822 | "inherits": "^2.0.1",
823 | "readable-stream": "^2.3.6",
824 | "to-arraybuffer": "^1.0.0",
825 | "xtend": "^4.0.0"
826 | }
827 | },
828 | "node_modules/string_decoder": {
829 | "version": "1.3.0",
830 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
831 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
832 | "dev": true,
833 | "dependencies": {
834 | "safe-buffer": "~5.2.0"
835 | }
836 | },
837 | "node_modules/timers-browserify": {
838 | "version": "2.0.12",
839 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
840 | "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
841 | "dev": true,
842 | "dependencies": {
843 | "setimmediate": "^1.0.4"
844 | },
845 | "engines": {
846 | "node": ">=0.6.0"
847 | }
848 | },
849 | "node_modules/to-arraybuffer": {
850 | "version": "1.0.1",
851 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
852 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
853 | "dev": true
854 | },
855 | "node_modules/tty-browserify": {
856 | "version": "0.0.0",
857 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
858 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
859 | "dev": true
860 | },
861 | "node_modules/url": {
862 | "version": "0.11.0",
863 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
864 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
865 | "dev": true,
866 | "dependencies": {
867 | "punycode": "1.3.2",
868 | "querystring": "0.2.0"
869 | }
870 | },
871 | "node_modules/url/node_modules/punycode": {
872 | "version": "1.3.2",
873 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
874 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
875 | "dev": true
876 | },
877 | "node_modules/util": {
878 | "version": "0.11.1",
879 | "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
880 | "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
881 | "dev": true,
882 | "dependencies": {
883 | "inherits": "2.0.3"
884 | }
885 | },
886 | "node_modules/util-deprecate": {
887 | "version": "1.0.2",
888 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
889 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
890 | "dev": true
891 | },
892 | "node_modules/util/node_modules/inherits": {
893 | "version": "2.0.3",
894 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
895 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
896 | "dev": true
897 | },
898 | "node_modules/vm-browserify": {
899 | "version": "1.1.2",
900 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
901 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
902 | "dev": true
903 | },
904 | "node_modules/which": {
905 | "version": "1.3.1",
906 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
907 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
908 | "dev": true,
909 | "dependencies": {
910 | "isexe": "^2.0.0"
911 | },
912 | "bin": {
913 | "which": "bin/which"
914 | }
915 | },
916 | "node_modules/ws": {
917 | "version": "7.5.7",
918 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
919 | "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
920 | "dev": true,
921 | "engines": {
922 | "node": ">=8.3.0"
923 | },
924 | "peerDependencies": {
925 | "bufferutil": "^4.0.1",
926 | "utf-8-validate": "^5.0.2"
927 | },
928 | "peerDependenciesMeta": {
929 | "bufferutil": {
930 | "optional": true
931 | },
932 | "utf-8-validate": {
933 | "optional": true
934 | }
935 | }
936 | },
937 | "node_modules/xtend": {
938 | "version": "4.0.2",
939 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
940 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
941 | "dev": true,
942 | "engines": {
943 | "node": ">=0.4"
944 | }
945 | }
946 | },
947 | "dependencies": {
948 | "asn1.js": {
949 | "version": "5.4.1",
950 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
951 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
952 | "dev": true,
953 | "requires": {
954 | "bn.js": "^4.0.0",
955 | "inherits": "^2.0.1",
956 | "minimalistic-assert": "^1.0.0",
957 | "safer-buffer": "^2.1.0"
958 | },
959 | "dependencies": {
960 | "bn.js": {
961 | "version": "4.12.0",
962 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
963 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
964 | "dev": true
965 | }
966 | }
967 | },
968 | "assert": {
969 | "version": "1.5.0",
970 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
971 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
972 | "dev": true,
973 | "requires": {
974 | "object-assign": "^4.1.1",
975 | "util": "0.10.3"
976 | },
977 | "dependencies": {
978 | "inherits": {
979 | "version": "2.0.1",
980 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
981 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
982 | "dev": true
983 | },
984 | "util": {
985 | "version": "0.10.3",
986 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
987 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
988 | "dev": true,
989 | "requires": {
990 | "inherits": "2.0.1"
991 | }
992 | }
993 | }
994 | },
995 | "base64-js": {
996 | "version": "1.5.1",
997 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
998 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
999 | "dev": true
1000 | },
1001 | "bn.js": {
1002 | "version": "5.2.0",
1003 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
1004 | "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
1005 | "dev": true
1006 | },
1007 | "brorand": {
1008 | "version": "1.1.0",
1009 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
1010 | "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
1011 | "dev": true
1012 | },
1013 | "browserify-aes": {
1014 | "version": "1.2.0",
1015 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
1016 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
1017 | "dev": true,
1018 | "requires": {
1019 | "buffer-xor": "^1.0.3",
1020 | "cipher-base": "^1.0.0",
1021 | "create-hash": "^1.1.0",
1022 | "evp_bytestokey": "^1.0.3",
1023 | "inherits": "^2.0.1",
1024 | "safe-buffer": "^5.0.1"
1025 | }
1026 | },
1027 | "browserify-cipher": {
1028 | "version": "1.0.1",
1029 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
1030 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
1031 | "dev": true,
1032 | "requires": {
1033 | "browserify-aes": "^1.0.4",
1034 | "browserify-des": "^1.0.0",
1035 | "evp_bytestokey": "^1.0.0"
1036 | }
1037 | },
1038 | "browserify-des": {
1039 | "version": "1.0.2",
1040 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
1041 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
1042 | "dev": true,
1043 | "requires": {
1044 | "cipher-base": "^1.0.1",
1045 | "des.js": "^1.0.0",
1046 | "inherits": "^2.0.1",
1047 | "safe-buffer": "^5.1.2"
1048 | }
1049 | },
1050 | "browserify-rsa": {
1051 | "version": "4.1.0",
1052 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
1053 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
1054 | "dev": true,
1055 | "requires": {
1056 | "bn.js": "^5.0.0",
1057 | "randombytes": "^2.0.1"
1058 | }
1059 | },
1060 | "browserify-sign": {
1061 | "version": "4.2.1",
1062 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
1063 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
1064 | "dev": true,
1065 | "requires": {
1066 | "bn.js": "^5.1.1",
1067 | "browserify-rsa": "^4.0.1",
1068 | "create-hash": "^1.2.0",
1069 | "create-hmac": "^1.1.7",
1070 | "elliptic": "^6.5.3",
1071 | "inherits": "^2.0.4",
1072 | "parse-asn1": "^5.1.5",
1073 | "readable-stream": "^3.6.0",
1074 | "safe-buffer": "^5.2.0"
1075 | },
1076 | "dependencies": {
1077 | "readable-stream": {
1078 | "version": "3.6.0",
1079 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1080 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1081 | "dev": true,
1082 | "requires": {
1083 | "inherits": "^2.0.3",
1084 | "string_decoder": "^1.1.1",
1085 | "util-deprecate": "^1.0.1"
1086 | }
1087 | }
1088 | }
1089 | },
1090 | "browserify-zlib": {
1091 | "version": "0.2.0",
1092 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
1093 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
1094 | "dev": true,
1095 | "requires": {
1096 | "pako": "~1.0.5"
1097 | }
1098 | },
1099 | "buffer": {
1100 | "version": "4.9.2",
1101 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
1102 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
1103 | "dev": true,
1104 | "requires": {
1105 | "base64-js": "^1.0.2",
1106 | "ieee754": "^1.1.4",
1107 | "isarray": "^1.0.0"
1108 | }
1109 | },
1110 | "buffer-xor": {
1111 | "version": "1.0.3",
1112 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
1113 | "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
1114 | "dev": true
1115 | },
1116 | "builtin-status-codes": {
1117 | "version": "3.0.0",
1118 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
1119 | "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
1120 | "dev": true
1121 | },
1122 | "cipher-base": {
1123 | "version": "1.0.4",
1124 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
1125 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
1126 | "dev": true,
1127 | "requires": {
1128 | "inherits": "^2.0.1",
1129 | "safe-buffer": "^5.0.1"
1130 | }
1131 | },
1132 | "console-browserify": {
1133 | "version": "1.2.0",
1134 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
1135 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
1136 | "dev": true
1137 | },
1138 | "constants-browserify": {
1139 | "version": "1.0.0",
1140 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
1141 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
1142 | "dev": true
1143 | },
1144 | "core-util-is": {
1145 | "version": "1.0.3",
1146 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
1147 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
1148 | "dev": true
1149 | },
1150 | "create-ecdh": {
1151 | "version": "4.0.4",
1152 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
1153 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
1154 | "dev": true,
1155 | "requires": {
1156 | "bn.js": "^4.1.0",
1157 | "elliptic": "^6.5.3"
1158 | },
1159 | "dependencies": {
1160 | "bn.js": {
1161 | "version": "4.12.0",
1162 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1163 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1164 | "dev": true
1165 | }
1166 | }
1167 | },
1168 | "create-hash": {
1169 | "version": "1.2.0",
1170 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
1171 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
1172 | "dev": true,
1173 | "requires": {
1174 | "cipher-base": "^1.0.1",
1175 | "inherits": "^2.0.1",
1176 | "md5.js": "^1.3.4",
1177 | "ripemd160": "^2.0.1",
1178 | "sha.js": "^2.4.0"
1179 | }
1180 | },
1181 | "create-hmac": {
1182 | "version": "1.1.7",
1183 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
1184 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
1185 | "dev": true,
1186 | "requires": {
1187 | "cipher-base": "^1.0.3",
1188 | "create-hash": "^1.1.0",
1189 | "inherits": "^2.0.1",
1190 | "ripemd160": "^2.0.0",
1191 | "safe-buffer": "^5.0.1",
1192 | "sha.js": "^2.4.8"
1193 | }
1194 | },
1195 | "crypto-browserify": {
1196 | "version": "3.12.0",
1197 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
1198 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
1199 | "dev": true,
1200 | "requires": {
1201 | "browserify-cipher": "^1.0.0",
1202 | "browserify-sign": "^4.0.0",
1203 | "create-ecdh": "^4.0.0",
1204 | "create-hash": "^1.1.0",
1205 | "create-hmac": "^1.1.0",
1206 | "diffie-hellman": "^5.0.0",
1207 | "inherits": "^2.0.1",
1208 | "pbkdf2": "^3.0.3",
1209 | "public-encrypt": "^4.0.0",
1210 | "randombytes": "^2.0.0",
1211 | "randomfill": "^1.0.3"
1212 | }
1213 | },
1214 | "des.js": {
1215 | "version": "1.0.1",
1216 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
1217 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
1218 | "dev": true,
1219 | "requires": {
1220 | "inherits": "^2.0.1",
1221 | "minimalistic-assert": "^1.0.0"
1222 | }
1223 | },
1224 | "diffie-hellman": {
1225 | "version": "5.0.3",
1226 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
1227 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
1228 | "dev": true,
1229 | "requires": {
1230 | "bn.js": "^4.1.0",
1231 | "miller-rabin": "^4.0.0",
1232 | "randombytes": "^2.0.0"
1233 | },
1234 | "dependencies": {
1235 | "bn.js": {
1236 | "version": "4.12.0",
1237 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1238 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1239 | "dev": true
1240 | }
1241 | }
1242 | },
1243 | "domain-browser": {
1244 | "version": "1.2.0",
1245 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
1246 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
1247 | "dev": true
1248 | },
1249 | "elliptic": {
1250 | "version": "6.5.4",
1251 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
1252 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
1253 | "dev": true,
1254 | "requires": {
1255 | "bn.js": "^4.11.9",
1256 | "brorand": "^1.1.0",
1257 | "hash.js": "^1.0.0",
1258 | "hmac-drbg": "^1.0.1",
1259 | "inherits": "^2.0.4",
1260 | "minimalistic-assert": "^1.0.1",
1261 | "minimalistic-crypto-utils": "^1.0.1"
1262 | },
1263 | "dependencies": {
1264 | "bn.js": {
1265 | "version": "4.12.0",
1266 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1267 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1268 | "dev": true
1269 | }
1270 | }
1271 | },
1272 | "events": {
1273 | "version": "3.3.0",
1274 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
1275 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
1276 | "dev": true
1277 | },
1278 | "evp_bytestokey": {
1279 | "version": "1.0.3",
1280 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
1281 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
1282 | "dev": true,
1283 | "requires": {
1284 | "md5.js": "^1.3.4",
1285 | "safe-buffer": "^5.1.1"
1286 | }
1287 | },
1288 | "hash-base": {
1289 | "version": "3.1.0",
1290 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
1291 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
1292 | "dev": true,
1293 | "requires": {
1294 | "inherits": "^2.0.4",
1295 | "readable-stream": "^3.6.0",
1296 | "safe-buffer": "^5.2.0"
1297 | },
1298 | "dependencies": {
1299 | "readable-stream": {
1300 | "version": "3.6.0",
1301 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1302 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1303 | "dev": true,
1304 | "requires": {
1305 | "inherits": "^2.0.3",
1306 | "string_decoder": "^1.1.1",
1307 | "util-deprecate": "^1.0.1"
1308 | }
1309 | }
1310 | }
1311 | },
1312 | "hash.js": {
1313 | "version": "1.1.7",
1314 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
1315 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
1316 | "dev": true,
1317 | "requires": {
1318 | "inherits": "^2.0.3",
1319 | "minimalistic-assert": "^1.0.1"
1320 | }
1321 | },
1322 | "hmac-drbg": {
1323 | "version": "1.0.1",
1324 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
1325 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
1326 | "dev": true,
1327 | "requires": {
1328 | "hash.js": "^1.0.3",
1329 | "minimalistic-assert": "^1.0.0",
1330 | "minimalistic-crypto-utils": "^1.0.1"
1331 | }
1332 | },
1333 | "https-browserify": {
1334 | "version": "1.0.0",
1335 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
1336 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
1337 | "dev": true
1338 | },
1339 | "ieee754": {
1340 | "version": "1.2.1",
1341 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1342 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1343 | "dev": true
1344 | },
1345 | "inherits": {
1346 | "version": "2.0.4",
1347 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1348 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1349 | "dev": true
1350 | },
1351 | "isarray": {
1352 | "version": "1.0.0",
1353 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1354 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1355 | "dev": true
1356 | },
1357 | "isexe": {
1358 | "version": "2.0.0",
1359 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1360 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1361 | "dev": true
1362 | },
1363 | "md5.js": {
1364 | "version": "1.3.5",
1365 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
1366 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
1367 | "dev": true,
1368 | "requires": {
1369 | "hash-base": "^3.0.0",
1370 | "inherits": "^2.0.1",
1371 | "safe-buffer": "^5.1.2"
1372 | }
1373 | },
1374 | "miller-rabin": {
1375 | "version": "4.0.1",
1376 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
1377 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
1378 | "dev": true,
1379 | "requires": {
1380 | "bn.js": "^4.0.0",
1381 | "brorand": "^1.0.1"
1382 | },
1383 | "dependencies": {
1384 | "bn.js": {
1385 | "version": "4.12.0",
1386 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1387 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1388 | "dev": true
1389 | }
1390 | }
1391 | },
1392 | "minimalistic-assert": {
1393 | "version": "1.0.1",
1394 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
1395 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
1396 | "dev": true
1397 | },
1398 | "minimalistic-crypto-utils": {
1399 | "version": "1.0.1",
1400 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
1401 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
1402 | "dev": true
1403 | },
1404 | "node-libs-browser": {
1405 | "version": "2.2.1",
1406 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
1407 | "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
1408 | "dev": true,
1409 | "requires": {
1410 | "assert": "^1.1.1",
1411 | "browserify-zlib": "^0.2.0",
1412 | "buffer": "^4.3.0",
1413 | "console-browserify": "^1.1.0",
1414 | "constants-browserify": "^1.0.0",
1415 | "crypto-browserify": "^3.11.0",
1416 | "domain-browser": "^1.1.1",
1417 | "events": "^3.0.0",
1418 | "https-browserify": "^1.0.0",
1419 | "os-browserify": "^0.3.0",
1420 | "path-browserify": "0.0.1",
1421 | "process": "^0.11.10",
1422 | "punycode": "^1.2.4",
1423 | "querystring-es3": "^0.2.0",
1424 | "readable-stream": "^2.3.3",
1425 | "stream-browserify": "^2.0.1",
1426 | "stream-http": "^2.7.2",
1427 | "string_decoder": "^1.0.0",
1428 | "timers-browserify": "^2.0.4",
1429 | "tty-browserify": "0.0.0",
1430 | "url": "^0.11.0",
1431 | "util": "^0.11.0",
1432 | "vm-browserify": "^1.0.1"
1433 | }
1434 | },
1435 | "object-assign": {
1436 | "version": "4.1.1",
1437 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1438 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1439 | "dev": true
1440 | },
1441 | "os-browserify": {
1442 | "version": "0.3.0",
1443 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
1444 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
1445 | "dev": true
1446 | },
1447 | "pako": {
1448 | "version": "1.0.11",
1449 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
1450 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
1451 | "dev": true
1452 | },
1453 | "parse-asn1": {
1454 | "version": "5.1.6",
1455 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
1456 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
1457 | "dev": true,
1458 | "requires": {
1459 | "asn1.js": "^5.2.0",
1460 | "browserify-aes": "^1.0.0",
1461 | "evp_bytestokey": "^1.0.0",
1462 | "pbkdf2": "^3.0.3",
1463 | "safe-buffer": "^5.1.1"
1464 | }
1465 | },
1466 | "path-browserify": {
1467 | "version": "0.0.1",
1468 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
1469 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
1470 | "dev": true
1471 | },
1472 | "pbkdf2": {
1473 | "version": "3.1.2",
1474 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
1475 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
1476 | "dev": true,
1477 | "requires": {
1478 | "create-hash": "^1.1.2",
1479 | "create-hmac": "^1.1.4",
1480 | "ripemd160": "^2.0.1",
1481 | "safe-buffer": "^5.0.1",
1482 | "sha.js": "^2.4.8"
1483 | }
1484 | },
1485 | "process": {
1486 | "version": "0.11.10",
1487 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1488 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
1489 | "dev": true
1490 | },
1491 | "process-nextick-args": {
1492 | "version": "2.0.1",
1493 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1494 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1495 | "dev": true
1496 | },
1497 | "public-encrypt": {
1498 | "version": "4.0.3",
1499 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
1500 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
1501 | "dev": true,
1502 | "requires": {
1503 | "bn.js": "^4.1.0",
1504 | "browserify-rsa": "^4.0.0",
1505 | "create-hash": "^1.1.0",
1506 | "parse-asn1": "^5.0.0",
1507 | "randombytes": "^2.0.1",
1508 | "safe-buffer": "^5.1.2"
1509 | },
1510 | "dependencies": {
1511 | "bn.js": {
1512 | "version": "4.12.0",
1513 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1514 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1515 | "dev": true
1516 | }
1517 | }
1518 | },
1519 | "punycode": {
1520 | "version": "1.4.1",
1521 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1522 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
1523 | "dev": true
1524 | },
1525 | "querystring": {
1526 | "version": "0.2.0",
1527 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1528 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
1529 | "dev": true
1530 | },
1531 | "querystring-es3": {
1532 | "version": "0.2.1",
1533 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
1534 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
1535 | "dev": true
1536 | },
1537 | "randombytes": {
1538 | "version": "2.1.0",
1539 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1540 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1541 | "dev": true,
1542 | "requires": {
1543 | "safe-buffer": "^5.1.0"
1544 | }
1545 | },
1546 | "randomfill": {
1547 | "version": "1.0.4",
1548 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
1549 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
1550 | "dev": true,
1551 | "requires": {
1552 | "randombytes": "^2.0.5",
1553 | "safe-buffer": "^5.1.0"
1554 | }
1555 | },
1556 | "readable-stream": {
1557 | "version": "2.3.7",
1558 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1559 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1560 | "dev": true,
1561 | "requires": {
1562 | "core-util-is": "~1.0.0",
1563 | "inherits": "~2.0.3",
1564 | "isarray": "~1.0.0",
1565 | "process-nextick-args": "~2.0.0",
1566 | "safe-buffer": "~5.1.1",
1567 | "string_decoder": "~1.1.1",
1568 | "util-deprecate": "~1.0.1"
1569 | },
1570 | "dependencies": {
1571 | "safe-buffer": {
1572 | "version": "5.1.2",
1573 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1574 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1575 | "dev": true
1576 | },
1577 | "string_decoder": {
1578 | "version": "1.1.1",
1579 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1580 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1581 | "dev": true,
1582 | "requires": {
1583 | "safe-buffer": "~5.1.0"
1584 | }
1585 | }
1586 | }
1587 | },
1588 | "readline-sync": {
1589 | "version": "1.4.10",
1590 | "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
1591 | "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==",
1592 | "dev": true
1593 | },
1594 | "ripemd160": {
1595 | "version": "2.0.2",
1596 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
1597 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
1598 | "dev": true,
1599 | "requires": {
1600 | "hash-base": "^3.0.0",
1601 | "inherits": "^2.0.1"
1602 | }
1603 | },
1604 | "safe-buffer": {
1605 | "version": "5.2.1",
1606 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1607 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1608 | "dev": true
1609 | },
1610 | "safer-buffer": {
1611 | "version": "2.1.2",
1612 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1613 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1614 | "dev": true
1615 | },
1616 | "setimmediate": {
1617 | "version": "1.0.5",
1618 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1619 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
1620 | "dev": true
1621 | },
1622 | "sha.js": {
1623 | "version": "2.4.11",
1624 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
1625 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
1626 | "dev": true,
1627 | "requires": {
1628 | "inherits": "^2.0.1",
1629 | "safe-buffer": "^5.0.1"
1630 | }
1631 | },
1632 | "shadow-cljs": {
1633 | "version": "2.26.2",
1634 | "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.26.2.tgz",
1635 | "integrity": "sha512-xBJxBxSpfoVQLSDA+WN+ZgtnyA5qYf3EE4ARZpov0JOz0YBTdIQajnNYMs5+5OzCbbNfhWGLybyu/Pj4dIwsWw==",
1636 | "dev": true,
1637 | "requires": {
1638 | "node-libs-browser": "^2.2.1",
1639 | "readline-sync": "^1.4.7",
1640 | "shadow-cljs-jar": "1.3.4",
1641 | "source-map-support": "^0.4.15",
1642 | "which": "^1.3.1",
1643 | "ws": "^7.4.6"
1644 | }
1645 | },
1646 | "shadow-cljs-jar": {
1647 | "version": "1.3.4",
1648 | "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.4.tgz",
1649 | "integrity": "sha512-cZB2pzVXBnhpJ6PQdsjO+j/MksR28mv4QD/hP/2y1fsIa9Z9RutYgh3N34FZ8Ktl4puAXaIGlct+gMCJ5BmwmA==",
1650 | "dev": true
1651 | },
1652 | "source-map": {
1653 | "version": "0.5.7",
1654 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1655 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1656 | "dev": true
1657 | },
1658 | "source-map-support": {
1659 | "version": "0.4.18",
1660 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
1661 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
1662 | "dev": true,
1663 | "requires": {
1664 | "source-map": "^0.5.6"
1665 | }
1666 | },
1667 | "stream-browserify": {
1668 | "version": "2.0.2",
1669 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
1670 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
1671 | "dev": true,
1672 | "requires": {
1673 | "inherits": "~2.0.1",
1674 | "readable-stream": "^2.0.2"
1675 | }
1676 | },
1677 | "stream-http": {
1678 | "version": "2.8.3",
1679 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
1680 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
1681 | "dev": true,
1682 | "requires": {
1683 | "builtin-status-codes": "^3.0.0",
1684 | "inherits": "^2.0.1",
1685 | "readable-stream": "^2.3.6",
1686 | "to-arraybuffer": "^1.0.0",
1687 | "xtend": "^4.0.0"
1688 | }
1689 | },
1690 | "string_decoder": {
1691 | "version": "1.3.0",
1692 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1693 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1694 | "dev": true,
1695 | "requires": {
1696 | "safe-buffer": "~5.2.0"
1697 | }
1698 | },
1699 | "timers-browserify": {
1700 | "version": "2.0.12",
1701 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
1702 | "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
1703 | "dev": true,
1704 | "requires": {
1705 | "setimmediate": "^1.0.4"
1706 | }
1707 | },
1708 | "to-arraybuffer": {
1709 | "version": "1.0.1",
1710 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
1711 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
1712 | "dev": true
1713 | },
1714 | "tty-browserify": {
1715 | "version": "0.0.0",
1716 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
1717 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
1718 | "dev": true
1719 | },
1720 | "url": {
1721 | "version": "0.11.0",
1722 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
1723 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
1724 | "dev": true,
1725 | "requires": {
1726 | "punycode": "1.3.2",
1727 | "querystring": "0.2.0"
1728 | },
1729 | "dependencies": {
1730 | "punycode": {
1731 | "version": "1.3.2",
1732 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
1733 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
1734 | "dev": true
1735 | }
1736 | }
1737 | },
1738 | "util": {
1739 | "version": "0.11.1",
1740 | "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
1741 | "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
1742 | "dev": true,
1743 | "requires": {
1744 | "inherits": "2.0.3"
1745 | },
1746 | "dependencies": {
1747 | "inherits": {
1748 | "version": "2.0.3",
1749 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1750 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1751 | "dev": true
1752 | }
1753 | }
1754 | },
1755 | "util-deprecate": {
1756 | "version": "1.0.2",
1757 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1758 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1759 | "dev": true
1760 | },
1761 | "vm-browserify": {
1762 | "version": "1.1.2",
1763 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
1764 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
1765 | "dev": true
1766 | },
1767 | "which": {
1768 | "version": "1.3.1",
1769 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1770 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1771 | "dev": true,
1772 | "requires": {
1773 | "isexe": "^2.0.0"
1774 | }
1775 | },
1776 | "ws": {
1777 | "version": "7.5.7",
1778 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
1779 | "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
1780 | "dev": true,
1781 | "requires": {}
1782 | },
1783 | "xtend": {
1784 | "version": "4.0.2",
1785 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
1786 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
1787 | "dev": true
1788 | }
1789 | }
1790 | }
1791 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "shadow-cljs": "^2.26.2"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/public/css/main.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
3 | color: green;
4 | }
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Browser Starter
9 |
10 |
11 | shadow-cljs - Browser
12 | You need to enable JavaScript to run this app.
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/shadow-cljs.edn:
--------------------------------------------------------------------------------
1 | ;; shadow-cljs configuration
2 | {:source-paths
3 | ["src/dev"
4 | "src/main"
5 | "src/test"]
6 |
7 | :dependencies
8 | []
9 |
10 | :dev-http
11 | {8020 "public"}
12 |
13 | :builds
14 | {:app
15 | {:target :browser
16 | :output-dir "public/js"
17 | :asset-path "/js"
18 |
19 | :modules
20 | {:main ; becomes public/js/main.js
21 | {:init-fn starter.browser/init}}}}}
22 |
--------------------------------------------------------------------------------
/src/main/starter/browser.cljs:
--------------------------------------------------------------------------------
1 | (ns starter.browser)
2 |
3 | ;; start is called by init and after code reloading finishes
4 | (defn ^:dev/after-load start []
5 | (js/console.log "start"))
6 |
7 | (defn init []
8 | ;; init is called ONCE when the page loads
9 | ;; this is called in the index.html and must be exported
10 | ;; so it is available even in :advanced release builds
11 | (js/console.log "init")
12 | (start))
13 |
14 | ;; this is called before any code is reloaded
15 | (defn ^:dev/before-load stop []
16 | (js/console.log "stop"))
17 |
--------------------------------------------------------------------------------