diff options
author | Volpeon <git@volpeon.ink> | 2021-10-18 13:50:57 +0200 |
---|---|---|
committer | Volpeon <git@volpeon.ink> | 2021-10-18 13:50:57 +0200 |
commit | 8a6ad69c1e859db373a67c75f893853986750603 (patch) | |
tree | 92ddcffc840dc444c1a28a883a62fc8eea01958c | |
parent | Add presenting to excluded tags (diff) | |
download | feralbot-8a6ad69c1e859db373a67c75f893853986750603.tar.gz feralbot-8a6ad69c1e859db373a67c75f893853986750603.tar.bz2 feralbot-8a6ad69c1e859db373a67c75f893853986750603.zip |
Support posting a specific picture
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/api/e621/index.ts | 18 | ||||
-rw-r--r-- | src/config.ts | 2 | ||||
-rw-r--r-- | src/index.ts | 64 | ||||
-rw-r--r-- | yarn.lock | 179 |
5 files changed, 244 insertions, 20 deletions
diff --git a/package.json b/package.json index a88dbf9..22329e2 100644 --- a/package.json +++ b/package.json | |||
@@ -14,6 +14,7 @@ | |||
14 | "form-data": "^4.0.0", | 14 | "form-data": "^4.0.0", |
15 | "got": "^11.8.2", | 15 | "got": "^11.8.2", |
16 | "nanoid": "^3.1.30", | 16 | "nanoid": "^3.1.30", |
17 | "ts-command-line-args": "^2.1.0", | ||
17 | "ts-node": "^10.3.0", | 18 | "ts-node": "^10.3.0", |
18 | "typescript": "^4.4.4" | 19 | "typescript": "^4.4.4" |
19 | }, | 20 | }, |
diff --git a/src/api/e621/index.ts b/src/api/e621/index.ts index c8e0f44..411edae 100644 --- a/src/api/e621/index.ts +++ b/src/api/e621/index.ts | |||
@@ -26,7 +26,23 @@ export const client = got.extend({ | |||
26 | }, | 26 | }, |
27 | }); | 27 | }); |
28 | 28 | ||
29 | export async function randomPost() { | 29 | export async function getPost(id: number) { |
30 | const response = await client | ||
31 | .get("https://e926.net/posts.json", { | ||
32 | searchParams: { | ||
33 | tags: `id:${id}`, | ||
34 | }, | ||
35 | }) | ||
36 | .json<{ posts: readonly Post[] }>(); | ||
37 | |||
38 | if (!response.posts.length) { | ||
39 | throw new Error("No posts received"); | ||
40 | } | ||
41 | |||
42 | return response.posts[0]; | ||
43 | } | ||
44 | |||
45 | export async function getRandomPost() { | ||
30 | const queryIndex = Math.floor(Math.random() * config.e621.queries.length); | 46 | const queryIndex = Math.floor(Math.random() * config.e621.queries.length); |
31 | const query = config.e621.queries[queryIndex]; | 47 | const query = config.e621.queries[queryIndex]; |
32 | const page = Math.floor(Math.random() * (query.maxPage - 1)) + 1; | 48 | const page = Math.floor(Math.random() * (query.maxPage - 1)) + 1; |
diff --git a/src/config.ts b/src/config.ts index f6e7447..d854725 100644 --- a/src/config.ts +++ b/src/config.ts | |||
@@ -37,5 +37,5 @@ export default { | |||
37 | instance: "https://botsin.space/", | 37 | instance: "https://botsin.space/", |
38 | token: process.env.MASTODON_TOKEN, | 38 | token: process.env.MASTODON_TOKEN, |
39 | }, | 39 | }, |
40 | cw: ["gun"], | 40 | cw: ["gun", "blood"], |
41 | }; | 41 | }; |
diff --git a/src/index.ts b/src/index.ts index 34cd5f1..e2fee01 100644 --- a/src/index.ts +++ b/src/index.ts | |||
@@ -1,34 +1,49 @@ | |||
1 | import * as e621 from "./api/e621"; | 1 | import * as e621 from "./api/e621"; |
2 | import * as mastodon from "./api/mastodon"; | 2 | import * as mastodon from "./api/mastodon"; |
3 | import config from "./config"; | 3 | import config from "./config"; |
4 | import * as cliArgs from 'ts-command-line-args'; | ||
4 | 5 | ||
5 | (async () => { | 6 | const args = cliArgs.parse<{ |
6 | if (!config.mastodon.token) { | 7 | id?: number; |
7 | console.error("MASTODON_TOKEN not set"); | 8 | help?: boolean; |
8 | return; | 9 | }>( |
9 | } | 10 | { |
11 | id: { type: Number, optional: true }, | ||
12 | help: { type: Boolean, optional: true, alias: 'h' }, | ||
13 | }, | ||
14 | { | ||
15 | helpArg: 'help', | ||
16 | }, | ||
17 | ); | ||
18 | |||
19 | async function postRandomPicture() { | ||
20 | console.log("Fetching random post..."); | ||
21 | |||
22 | const { queryIndex, post } = await e621.getRandomPost(); | ||
23 | |||
24 | console.log(`Got ${post.id} via query ${queryIndex}`); | ||
25 | |||
26 | await handlePost(post); | ||
27 | } | ||
28 | |||
29 | async function postSpecificPicture(id: number) { | ||
30 | console.log("Fetching post ${id}..."); | ||
31 | |||
32 | const post = await e621.getPost(id); | ||
10 | 33 | ||
11 | console.log("Fetching post..."); | 34 | console.log(`Got ${post.id}`); |
35 | |||
36 | await handlePost(post); | ||
37 | } | ||
12 | 38 | ||
13 | const { queryIndex, post } = await e621.randomPost(); | 39 | async function handlePost(post: e621.Post) { |
14 | const source = post.sources.length ? post.sources[0] : undefined; | 40 | const source = post.sources.length ? post.sources[0] : undefined; |
15 | const cws = config.cw.filter((w) => post.tags.general.includes(w)); | 41 | const cws = config.cw.filter((w) => post.tags.general.includes(w)); |
16 | 42 | ||
17 | console.log(`Got ${post.id} via query ${queryIndex}`); | ||
18 | console.log(`Downloading image...`); | 43 | console.log(`Downloading image...`); |
19 | 44 | ||
20 | const file = await e621.client.get(post.file.url).buffer(); | 45 | const file = await e621.client.get(post.file.url).buffer(); |
21 | 46 | ||
22 | /*console.log(`Compressing...`); | ||
23 | |||
24 | const compressedFile = await sharp(file) | ||
25 | .resize(1000, 1000, { | ||
26 | fit: "inside", | ||
27 | withoutEnlargement: true, | ||
28 | }) | ||
29 | .jpeg({ quality: 85, mozjpeg: true }) | ||
30 | .toBuffer();*/ | ||
31 | |||
32 | console.log(`Uploading...`); | 47 | console.log(`Uploading...`); |
33 | 48 | ||
34 | const attachment = await mastodon.upload(file, post.id.toString(10)); | 49 | const attachment = await mastodon.upload(file, post.id.toString(10)); |
@@ -38,4 +53,17 @@ import config from "./config"; | |||
38 | const status = await mastodon.createStatus(`https://e926.net/posts/${post.id}`, source, cws, attachment.id); | 53 | const status = await mastodon.createStatus(`https://e926.net/posts/${post.id}`, source, cws, attachment.id); |
39 | 54 | ||
40 | console.log(`Done! ${status.url}`); | 55 | console.log(`Done! ${status.url}`); |
56 | } | ||
57 | |||
58 | (async () => { | ||
59 | if (!config.mastodon.token) { | ||
60 | console.error("MASTODON_TOKEN not set"); | ||
61 | return; | ||
62 | } | ||
63 | |||
64 | if (args.id) { | ||
65 | await postSpecificPicture(args.id); | ||
66 | } else { | ||
67 | await postRandomPicture(); | ||
68 | } | ||
41 | })(); | 69 | })(); |
@@ -102,11 +102,35 @@ acorn@^8.4.1: | |||
102 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" | 102 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" |
103 | integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== | 103 | integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== |
104 | 104 | ||
105 | ansi-styles@^3.2.1: | ||
106 | version "3.2.1" | ||
107 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" | ||
108 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== | ||
109 | dependencies: | ||
110 | color-convert "^1.9.0" | ||
111 | |||
112 | ansi-styles@^4.1.0: | ||
113 | version "4.3.0" | ||
114 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" | ||
115 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== | ||
116 | dependencies: | ||
117 | color-convert "^2.0.1" | ||
118 | |||
105 | arg@^4.1.0: | 119 | arg@^4.1.0: |
106 | version "4.1.3" | 120 | version "4.1.3" |
107 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" | 121 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" |
108 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== | 122 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== |
109 | 123 | ||
124 | array-back@^3.0.1, array-back@^3.1.0: | ||
125 | version "3.1.0" | ||
126 | resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" | ||
127 | integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== | ||
128 | |||
129 | array-back@^4.0.1: | ||
130 | version "4.0.2" | ||
131 | resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" | ||
132 | integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== | ||
133 | |||
110 | asynckit@^0.4.0: | 134 | asynckit@^0.4.0: |
111 | version "0.4.0" | 135 | version "0.4.0" |
112 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" | 136 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" |
@@ -130,6 +154,23 @@ cacheable-request@^7.0.1: | |||
130 | normalize-url "^6.0.1" | 154 | normalize-url "^6.0.1" |
131 | responselike "^2.0.0" | 155 | responselike "^2.0.0" |
132 | 156 | ||
157 | chalk@^2.4.2: | ||
158 | version "2.4.2" | ||
159 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" | ||
160 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== | ||
161 | dependencies: | ||
162 | ansi-styles "^3.2.1" | ||
163 | escape-string-regexp "^1.0.5" | ||
164 | supports-color "^5.3.0" | ||
165 | |||
166 | chalk@^4.1.0: | ||
167 | version "4.1.2" | ||
168 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" | ||
169 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== | ||
170 | dependencies: | ||
171 | ansi-styles "^4.1.0" | ||
172 | supports-color "^7.1.0" | ||
173 | |||
133 | clone-response@^1.0.2: | 174 | clone-response@^1.0.2: |
134 | version "1.0.2" | 175 | version "1.0.2" |
135 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" | 176 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" |
@@ -137,6 +178,30 @@ clone-response@^1.0.2: | |||
137 | dependencies: | 178 | dependencies: |
138 | mimic-response "^1.0.0" | 179 | mimic-response "^1.0.0" |
139 | 180 | ||
181 | color-convert@^1.9.0: | ||
182 | version "1.9.3" | ||
183 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" | ||
184 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== | ||
185 | dependencies: | ||
186 | color-name "1.1.3" | ||
187 | |||
188 | color-convert@^2.0.1: | ||
189 | version "2.0.1" | ||
190 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" | ||
191 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== | ||
192 | dependencies: | ||
193 | color-name "~1.1.4" | ||
194 | |||
195 | color-name@1.1.3: | ||
196 | version "1.1.3" | ||
197 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" | ||
198 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= | ||
199 | |||
200 | color-name@~1.1.4: | ||
201 | version "1.1.4" | ||
202 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" | ||
203 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== | ||
204 | |||
140 | combined-stream@^1.0.8: | 205 | combined-stream@^1.0.8: |
141 | version "1.0.8" | 206 | version "1.0.8" |
142 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" | 207 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" |
@@ -144,6 +209,26 @@ combined-stream@^1.0.8: | |||
144 | dependencies: | 209 | dependencies: |
145 | delayed-stream "~1.0.0" | 210 | delayed-stream "~1.0.0" |
146 | 211 | ||
212 | command-line-args@^5.1.1: | ||
213 | version "5.2.0" | ||
214 | resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.0.tgz#087b02748272169741f1fd7c785b295df079b9be" | ||
215 | integrity sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A== | ||
216 | dependencies: | ||
217 | array-back "^3.1.0" | ||
218 | find-replace "^3.0.0" | ||
219 | lodash.camelcase "^4.3.0" | ||
220 | typical "^4.0.0" | ||
221 | |||
222 | command-line-usage@^6.1.0: | ||
223 | version "6.1.1" | ||
224 | resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz#c908e28686108917758a49f45efb4f02f76bc03f" | ||
225 | integrity sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA== | ||
226 | dependencies: | ||
227 | array-back "^4.0.1" | ||
228 | chalk "^2.4.2" | ||
229 | table-layout "^1.0.1" | ||
230 | typical "^5.2.0" | ||
231 | |||
147 | create-require@^1.1.0: | 232 | create-require@^1.1.0: |
148 | version "1.1.1" | 233 | version "1.1.1" |
149 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" | 234 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" |
@@ -156,6 +241,11 @@ decompress-response@^6.0.0: | |||
156 | dependencies: | 241 | dependencies: |
157 | mimic-response "^3.1.0" | 242 | mimic-response "^3.1.0" |
158 | 243 | ||
244 | deep-extend@~0.6.0: | ||
245 | version "0.6.0" | ||
246 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" | ||
247 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== | ||
248 | |||
159 | defer-to-connect@^2.0.0: | 249 | defer-to-connect@^2.0.0: |
160 | version "2.0.1" | 250 | version "2.0.1" |
161 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" | 251 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" |
@@ -178,6 +268,11 @@ end-of-stream@^1.1.0: | |||
178 | dependencies: | 268 | dependencies: |
179 | once "^1.4.0" | 269 | once "^1.4.0" |
180 | 270 | ||
271 | escape-string-regexp@^1.0.5: | ||
272 | version "1.0.5" | ||
273 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" | ||
274 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= | ||
275 | |||
181 | file-type@^16.5.3: | 276 | file-type@^16.5.3: |
182 | version "16.5.3" | 277 | version "16.5.3" |
183 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" | 278 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" |
@@ -187,6 +282,13 @@ file-type@^16.5.3: | |||
187 | strtok3 "^6.2.4" | 282 | strtok3 "^6.2.4" |
188 | token-types "^4.1.1" | 283 | token-types "^4.1.1" |
189 | 284 | ||
285 | find-replace@^3.0.0: | ||
286 | version "3.0.0" | ||
287 | resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" | ||
288 | integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== | ||
289 | dependencies: | ||
290 | array-back "^3.0.1" | ||
291 | |||
190 | form-data@^4.0.0: | 292 | form-data@^4.0.0: |
191 | version "4.0.0" | 293 | version "4.0.0" |
192 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" | 294 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" |
@@ -220,6 +322,16 @@ got@^11.8.2: | |||
220 | p-cancelable "^2.0.0" | 322 | p-cancelable "^2.0.0" |
221 | responselike "^2.0.0" | 323 | responselike "^2.0.0" |
222 | 324 | ||
325 | has-flag@^3.0.0: | ||
326 | version "3.0.0" | ||
327 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" | ||
328 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= | ||
329 | |||
330 | has-flag@^4.0.0: | ||
331 | version "4.0.0" | ||
332 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" | ||
333 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== | ||
334 | |||
223 | http-cache-semantics@^4.0.0: | 335 | http-cache-semantics@^4.0.0: |
224 | version "4.1.0" | 336 | version "4.1.0" |
225 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" | 337 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" |
@@ -255,6 +367,11 @@ keyv@^4.0.0: | |||
255 | dependencies: | 367 | dependencies: |
256 | json-buffer "3.0.1" | 368 | json-buffer "3.0.1" |
257 | 369 | ||
370 | lodash.camelcase@^4.3.0: | ||
371 | version "4.3.0" | ||
372 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" | ||
373 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= | ||
374 | |||
258 | lowercase-keys@^2.0.0: | 375 | lowercase-keys@^2.0.0: |
259 | version "2.0.0" | 376 | version "2.0.0" |
260 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" | 377 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" |
@@ -348,6 +465,11 @@ readable-web-to-node-stream@^3.0.0: | |||
348 | dependencies: | 465 | dependencies: |
349 | readable-stream "^3.6.0" | 466 | readable-stream "^3.6.0" |
350 | 467 | ||
468 | reduce-flatten@^2.0.0: | ||
469 | version "2.0.0" | ||
470 | resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" | ||
471 | integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== | ||
472 | |||
351 | resolve-alpn@^1.0.0: | 473 | resolve-alpn@^1.0.0: |
352 | version "1.2.1" | 474 | version "1.2.1" |
353 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" | 475 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" |
@@ -365,6 +487,11 @@ safe-buffer@~5.2.0: | |||
365 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" | 487 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" |
366 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== | 488 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== |
367 | 489 | ||
490 | string-format@^2.0.0: | ||
491 | version "2.0.0" | ||
492 | resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" | ||
493 | integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== | ||
494 | |||
368 | string_decoder@^1.1.1: | 495 | string_decoder@^1.1.1: |
369 | version "1.3.0" | 496 | version "1.3.0" |
370 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" | 497 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" |
@@ -380,6 +507,30 @@ strtok3@^6.2.4: | |||
380 | "@tokenizer/token" "^0.3.0" | 507 | "@tokenizer/token" "^0.3.0" |
381 | peek-readable "^4.0.1" | 508 | peek-readable "^4.0.1" |
382 | 509 | ||
510 | supports-color@^5.3.0: | ||
511 | version "5.5.0" | ||
512 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" | ||
513 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== | ||
514 | dependencies: | ||
515 | has-flag "^3.0.0" | ||
516 | |||
517 | supports-color@^7.1.0: | ||
518 | version "7.2.0" | ||
519 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" | ||
520 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== | ||
521 | dependencies: | ||
522 | has-flag "^4.0.0" | ||
523 | |||
524 | table-layout@^1.0.1: | ||
525 | version "1.0.2" | ||
526 | resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" | ||
527 | integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== | ||
528 | dependencies: | ||
529 | array-back "^4.0.1" | ||
530 | deep-extend "~0.6.0" | ||
531 | typical "^5.2.0" | ||
532 | wordwrapjs "^4.0.0" | ||
533 | |||
383 | token-types@^4.1.1: | 534 | token-types@^4.1.1: |
384 | version "4.1.1" | 535 | version "4.1.1" |
385 | resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a" | 536 | resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a" |
@@ -388,6 +539,16 @@ token-types@^4.1.1: | |||
388 | "@tokenizer/token" "^0.3.0" | 539 | "@tokenizer/token" "^0.3.0" |
389 | ieee754 "^1.2.1" | 540 | ieee754 "^1.2.1" |
390 | 541 | ||
542 | ts-command-line-args@^2.1.0: | ||
543 | version "2.1.0" | ||
544 | resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.1.0.tgz#1f75ceabaf794fd6171a2c749e95d27e5231f89b" | ||
545 | integrity sha512-C9BWuFzNLAmEmfnxBhq40YHu7CptJd7ytLHqtD8xRaIA0jZBtTdo+u32OlMHxGvoegUfinnMh41kcjvaZ1RiFA== | ||
546 | dependencies: | ||
547 | chalk "^4.1.0" | ||
548 | command-line-args "^5.1.1" | ||
549 | command-line-usage "^6.1.0" | ||
550 | string-format "^2.0.0" | ||
551 | |||
391 | ts-node@^10.3.0: | 552 | ts-node@^10.3.0: |
392 | version "10.3.0" | 553 | version "10.3.0" |
393 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.3.0.tgz#a797f2ed3ff50c9a5d814ce400437cb0c1c048b4" | 554 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.3.0.tgz#a797f2ed3ff50c9a5d814ce400437cb0c1c048b4" |
@@ -411,11 +572,29 @@ typescript@^4.4.4: | |||
411 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" | 572 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" |
412 | integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== | 573 | integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== |
413 | 574 | ||
575 | typical@^4.0.0: | ||
576 | version "4.0.0" | ||
577 | resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" | ||
578 | integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== | ||
579 | |||
580 | typical@^5.2.0: | ||
581 | version "5.2.0" | ||
582 | resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" | ||
583 | integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== | ||
584 | |||
414 | util-deprecate@^1.0.1: | 585 | util-deprecate@^1.0.1: |
415 | version "1.0.2" | 586 | version "1.0.2" |
416 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" | 587 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" |
417 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= | 588 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= |
418 | 589 | ||
590 | wordwrapjs@^4.0.0: | ||
591 | version "4.0.1" | ||
592 | resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" | ||
593 | integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== | ||
594 | dependencies: | ||
595 | reduce-flatten "^2.0.0" | ||
596 | typical "^5.2.0" | ||
597 | |||
419 | wrappy@1: | 598 | wrappy@1: |
420 | version "1.0.2" | 599 | version "1.0.2" |
421 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" | 600 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" |