diff --git a/.env.example b/.env.example index 0a5a677..b09cfdf 100755 --- a/.env.example +++ b/.env.example @@ -8,6 +8,7 @@ API_VERSION= GITHUB_TOKEN= GITHUB_SOURCE= +GITHUB_USERNAME= DISCORD_ID= DB_CONNECTION= diff --git a/app/Tasks/StatsTask.ts b/app/Tasks/StatsTask.ts index ce9fb52..87b9302 100644 --- a/app/Tasks/StatsTask.ts +++ b/app/Tasks/StatsTask.ts @@ -2,6 +2,7 @@ import Logger from '@ioc:Adonis/Core/Logger' import Env from '@ioc:Adonis/Core/Env' import axios from 'axios' import DevelopmentHour from 'App/Models/DevelopmentHour' +import { UpdateGithubReadme } from 'App/Utils/UpdateGithubReadme' const MS = 1000 * 5 * 60 // 5 min let taskId @@ -32,6 +33,8 @@ async function getDevelopmentHours(): Promise { seconds: data.seconds, }) } + + await UpdateGithubReadme() } } diff --git a/app/Utils/StatsUtils.ts b/app/Utils/StatsUtils.ts index 5eeea16..8d9ed75 100644 --- a/app/Utils/StatsUtils.ts +++ b/app/Utils/StatsUtils.ts @@ -44,9 +44,9 @@ export async function getDevelopmentHours(start: string, end: string): Promise total += item.seconds) return { - total_hours: Math.floor(total / 3600), - total_minutes: Math.floor(total / 60), - total_seconds: Math.floor(total), + total_hours: Number((total / 3600).toFixed(2)), + total_minutes: Number((total / 60).toFixed(2)), + total_seconds: Number(total.toFixed(2)), } } diff --git a/app/Utils/UpdateGithubReadme.ts b/app/Utils/UpdateGithubReadme.ts new file mode 100644 index 0000000..76c6fea --- /dev/null +++ b/app/Utils/UpdateGithubReadme.ts @@ -0,0 +1,52 @@ +import axios from 'axios' +import Env from '@ioc:Adonis/Core/Env' +import Logger from '@ioc:Adonis/Core/Logger' +import { + fetchDailyStatistics, + fetchMonthlyStatistics, + fetchStatistics, + fetchWeeklyStatistics, +} from 'App/Utils/StatsUtils' + +export async function UpdateGithubReadme(): Promise { + const daily_stats = await fetchDailyStatistics() + const weekly_stats = await fetchWeeklyStatistics() + const monthly_stats = await fetchMonthlyStatistics() + const total_stats = await fetchStatistics() + + const response = await axios.get<{ content: string; sha: string }>(`https://api.github.com/repos/${Env.get('GITHUB_USERNAME')}/${Env.get('GITHUB_USERNAME')}/readme`, { + headers: { + authorization: `Bearer ${Env.get('GITHUB_TOKEN')}`, + }, + }) + + if (response.status === 200) { + const content = Buffer.from(response.data.content, 'base64').toString() + const old_table = content.split('')[1].split('')[0] + const new_table = ` +| Title | Daily | Weekly | Monthly | Total | +| :------------------------------------------ | ----------: | ----------: | -----------: | -----------: | +| :hourglass_flowing_sand: Hours Spent Coding | **${daily_stats.development_time.total_hours}hrs** | **${weekly_stats.development_time.total_hours}hrs** | **${monthly_stats.development_time.total_hours}hrs** | **${total_stats.development_time.total_hours}hrs** | +| :computer: Terminal Commands | **${daily_stats.commands_ran}** | **${weekly_stats.commands_ran}** | **${monthly_stats.commands_ran}** | **${total_stats.commands_ran}** | +| :hammer: Docker Builds | **${daily_stats.builds_ran}** | **${weekly_stats.builds_ran}** | **${monthly_stats.builds_ran}** | **${total_stats.builds_ran}** |` + const new_content = content.replace(old_table, new_table) + + const update = await axios.put(`https://api.github.com/repos/${Env.get('GITHUB_USERNAME')}/${Env.get('GITHUB_USERNAME')}/contents/README.md`, + { + message: '📊 Updated Statistics - Athena', + content: Buffer.from(new_content, 'utf8').toString('base64'), + sha: response.data.sha, + author: { + name: 'Athena - API Automation', + email: 'api@arthurdanjou.fr', + }, + }, + { + headers: { + authorization: `Bearer ${Env.get('GITHUB_TOKEN')}`, + }, + }) + if (update.status !== 200) + Logger.error('Error with updating statistics') + } +} diff --git a/env.ts b/env.ts index 0d4db28..5fb916f 100755 --- a/env.ts +++ b/env.ts @@ -28,6 +28,7 @@ export default Env.rules({ DISCORD_ID: Env.schema.string(), GITHUB_TOKEN: Env.schema.string(), GITHUB_SOURCE: Env.schema.string({ format: 'url' }), + GITHUB_USERNAME: Env.schema.string(), // Redis REDIS_CONNECTION: Env.schema.enum(['local'] as const), diff --git a/yarn.lock b/yarn.lock index 1d3cdbc..02619b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,14 @@ # yarn lockfile v1 -"@adonisjs/ace@^11.0.3": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@adonisjs/ace/-/ace-11.0.3.tgz#fb003d5de3c64c34c54b3462fb09f9e8c233507f" - integrity sha512-nqAVFu8+r3HdSL4qePdItgTZSRSoNcLc2ks49Deptf8rl51Wk6H2vHesU2yLg7JHNW8+sY7lehZidTVqrG3wrA== +"@adonisjs/ace@^11.0.4": + version "11.0.5" + resolved "https://registry.yarnpkg.com/@adonisjs/ace/-/ace-11.0.5.tgz#ac1b691aeb0c19a82dc7db574e67a8a577c1e405" + integrity sha512-pN4IaBdKVvOYsRc3wtAa77TDn9C3yvQi3dIo1xSkFCWYlAvcO6tWbmQCFp2PNKM18d8n3FCTG4IH/CiGCB5Wug== dependencies: "@poppinss/cliui" "^2.2.5" "@poppinss/prompts" "^1.2.3" - "@poppinss/utils" "^3.1.5" + "@poppinss/utils" "^3.3.1" fs-extra "^10.0.0" getopts "^2.3.0" leven "^3.1.0" @@ -17,7 +17,7 @@ slash "^3.0.0" term-size "^2.2.1" -"@adonisjs/application@^5.1.4", "@adonisjs/application@^5.1.6": +"@adonisjs/application@^5.1.4": version "5.1.6" resolved "https://registry.yarnpkg.com/@adonisjs/application/-/application-5.1.6.tgz#da3043163b49ab35aa5dc1bfcc4ed4ba38d63f65" integrity sha512-xg6fkCCXijMmkoZ40ih8T1QF50Dj0J7EQ1I54TWfFCFEHsIYhXrCZxeWZEpMRHsTAWaPpP0GTnMrOac/+ERWsQ== @@ -30,6 +30,19 @@ "@poppinss/utils" "^3.1.5" semver "^7.3.5" +"@adonisjs/application@^5.1.7": + version "5.1.7" + resolved "https://registry.yarnpkg.com/@adonisjs/application/-/application-5.1.7.tgz#a6ba1554f7aae6e74f06b9ef7762a531d6c1e4ca" + integrity sha512-cxMBloIq+AXly88ruvquHF/VwXa11DyOJLvDaXTYpktRlF/oSbDhcXl7nFs2ajRuyxm7vOQ8D68kA6kO1H+h6g== + dependencies: + "@adonisjs/config" "^3.0.5" + "@adonisjs/env" "^3.0.5" + "@adonisjs/fold" "^8.1.5" + "@adonisjs/logger" "^4.1.1" + "@adonisjs/profiler" "^6.0.6" + "@poppinss/utils" "^3.2.0" + semver "^7.3.5" + "@adonisjs/assembler@^5.3.2": version "5.3.5" resolved "https://registry.yarnpkg.com/@adonisjs/assembler/-/assembler-5.3.5.tgz#4a159cb2214c38b4c571e30378df1adc20485117" @@ -52,35 +65,35 @@ picomatch "^2.3.0" slash "^3.0.0" -"@adonisjs/auth@^8.0.6": - version "8.0.7" - resolved "https://registry.yarnpkg.com/@adonisjs/auth/-/auth-8.0.7.tgz#8e73cb0d491dc58aa1e72b0ef8166718c5bfbf08" - integrity sha512-iTB9u5xzJBhdZthezxPR8+HPI0xLSseioeOeGlQumlawwS0KbuBDoJ1JkBSIy2/Yf235BzLdlB78vW3dYhNFsA== +"@adonisjs/auth@^8.0.10": + version "8.0.10" + resolved "https://registry.yarnpkg.com/@adonisjs/auth/-/auth-8.0.10.tgz#7d89aac9a57a6ce79cfff58e1a45af5cda65cfef" + integrity sha512-jE2C0btUresr1pRV1P8NAehSJlebJ+TlrQp1p1ws52AQ5h4ayjzTniZBtq6pSgm5uv6TAEQ7Mw7ZfTOwaA8MBQ== dependencies: - "@poppinss/hooks" "^3.0.4" - "@poppinss/utils" "^3.1.3" - luxon "^1.27.0" + "@poppinss/hooks" "^3.0.5" + "@poppinss/utils" "^3.2.0" + luxon "^2.0.2" -"@adonisjs/bodyparser@^7.1.4": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@adonisjs/bodyparser/-/bodyparser-7.1.5.tgz#dbe044a9c595bdca8b8dd965dda45e911080776c" - integrity sha512-wiWYHTKJixLZIVq04dHCp9ok8FhiRDVSre1AgPzCtGFGjQf+qXjqfPNCEiPozt+ffKWNaDAUL8PGqJsDSmLuDA== +"@adonisjs/bodyparser@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@adonisjs/bodyparser/-/bodyparser-8.0.1.tgz#2ef7a60ddb7f68eee92269be8fc0fd1827bbfd9a" + integrity sha512-7iXJXR8rx/hcaFdkYRyTADAuQvOsdr5HMlAZzL9sdnBXuM1nGdI/Uis3YQ2oD4M/b1t4dpU02LMJsDDYxyRIgA== dependencies: "@poppinss/co-body" "^1.1.3" "@poppinss/multiparty" "^1.0.2" - "@poppinss/utils" "^3.1.5" + "@poppinss/utils" "^3.2.0" bytes "^3.1.0" end-of-stream "^1.4.4" - file-type "^16.5.2" + file-type "^16.5.3" fs-extra "^10.0.0" media-typer "^1.1.0" -"@adonisjs/bouncer@^2.2.4": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@adonisjs/bouncer/-/bouncer-2.2.4.tgz#651428140f71b087ad71850d5f5d4bbc405e953d" - integrity sha512-b8DRojf12qeJ2cdY84fUC/Ab2nhMkL/5+V9JBWP8/pnkbhQA1YjkvjTKLFWeGKSb+o4mKeK6OBW0W5e8v/R1Zw== +"@adonisjs/bouncer@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@adonisjs/bouncer/-/bouncer-2.2.5.tgz#4b166ad769f5c3868e6aaa284dd623daffc6b8f2" + integrity sha512-f060bMQwjJBAQ2pTtUrCbJ3n3/J3nQvzdrpWpWSEzdn8bdZALGh2R1nIhH0cVh8lMQuXzowo9ojxjWGFI0LfmQ== dependencies: - "@poppinss/utils" "^3.1.3" + "@poppinss/utils" "^3.2.0" "@adonisjs/config@^3.0.5": version "3.0.5" @@ -89,25 +102,40 @@ dependencies: "@poppinss/utils" "^3.1.4" -"@adonisjs/core@^5.1.10": - version "5.1.11" - resolved "https://registry.yarnpkg.com/@adonisjs/core/-/core-5.1.11.tgz#fff8ac93dbf38e9d0eda2603d9c1fa0c2066633e" - integrity sha512-iBoV7cGMhq5TiUt1B89dnMRnOWma2kmkL0LE9RfzYUPMyNspyWPNr93E5RQ+ml7xAQr74bAyKVywImLHIy4nOw== +"@adonisjs/core@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@adonisjs/core/-/core-5.4.0.tgz#0c57dd5b0176bc7be49644f8d4ff8c8b004ad39e" + integrity sha512-HBeFOJu6wWXkNmHInIT6OQMtCTblT9MZK8l4tusNowKz41sE66vWIr9vE2CJBHEUfjo3MttBffVORP+RxMm1kQ== dependencies: - "@adonisjs/ace" "^11.0.3" - "@adonisjs/application" "^5.1.6" - "@adonisjs/bodyparser" "^7.1.4" + "@adonisjs/ace" "^11.0.4" + "@adonisjs/application" "^5.1.7" + "@adonisjs/bodyparser" "^8.0.1" + "@adonisjs/drive" "^2.0.7" "@adonisjs/encryption" "^4.0.5" "@adonisjs/events" "^7.1.2" "@adonisjs/hash" "^7.0.8" - "@adonisjs/http-server" "^5.5.2" - "@adonisjs/validator" "^11.0.4" + "@adonisjs/http-server" "^5.5.7" + "@adonisjs/validator" "^12.1.1" "@poppinss/cliui" "^2.2.5" - "@poppinss/utils" "^3.1.5" + "@poppinss/manager" "^4.0.4" + "@poppinss/utils" "^3.3.0" fs-extra "^10.0.0" + memfs "^3.3.0" serve-static "^1.14.1" stringify-attributes "^2.0.0" +"@adonisjs/drive@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@adonisjs/drive/-/drive-2.0.7.tgz#e6345a998addeab7ff43f87558812e08a33b5bab" + integrity sha512-iQwQYyF/thj8ihJHUn/LBAAUYlOLAobAAnrzcQsmE8uFWRr0PRsqzpFaPF/S8UEnEyWQo4xGKXKJ8Zqzt4IOdw== + dependencies: + "@poppinss/manager" "^4.0.4" + "@poppinss/utils" "^3.2.0" + "@types/fs-extra" "^9.0.12" + etag "^1.8.1" + fs-extra "^10.0.0" + memfs "^3.2.4" + "@adonisjs/encryption@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@adonisjs/encryption/-/encryption-4.0.5.tgz#cf4e3012d8a09815e6e53dd58b3add95cb9e9115" @@ -147,10 +175,10 @@ "@poppinss/manager" "^4.0.4" "@poppinss/utils" "^3.1.4" -"@adonisjs/http-server@^5.5.2": - version "5.5.4" - resolved "https://registry.yarnpkg.com/@adonisjs/http-server/-/http-server-5.5.4.tgz#8d04373b4a31edcea7cad4028c3c15ae619b5537" - integrity sha512-SQbDpQEbG+SZ3pnjNRcCVVBH9T4Zyi+ydoLG6oBIJfAYzzkOX7mZFyj9HOTkgJR361Jxb7l8+kkIDnTJ1v6O+Q== +"@adonisjs/http-server@^5.5.7": + version "5.5.7" + resolved "https://registry.yarnpkg.com/@adonisjs/http-server/-/http-server-5.5.7.tgz#4ac52d1ae36dd8a44369f38288ced3ba304040ab" + integrity sha512-p3V00t/X8U7bSjgjJ73ReC5VNifXVWRuBUA6HsdAf3lOzKtuqFznjjA9y8qhO3kITD8x11bPzi6MZptkcP6ybQ== dependencies: "@poppinss/matchit" "^3.1.2" "@poppinss/utils" "^3.1.5" @@ -190,37 +218,47 @@ abstract-logging "^2.0.1" pino "^6.13.0" -"@adonisjs/lucid@^15.0.1": - version "15.0.3" - resolved "https://registry.yarnpkg.com/@adonisjs/lucid/-/lucid-15.0.3.tgz#b7549070423e2924a8db102156903e7b7c3774ec" - integrity sha512-UbzmyV96X227AOwyXjJNs9/DCRHUl8jCbEJzQwRcQrfFWI0HaIH9crJYKzi1djoQOxXjM+qcTdrd48HDwnb9Vw== +"@adonisjs/logger@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@adonisjs/logger/-/logger-4.1.1.tgz#b6ce4c66f7c743193a14d0c37c9b5044a26a2394" + integrity sha512-+daxUt7BxPU+sgWdJlqM//JHzqa7neTbo37W5tq4X8n94X0NDMkyE+ZYtgI2Rl1XrHepv7OWV5YorXPxuXMUZg== dependencies: - "@poppinss/hooks" "^3.0.4" - "@poppinss/utils" "^3.1.3" - "@types/faker" "^5.5.6" + "@poppinss/utils" "^3.2.0" + "@types/pino" "^6.3.11" + abstract-logging "^2.0.1" + pino "^6.13.2" + +"@adonisjs/lucid@^16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@adonisjs/lucid/-/lucid-16.3.2.tgz#f88f14c006d33eb8d9b58f01546fee92f8882edf" + integrity sha512-RFY3wVGJ04KlhkvLxsNkkLgDa8v1OpVB6F6D2vwW+jHKpAOSvYc/fzvQE6RoCpdP7vfn3VcO5iikDqtXopM6KQ== + dependencies: + "@poppinss/hooks" "^3.0.5" + "@poppinss/utils" "^3.2.1" + "@types/faker" "^5.5.7" faker "^5.5.3" fast-deep-equal "^3.1.3" igniculus "^1.5.0" - knex "^0.95.6" + knex "^0.95.11" knex-dynamic-connection "^2.1.1" - luxon "^1.27.0" - macroable "^5.1.3" + luxon "^2.0.1" + macroable "^5.1.4" pretty-hrtime "^1.0.3" qs "^6.10.1" slash "^3.0.0" -"@adonisjs/mail@^7.2.1": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@adonisjs/mail/-/mail-7.2.3.tgz#d3e1f0fe6cff66d50ca0e4200c815c8dfd4cff24" - integrity sha512-JFpSuBtLIVTANbLdOuPqYlViOAU1PFqgG11uSCFjTj/V5qqGaKpFsH6AM1AVnupFIUoYChy5eMcrWOX3+BWXcQ== +"@adonisjs/mail@^7.2.4": + version "7.2.4" + resolved "https://registry.yarnpkg.com/@adonisjs/mail/-/mail-7.2.4.tgz#f7320e0726bc5cd64d57384aeb396938250e358e" + integrity sha512-ddoeT5rGV1JgLjMmOIFxzFkWFDc1gb59d+CQ45DNOyDboSEkSvKt5O2LBnBuTKMBjFUMUjvnYDjkb7QgbFN2fw== dependencies: "@poppinss/colors" "^2.1.5" "@poppinss/manager" "^4.0.4" - "@poppinss/utils" "^3.1.5" - fastq "^1.11.1" + "@poppinss/utils" "^3.2.0" + fastq "^1.12.0" get-stream "^6.0.1" got "^11.8.2" - ical-generator "^3.0.0-develop.4" + ical-generator "^3.0.0" multi-part "^3.0.0" nodemailer "^6.6.3" @@ -241,10 +279,10 @@ "@types/ioredis" "^4.27.1" ioredis "^4.27.8" -"@adonisjs/repl@^3.1.4": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@adonisjs/repl/-/repl-3.1.5.tgz#27eb99f8e5dcc2250435e90b964f12b8d633d8b8" - integrity sha512-rFc2dMzkEtYwQMVfVAEJiZcOHl0sn1s8vZ9LN6+ZpkT5rUyvRjHeY4MxrzWXcde6WSAwYlxlSpO167RwXDNCsw== +"@adonisjs/repl@^3.1.7": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@adonisjs/repl/-/repl-3.1.7.tgz#1c8b897da551a6a0660eb893b482545b63c325c9" + integrity sha512-TGnB+JakDBZgxECgUm/t/bOLK2WDgJuBeO1yy/QGbeSzjFro9sI2vYitgZ4fedJIIbJxgQavgCWMw9r+e2woLQ== dependencies: "@poppinss/colors" "^2.1.5" node-repl-await "^0.1.2" @@ -265,12 +303,12 @@ rev-hash "^3.0.0" source-map-support "^0.5.19" -"@adonisjs/session@^6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@adonisjs/session/-/session-6.1.1.tgz#f3ffed30ecb82168b0660d316c46ffb053566114" - integrity sha512-TClg2O6wUnsoI4DhCS7F3mCRqmWO8AEh1kSrnKNl6ZqnxesLgU+30lsmMGTPfohSK/j2eU27+LpzuLFCz9Rf7Q== +"@adonisjs/session@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@adonisjs/session/-/session-6.1.2.tgz#60396c08fbe02de3acd8ab84d2e573c147b68653" + integrity sha512-xXmn93b32XruL/zJ+h9Dea/RGneMhenp369PA55VV9Fnxjxf3ElmqMnZYoJ5HYCxbey0NnNODZ9co74+PCVbtw== dependencies: - "@poppinss/utils" "^3.1.5" + "@poppinss/utils" "^3.2.0" fs-extra "^10.0.0" "@adonisjs/sink@^5.1.5": @@ -289,27 +327,27 @@ mustache "^4.2.0" open "^8.2.0" -"@adonisjs/validator@^11.0.4": - version "11.0.4" - resolved "https://registry.yarnpkg.com/@adonisjs/validator/-/validator-11.0.4.tgz#0b9017163f5c958f852efc550af279e0e7f1913f" - integrity sha512-8OuiZKa5YE1LvEEI592tbvc5CQUlwC1ixbTZpnrZ9QfcwJekDe+gD3Ap+XPPC5yfXhBnf85e9GWi+UFRPLSEzQ== +"@adonisjs/validator@^12.1.1": + version "12.1.1" + resolved "https://registry.yarnpkg.com/@adonisjs/validator/-/validator-12.1.1.tgz#fe53a2207992d6b2ab0a94f6e89be6296d5af8bd" + integrity sha512-vqp3NAuJd1L1DX0AVL7T5jSmpzmjjbKAPR9hj+2uQT0oclAWEP3zIGvpmab/QFcF8y7njzjiYY1Q2CsP3dptUg== dependencies: - "@poppinss/utils" "^3.1.5" - "@types/luxon" "^1.27.1" + "@poppinss/utils" "^3.3.0" + "@types/luxon" "^2.0.5" "@types/validator" "^13.6.3" luxon "^2.0.1" normalize-url "^6.1.0" tmp-cache "^1.1.0" validator "^13.6.0" -"@adonisjs/view@^6.0.3": - version "6.0.8" - resolved "https://registry.yarnpkg.com/@adonisjs/view/-/view-6.0.8.tgz#22cc403975d1dc8d617e13796ec9c1bb134e8ac2" - integrity sha512-HJSPGeYgeuYKJ9dv+bVTF9jkphRZtaDE5bJXFuNdPCnJc6GS58OBugoS/DBlGpYoPe+uImPdHlEvWaETnttSuQ== +"@adonisjs/view@^6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@adonisjs/view/-/view-6.1.1.tgz#81f71da997c3329855e35830caeb606291f2e949" + integrity sha512-wSbeV7UvDA6lLJtc2nKQ3rTHRoAlj0KmRwBzIT81Lmqo6WdFIAbNqiNSwbI0SHIo+NaB3oSXmV5Brh7rGpwmPQ== dependencies: - edge-error "^2.0.5" + edge-error "^2.0.6" edge-supercharged "^3.1.1" - edge.js "^5.3.1" + edge.js "^5.3.2" "@antfu/eslint-config-basic@^0.10.0": version "0.10.0" @@ -733,7 +771,7 @@ color-support "^1.1.3" kleur "^4.1.4" -"@poppinss/hooks@^3.0.4": +"@poppinss/hooks@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@poppinss/hooks/-/hooks-3.0.5.tgz#ae491fc11500bc9cb7e24f6b637704e7d9868505" integrity sha512-kazQstmIPq4n7/qjk5ms9SEiXtLEJ+EMZXxyXTupTVq7URFIUeULgXFv/F3vheLPCSzfByu/L2iO7M457RjszQ== @@ -794,6 +832,29 @@ slugify "^1.6.0" truncatise "0.0.8" +"@poppinss/utils@^3.2.1", "@poppinss/utils@^3.3.0", "@poppinss/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@poppinss/utils/-/utils-3.3.1.tgz#66f44282af0b8fcb0b802553d7fed9be0b520ce1" + integrity sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg== + dependencies: + "@types/bytes" "^3.1.1" + "@types/he" "^1.1.2" + buffer-alloc "^1.2.0" + bytes "^3.1.0" + change-case "^4.1.2" + cuid "^2.1.8" + flattie "^1.1.0" + fs-readdir-recursive "^1.1.0" + he "^1.2.0" + kind-of "^6.0.3" + lodash "^4.17.21" + ms "^2.1.3" + pluralize "^8.0.0" + require-all "^3.0.0" + resolve-from "^5.0.0" + slugify "^1.6.1" + truncatise "0.0.8" + "@sindresorhus/is@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5" @@ -826,10 +887,17 @@ "@types/node" "*" "@types/responselike" "*" -"@types/faker@^5.5.6": - version "5.5.8" - resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.8.tgz#6649adfdfdbb0acf95361fc48f2d0ca6e88bd1cf" - integrity sha512-bsl0rYsaZVHlZkynL5O04q6YXDmVjcid6MbOHWqvtE2WWs/EKhp0qchDDhVWlWyQXUffX1G83X9LnMxRl8S/Mw== +"@types/faker@^5.5.7": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/fs-extra@^9.0.12": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" "@types/glob@^7.1.1": version "7.1.4" @@ -873,10 +941,10 @@ dependencies: "@types/node" "*" -"@types/luxon@^1.27.1": - version "1.27.1" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-1.27.1.tgz#aceeb2d5be8fccf541237e184e37ecff5faa9096" - integrity sha512-cPiXpOvPFDr2edMnOXlz3UBDApwUfR+cpizvxCy0n3vp9bz/qe8BWzHPIEFcy+ogUOyjKuCISgyq77ELZPmkkg== +"@types/luxon@^2.0.5": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-2.0.7.tgz#6189930542400e2c48b4d5ed06c4f136ee38bb1a" + integrity sha512-AxiYycfO+/M4VIH0ribSr2iPFC+APewpJIaQSydwVnzorK3mjSFXkA3HmhQidGx44MpwaatFyEkbW/WD4zdDaQ== "@types/minimatch@*": version "3.0.5" @@ -917,6 +985,16 @@ "@types/pino-std-serializers" "*" sonic-boom "^2.1.0" +"@types/pino@^6.3.11": + version "6.3.12" + resolved "https://registry.yarnpkg.com/@types/pino/-/pino-6.3.12.tgz#4425db6ced806109c3df957100cba9dfcd73c228" + integrity sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw== + dependencies: + "@types/node" "*" + "@types/pino-pretty" "*" + "@types/pino-std-serializers" "*" + sonic-boom "^2.1.0" + "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1750,6 +1828,11 @@ colorette@1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@2.0.16: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -2132,27 +2215,27 @@ dotenv@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -edge-error@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/edge-error/-/edge-error-2.0.5.tgz#b439103d32a9f55da08891e85beec38036cc9142" - integrity sha512-1eJm10bEIS6u9N3dR5W0Eecnv4YVtUHralpJp0NdrVLo7H7DXx/s2DIjWoG/HsNkD2mymNVL37eZ+BgvBO5adQ== +edge-error@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/edge-error/-/edge-error-2.0.6.tgz#7add90fd923f9bea4934f0c0ba9858ecfa2492c8" + integrity sha512-hXJDgkAVPypbPrwc0JSb+SOgchk9fKp7ZRF43ikM1L/XqhKcxX5oh1ilLQeC/UtBBLm85Xjb1887HQBJD+bxVw== -edge-lexer@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/edge-lexer/-/edge-lexer-4.0.7.tgz#ff89deed437b4e9a565206229d86029769c835a4" - integrity sha512-GtmxqiusZ8mySw8FstBMz2jSt5tOW8OYUf2HMmtHQXJG/R/EgZC1DAU/5m1VUyqSNjpisGyPRls+Qn/MScmZ6g== +edge-lexer@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/edge-lexer/-/edge-lexer-4.0.8.tgz#09eaa9d6c2c768bccd5c79c9133124cb0b894ed1" + integrity sha512-5DnQ6wy8Ebd3P/2XtwQryCeKgZrMEmxWz12YdjOhQb+UNq6OeXEY5AC6zaSYFpPlGCBCUB+Mz9U6ja2lkh20+Q== dependencies: - edge-error "^2.0.5" + edge-error "^2.0.6" -edge-parser@^8.0.10: - version "8.0.10" - resolved "https://registry.yarnpkg.com/edge-parser/-/edge-parser-8.0.10.tgz#bc70fb2f90980ebde5e13559af8ba1f16e327b68" - integrity sha512-Othm9HRmf1uunaJO7I6g1g2EcGvEFvPsIHDosphLL2JydzP6H51QAr34KXDde7aJb+ZlXLHTti8+q+dGM7wFDQ== +edge-parser@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/edge-parser/-/edge-parser-8.0.11.tgz#36b25201e39c3785a5df4ffdcde89ea0734e7516" + integrity sha512-W3UDF9xWAMs+v7QE3J0QT5azqYWxwqUedWKWLTT1siEfl2Upg/zFE3IZ5PPOvXipFRZvW75QNxbhfK09+WrpZg== dependencies: acorn "^8.4.1" astring "^1.7.5" - edge-error "^2.0.5" - edge-lexer "^4.0.7" + edge-error "^2.0.6" + edge-lexer "^4.0.8" js-stringify "^1.0.2" edge-supercharged@^3.1.1: @@ -2163,16 +2246,16 @@ edge-supercharged@^3.1.1: "@poppinss/utils" "^3.1.3" slash "^3.0.0" -edge.js@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/edge.js/-/edge.js-5.3.1.tgz#d31ccca55c67b2f1a7af0a57286ae7054627a29e" - integrity sha512-TWiPo7Unaww1fYll/zMANVma08q2WoG8j7g9iK3fed5AevD0XuBl8N2L9+vCE7TKJmTm/zNP5z8bKbfGWOTRbw== +edge.js@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/edge.js/-/edge.js-5.3.2.tgz#a528911b36eb2499e385bba5c09f5953c134a6e9" + integrity sha512-hpMdNZDqZPTvZYGFGQ7VPPAQR6lW3S8+R5em20X/XgtOlxwyKrfEEG7DZcFdgX+6hU7PTqn9/OFFSVdD7a0Qog== dependencies: "@poppinss/inspect" "^1.0.1" - "@poppinss/utils" "^3.1.4" - edge-error "^2.0.5" - edge-lexer "^4.0.7" - edge-parser "^8.0.10" + "@poppinss/utils" "^3.2.0" + edge-error "^2.0.6" + edge-lexer "^4.0.8" + edge-parser "^8.0.11" js-stringify "^1.0.2" macroable "^5.1.4" stringify-attributes "^2.0.0" @@ -2741,14 +2824,12 @@ fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== -fastq@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" - integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== - dependencies: - reusify "^1.0.4" +fastify-warning@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fastify-warning/-/fastify-warning-0.2.0.tgz#e717776026a4493dc9a2befa44db6d17f618008f" + integrity sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw== -fastq@^1.6.0: +fastq@^1.12.0, fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== @@ -2767,7 +2848,7 @@ file-type@^12.1.0: resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9" integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== -file-type@^16.5.2: +file-type@^16.5.3: version "16.5.3" resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== @@ -2835,6 +2916,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== +flattie@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/flattie/-/flattie-1.1.0.tgz#1459504209f2001c478751b4e2fb69d6b1ee3241" + integrity sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw== + follow-redirects@^1.14.4: version "1.14.4" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" @@ -2887,6 +2973,11 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -3292,10 +3383,10 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -ical-generator@^3.0.0-develop.4: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ical-generator/-/ical-generator-3.0.0.tgz#042a7c1d2ce8cae1428bc1ea51a8dbe6b8872fcd" - integrity sha512-PlDOOipgTlMzbfDDy+NJixAf5bzNb46wf0JXPkhnSjNQJc50y/XTOhOnQW/cp6tD+4ITHIMhkCkQ4CrUlDKMFQ== +ical-generator@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ical-generator/-/ical-generator-3.0.1.tgz#abcb2da7f3f334aff24bc3c55c1cbfea2fda9c17" + integrity sha512-IdvCi0Pi53wNIJW0ww1XT1AsqzMkYYVZF1njA0zA7I1aQ1mLhf4VHgOchQBCOVxJauo1g8x0+B4w7Jj5PcjqFg== dependencies: uuid-random "^1.3.2" @@ -3868,6 +3959,25 @@ knex-dynamic-connection@^2.1.1: debug "^4.3.1" knex "^0.95.6" +knex@^0.95.11: + version "0.95.14" + resolved "https://registry.yarnpkg.com/knex/-/knex-0.95.14.tgz#47eca7757cbc5872b7c9a3c67ae3b7ac6d00cf10" + integrity sha512-j4qLjWySrC/JRRVtOpoR2LcS1yBOsd7Krc6mEukPvmTDX/w11pD52Pq9FYR56/kLXGeAV8jFdWBjsZFi1mscWg== + dependencies: + colorette "2.0.16" + commander "^7.1.0" + debug "4.3.2" + escalade "^3.1.1" + esm "^3.2.25" + getopts "2.2.5" + interpret "^2.2.0" + lodash "^4.17.21" + pg-connection-string "2.5.0" + rechoir "0.7.0" + resolve-from "^5.0.0" + tarn "^3.0.1" + tildify "2.0.0" + knex@^0.95.6: version "0.95.9" resolved "https://registry.yarnpkg.com/knex/-/knex-0.95.9.tgz#d72acbdbc7aa199a829cca3c53371b80e521adfe" @@ -4014,7 +4124,12 @@ luxon@^2.0.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.0.2.tgz#11f2cd4a11655fdf92e076b5782d7ede5bcdd133" integrity sha512-ZRioYLCgRHrtTORaZX1mx+jtxKtKuI5ZDvHNAmqpUzGqSrR+tL4FVLn/CUGMA3h0+AKD1MAxGI5GnCqR5txNqg== -macroable@^5.1.3, macroable@^5.1.4: +luxon@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.1.1.tgz#34052f7a33a7989767637be7cf80b47db264ff88" + integrity sha512-6VQVNw7+kQu3hL1ZH5GyOhnk8uZm21xS7XJ/6vDZaFNcb62dpFDKcH8TI5NkoZOdMRxr7af7aYGrJlE/Wv0i1w== + +macroable@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/macroable/-/macroable-5.1.4.tgz#7d88f8190288833924e48120e1371e3198a6fa6e" integrity sha512-6yOJQT7QhYlJqhNWn/B2h+1ylsCnL8dMBmBpdnVNK+02PfQm13Ix4Szx4HiS3rp4a28EKckCGW27gtTZoYXYYQ== @@ -4080,6 +4195,13 @@ mem@^8.1.1: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" +memfs@^3.2.4, memfs@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.3.0.tgz#4da2d1fc40a04b170a56622c7164c6be2c4cbef2" + integrity sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg== + dependencies: + fs-monkey "1.0.3" + mensch@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" @@ -5197,6 +5319,19 @@ pino@^6.13.0: quick-format-unescaped "^4.0.3" sonic-boom "^1.0.2" +pino@^6.13.2: + version "6.13.3" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.3.tgz#60b93bcda1541f92fb37b3f2be0a25cf1d05b6fe" + integrity sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + fastify-warning "^0.2.0" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -5770,6 +5905,11 @@ slugify@^1.6.0: resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.0.tgz#6bdf8ed01dabfdc46425b67e3320b698832ff893" integrity sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang== +slugify@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.2.tgz#4cb97220a2278e1b86fb017c6da668e6a865354c" + integrity sha512-XMtI8qD84LwCpthLMBHlIhcrj10cgA+U/Ot8G6FD6uFuWZtMfKK75JO7l81nzpFJsPlsW6LT+VKqWQJW3+6New== + smpltmpl@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/smpltmpl/-/smpltmpl-1.0.2.tgz#b6e9d0eedab7827455c46c98fb8b9505ae6d4a82" @@ -6223,7 +6363,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.2.0, tslib@^2.3.0: +tslib@^2.0.3, tslib@^2.2.0, tslib@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -6277,10 +6417,10 @@ type-is@^1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@^4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== uglify-js@^3.5.1: version "3.14.1"