1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,15 @@ |
1 |
+{:lint-as {day8.re-frame.tracing/defn-traced clojure.core/defn |
|
2 |
+ day8.re-frame.tracing/fn-traced clojure.core/fn} |
|
3 |
+ :linters {:unresolved-symbol {:exclude [goog.DEBUG]} |
|
4 |
+ :unused-namespace {:exclude [cljs.repl]} |
|
5 |
+ :unused-referred-var {:exclude {cljs.repl [Error->map |
|
6 |
+ apropos |
|
7 |
+ dir |
|
8 |
+ doc |
|
9 |
+ error->str |
|
10 |
+ ex-str |
|
11 |
+ ex-triage |
|
12 |
+ find-doc |
|
13 |
+ print-doc |
|
14 |
+ pst |
|
15 |
+ source]}}}} |
0 | 2 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,18 @@ |
1 |
+/out/ |
|
2 |
+/resources/public/js/compiled/ |
|
3 |
+/target/ |
|
4 |
+/*-init.clj |
|
5 |
+/*.log |
|
6 |
+ |
|
7 |
+# Leiningen |
|
8 |
+/.lein-* |
|
9 |
+/.nrepl-port |
|
10 |
+ |
|
11 |
+# Node.js dependencies |
|
12 |
+/node_modules/ |
|
13 |
+ |
|
14 |
+# shadow-cljs cache, port files |
|
15 |
+/.shadow-cljs/ |
|
16 |
+ |
|
17 |
+# clj-kondo cache |
|
18 |
+/.clj-kondo/.cache |
0 | 19 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,223 @@ |
1 |
+## Getting Started |
|
2 |
+ |
|
3 |
+### Project Overview |
|
4 |
+ |
|
5 |
+* Architecture: |
|
6 |
+[Single Page Application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) |
|
7 |
+* Languages |
|
8 |
+ - Front end is [ClojureScript](https://clojurescript.org/) with ([re-frame](https://github.com/day8/re-frame)) |
|
9 |
+ - CSS compilation is [Garden](https://github.com/noprompt/garden) with [Spade](https://github.com/dhleong/spade) |
|
10 |
+* Dependencies |
|
11 |
+ - UI framework: [re-frame](https://github.com/day8/re-frame) |
|
12 |
+ ([docs](https://github.com/day8/re-frame/blob/master/docs/README.md), |
|
13 |
+ [FAQs](https://github.com/day8/re-frame/blob/master/docs/FAQs/README.md)) -> |
|
14 |
+ [Reagent](https://github.com/reagent-project/reagent) -> |
|
15 |
+ [React](https://github.com/facebook/react) |
|
16 |
+ - CSS rendering: [Garden](https://github.com/noprompt/garden) |
|
17 |
+* Build tools |
|
18 |
+ - CLJS compilation, dependency management, REPL, & hot reload: [`shadow-cljs`](https://github.com/thheller/shadow-cljs) |
|
19 |
+* Development tools |
|
20 |
+ - Debugging: [CLJS DevTools](https://github.com/binaryage/cljs-devtools), |
|
21 |
+ [`re-frame-10x`](https://github.com/day8/re-frame-10x) |
|
22 |
+ - Emacs integration: [CIDER](https://github.com/clojure-emacs/cider) |
|
23 |
+ - Linter: [clj-kondo](https://github.com/borkdude/clj-kondo) |
|
24 |
+ |
|
25 |
+#### Directory structure |
|
26 |
+ |
|
27 |
+* [`/`](/../../): project config files |
|
28 |
+* [`.clj-kondo/`](.clj-kondo/): lint config and cache files (cache files are not tracked; see |
|
29 |
+[`.gitignore`](.gitignore)) |
|
30 |
+* [`dev/`](dev/): source files compiled only with the [dev](#running-the-app) profile |
|
31 |
+ - [`user.cljs`](dev/cljs/user.cljs): symbols for use during development in the |
|
32 |
+[ClojureScript REPL](#connecting-to-the-browser-repl-from-a-terminal) |
|
33 |
+* [`resources/public/`](resources/public/): SPA root directory; |
|
34 |
+[dev](#running-the-app) / [prod](#production) profile depends on the most recent build |
|
35 |
+ - [`index.html`](resources/public/index.html): SPA home page |
|
36 |
+ - Dynamic SPA content rendered in the following `div`: |
|
37 |
+ ```html |
|
38 |
+ <div id="app"></div> |
|
39 |
+ ``` |
|
40 |
+ - Customizable; add headers, footers, links to other scripts and styles, etc. |
|
41 |
+ - Generated directories and files |
|
42 |
+ - Created on build with either the [dev](#running-the-app) or [prod](#production) profile |
|
43 |
+ - `js/compiled/`: compiled CLJS (`shadow-cljs`) |
|
44 |
+ - Not tracked in source control; see [`.gitignore`](.gitignore) |
|
45 |
+* [`src/dm/styles.cljs`](src/dm/styles.cljs): CSS compilation source file (ClojureScript, |
|
46 |
+[Garden](https://github.com/noprompt/garden)) |
|
47 |
+* [`src/dm/`](src/dm/): SPA source files (ClojureScript, |
|
48 |
+[re-frame](https://github.com/Day8/re-frame)) |
|
49 |
+ - [`core.cljs`](src/dm/core.cljs): contains the SPA entry point, `init` |
|
50 |
+* [`.github/workflows/`](.github/workflows/): contains the |
|
51 |
+[github actions](https://github.com/features/actions) pipelines. |
|
52 |
+ - [`test.yaml`](.github/workflows/test.yaml): Pipeline for testing. |
|
53 |
+ |
|
54 |
+ |
|
55 |
+### Editor/IDE |
|
56 |
+ |
|
57 |
+Use your preferred editor or IDE that supports Clojure/ClojureScript development. See |
|
58 |
+[Clojure tools](https://clojure.org/community/resources#_clojure_tools) for some popular options. |
|
59 |
+ |
|
60 |
+### Environment Setup |
|
61 |
+ |
|
62 |
+1. Install [JDK 8 or later](https://openjdk.java.net/install/) (Java Development Kit) |
|
63 |
+2. Install [Node.js](https://nodejs.org/) (JavaScript runtime environment) which should include |
|
64 |
+ [NPM](https://docs.npmjs.com/cli/npm) or if your Node.js installation does not include NPM also install it. |
|
65 |
+4. Install [clj-kondo](https://github.com/borkdude/clj-kondo/blob/master/doc/install.md) (linter) |
|
66 |
+5. Clone this repo and open a terminal in the `dm` project root directory |
|
67 |
+6. (Optional) Setup [lint cache](https://github.com/borkdude/clj-kondo#project-setup): |
|
68 |
+ ```sh |
|
69 |
+ clj-kondo --lint "$(npx shadow-cljs classpath)" |
|
70 |
+ ``` |
|
71 |
+7. Setup |
|
72 |
+[linting in your editor](https://github.com/borkdude/clj-kondo/blob/master/doc/editor-integration.md) |
|
73 |
+ |
|
74 |
+### Browser Setup |
|
75 |
+ |
|
76 |
+Browser caching should be disabled when developer tools are open to prevent interference with |
|
77 |
+[`shadow-cljs`](https://github.com/thheller/shadow-cljs) hot reloading. |
|
78 |
+ |
|
79 |
+Custom formatters must be enabled in the browser before |
|
80 |
+[CLJS DevTools](https://github.com/binaryage/cljs-devtools) can display ClojureScript data in the |
|
81 |
+console in a more readable way. |
|
82 |
+ |
|
83 |
+#### Chrome/Chromium |
|
84 |
+ |
|
85 |
+1. Open [DevTools](https://developers.google.com/web/tools/chrome-devtools/) (Linux/Windows: `F12` |
|
86 |
+or `Ctrl-Shift-I`; macOS: `⌘-Option-I`) |
|
87 |
+2. Open DevTools Settings (Linux/Windows: `?` or `F1`; macOS: `?` or `Fn+F1`) |
|
88 |
+3. Select `Preferences` in the navigation menu on the left, if it is not already selected |
|
89 |
+4. Under the `Network` heading, enable the `Disable cache (while DevTools is open)` option |
|
90 |
+5. Under the `Console` heading, enable the `Enable custom formatters` option |
|
91 |
+ |
|
92 |
+#### Firefox |
|
93 |
+ |
|
94 |
+1. Open [Developer Tools](https://developer.mozilla.org/en-US/docs/Tools) (Linux/Windows: `F12` or |
|
95 |
+`Ctrl-Shift-I`; macOS: `⌘-Option-I`) |
|
96 |
+2. Open [Developer Tools Settings](https://developer.mozilla.org/en-US/docs/Tools/Settings) |
|
97 |
+(Linux/macOS/Windows: `F1`) |
|
98 |
+3. Under the `Advanced settings` heading, enable the `Disable HTTP Cache (when toolbox is open)` |
|
99 |
+option |
|
100 |
+ |
|
101 |
+Unfortunately, Firefox does not yet support custom formatters in their devtools. For updates, follow |
|
102 |
+the enhancement request in their bug tracker: |
|
103 |
+[1262914 - Add support for Custom Formatters in devtools](https://bugzilla.mozilla.org/show_bug.cgi?id=1262914). |
|
104 |
+ |
|
105 |
+ |
|
106 |
+## Development |
|
107 |
+ |
|
108 |
+### Running the App |
|
109 |
+ |
|
110 |
+Start a temporary local web server, build the app with the `dev` profile, and serve the app, |
|
111 |
+browser test runner and karma test runner with hot reload: |
|
112 |
+ |
|
113 |
+```sh |
|
114 |
+npm install |
|
115 |
+npx shadow-cljs watch app |
|
116 |
+``` |
|
117 |
+ |
|
118 |
+Please be patient; it may take over 20 seconds to see any output, and over 40 seconds to complete. |
|
119 |
+ |
|
120 |
+When `[:app] Build completed` appears in the output, browse to |
|
121 |
+[http://localhost:8280/](http://localhost:8280/). |
|
122 |
+ |
|
123 |
+[`shadow-cljs`](https://github.com/thheller/shadow-cljs) will automatically push ClojureScript code |
|
124 |
+changes to your browser on save. To prevent a few common issues, see |
|
125 |
+[Hot Reload in ClojureScript: Things to avoid](https://code.thheller.com/blog/shadow-cljs/2019/08/25/hot-reload-in-clojurescript.html#things-to-avoid). |
|
126 |
+ |
|
127 |
+Opening the app in your browser starts a |
|
128 |
+[ClojureScript browser REPL](https://clojurescript.org/reference/repl#using-the-browser-as-an-evaluation-environment), |
|
129 |
+to which you may now connect. |
|
130 |
+ |
|
131 |
+#### Connecting to the browser REPL from Emacs with CIDER |
|
132 |
+ |
|
133 |
+Connect to the browser REPL: |
|
134 |
+``` |
|
135 |
+M-x cider-jack-in-cljs |
|
136 |
+``` |
|
137 |
+ |
|
138 |
+See |
|
139 |
+[Shadow CLJS User's Guide: Emacs/CIDER](https://shadow-cljs.github.io/docs/UsersGuide.html#cider) |
|
140 |
+for more information. Note that the mentioned [`.dir-locals.el`](.dir-locals.el) file has already |
|
141 |
+been created for you. |
|
142 |
+ |
|
143 |
+#### Connecting to the browser REPL from VS Code with Calva |
|
144 |
+ |
|
145 |
+See the [re-frame-template README](https://github.com/day8/re-frame-template) for [Calva](https://github.com/BetterThanTomorrow/calva) instuctions. See also https://calva.io for Calva documentation. |
|
146 |
+ |
|
147 |
+ |
|
148 |
+#### Connecting to the browser REPL from other editors |
|
149 |
+ |
|
150 |
+See |
|
151 |
+[Shadow CLJS User's Guide: Editor Integration](https://shadow-cljs.github.io/docs/UsersGuide.html#_editor_integration). |
|
152 |
+Note that `npm run watch` runs `npx shadow-cljs watch` for you, and that this project's running build ids is |
|
153 |
+`app`, `browser-test`, `karma-test`, or the keywords `:app`, `:browser-test`, `:karma-test` in a Clojure context. |
|
154 |
+ |
|
155 |
+Alternatively, search the web for info on connecting to a `shadow-cljs` ClojureScript browser REPL |
|
156 |
+from your editor and configuration. |
|
157 |
+ |
|
158 |
+For example, in Vim / Neovim with `fireplace.vim` |
|
159 |
+1. Open a `.cljs` file in the project to activate `fireplace.vim` |
|
160 |
+2. In normal mode, execute the `Piggieback` command with this project's running build id, `:app`: |
|
161 |
+ ```vim |
|
162 |
+ :Piggieback :app |
|
163 |
+ ``` |
|
164 |
+ |
|
165 |
+#### Connecting to the browser REPL from a terminal |
|
166 |
+ |
|
167 |
+1. Connect to the `shadow-cljs` nREPL: |
|
168 |
+ ```sh |
|
169 |
+ lein repl :connect localhost:8777 |
|
170 |
+ ``` |
|
171 |
+ The REPL prompt, `shadow.user=>`, indicates that is a Clojure REPL, not ClojureScript. |
|
172 |
+ |
|
173 |
+2. In the REPL, switch the session to this project's running build id, `:app`: |
|
174 |
+ ```clj |
|
175 |
+ (shadow.cljs.devtools.api/nrepl-select :app) |
|
176 |
+ ``` |
|
177 |
+ The REPL prompt changes to `cljs.user=>`, indicating that this is now a ClojureScript REPL. |
|
178 |
+3. See [`user.cljs`](dev/cljs/user.cljs) for symbols that are immediately accessible in the REPL |
|
179 |
+without needing to `require`. |
|
180 |
+ |
|
181 |
+### Running `shadow-cljs` Actions |
|
182 |
+ |
|
183 |
+See a list of [`shadow-cljs CLI`](https://shadow-cljs.github.io/docs/UsersGuide.html#_command_line) |
|
184 |
+actions: |
|
185 |
+```sh |
|
186 |
+npx shadow-cljs --help |
|
187 |
+``` |
|
188 |
+ |
|
189 |
+Please be patient; it may take over 10 seconds to see any output. Also note that some actions shown |
|
190 |
+may not actually be supported, outputting "Unknown action." when run. |
|
191 |
+ |
|
192 |
+Run a shadow-cljs action on this project's build id (without the colon, just `app`): |
|
193 |
+```sh |
|
194 |
+npx shadow-cljs <action> app |
|
195 |
+``` |
|
196 |
+### Debug Logging |
|
197 |
+ |
|
198 |
+The `debug?` variable in [`config.cljs`](src/cljs/dm/config.cljs) defaults to `true` in |
|
199 |
+[`dev`](#running-the-app) builds, and `false` in [`prod`](#production) builds. |
|
200 |
+ |
|
201 |
+Use `debug?` for logging or other tasks that should run only on `dev` builds: |
|
202 |
+ |
|
203 |
+```clj |
|
204 |
+(ns dm.example |
|
205 |
+ (:require [dm.config :as config]) |
|
206 |
+ |
|
207 |
+(when config/debug? |
|
208 |
+ (println "This message will appear in the browser console only on dev builds.")) |
|
209 |
+``` |
|
210 |
+ |
|
211 |
+## Production |
|
212 |
+ |
|
213 |
+Build the app with the `prod` profile: |
|
214 |
+ |
|
215 |
+```sh |
|
216 |
+npm install |
|
217 |
+npm run release |
|
218 |
+``` |
|
219 |
+ |
|
220 |
+Please be patient; it may take over 15 seconds to see any output, and over 30 seconds to complete. |
|
221 |
+ |
|
222 |
+The `resources/public/js/compiled` directory is created, containing the compiled `app.js` and |
|
223 |
+`manifest.edn` files. |
0 | 224 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,26 @@ |
1 |
+# Jambda |
|
2 |
+ |
|
3 |
+A web-based playground for jamming with lambda calculus! |
|
4 |
+ |
|
5 |
+Inpired by https://youtu.be/Bt11BsAZMq8 |
|
6 |
+ |
|
7 |
+## Table of Contents |
|
8 |
+ |
|
9 |
+- [Jambda](#jambda) |
|
10 |
+ - [Table of Contents](#table-of-contents) |
|
11 |
+ - [Install](#install) |
|
12 |
+ - [Usage](#usage) |
|
13 |
+ - [Contributing](#contributing) |
|
14 |
+ - [Licensing](#licensing) |
|
15 |
+ |
|
16 |
+## Install |
|
17 |
+ |
|
18 |
+## Usage |
|
19 |
+ |
|
20 |
+## Contributing |
|
21 |
+ |
|
22 |
+Check out [CONTRIBUTING.md](./CONTRIBUTING.md) for instructions on how to get started hacking on DMR. |
|
23 |
+ |
|
24 |
+## Licensing |
|
25 |
+ |
|
26 |
+This software is made available under the GNU Affero GPL (see [LICENSE](./LICENSE) for details) unless otherwise noted. |
0 | 27 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,11 @@ |
1 |
+(ns cljs.user |
|
2 |
+ "Commonly used symbols for easy access in the ClojureScript REPL during |
|
3 |
+ development." |
|
4 |
+ (:require |
|
5 |
+ [cljs.repl :refer (Error->map apropos dir doc error->str ex-str ex-triage |
|
6 |
+ find-doc print-doc pst source)] |
|
7 |
+ [clojure.pprint :refer (pprint)] |
|
8 |
+ [clojure.string :as str])) |
|
9 |
+ |
|
10 |
+(comment |
|
11 |
+ (pprint (str/trim "This line suppresses some clj-kondo warnings."))) |
0 | 12 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,27 @@ |
1 |
+module.exports = function (config) { |
|
2 |
+ var junitOutputDir = process.env.CIRCLE_TEST_REPORTS || "target/junit" |
|
3 |
+ |
|
4 |
+ config.set({ |
|
5 |
+ browsers: ['ChromeHeadless'], |
|
6 |
+ basePath: 'target', |
|
7 |
+ files: ['karma-test.js'], |
|
8 |
+ frameworks: ['cljs-test'], |
|
9 |
+ plugins: [ |
|
10 |
+ 'karma-cljs-test', |
|
11 |
+ 'karma-chrome-launcher', |
|
12 |
+ 'karma-junit-reporter' |
|
13 |
+ ], |
|
14 |
+ colors: true, |
|
15 |
+ logLevel: config.LOG_INFO, |
|
16 |
+ client: { |
|
17 |
+ args: ['shadow.test.karma.init'] |
|
18 |
+ }, |
|
19 |
+ |
|
20 |
+ // the default configuration |
|
21 |
+ junitReporter: { |
|
22 |
+ outputDir: junitOutputDir + '/karma', // results will be saved as outputDir/browserName.xml |
|
23 |
+ outputFile: undefined, // if included, results will be saved as outputDir/browserName/outputFile |
|
24 |
+ suite: '' // suite will become the package name attribute in xml testsuite element |
|
25 |
+ } |
|
26 |
+ }) |
|
27 |
+} |
0 | 28 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,997 @@ |
1 |
+{ |
|
2 |
+ "name": "jambda", |
|
3 |
+ "requires": true, |
|
4 |
+ "lockfileVersion": 1, |
|
5 |
+ "dependencies": { |
|
6 |
+ "asn1.js": { |
|
7 |
+ "version": "5.4.1", |
|
8 |
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", |
|
9 |
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", |
|
10 |
+ "dev": true, |
|
11 |
+ "requires": { |
|
12 |
+ "bn.js": "^4.0.0", |
|
13 |
+ "inherits": "^2.0.1", |
|
14 |
+ "minimalistic-assert": "^1.0.0", |
|
15 |
+ "safer-buffer": "^2.1.0" |
|
16 |
+ }, |
|
17 |
+ "dependencies": { |
|
18 |
+ "bn.js": { |
|
19 |
+ "version": "4.12.0", |
|
20 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
21 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
22 |
+ "dev": true |
|
23 |
+ } |
|
24 |
+ } |
|
25 |
+ }, |
|
26 |
+ "assert": { |
|
27 |
+ "version": "1.5.0", |
|
28 |
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", |
|
29 |
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", |
|
30 |
+ "dev": true, |
|
31 |
+ "requires": { |
|
32 |
+ "object-assign": "^4.1.1", |
|
33 |
+ "util": "0.10.3" |
|
34 |
+ }, |
|
35 |
+ "dependencies": { |
|
36 |
+ "inherits": { |
|
37 |
+ "version": "2.0.1", |
|
38 |
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", |
|
39 |
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", |
|
40 |
+ "dev": true |
|
41 |
+ }, |
|
42 |
+ "util": { |
|
43 |
+ "version": "0.10.3", |
|
44 |
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", |
|
45 |
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", |
|
46 |
+ "dev": true, |
|
47 |
+ "requires": { |
|
48 |
+ "inherits": "2.0.1" |
|
49 |
+ } |
|
50 |
+ } |
|
51 |
+ } |
|
52 |
+ }, |
|
53 |
+ "base64-js": { |
|
54 |
+ "version": "1.5.1", |
|
55 |
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", |
|
56 |
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", |
|
57 |
+ "dev": true |
|
58 |
+ }, |
|
59 |
+ "bn.js": { |
|
60 |
+ "version": "5.2.0", |
|
61 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", |
|
62 |
+ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", |
|
63 |
+ "dev": true |
|
64 |
+ }, |
|
65 |
+ "brorand": { |
|
66 |
+ "version": "1.1.0", |
|
67 |
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", |
|
68 |
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", |
|
69 |
+ "dev": true |
|
70 |
+ }, |
|
71 |
+ "browserify-aes": { |
|
72 |
+ "version": "1.2.0", |
|
73 |
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", |
|
74 |
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", |
|
75 |
+ "dev": true, |
|
76 |
+ "requires": { |
|
77 |
+ "buffer-xor": "^1.0.3", |
|
78 |
+ "cipher-base": "^1.0.0", |
|
79 |
+ "create-hash": "^1.1.0", |
|
80 |
+ "evp_bytestokey": "^1.0.3", |
|
81 |
+ "inherits": "^2.0.1", |
|
82 |
+ "safe-buffer": "^5.0.1" |
|
83 |
+ } |
|
84 |
+ }, |
|
85 |
+ "browserify-cipher": { |
|
86 |
+ "version": "1.0.1", |
|
87 |
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", |
|
88 |
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", |
|
89 |
+ "dev": true, |
|
90 |
+ "requires": { |
|
91 |
+ "browserify-aes": "^1.0.4", |
|
92 |
+ "browserify-des": "^1.0.0", |
|
93 |
+ "evp_bytestokey": "^1.0.0" |
|
94 |
+ } |
|
95 |
+ }, |
|
96 |
+ "browserify-des": { |
|
97 |
+ "version": "1.0.2", |
|
98 |
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", |
|
99 |
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", |
|
100 |
+ "dev": true, |
|
101 |
+ "requires": { |
|
102 |
+ "cipher-base": "^1.0.1", |
|
103 |
+ "des.js": "^1.0.0", |
|
104 |
+ "inherits": "^2.0.1", |
|
105 |
+ "safe-buffer": "^5.1.2" |
|
106 |
+ } |
|
107 |
+ }, |
|
108 |
+ "browserify-rsa": { |
|
109 |
+ "version": "4.1.0", |
|
110 |
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", |
|
111 |
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", |
|
112 |
+ "dev": true, |
|
113 |
+ "requires": { |
|
114 |
+ "bn.js": "^5.0.0", |
|
115 |
+ "randombytes": "^2.0.1" |
|
116 |
+ } |
|
117 |
+ }, |
|
118 |
+ "browserify-sign": { |
|
119 |
+ "version": "4.2.1", |
|
120 |
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", |
|
121 |
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", |
|
122 |
+ "dev": true, |
|
123 |
+ "requires": { |
|
124 |
+ "bn.js": "^5.1.1", |
|
125 |
+ "browserify-rsa": "^4.0.1", |
|
126 |
+ "create-hash": "^1.2.0", |
|
127 |
+ "create-hmac": "^1.1.7", |
|
128 |
+ "elliptic": "^6.5.3", |
|
129 |
+ "inherits": "^2.0.4", |
|
130 |
+ "parse-asn1": "^5.1.5", |
|
131 |
+ "readable-stream": "^3.6.0", |
|
132 |
+ "safe-buffer": "^5.2.0" |
|
133 |
+ }, |
|
134 |
+ "dependencies": { |
|
135 |
+ "readable-stream": { |
|
136 |
+ "version": "3.6.0", |
|
137 |
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", |
|
138 |
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", |
|
139 |
+ "dev": true, |
|
140 |
+ "requires": { |
|
141 |
+ "inherits": "^2.0.3", |
|
142 |
+ "string_decoder": "^1.1.1", |
|
143 |
+ "util-deprecate": "^1.0.1" |
|
144 |
+ } |
|
145 |
+ }, |
|
146 |
+ "safe-buffer": { |
|
147 |
+ "version": "5.2.1", |
|
148 |
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", |
|
149 |
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", |
|
150 |
+ "dev": true |
|
151 |
+ } |
|
152 |
+ } |
|
153 |
+ }, |
|
154 |
+ "browserify-zlib": { |
|
155 |
+ "version": "0.2.0", |
|
156 |
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", |
|
157 |
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", |
|
158 |
+ "dev": true, |
|
159 |
+ "requires": { |
|
160 |
+ "pako": "~1.0.5" |
|
161 |
+ } |
|
162 |
+ }, |
|
163 |
+ "buffer": { |
|
164 |
+ "version": "4.9.2", |
|
165 |
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", |
|
166 |
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", |
|
167 |
+ "dev": true, |
|
168 |
+ "requires": { |
|
169 |
+ "base64-js": "^1.0.2", |
|
170 |
+ "ieee754": "^1.1.4", |
|
171 |
+ "isarray": "^1.0.0" |
|
172 |
+ } |
|
173 |
+ }, |
|
174 |
+ "buffer-from": { |
|
175 |
+ "version": "1.1.2", |
|
176 |
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", |
|
177 |
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", |
|
178 |
+ "dev": true |
|
179 |
+ }, |
|
180 |
+ "buffer-xor": { |
|
181 |
+ "version": "1.0.3", |
|
182 |
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", |
|
183 |
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", |
|
184 |
+ "dev": true |
|
185 |
+ }, |
|
186 |
+ "builtin-status-codes": { |
|
187 |
+ "version": "3.0.0", |
|
188 |
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", |
|
189 |
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", |
|
190 |
+ "dev": true |
|
191 |
+ }, |
|
192 |
+ "cipher-base": { |
|
193 |
+ "version": "1.0.4", |
|
194 |
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", |
|
195 |
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", |
|
196 |
+ "dev": true, |
|
197 |
+ "requires": { |
|
198 |
+ "inherits": "^2.0.1", |
|
199 |
+ "safe-buffer": "^5.0.1" |
|
200 |
+ } |
|
201 |
+ }, |
|
202 |
+ "concat-stream": { |
|
203 |
+ "version": "1.6.2", |
|
204 |
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", |
|
205 |
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", |
|
206 |
+ "dev": true, |
|
207 |
+ "requires": { |
|
208 |
+ "buffer-from": "^1.0.0", |
|
209 |
+ "inherits": "^2.0.3", |
|
210 |
+ "readable-stream": "^2.2.2", |
|
211 |
+ "typedarray": "^0.0.6" |
|
212 |
+ } |
|
213 |
+ }, |
|
214 |
+ "console-browserify": { |
|
215 |
+ "version": "1.2.0", |
|
216 |
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", |
|
217 |
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", |
|
218 |
+ "dev": true |
|
219 |
+ }, |
|
220 |
+ "constants-browserify": { |
|
221 |
+ "version": "1.0.0", |
|
222 |
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", |
|
223 |
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", |
|
224 |
+ "dev": true |
|
225 |
+ }, |
|
226 |
+ "core-util-is": { |
|
227 |
+ "version": "1.0.3", |
|
228 |
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", |
|
229 |
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", |
|
230 |
+ "dev": true |
|
231 |
+ }, |
|
232 |
+ "create-ecdh": { |
|
233 |
+ "version": "4.0.4", |
|
234 |
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", |
|
235 |
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", |
|
236 |
+ "dev": true, |
|
237 |
+ "requires": { |
|
238 |
+ "bn.js": "^4.1.0", |
|
239 |
+ "elliptic": "^6.5.3" |
|
240 |
+ }, |
|
241 |
+ "dependencies": { |
|
242 |
+ "bn.js": { |
|
243 |
+ "version": "4.12.0", |
|
244 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
245 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
246 |
+ "dev": true |
|
247 |
+ } |
|
248 |
+ } |
|
249 |
+ }, |
|
250 |
+ "create-hash": { |
|
251 |
+ "version": "1.2.0", |
|
252 |
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", |
|
253 |
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", |
|
254 |
+ "dev": true, |
|
255 |
+ "requires": { |
|
256 |
+ "cipher-base": "^1.0.1", |
|
257 |
+ "inherits": "^2.0.1", |
|
258 |
+ "md5.js": "^1.3.4", |
|
259 |
+ "ripemd160": "^2.0.1", |
|
260 |
+ "sha.js": "^2.4.0" |
|
261 |
+ } |
|
262 |
+ }, |
|
263 |
+ "create-hmac": { |
|
264 |
+ "version": "1.1.7", |
|
265 |
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", |
|
266 |
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", |
|
267 |
+ "dev": true, |
|
268 |
+ "requires": { |
|
269 |
+ "cipher-base": "^1.0.3", |
|
270 |
+ "create-hash": "^1.1.0", |
|
271 |
+ "inherits": "^2.0.1", |
|
272 |
+ "ripemd160": "^2.0.0", |
|
273 |
+ "safe-buffer": "^5.0.1", |
|
274 |
+ "sha.js": "^2.4.8" |
|
275 |
+ } |
|
276 |
+ }, |
|
277 |
+ "cross-spawn": { |
|
278 |
+ "version": "5.1.0", |
|
279 |
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", |
|
280 |
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", |
|
281 |
+ "dev": true, |
|
282 |
+ "requires": { |
|
283 |
+ "lru-cache": "^4.0.1", |
|
284 |
+ "shebang-command": "^1.2.0", |
|
285 |
+ "which": "^1.2.9" |
|
286 |
+ } |
|
287 |
+ }, |
|
288 |
+ "crypto-browserify": { |
|
289 |
+ "version": "3.12.0", |
|
290 |
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", |
|
291 |
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", |
|
292 |
+ "dev": true, |
|
293 |
+ "requires": { |
|
294 |
+ "browserify-cipher": "^1.0.0", |
|
295 |
+ "browserify-sign": "^4.0.0", |
|
296 |
+ "create-ecdh": "^4.0.0", |
|
297 |
+ "create-hash": "^1.1.0", |
|
298 |
+ "create-hmac": "^1.1.0", |
|
299 |
+ "diffie-hellman": "^5.0.0", |
|
300 |
+ "inherits": "^2.0.1", |
|
301 |
+ "pbkdf2": "^3.0.3", |
|
302 |
+ "public-encrypt": "^4.0.0", |
|
303 |
+ "randombytes": "^2.0.0", |
|
304 |
+ "randomfill": "^1.0.3" |
|
305 |
+ } |
|
306 |
+ }, |
|
307 |
+ "des.js": { |
|
308 |
+ "version": "1.0.1", |
|
309 |
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", |
|
310 |
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", |
|
311 |
+ "dev": true, |
|
312 |
+ "requires": { |
|
313 |
+ "inherits": "^2.0.1", |
|
314 |
+ "minimalistic-assert": "^1.0.0" |
|
315 |
+ } |
|
316 |
+ }, |
|
317 |
+ "diffie-hellman": { |
|
318 |
+ "version": "5.0.3", |
|
319 |
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", |
|
320 |
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", |
|
321 |
+ "dev": true, |
|
322 |
+ "requires": { |
|
323 |
+ "bn.js": "^4.1.0", |
|
324 |
+ "miller-rabin": "^4.0.0", |
|
325 |
+ "randombytes": "^2.0.0" |
|
326 |
+ }, |
|
327 |
+ "dependencies": { |
|
328 |
+ "bn.js": { |
|
329 |
+ "version": "4.12.0", |
|
330 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
331 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
332 |
+ "dev": true |
|
333 |
+ } |
|
334 |
+ } |
|
335 |
+ }, |
|
336 |
+ "domain-browser": { |
|
337 |
+ "version": "1.2.0", |
|
338 |
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", |
|
339 |
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", |
|
340 |
+ "dev": true |
|
341 |
+ }, |
|
342 |
+ "elliptic": { |
|
343 |
+ "version": "6.5.4", |
|
344 |
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", |
|
345 |
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", |
|
346 |
+ "dev": true, |
|
347 |
+ "requires": { |
|
348 |
+ "bn.js": "^4.11.9", |
|
349 |
+ "brorand": "^1.1.0", |
|
350 |
+ "hash.js": "^1.0.0", |
|
351 |
+ "hmac-drbg": "^1.0.1", |
|
352 |
+ "inherits": "^2.0.4", |
|
353 |
+ "minimalistic-assert": "^1.0.1", |
|
354 |
+ "minimalistic-crypto-utils": "^1.0.1" |
|
355 |
+ }, |
|
356 |
+ "dependencies": { |
|
357 |
+ "bn.js": { |
|
358 |
+ "version": "4.12.0", |
|
359 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
360 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
361 |
+ "dev": true |
|
362 |
+ } |
|
363 |
+ } |
|
364 |
+ }, |
|
365 |
+ "events": { |
|
366 |
+ "version": "3.3.0", |
|
367 |
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", |
|
368 |
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", |
|
369 |
+ "dev": true |
|
370 |
+ }, |
|
371 |
+ "evp_bytestokey": { |
|
372 |
+ "version": "1.0.3", |
|
373 |
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", |
|
374 |
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", |
|
375 |
+ "dev": true, |
|
376 |
+ "requires": { |
|
377 |
+ "md5.js": "^1.3.4", |
|
378 |
+ "safe-buffer": "^5.1.1" |
|
379 |
+ } |
|
380 |
+ }, |
|
381 |
+ "hash-base": { |
|
382 |
+ "version": "3.1.0", |
|
383 |
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", |
|
384 |
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", |
|
385 |
+ "dev": true, |
|
386 |
+ "requires": { |
|
387 |
+ "inherits": "^2.0.4", |
|
388 |
+ "readable-stream": "^3.6.0", |
|
389 |
+ "safe-buffer": "^5.2.0" |
|
390 |
+ }, |
|
391 |
+ "dependencies": { |
|
392 |
+ "readable-stream": { |
|
393 |
+ "version": "3.6.0", |
|
394 |
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", |
|
395 |
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", |
|
396 |
+ "dev": true, |
|
397 |
+ "requires": { |
|
398 |
+ "inherits": "^2.0.3", |
|
399 |
+ "string_decoder": "^1.1.1", |
|
400 |
+ "util-deprecate": "^1.0.1" |
|
401 |
+ } |
|
402 |
+ }, |
|
403 |
+ "safe-buffer": { |
|
404 |
+ "version": "5.2.1", |
|
405 |
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", |
|
406 |
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", |
|
407 |
+ "dev": true |
|
408 |
+ } |
|
409 |
+ } |
|
410 |
+ }, |
|
411 |
+ "hash.js": { |
|
412 |
+ "version": "1.1.7", |
|
413 |
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", |
|
414 |
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", |
|
415 |
+ "dev": true, |
|
416 |
+ "requires": { |
|
417 |
+ "inherits": "^2.0.3", |
|
418 |
+ "minimalistic-assert": "^1.0.1" |
|
419 |
+ } |
|
420 |
+ }, |
|
421 |
+ "highlight.js": { |
|
422 |
+ "version": "11.1.0", |
|
423 |
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.1.0.tgz", |
|
424 |
+ "integrity": "sha512-X9VVhYKHQPPuwffO8jk4bP/FVj+ibNCy3HxZZNDXFtJrq4O5FdcdCDRIkDis5MiMnjh7UwEdHgRZJcHFYdzDdA==" |
|
425 |
+ }, |
|
426 |
+ "hmac-drbg": { |
|
427 |
+ "version": "1.0.1", |
|
428 |
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", |
|
429 |
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", |
|
430 |
+ "dev": true, |
|
431 |
+ "requires": { |
|
432 |
+ "hash.js": "^1.0.3", |
|
433 |
+ "minimalistic-assert": "^1.0.0", |
|
434 |
+ "minimalistic-crypto-utils": "^1.0.1" |
|
435 |
+ } |
|
436 |
+ }, |
|
437 |
+ "https-browserify": { |
|
438 |
+ "version": "1.0.0", |
|
439 |
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", |
|
440 |
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", |
|
441 |
+ "dev": true |
|
442 |
+ }, |
|
443 |
+ "ieee754": { |
|
444 |
+ "version": "1.2.1", |
|
445 |
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", |
|
446 |
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", |
|
447 |
+ "dev": true |
|
448 |
+ }, |
|
449 |
+ "inherits": { |
|
450 |
+ "version": "2.0.4", |
|
451 |
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
|
452 |
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
|
453 |
+ "dev": true |
|
454 |
+ }, |
|
455 |
+ "isarray": { |
|
456 |
+ "version": "1.0.0", |
|
457 |
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", |
|
458 |
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", |
|
459 |
+ "dev": true |
|
460 |
+ }, |
|
461 |
+ "isexe": { |
|
462 |
+ "version": "2.0.0", |
|
463 |
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
|
464 |
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", |
|
465 |
+ "dev": true |
|
466 |
+ }, |
|
467 |
+ "js-tokens": { |
|
468 |
+ "version": "4.0.0", |
|
469 |
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
|
470 |
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" |
|
471 |
+ }, |
|
472 |
+ "loose-envify": { |
|
473 |
+ "version": "1.4.0", |
|
474 |
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", |
|
475 |
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", |
|
476 |
+ "requires": { |
|
477 |
+ "js-tokens": "^3.0.0 || ^4.0.0" |
|
478 |
+ } |
|
479 |
+ }, |
|
480 |
+ "lru-cache": { |
|
481 |
+ "version": "4.1.5", |
|
482 |
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", |
|
483 |
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", |
|
484 |
+ "dev": true, |
|
485 |
+ "requires": { |
|
486 |
+ "pseudomap": "^1.0.2", |
|
487 |
+ "yallist": "^2.1.2" |
|
488 |
+ } |
|
489 |
+ }, |
|
490 |
+ "md5.js": { |
|
491 |
+ "version": "1.3.5", |
|
492 |
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", |
|
493 |
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", |
|
494 |
+ "dev": true, |
|
495 |
+ "requires": { |
|
496 |
+ "hash-base": "^3.0.0", |
|
497 |
+ "inherits": "^2.0.1", |
|
498 |
+ "safe-buffer": "^5.1.2" |
|
499 |
+ } |
|
500 |
+ }, |
|
501 |
+ "miller-rabin": { |
|
502 |
+ "version": "4.0.1", |
|
503 |
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", |
|
504 |
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", |
|
505 |
+ "dev": true, |
|
506 |
+ "requires": { |
|
507 |
+ "bn.js": "^4.0.0", |
|
508 |
+ "brorand": "^1.0.1" |
|
509 |
+ }, |
|
510 |
+ "dependencies": { |
|
511 |
+ "bn.js": { |
|
512 |
+ "version": "4.12.0", |
|
513 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
514 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
515 |
+ "dev": true |
|
516 |
+ } |
|
517 |
+ } |
|
518 |
+ }, |
|
519 |
+ "minimalistic-assert": { |
|
520 |
+ "version": "1.0.1", |
|
521 |
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", |
|
522 |
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", |
|
523 |
+ "dev": true |
|
524 |
+ }, |
|
525 |
+ "minimalistic-crypto-utils": { |
|
526 |
+ "version": "1.0.1", |
|
527 |
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", |
|
528 |
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", |
|
529 |
+ "dev": true |
|
530 |
+ }, |
|
531 |
+ "node-libs-browser": { |
|
532 |
+ "version": "2.2.1", |
|
533 |
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", |
|
534 |
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", |
|
535 |
+ "dev": true, |
|
536 |
+ "requires": { |
|
537 |
+ "assert": "^1.1.1", |
|
538 |
+ "browserify-zlib": "^0.2.0", |
|
539 |
+ "buffer": "^4.3.0", |
|
540 |
+ "console-browserify": "^1.1.0", |
|
541 |
+ "constants-browserify": "^1.0.0", |
|
542 |
+ "crypto-browserify": "^3.11.0", |
|
543 |
+ "domain-browser": "^1.1.1", |
|
544 |
+ "events": "^3.0.0", |
|
545 |
+ "https-browserify": "^1.0.0", |
|
546 |
+ "os-browserify": "^0.3.0", |
|
547 |
+ "path-browserify": "0.0.1", |
|
548 |
+ "process": "^0.11.10", |
|
549 |
+ "punycode": "^1.2.4", |
|
550 |
+ "querystring-es3": "^0.2.0", |
|
551 |
+ "readable-stream": "^2.3.3", |
|
552 |
+ "stream-browserify": "^2.0.1", |
|
553 |
+ "stream-http": "^2.7.2", |
|
554 |
+ "string_decoder": "^1.0.0", |
|
555 |
+ "timers-browserify": "^2.0.4", |
|
556 |
+ "tty-browserify": "0.0.0", |
|
557 |
+ "url": "^0.11.0", |
|
558 |
+ "util": "^0.11.0", |
|
559 |
+ "vm-browserify": "^1.0.1" |
|
560 |
+ } |
|
561 |
+ }, |
|
562 |
+ "object-assign": { |
|
563 |
+ "version": "4.1.1", |
|
564 |
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", |
|
565 |
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" |
|
566 |
+ }, |
|
567 |
+ "os-browserify": { |
|
568 |
+ "version": "0.3.0", |
|
569 |
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", |
|
570 |
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", |
|
571 |
+ "dev": true |
|
572 |
+ }, |
|
573 |
+ "os-shim": { |
|
574 |
+ "version": "0.1.3", |
|
575 |
+ "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", |
|
576 |
+ "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", |
|
577 |
+ "dev": true |
|
578 |
+ }, |
|
579 |
+ "pako": { |
|
580 |
+ "version": "1.0.11", |
|
581 |
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", |
|
582 |
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", |
|
583 |
+ "dev": true |
|
584 |
+ }, |
|
585 |
+ "parse-asn1": { |
|
586 |
+ "version": "5.1.6", |
|
587 |
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", |
|
588 |
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", |
|
589 |
+ "dev": true, |
|
590 |
+ "requires": { |
|
591 |
+ "asn1.js": "^5.2.0", |
|
592 |
+ "browserify-aes": "^1.0.0", |
|
593 |
+ "evp_bytestokey": "^1.0.0", |
|
594 |
+ "pbkdf2": "^3.0.3", |
|
595 |
+ "safe-buffer": "^5.1.1" |
|
596 |
+ } |
|
597 |
+ }, |
|
598 |
+ "path-browserify": { |
|
599 |
+ "version": "0.0.1", |
|
600 |
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", |
|
601 |
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", |
|
602 |
+ "dev": true |
|
603 |
+ }, |
|
604 |
+ "pbkdf2": { |
|
605 |
+ "version": "3.1.2", |
|
606 |
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", |
|
607 |
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", |
|
608 |
+ "dev": true, |
|
609 |
+ "requires": { |
|
610 |
+ "create-hash": "^1.1.2", |
|
611 |
+ "create-hmac": "^1.1.4", |
|
612 |
+ "ripemd160": "^2.0.1", |
|
613 |
+ "safe-buffer": "^5.0.1", |
|
614 |
+ "sha.js": "^2.4.8" |
|
615 |
+ } |
|
616 |
+ }, |
|
617 |
+ "pre-commit": { |
|
618 |
+ "version": "1.2.2", |
|
619 |
+ "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", |
|
620 |
+ "integrity": "sha1-287g7p3nI15X95xW186UZBpp7sY=", |
|
621 |
+ "dev": true, |
|
622 |
+ "requires": { |
|
623 |
+ "cross-spawn": "^5.0.1", |
|
624 |
+ "spawn-sync": "^1.0.15", |
|
625 |
+ "which": "1.2.x" |
|
626 |
+ } |
|
627 |
+ }, |
|
628 |
+ "process": { |
|
629 |
+ "version": "0.11.10", |
|
630 |
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", |
|
631 |
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", |
|
632 |
+ "dev": true |
|
633 |
+ }, |
|
634 |
+ "process-nextick-args": { |
|
635 |
+ "version": "2.0.1", |
|
636 |
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", |
|
637 |
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", |
|
638 |
+ "dev": true |
|
639 |
+ }, |
|
640 |
+ "pseudomap": { |
|
641 |
+ "version": "1.0.2", |
|
642 |
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", |
|
643 |
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", |
|
644 |
+ "dev": true |
|
645 |
+ }, |
|
646 |
+ "public-encrypt": { |
|
647 |
+ "version": "4.0.3", |
|
648 |
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", |
|
649 |
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", |
|
650 |
+ "dev": true, |
|
651 |
+ "requires": { |
|
652 |
+ "bn.js": "^4.1.0", |
|
653 |
+ "browserify-rsa": "^4.0.0", |
|
654 |
+ "create-hash": "^1.1.0", |
|
655 |
+ "parse-asn1": "^5.0.0", |
|
656 |
+ "randombytes": "^2.0.1", |
|
657 |
+ "safe-buffer": "^5.1.2" |
|
658 |
+ }, |
|
659 |
+ "dependencies": { |
|
660 |
+ "bn.js": { |
|
661 |
+ "version": "4.12.0", |
|
662 |
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", |
|
663 |
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", |
|
664 |
+ "dev": true |
|
665 |
+ } |
|
666 |
+ } |
|
667 |
+ }, |
|
668 |
+ "punycode": { |
|
669 |
+ "version": "1.4.1", |
|
670 |
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", |
|
671 |
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", |
|
672 |
+ "dev": true |
|
673 |
+ }, |
|
674 |
+ "querystring": { |
|
675 |
+ "version": "0.2.0", |
|
676 |
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", |
|
677 |
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", |
|
678 |
+ "dev": true |
|
679 |
+ }, |
|
680 |
+ "querystring-es3": { |
|
681 |
+ "version": "0.2.1", |
|
682 |
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", |
|
683 |
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", |
|
684 |
+ "dev": true |
|
685 |
+ }, |
|
686 |
+ "randombytes": { |
|
687 |
+ "version": "2.1.0", |
|
688 |
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", |
|
689 |
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", |
|
690 |
+ "dev": true, |
|
691 |
+ "requires": { |
|
692 |
+ "safe-buffer": "^5.1.0" |
|
693 |
+ } |
|
694 |
+ }, |
|
695 |
+ "randomfill": { |
|
696 |
+ "version": "1.0.4", |
|
697 |
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", |
|
698 |
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", |
|
699 |
+ "dev": true, |
|
700 |
+ "requires": { |
|
701 |
+ "randombytes": "^2.0.5", |
|
702 |
+ "safe-buffer": "^5.1.0" |
|
703 |
+ } |
|
704 |
+ }, |
|
705 |
+ "react": { |
|
706 |
+ "version": "17.0.2", |
|
707 |
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", |
|
708 |
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", |
|
709 |
+ "requires": { |
|
710 |
+ "loose-envify": "^1.1.0", |
|
711 |
+ "object-assign": "^4.1.1" |
|
712 |
+ } |
|
713 |
+ }, |
|
714 |
+ "react-dom": { |
|
715 |
+ "version": "17.0.2", |
|
716 |
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", |
|
717 |
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", |
|
718 |
+ "requires": { |
|
719 |
+ "loose-envify": "^1.1.0", |
|
720 |
+ "object-assign": "^4.1.1", |
|
721 |
+ "scheduler": "^0.20.2" |
|
722 |
+ } |
|
723 |
+ }, |
|
724 |
+ "readable-stream": { |
|
725 |
+ "version": "2.3.7", |
|
726 |
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", |
|
727 |
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", |
|
728 |
+ "dev": true, |
|
729 |
+ "requires": { |
|
730 |
+ "core-util-is": "~1.0.0", |
|
731 |
+ "inherits": "~2.0.3", |
|
732 |
+ "isarray": "~1.0.0", |
|
733 |
+ "process-nextick-args": "~2.0.0", |
|
734 |
+ "safe-buffer": "~5.1.1", |
|
735 |
+ "string_decoder": "~1.1.1", |
|
736 |
+ "util-deprecate": "~1.0.1" |
|
737 |
+ } |
|
738 |
+ }, |
|
739 |
+ "readline-sync": { |
|
740 |
+ "version": "1.4.10", |
|
741 |
+ "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", |
|
742 |
+ "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", |
|
743 |
+ "dev": true |
|
744 |
+ }, |
|
745 |
+ "ripemd160": { |
|
746 |
+ "version": "2.0.2", |
|
747 |
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", |
|
748 |
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", |
|
749 |
+ "dev": true, |
|
750 |
+ "requires": { |
|
751 |
+ "hash-base": "^3.0.0", |
|
752 |
+ "inherits": "^2.0.1" |
|
753 |
+ } |
|
754 |
+ }, |
|
755 |
+ "safe-buffer": { |
|
756 |
+ "version": "5.1.2", |
|
757 |
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", |
|
758 |
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", |
|
759 |
+ "dev": true |
|
760 |
+ }, |
|
761 |
+ "safer-buffer": { |
|
762 |
+ "version": "2.1.2", |
|
763 |
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
|
764 |
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", |
|
765 |
+ "dev": true |
|
766 |
+ }, |
|
767 |
+ "scheduler": { |
|
768 |
+ "version": "0.20.2", |
|
769 |
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", |
|
770 |
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", |
|
771 |
+ "requires": { |
|
772 |
+ "loose-envify": "^1.1.0", |
|
773 |
+ "object-assign": "^4.1.1" |
|
774 |
+ } |
|
775 |
+ }, |
|
776 |
+ "setimmediate": { |
|
777 |
+ "version": "1.0.5", |
|
778 |
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", |
|
779 |
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", |
|
780 |
+ "dev": true |
|
781 |
+ }, |
|
782 |
+ "sha.js": { |
|
783 |
+ "version": "2.4.11", |
|
784 |
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", |
|
785 |
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", |
|
786 |
+ "dev": true, |
|
787 |
+ "requires": { |
|
788 |
+ "inherits": "^2.0.1", |
|
789 |
+ "safe-buffer": "^5.0.1" |
|
790 |
+ } |
|
791 |
+ }, |
|
792 |
+ "shadow-cljs": { |
|
793 |
+ "version": "2.16.12", |
|
794 |
+ "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.16.12.tgz", |
|
795 |
+ "integrity": "sha512-6JqOhN5X3n0IkxA/gSUcZ1lImwcW1LmpgzlaBDOC/u/pIysdNm0tiOxpOTEnExl9nKZBS/EYS7bXIIInywPJUA==", |
|
796 |
+ "dev": true, |
|
797 |
+ "requires": { |
|
798 |
+ "node-libs-browser": "^2.2.1", |
|
799 |
+ "readline-sync": "^1.4.7", |
|
800 |
+ "shadow-cljs-jar": "1.3.2", |
|
801 |
+ "source-map-support": "^0.4.15", |
|
802 |
+ "which": "^1.3.1", |
|
803 |
+ "ws": "^7.4.6" |
|
804 |
+ }, |
|
805 |
+ "dependencies": { |
|
806 |
+ "which": { |
|
807 |
+ "version": "1.3.1", |
|
808 |
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", |
|
809 |
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", |
|
810 |
+ "dev": true, |
|
811 |
+ "requires": { |
|
812 |
+ "isexe": "^2.0.0" |
|
813 |
+ } |
|
814 |
+ } |
|
815 |
+ } |
|
816 |
+ }, |
|
817 |
+ "shadow-cljs-jar": { |
|
818 |
+ "version": "1.3.2", |
|
819 |
+ "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.2.tgz", |
|
820 |
+ "integrity": "sha512-XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg==", |
|
821 |
+ "dev": true |
|
822 |
+ }, |
|
823 |
+ "shebang-command": { |
|
824 |
+ "version": "1.2.0", |
|
825 |
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", |
|
826 |
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", |
|
827 |
+ "dev": true, |
|
828 |
+ "requires": { |
|
829 |
+ "shebang-regex": "^1.0.0" |
|
830 |
+ } |
|
831 |
+ }, |
|
832 |
+ "shebang-regex": { |
|
833 |
+ "version": "1.0.0", |
|
834 |
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", |
|
835 |
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", |
|
836 |
+ "dev": true |
|
837 |
+ }, |
|
838 |
+ "source-map": { |
|
839 |
+ "version": "0.5.7", |
|
840 |
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", |
|
841 |
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", |
|
842 |
+ "dev": true |
|
843 |
+ }, |
|
844 |
+ "source-map-support": { |
|
845 |
+ "version": "0.4.18", |
|
846 |
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", |
|
847 |
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", |
|
848 |
+ "dev": true, |
|
849 |
+ "requires": { |
|
850 |
+ "source-map": "^0.5.6" |
|
851 |
+ } |
|
852 |
+ }, |
|
853 |
+ "spawn-sync": { |
|
854 |
+ "version": "1.0.15", |
|
855 |
+ "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", |
|
856 |
+ "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", |
|
857 |
+ "dev": true, |
|
858 |
+ "requires": { |
|
859 |
+ "concat-stream": "^1.4.7", |
|
860 |
+ "os-shim": "^0.1.2" |
|
861 |
+ } |
|
862 |
+ }, |
|
863 |
+ "stream-browserify": { |
|
864 |
+ "version": "2.0.2", |
|
865 |
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", |
|
866 |
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", |
|
867 |
+ "dev": true, |
|
868 |
+ "requires": { |
|
869 |
+ "inherits": "~2.0.1", |
|
870 |
+ "readable-stream": "^2.0.2" |
|
871 |
+ } |
|
872 |
+ }, |
|
873 |
+ "stream-http": { |
|
874 |
+ "version": "2.8.3", |
|
875 |
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", |
|
876 |
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", |
|
877 |
+ "dev": true, |
|
878 |
+ "requires": { |
|
879 |
+ "builtin-status-codes": "^3.0.0", |
|
880 |
+ "inherits": "^2.0.1", |
|
881 |
+ "readable-stream": "^2.3.6", |
|
882 |
+ "to-arraybuffer": "^1.0.0", |
|
883 |
+ "xtend": "^4.0.0" |
|
884 |
+ } |
|
885 |
+ }, |
|
886 |
+ "string_decoder": { |
|
887 |
+ "version": "1.1.1", |
|
888 |
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", |
|
889 |
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
|
890 |
+ "dev": true, |
|
891 |
+ "requires": { |
|
892 |
+ "safe-buffer": "~5.1.0" |
|
893 |
+ } |
|
894 |
+ }, |
|
895 |
+ "timers-browserify": { |
|
896 |
+ "version": "2.0.12", |
|
897 |
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", |
|
898 |
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", |
|
899 |
+ "dev": true, |
|
900 |
+ "requires": { |
|
901 |
+ "setimmediate": "^1.0.4" |
|
902 |
+ } |
|
903 |
+ }, |
|
904 |
+ "to-arraybuffer": { |
|
905 |
+ "version": "1.0.1", |
|
906 |
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", |
|
907 |
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", |
|
908 |
+ "dev": true |
|
909 |
+ }, |
|
910 |
+ "tty-browserify": { |
|
911 |
+ "version": "0.0.0", |
|
912 |
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", |
|
913 |
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", |
|
914 |
+ "dev": true |
|
915 |
+ }, |
|
916 |
+ "typedarray": { |
|
917 |
+ "version": "0.0.6", |
|
918 |
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", |
|
919 |
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", |
|
920 |
+ "dev": true |
|
921 |
+ }, |
|
922 |
+ "url": { |
|
923 |
+ "version": "0.11.0", |
|
924 |
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", |
|
925 |
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", |
|
926 |
+ "dev": true, |
|
927 |
+ "requires": { |
|
928 |
+ "punycode": "1.3.2", |
|
929 |
+ "querystring": "0.2.0" |
|
930 |
+ }, |
|
931 |
+ "dependencies": { |
|
932 |
+ "punycode": { |
|
933 |
+ "version": "1.3.2", |
|
934 |
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", |
|
935 |
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", |
|
936 |
+ "dev": true |
|
937 |
+ } |
|
938 |
+ } |
|
939 |
+ }, |
|
940 |
+ "util": { |
|
941 |
+ "version": "0.11.1", |
|
942 |
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", |
|
943 |
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", |
|
944 |
+ "dev": true, |
|
945 |
+ "requires": { |
|
946 |
+ "inherits": "2.0.3" |
|
947 |
+ }, |
|
948 |
+ "dependencies": { |
|
949 |
+ "inherits": { |
|
950 |
+ "version": "2.0.3", |
|
951 |
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", |
|
952 |
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", |
|
953 |
+ "dev": true |
|
954 |
+ } |
|
955 |
+ } |
|
956 |
+ }, |
|
957 |
+ "util-deprecate": { |
|
958 |
+ "version": "1.0.2", |
|
959 |
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", |
|
960 |
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", |
|
961 |
+ "dev": true |
|
962 |
+ }, |
|
963 |
+ "vm-browserify": { |
|
964 |
+ "version": "1.1.2", |
|
965 |
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", |
|
966 |
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", |
|
967 |
+ "dev": true |
|
968 |
+ }, |
|
969 |
+ "which": { |
|
970 |
+ "version": "1.2.14", |
|
971 |
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", |
|
972 |
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", |
|
973 |
+ "dev": true, |
|
974 |
+ "requires": { |
|
975 |
+ "isexe": "^2.0.0" |
|
976 |
+ } |
|
977 |
+ }, |
|
978 |
+ "ws": { |
|
979 |
+ "version": "7.5.7", |
|
980 |
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", |
|
981 |
+ "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", |
|
982 |
+ "dev": true |
|
983 |
+ }, |
|
984 |
+ "xtend": { |
|
985 |
+ "version": "4.0.2", |
|
986 |
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", |
|
987 |
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", |
|
988 |
+ "dev": true |
|
989 |
+ }, |
|
990 |
+ "yallist": { |
|
991 |
+ "version": "2.1.2", |
|
992 |
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", |
|
993 |
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", |
|
994 |
+ "dev": true |
|
995 |
+ } |
|
996 |
+ } |
|
997 |
+} |
0 | 998 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,25 @@ |
1 |
+{ |
|
2 |
+ "name": "jambda", |
|
3 |
+ "scripts": { |
|
4 |
+ "ancient": "clojure -Sdeps '{:deps {com.github.liquidz/antq {:mvn/version \"RELEASE\"}}}' -m antq.core", |
|
5 |
+ "watch": "npx shadow-cljs watch app browser-test karma-test", |
|
6 |
+ "build": "npx shadow-cljs compile app", |
|
7 |
+ "release": "npx shadow-cljs release app", |
|
8 |
+ "build-report": "npx shadow-cljs run shadow.cljs.build-report app target/build-report.html", |
|
9 |
+ "lint": "clj-kondo --lint src", |
|
10 |
+ "test": "npx shadow-cljs test" |
|
11 |
+ }, |
|
12 |
+ "pre-commit": [ |
|
13 |
+ "lint", |
|
14 |
+ "build" |
|
15 |
+ ], |
|
16 |
+ "dependencies": { |
|
17 |
+ "highlight.js": "11.1.0", |
|
18 |
+ "react": "17.0.2", |
|
19 |
+ "react-dom": "17.0.2" |
|
20 |
+ }, |
|
21 |
+ "devDependencies": { |
|
22 |
+ "shadow-cljs": "2.16.12", |
|
23 |
+ "pre-commit": "1.2.2" |
|
24 |
+ } |
|
25 |
+} |
0 | 26 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,15 @@ |
1 |
+<!DOCTYPE html> |
|
2 |
+<html lang="en"> |
|
3 |
+ <head> |
|
4 |
+ <meta charset='utf-8'> |
|
5 |
+ <meta name="viewport" content="width=device-width,initial-scale=1"> |
|
6 |
+ <title>jambda</title> |
|
7 |
+ </head> |
|
8 |
+ <body> |
|
9 |
+ <noscript> |
|
10 |
+ jambda is a JavaScript app. Please enable JavaScript to continue. |
|
11 |
+ </noscript> |
|
12 |
+ <div id="app"></div> |
|
13 |
+ <script src="/js/compiled/app.js"></script> |
|
14 |
+ </body> |
|
15 |
+</html> |
0 | 16 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,43 @@ |
1 |
+{:nrepl {:port 8777} |
|
2 |
+ |
|
3 |
+ |
|
4 |
+ |
|
5 |
+ :source-paths ["src" "test"] |
|
6 |
+ |
|
7 |
+ :dependencies |
|
8 |
+ [[reagent "1.1.0"] |
|
9 |
+ [re-frame "1.2.0"] |
|
10 |
+ [day8.re-frame/tracing "0.6.2"] |
|
11 |
+ |
|
12 |
+ [binaryage/devtools "1.0.4"] |
|
13 |
+ [day8.re-frame/re-frame-10x "1.2.2"] |
|
14 |
+ [day8/shadow-git-inject "0.0.5"]] |
|
15 |
+ |
|
16 |
+ :build-defaults |
|
17 |
+ {:build-hooks [(shadow-git-inject.core/hook)]} |
|
18 |
+ |
|
19 |
+ :dev-http |
|
20 |
+ {8280 "resources/public" |
|
21 |
+ 8290 "target/browser-test"} |
|
22 |
+ |
|
23 |
+ :builds |
|
24 |
+ {:app |
|
25 |
+ {:target :browser |
|
26 |
+ :output-dir "resources/public/js/compiled" |
|
27 |
+ :asset-path "/js/compiled" |
|
28 |
+ :modules |
|
29 |
+ {:app {:init-fn jambda.core/init}} |
|
30 |
+ :compiler-options |
|
31 |
+ {:closure-defines |
|
32 |
+ { jambda.config/version :shadow-git-inject/version}} |
|
33 |
+ :devtools |
|
34 |
+ {:preloads [day8.re-frame-10x.preload]} |
|
35 |
+ :dev |
|
36 |
+ {:compiler-options |
|
37 |
+ {:closure-defines |
|
38 |
+ { re-frame.trace.trace-enabled? true |
|
39 |
+ day8.re-frame.tracing.trace-enabled? true}}} |
|
40 |
+ :release |
|
41 |
+ {:build-options |
|
42 |
+ {:ns-aliases |
|
43 |
+ {day8.re-frame.tracing day8.re-frame.tracing-stubs}}}}}} |
0 | 7 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,24 @@ |
1 |
+(ns jambda.core |
|
2 |
+ (:require |
|
3 |
+ [reagent.dom :as rdom] |
|
4 |
+ [re-frame.core :as re-frame] |
|
5 |
+ [jambda.events :as events] |
|
6 |
+ [jambda.views :as views] |
|
7 |
+ [jambda.config :as config] |
|
8 |
+ )) |
|
9 |
+ |
|
10 |
+ |
|
11 |
+(defn dev-setup [] |
|
12 |
+ (when config/debug? |
|
13 |
+ (println "dev mode"))) |
|
14 |
+ |
|
15 |
+(defn ^:dev/after-load mount-root [] |
|
16 |
+ (re-frame/clear-subscription-cache!) |
|
17 |
+ (let [root-el (.getElementById js/document "app")] |
|
18 |
+ (rdom/unmount-component-at-node root-el) |
|
19 |
+ (rdom/render [views/main-panel] root-el))) |
|
20 |
+ |
|
21 |
+(defn init [] |
|
22 |
+ (re-frame/dispatch-sync [::events/initialize-db]) |
|
23 |
+ (dev-setup) |
|
24 |
+ (mount-root)) |
0 | 9 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,13 @@ |
1 |
+(ns jambda.views |
|
2 |
+ (:require |
|
3 |
+ [re-frame.core :as re-frame] |
|
4 |
+ [jambda.subs :as subs] |
|
5 |
+ [jambda.config :as config] |
|
6 |
+ )) |
|
7 |
+ |
|
8 |
+(defn main-panel [] |
|
9 |
+ (let [name (re-frame/subscribe [::subs/name])] |
|
10 |
+ [:div |
|
11 |
+ [:h1 |
|
12 |
+ "Hello from " @name". Version " config/version] |
|
13 |
+ ])) |