├── .DS_Store
├── .gitignore
├── README.md
├── climbing-harness-icon.svg
├── example_config.json
├── gradientGen.py
├── package-lock.json
├── package.json
├── public
├── actionables-sidebar.css
├── actionables-sidebar.html
├── actionables-sidebar.js
├── actionables.html
├── actionables.js
├── climbing-harness-sidebar.css
├── climbing-harness-sidebar.html
├── climbing-harness-sidebar.js
├── climbing-harness.html
├── climbing-harness.js
├── create-issue-modal.html
├── create-issue.html
├── create-issue.js
├── set-complete.html
├── set-complete.js
├── set-incomplete.html
├── set-incomplete.js
├── set-uncertain.html
├── set-uncertain.js
├── tree-logic.html
└── tree-logic.js
└── simpleserver.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/holochain/soa-toolbox/4ae270c6e794dd8b872edfb484b6ba52ff2e9f62/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | config.json
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # soa-toolbox
2 |
3 | > Tools for using an Acorn State of Affairs on Miro
4 |
5 | ## Background
6 |
7 | The architecture here is that we serve an HTML file which has the realtime board SDK in it, plus our own custom JS that uses that.
8 |
9 | This HTML gets loaded as an iframe into any realtime board for the Holo team.
10 |
11 | The plugins currently present these functionalities:
12 | * Calculate subtree size — updates selected widget and children with calculations.
13 | * Set node status — change nodes to uncertain, incomplete, or complete
14 | * Create GitHub issue — create a GitHub issue out of the selected node in a repository of choice
15 |
16 | This is meant for the purposes of being able to better track our work and progress.
17 |
18 | The data must be structured in a particular way for this to work.
19 |
20 | There are certain colors that must be used:
21 | - This red #f24726 as a background as "Uncertain"
22 | - This orange #fac710 as a background as "Incomplete"
23 | - This light green #8fd14f as a background as "Complete"
24 | - This darker green as #0ca789 as a border for a "Small"
25 |
26 | An uncertain is something which hasn't been broken down into smalls yet, thus it is unknown how long it will take.
27 | A small is a thing which is discrete and in itself attainable, and shouldn't represent more than 1 days worth of work (otherwise it's not a small).
28 |
29 | In theory, nodes higher in the tree should be able to have their color set automatically, while only the leaves/smalls should have to be updated manually.
30 |
31 | Additionally, **and this is important**, edges must be drawn FROM the child, TO the parent, as this is how RTB stores the data. The direction of the arrow of a line is not available as data, and definitely not available to indicate the directionality of the relationship. If we are to be able to accurately measure our work, and have this tool be useful, all edges must be drawn in the correct direction, that is, you must literally click and drag the line from the child node to the parent node.
32 |
33 | ## Install
34 |
35 | ### Dependencies
36 |
37 | * [ngrok](https://ngrok.com/) (for development)
38 | * [nodejs](https://nodejs.org)
39 | * You will need admin access to your Miro team.
40 |
41 | 1. #### **Set up ngrok** (for development)
42 | 1. Start ngrok on port 8088 to open a tunnel from the web to your local server: `ngrok http 8088` or `./ngrok http 8088`
43 | 2. Copy the public https address, like `https://958648dd.ngrok.io`, to your clipboard.
44 | 2. #### **Set up Miro**
45 | 1. Open Miro settings: Miro > [Your organization] > Settings > Profile settings > Your apps [Beta].
46 | 2. For each web plugin, create a new app.
47 | 3. Give it the following scopes:
48 | * `boards:read`
49 | * `boards:write`
50 | * `boards_content:read`
51 | * `board_content:write`
52 | 4. Turn on the Enable web-plugin toggle
53 | 5. Select `client:plugins_for_account`
54 | 5. In the Iframe url box, combine the ngrok url with the path to the html file for the plugin. For example, the url for the the set-complete plugin would look like `https://958648dd.ngrok.io/set-complete.html`.
55 | 6. Click Install app and get OAuth Token. Select your Miro team. You won't need the OAuth token you receive.
56 | 3. #### **Create config file**
57 | 1. *You'll need a config file so that the create-issue web-plugin to know about and have access to your GitHub repos. An example config file to copy and edit is provided.*
58 | 2. Create a file called `config.json`
59 | 3. For each repo you'd like to add issues to, create an entry in the config file containing:
60 | * The unique path to your GitHub repo. This is usually a username or organization followed by a slash and then the repo name. For example: `holochain/soa-toolbox`
61 | * A [GitHub Personal Access Token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) with repo permissions.
62 |
63 | [comment]: # (Watch out! There are non-breaking zero-width space characters in some URLs above)
64 |
65 | ## Usage
66 |
67 | In a new terminal, start the nodejs server, which has API endpoints, and also serves static files:
68 | `npm run start`
69 |
70 | You should see plugins on your Miro board.
71 |
72 | Make changes to the code and live test your work in Miro. You don't have to restart the nodejs server as long as you don't make changes to `simpleserver.js`, just run the command `reloadSandbox()` in the developer console in your browser to reload the plugins.
73 |
74 | ## Documentation for RTB API
75 |
76 | * [Miro SDK Reference](https://developers.miro.com/docs/sdk-doc)
77 | * [Miro Web-plugin Examples](https://developers.miro.com/docs/web-plugin-examples)
78 |
--------------------------------------------------------------------------------
/climbing-harness-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/example_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "repos": {
3 | "user1/repo1": {
4 | "accessToken": "15bb0f2e881307af7ea0a9451bbf39767229422e"
5 | },
6 | "user2/repo2": {
7 | "accessToken": "15bb0f2f081307af7e88a9451bbf92775982643d"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/gradientGen.py:
--------------------------------------------------------------------------------
1 | # The code used to generate the tree-logic SVG icon
2 |
3 | def gradient():
4 | center = 12
5 |
6 | x = 4
7 | yLengths = {
8 | 0:8,
9 | 1:8,
10 | 2:9,
11 | 3:13,
12 | 4:14,
13 | 5:14,
14 | 6:14,
15 | 7:15,
16 | 8:15,
17 | 9:15,
18 | 10:16,
19 | 11:16.5,
20 | 12:16.5,
21 | 13:16.5,
22 | 14:16.5,
23 | 15:16.5,
24 | 16:16.5,
25 | 17:16.5,
26 | 18:16.5,
27 | 19:16,
28 | 20:15,
29 | 21:15,
30 | 22:15,
31 | 23:15,
32 | 24:15,
33 | 25:14,
34 | 26:14,
35 | 27:14,
36 | 28:10,
37 | 29:9,
38 | 30:8,
39 | 31:8}
40 |
41 | colors = {
42 | 0:9,
43 | 1:9,
44 | 2:10,
45 | 3:10,
46 | 4:10,
47 | 5:10,
48 | 6:10+(4.2*1),
49 | 7:10+(4.2*2),
50 | 8:10+(4.2*3),
51 | 9:10+(4.2*4),
52 | 10:10+(4.2*5),
53 | 11:10+(4.2*6),
54 | 12:10+(4.2*7),
55 | 13:10+(4.2*8), # 43.6
56 | 14:47,
57 | 15:47,
58 | 16:47,
59 | 17:47,
60 | 18:47+(4.7*1),
61 | 19:47+(4.7*2),
62 | 20:47+(4.7*3),
63 | 21:47+(4.7*4),
64 | 22:47+(4.7*5),
65 | 23:47+(4.7*6),
66 | 24:47+(4.7*7),
67 | 25:47+(4.7*8),
68 | 26:90,
69 | 27:90,
70 | 28:90,
71 | 29:90,
72 | 30:90,
73 | 31:90,
74 | 32:90}
75 |
76 | red = 10
77 | orange = 47
78 | green = 90
79 |
80 | yMin = 8
81 | yMax = 16
82 |
83 | color = 10
84 |
85 | for i in range(32):
86 | print(f'')
87 | x += .5
88 | yLength = yLengths[i]
89 | yMin = 12 - (yLength/2)
90 | yMax = 12 + (yLength/2)
91 |
92 | color = colors[i]
93 |
94 | def gear():
95 | print('')
96 | print('')
97 |
98 | def icon():
99 | print('')
103 |
104 | icon()
105 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "soa-scraper",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "accepts": {
8 | "version": "1.3.7",
9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
11 | "requires": {
12 | "mime-types": "~2.1.24",
13 | "negotiator": "0.6.2"
14 | }
15 | },
16 | "ajv": {
17 | "version": "6.10.2",
18 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
19 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
20 | "requires": {
21 | "fast-deep-equal": "^2.0.1",
22 | "fast-json-stable-stringify": "^2.0.0",
23 | "json-schema-traverse": "^0.4.1",
24 | "uri-js": "^4.2.2"
25 | }
26 | },
27 | "array-flatten": {
28 | "version": "1.1.1",
29 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
30 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
31 | },
32 | "asn1": {
33 | "version": "0.2.4",
34 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
35 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
36 | "requires": {
37 | "safer-buffer": "~2.1.0"
38 | }
39 | },
40 | "assert-plus": {
41 | "version": "1.0.0",
42 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
43 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
44 | },
45 | "asynckit": {
46 | "version": "0.4.0",
47 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
48 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
49 | },
50 | "aws-sign2": {
51 | "version": "0.7.0",
52 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
53 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
54 | },
55 | "aws4": {
56 | "version": "1.8.0",
57 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
58 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
59 | },
60 | "bcrypt-pbkdf": {
61 | "version": "1.0.2",
62 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
63 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
64 | "requires": {
65 | "tweetnacl": "^0.14.3"
66 | }
67 | },
68 | "body-parser": {
69 | "version": "1.19.0",
70 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
71 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
72 | "requires": {
73 | "bytes": "3.1.0",
74 | "content-type": "~1.0.4",
75 | "debug": "2.6.9",
76 | "depd": "~1.1.2",
77 | "http-errors": "1.7.2",
78 | "iconv-lite": "0.4.24",
79 | "on-finished": "~2.3.0",
80 | "qs": "6.7.0",
81 | "raw-body": "2.4.0",
82 | "type-is": "~1.6.17"
83 | }
84 | },
85 | "bytes": {
86 | "version": "3.1.0",
87 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
88 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
89 | },
90 | "caseless": {
91 | "version": "0.12.0",
92 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
93 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
94 | },
95 | "combined-stream": {
96 | "version": "1.0.8",
97 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
98 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
99 | "requires": {
100 | "delayed-stream": "~1.0.0"
101 | }
102 | },
103 | "content-disposition": {
104 | "version": "0.5.3",
105 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
106 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
107 | "requires": {
108 | "safe-buffer": "5.1.2"
109 | }
110 | },
111 | "content-type": {
112 | "version": "1.0.4",
113 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
114 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
115 | },
116 | "cookie": {
117 | "version": "0.4.0",
118 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
119 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
120 | },
121 | "cookie-signature": {
122 | "version": "1.0.6",
123 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
124 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
125 | },
126 | "core-util-is": {
127 | "version": "1.0.2",
128 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
129 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
130 | },
131 | "cors": {
132 | "version": "2.8.5",
133 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
134 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
135 | "requires": {
136 | "object-assign": "^4",
137 | "vary": "^1"
138 | }
139 | },
140 | "dashdash": {
141 | "version": "1.14.1",
142 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
143 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
144 | "requires": {
145 | "assert-plus": "^1.0.0"
146 | }
147 | },
148 | "debug": {
149 | "version": "2.6.9",
150 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
151 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
152 | "requires": {
153 | "ms": "2.0.0"
154 | }
155 | },
156 | "delayed-stream": {
157 | "version": "1.0.0",
158 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
159 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
160 | },
161 | "depd": {
162 | "version": "1.1.2",
163 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
164 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
165 | },
166 | "destroy": {
167 | "version": "1.0.4",
168 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
169 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
170 | },
171 | "dotenv": {
172 | "version": "8.0.0",
173 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.0.0.tgz",
174 | "integrity": "sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg=="
175 | },
176 | "ecc-jsbn": {
177 | "version": "0.1.2",
178 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
179 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
180 | "requires": {
181 | "jsbn": "~0.1.0",
182 | "safer-buffer": "^2.1.0"
183 | }
184 | },
185 | "ee-first": {
186 | "version": "1.1.1",
187 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
188 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
189 | },
190 | "encodeurl": {
191 | "version": "1.0.2",
192 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
193 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
194 | },
195 | "escape-html": {
196 | "version": "1.0.3",
197 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
198 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
199 | },
200 | "etag": {
201 | "version": "1.8.1",
202 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
203 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
204 | },
205 | "express": {
206 | "version": "4.17.1",
207 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
208 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
209 | "requires": {
210 | "accepts": "~1.3.7",
211 | "array-flatten": "1.1.1",
212 | "body-parser": "1.19.0",
213 | "content-disposition": "0.5.3",
214 | "content-type": "~1.0.4",
215 | "cookie": "0.4.0",
216 | "cookie-signature": "1.0.6",
217 | "debug": "2.6.9",
218 | "depd": "~1.1.2",
219 | "encodeurl": "~1.0.2",
220 | "escape-html": "~1.0.3",
221 | "etag": "~1.8.1",
222 | "finalhandler": "~1.1.2",
223 | "fresh": "0.5.2",
224 | "merge-descriptors": "1.0.1",
225 | "methods": "~1.1.2",
226 | "on-finished": "~2.3.0",
227 | "parseurl": "~1.3.3",
228 | "path-to-regexp": "0.1.7",
229 | "proxy-addr": "~2.0.5",
230 | "qs": "6.7.0",
231 | "range-parser": "~1.2.1",
232 | "safe-buffer": "5.1.2",
233 | "send": "0.17.1",
234 | "serve-static": "1.14.1",
235 | "setprototypeof": "1.1.1",
236 | "statuses": "~1.5.0",
237 | "type-is": "~1.6.18",
238 | "utils-merge": "1.0.1",
239 | "vary": "~1.1.2"
240 | }
241 | },
242 | "extend": {
243 | "version": "3.0.2",
244 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
245 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
246 | },
247 | "extsprintf": {
248 | "version": "1.3.0",
249 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
250 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
251 | },
252 | "fast-deep-equal": {
253 | "version": "2.0.1",
254 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
255 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
256 | },
257 | "fast-json-stable-stringify": {
258 | "version": "2.0.0",
259 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
260 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
261 | },
262 | "finalhandler": {
263 | "version": "1.1.2",
264 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
265 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
266 | "requires": {
267 | "debug": "2.6.9",
268 | "encodeurl": "~1.0.2",
269 | "escape-html": "~1.0.3",
270 | "on-finished": "~2.3.0",
271 | "parseurl": "~1.3.3",
272 | "statuses": "~1.5.0",
273 | "unpipe": "~1.0.0"
274 | }
275 | },
276 | "forever-agent": {
277 | "version": "0.6.1",
278 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
279 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
280 | },
281 | "form-data": {
282 | "version": "2.3.3",
283 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
284 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
285 | "requires": {
286 | "asynckit": "^0.4.0",
287 | "combined-stream": "^1.0.6",
288 | "mime-types": "^2.1.12"
289 | }
290 | },
291 | "forwarded": {
292 | "version": "0.1.2",
293 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
294 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
295 | },
296 | "fresh": {
297 | "version": "0.5.2",
298 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
299 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
300 | },
301 | "getpass": {
302 | "version": "0.1.7",
303 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
304 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
305 | "requires": {
306 | "assert-plus": "^1.0.0"
307 | }
308 | },
309 | "har-schema": {
310 | "version": "2.0.0",
311 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
312 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
313 | },
314 | "har-validator": {
315 | "version": "5.1.3",
316 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
317 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
318 | "requires": {
319 | "ajv": "^6.5.5",
320 | "har-schema": "^2.0.0"
321 | }
322 | },
323 | "http-errors": {
324 | "version": "1.7.2",
325 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
326 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
327 | "requires": {
328 | "depd": "~1.1.2",
329 | "inherits": "2.0.3",
330 | "setprototypeof": "1.1.1",
331 | "statuses": ">= 1.5.0 < 2",
332 | "toidentifier": "1.0.0"
333 | }
334 | },
335 | "http-signature": {
336 | "version": "1.2.0",
337 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
338 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
339 | "requires": {
340 | "assert-plus": "^1.0.0",
341 | "jsprim": "^1.2.2",
342 | "sshpk": "^1.7.0"
343 | }
344 | },
345 | "iconv-lite": {
346 | "version": "0.4.24",
347 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
348 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
349 | "requires": {
350 | "safer-buffer": ">= 2.1.2 < 3"
351 | }
352 | },
353 | "inherits": {
354 | "version": "2.0.3",
355 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
356 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
357 | },
358 | "ipaddr.js": {
359 | "version": "1.9.0",
360 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
361 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
362 | },
363 | "is-typedarray": {
364 | "version": "1.0.0",
365 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
366 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
367 | },
368 | "isstream": {
369 | "version": "0.1.2",
370 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
371 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
372 | },
373 | "jsbn": {
374 | "version": "0.1.1",
375 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
376 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
377 | },
378 | "json-schema": {
379 | "version": "0.2.3",
380 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
381 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
382 | },
383 | "json-schema-traverse": {
384 | "version": "0.4.1",
385 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
386 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
387 | },
388 | "json-stringify-safe": {
389 | "version": "5.0.1",
390 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
391 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
392 | },
393 | "jsprim": {
394 | "version": "1.4.1",
395 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
396 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
397 | "requires": {
398 | "assert-plus": "1.0.0",
399 | "extsprintf": "1.3.0",
400 | "json-schema": "0.2.3",
401 | "verror": "1.10.0"
402 | }
403 | },
404 | "media-typer": {
405 | "version": "0.3.0",
406 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
407 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
408 | },
409 | "merge-descriptors": {
410 | "version": "1.0.1",
411 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
412 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
413 | },
414 | "methods": {
415 | "version": "1.1.2",
416 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
417 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
418 | },
419 | "mime": {
420 | "version": "1.6.0",
421 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
422 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
423 | },
424 | "mime-db": {
425 | "version": "1.40.0",
426 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
427 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
428 | },
429 | "mime-types": {
430 | "version": "2.1.24",
431 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
432 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
433 | "requires": {
434 | "mime-db": "1.40.0"
435 | }
436 | },
437 | "ms": {
438 | "version": "2.0.0",
439 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
440 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
441 | },
442 | "negotiator": {
443 | "version": "0.6.2",
444 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
445 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
446 | },
447 | "oauth-sign": {
448 | "version": "0.9.0",
449 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
450 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
451 | },
452 | "object-assign": {
453 | "version": "4.1.1",
454 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
455 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
456 | },
457 | "on-finished": {
458 | "version": "2.3.0",
459 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
460 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
461 | "requires": {
462 | "ee-first": "1.1.1"
463 | }
464 | },
465 | "parseurl": {
466 | "version": "1.3.3",
467 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
468 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
469 | },
470 | "path-to-regexp": {
471 | "version": "0.1.7",
472 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
473 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
474 | },
475 | "performance-now": {
476 | "version": "2.1.0",
477 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
478 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
479 | },
480 | "proxy-addr": {
481 | "version": "2.0.5",
482 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
483 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
484 | "requires": {
485 | "forwarded": "~0.1.2",
486 | "ipaddr.js": "1.9.0"
487 | }
488 | },
489 | "psl": {
490 | "version": "1.3.0",
491 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
492 | "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag=="
493 | },
494 | "punycode": {
495 | "version": "2.1.1",
496 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
497 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
498 | },
499 | "qs": {
500 | "version": "6.7.0",
501 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
502 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
503 | },
504 | "range-parser": {
505 | "version": "1.2.1",
506 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
507 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
508 | },
509 | "raw-body": {
510 | "version": "2.4.0",
511 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
512 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
513 | "requires": {
514 | "bytes": "3.1.0",
515 | "http-errors": "1.7.2",
516 | "iconv-lite": "0.4.24",
517 | "unpipe": "1.0.0"
518 | }
519 | },
520 | "request": {
521 | "version": "2.88.0",
522 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
523 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
524 | "requires": {
525 | "aws-sign2": "~0.7.0",
526 | "aws4": "^1.8.0",
527 | "caseless": "~0.12.0",
528 | "combined-stream": "~1.0.6",
529 | "extend": "~3.0.2",
530 | "forever-agent": "~0.6.1",
531 | "form-data": "~2.3.2",
532 | "har-validator": "~5.1.0",
533 | "http-signature": "~1.2.0",
534 | "is-typedarray": "~1.0.0",
535 | "isstream": "~0.1.2",
536 | "json-stringify-safe": "~5.0.1",
537 | "mime-types": "~2.1.19",
538 | "oauth-sign": "~0.9.0",
539 | "performance-now": "^2.1.0",
540 | "qs": "~6.5.2",
541 | "safe-buffer": "^5.1.2",
542 | "tough-cookie": "~2.4.3",
543 | "tunnel-agent": "^0.6.0",
544 | "uuid": "^3.3.2"
545 | },
546 | "dependencies": {
547 | "qs": {
548 | "version": "6.5.2",
549 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
550 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
551 | }
552 | }
553 | },
554 | "safe-buffer": {
555 | "version": "5.1.2",
556 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
557 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
558 | },
559 | "safer-buffer": {
560 | "version": "2.1.2",
561 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
562 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
563 | },
564 | "send": {
565 | "version": "0.17.1",
566 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
567 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
568 | "requires": {
569 | "debug": "2.6.9",
570 | "depd": "~1.1.2",
571 | "destroy": "~1.0.4",
572 | "encodeurl": "~1.0.2",
573 | "escape-html": "~1.0.3",
574 | "etag": "~1.8.1",
575 | "fresh": "0.5.2",
576 | "http-errors": "~1.7.2",
577 | "mime": "1.6.0",
578 | "ms": "2.1.1",
579 | "on-finished": "~2.3.0",
580 | "range-parser": "~1.2.1",
581 | "statuses": "~1.5.0"
582 | },
583 | "dependencies": {
584 | "ms": {
585 | "version": "2.1.1",
586 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
587 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
588 | }
589 | }
590 | },
591 | "serve-static": {
592 | "version": "1.14.1",
593 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
594 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
595 | "requires": {
596 | "encodeurl": "~1.0.2",
597 | "escape-html": "~1.0.3",
598 | "parseurl": "~1.3.3",
599 | "send": "0.17.1"
600 | }
601 | },
602 | "setprototypeof": {
603 | "version": "1.1.1",
604 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
605 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
606 | },
607 | "sshpk": {
608 | "version": "1.16.1",
609 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
610 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
611 | "requires": {
612 | "asn1": "~0.2.3",
613 | "assert-plus": "^1.0.0",
614 | "bcrypt-pbkdf": "^1.0.0",
615 | "dashdash": "^1.12.0",
616 | "ecc-jsbn": "~0.1.1",
617 | "getpass": "^0.1.1",
618 | "jsbn": "~0.1.0",
619 | "safer-buffer": "^2.0.2",
620 | "tweetnacl": "~0.14.0"
621 | }
622 | },
623 | "statuses": {
624 | "version": "1.5.0",
625 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
626 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
627 | },
628 | "toidentifier": {
629 | "version": "1.0.0",
630 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
631 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
632 | },
633 | "tough-cookie": {
634 | "version": "2.4.3",
635 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
636 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
637 | "requires": {
638 | "psl": "^1.1.24",
639 | "punycode": "^1.4.1"
640 | },
641 | "dependencies": {
642 | "punycode": {
643 | "version": "1.4.1",
644 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
645 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
646 | }
647 | }
648 | },
649 | "tunnel-agent": {
650 | "version": "0.6.0",
651 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
652 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
653 | "requires": {
654 | "safe-buffer": "^5.0.1"
655 | }
656 | },
657 | "tweetnacl": {
658 | "version": "0.14.5",
659 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
660 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
661 | },
662 | "type-is": {
663 | "version": "1.6.18",
664 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
665 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
666 | "requires": {
667 | "media-typer": "0.3.0",
668 | "mime-types": "~2.1.24"
669 | }
670 | },
671 | "unpipe": {
672 | "version": "1.0.0",
673 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
674 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
675 | },
676 | "uri-js": {
677 | "version": "4.2.2",
678 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
679 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
680 | "requires": {
681 | "punycode": "^2.1.0"
682 | }
683 | },
684 | "utils-merge": {
685 | "version": "1.0.1",
686 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
687 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
688 | },
689 | "uuid": {
690 | "version": "3.3.2",
691 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
692 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
693 | },
694 | "vary": {
695 | "version": "1.1.2",
696 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
697 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
698 | },
699 | "verror": {
700 | "version": "1.10.0",
701 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
702 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
703 | "requires": {
704 | "assert-plus": "^1.0.0",
705 | "core-util-is": "1.0.2",
706 | "extsprintf": "^1.2.0"
707 | }
708 | }
709 | }
710 | }
711 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "soa-scraper",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "simpleserver.js",
6 | "scripts": {
7 | "start": "node simpleserver.js",
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "cors": "^2.8.5",
14 | "dotenv": "^8.0.0",
15 | "express": "^4.17.1",
16 | "request": "^2.88.0",
17 | "serve-static": "^1.14.1"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/public/actionables-sidebar.css:
--------------------------------------------------------------------------------
1 | .scrollable-container {
2 | overflow-y: auto;
3 | position: absolute;
4 | bottom: 0;
5 | top: 63.5px;
6 | padding-right: 5%;
7 | }
8 | .rtb-sidebar-caption {
9 | font-size: 14px;
10 | font-weight: bold;
11 | color: rgba(0, 0, 0, 0.7);
12 | padding: 24px 0 20px 24px;
13 | }
14 | textarea {
15 | display: block;
16 | height: 25%;
17 | margin: 20px 0 0 20px;
18 | background-color: white;
19 | border-radius: 4px;
20 | border: .5;
21 | width: calc(100% - 40px);
22 | text-align: left;
23 | font-size: 14px;
24 | }
25 | .tip {
26 | color: #CCCCCC;
27 | margin: 20px 0 0 26px;
28 | }
29 | .node {
30 | margin: 20px 0 20px 10px;
31 | }
32 | .node-title {
33 | display: block;
34 | margin: 0 auto;
35 | width: 100%;
36 | text-align: center;
37 | }
38 | ul {
39 | padding-left: 5%;
40 | }
41 | li {
42 | list-style: none;
43 | margin: 2px 0 2px 0;
44 | padding: 2px 5px;
45 | }
46 | .nav-link {
47 | cursor: pointer;
48 | font-weight: 500;
49 | border: 1px solid black;
50 | }
51 | header {
52 | margin-left: 10px;
53 | font-weight: bold;
54 | font-size: larger;
55 | }
56 |
--------------------------------------------------------------------------------
/public/actionables-sidebar.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/public/actionables-sidebar.js:
--------------------------------------------------------------------------------
1 | miro.onReady(() => {
2 | // subscribe on user selected widgets
3 | miro.addListener(miro.enums.event.SELECTION_UPDATED, updateSidebar)
4 | // update the sidebar once when it first opens
5 | updateSidebar()
6 | })
7 |
8 | const MAX_NODES = 9999999
9 |
10 | // get the entire text of a node without any of the characters phloem adds
11 | function getFullTextFromNode(node) {
12 | html = node.text
13 | html = html.replace(/
48 |
49 |
50 |
51 |
52 | In which repo would you like to create this issue?
53 |
54 |
55 |
57 |
58 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |