From 77707572fcdf94cdb97d96ca333e0b03be0120b0 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:17:18 +0200 Subject: [PATCH 001/143] migrate to vitepress --- .gitignore | 3 + docs/.vitepress/config.mts | 67 + docs/.vuepress/.gitignore | 2 - docs/.vuepress/components/Details.vue | 39 - docs/.vuepress/components/Quiz.vue | 324 - docs/.vuepress/components/Styles.vue | 10 - docs/.vuepress/components/my-component.vue | 56 - docs/.vuepress/components/sample-timeline.vue | 35 - docs/.vuepress/config-other.js | 211 - docs/.vuepress/config.js | 115 - docs/.vuepress/enhanceApp.js | 30 - docs/.vuepress/public/favicon.ico | Bin 1150 -> 0 bytes docs/.vuepress/public/faviconCustom.ico | Bin 31523 -> 0 bytes docs/.vuepress/public/license.html | 16 - docs/.vuepress/public/myAvatar.png | Bin 1540 -> 0 bytes docs/.vuepress/quizzes/index.js | 7 - docs/.vuepress/quizzes/quiz1.json | 185 - docs/.vuepress/quizzes/quiz2.json | 41 - docs/.vuepress/styles/index.styl | 179 - docs/.vuepress/styles/palette.styl | 89 - package-lock.json | 14311 +++------------- package.json | 14 +- 22 files changed, 2902 insertions(+), 12832 deletions(-) create mode 100644 docs/.vitepress/config.mts delete mode 100644 docs/.vuepress/.gitignore delete mode 100644 docs/.vuepress/components/Details.vue delete mode 100644 docs/.vuepress/components/Quiz.vue delete mode 100644 docs/.vuepress/components/Styles.vue delete mode 100644 docs/.vuepress/components/my-component.vue delete mode 100644 docs/.vuepress/components/sample-timeline.vue delete mode 100644 docs/.vuepress/config-other.js delete mode 100644 docs/.vuepress/config.js delete mode 100644 docs/.vuepress/enhanceApp.js delete mode 100644 docs/.vuepress/public/favicon.ico delete mode 100644 docs/.vuepress/public/faviconCustom.ico delete mode 100644 docs/.vuepress/public/license.html delete mode 100644 docs/.vuepress/public/myAvatar.png delete mode 100644 docs/.vuepress/quizzes/index.js delete mode 100644 docs/.vuepress/quizzes/quiz1.json delete mode 100644 docs/.vuepress/quizzes/quiz2.json delete mode 100644 docs/.vuepress/styles/index.styl delete mode 100644 docs/.vuepress/styles/palette.styl diff --git a/.gitignore b/.gitignore index 67045665d..2035aea70 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ dist # TernJS port file .tern-port + +# Manual +docs/.vitepress/cache diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts new file mode 100644 index 000000000..555eeab22 --- /dev/null +++ b/docs/.vitepress/config.mts @@ -0,0 +1,67 @@ +import { defineConfig } from "vitepress"; + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + title: "Бази даних", + description: "Лабораторні роботи з дисципліни Організація баз даних", + lang: "uk", + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: "Головна", link: "/" }, + { text: "Зміст", link: "/intro/README" }, + { text: "Автори", link: "/authors" }, + ], + + footer: { + copyright: "MIT Licensed | Copyright © 2025 TockePie" + }, + + search: { + provider: 'local' + }, + + sidebar: [ + { + text: "Зміст", + items: [ + { text: "Вступ", link: "/intro/README" }, + { + text: "Розроблення загальних вимог до системи", + items: [ + { text: "Аналіз предметної області", link: "/requirements/state-of-the-art" }, + { + text: "Потреби зацікавлених сторін", + link: "/requirements/stakeholders-needs", + }, + ], + }, + { + text: "Розроблення вимог до функціональности системи", + link: "/use cases/README", + }, + { + text: "Проектування інформаційного забезпечення", + link: "/design/README", + }, + { + text: "Реалізація інформаційного та програмного забезпечення", + link: "/software/README", + }, + { + text: "Тестування працездатності системи", + link: "/test/README", + }, + { + text: "Висновки", + link: "/conclusion/README", + }, + ], + }, + ], + + socialLinks: [ + { icon: "github", link: "https://github.com/TockePie/db_labs" }, + ], + }, +}); diff --git a/docs/.vuepress/.gitignore b/docs/.vuepress/.gitignore deleted file mode 100644 index aa36f6293..000000000 --- a/docs/.vuepress/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -css -dist \ No newline at end of file diff --git a/docs/.vuepress/components/Details.vue b/docs/.vuepress/components/Details.vue deleted file mode 100644 index 0b81bddc4..000000000 --- a/docs/.vuepress/components/Details.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - diff --git a/docs/.vuepress/components/Quiz.vue b/docs/.vuepress/components/Quiz.vue deleted file mode 100644 index 4a2d09947..000000000 --- a/docs/.vuepress/components/Quiz.vue +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - diff --git a/docs/.vuepress/components/Styles.vue b/docs/.vuepress/components/Styles.vue deleted file mode 100644 index 9ba92c228..000000000 --- a/docs/.vuepress/components/Styles.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/.vuepress/components/my-component.vue b/docs/.vuepress/components/my-component.vue deleted file mode 100644 index 41ef3a69a..000000000 --- a/docs/.vuepress/components/my-component.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/docs/.vuepress/components/sample-timeline.vue b/docs/.vuepress/components/sample-timeline.vue deleted file mode 100644 index 6795232d3..000000000 --- a/docs/.vuepress/components/sample-timeline.vue +++ /dev/null @@ -1,35 +0,0 @@ -// .vuepress/components/sample-timeline.vue - - - \ No newline at end of file diff --git a/docs/.vuepress/config-other.js b/docs/.vuepress/config-other.js deleted file mode 100644 index a8ca9dbec..000000000 --- a/docs/.vuepress/config-other.js +++ /dev/null @@ -1,211 +0,0 @@ -// .vuepress/config.js -// missing markdownItAds boostnote admonitions -const fs = require('fs') -const path = require('path') -const util = require('util') - -module.exports = { - base: '/vuepress-theme-cool-starter/', - theme: 'cool', - //dest: 'dist', - head: [ - ['link', { rel: 'icon', href: '/faviconCustom.ico' }], - ['link', { rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css' }], - ['link', {href: 'https://fonts.googleapis.com/icon?family=Material+Icons', rel :'stylesheet'}] - ], - plugins: [ - '@vuepress/last-updated', - '@vuepress/back-to-top', - '@vuepress/pwa' - ], - themeConfig: { - // logo: './myAvatar.png', - sidebar: genSideBar('.'), - sidebarDepth: 2, - displayAllHeaders: true, // Default: false themeConfig: { - nav: genNavBarList(), - lastUpdated: 'Last Updated', // string | boolean - // Assumes GitHub. Can also be a full GitLab url. - repo: 'FriendlyUser/vuepress-theme-cool-starter', - // Customising the header label - // Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo` - repoLabel: 'Contribute!', - // Optional options for generating "Edit this page" link - // if your docs are in a different repo from your main project: - //docsRepo: 'FriendlyUser/markdown-notes-template', - // if your docs are not at the root of the repo: - //docsDir: 'docs', - // if your docs are in a specific branch (defaults to 'master'): - docsBranch: 'gh-pages', - // defaults to false, set to true to enable - editLinks: true, - // custom text for edit link. Defaults to "Edit this page" - editLinkText: 'Help us improve this page!' - - }, - title: 'Vuepress Theme Cool Starter', - description: 'Example project to get started with the vuepress-theme-cool', - configureWebpack: { - resolve: { - alias: { - '@alias': '../img' - } - } - }, - plugins: { - '@vuepress/pwa': { serviceWorker: true, - updatePopup: { - message: "New content is available.", - buttonText: "Refresh" - } - } - }, - markdown: { - extendMarkdown: md => { - md.set({ html: true }) - md.use(require('markdown-it-katex')) - md.use(require('markdown-it-plantuml')) - md.use(require('markdown-it-admonition')) - md.use(require('markdown-it-task-lists')) - } - } -} - - -// Helper functions -function fromDir(startPath,filter,callback){ - - //console.log('Starting from dir '+startPath+'/'); - if (!fs.existsSync(startPath)){ - console.log("no dir ",startPath); - return; - } - - var files=fs.readdirSync(startPath); - for(var i=0;i', - after: '' - }] - ], - port: 3030, - base: '/edu_db_labs/', - theme: 'cool', - // dest: 'dist', - head: [ - ['link', { rel: 'icon', href: '/favicon.ico' }], - ['link', { rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css' }], - ['link', {href: 'https://fonts.googleapis.com/icon?family=Material+Icons', rel :'stylesheet'}], - - ], - themeConfig: { - // logo: './myAvatar.png', - sidebar: [ - { - title: 'Вступ', - path:"/intro/" - }, - { - title: 'Розроблення загальних вимог до системи', - path:"/requirements/", - children:[ - '/requirements/state-of-the-art', - '/requirements/stakeholders-needs', - ] - - }, - - { - title: 'Розроблення вимог до функціональности системи', - path:"/use cases/" - }, - - { - title: 'Проектування інформаційного забезпечення', - path:"/design/" - }, - - { - title: 'Реалізація інформаційного та програмного забезпечення', - path:"/software/" - }, - - { - title: 'Тестування працездатності системи', - path:"/test/" - }, - { - title: 'Висновки', - path:"/conclusion/" - } - - ], - sidebarDepth: 2, - displayAllHeaders: true, // Default: false - - - nav: [ - { text: 'Початок', link: '/' }, - ], - - lastUpdated: 'Останнє оновлення', // string | boolean - // Assumes GitHub. Can also be a full GitLab url. - repo: 'https://github.com/edu-db/edu_db_labs', - // Customising the header label - // Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo` - repoLabel: 'Github', - - // Optional options for generating "Edit this page" link - - // if your docs are in a different repo from your main project: - // docsRepo: 'boldak/dis-edu', - // if your docs are not at the root of the repo: - docsDir: 'docs', - // if your docs are in a specific branch (defaults to 'master'): - docsBranch: 'master', - // defaults to false, set to true to enable - // editLinks: true, - // custom text for edit link. Defaults to "Edit this page" - // editLinkText: 'Ви можете покращити цю сторінку' - - }, - title: 'Назва проєкту', - description: 'Лабораторні роботи з дисципліни "Організація баз даних"', - configureWebpack: { - resolve: { - alias: { - '@alias': '../img' - } - } - }, - markdown: { - extendMarkdown: md => { - md.set({ html: true }) - md.use(require('markdown-it-katex')) - md.use(require('markdown-it-plantuml')) - md.use(require('markdown-it-admonition')) - } - } -} \ No newline at end of file diff --git a/docs/.vuepress/enhanceApp.js b/docs/.vuepress/enhanceApp.js deleted file mode 100644 index 0ec10ef64..000000000 --- a/docs/.vuepress/enhanceApp.js +++ /dev/null @@ -1,30 +0,0 @@ -import Vuex from 'vuex' - -import VueChartkick from 'vue-chartkick' -import Chart from 'chart.js' -import VueGoodTablePlugin from 'vue-good-table'; - -// The styles are important in another component because of the way webpack is configured -// import 'vue-good-table/dist/vue-good-table.css' -export default ({ Vue, options, router, siteData }) => { - Vue.use(Vuex) - Vue.use(VueChartkick, {adapter: Chart}) - Vue.use(VueGoodTablePlugin) - Vue.mixin({ - computed: { - $title() { - const page = this.$page - const siteTitle = this.$siteTitle - const selfTitle = page.frontmatter.home ? null : ( - page.frontmatter.title || // explicit title - (page.title ? page.title.replace(/[_`]/g, '') : '') // inferred title - ) - return siteTitle - ? selfTitle - ? (selfTitle + ' | ' + siteTitle) - : siteTitle - : selfTitle || 'VuePress' - } - } - }) -} diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico deleted file mode 100644 index 74e6ef9c79dcdddd6619ef44cb5dd5efb3ed8c9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmb_bO-~b16unbK<41G?ZT(#MG4IVA!&(x5fD8A!(6BdAf-y!DqhMG`h>aFnXeohG zif)X?ts6EP7f_3W)k2|2tu<;ZN~0vocxI+Goj4@Mn8}%$dnf1Id*8W3B;k@}!hJuT z*+AqaA^{+UjFrcO2;UmES}^1Pcw;@UN%2j&)W|!o4t;15!=Ekz?IK!g7bB&M>d?p2 zY9!ypZojPO!FgL{9?lW(%Wf0V;#D#7`LP%-Mxb$C9V}cBqhE8{-Bn$?^X;cLRxaRs z1Uei!I?(Zmphw&H9+benCSuEz;2b%08nu>+qAjZ^7%#Ps-Q>%$08gzv6q<|KI1I;DL-AJ`ncw6g*w4 z^q){}&3I6|2?&EK*NL*5h{o%PIwc|> TGz_d&a2?MoI&0pIoWcDC!Qs`F diff --git a/docs/.vuepress/public/faviconCustom.ico b/docs/.vuepress/public/faviconCustom.ico deleted file mode 100644 index 6f9ac05d0ad30edfca39e522f9b0147ddaffd94d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31523 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 diff --git a/docs/.vuepress/public/license.html b/docs/.vuepress/public/license.html deleted file mode 100644 index 5c9245d6c..000000000 --- a/docs/.vuepress/public/license.html +++ /dev/null @@ -1,16 +0,0 @@ -
-	
-	Copyright 2021 Andrey Boldak Licensed under the
-	Educational Community License, Version 2.0 (the "License"); you may
-	not use this file except in compliance with the License. You may
-	obtain a copy of the License at
-	
-	https://opensource.org/licenses/ECL-2.0
-
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an "AS IS"
-	BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-	or implied. See the License for the specific language governing
-	permissions and limitations under the License.
-
-
\ No newline at end of file diff --git a/docs/.vuepress/public/myAvatar.png b/docs/.vuepress/public/myAvatar.png deleted file mode 100644 index 5a0c6b5edef84eb9b10cb6fd5a3c97e2d27402cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1540 zcmV+f2K)JmP)P000>X1^@s6#OZ}&00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY07w7;07w8v$!k6U00lxxL_t(Y$CZ^^Y#dh|hrctIo!Ohc z-gVaAb-FIJQLZ>ZdP`juB^2mOK}AtO6dvFqQlAh41PBlUiI+;GJR*aTsEAsmP}-NK zt*A($6%Ya~vC}%rMRA(yyW~G2|s~j zC(tIwu^o)j7$X?bBwUYHdzE(3p*URR+Wb{@+mL);K|IID7!3*#a2yw7G`8)KN~I7H zmg+Uq$uvROA?|4^ci+L8sWZ2LteYPkJ$h8qUYaQC;y4asghFAEW*AVdHxLyuJe;Q4 zUZFHJLc7x@<)^U|HW%N$#7ie$l1)uMzGtsAmRAXa4kAJ(ouw-=7f<{Ozcd6v7kUw7 zQrx}&FhM)Q=omo|EsP&{kmp}`UTtVHb@nVKj`0#63WZh{PkrkNJjbJXrAlk5$!fEW zt~L0{lZQ#BGsHT^_k2+B_J7{qypyb#mHuoF$90I}7|T`6p8g}vYl~QJ0>|-)<1WMz znY2&xlV7CR*N^Skbi*$7W}QydzQM$~nHt3rN-0DHH{o;W(R-jBtZi!%jENBu#0ccF zl#4km@z6R#fLy-+7L!}XHC!ISO}Hp!Gh3Z!|JZJh{pmGa#|9k}_d=A8ab1Vwe|Uxc zW7}y40b#dCCY@&2o{wz~8QWH&wi1xZIL!X}H+<%voqXxwCwO||S!@MjG?s#=Cyw#? z@!kCX=ilV$cb}k;&v1Trp0Uv_8$*Kgr)0dGVB$w#W$Ml6I5~NliBp$x?|q!n`yWDe zTOc5v6-FOChmyZz#TTaZyE92qPXp}qD z`SlMaGgu;99Ko_}Y|Fy3ZH#~b%Jq<_ivlbKMr*V&7_C`ZxI(zH%#LsTRDGZcKu}+# z@y2n9wV}T}iqRTnSt#4ac0AlvhA3#Eqb{N~VhomTvobe>Z7K2xzM}kWZsX#U16y#) z+ljj2+E=hu!yhPO;s~uZVY5!MZve}- zu^gAMew{csLg~KGez>33|7U6X-x6IuLuN|}6GsRNgaj5W7S)*xn*v~+3vyjhxk9*7WB%;FhU> z^ZLf)nm9Qrhl0P;U#ifF3{e;$X6@X#$rNcvv3PBk-A5A&%+_cJA?K8BkO`iGZdHQ{KjjG(ExQ;`&*JHWa zLIfPgW+>lJ6l>NSw}^mJ)LH>Qd+c8R2jw_|dRS)Tod5s;C3HntbYx+4WjbSWWnpw> z05UK!I4v+YEigD#F*Q0dG&(RbEig1XFfdIXKk5Jg03~!qSaf7zbY(hiZ)9m^c>ppn qF*q$SH!UzYR53L=F*G_bF)c7OIxsLiLx)xX0000:last-child { - margin-bottom: 1.2rem; - } - - .admonition .admonition { - margin: 1em 0; - } - - .admonition p { - margin-top: 0.5em; - } - - .admonition.note>.admonition-title:before, - .admonition.hint>.admonition-title:before, - .admonition.danger>.admonition-title:before, - .admonition.caution>.admonition-title:before, - .admonition.error>.admonition-title:before, - .admonition.attention>.admonition-title:before { - position: absolute; - left: 1.2rem; - font-family: "Material Icons"; - font-size: 24px; - display: inline-block; - line-height: 1; - text-transform: none; - letter-spacing: normal; - word-wrap: normal; - white-space: nowrap; - direction: ltr; - /* Support for all WebKit browsers. */ - -webkit-font-smoothing: antialiased; - /* Support for Safari and Chrome. */ - text-rendering: optimizeLegibility; - /* Support for Firefox. */ - -moz-osx-font-smoothing: grayscale; - /* Support for IE. */ - font-feature-settings: 'liga'; - } - - .admonition.note>.admonition-title, - .admonition.hint>.admonition-title, - .admonition.danger>.admonition-title, - .admonition.caution>.admonition-title, - .admonition.error>.admonition-title, - .admonition.attention>.admonition-title { - margin: 0 -1.2rem; - padding: 0.8rem 1.2rem 0.8rem 4rem; - border-bottom: 0.1rem solid rgba(68,138,255,0.1); - background-color: rgba(68,138,255,0.1); - font-weight: 700; - } - - .admonition>.admonition-title:last-child { - margin-bottom: 0; - } - - .admonition.note { - border-left-color: #448aff; - } - - .admonition.note>.admonition-title { - border-bottom-color: 0.1rem solid rgba(68,138,255,0.1); - background-color: rgba(68,138,255,0.1); - } - - .admonition.note>.admonition-title:before { - color: #448aff; - content: "note"; - } - - .admonition.hint { - border-left-color: #00bfa5; - } - - .admonition.hint>.admonition-title { - border-bottom-color: 0.1rem solid rgba(0,191,165,0.1); - background-color: rgba(0,191,165,0.1); - } - - .admonition.hint>.admonition-title:before { - color: #00bfa5; - content: "info"; - } - - .admonition.danger { - border-left-color: #ff1744; - } - - .admonition.danger>.admonition-title { - border-bottom-color: 0.1rem solid rgba(255,23,68,0.1); - background-color: rgba(255,23,68,0.1); - } - - .admonition.danger>.admonition-title:before { - color: #ff1744; - content: "block"; - } - - .admonition.caution { - border-left-color: #ff9100; - } - - .admonition.caution>.admonition-title { - border-bottom-color: 0.1rem solid rgba(255,145,0,0.1); - background-color: rgba(255,145,0,0.1); - } - - .admonition.caution>.admonition-title:before { - color: #ff9100; - content: "warning"; - } - - .admonition.error { - border-left-color: #ff1744; - } - - .admonition.error>.admonition-title { - border-bottom-color: 0.1rem solid rgba(255,23,68,0.1); - background-color: rgba(255,23,68,0.1); - } - - .admonition.error>.admonition-title:before { - color: #ff1744; - content: "error"; - } - - .admonition.attention { - border-left-color: #64dd17; - } - - .admonition.attention>.admonition-title { - border-bottom-color: 0.1rem solid rgba(100,221,23,0.1); - background-color: rgba(100,221,23,0.1); - } - - .admonition.attention>.admonition-title:before { - color: #64dd17; - content: "priority_high"; - } - - body { - font-size 16px; - text-align: justify; - } - - .theme-default-content:not(.custom) { - max-width: 950px; - margin: 0 auto; - padding: 2rem 2.5rem; - } - - .sidebar-heading { - color: #2c3e50; - transition: color 0.15s ease; - cursor: pointer; - font-size: 1em !important; - font-weight: 500 !important; - padding: 0.35rem 1.5rem 0.35rem 1.25rem; - width: 100%; - box-sizing: border-box; - margin: 0; - border-left: 0.25rem solid transparent; - } \ No newline at end of file diff --git a/docs/.vuepress/styles/palette.styl b/docs/.vuepress/styles/palette.styl deleted file mode 100644 index 68bfedc1a..000000000 --- a/docs/.vuepress/styles/palette.styl +++ /dev/null @@ -1,89 +0,0 @@ -// showing default values -$accentColor = #0984e3 -$textColor = #2c3e50 -$borderColor = #eaecef -$codeBgColor = #282c34 - -$admonition - box-shadow 0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2) - position relative - margin 1.5625em 0 - padding 0 1.2rem - border-left .4rem solid #448aff - border-radius .2rem - overflow auto - -html .admonition>:last-child - margin-bottom 1.2rem - -.admonition .admonition - margin 1em 0 - -.admonition p - margin-top: 0.5em - -$admonition-icon - position absolute - left 1.2rem - font-family: "Material Icons" - font-weight: normal; - font-style: normal; - font-size: 24px - display: inline-block; - line-height: 1; - text-transform: none; - letter-spacing: normal; - word-wrap: normal; - white-space: nowrap; - direction: ltr; - - /* Support for all WebKit browsers. */ - -webkit-font-smoothing: antialiased; - /* Support for Safari and Chrome. */ - text-rendering: optimizeLegibility; - - /* Support for Firefox. */ - -moz-osx-font-smoothing: grayscale; - - /* Support for IE. */ - font-feature-settings: 'liga'; - -$admonition-title - margin 0 -1.2rem - padding .8rem 1.2rem .8rem 4rem - border-bottom .1rem solid rgba(68,138,255,.1) - background-color rgba(68,138,255,.1) - font-weight 700 - -.admonition>.admonition-title:last-child - margin-bottom 0 - -admonition_types = { - note: {color: #0288D1, icon: "edit_sharp"}, - abstract: {color: #c5d845, icon: "speaker_notes_filled"}, - info: {color: #19d8f5, icon: "info"} - tip: {color: #00bfa5, icon: "code"}, - success: {color: #00c853, icon: "check_circle_outline"}, - question: {color: #64dd17, icon: "help"}, - warning: {color: #ff9100, icon: "warning"}, - failure: {color: #ff5252, icon: "close"}, - danger: {color: #c2185b, icon: "flash_on"}, - bug: {color: #e040fb, icon: "bug_report"}, - example: {color: #651fff, icon: "format_list_numbered_rtl"}, - quote: {color: #9e9e9e, icon: "format_quote"} -} - -for name, val in admonition_types - .admonition.{name} - @extend $admonition - border-left-color: val[color] - - .admonition.{name}>.admonition-title - @extend $admonition-title - border-bottom-color: .1rem solid rgba(val[color], 0.2) - background-color: rgba(val[color], 0.2) - - .admonition.{name}>.admonition-title:before - @extend $admonition-icon - color: val[color] - content: val[icon] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3eb7dee9e..573e4aea4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11778 +1,3119 @@ { "name": "edu_db_labs", "version": "2.1.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" - }, - "@babel/core": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", - "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, + "packages": { + "": { + "name": "edu_db_labs", + "version": "2.1.0", + "license": "ECL 2.0", + "devDependencies": { + "vitepress": "^1.6.3" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" + } + }, + "node_modules/@algolia/autocomplete-core/node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-core/node_modules/algoliasearch": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.1.tgz", + "integrity": "sha512-SiCOCVBCQUg/aWkfMnjT+8TQxNNFlPZTI7v8y4+aZXzJg6zDIzKy9KcYVS4sc+xk5cwW5hyJ+9z836f4+wvgzA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@algolia/client-abtesting": "5.20.1", + "@algolia/client-analytics": "5.20.1", + "@algolia/client-common": "5.20.1", + "@algolia/client-insights": "5.20.1", + "@algolia/client-personalization": "5.20.1", + "@algolia/client-query-suggestions": "5.20.1", + "@algolia/client-search": "5.20.1", + "@algolia/ingestion": "1.20.1", + "@algolia/monitoring": "1.20.1", + "@algolia/recommend": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights/node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights/node_modules/algoliasearch": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.1.tgz", + "integrity": "sha512-SiCOCVBCQUg/aWkfMnjT+8TQxNNFlPZTI7v8y4+aZXzJg6zDIzKy9KcYVS4sc+xk5cwW5hyJ+9z836f4+wvgzA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@algolia/client-abtesting": "5.20.1", + "@algolia/client-analytics": "5.20.1", + "@algolia/client-common": "5.20.1", + "@algolia/client-insights": "5.20.1", + "@algolia/client-personalization": "5.20.1", + "@algolia/client-query-suggestions": "5.20.1", + "@algolia/client-search": "5.20.1", + "@algolia/ingestion": "1.20.1", + "@algolia/monitoring": "1.20.1", + "@algolia/recommend": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.20.1.tgz", + "integrity": "sha512-73pnrUixMVnfjgldxhRi5eYLraMt95/MhQHevoFtqwy+t2hfayxYBZXJ2k6JJDld8UmjcWwq3wXnvZJCOm7vZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.20.1.tgz", + "integrity": "sha512-BRiyL+AwPfGTlo3HbrFDMeTK2z5SaJmB8PBd1JI66d6MeP85+38Mux2FFw+nvDOfBwlGaN/uw2AQTOZ9r4JYtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.20.1.tgz", + "integrity": "sha512-Dk4RhklaAbqLzOeJO/MoIFUjcKYGECiAJYYqDzmE/sbXICk5Uo6dGlv8w4z09lmvsASpNUoMvGYHGBK+WkEGpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.20.1.tgz", + "integrity": "sha512-eu5vhmyYgzZjFIPmkoLo/TU4s+IdsjQ+bEfLj2jcMvyfBD4DcqySKp03TrXjdrHPGO2I3fF7dPZOoCgEi1j2/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.20.1.tgz", + "integrity": "sha512-TrUCJ0nVqE0PnOGoRG/RCirxWZ6pF+skZgaaESN2IBnJtk/In14xVmoj8Yzck81bGUY/UI+5dUUOOS7YTSVEhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.20.1.tgz", + "integrity": "sha512-rHHX/30R3Kkx2aZeR7/8+jU0s6h1cNPMAKOvcMUGVmoiuh46F1sxzmiswHLg6CuLrQ0ikhpdhn3ehFSJwHgp2Q==", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, + "node_modules/@algolia/client-search": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.20.1.tgz", + "integrity": "sha512-YzHD0Nqp7AjvzbFrMIjhCUl6apHkWfZxKDSlMqf80mXkuG52wY289zFlvTfHjHK1nEiDslH3uHYAR/poOOa21Q==", + "dev": true, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", - "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "engines": { + "node": ">= 14.0.0" } }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz", - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.16.7" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz", - "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz", - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz", - "integrity": "sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.8.tgz", - "integrity": "sha512-9rNKgVCdwHb3z1IlbMyft6yIXIeP3xz6vWvGaLHrJThuEIqWfHb0DNBH9VuTgnDfdbUDhkmkvMZS/YMCtP7Elg==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.7", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, + "node_modules/@algolia/ingestion": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.20.1.tgz", + "integrity": "sha512-sHNZ8b5tK7TvXMiiKK+89UsXnFthnAZc0vpwvDKygdTqvsfmfJPhthx36eHTAVYfh7NnA1+eqZsT/hMUGeZFkQ==", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" + "node_modules/@algolia/monitoring": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.20.1.tgz", + "integrity": "sha512-+fHd1U3gSeszCH03UtyUZmprpmcJH6aJKyUTOfY73lKKRR7hVofmV812ahScR0T4xUkBlGjTLeGnsKY0IG6K6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@braintree/sanitize-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", - "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==" - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/highlight.js": { - "version": "9.12.4", - "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.4.tgz", - "integrity": "sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww==" - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "requires": { - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" - }, - "@types/markdown-it": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-10.0.3.tgz", - "integrity": "sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw==", - "requires": { - "@types/highlight.js": "^9.7.0", - "@types/linkify-it": "*", - "@types/mdurl": "*", - "highlight.js": "^9.7.0" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" - }, - "@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==" - }, - "@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", - "requires": { - "source-map": "^0.6.1" - } - }, - "@types/webpack": { - "version": "4.41.32", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", - "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" + "node_modules/@algolia/recommend": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.20.1.tgz", + "integrity": "sha512-+IuiUv3OSOFFKoXFMlZHfFzXGqEQbKhncpAcRSAtJmN4pupY4aNblvJ9Wv0SMm7/MSFRy2JLIoYWRSBpSV2yEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@types/webpack-dev-server": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", - "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", - "requires": { - "@types/connect-history-api-fallback": "*", - "@types/express": "*", - "@types/serve-static": "*", - "@types/webpack": "^4", - "http-proxy-middleware": "^1.0.0" - } - }, - "@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.20.1.tgz", + "integrity": "sha512-+RaJa5MpJqPHaSbBw0nrHeyIAd5C4YC9C1LfDbZJqrn5ZwOvHMUTod852XmzX/1S8oi1jTynB4FjicmauZIKwA==", + "dev": true, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } + "@algolia/client-common": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==" - }, - "@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==" - }, - "@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", - "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - }, + "node_modules/@algolia/requester-fetch": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.20.1.tgz", + "integrity": "sha512-4l1cba8t02rNkLeX/B7bmgDg3CwuRunmuCSgN2zORDtepjg9YAU1qcyRTyc/rAuNJ54AduRfoBplmKXjowYzbQ==", + "dev": true, + "license": "MIT", "dependencies": { - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=" - } + "@algolia/client-common": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@vue/babel-preset-app": { - "version": "4.5.15", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz", - "integrity": "sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg==", - "requires": { - "@babel/core": "^7.11.0", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.0", - "@vue/babel-plugin-jsx": "^1.0.3", - "@vue/babel-preset-jsx": "^1.2.4", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5", - "semver": "^6.1.0" - }, + "node_modules/@algolia/requester-node-http": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.20.1.tgz", + "integrity": "sha512-4npKo1qpLG5xusFoFUj4xIIR/6y3YoCuS/uhagv2blGFotDj+D6OLTML3Pp6JCVcES4zDbkoY7pmNBA8ARtidQ==", + "dev": true, + "license": "MIT", "dependencies": { - "core-js": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.2.tgz", - "integrity": "sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw==" - } + "@algolia/client-common": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" } }, - "@vue/babel-preset-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", - "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", - "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", - "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", - "@vue/babel-sugar-functional-vue": "^1.2.2", - "@vue/babel-sugar-inject-h": "^1.2.2", - "@vue/babel-sugar-v-model": "^1.2.3", - "@vue/babel-sugar-v-on": "^1.2.3" - } - }, - "@vue/babel-sugar-composition-api-inject-h": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", - "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@vue/babel-sugar-composition-api-render-instance": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", - "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-functional-vue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", - "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-inject-h": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", - "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-v-model": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", - "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=" - } + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@vue/babel-sugar-v-on": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", - "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0" - }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", - "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.36", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2 || ^2.0.0", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" + "@babel/types": "^7.26.7" }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@vuepress/core": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-1.9.5.tgz", - "integrity": "sha512-Fv9obu+eLkflrPFpdL4qv42Rso0AzDDLk/0dGANF9yqi7t3XgIvWV8oiiUa1cg/m/Sgel5RlSjJxDPWrnXjDCQ==", - "requires": { - "@babel/core": "^7.8.4", - "@vue/babel-preset-app": "^4.1.2", - "@vuepress/markdown": "1.9.5", - "@vuepress/markdown-loader": "1.9.5", - "@vuepress/plugin-last-updated": "1.9.5", - "@vuepress/plugin-register-components": "1.9.5", - "@vuepress/shared-utils": "1.9.5", - "@vuepress/types": "1.9.5", - "autoprefixer": "^9.5.1", - "babel-loader": "^8.0.4", - "bundle-require": "2.1.8", - "cache-loader": "^3.0.0", - "chokidar": "^2.0.3", - "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^5.0.2", - "core-js": "^3.6.4", - "cross-spawn": "^6.0.5", - "css-loader": "^2.1.1", - "esbuild": "0.14.7", - "file-loader": "^3.0.1", - "js-yaml": "^3.13.1", - "lru-cache": "^5.1.1", - "mini-css-extract-plugin": "0.6.0", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "portfinder": "^1.0.13", - "postcss-loader": "^3.0.0", - "postcss-safe-parser": "^4.0.1", - "toml": "^3.0.0", - "url-loader": "^1.0.1", - "vue": "^2.6.10", - "vue-loader": "^15.7.1", - "vue-router": "^3.4.5", - "vue-server-renderer": "^2.6.10", - "vue-template-compiler": "^2.6.10", - "vuepress-html-webpack-plugin": "^3.2.0", - "vuepress-plugin-container": "^2.0.2", - "webpack": "^4.8.1", - "webpack-chain": "^6.0.0", - "webpack-dev-server": "^3.5.1", - "webpack-merge": "^4.1.2", - "webpackbar": "3.2.0" - }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", "dependencies": { - "core-js": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.2.tgz", - "integrity": "sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw==" - } + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@vuepress/markdown": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.9.5.tgz", - "integrity": "sha512-6W2hen+9qhkSuj/j403QaWxMcnqQSnZqjHr1qt581zNz1xLwgkSva7IzfGWxEVdCkwtM8+JWZrDEkzt4UyItXA==", - "requires": { - "@vuepress/shared-utils": "1.9.5", - "markdown-it": "^8.4.1", - "markdown-it-anchor": "^5.0.2", - "markdown-it-chain": "^1.3.0", - "markdown-it-emoji": "^1.4.0", - "markdown-it-table-of-contents": "^0.4.0", - "prismjs": "^1.13.0" - } - }, - "@vuepress/markdown-loader": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.9.5.tgz", - "integrity": "sha512-Y4pxXQpOf2gvxGMPKEotHJKqVAIi+HfqKQAJPd/0zhsFn6F54qOsuhohXOvtx3sAUnbYmuM5+zS/Jpvh6UMebA==", - "requires": { - "@vuepress/markdown": "1.9.5", - "loader-utils": "^1.1.0", - "lru-cache": "^5.1.1" - } - }, - "@vuepress/plugin-active-header-links": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.5.tgz", - "integrity": "sha512-Pi6cu5Ed4m6Ri8QatigapdXqhEcZXd/s+lyhdKWIwjJQaMSYlyAN2pX8Pqm4vqAvW6c0Dw2wEXrd989BcI7T4g==", - "requires": { - "@vuepress/types": "1.9.5", - "lodash.debounce": "^4.0.8" - } - }, - "@vuepress/plugin-back-to-top": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-1.9.5.tgz", - "integrity": "sha512-zcESgBsH5EYQLUN+EtxDYKHyPmZXIgLEReaKU8ddRaMxzodMXW84WtCmsc0En/P9wkf4SOXZkmWllH53rZWrzQ==", - "requires": { - "@vuepress/types": "1.9.5", - "lodash.debounce": "^4.0.8" - } - }, - "@vuepress/plugin-last-updated": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.5.tgz", - "integrity": "sha512-coy5zMgAHVno+c8yGMwxBhkTNMBYoRJdogzuVQRgITJRDZfToiKSza3RDQkFfn1YluCps2v/9NQSHwPnhEv6eA==", - "requires": { - "@vuepress/types": "1.9.5", - "cross-spawn": "^6.0.5" - } - }, - "@vuepress/plugin-nprogress": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.5.tgz", - "integrity": "sha512-XEtyCt/R/qNcQM62/F6srqOZ6V6mmxSqfQktPMYfOdQqeRW0aCXvG6N2/cy55S4xH8LeEVL4Nxg5m9Cew9AEgA==", - "requires": { - "@vuepress/types": "1.9.5", - "nprogress": "^0.2.0" - } - }, - "@vuepress/plugin-pwa": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-pwa/-/plugin-pwa-1.9.5.tgz", - "integrity": "sha512-JdvxRz+ESB2owKh9TLO+kEsPPOOATIB+Y/0LS1YZ+OsOWsgyE9/AS0EoCnvcwVn5aNw9wz95klw1s4vYCDPo/Q==", - "requires": { - "@vuepress/shared-utils": "1.9.5", - "@vuepress/types": "1.9.5", - "register-service-worker": "^1.7.0", - "workbox-build": "^4.3.1" - } - }, - "@vuepress/plugin-register-components": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.9.5.tgz", - "integrity": "sha512-2eFqboPCOSY8bh7lkd13Cs7vyUcETEzzYnK/7CjqaeDmYtiJuWCoPjF30K2RsdbpVCE5aqheyXmBSEp2uWEosA==", - "requires": { - "@vuepress/shared-utils": "1.9.5", - "@vuepress/types": "1.9.5" - } - }, - "@vuepress/plugin-search": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.9.5.tgz", - "integrity": "sha512-SDK/1UnJ44OAktgZQWiw6S8Yq8F6WkJsGp4k/e3x1gHg5fB96JJlKK4VBsGk/PUsPpYRwr5554dtEVFjFG7oWw==", - "requires": { - "@vuepress/types": "1.9.5" - } - }, - "@vuepress/shared-utils": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.9.5.tgz", - "integrity": "sha512-WA6lq5YwbG3HX3yVhMsrsw6zqDUiiMsUsBJCk/gNwbWng/NTibR/f+DkUyD/tw8fYuNu5EDK8wPn+qyLhcrjJg==", - "requires": { - "chalk": "^2.3.2", - "escape-html": "^1.0.3", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "gray-matter": "^4.0.1", - "hash-sum": "^1.0.2", - "semver": "^6.0.0", - "toml": "^3.0.0", - "upath": "^1.1.0" - } - }, - "@vuepress/theme-default": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.9.5.tgz", - "integrity": "sha512-mB919hzorh3PwEY6hzkBYEa0Xweg3kEUPhZbNx29gMXn6KBS7NqN3+sId/Frv2RydSWw5h1ax8NtphaiR0UvBQ==", - "requires": { - "@vuepress/plugin-active-header-links": "1.9.5", - "@vuepress/plugin-nprogress": "1.9.5", - "@vuepress/plugin-search": "1.9.5", - "@vuepress/types": "1.9.5", - "docsearch.js": "^2.5.2", - "lodash": "^4.17.15", - "stylus": "^0.54.8", - "stylus-loader": "^3.0.2", - "vuepress-plugin-container": "^2.0.2", - "vuepress-plugin-smooth-scroll": "^0.0.3" - } - }, - "@vuepress/types": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@vuepress/types/-/types-1.9.5.tgz", - "integrity": "sha512-fu1Wyi+cPFyn7nfxNH4MVvU5glYvRB0RMI7besq9kiI/KkZJPb2G1hITopECJOGk+6G/cOU/iSdUDUHH4GQLgA==", - "requires": { - "@types/markdown-it": "^10.0.0", - "@types/webpack-dev-server": "^3", - "webpack-chain": "^6.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "algoliasearch": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz", - "integrity": "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==", - "requires": { - "agentkeepalive": "^2.2.0", - "debug": "^2.6.9", - "envify": "^4.0.0", - "es6-promise": "^4.1.0", - "events": "^1.1.0", - "foreach": "^2.0.5", - "global": "^4.3.2", - "inherits": "^2.0.1", - "isarray": "^2.0.1", - "load-script": "^1.0.0", - "object-keys": "^1.0.11", - "querystring-es3": "^0.2.1", - "reduce": "^1.0.1", - "semver": "^5.1.0", - "tunnel-agent": "^0.6.0" - }, + "node_modules/@docsearch/css": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", + "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz", + "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==", + "dev": true, + "license": "MIT", "dependencies": { - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "@docsearch/react": "3.8.2", + "preact": "^10.0.0" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - }, + "node_modules/@docsearch/react": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", + "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.2", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "react": { + "optional": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } + "react-dom": { + "optional": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } + "search-insights": { + "optional": true } } }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@docsearch/react/node_modules/algoliasearch": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.1.tgz", + "integrity": "sha512-SiCOCVBCQUg/aWkfMnjT+8TQxNNFlPZTI7v8y4+aZXzJg6zDIzKy9KcYVS4sc+xk5cwW5hyJ+9z836f4+wvgzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-abtesting": "5.20.1", + "@algolia/client-analytics": "5.20.1", + "@algolia/client-common": "5.20.1", + "@algolia/client-insights": "5.20.1", + "@algolia/client-personalization": "5.20.1", + "@algolia/client-query-suggestions": "5.20.1", + "@algolia/client-search": "5.20.1", + "@algolia/ingestion": "1.20.1", + "@algolia/monitoring": "1.20.1", + "@algolia/recommend": "5.20.1", + "@algolia/requester-browser-xhr": "5.20.1", + "@algolia/requester-fetch": "5.20.1", + "@algolia/requester-node-http": "5.20.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.23", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.23.tgz", + "integrity": "sha512-ySyZ0ZXdNveWnR71t7XGV7jhknxSlTtpM2TyIR1cUHTUzZLP36hYHTNqb2pYYsCzH5ed85KTTKz7vYT33FyNIQ==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "anymatch": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "assert": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.5.tgz", + "integrity": "sha512-JXmmQcKQtpf3Z6lvA8akkrHDZ5AEfgc2hLMix1/X5BhQbezBQ0AP5GYLdU8jsQRme8qr2sscCe3wizp7UT0L9g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.5.tgz", + "integrity": "sha512-9/A8/ZBOprUjkrJoP9BBEq2vdSud6BPd3LChw09bJQiEZH5oN4kWIkHu90cA0Cj0cSF5cIaD76+0lA+d5KHmpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.5.tgz", + "integrity": "sha512-b9oCfgHKfc1AJEQ5sEpE8Kf6s7aeygj5bZAsl1hTpZc1V9cfZASFSXzzNj7o/BQNPbjmVkVxpCCLRhBfLXhJ5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.5.tgz", + "integrity": "sha512-Gz42gKBQPoFdMYdsVqkcpttYOO/0aP7f+1CgMaeZEz0gss7dop1TsO3hT77Iroz/TV7PdPUG/RYlj9EA39L4dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.5.tgz", + "integrity": "sha512-JPkafjkOFaupd8VQYsXfGFKC2pfMr7hwSYGkVGNwhbW0k0lHHyIdhCSNBendJ4O7YlT4yRyKXoms1TL7saO7SQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.5.tgz", + "integrity": "sha512-j6Q8VFqyI8hZM33h1JC6DZK2w8ejkXqEMozTrtIEGfRVMpVZL3GrLOOYEUkAgUSpJ9sb2w+FEpjGj7IHRcQfdw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.5.tgz", + "integrity": "sha512-6jyiXKF9Xq6x9yQjct5xrRT0VghJk5VzAfed3o0hgncwacZkzOdR0TXLRNjexsEXWN8tG7jWWwsVk7WeFi//gw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.5.tgz", + "integrity": "sha512-cOTYe5tLcGAvGztRLIqx87LE7j/qjaAqFrrHsPFlnuhhhFO5LSr2AzvdQYuxomJMzMBrXkMRNl9bQEpDZ5bjLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.5.tgz", + "integrity": "sha512-KHlrd+YqmS7rriW+LBb1kQNYmd5w1sAIG3z7HEpnQOrg/skeYYv9DAcclGL9gpFdpnzmiAEkzsTT74kZWUtChQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.5.tgz", + "integrity": "sha512-uOb6hzDqym4Sw+qw3+svS3SmwQGVUhyTdPKyHDdlYg1Z0aHjdNmjwRY7zw/90/UfBe/yD7Mv2mYKhQpOfy4RYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.5.tgz", + "integrity": "sha512-pARu8ZKANZH4wINLdHLKG69EPwJswM6A+Ox1a9LpiclRQoyjacFFTtXN3akKQ2ufJXDasO/pWvxKN9ZfCgEoFA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.5.tgz", + "integrity": "sha512-crUWn12NRmCdao2YwS1GvlPCVypMBMJlexTaantaP2+dAMd2eZBErFcKG8hZYEHjSbbk2UoH1aTlyeA4iKLqSA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.5.tgz", + "integrity": "sha512-XtD/oMhCdixi3x8rCNyDRMUsLo1Z+1UQcK+oR7AsjglGov9ETiT3TNFhUPzaGC1jH+uaMtPhxrVRUub+pnAKTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.5.tgz", + "integrity": "sha512-V3+BvgyHb21aF7lw0sc78Tv0+xLp4lm2OM7CKFVrBuppsMvtl/9O5y2OX4tdDT0EhIsDP/ObJPqDuEg1ZoTwSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.5.tgz", + "integrity": "sha512-SkCIXLGk42yldTcH8UXh++m0snVxp9DLf4meb1mWm0lC8jzxjFBwSLGtUSeLgQDsC05iBaIhyjNX46DlByrApQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.5.tgz", + "integrity": "sha512-iUcH3FBtBN2/Ce0rI84suRhD0+bB5BVEffqOwsGaX5py5TuYLOQa7S7oVBP0NKtB5rub3i9IvZtMXiD96l5v0A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.5.tgz", + "integrity": "sha512-PUbWd+h/h6rUowalDYIdc9S9LJXbQDMcJe0BjABl3oT3efYRgZ8aUe8ZZDSie7y+fz6Z+rueNfdorIbkWv5Eqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.5.tgz", + "integrity": "sha512-3vncGhOJiAUR85fnAXJyvSp2GaDWYByIQmW68ZAr+e8kIxgvJ1VaZbfHD5BO5X6hwRQdY6Um/XfA3l5c2lV+OQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.5.tgz", + "integrity": "sha512-Mi8yVUlQOoeBpY72n75VLATptPGvj2lHa47rQdK9kZ4MoG5Ve86aVIU+PO3tBklTCBtILtdRfXS0EvIbXgmCAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" + "node_modules/@shikijs/core": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.3.2.tgz", + "integrity": "sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "2.3.2", + "@shikijs/engine-oniguruma": "2.3.2", + "@shikijs/types": "2.3.2", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autocomplete.js": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz", - "integrity": "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==", - "requires": { - "immediate": "^3.2.3" - } - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, + "node_modules/@shikijs/engine-javascript": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.3.2.tgz", + "integrity": "sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==", + "dev": true, + "license": "MIT", "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - } + "@shikijs/types": "2.3.2", + "@shikijs/vscode-textmate": "^10.0.1", + "oniguruma-to-es": "^3.1.0" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", - "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", - "requires": { - "babylon": "^6.18.0" + "node_modules/@shikijs/engine-oniguruma": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.3.2.tgz", + "integrity": "sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.3.2", + "@shikijs/vscode-textmate": "^10.0.1" } }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "node_modules/@shikijs/langs": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.3.2.tgz", + "integrity": "sha512-UqI6bSxFzhexIJficZLKeB1L2Sc3xoNiAV0yHpfbg5meck93du+EKQtsGbBv66Ki53XZPhnR/kYkOr85elIuFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.3.2" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.20.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, + "node_modules/@shikijs/themes": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.3.2.tgz", + "integrity": "sha512-QAh7D/hhfYKHibkG2tti8vxNt3ekAH5EqkXJeJbTh7FGvTCWEI7BHqNCtMdjFvZ0vav5nvUgdvA7/HI7pfsB4w==", + "dev": true, + "license": "MIT", "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } + "@shikijs/types": "2.3.2" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "node_modules/@shikijs/transformers": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.3.2.tgz", + "integrity": "sha512-2HDnJumw8A/9GecRpTgvfqSbPjEbJ4DPWq5J++OVP1gNMLvbV0MqFsP4canqRNM1LqB7VmWY45Stipb0ZIJ+0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.3.2", + "@shikijs/types": "2.3.2" + } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, + "node_modules/@shikijs/types": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.3.2.tgz", + "integrity": "sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "dev": true, + "license": "MIT" }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", + "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "dev": true, + "license": "MIT", "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, + "peer": true, "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - } + "undici-types": "~6.20.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.1.tgz", + "integrity": "sha512-Cexc8GimowoDkJ6eNelOPdYIzsu2mgNyp0scOQ3tiaYSb9iok6LOESSsJvHaI+ib3joRfqRJNLkHFjhNuWA5dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.1" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.1.tgz", + "integrity": "sha512-yhZ4NPnK/tmxGtLNQxmll90jIIXdb2jAhPF76anvn5M/UkZCiLJy28bYgPIACKZ7FCosyKoaope89/RsFJll1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.1", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.1.tgz", + "integrity": "sha512-BtgF7kHq4BHG23Lezc/3W2UhK2ga7a8ohAIAGJMBr4BkxUFzhqntQtCiuL1ijo2ztWnmusymkirgqUrXoQKumA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.5.0.tgz", + "integrity": "sha512-GVyH1iYqNANwcahAx8JBm6awaNgvR/SwZ1fjr10b8l1HIgDp82ngNbfzJUgOgWEoxjL+URAggnlilAEXwCOZtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "12.5.0", + "@vueuse/shared": "12.5.0", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, + "node_modules/@vueuse/core/node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vueuse/core/node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.5.0.tgz", + "integrity": "sha512-HYLt8M6mjUfcoUOzyBcX2RjpfapIwHPBmQJtTmXOQW845Y/Osu9VuTJ5kPvnmWJ6IUa05WpblfOwZ+P0G4iZsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "12.5.0", + "@vueuse/shared": "12.5.0", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "axios": { + "optional": true }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "change-case": { + "optional": true }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } + "drauu": { + "optional": true }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "focus-trap": { + "optional": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "fuse.js": { + "optional": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "idb-keyval": { + "optional": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "jwt-decode": { + "optional": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } + "nprogress": { + "optional": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } + "qrcode": { + "optional": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + "sortablejs": { + "optional": true }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "universal-cookie": { + "optional": true } } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@vueuse/integrations/node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" + "node_modules/@vueuse/integrations/node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "node_modules/@vueuse/metadata": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.5.0.tgz", + "integrity": "sha512-Ui7Lo2a7AxrMAXRF+fAp9QsXuwTeeZ8fIB9wsLHqzq9MQk+2gMYE2IGJW48VMJ8ecvCB3z3GsGLKLbSasQ5Qlg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "node_modules/@vueuse/shared": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.5.0.tgz", + "integrity": "sha512-vMpcL1lStUU6O+kdj6YdHDixh0odjPAUM15uJ9f7MY781jcYkIwFA4iv2EfoIPO6vBmvutI1HxxAwmf0cx5ISQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bundle-require": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-2.1.8.tgz", - "integrity": "sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cac": { - "version": "6.7.12", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.12.tgz", - "integrity": "sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz", - "integrity": "sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==", - "requires": { - "buffer-json": "^2.0.0", - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.2.3", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0" - }, + "node_modules/@vueuse/shared/node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "optional": true, + "peer": true, + "bin": { + "atob": "bin/atob.js" }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - } + "engines": { + "node": ">= 4.5.0" } }, - "call-bind": { + "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "node_modules/birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chart.js": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", - "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", - "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", - "requires": { - "chartjs-color-string": "^0.6.0", - "color-convert": "^1.9.3" - } - }, - "chartjs-color-string": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", - "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", - "requires": { - "color-name": "^1.0.0" - } - }, - "chartkick": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/chartkick/-/chartkick-3.2.1.tgz", - "integrity": "sha512-zV0kUeZNqrX28AmPt10QEDXHKadbVFOTAFkCMyJifHzGFkKzGCDXxVR8orZ0fC1HbePzRn5w6kLCOVxDQbMUCg==" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "requires": { - "source-map": "~0.6.0" + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "requires": { - "bluebird": "^3.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-webpack-plugin": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", - "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "is-what": "^4.1.8" }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "engines": { + "node": ">=12.13" }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { + "node_modules/css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { "inherits": "^2.0.3", "source-map": "^0.6.1", "source-map-resolve": "^0.5.2", "urix": "^0.1.0" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10" } }, - "css-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", - "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", - "requires": { - "camelcase": "^5.2.0", - "icss-utils": "^4.1.0", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.14", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.6", - "postcss-modules-scope": "^2.1.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "requires": { - "css": "^2.0.0" + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - } + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d3": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.3.0.tgz", - "integrity": "sha512-MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw==", - "requires": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "3", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - } - }, - "d3-array": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.1.tgz", - "integrity": "sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ==", - "requires": { - "internmap": "1 - 2" - } - }, - "d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==" + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" }, - "d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" + "node_modules/focus-trap": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", + "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tabbable": "^6.2.0" } }, - "d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "requires": { - "d3-path": "1 - 3" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz", - "integrity": "sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==" - }, - "d3-contour": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-3.0.1.tgz", - "integrity": "sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ==", - "requires": { - "d3-array": "2 - 3" + "node_modules/hast-util-to-html": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", + "integrity": "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "d3-delaunay": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", - "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", - "requires": { - "delaunator": "5" + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" }, - "d3-drag": { + "node_modules/html-void-elements": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "requires": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" - }, - "d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "requires": { - "d3-dsv": "1 - 3" + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" + "node_modules/minisearch": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.1.tgz", + "integrity": "sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==", + "dev": true, + "license": "MIT" }, - "d3-geo": { + "node_modules/mitt": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", - "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", - "requires": { - "d3-array": "2.5.0 - 3" - } + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" }, - "d3-hierarchy": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz", - "integrity": "sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA==" + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "d3-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", - "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" - }, - "d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==" - }, - "d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" - }, - "d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==" - }, - "d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "requires": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - } - }, - "d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", - "requires": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - } - }, - "d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==" - }, - "d3-shape": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", - "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", - "requires": { - "d3-path": "1 - 3" - } - }, - "d3-time": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", - "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", - "requires": { - "d3-array": "2 - 3" - } - }, - "d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "requires": { - "d3-time": "1 - 3" - } - }, - "d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" - }, - "d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "requires": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - } - }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", - "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", - "requires": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - }, - "dependencies": { - "d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "requires": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1", - "d3-path": "1" - } - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "requires": { - "d3-array": "^1.1.1" - } - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "requires": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - } - }, - "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "requires": { - "d3-dsv": "1" - } - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "requires": { - "d3-color": "1" - } - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "requires": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - } - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - } - } - }, - "delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", - "requires": { - "robust-predicates": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "requires": { - "path-type": "^3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "docsearch.js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz", - "integrity": "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==", - "requires": { - "algoliasearch": "^3.24.5", - "autocomplete.js": "0.36.0", - "hogan.js": "^3.0.2", - "request": "^2.87.0", - "stack-utils": "^1.0.1", - "to-factory": "^1.0.0", - "zepto": "^1.2.0" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - } - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - } - } - }, - "dompurify": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.4.tgz", - "integrity": "sha512-6BVcgOAVFXjI0JTjEvZy901Rghm+7fDQOrNIcxB4+gdhj6Kwp6T9VBhBY/AbagKHJocRkDYGd6wvI+p4/10xtQ==" - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.4.44", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz", - "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw==" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "requires": { - "esprima": "^4.0.0", - "through": "~2.3.4" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "esbuild": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.7.tgz", - "integrity": "sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==", - "requires": { - "esbuild-android-arm64": "0.14.7", - "esbuild-darwin-64": "0.14.7", - "esbuild-darwin-arm64": "0.14.7", - "esbuild-freebsd-64": "0.14.7", - "esbuild-freebsd-arm64": "0.14.7", - "esbuild-linux-32": "0.14.7", - "esbuild-linux-64": "0.14.7", - "esbuild-linux-arm": "0.14.7", - "esbuild-linux-arm64": "0.14.7", - "esbuild-linux-mips64le": "0.14.7", - "esbuild-linux-ppc64le": "0.14.7", - "esbuild-netbsd-64": "0.14.7", - "esbuild-openbsd-64": "0.14.7", - "esbuild-sunos-64": "0.14.7", - "esbuild-windows-32": "0.14.7", - "esbuild-windows-64": "0.14.7", - "esbuild-windows-arm64": "0.14.7" - } - }, - "esbuild-android-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz", - "integrity": "sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==", - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz", - "integrity": "sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==", - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz", - "integrity": "sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==", - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz", - "integrity": "sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==", - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz", - "integrity": "sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==", - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz", - "integrity": "sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==", - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz", - "integrity": "sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==", - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz", - "integrity": "sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==", - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz", - "integrity": "sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==", - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz", - "integrity": "sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==", - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz", - "integrity": "sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==", - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz", - "integrity": "sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==", - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz", - "integrity": "sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==", - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz", - "integrity": "sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==", - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz", - "integrity": "sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==", - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz", - "integrity": "sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==", - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz", - "integrity": "sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==", - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "requires": { - "ini": "1.3.7" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "requires": { - "lodash": "^4.17.15" - } - }, - "gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "requires": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "highlight.js": { - "version": "9.18.5", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", - "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "requires": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "dependencies": { - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" - } - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", - "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", - "requires": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - } - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "dependencies": { - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - } - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "katex": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.6.0.tgz", - "integrity": "sha1-EkGOCRIcBckgQbazuftrqyE8tvM=", - "requires": { - "match-at": "^0.1.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "khroma": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz", - "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==" - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-admonition": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-it-admonition/-/markdown-it-admonition-1.0.4.tgz", - "integrity": "sha512-+Jow9A7tBSwSuGvQufneeT35o9Cq8+OyR+WAhhC4dOG2NvB2oCeXiaUGGyP9PCRrxQoFxZF+xoVHbo98xYAi+g==" - }, - "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" - }, - "markdown-it-chain": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", - "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", - "requires": { - "webpack-chain": "^4.9.0" - }, - "dependencies": { - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", - "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=" - }, - "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", - "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" - } - } - } - }, - "markdown-it-container": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz", - "integrity": "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=" - }, - "markdown-it-emoji": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", - "integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=" - }, - "markdown-it-katex": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/markdown-it-katex/-/markdown-it-katex-2.0.3.tgz", - "integrity": "sha1-17hqGuoLnWSW+rTnkZoY/e9YnDk=", - "requires": { - "katex": "^0.6.0" - } - }, - "markdown-it-plantuml": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-plantuml/-/markdown-it-plantuml-1.4.1.tgz", - "integrity": "sha512-13KgnZaGYTHBp4iUmGofzZSBz+Zj6cyqfR0SXUIc9wgWTto5Xhn7NjaXYxY0z7uBeTUMlc9LMQq5uP4OM5xCHg==" - }, - "markdown-it-table-of-contents": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", - "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==" - }, - "markdown-it-task-lists": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", - "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==" - }, - "match-at": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/match-at/-/match-at-0.1.1.tgz", - "integrity": "sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "requires": { - "source-map": "^0.6.1" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "mermaid": { - "version": "8.13.8", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.13.8.tgz", - "integrity": "sha512-Z5v31rvo8P7BPTiGicdJl9BbzyUe9s5sXILK8sM1g7ijkagpfFjPtXZVsq5P1WlN8m/fUp2PPNXVF9SqeTM91w==", - "requires": { - "@braintree/sanitize-url": "^3.1.0", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", - "dompurify": "2.3.4", - "graphlib": "^2.1.8", - "khroma": "^1.4.1", - "moment-mini": "^2.24.0", - "stylis": "^4.0.10" - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz", - "integrity": "sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - } - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-selector-parser": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", - "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "optional": true - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" - }, - "prismjs": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz", - "integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "reduce": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz", - "integrity": "sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==", - "requires": { - "object-keys": "^1.1.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "register-service-worker": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.7.2.tgz", - "integrity": "sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==" - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", - "requires": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "robust-predicates": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", - "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.14", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", - "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "smoothscroll-polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", - "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "std-env": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.3.1.tgz", - "integrity": "sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g==", - "requires": { - "ci-info": "^3.1.1" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", - "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" - }, - "stylus": { - "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", - "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "text-table": { + "node_modules/nprogress": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - } - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "wrappy": "1" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" + "node_modules/oniguruma-to-es": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.0.tgz", + "integrity": "sha512-BJ3Jy22YlgejHSO7Fvmz1kKazlaPmRSUH+4adTDUS/dKQ4wLxI+gALZ8updbaux7/m7fIlpgOZ5fp/Inq5jUAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" } }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { + "node_modules/perfect-debounce": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" }, - "unquote": { + "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, + ], + "license": "MIT", "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "node_modules/preact": { + "version": "10.25.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", + "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "url-parse": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", - "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, + "node_modules/regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", + "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "dev": true, + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } + "regex-utilities": "^2.3.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" } }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.34.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.5.tgz", + "integrity": "sha512-GyVCmpo9z/HYqFD8QWoBUnz1Q9xC22t8tPAZm/AvAcUg2U2/+DkboEvSioMwv042zE4I9N3FEhx7fiCT2YHzKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.5", + "@rollup/rollup-android-arm64": "4.34.5", + "@rollup/rollup-darwin-arm64": "4.34.5", + "@rollup/rollup-darwin-x64": "4.34.5", + "@rollup/rollup-freebsd-arm64": "4.34.5", + "@rollup/rollup-freebsd-x64": "4.34.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.5", + "@rollup/rollup-linux-arm-musleabihf": "4.34.5", + "@rollup/rollup-linux-arm64-gnu": "4.34.5", + "@rollup/rollup-linux-arm64-musl": "4.34.5", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.5", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.5", + "@rollup/rollup-linux-riscv64-gnu": "4.34.5", + "@rollup/rollup-linux-s390x-gnu": "4.34.5", + "@rollup/rollup-linux-x64-gnu": "4.34.5", + "@rollup/rollup-linux-x64-musl": "4.34.5", + "@rollup/rollup-win32-arm64-msvc": "4.34.5", + "@rollup/rollup-win32-ia32-msvc": "4.34.5", + "@rollup/rollup-win32-x64-msvc": "4.34.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - } + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + "node_modules/shiki": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.3.2.tgz", + "integrity": "sha512-UZhz/gsUz7DHFbQBOJP7eXqvKyYvMGramxQiSDc83M/7OkWm6OdVHAReEc3vMLh6L6TRhgL9dvhXz9XDkCDaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.3.2", + "@shikijs/engine-javascript": "2.3.2", + "@shikijs/engine-oniguruma": "2.3.2", + "@shikijs/langs": "2.3.2", + "@shikijs/themes": "2.3.2", + "@shikijs/types": "2.3.2", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } }, - "vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "vue-chartkick": { + "node_modules/source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vue-chartkick/-/vue-chartkick-0.5.3.tgz", - "integrity": "sha512-i1rppw4eqv6OW44KucaWOXLLILMuxDbRhmXOKFdHVTRXLpevuvYqJiHWPzr9OVPVyZwBujG5oZ11h55ff/lcDQ==", - "requires": { - "chartkick": "^3.1.3", - "deep-equal": "^1.0.1", - "deepmerge": "^2.1.1" - }, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" - } + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "vue-cute-timeline": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/vue-cute-timeline/-/vue-cute-timeline-1.2.10.tgz", - "integrity": "sha512-kzzFkQUdE93+tYz7dGK9gUl2k8+9fd0//ISlg6qZqv97l9rK/xt+eCSXdqI7+leoSkSGgN2EqoMO91UKdY62Gw==" - }, - "vue-good-table": { - "version": "2.21.11", - "resolved": "https://registry.npmjs.org/vue-good-table/-/vue-good-table-2.21.11.tgz", - "integrity": "sha512-OpVPdxbBTahtfq1aXxEa5P1CMy1wiLcBg4mo7k6Qs537l9v8KVrvF+fXqbnxqNrAfmd1Mw9LidcjgTErjmVU8g==", - "requires": { - "date-fns": "^2.17.0", - "lodash.isequal": "^4.5.0" - } - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" - }, - "vue-loader": { - "version": "15.9.8", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", - "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - } - }, - "vue-router": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", - "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==" - }, - "vue-server-renderer": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz", - "integrity": "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==", - "requires": { - "chalk": "^1.1.3", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "lodash.template": "^4.5.0", - "lodash.uniq": "^4.5.0", - "resolve": "^1.2.0", - "serialize-javascript": "^3.1.0", - "source-map": "0.5.6" - }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", - "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" - }, - "vuepress": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-1.9.5.tgz", - "integrity": "sha512-cLLCKkJSxL0PCgHZILrZ13z57Wi66zABhwe2n0JaoXq/bWXdGPfr9WoObVdQ0p186I/IKRIw4Ip22Y6qy+JA8g==", - "requires": { - "@vuepress/core": "1.9.5", - "@vuepress/theme-default": "1.9.5", - "@vuepress/types": "1.9.5", - "cac": "^6.5.6", - "envinfo": "^7.2.0", - "opencollective-postinstall": "^2.0.2", - "update-notifier": "^4.0.0" - } - }, - "vuepress-html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==", - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "vuepress-plugin-container": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz", - "integrity": "sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA==", - "requires": { - "@vuepress/shared-utils": "^1.2.0", - "markdown-it-container": "^2.0.0" - } - }, - "vuepress-plugin-smooth-scroll": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", - "integrity": "sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==", - "requires": { - "smoothscroll-polyfill": "^0.4.3" - } - }, - "vuepress-theme-cool": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/vuepress-theme-cool/-/vuepress-theme-cool-1.3.1.tgz", - "integrity": "sha512-iX85TCq2NIBq5c1Czwpich3CA+zxsyItLFENZPMBLkGizKpaVCKRe5n8V4o8Fx9vye149NlqT2B50cJT40oUyQ==", - "requires": { - "chart.js": "^2.8.0", - "markdown-it-admonition": "^1.0.4", - "markdown-it-katex": "^2.0.3", - "markdown-it-plantuml": "^1.4.1", - "markdown-it-task-lists": "^2.1.1", - "mermaid": "^8.2.6", - "vue-chartkick": "^0.5.2", - "vue-cute-timeline": "^1.2.8", - "vue-good-table": "^2.18.0", - "vuex": "^3.1.1" - } - }, - "vuex": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", - "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==" - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "optional": true - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - } + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" } }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "license": "MIT", "optional": true, - "requires": { - "chokidar": "^2.1.8" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, + "peer": true, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "ms": "2.0.0" } }, - "webpack-chain": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", - "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", - "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", - "requires": { - "ansi-html-community": "0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" + "node_modules/stylus/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "engines": { + "node": ">=10" } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "webpackbar": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz", - "integrity": "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==", - "requires": { - "ansi-escapes": "^4.1.0", - "chalk": "^2.4.1", - "consola": "^2.6.0", - "figures": "^3.0.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "websocket-driver": { + "node_modules/stylus/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">= 8" } }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "dev": true, + "license": "MIT" }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "workbox-background-sync": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", - "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-broadcast-update": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", - "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-build": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", - "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", - "requires": { - "@babel/runtime": "^7.3.4", - "@hapi/joi": "^15.0.0", - "common-tags": "^1.8.0", - "fs-extra": "^4.0.2", - "glob": "^7.1.3", - "lodash.template": "^4.4.0", - "pretty-bytes": "^5.1.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "workbox-background-sync": "^4.3.1", - "workbox-broadcast-update": "^4.3.1", - "workbox-cacheable-response": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-expiration": "^4.3.1", - "workbox-google-analytics": "^4.3.1", - "workbox-navigation-preload": "^4.3.1", - "workbox-precaching": "^4.3.1", - "workbox-range-requests": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1", - "workbox-streams": "^4.3.1", - "workbox-sw": "^4.3.1", - "workbox-window": "^4.3.1" + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "workbox-cacheable-response": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", - "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-core": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" - }, - "workbox-expiration": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", - "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-google-analytics": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", - "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", - "requires": { - "workbox-background-sync": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1" - } - }, - "workbox-navigation-preload": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", - "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-precaching": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", - "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-range-requests": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", - "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-routing": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", - "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-strategies": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", - "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-streams": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", - "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-sw": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" - }, - "workbox-window": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", - "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vitepress": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.3.tgz", + "integrity": "sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "3.8.2", + "@docsearch/js": "3.8.2", + "@iconify-json/simple-icons": "^1.2.21", + "@shikijs/core": "^2.1.0", + "@shikijs/transformers": "^2.1.0", + "@shikijs/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", + "@vue/shared": "^3.5.13", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", + "focus-trap": "^7.6.4", + "mark.js": "8.11.1", + "minisearch": "^7.1.1", + "shiki": "^2.1.0", + "vite": "^5.4.14", + "vue": "^3.5.13" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } + "postcss": { + "optional": true } } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "node_modules/vitepress/node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" + "node_modules/vitepress/node_modules/@vitejs/plugin-vue": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/vitepress/node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/vitepress/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "node_modules/vitepress/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/vitepress/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitepress/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitepress/node_modules/terser": { + "version": "5.38.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.38.1.tgz", + "integrity": "sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vitepress/node_modules/vite": { + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "license": "MIT", "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } + "stylus": { + "optional": true }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } + "sugarss": { + "optional": true }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "terser": { + "optional": true } } }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, + "node_modules/vitepress/node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=" + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index eeaeb77d2..4a1fba83f 100644 --- a/package.json +++ b/package.json @@ -7,14 +7,12 @@ "author": "Andrey Boldak ", "license": "ECL 2.0", "scripts": { - "docs:dev": "npx vuepress dev docs", - "docs:build": "npx vuepress build docs", - "publish": "publish.sh" + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "publish": "publish.sh", + "docs:preview": "vitepress preview docs" }, - "dependencies": { - "@vuepress/plugin-back-to-top": "^1.7.1", - "@vuepress/plugin-pwa": "^1.7.1", - "vuepress": "^1.7.1", - "vuepress-theme-cool": "^1.3.1" + "devDependencies": { + "vitepress": "^1.6.3" } } From d0975a9f1b4ff0ebb230dc6f19b8b7c3eb0a6fe0 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:17:31 +0200 Subject: [PATCH 002/143] added authors --- docs/authors.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docs/authors.md diff --git a/docs/authors.md b/docs/authors.md new file mode 100644 index 000000000..e9184feda --- /dev/null +++ b/docs/authors.md @@ -0,0 +1,29 @@ +# Автори + +_студент 2-го курсу, групи ІО-32_ **Максим КРАДОЖОН** [Telegram](https://t.me/TockePie) + +_студент 2-го курсу, групи ІО-32_ **Роман ДУШКО** [Telegram](https://t.me/from_fight_club) + +_студентка 2-го курсу, групи ІО-32_ **Марія КОЛОМІЄЦЬ** [Telegram](https://t.me/Sunnytea0) + +_студентка 2-го курсу, групи ІО-32_ **Катерина ПАХНЮК** [Telegram](https://t.me/RINApakhnyuk) + +_студентка 2-го курсу, групи ІО-32_ **Вікторія ПИЛИПЧУК** [Telegram](https://t.me/pylychpuk) + +_студент 2-го курсу, групи ІО-35_ **Віталій ВОРОНКІН** [Telegram](https://t.me/Vitvor) + +_студент 2-го курсу, групи ІО-35_ **Сергій ТІТОВ** [Telegram](https://t.me/elRimigano) + +_студент 2-го курсу, групи ІО-35_ **Артем ХІМКО** [Telegram](https://t.me/khimkoartem) + +## Керівник + +_доцент кафедри ОТ ФІОТ, к.т.н., доцент_ **Андрій БОЛДАК** + +[НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО](https://kpi.ua/) + +[Факультет інформатики та обчислювальної техніки](https://fiot.kpi.ua/) + +[Кафедра обчислювальної техніки](https://comsys.kpi.ua/) + +Київ From 3939bfe1f2fa4412f02c00c843712a4c8d82153a Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:17:47 +0200 Subject: [PATCH 003/143] linted md files --- README.md | 11 +- docs/README.md | 25 --- docs/conclusion/README.md | 3 +- docs/design/README.md | 6 +- docs/index.md | 16 ++ docs/intro/README.md | 6 +- docs/requirements/README.md | 2 +- docs/requirements/stakeholders-needs.md | 71 +++---- docs/requirements/state-of-the-art.md | 40 ++-- docs/software/README.md | 4 +- docs/test/README.md | 3 +- docs/use cases/README.md | 64 +++--- guidelines/guidelines.md | 257 ++++++++++++------------ guidelines/themes.md | 10 +- 14 files changed, 251 insertions(+), 267 deletions(-) delete mode 100644 docs/README.md create mode 100644 docs/index.md diff --git a/README.md b/README.md index 0bb80a8ac..ce3fab5fd 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,18 @@ - # Шаблон репозиторію для виконання лабораторних робіт з дисципліни "Організація баз даних" ## Як використовувати В цьому репозиторії знаходиться шаблон для виконання лабораторних робіт. -Для виконання лабораторних робіт необхідно зробити ```fork``` цього репозіторію, склонувати вже власний репозіторій та розміщувати документацію у відповідних діректоріях ```./docs```. +Для виконання лабораторних робіт необхідно зробити `fork` цього репозіторію, склонувати вже власний репозіторій та розміщувати документацію у відповідних діректоріях `./docs`. В цьому файлі необхідно вказати тему лабораторних робіт (назву проекту). Коротку загальну характеристику проекту, контактні дані виконавця, посилання на репо співвиконавців (за необхідністю). - -Шаблон публікування підготовлено з використанням [VuePress](https://vuepress.vuejs.org/), та стартера +Шаблон публікування підготовлено з використанням [VuePress](https://vuepress.vuejs.org/), та стартера [FriendlyUser/vuepress-theme-cool-starter](https://github.com/FriendlyUser/vuepress-theme-cool-starter). -Щоб опублікувати проект у Github Pages, налаштовуємо Github Pages (гілка ```gh-pages```), змінюємо файл ```./publish.sh``` +Щоб опублікувати проект у Github Pages, налаштовуємо Github Pages (гілка `gh-pages`), змінюємо файл `./publish.sh` ```sh @@ -60,10 +58,9 @@ cd - Доступ до локально опублікованої версії [http://localhost:3030](http://localhost:3030) - ## Додаткова інформація - [Теми проєктів](./guidelines/themes.md) - [Методичні вказівки](./guidelines/guidelines.md) -***Happy learning! Happy coding!*** +**_Happy learning! Happy coding!_** diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 9c28efeb0..000000000 --- a/docs/README.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -home: true -actionText: Розпочати → -actionLink: /intro/ - -footer: "ECL 2.0 Licensed | Copyright © [YYYY] [Your Name]" ---- - - -**Виконав(-ла):** - -*студент(-ка) 2-го курсу, групи (шифр групи)* **[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]** - - -**Керівник** - -*доцент кафедри ОТ ФІОТ, к.т.н., доцент* **Андрій БОЛДАК** - -[НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО](https://kpi.ua/) - -[Факультет інформатики та обчислювальної техніки](https://fiot.kpi.ua/) - -[Кафедра обчислювальної техніки](https://comsys.kpi.ua/) - -Київ diff --git a/docs/conclusion/README.md b/docs/conclusion/README.md index 0076cccfe..21b922be3 100644 --- a/docs/conclusion/README.md +++ b/docs/conclusion/README.md @@ -5,8 +5,7 @@ отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів. Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її -переваги, що нового було запропоновано самим студентом. +переваги, що нового було запропоновано самим студентом. На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні мати конкретний характер і бути цілком підтверджені проєктом. - diff --git a/docs/design/README.md b/docs/design/README.md index 25658a9fd..d76ece741 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -1,7 +1,7 @@ # Проєктування бази даних -В рамках проекту розробляється: -- модель бізнес-об'єктів +В рамках проекту розробляється: + +- модель бізнес-об'єктів - ER-модель - реляційна схема - diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..7a3145a3f --- /dev/null +++ b/docs/index.md @@ -0,0 +1,16 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: Система організації та управління опитуваннями експертів + # text: + tagline: Лабораторні роботи з дисципліни "Організація баз даних" + actions: + - theme: brand + text: Розпочати + link: /intro/README + - theme: alt + text: Автори + link: /authors +--- diff --git a/docs/intro/README.md b/docs/intro/README.md index 74b1f2ea6..fabc8fd88 100644 --- a/docs/intro/README.md +++ b/docs/intro/README.md @@ -2,11 +2,11 @@ У вступі описується мета роботи і розглядається поставлене завдання з позиції її актуальності, значення її розв’язання для тієї предметної області, до якої відноситься -тема бакалаврського проєкту. +тема бакалаврського проєкту. Коротко характеризується сучасний рівень розв’язання -даного завдання і взаємозв’язок з іншими проєктами по цій тематиці. +даного завдання і взаємозв’язок з іншими проєктами по цій тематиці. Наводяться основні технічні характеристики розробки й очікуваний технічно-економічний ефект -від її реалізації. \ No newline at end of file +від її реалізації. diff --git a/docs/requirements/README.md b/docs/requirements/README.md index e8e3e4e4c..62fcae695 100644 --- a/docs/requirements/README.md +++ b/docs/requirements/README.md @@ -1,4 +1,4 @@ # Розроблення загальних вимог до системи - [Аналіз предметної області](/requirements/state-of-the-art.html) -- [Запити зацікавлених осіб](/requirements/stakeholders-needs.html) \ No newline at end of file +- [Запити зацікавлених осіб](/requirements/stakeholders-needs.html) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index 8f3361187..eebfe7fb4 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -2,85 +2,80 @@ ## Вступ -*[Вступ повинен містити короткий огляд всього документу.]* +_[Вступ повинен містити короткий огляд всього документу.]_ ### Мета -*[Визначення мети цієї сукупності вимог. Зазвичай такою метою є створення та впровадження - інформаційної системи відповідного призначення.]* +_[Визначення мети цієї сукупності вимог. Зазвичай такою метою є створення та впровадження +інформаційної системи відповідного призначення.]_ ### Контекст -*[Короткий опис того, з якими проектами пов'язаний цей документ, на що він впливає.]* - +_[Короткий опис того, з якими проектами пов'язаний цей документ, на що він впливає.]_ ### Основні визначення та скорочення -*[Розділ містить визначення всіх термінів та скорочень, необхідних для правильного -тлумачення вимог. Можна зробити посилання на документ, в якому поданий аналіз предметної області.]* - +_[Розділ містить визначення всіх термінів та скорочень, необхідних для правильного +тлумачення вимог. Можна зробити посилання на документ, в якому поданий аналіз предметної області.]_ ### Посилання -*[Розділ містить повний список всіх документів, про які згадується.]* - +_[Розділ містить повний список всіх документів, про які згадується.]_ ## Короткий зміст -*[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася. -Також тут описана структура документу.]* +_[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася. +Також тут описана структура документу.]_ ## Характеристика ділових процесів -*[В цьому розділі визначаються зовнішні фактори, що впливають на бізнес (бізнес-актори), -та внутрішні фактори (робітники), дається загальна характеристика діяльності бізнес-акторів -та робітників, яка здійснюється за допомогою бізнесу.* +_[В цьому розділі визначаються зовнішні фактори, що впливають на бізнес (бізнес-актори), +та внутрішні фактори (робітники), дається загальна характеристика діяльності бізнес-акторів +та робітників, яка здійснюється за допомогою бізнесу._ -*Дається опис бізнес-сценаріїв взаємодії бізнес-акторів, робітників і, можливо, інформаційної системи за допомогою наступної -специфікації:* +_Дається опис бізнес-сценаріїв взаємодії бізнес-акторів, робітників і, можливо, інформаційної системи за допомогою наступної +специфікації:_ - -***ID:*** - -***НАЗВА:*** - -***УЧАСНИКИ:*** +**_ID:_** -***ПЕРЕДУМОВИ:*** +**_НАЗВА:_** -***РЕЗУЛЬТАТ:*** +**_УЧАСНИКИ:_** -***ВИКЛЮЧНІ СИТУАЦІЇ:*** +**_ПЕРЕДУМОВИ:_** -***ОСНОВНИЙ СЦЕНАРІЙ:*** +**_РЕЗУЛЬТАТ:_** -*Кількість сценаріїв визначається у відповідності до специфіки завдання та необхідного -рівня деталізації (зазвичай, 5-6 сценаріїв).* +**_ВИКЛЮЧНІ СИТУАЦІЇ:_** -## Короткий огляд продукту +**_ОСНОВНИЙ СЦЕНАРІЙ:_** + +_Кількість сценаріїв визначається у відповідності до специфіки завдання та необхідного +рівня деталізації (зазвичай, 5-6 сценаріїв)._ -*[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів -системи]* +## Короткий огляд продукту -*[Нижче йде опис FURPS:]* +_[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів +системи]_ +_[Нижче йде опис FURPS:]_ ## Функціональність -*[Functionality (функциональні вимоги)]* +_[Functionality (функциональні вимоги)]_ ## Практичність -*[Usability (вимоги до зручності роботи)]* +_[Usability (вимоги до зручності роботи)]_ ## Надійність -*[Reliability (вимоги до надійності)]* +_[Reliability (вимоги до надійності)]_ ## Продуктивність -*[Performance (вимоги до продуктивності)]* +_[Performance (вимоги до продуктивності)]_ ## Експлуатаційна придатність -*[Supportability (вимоги до підтримки)]* +_[Supportability (вимоги до підтримки)]_ diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 48a056ff6..7c5735cde 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -2,41 +2,43 @@ ## Вступ -*[Вступ повинен містити короткий огляд всього документу.]* - - ***vhgdvdc dhcbjhbcds cdsbcdshgc b cbhd cgds cg d*** +_[Вступ повинен містити короткий огляд всього документу.]_ - gdgdgf: - - jdsjsd - - ncjdsnc - - mncjdcnsdknc +**_vhgdvdc dhcbjhbcds cdsbcdshgc b cbhd cgds cg d_** + +gdgdgf: + +- jdsjsd +- ncjdsnc +- mncjdcnsdknc sbhcjhsdcdshc ## Основні визначення -*[Розділ містить визначення термінів та скорочень, які використовуються при аналізі предметної області.]* +_[Розділ містить визначення термінів та скорочень, які використовуються при аналізі предметної області.]_ ## Підходи та способи вирішення завдання -*[Розділ містить опис підходів, моделей та способів вирішення завдання.]* +_[Розділ містить опис підходів, моделей та способів вирішення завдання.]_ ## Порівняльна характеристика існуючих засобів вирішення завдання -*[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення -завдання. Дається порівняльна характеристика властивостей FURPS:* -- *Functionality (функциональні вимоги)* -- *Usability (вимоги до зручності роботи)* -- *Reliability (вимоги до надійності)* -- *Performance (вимоги до продуктивності)* -- *Supportability (вимоги до підтримки)* +_[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення +завдання. Дається порівняльна характеристика властивостей FURPS:_ + +- _Functionality (функциональні вимоги)_ +- _Usability (вимоги до зручності роботи)_ +- _Reliability (вимоги до надійності)_ +- _Performance (вимоги до продуктивності)_ +- _Supportability (вимоги до підтримки)_ - *(у вигляді таблиці).]* + _(у вигляді таблиці).]_ ## Висновки -*[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]* +_[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]_ ## Посилання -*[Розділ містить повний список всіх документів, про які згадується.]* +_[Розділ містить повний список всіх документів, про які згадується.]_ diff --git a/docs/software/README.md b/docs/software/README.md index 2b3bb4c9d..a4c6b1e9c 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,6 +1,6 @@ # Реалізація інформаційного та програмного забезпечення -В рамках проекту розробляється: +В рамках проекту розробляється: + - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними - diff --git a/docs/test/README.md b/docs/test/README.md index 4cf256392..fbe05755d 100644 --- a/docs/test/README.md +++ b/docs/test/README.md @@ -1,4 +1,3 @@ # Тестування працездатності системи -*В цьому розділі необхідно вказати засоби тестування, навести вихідні коди тестів та результати тестування.* - +_В цьому розділі необхідно вказати засоби тестування, навести вихідні коди тестів та результати тестування._ diff --git a/docs/use cases/README.md b/docs/use cases/README.md index b72b73691..ab6c1cac2 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -2,16 +2,13 @@ В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. -*Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів.* +_Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ - - -Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). +Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). В markdown-файлі використовується опис діаграми ```md -
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa } - + usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 + usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 + usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - + package UCD_1 { usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 + + usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - + usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 + + + User -> UC_1 UC_1.1 .u.> UC_1 :extends UC_1.2 .u.> UC_1 :extends @@ -60,12 +57,12 @@ UC_1.2.1 .u.> UC_1.2 :extends UC_1.2.2 .u.> UC_1.2 :extends UC_1 ..> UC_1.2.2 :extends - - + + UC_1.1.1 -u-|> UC_1.1 UC_1.1.2 -u-|> UC_1.1 UC_1.1.3 -u-|> UC_1.1 - + right footer Аналітичний портал. Модель прецедентів. НТУУ КПІ ім.І.Сікорського @@ -101,26 +98,26 @@ actor "Користувач" as User #eeeeaa - + package UCD_1{ usecase "UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa } - + usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 + usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 + usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - + package UCD_1 { usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 + + usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - + usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 + + + User -> UC_1 UC_1.1 .u.> UC_1 :extends UC_1.2 .u.> UC_1 :extends @@ -129,12 +126,12 @@ UC_1.2.1 .u.> UC_1.2 :extends UC_1.2.2 .u.> UC_1.2 :extends UC_1 ..> UC_1.2.2 :extends - - + + UC_1.1.1 -u-|> UC_1.1 UC_1.1.2 -u-|> UC_1.1 UC_1.1.3 -u-|> UC_1.1 - + right footer Аналітичний портал. Модель прецедентів. НТУУ КПІ ім.І.Сікорського @@ -146,4 +143,3 @@ **Діаграма прецедентів**
- diff --git a/guidelines/guidelines.md b/guidelines/guidelines.md index f097c46fd..11aa7846b 100644 --- a/guidelines/guidelines.md +++ b/guidelines/guidelines.md @@ -1,5 +1,6 @@ # Методичні вказівки до виконання лабораторних робіт -*для студентів напряму підготовки 123 "Комп’ютерна інженерія" всіх форм навчання* + +_для студентів напряму підготовки 123 "Комп’ютерна інженерія" всіх форм навчання_ ## Лабораторна робота №1. Виявлення вимог до функціональності програми. Розробка запитів зацікавлених осіб @@ -19,7 +20,7 @@ **Послідовність дій:** -1. Аналіз предметної області +1. Аналіз предметної області 2. Формування запитів зацікавлених осіб @@ -30,7 +31,7 @@ **Структура документів:** -Дивись у ["Аналіз предметної області"](../docs/requirements/state-of-the-art.md) та ["Запити зацікавлених осіб"](../docs/requirements/stakeholders-needs.md). +Дивись у ["Аналіз предметної області"](../docs/requirements/state-of-the-art.md) та ["Запити зацікавлених осіб"](../docs/requirements/stakeholders-needs.md). **Завдання:** @@ -38,8 +39,8 @@ 1. Визначити коло зацікавлених осіб -2. Визначити призначення розроблюваної системи за структурою списку запитів -зацікавлених осіб (компетенції, бізнес-сценарії та ін.) +1. Визначити призначення розроблюваної системи за структурою списку запитів + зацікавлених осіб (компетенції, бізнес-сценарії та ін.) ## Питання для самостійної перевірки @@ -73,7 +74,7 @@ 3. Специфікація, сценарій, Sequence-діаграми -***Прецедент (англ. Use Case)*** – список етапів, що послідовно описує взаємодію +**_Прецедент (англ. Use Case)_** – список етапів, що послідовно описує взаємодію системи з користувачем та використовується для досягнення певної мети, визначеної дійовою особою (англ. Actor). @@ -89,25 +90,25 @@ До прецедентів в UML застосовні наступні види відношень: -- ***Асоціація (англ. Association)*** – вказує на те, що Actor ініціює відповідний -варіант використання. +- **_Асоціація (англ. Association)_** – вказує на те, що Actor ініціює відповідний + варіант використання. -- ***Розширення (англ. Extend)*** – різновид відношення залежності між базовим -варіантом використання та його частковим випадком. +- **_Розширення (англ. Extend)_** – різновид відношення залежності між базовим + варіантом використання та його частковим випадком. -- ***Включення (англ. Include)*** – визначає зв'язок базового варіанта використання -з іншим, функціональна поведінка якого завжди задіюється базовим варіантом. +- **_Включення (англ. Include)_** – визначає зв'язок базового варіанта використання + з іншим, функціональна поведінка якого завжди задіюється базовим варіантом. -- ***Узагальнення (англ. Generalization, наслідування)*** – моделює відповідну -спільність ролей. +- **_Узагальнення (англ. Generalization, наслідування)_** – моделює відповідну + спільність ролей. -***Actor*** – діюча особа (користувач, система, програма), спроможна приймати +**_Actor_** – діюча особа (користувач, система, програма), спроможна приймати рішення та взаємодіяти з розроблюваною системою. -***Діаграма Use Case*** – абстраговане представлення компонентів бази даних, дій та +**_Діаграма Use Case_** – абстраговане представлення компонентів бази даних, дій та зв’язків між ними. -***Специфікация*** - це формалізований опис властивостей, характеристик і функцій +**_Специфікация_** - це формалізований опис властивостей, характеристик і функцій об'єктів. ![](media/c5bd823142768c01979ee59925abccc9.png) @@ -130,7 +131,7 @@ **Сутності** (найменші неподільні елементи проекту, що приймають участь у виконанні сценарію) -***Сценарій*** - послідовність дій, що мають бути виконані для досягнення +**_Сценарій_** - послідовність дій, що мають бути виконані для досягнення цілі, показує взаємодію Actor’a з системою у вигляді «користувач виконую дію над системою» з вказанням результату, що повертає система. Зображується в UML у вигляді діаграми Sequence. @@ -139,23 +140,23 @@ UML у вигляді діаграми Sequence. **Приклад:** -*ID:* **UC_CreateRegCard** +_ID:_ **UC_CreateRegCard** -*Назва:* Створення реєстраційної картки користувача +_Назва:_ Створення реєстраційної картки користувача -*Учасники:* Адміністратор, Система +_Учасники:_ Адміністратор, Система -*Передумова:* Адміністратор авторизований в системі +_Передумова:_ Адміністратор авторизований в системі -*Виключні ситуації:* +_Виключні ситуації:_ -- Адміністратор не авторизований +- Адміністратор не авторизований - 1. Завантажити сторінку авторизації + 1. Завантажити сторінку авторизації -*Результат* Деактивована реєстраційна карта нового клієнта. +_Результат_ Деактивована реєстраційна карта нового клієнта. -*Основний сценарій:* +_Основний сценарій:_ 1. Адміністратор починає взаємодію. @@ -175,12 +176,11 @@ UML у вигляді діаграми Sequence. 8. Адміністратор закінчує взаємодію. -*Діаграма:* +_Діаграма:_ ![](media/dfda7368f9ff9bb07cbb2d9587b34b30.png) - -*Сутності:* Реєстраційна картка, ім’я, роль, адреса елеткронної пошти, текст +_Сутності:_ Реєстраційна картка, ім’я, роль, адреса елеткронної пошти, текст запрошення, повідомлення запрошення користувача, URL для активації реєстраційної картки. @@ -225,7 +225,7 @@ UML у вигляді діаграми Sequence. **Довідка** -***Бізнес-моделювання (ділове моделювання)*** - діяльність з формування моделей +**_Бізнес-моделювання (ділове моделювання)_** - діяльність з формування моделей організацій, що включає опис ділових об'єктів (підрозділів, посад, ресурсів, ролей, процесів, операцій, інформаційних систем, носіїв інформації і т.д.) і вказівка зв'язків між ними. Вимоги до моделей, що формуються та їх відповідне @@ -236,7 +236,7 @@ UML у вигляді діаграми Sequence. визначаються вимоги до системи - ті підпроцеси та операції, що підлягають автоматизації розробки в інформаційній системі. -***Бізнес-об’єкт*** представляє значну і постійну частину інформації, керованої +**_Бізнес-об’єкт_** представляє значну і постійну частину інформації, керованої бізнес-акторами і виконавцями. Бізнес-об’єкти пасивні, тобто, вони не ініціюють взаємодії самі по собі. Бізнес-об’єкт може бути використаний в безлічі різних реалізацій бізнес-прецедентів і зазвичай реагує на будь-яку одиничну взаємодію. @@ -262,7 +262,7 @@ UML у вигляді діаграми Sequence. Прикладами бізнес-об’єктів можуть бути заявка на кредитування, договір, угода і т.д. -Модель з описом бізнес-об’єктів повинна будуватися на основі опису бізнес-процесів. Бізнес-об’єкти +Модель з описом бізнес-об’єктів повинна будуватися на основі опису бізнес-процесів. Бізнес-об’єкти повинні моделюватися в розбивці по бізнес-процесам. При створенні програмної системи моделюватися повинні тільки бізнес-об’єкти, пов'язані з діяльностями, що підлягають автоматизації. @@ -270,55 +270,55 @@ UML у вигляді діаграми Sequence. Для створення опису документів / бізнес-об’єктів використовується компоненти діаграми класів / функцій: -- пакет (package); +- пакет (package); -- бізнес сутність (business entity); +- бізнес сутність (business entity); -- асоціативний зв'язок (association); +- асоціативний зв'язок (association); -- зв'язок агрегація (agregation); +- зв'язок агрегація (agregation); -- зв'язок композиція (composition); +- зв'язок композиція (composition); -- зв'язок спадкування або батько нащадок (generalization). +- зв'язок спадкування або батько нащадок (generalization). -***Пакет*** використовується для групування бізнес об’єктів. +**_Пакет_** використовується для групування бізнес об’єктів. ![](media/a04dfabb76e4bedc8704d33284c56f52.png) -***Елемент бізнес-сутність*** +**_Елемент бізнес-сутність_** ![](media/842bddad8c668b9e19ac40fef2fab898.png) Бізнес-об’єкти можуть мати атрибути. При описі атрибутів можна зазначати: -- назву атрибута; +- назву атрибута; -- тип атрибута; +- тип атрибута; -- стереотип атрибута; +- стереотип атрибута; -- початкове значення атрибута (опціонально); +- початкове значення атрибута (опціонально); -- правила формування атрибута; +- правила формування атрибута; -- приклади значень атрибута. +- приклади значень атрибута. ![](media/9d1c428e0f8843cb177fee5ceeb50b80.png) Для завдання типів атрибутів можуть використовуватися типи даних: -- число; +- число; -- символ; +- символ; -- дата; +- дата; -- час; +- час; -- логічне значення; +- логічне значення; -- об'єкт. +- об'єкт. Тип даних «число» можна використовувати для опису чисел будь-якого виду, наприклад, «число (10.3)». В дужках рекомендується зазначати загальна кількість @@ -357,7 +357,7 @@ UML у вигляді діаграми Sequence. Якщо атрибут задається типом даних об'єкт, то початкове значення може задається як ім'я файлу, в якому зберігатиметься об'єкт, наприклад, малюнок або креслення. -***Асоціативний зв'язок (association)*** між бізнес-сутностями (business entity) є +**_Асоціативний зв'язок (association)_** між бізнес-сутностями (business entity) є смисловий зв'язок. Зв'язок не пояснює, як сутності спілкуються один з одним, відзначається тільки смислова залежність між ними. Асоціативний зв'язок (association) зображується на діаграмі класів суцільний прямою лінією. @@ -368,7 +368,7 @@ UML у вигляді діаграми Sequence. ![](media/d8121c068546f3ee39d5a80d292aa69d.png) -***Зв'язок композиція*** позначає зв'язок частина цілого (part of), де частина не може +**_Зв'язок композиція_** позначає зв'язок частина цілого (part of), де частина не може існувати без цілого. Наприклад, журнал включає заголовок журналу і рядки журналу. @@ -377,7 +377,7 @@ UML у вигляді діаграми Sequence. ![](media/842bddad8c668b9e19ac40fef2fab898.png) -***Зв'язок агрегація*** означає зв'язок частина цілого (part of), де частина може +**_Зв'язок агрегація_** означає зв'язок частина цілого (part of), де частина може існувати без цілого (контейнер). ![](media/b8487b0e87e1b9b944076cc7e1f3927b.png) @@ -389,24 +389,24 @@ UML у вигляді діаграми Sequence. Потужність зв'язку може позначатися таким чином: -- 1 - рівно одна бізнес сутність; +- 1 - рівно одна бізнес сутність; -- 0 .. \* - нуль або більше бізнес об’єктів; +- 0 .. \* - нуль або більше бізнес об’єктів; -- 1 .. \* - одна або більше бізнес об’єктів; +- 1 .. \* - одна або більше бізнес об’єктів; -- 0 .. 1 - нуль або одна бізнес сутність; +- 0 .. 1 - нуль або одна бізнес сутність; -- 5 .. 8 - специфічний діапазон 5,6,7,8; +- 5 .. 8 - специфічний діапазон 5,6,7,8; -- 4 .. 7, 9 - комбінація 4,5,6,7, або 9 бізнес об’єктів. +- 4 .. 7, 9 - комбінація 4,5,6,7, або 9 бізнес об’єктів. Потужність зв'язку з боку зафарбованого ромба не слід вказувати, оскільки вона завжди дорівнює 1 по нотації мови UML. ![](media/5da8a3354736283afa9d2b67d77cc609.png) -***Спадкування*** або зв'язок батько-нащадок (generalization) між бізнес об’єктами - +**_Спадкування_** або зв'язок батько-нащадок (generalization) між бізнес об’єктами - це таке відношення між ними, коли один бізнес-об’ект повторює структуру іншого (одиночне спадкоємство) або декількох інших (множинне успадкування) бізнес-об’єктів. @@ -420,7 +420,7 @@ UML у вигляді діаграми Sequence. ![](media/27e4c858c8e0e26ef64a6444bc05dfa8.png) -***Словник предметної області*** +**_Словник предметної області_** Основне завдання на цьому етапі сформувати однозначний термінологічний словник для предметної області. Деякі об'єкти можна назвати різними словами, наприклад, @@ -493,14 +493,14 @@ UML у вигляді діаграми Sequence. **Реляційна модель даних** — логічна модель даних, що описує: -- структури даних у вигляді наборів відношень, що, можливо, змінюються в часі; +- структури даних у вигляді наборів відношень, що, можливо, змінюються в часі; -- теоретико-множинні операції над даними: об'єднання, перетин, різниця і - декартів добуток; +- теоретико-множинні операції над даними: об'єднання, перетин, різниця і + декартів добуток; -- спеціальні реляційні операції: селекція, проекція, з'єднання і розподіл; +- спеціальні реляційні операції: селекція, проекція, з'єднання і розподіл; -- а також спеціальні правила, що забезпечують цілісність даних. +- а також спеціальні правила, що забезпечують цілісність даних. Обробка даних в реляційній моделі ґрунтується на принципах реляційної алгебри. @@ -517,25 +517,25 @@ UML у вигляді діаграми Sequence. Така таблиця має ряд властивостей: -- В таблиці немає двох однакових рядків. +- В таблиці немає двох однакових рядків. -- Таблиця має стовпці, відповідні атрибутам відношення. +- Таблиця має стовпці, відповідні атрибутам відношення. -- Кожний атрибут у відношенні має унікальне ім'я. +- Кожний атрибут у відношенні має унікальне ім'я. -- Порядок рядків в таблиці довільний. +- Порядок рядків в таблиці довільний. -***Заголовок (схема) відношення*** — скінченна множина впорядкованих пар виду \, де A називається іменем атрибута, а T означає ім'я деякого базового типу або раніше визначеного домену. Всі імена атрибутів в заголовку мають бути різними. -***Кортеж,*** відповідний заголовку — множина впорядкованих триплетів \, по +**_Кортеж,_** відповідний заголовку — множина впорядкованих триплетів \, по одному такому триплету для кожного атрибута в заголовку. Третій елемент – v – триплета \ має бути дозволеним значенням типу даних або домена T. Через те, що імена атрибутів унікальні, вказувати домен в кортежі зайве. -***Тіло відношення*** — невпорядкована множина різних кортежів. +**_Тіло відношення_** — невпорядкована множина різних кортежів. Реляційна таблиця має поля ID (ідентифікатор), тип даних, ключ. Зв’язки створюються між первинним ключем (PK) и зовнішнім (FK). Зв'язок йде від @@ -545,7 +545,7 @@ T\>, де A називається іменем атрибута, а T озна ![](media/3017ca65095f1270bb16d35bf6092c0a.png) -***Реляційна алгебра*** — відгалуження логіки першого порядку, множина відношень +**_Реляційна алгебра_** — відгалуження логіки першого порядку, множина відношень замкнених операторами. Оператори застосовуються до відношень, в результаті застосування отримується нове відношення. @@ -598,7 +598,7 @@ T\>, де A називається іменем атрибута, а T озна 8. Нормальні форми в реляційній моделі даних. -# Лабораторна робота №5. Реалізація бази даних засобами MySQL +# Лабораторна робота №5. Реалізація бази даних засобами MySQL **МЕТА:** навчитися встановлювати та налаштовувати системи розробки баз даних MySQL та Oracle SQL Developer. @@ -620,12 +620,12 @@ Oracle SQL Developer. Призначення SQL: -- Створення БД і таблиці з повним описом їх структури; +- Створення БД і таблиці з повним описом їх структури; -- Виконання основних операцій маніпулювання даними (такі як вставка, - модифікація і видалення даних з таблиць); +- Виконання основних операцій маніпулювання даними (такі як вставка, + модифікація і видалення даних з таблиць); -- Виконання простих і складних запитів. +- Виконання простих і складних запитів. Одна з ключових особливостей мови SQL полягає в тому, що з її допомогою формуються запити, що описують яку інформацію з бази даних необхідно отримати, а @@ -666,17 +666,17 @@ Oracle SQL Developer - інтегрована середа розробки на MySQL: -- [/](http://vk.com/away.php?to=http%3A%2F%2Fwww.mysql.ru%2Fdownload%2F) +- [/](http://vk.com/away.php?to=http%3A%2F%2Fwww.mysql.ru%2Fdownload%2F) -- +- GUI: -- +- Oracle Developer Tool: -- +- **Приклад інсталяції** @@ -689,37 +689,33 @@ Oracle Developer Tool: 2. Для встановлення стандартного набору функцій в меню інсталяції обираємо пункт Typical-\>Next-\>Install -3. Після інсталяції обираємо пункт *Configure the MySQL Server now-\>Finish* +3. Після інсталяції обираємо пункт _Configure the MySQL Server now-\>Finish_ 4. Для отримання стандартних налаштувань обираємо пункт Detailed configuration-\>Server Machine-\>Multifunctional Database 5. Вказуємо адресу для зберігання налаштувань -\>Next-\>Decision Support -6. Enable TCP\\IP Networking - +6. Enable TCP\\IP Networking - ![C:\\Users\\Кристина\\Desktop\\2.JPG](media/d0d81f7368cea6ec7170580597a50d2b.jpg) + ![C:\Users\Кристина\Desktop\2.JPG](media/d0d81f7368cea6ec7170580597a50d2b.jpg) -7. Обираємо кодування Manual Selected Default Character Set - +7. Обираємо кодування Manual Selected Default Character Set - ![**C:\\Users\\Кристина\\Desktop\\3.JPG**](media/f918ff9b95ddef7237006b82fd71f11a.jpg) + ![**C:\Users\Кристина\Desktop\3.JPG**](media/f918ff9b95ddef7237006b82fd71f11a.jpg) 8. Next-\>Install as Windows Server-\> Next 9. Обираємо параметр Modify Security Service, та вводимо свій пароль - доступу-\>Next-\>Execute-\>Finish - + доступу-\>Next-\>Execute-\>Finish - ![**C:\\Users\\Кристина\\Desktop\\4.JPG**](media/5f2524b35dccdbb582e49119928aa15a.jpg) + ![**C:\Users\Кристина\Desktop\4.JPG**](media/5f2524b35dccdbb582e49119928aa15a.jpg) 10. Запускаємо MySQL Command Line Client -11. Вводимо свій пароль. - +11. Вводимо свій пароль. - ![C:\\Users\\Кристина\\Desktop\\Снимок1.JPG](media/0290fdc4870f37736a44274034b949e6.jpg) + ![C:\Users\Кристина\Desktop\Снимок1.JPG](media/0290fdc4870f37736a44274034b949e6.jpg) Для встановлення GUI: @@ -781,7 +777,7 @@ SQL — це діалогова мова програмування для зд систему управління і адміністративні функції. SQL також включає CLI (Call Level Interface) для доступу і управління базами даних дистанційно. -***Data Definition Language (мова опису даних).*** За допомогою цієї мови визначають +**_Data Definition Language (мова опису даних)._** За допомогою цієї мови визначають дані, вказуючи тип даних, структури уявлення. Взагалі то це частина мови SQL, але тільки одна. Це ті оператори, які пов'язані з командами створення, наприклад CREATE TABLE. Результатом виконання цих операцій заноситися в системний каталог, @@ -792,7 +788,7 @@ CREATE TABLE. Результатом виконання цих операцій («створити»), «Alter» («змінити»), «Drop» («видалити»). Це перетворює природу мови в ряд обов'язкових тверджень (команд) до бази даних. -Оператор ***create table*** створює таблицю з заданим ім'ям у поточній базі даних. +Оператор **_create table_** створює таблицю з заданим ім'ям у поточній базі даних. Якщо немає активної поточної бази даних або зазначена таблиця вже існує, то виникає помилка виконання команди. @@ -812,10 +808,12 @@ EXISTS для того, щоб не виникала помилка, якщо з таблиць.Кожна таблиця tbl_name представлена певними файлами в директорії бази даних. -Оператор ***Drop table*** видаляє одну чи кілька таблиць. +Оператор **_Drop table_** видаляє одну чи кілька таблиць. + ``` DROP TABLE [IF EXISTS] tbl_name [, tbl_name, ...] [RESTRICT \| CASCADE] ``` + Всі табличні дані і визначення видаляються, так що будьте уважні при роботі з цією командою! У версії MySQL 3.22 і більш пізніх можна використовувати ключові слова IF @@ -826,7 +824,7 @@ EXISTS, щоб попередити помилку, якщо зазначені Примітка: DROP TABLE автоматично приймає поточну активну транзакцію. -Оператор ***Alter table*** забезпечує можливість змінювати структуру існуючої +Оператор **_Alter table_** забезпечує можливість змінювати структуру існуючої таблиці.Наприклад, можна додавати або видаляти стовпці, створювати або знищувати індекси або перейменовувати стовпці або саму таблицю. Можна також змінювати коментар для таблиці і її тип. Якщо оператор ALTER TABLE використовується для @@ -857,6 +855,7 @@ RENAME, MySQL завжди буде створювати тимчасову та ![](media/3017ca65095f1270bb16d35bf6092c0a.png) **Скрипт** + ```sql -- MySQL Workbench Forward Engineering SET \@OLD_UNIQUE_CHECKS=\@\@UNIQUE_CHECKS, UNIQUE_CHECKS=0; @@ -983,35 +982,37 @@ ON UPDATE NO ACTION) ENGINE = InnoDB; ``` -***Data Manipulation Language (мова управління (маніпулювання) даними).*** Це мова -керування даними, за допомогою якого можна витягувати і змінювати дані. +**_Data Manipulation Language (мова управління (маніпулювання) даними)._** Це мова +керування даними, за допомогою якого можна витягувати і змінювати дані. -Для ***вибірки даних*** з БД використовується запит ```SELECT```. Він дозволяє робити +Для **_вибірки даних_** з БД використовується запит `SELECT`. Він дозволяє робити вибірку потрібних даних з таблиць і перетворювати до потрібного виду отримані -результати. У загальному випадку результатом реалізації запиту ```SELECT```, є інша +результати. У загальному випадку результатом реалізації запиту `SELECT`, є інша таблиця, яку будемо називати таблицею результатів запиту (ТРЗ). До цієї нової -(робочої) таблиці може бути знову застосовано запит ```SELECT```, і т.д., тобто такі +(робочої) таблиці може бути знову застосовано запит `SELECT`, і т.д., тобто такі операції можуть бути вкладені одна в одну. Таблиця "Persons": | P_Id | LastName | FirstName | Address | City | -|------|-----------|-----------|--------------|-----------| +| ---- | --------- | --------- | ------------ | --------- | | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | | 2 | Svendson | Tove | Borgvn 23 | Sandnes | | 3 | Pettersen | Kari | Storgt 20 | Stavanger | -Тепер ми хочемо вибрати зміст колонок під назвою "*LastName* " та "*FirstName*" +Тепер ми хочемо вибрати зміст колонок під назвою "_LastName_ " та "_FirstName_" з таблиці вище. Ми використаємо команду SELECT таким чином: + ```sql SELECT LastName,FirstName FROM Persons ``` + В результаті отримаємо: | LastName | FirstName | -|-----------|-----------| +| --------- | --------- | | Hansen | Ola | | Svendson | Tove | | Pettersen | Kari | @@ -1019,7 +1020,7 @@ SELECT LastName,FirstName FROM Persons Таблиця "Persons": | P_Id | LastName | FirstName | Address | City | -|------|-----------|-----------|--------------|-----------| +| ---- | --------- | --------- | ------------ | --------- | | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | | 2 | Svendson | Tove | Borgvn 23 | Sandnes | | 3 | Pettersen | Kari | Storgt 20 | Stavanger | @@ -1029,15 +1030,17 @@ SELECT LastName,FirstName FROM Persons Тепер ми хочемо оновити персону " TjessemJakob " в таблиці " Persons ". Ми використовуємо такі команди SQL: + ```sql -UPDATE Persons -SET Address='Nissestien 67', City='Sandnes' +UPDATE Persons +SET Address='Nissestien 67', City='Sandnes' WHERE LastName='Tjessem' AND FirstName='Jakob' ``` + В результаті отримаємо: | P_Id | LastName | FirstName | Address | City | -|------|-----------|-----------|---------------|-----------| +| ---- | --------- | --------- | ------------- | --------- | | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | | 2 | Svendson | Tove | Borgvn 23 | Sandnes | | 3 | Pettersen | Kari | Storgt 20 | Stavanger | @@ -1047,20 +1050,22 @@ WHERE LastName='Tjessem' AND FirstName='Jakob' Таблиця "Persons": | P_Id | LastName | FirstName | Address | City | -|------|-----------|-----------|--------------|-----------| +| ---- | --------- | --------- | ------------ | --------- | | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | | 2 | Svendson | Tove | Borgvn 23 | Sandnes | | 3 | Pettersen | Kari | Storgt 20 | Stavanger | Треба вставити новий рядок в таблицю "Persons". + ```sql -INSERT INTO Persons +INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') ``` + В результаті отримаємо: | P_Id | LastName | FirstName | Address | City | -|------|-----------|-----------|--------------|-----------| +| ---- | --------- | --------- | ------------ | --------- | | 1 | Hansen | Ola | Timoteivn 10 | Sandnes | | 2 | Svendson | Tove | Borgvn 23 | Sandnes | | 3 | Pettersen | Kari | Storgt 20 | Stavanger | @@ -1096,11 +1101,11 @@ VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') 9. Приведіть приклад синтаксису операторів Create, Drop й Alter -10. Коротка характеристика команди SELECT, її особливості. +10. Коротка характеристика команди SELECT, її особливості. -11. Коротка характеристика команди UPDATE, її особливості. +11. Коротка характеристика команди UPDATE, її особливості. -12. Коротка характеристика команди INSERT, її особливості. +12. Коротка характеристика команди INSERT, її особливості. # Лабораторна робота №6. Реалізація об’єктно-реляційного відображення @@ -1110,7 +1115,7 @@ VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') **ДОВІДКА** -***DAO*** - об'єкт що надає абстрактний інтерфейс до деяких видів баз даних чи +**_DAO_** - об'єкт що надає абстрактний інтерфейс до деяких видів баз даних чи механізмів персистентності реалізуючи певні операції без розкриття деталей бази даних. Він надає відображення від програмних викликів до рівня персистентності. Така ізоляція розділює запити до даних в термінах предметної області та їх @@ -1123,7 +1128,7 @@ VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') ![uml](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/boldak/database_basics_template/master/src/uml/dao.puml) -***Active Record*** - це шаблон проектування, що використовується при реалізації доступу до реляційних баз даних. Вперше згадується Мартіном Фаулером в книжці Patterns of Enterprise Application Architecture. Цей шаблон є підвидом DAO, але навідміну від нього, він надає CRUD API кожному окремому об'єкту, який репрезентує окремий запис в таблиці БД. +**_Active Record_** - це шаблон проектування, що використовується при реалізації доступу до реляційних баз даних. Вперше згадується Мартіном Фаулером в книжці Patterns of Enterprise Application Architecture. Цей шаблон є підвидом DAO, але навідміну від нього, він надає CRUD API кожному окремому об'єкту, який репрезентує окремий запис в таблиці БД. **Завдання** @@ -1132,12 +1137,12 @@ VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') 2. Створити базу даних у MySQL 3. Створити bean-класи по одному для кожної таблиці, які складаються з опису -одного рядка таблиці. + одного рядка таблиці. 4. Розробити DAO-інфраструктуру для роботи з базою даних. 5. Розробити програму для тестування можливостей DAO, яка створює деякі об’єкти -в кожній таблиці та шукає існуючи їх по деяким ознакам. + в кожній таблиці та шукає існуючи їх по деяким ознакам. 6. Запустити програму та продивитись результати її роботи у MySQL. @@ -1148,4 +1153,4 @@ VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') 2. Які три основні можливі реалізації механізму в Java 3. Які переваги від розділення реалізації роботи з СКБД та прозорою роботою з -даними в програмі + даними в програмі diff --git a/guidelines/themes.md b/guidelines/themes.md index bbe2954bc..20f3069c8 100644 --- a/guidelines/themes.md +++ b/guidelines/themes.md @@ -14,11 +14,11 @@ Необхідно розробити веб-систему, яка реалізує повний життєвий цикл даних. Аналоги: -- [Gapminder](https://www.gapminder.org/) -- [The World Bank DataBank](https://databank.worldbank.org/home.aspx) -- [Google Public Data Explorer](https://www.google.com/publicdata/directory) -- [Statistics Poland](https://stat.gov.pl/en/) -- [Eurostat](https://ec.europa.eu/eurostat/data/database) +- [Gapminder](https://www.gapminder.org/) +- [The World Bank DataBank](https://databank.worldbank.org/home.aspx) +- [Google Public Data Explorer](https://www.google.com/publicdata/directory) +- [Statistics Poland](https://stat.gov.pl/en/) +- [Eurostat](https://ec.europa.eu/eurostat/data/database) ## 3. Система аналізу медіа-контенту From c4350f8c32c05ca629d4bf96f689b20805191bc3 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:43:02 +0200 Subject: [PATCH 004/143] added missing dependencies --- docs/.vitepress/config.mts | 15 ++++++ package-lock.json | 105 ++++++++++++++++++++++++++++++++++++- package.json | 7 +++ 3 files changed, 126 insertions(+), 1 deletion(-) diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 555eeab22..49ab5b256 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,4 +1,9 @@ import { defineConfig } from "vitepress"; +import markdownIt from "markdown-it"; +import markdownKatex from "markdown-it-katex"; +import markdownPlantuml from "markdown-it-plantuml"; +import markdownAdmonition from "markdown-it-admonition"; +import markdownTaskLists from "markdown-it-task-lists"; // https://vitepress.dev/reference/site-config export default defineConfig({ @@ -64,4 +69,14 @@ export default defineConfig({ { icon: "github", link: "https://github.com/TockePie/db_labs" }, ], }, + + markdown: { + config: (md) => { + md.set({ html: true }) + md.use(markdownKatex) + md.use(markdownPlantuml) + md.use(markdownAdmonition) + md.use(markdownTaskLists) + } + } }); diff --git a/package-lock.json b/package-lock.json index 573e4aea4..f428b88bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,13 @@ "name": "edu_db_labs", "version": "2.1.0", "license": "ECL 2.0", + "dependencies": { + "markdown-it": "^14.1.0", + "markdown-it-admonition": "^1.0.4", + "markdown-it-katex": "^2.0.3", + "markdown-it-plantuml": "^1.4.1", + "markdown-it-task-lists": "^2.1.1" + }, "devDependencies": { "vitepress": "^1.6.3" } @@ -1708,6 +1715,12 @@ } } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1914,7 +1927,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -2065,6 +2077,27 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/katex": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.6.0.tgz", + "integrity": "sha512-rS4mY3SvHYg5LtQV6RBcK0if7ur6plyEukAOV+jGGPqFImuzu8fHL6M752iBmRGoUyF0bhZbAPoezehn7xYksA==", + "license": "MIT", + "dependencies": { + "match-at": "^0.1.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2082,6 +2115,55 @@ "dev": true, "license": "MIT" }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-admonition": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-it-admonition/-/markdown-it-admonition-1.0.4.tgz", + "integrity": "sha512-+Jow9A7tBSwSuGvQufneeT35o9Cq8+OyR+WAhhC4dOG2NvB2oCeXiaUGGyP9PCRrxQoFxZF+xoVHbo98xYAi+g==", + "license": "MIT" + }, + "node_modules/markdown-it-katex": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/markdown-it-katex/-/markdown-it-katex-2.0.3.tgz", + "integrity": "sha512-nUkkMtRWeg7OpdflamflE/Ho/pWl64Lk9wNBKOmaj33XkQdumhXAIYhI0WO03GeiycPCsxbmX536V5NEXpC3Ng==", + "license": "MIT", + "dependencies": { + "katex": "^0.6.0" + } + }, + "node_modules/markdown-it-plantuml": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-plantuml/-/markdown-it-plantuml-1.4.1.tgz", + "integrity": "sha512-13KgnZaGYTHBp4iUmGofzZSBz+Zj6cyqfR0SXUIc9wgWTto5Xhn7NjaXYxY0z7uBeTUMlc9LMQq5uP4OM5xCHg==", + "license": "MIT" + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "license": "ISC" + }, + "node_modules/match-at": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/match-at/-/match-at-0.1.1.tgz", + "integrity": "sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q==" + }, "node_modules/mdast-util-to-hast": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", @@ -2104,6 +2186,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -2365,6 +2453,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", @@ -2711,6 +2808,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", diff --git a/package.json b/package.json index 4a1fba83f..f0df72044 100644 --- a/package.json +++ b/package.json @@ -14,5 +14,12 @@ }, "devDependencies": { "vitepress": "^1.6.3" + }, + "dependencies": { + "markdown-it": "^14.1.0", + "markdown-it-admonition": "^1.0.4", + "markdown-it-katex": "^2.0.3", + "markdown-it-plantuml": "^1.4.1", + "markdown-it-task-lists": "^2.1.1" } } From 65981f66459b4b373436657713b634fa73bde9ee Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:49:29 +0200 Subject: [PATCH 005/143] fixed code highlighting --- docs/use cases/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index ab6c1cac2..a3a1164b2 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -8,7 +8,7 @@ _Модель прецедентів повинна містити загаль В markdown-файлі використовується опис діаграми -```md +```html
= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.34.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.5.tgz", @@ -1721,6 +1757,21 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1768,6 +1819,18 @@ "concat-map": "0.0.1" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1821,6 +1884,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1916,6 +1994,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "license": "MIT" + }, "node_modules/emoji-regex-xs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", @@ -1935,6 +2031,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1942,6 +2047,99 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/focus-trap": { "version": "7.6.4", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", @@ -1952,6 +2150,20 @@ "tabbable": "^6.2.0" } }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1961,6 +2173,28 @@ "optional": true, "peer": true }, + "node_modules/gh-pages": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", + "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", + "license": "MIT", + "dependencies": { + "async": "^3.2.4", + "commander": "^13.0.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^11.1.1", + "globby": "^11.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1985,6 +2219,44 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/hast-util-to-html": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", @@ -2041,6 +2313,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2064,6 +2345,36 @@ "optional": true, "peer": true }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-what": { "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", @@ -2077,6 +2388,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/katex": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/katex/-/katex-0.6.0.tgz", @@ -2098,6 +2421,18 @@ "uc.micro": "^2.0.0" } }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2108,6 +2443,21 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -2192,6 +2542,15 @@ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -2286,6 +2645,19 @@ ], "license": "MIT" }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2376,6 +2748,51 @@ "regex-recursion": "^6.0.2" } }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2388,6 +2805,15 @@ "node": ">=0.10.0" } }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -2402,6 +2828,30 @@ "dev": true, "license": "ISC" }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -2462,6 +2912,26 @@ "node": ">=6" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", @@ -2499,6 +2969,16 @@ "optional": true, "peer": true }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -2560,6 +3040,29 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -2590,10 +3093,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", - "optional": true, - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -2615,6 +3115,15 @@ "@types/hast": "^3.0.4" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2713,6 +3222,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stylus": { "version": "0.54.8", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", @@ -2797,6 +3318,18 @@ "dev": true, "license": "MIT" }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -2808,6 +3341,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -2896,6 +3441,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", diff --git a/package.json b/package.json index f0df72044..57f6d178e 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "homepage": "https://tockepie.github.io/db_labs", "name": "edu_db_labs", "version": "2.1.0", "main": "index.js", @@ -9,6 +10,7 @@ "scripts": { "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", + "deploy": "gh-pages -d docs/.vitepress/dist", "publish": "publish.sh", "docs:preview": "vitepress preview docs" }, @@ -16,6 +18,7 @@ "vitepress": "^1.6.3" }, "dependencies": { + "gh-pages": "^6.3.0", "markdown-it": "^14.1.0", "markdown-it-admonition": "^1.0.4", "markdown-it-katex": "^2.0.3", diff --git a/publish.sh b/publish.sh deleted file mode 100644 index 28000702b..000000000 --- a/publish.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env sh - -# abort on errors -set -e - -# build -npm run docs:build - -# navigate into the build output directory -cd docs/.vuepress/dist - -# if you are deploying to a custom domain -# echo 'www.example.com' > CNAME - -git init -git add -A -git commit -m 'deploy' - -# if you are deploying to https://.github.io -# git push -f git@github.com:boldak/.github.io.git master - -# if you are deploying to https://.github.io/ -git push -f https://github.com/edu-db/edu_db_labs master:gh-pages - -cd - From d93f70ed3eefd82ce25862ff815d6f1ee8b6759e Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:27:46 +0200 Subject: [PATCH 007/143] Create pages.yml --- .github/workflows/pages.yml | 71 +++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/pages.yml diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 000000000..cd760bda0 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,71 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "master" branch + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + # Directory where your VitePress site is + VP_ROOT: docs + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: pages + cancel-in-progress: true + + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Detect package manager + run: echo "PM=$(jq -r '.packageManager // "npm"' package.json | cut -d '@' -f 1)" >> $GITHUB_ENV + - name: Install pnpm + if: env.PM == 'pnpm' + uses: pnpm/action-setup@v2 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: lts/* + cache: ${{ env.PM }} + - name: Setup Pages + uses: actions/configure-pages@v1 + - name: Install dependencies + run: ${{ env.PM }} ${{ env.PM == 'npm' && 'ci' || 'install --frozen-lockfile' }} + - name: Build site using VitePress + run: ${{ env.PM == 'npm' && 'npx --no-install' || env.PM }} vitepress build ${{ env.VP_ROOT }} --base /${{ github.event.repository.name }}/ + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ${{ env.VP_ROOT }}/.vitepress/dist + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 From f3bba7f1cee3416ca1d997fe2aea5cd2845a249f Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:30:59 +0200 Subject: [PATCH 008/143] Update pages.yml --- .github/workflows/pages.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index cd760bda0..205478428 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -36,25 +36,25 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Detect package manager run: echo "PM=$(jq -r '.packageManager // "npm"' package.json | cut -d '@' -f 1)" >> $GITHUB_ENV - name: Install pnpm if: env.PM == 'pnpm' uses: pnpm/action-setup@v2 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: lts/* cache: ${{ env.PM }} - name: Setup Pages - uses: actions/configure-pages@v1 + uses: actions/configure-pages@v3 - name: Install dependencies run: ${{ env.PM }} ${{ env.PM == 'npm' && 'ci' || 'install --frozen-lockfile' }} - name: Build site using VitePress run: ${{ env.PM == 'npm' && 'npx --no-install' || env.PM }} vitepress build ${{ env.VP_ROOT }} --base /${{ github.event.repository.name }}/ - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v2 with: path: ${{ env.VP_ROOT }}/.vitepress/dist @@ -68,4 +68,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v2 From 5ef26a991648fe62738d1fd5581ec06701a69722 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:33:06 +0200 Subject: [PATCH 009/143] Update pages.yml --- .github/workflows/pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 205478428..e9653e05d 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -41,7 +41,7 @@ jobs: run: echo "PM=$(jq -r '.packageManager // "npm"' package.json | cut -d '@' -f 1)" >> $GITHUB_ENV - name: Install pnpm if: env.PM == 'pnpm' - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v3 - name: Setup Node uses: actions/setup-node@v4 with: From b48e64227f04f48d52a678d0be2ea02392414920 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:35:56 +0200 Subject: [PATCH 010/143] Update pages.yml --- .github/workflows/pages.yml | 54 +++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index e9653e05d..587793073 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -1,71 +1,73 @@ -# This is a basic workflow to help you get started with Actions - name: CI -# Controls when the workflow will run on: - # Triggers the workflow on push or pull request events but only for the "master" branch push: branches: [ "master" ] pull_request: branches: [ "master" ] - - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: env: - # Directory where your VitePress site is VP_ROOT: docs -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow one concurrent deployment concurrency: group: pages cancel-in-progress: true - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # Build job build: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 # Updated to v4 + - name: Detect package manager run: echo "PM=$(jq -r '.packageManager // "npm"' package.json | cut -d '@' -f 1)" >> $GITHUB_ENV + - name: Install pnpm if: env.PM == 'pnpm' - uses: pnpm/action-setup@v3 - - name: Setup Node - uses: actions/setup-node@v4 + uses: pnpm/action-setup@v3 # Updated to v3 + + - name: Setup Node.js + uses: actions/setup-node@v4 # Updated to v4 with: node-version: lts/* cache: ${{ env.PM }} - - name: Setup Pages - uses: actions/configure-pages@v3 + + - name: Setup GitHub Pages + uses: actions/configure-pages@v3 # Updated to v3 + - name: Install dependencies run: ${{ env.PM }} ${{ env.PM == 'npm' && 'ci' || 'install --frozen-lockfile' }} - - name: Build site using VitePress + + - name: Build VitePress site run: ${{ env.PM == 'npm' && 'npx --no-install' || env.PM }} vitepress build ${{ env.VP_ROOT }} --base /${{ github.event.repository.name }}/ - - name: Upload artifact - uses: actions/upload-pages-artifact@v2 + + - name: Upload artifact (GitHub Pages) + uses: actions/upload-artifact@v4 # FIXED: Upgraded to v4 with: + name: github-pages path: ${{ env.VP_ROOT }}/.vitepress/dist + retention-days: 1 # Keep artifacts for 1 day to avoid excessive storage - # Deployment job deploy: + runs-on: ubuntu-latest + needs: build environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build steps: + - name: Download artifact + uses: actions/download-artifact@v4 # FIXED: Upgraded to v4 + with: + name: github-pages + path: ./ + - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v2 # Updated to v2 From eb1e1ad06692114f22c38ccea53d68e69c3c5efa Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:42:07 +0200 Subject: [PATCH 011/143] Update pages.yml --- .github/workflows/pages.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 587793073..841538680 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -24,23 +24,23 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 # Updated to v4 + uses: actions/checkout@v4 - name: Detect package manager run: echo "PM=$(jq -r '.packageManager // "npm"' package.json | cut -d '@' -f 1)" >> $GITHUB_ENV - name: Install pnpm if: env.PM == 'pnpm' - uses: pnpm/action-setup@v3 # Updated to v3 + uses: pnpm/action-setup@v3 - name: Setup Node.js - uses: actions/setup-node@v4 # Updated to v4 + uses: actions/setup-node@v4 with: node-version: lts/* cache: ${{ env.PM }} - name: Setup GitHub Pages - uses: actions/configure-pages@v3 # Updated to v3 + uses: actions/configure-pages@v3 - name: Install dependencies run: ${{ env.PM }} ${{ env.PM == 'npm' && 'ci' || 'install --frozen-lockfile' }} @@ -48,12 +48,15 @@ jobs: - name: Build VitePress site run: ${{ env.PM == 'npm' && 'npx --no-install' || env.PM }} vitepress build ${{ env.VP_ROOT }} --base /${{ github.event.repository.name }}/ + - name: Verify build output + run: ls -l ${{ env.VP_ROOT }}/.vitepress/dist + - name: Upload artifact (GitHub Pages) - uses: actions/upload-artifact@v4 # FIXED: Upgraded to v4 + uses: actions/upload-artifact@v4 with: - name: github-pages + name: github-pages # Ensure this matches the name in download-artifact path: ${{ env.VP_ROOT }}/.vitepress/dist - retention-days: 1 # Keep artifacts for 1 day to avoid excessive storage + retention-days: 1 deploy: runs-on: ubuntu-latest @@ -63,11 +66,11 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Download artifact - uses: actions/download-artifact@v4 # FIXED: Upgraded to v4 + uses: actions/download-artifact@v4 with: - name: github-pages + name: github-pages # This must match upload-artifact's name path: ./ - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v2 # Updated to v2 + uses: actions/deploy-pages@v2 From b7ce16ba34325c5be1317928495477946f9414b3 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 20:09:29 +0200 Subject: [PATCH 012/143] Configure GitHub Pages deployment Configure GitHub Pages deployment Configure GitHub Pages deployment Create pages.yml Update pages.yml Update pages.yml Update pages.yml Update pages.yml Update pages.yml --- .github/workflows/pages.yml | 61 ++++ docs/.vitepress/config.mts | 1 + package-lock.json | 560 +++++++++++++++++++++++++++++++++++- package.json | 3 + publish.sh | 25 -- 5 files changed, 622 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/pages.yml delete mode 100644 publish.sh diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 000000000..d43d0b9f6 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,61 @@ +name: CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + workflow_dispatch: + +env: + VP_ROOT: docs + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Not needed if lastUpdated is not enabled + # - uses: pnpm/action-setup@v3 # Uncomment this block if you're using pnpm + # with: + # version: 9 # Not needed if you've set "packageManager" in package.json + # - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm # or pnpm / yarn + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Install dependencies + run: npm ci # or pnpm install / yarn install / bun install + - name: Build with VitePress + run: npm run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/.vitepress/dist + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-latest + name: Deploy + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 49ab5b256..d507e49fd 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -10,6 +10,7 @@ export default defineConfig({ title: "Бази даних", description: "Лабораторні роботи з дисципліни Організація баз даних", lang: "uk", + base: "/db_labs/", themeConfig: { // https://vitepress.dev/reference/default-theme-config nav: [ diff --git a/package-lock.json b/package-lock.json index f428b88bb..90fbc8269 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "2.1.0", "license": "ECL 2.0", "dependencies": { + "gh-pages": "^6.3.0", "markdown-it": "^14.1.0", "markdown-it-admonition": "^1.0.4", "markdown-it-katex": "^2.0.3", @@ -943,6 +944,41 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.34.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.5.tgz", @@ -1721,6 +1757,21 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1768,6 +1819,18 @@ "concat-map": "0.0.1" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1821,6 +1884,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1916,6 +1994,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "license": "MIT" + }, "node_modules/emoji-regex-xs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", @@ -1935,6 +2031,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -1942,6 +2047,99 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/focus-trap": { "version": "7.6.4", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", @@ -1952,6 +2150,20 @@ "tabbable": "^6.2.0" } }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1961,6 +2173,28 @@ "optional": true, "peer": true }, + "node_modules/gh-pages": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", + "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", + "license": "MIT", + "dependencies": { + "async": "^3.2.4", + "commander": "^13.0.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^11.1.1", + "globby": "^11.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1985,6 +2219,44 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/hast-util-to-html": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", @@ -2041,6 +2313,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2064,6 +2345,36 @@ "optional": true, "peer": true }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-what": { "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", @@ -2077,6 +2388,18 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/katex": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/katex/-/katex-0.6.0.tgz", @@ -2098,6 +2421,18 @@ "uc.micro": "^2.0.0" } }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2108,6 +2443,21 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -2192,6 +2542,15 @@ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -2286,6 +2645,19 @@ ], "license": "MIT" }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2376,6 +2748,51 @@ "regex-recursion": "^6.0.2" } }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2388,6 +2805,15 @@ "node": ">=0.10.0" } }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -2402,6 +2828,30 @@ "dev": true, "license": "ISC" }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -2462,6 +2912,26 @@ "node": ">=6" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", @@ -2499,6 +2969,16 @@ "optional": true, "peer": true }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -2560,6 +3040,29 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -2590,10 +3093,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", - "optional": true, - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -2615,6 +3115,15 @@ "@types/hast": "^3.0.4" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2713,6 +3222,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stylus": { "version": "0.54.8", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", @@ -2797,6 +3318,18 @@ "dev": true, "license": "MIT" }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -2808,6 +3341,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -2896,6 +3441,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", diff --git a/package.json b/package.json index f0df72044..57f6d178e 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "homepage": "https://tockepie.github.io/db_labs", "name": "edu_db_labs", "version": "2.1.0", "main": "index.js", @@ -9,6 +10,7 @@ "scripts": { "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", + "deploy": "gh-pages -d docs/.vitepress/dist", "publish": "publish.sh", "docs:preview": "vitepress preview docs" }, @@ -16,6 +18,7 @@ "vitepress": "^1.6.3" }, "dependencies": { + "gh-pages": "^6.3.0", "markdown-it": "^14.1.0", "markdown-it-admonition": "^1.0.4", "markdown-it-katex": "^2.0.3", diff --git a/publish.sh b/publish.sh deleted file mode 100644 index 28000702b..000000000 --- a/publish.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env sh - -# abort on errors -set -e - -# build -npm run docs:build - -# navigate into the build output directory -cd docs/.vuepress/dist - -# if you are deploying to a custom domain -# echo 'www.example.com' > CNAME - -git init -git add -A -git commit -m 'deploy' - -# if you are deploying to https://.github.io -# git push -f git@github.com:boldak/.github.io.git master - -# if you are deploying to https://.github.io/ -git push -f https://github.com/edu-db/edu_db_labs master:gh-pages - -cd - From 8d47ab226546d89c127499e5108b46d5817eaf43 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 21:08:44 +0200 Subject: [PATCH 013/143] Update package.json --- package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package.json b/package.json index 57f6d178e..507e34e03 100644 --- a/package.json +++ b/package.json @@ -10,15 +10,12 @@ "scripts": { "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", - "deploy": "gh-pages -d docs/.vitepress/dist", - "publish": "publish.sh", "docs:preview": "vitepress preview docs" }, "devDependencies": { "vitepress": "^1.6.3" }, "dependencies": { - "gh-pages": "^6.3.0", "markdown-it": "^14.1.0", "markdown-it-admonition": "^1.0.4", "markdown-it-katex": "^2.0.3", From a585e74a4385e5c72c7aea092a7e0c17a08bad8e Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 7 Feb 2025 23:11:22 +0200 Subject: [PATCH 014/143] changed authors file Update issue templates --- .github/ISSUE_TEMPLATE/adjustment.md | 10 ++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 26 ++++++++++++++++++++++++++ docs/.vitepress/config.mts | 2 +- docs/{authors.md => README.md} | 0 docs/index.md | 2 +- 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/adjustment.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md rename docs/{authors.md => README.md} (100%) diff --git a/.github/ISSUE_TEMPLATE/adjustment.md b/.github/ISSUE_TEMPLATE/adjustment.md new file mode 100644 index 000000000..93bb77404 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/adjustment.md @@ -0,0 +1,10 @@ +--- +name: Adjustment +about: What you would like to change or add to the project? +title: "[Adj]" +labels: enhancement +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..042b894e7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,26 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' or send an SQL query '...' +3. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Additional context** +Add any other context about the problem here. diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index d507e49fd..354e3996d 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -16,7 +16,7 @@ export default defineConfig({ nav: [ { text: "Головна", link: "/" }, { text: "Зміст", link: "/intro/README" }, - { text: "Автори", link: "/authors" }, + { text: "Автори", link: "/README" }, ], footer: { diff --git a/docs/authors.md b/docs/README.md similarity index 100% rename from docs/authors.md rename to docs/README.md diff --git a/docs/index.md b/docs/index.md index 7a3145a3f..caf3e54e3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,5 +12,5 @@ hero: link: /intro/README - theme: alt text: Автори - link: /authors + link: /README --- From a6da38b5014d3640bb81676222f81ea38ce9d582 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 14 Feb 2025 12:56:30 +0200 Subject: [PATCH 015/143] Update issue templates --- .github/ISSUE_TEMPLATE/task-request.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/task-request.md diff --git a/.github/ISSUE_TEMPLATE/task-request.md b/.github/ISSUE_TEMPLATE/task-request.md new file mode 100644 index 000000000..dc589bdc2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/task-request.md @@ -0,0 +1,10 @@ +--- +name: Task request +about: What needs to be done? +title: "[TASK]" +labels: documentation +assignees: '' + +--- + + From 8cc17c67a681d1a5392a6d33b361bf2dba3ce00a Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 13 Feb 2025 14:06:40 +0200 Subject: [PATCH 016/143] create introduction --- docs/.vitepress/config.mts | 2 +- docs/index.md | 2 +- docs/intro/README.md | 11 +- docs/requirements/stakeholders-needs.md | 7 +- docs/requirements/state-of-the-art.md | 12 +- package-lock.json | 560 +----------------------- 6 files changed, 12 insertions(+), 582 deletions(-) diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 354e3996d..f720f26d7 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -7,7 +7,7 @@ import markdownTaskLists from "markdown-it-task-lists"; // https://vitepress.dev/reference/site-config export default defineConfig({ - title: "Бази даних", + title: "Voice of Experts", description: "Лабораторні роботи з дисципліни Організація баз даних", lang: "uk", base: "/db_labs/", diff --git a/docs/index.md b/docs/index.md index caf3e54e3..72c9ceba1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,7 @@ layout: home hero: - name: Система організації та управління опитуваннями експертів + name: Система організації та управління опитуваннями експертів "Voice of Experts" # text: tagline: Лабораторні роботи з дисципліни "Організація баз даних" actions: diff --git a/docs/intro/README.md b/docs/intro/README.md index fabc8fd88..4957480d9 100644 --- a/docs/intro/README.md +++ b/docs/intro/README.md @@ -1,12 +1,7 @@ # Вступ -У вступі описується мета роботи і розглядається поставлене завдання з позиції її -актуальності, значення її розв’язання для тієї предметної області, до якої відноситься -тема бакалаврського проєкту. +**Voice of Experts** - це платформа, що об'єднує експертів, готових поділитися своїм досвідом для покращення світу та для клієнтів, які шукають професійного аудиту з будь-яких питань у будь-якій сфері. -Коротко характеризується сучасний рівень розв’язання -даного завдання і взаємозв’язок з іншими проєктами по цій тематиці. +На сьогодні існує ряд платформ, що пропонують інструменти для організації опитувань, наприклад, SurveyMonkey. Щоправда, SurveyMonkey має певні обмеження, такі як відсутність безкоштовного варіанту для публікації навіть невеликих анкет. Voice of Experts вирішує цю проблему, пропонуючи можливість безкоштовного розміщення опитувань. Фінансування роботи експертів передбачається через показ реклами. -Наводяться -основні технічні характеристики розробки й очікуваний технічно-економічний ефект -від її реалізації. +Мета цієї роботи – створити зручну та функціональну платформу, яка об’єднує експертів з різних сфер і надає клієнтам можливість організовувати та управляти опитуваннями відповідно до власних потреб. У процесі дослідження буде проведено аналіз існуючих рішень, визначено їхні недоліки та розроблено систему, яка забезпечить ефективне управління експертними опитуваннями. diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index eebfe7fb4..9e5416edc 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -2,16 +2,15 @@ ## Вступ -_[Вступ повинен містити короткий огляд всього документу.]_ +У цьому розділі подаються ключові визначення та характеристика ділових процесів, що стосуються розробки якісного програмного забезпечення для системи організації та управління опитуваннями експертів, охоплюючи бізнес-сценарії, функціональність, зручність використання, рівень захисту, продуктивність та відповідність сучасним стандартам. ### Мета -_[Визначення мети цієї сукупності вимог. Зазвичай такою метою є створення та впровадження -інформаційної системи відповідного призначення.]_ +Основною ціллю проекту є розробка високофункціонального сервісу для проведення аналітичних опитувань та оптимізованої обробки отриманих даних ### Контекст -_[Короткий опис того, з якими проектами пов'язаний цей документ, на що він впливає.]_ +Цей документ описує теоретичні відомості, визначення, скорочення та загальний функціонал, що допоможуть розробникам отримати курс написання програмного забезпечення, а клієнтам очікування від продукту. ### Основні визначення та скорочення diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 7c5735cde..bdd57462e 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -2,17 +2,7 @@ ## Вступ -_[Вступ повинен містити короткий огляд всього документу.]_ - -**_vhgdvdc dhcbjhbcds cdsbcdshgc b cbhd cgds cg d_** - -gdgdgf: - -- jdsjsd -- ncjdsnc -- mncjdcnsdknc - - sbhcjhsdcdshc +У цьому розділу пропонується розглянути предметну область системи організації та управління опитуваннями експертів. Метою цього розділу є аналіз існуючих підходів до вирішення завдань, пов'язаних з опитуваннями експертів, а також порівняння наявних аналогів системи за властивостями FURPS (функціональність, надійність, використання, продуктивність та підтримка). У результаті цього аналізу очікується отримання рекомендацій для створення нової системи, яка зможе задовольнити потреби різних категорій користувачів та забезпечити ефективне управління опитуваннями експертів. ## Основні визначення diff --git a/package-lock.json b/package-lock.json index 90fbc8269..f428b88bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,6 @@ "version": "2.1.0", "license": "ECL 2.0", "dependencies": { - "gh-pages": "^6.3.0", "markdown-it": "^14.1.0", "markdown-it-admonition": "^1.0.4", "markdown-it-katex": "^2.0.3", @@ -944,41 +943,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.34.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.5.tgz", @@ -1757,21 +1721,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1819,18 +1768,6 @@ "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1884,21 +1821,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1994,24 +1916,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/email-addresses": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", - "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", - "license": "MIT" - }, "node_modules/emoji-regex-xs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", @@ -2031,15 +1935,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -2047,99 +1942,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "license": "MIT", - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/focus-trap": { "version": "7.6.4", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", @@ -2150,20 +1952,6 @@ "tabbable": "^6.2.0" } }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2173,28 +1961,6 @@ "optional": true, "peer": true }, - "node_modules/gh-pages": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", - "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", - "license": "MIT", - "dependencies": { - "async": "^3.2.4", - "commander": "^13.0.0", - "email-addresses": "^5.0.0", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^11.1.1", - "globby": "^11.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2219,44 +1985,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, "node_modules/hast-util-to-html": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", @@ -2313,15 +2041,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2345,36 +2064,6 @@ "optional": true, "peer": true }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-what": { "version": "4.1.16", "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", @@ -2388,18 +2077,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/katex": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/katex/-/katex-0.6.0.tgz", @@ -2421,18 +2098,6 @@ "uc.micro": "^2.0.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -2443,21 +2108,6 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -2542,15 +2192,6 @@ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "license": "MIT" }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", @@ -2645,19 +2286,6 @@ ], "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2748,51 +2376,6 @@ "regex-recursion": "^6.0.2" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2805,15 +2388,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -2828,30 +2402,6 @@ "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -2912,26 +2462,6 @@ "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", @@ -2969,16 +2499,6 @@ "optional": true, "peer": true }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -3040,29 +2560,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -3093,7 +2590,10 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "license": "ISC", + "optional": true, + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -3115,15 +2615,6 @@ "@types/hast": "^3.0.4" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3222,18 +2713,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stylus": { "version": "0.54.8", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", @@ -3318,18 +2797,6 @@ "dev": true, "license": "MIT" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -3341,18 +2808,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -3441,15 +2896,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", From 9c306259f5f40e11744f58792358e3bb1cfd4254 Mon Sep 17 00:00:00 2001 From: Sergio <161027752+ElRimigano@users.noreply.github.com> Date: Thu, 13 Feb 2025 21:14:33 +0200 Subject: [PATCH 017/143] change state-of-the-art.md Update state-of-the-art.md --- docs/requirements/state-of-the-art.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 7c5735cde..e0d8e8eed 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -24,16 +24,13 @@ _[Розділ містить опис підходів, моделей та с ## Порівняльна характеристика існуючих засобів вирішення завдання -_[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення -завдання. Дається порівняльна характеристика властивостей FURPS:_ - -- _Functionality (функциональні вимоги)_ -- _Usability (вимоги до зручності роботи)_ -- _Reliability (вимоги до надійності)_ -- _Performance (вимоги до продуктивності)_ -- _Supportability (вимоги до підтримки)_ - - _(у вигляді таблиці).]_ +| | Functionality | Usability | Reliability | Performance | Supportability | +| :--- | :---: | :---: | :---: | :---: | :---: | +| Google Forms | Надає широкий спектр можливостей для створення онлайн-форм, таблиць та ін. Добре інтегрований з іншими сервісами та має можливість збирати відповіді з Google Sheets. | Google Forms відзначається високим рівнем зручності. Простий інтуїтивний інтерфейс дозволяє працювати з сервісом навіть початківцям. | Інфраструктура Google дуже розвинена, стабільна робота хмарних сервісів. | Дуже швидко працює в будь яких умовах. | Google Forms має широку базу підтримки через офіційну документацію та підтримку. Крім того, є величезна кількість навчальних матеріалів для роботи. | +| SurveyMonkey | Розширені функції аналітики, можливість створення складних опитувань, широкий вибір шаблонів. | Достатньо зрозумілий інтерфейс але велика кількість функцій може ускладнити освоєння. | Стабільна та якісна підтримка. | Розширена аналітика? інтеграції з різними сервісами. Висока продуктивність для великих проєктів. | Наявна велкика команда підтримки для користувачів з різними засобами зв'язку, є доступні навчальні матеріали. | +| Survio | Зрозумілий інтерфейс і великий вибір шаблонів. Безкоштовна версія має обмеження. | Інтерфейс дружній до користувача. Менше аналітичних можливостей, але зручно для базових опитуваннь. | Для складних завданнь обмежена функціональність. Підходить для невеликих проектів. | Дуже швидкі оптимізовані засоби для роботи, простий API для інтеграцій. | Наявність онлайн-форм для запитів та швидкої підтримки, зручні інструкції. | +| SurveyJS | Широкі можливості для кастомізації, інтеграція з веб-додатками. | Потребує часу для освоєння, підходить для фахівців. | Надійність залежить від кваліфікації користувача. |Продуктивність залежить від корситувацьких налаштувань. Є обмеження у роботі з великою кількістю даних. | Немає централізованої служби підтримки, але є підтримка через форуми та спільноти розробників. | +| "OCA" | Можливість адаптації під специфічні потреби проекту. Вимагає більше часу і зусилль. | Складний інтерфейс, можлива кастомізація. Наявні засоби компалексного форматування. | Наявні всі базові можливості такі як оновлення та підтримка, захист даних. | Централізоване управління даними з можливістю автоматизації, гнучкі налаштування. Можуть виникати затримки через складність системи, високі вимоги до серверних ресурсів. | Можливість отримання цілеспрямованої підтримки для конкретного проекту, але може вимагати багато уваги для забезпечення. | ## Висновки From a093dad6d7e79f399a4e1badfcefdf9099bbe05d Mon Sep 17 00:00:00 2001 From: sunnytea0 Date: Wed, 19 Feb 2025 21:35:14 +0200 Subject: [PATCH 018/143] Update state-of-the-art.md --- docs/requirements/state-of-the-art.md | 55 ++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 5b19b794a..0daa0f4a6 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -10,7 +10,60 @@ _[Розділ містить визначення термінів та ско ## Підходи та способи вирішення завдання -_[Розділ містить опис підходів, моделей та способів вирішення завдання.]_ +### Метод незалежних характеристик +Цей метод дозволяє отримати узагальнену оцінку конкретної проблеми або ситуації на основі інформації, зібраної від різних незалежних джерел. Він складається з таких етапів: +- Аналіз та порівняння різних точок зору; +- Обробка отриманих даних за допомогою математичних і статистичних методів; +- Формулювання обґрунтованих висновків. + +### Метод "Дельфі +Передбачає анонімне висловлення думок експертами щодо заданої проблеми. Після кожного етапу учасники отримують узагальнений звіт, що дозволяє їм коригувати свої оцінки. Процес повторюється доти, доки думки не стабілізуються. + +### Метод мозкового штурму +Група експертів генерує ідеї без будь-яких обмежень або критики. Це сприяє вільному обговоренню та пошуку нестандартних рішень. + +### Метод зворотного мозкового штурму +Подібний до звичайного мозкового штурму, але акцент робиться на пошук недоліків і критичних аспектів запропонованих ідей. + +### Метод "635" +Цей метод передбачає участь шести експертів, кожен з яких за п’ять хвилин генерує три ідеї. Процес триває протягом пів години, у результаті чого загалом формується 108 ідей. + +### Метод прогнозних сценаріїв +Передбачає поетапне формування прогнозів шляхом узагальнення експертних думок, що проходить кілька ітерацій до моменту досягнення спільної оцінки. + +### Метод поминальних груп +Починається з індивідуальних інтерв’ю експертів, результати яких потім обговорюються іншими фахівцями для узгодження чи спростування отриманих оцінок. + +### Метод написання сценарію +Описує ймовірний розвиток подій на основі аналізу поточної ситуації та прогнозованих змін. Включає структурний аналіз, ідентифікацію ключових факторів та розробку практичних рекомендацій. + +### Метод колективного блокнота +Поєднує незалежне формулювання ідей експертами з подальшим колективним аналізом і обговоренням. + +### Метод KJ (діаграма спорідненості) +Використовується для впорядкування великого обсягу інформації та ідей, систематизації поглядів і визначення зв’язків між ними. + +### Експертне фокусування +Передбачає безпосереднє обговорення проблеми експертами з метою її глибокого аналізу та виявлення ключових взаємозв’язків. + +### Метод неспеціаліста +Рішення шукають особи, які не є фахівцями у вузькій темі, проте мають досвід у суміжних галузях, що сприяє нестандартному підходу до вирішення проблеми. + +### Метод комісії +Передбачає відкриту дискусію експертів з метою формування єдиної думки щодо проблеми. Учасники можуть ставити запитання, обговорювати аргументи та змінювати свою позицію залежно від отриманої інформації. + +### Метод суду +Створюються дві команди експертів: одна захищає певну позицію, інша – висловлює контраргументи. Третя група ("судді") приймає остаточне рішення після обговорення. + +### Метод експертних оцінок +Залучає групу кваліфікованих експертів для оцінки складних проблем, що не піддаються формалізації. Включає анкетування та аналіз отриманих відповідей. + +### Метод евристичного прогнозування +Передбачає детальне обґрунтування прогнозів, перевірку компетентності експертів і застосування спеціальних алгоритмів для обробки зібраної інформації. + +Ці методи допомагають отримати обґрунтовані оцінки, розробити ефективні рішення та передбачити можливі сценарії розвитку подій. + + ## Порівняльна характеристика існуючих засобів вирішення завдання From 42c5a540fc12fe2bb0b1307dc464b47318e514a7 Mon Sep 17 00:00:00 2001 From: sunnytea0 Date: Wed, 19 Feb 2025 21:40:12 +0200 Subject: [PATCH 019/143] Update state-of-the-art.md --- docs/requirements/state-of-the-art.md | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 0daa0f4a6..882b85d6a 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -10,55 +10,55 @@ _[Розділ містить визначення термінів та ско ## Підходи та способи вирішення завдання -### Метод незалежних характеристик +### 1. Метод незалежних характеристик Цей метод дозволяє отримати узагальнену оцінку конкретної проблеми або ситуації на основі інформації, зібраної від різних незалежних джерел. Він складається з таких етапів: - Аналіз та порівняння різних точок зору; - Обробка отриманих даних за допомогою математичних і статистичних методів; - Формулювання обґрунтованих висновків. -### Метод "Дельфі +### 2. Метод "Дельфі Передбачає анонімне висловлення думок експертами щодо заданої проблеми. Після кожного етапу учасники отримують узагальнений звіт, що дозволяє їм коригувати свої оцінки. Процес повторюється доти, доки думки не стабілізуються. -### Метод мозкового штурму +### 3. Метод мозкового штурму Група експертів генерує ідеї без будь-яких обмежень або критики. Це сприяє вільному обговоренню та пошуку нестандартних рішень. -### Метод зворотного мозкового штурму +### 4. Метод зворотного мозкового штурму Подібний до звичайного мозкового штурму, але акцент робиться на пошук недоліків і критичних аспектів запропонованих ідей. -### Метод "635" +### 5. Метод "635" Цей метод передбачає участь шести експертів, кожен з яких за п’ять хвилин генерує три ідеї. Процес триває протягом пів години, у результаті чого загалом формується 108 ідей. -### Метод прогнозних сценаріїв +### 6. Метод прогнозних сценаріїв Передбачає поетапне формування прогнозів шляхом узагальнення експертних думок, що проходить кілька ітерацій до моменту досягнення спільної оцінки. -### Метод поминальних груп +### 7. Метод поминальних груп Починається з індивідуальних інтерв’ю експертів, результати яких потім обговорюються іншими фахівцями для узгодження чи спростування отриманих оцінок. -### Метод написання сценарію +### 8. Метод написання сценарію Описує ймовірний розвиток подій на основі аналізу поточної ситуації та прогнозованих змін. Включає структурний аналіз, ідентифікацію ключових факторів та розробку практичних рекомендацій. -### Метод колективного блокнота +### 9. Метод колективного блокнота Поєднує незалежне формулювання ідей експертами з подальшим колективним аналізом і обговоренням. -### Метод KJ (діаграма спорідненості) +### 10. Метод KJ (діаграма спорідненості) Використовується для впорядкування великого обсягу інформації та ідей, систематизації поглядів і визначення зв’язків між ними. -### Експертне фокусування +### 11. Експертне фокусування Передбачає безпосереднє обговорення проблеми експертами з метою її глибокого аналізу та виявлення ключових взаємозв’язків. -### Метод неспеціаліста +### 12. Метод неспеціаліста Рішення шукають особи, які не є фахівцями у вузькій темі, проте мають досвід у суміжних галузях, що сприяє нестандартному підходу до вирішення проблеми. -### Метод комісії +### 13. Метод комісії Передбачає відкриту дискусію експертів з метою формування єдиної думки щодо проблеми. Учасники можуть ставити запитання, обговорювати аргументи та змінювати свою позицію залежно від отриманої інформації. -### Метод суду +### 14. Метод суду Створюються дві команди експертів: одна захищає певну позицію, інша – висловлює контраргументи. Третя група ("судді") приймає остаточне рішення після обговорення. -### Метод експертних оцінок +### 15. Метод експертних оцінок Залучає групу кваліфікованих експертів для оцінки складних проблем, що не піддаються формалізації. Включає анкетування та аналіз отриманих відповідей. -### Метод евристичного прогнозування +### 16. Метод евристичного прогнозування Передбачає детальне обґрунтування прогнозів, перевірку компетентності експертів і застосування спеціальних алгоритмів для обробки зібраної інформації. Ці методи допомагають отримати обґрунтовані оцінки, розробити ефективні рішення та передбачити можливі сценарії розвитку подій. From f4bbc8b89e765854f7d526e9965e997018b5ed17 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Wed, 19 Feb 2025 23:16:25 +0200 Subject: [PATCH 020/143] Update stakeholders-needs.md --- docs/requirements/stakeholders-needs.md | 72 +++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 5 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index 9e5416edc..ca10314c1 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -27,13 +27,75 @@ _[Розділ містить опис того, про що йдеться в Також тут описана структура документу.]_ ## Характеристика ділових процесів + +| ID | UserRegistration | +| :--- | :---: | +| **Назва:** | Реєстрація нового користувача | +| **Учасники:** | Користувач, система | + **Передумови:** | Користувач не має облікового запису в системі | + | **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Якщо все вірно, створюється обліковий запис
5. Користувач отримує повідомлення про успішну реєстрацію +--- + + +--- +| ID | UserLogin | +| :--- | :---: | +| **Назва:** | Вхід у систему | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач уже має обліковий запис | +| **Результат:** | Користувач успішно входить до системи | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису +--- + + +--- +| ID | SurveyCreate | +| :--- | :---: | +| **Назва:** | Створення нового опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | +| **Результат:** | Опитування успішно збережено в базі даних | +| **Виключні ситуації:** |Опитування не містить жодного питання – EmptySurveyException | +| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних +--- + +--- +| ID | SurveyResultsView | +| :--- | :---: | +| **Назва:** | Перегляд відповідей на опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | +| **Результат:** | Система генерує звіт із підсумковими даними | +| **Виключні ситуації:** |Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | +| **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування +--- + +--- +| ID | SurveyUpdate | +| :--- | :---: | +| **Назва:** | Оновлення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування створене, але ще не завершене | +| **Результат:** | Система зберігає оновлену версію опитування | +| **Виключні ситуації:** |Опитування вже активне або завершене — зміни неможливі | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | +--- + +--- +| ID | SurveyFeedback | +| :--- | :---: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** |Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | +--- -_[В цьому розділі визначаються зовнішні фактори, що впливають на бізнес (бізнес-актори), -та внутрішні фактори (робітники), дається загальна характеристика діяльності бізнес-акторів -та робітників, яка здійснюється за допомогою бізнесу._ -_Дається опис бізнес-сценаріїв взаємодії бізнес-акторів, робітників і, можливо, інформаційної системи за допомогою наступної -специфікації:_ **_ID:_** From e80b0173f6b788fae72ef4083a24c5f1b60354a0 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Wed, 19 Feb 2025 23:18:15 +0200 Subject: [PATCH 021/143] Update stakeholders-needs.md --- docs/requirements/stakeholders-needs.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index ca10314c1..f97c3fcf3 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -83,7 +83,6 @@ _[Розділ містить опис того, про що йдеться в | **Виключні ситуації:** |Опитування вже активне або завершене — зміни неможливі | | **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | --- - --- | ID | SurveyFeedback | | :--- | :---: | From bdd7f98967beb17edf5dbff7d2613b36302b7fdd Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 20 Feb 2025 00:33:56 +0200 Subject: [PATCH 022/143] #2 change state-of-the-art.md --- .idea/workspace.xml | 93 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .idea/workspace.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..1dc4bee86 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + { + "associatedIndex": 4 +} + + + + + + + + + + + + + + + 1739958068980 + + + + + + + + + \ No newline at end of file From a6abef17d8bc2c99f611a5a8e659791e5d28ff52 Mon Sep 17 00:00:00 2001 From: Vitvor Date: Thu, 20 Feb 2025 00:35:54 +0200 Subject: [PATCH 023/143] #6: change stakeholders-needs.md --- docs/requirements/stakeholders-needs.md | 47 ++++++++++++++++++------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index f97c3fcf3..ba43a32ca 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -114,28 +114,49 @@ _Кількість сценаріїв визначається у відпов рівня деталізації (зазвичай, 5-6 сценаріїв)._ ## Короткий огляд продукту +**Voice of Experts** - це платформа, що об'єднує експертів, готових поділитися своїм досвідом для покращення світу та для клієнтів, які шукають професійного аудиту з будь-яких питань у будь-якій сфері. +Система управління опитуваннями дозволяє адміністраторам створювати та поширювати опитування серед респондентів, а також аналізувати результати. -_[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів -системи]_ +### Основні категорії користувачів: -_[Нижче йде опис FURPS:]_ +- **Адміністратори** – створюють та керують опитуваннями, аналізують результати. +- **Респонденти** – проходять опитування без реєстрації або після входу в систему. +- **Аналізатори даних** – обробляють зібрані відповіді, експортують звіти. +- **Менеджери проектів** – координують реалізацію опитувань. +- **IT-персонал** – забезпечує технічну підтримку системи. +- **Замовники опитувань** – ініціюють опитування та використовують отримані результати. -## Функціональність +## FURPS -_[Functionality (функциональні вимоги)]_ +### 1. Функціональність (Functionality) -## Практичність +- Створення, редагування та видалення опитувань. +- Управління списком респондентів. +- Автоматизований збір відповідей. +- Генерація аналітичних звітів у різних форматах (PDF, Excel). +- Інтеграція з іншими сервісами для обробки статистичних даних. -_[Usability (вимоги до зручності роботи)]_ +### 2. Зручність використання (Usability) -## Надійність +- Інтуїтивно зрозумілий інтерфейс. +- Підтримка різних мов та локалізацій. +- Доступність на мобільних пристроях. +- Підказки для користувачів та автоматичне заповнення полів. -_[Reliability (вимоги до надійності)]_ +### 3. Надійність (Reliability) -## Продуктивність +- Система відновлюється після збоїв без втрати даних. +- Захист від втручання несанкціонованих користувачів. +- Висока доступність серверів. -_[Performance (вимоги до продуктивності)]_ +### 4. Продуктивність (Performance) -## Експлуатаційна придатність +- Висока швидкість обробки запитів. +- Оптимізація для роботи з великими обсягами даних. +- Можливість одночасної участі великої кількості респондентів. -_[Supportability (вимоги до підтримки)]_ +### 5. Експлуатаційна придатність (Supportability) + +- Документація для користувачів та технічного персоналу. +- Гнучкість у налаштуванні системи. +- Легкість у розгортанні оновлень. \ No newline at end of file From 0765b3df14352b706f1286bfb6515b6d2e7481dc Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 20 Feb 2025 09:30:02 +0200 Subject: [PATCH 024/143] #2 change state-of-the-art.md --- .idea/vcs.xml | 8 ++++++ .idea/workspace.xml | 24 +++++++++++++++-- docs/requirements/state-of-the-art.md | 37 ++++++++++++++++++++++++++- 3 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..4f9754dd0 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1dc4bee86..b146d87a9 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,7 +4,10 @@
+## Схема клієнта + +
+ +@startuml + + left to right direction + + actor Client + + ' Група взаємодії з обліковим записом + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "UserRegistration\nРеєстрація" as URegister + usecase "UserLogin\nВхід у систему" as ULogin + + UInteraction -u-> URegister + UInteraction -u-> ULogin + + ' Група взаємодії з результатами + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyResultsView\nПерегляд відповідей" as SView + usecase "UserCompletesSurvey\nЗаповнення опитування" as SComplete + + SResults -d-> SView + SResults -d-> SComplete + + ' Інші сценарії роботи з опитуваннями + usecase "SurveyCreate\nСтворення опитування" as SCreate + usecase "SurveyUpdate\nОновлення опитування" as SUpdate + usecase "SurveyDelete\nВидалення опитування" as SDelete + usecase "SurveyReminder\nНагадування" as SReminder + + usecase "UserEditResponses\nРедагування відповідей" as SEdit + usecase "SurveyResultsExport\nЕкспорт результатів" as SExport + usecase "SurveyFeedback\nНадання відгуку" as SFeedback + + Client -[hidden]-> UInteraction + + ' Зв'язки клієнта + Client -u-> UInteraction + Client -d-> SResults + Client -l-> SCreate + Client -d-> SReminder + Client -l-> SFeedback + + ' Допоміжні сценарії + SView ..> SExport + SComplete ..> SEdit + SCreate ..> SUpdate + SCreate ..> SDelete + +@enduml + +
+ ## Example В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. From c21525e8b47123a21ed9fa0afcf0b067abfeecd3 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri, 28 Feb 2025 13:55:33 +0200 Subject: [PATCH 044/143] Update README.md --- docs/use cases/README.md | 77 ++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 46 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 6f2b1039a..c124db098 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -162,43 +162,37 @@ _Модель прецедентів повинна містити загаль | **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | --- -
+ padding: 1em;" +> @startuml - title - UC_2. Спільний доступ до опитування - Діаграма комунікацій - end title + |Користувач| + start; + :змінює формат опитування на формат спільного доступу; + :копіює посилання; - actor "Клієнт" as Client #eeeeaa - participant "Система" as System - participant "Інші користувачі" as OtherUsers + |Система| + :генерує унікальне посилання; + :надає посилання користувачу; - Client -> System: Обирає опитування для спільного доступу - System -> System: Генерує унікальне посилання - System -> Client: Повертає посилання - Client -> OtherUsers: Ділиться посиланням + |Користувач| + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; - right footer - Спільний доступ до опитувань. Модель взаємодії. - НТУУ КПІ ім.І.Сікорського - Київ-2025 - end footer + |Інші Користувачі| + :отримують доступ до опитування через посилання; + + stop; @enduml -
-![Diagram](images/SurveyAccess.png) - - **SurveyFeedback** --- @@ -214,37 +208,28 @@ _Модель прецедентів повинна містити загаль
+ padding: 1em;" +> @startuml - - title - UC_1. Оцінка та відгуки користувачів - Діаграма комунікацій - end title - - actor "Користувач" as User #eeeeaa - participant "Система" as System - participant "Адміністратор" as Admin + |Користувач| + start; + :переглядає підсумки опитування; + :оцінює якість запитань і надає зворотний зв’язок ; - User -> System: Переглядає підсумки опитування - User -> System: Оцінює якість запитань та надає відгук - System -> System: Зберігає відгук - System -> Admin: Відображає відгук в адмін-панелі + |Система| + :система зберігає відгук; + :надає посилання користувачу; - right footer - Аналіз зворотного зв'язку. Модель взаємодії. - НТУУ КПІ ім.І.Сікорського - Київ-2025 - end footer + |Адміністратор| + :адміністратор може переглянути отримані відгуки в адмін-панелі ; + + stop; @enduml -
-![Diagram](images\SurveyFeedback.png) - From 8a373c7281bfdc3909a7f0fe42d49000b7fb559d Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 28 Feb 2025 14:07:17 +0200 Subject: [PATCH 045/143] Squashed commit of the following: commit 74fb2651d030836f70c3070858002bb4399a7f66 Author: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri Feb 28 14:02:12 2025 +0200 Update README.md --- docs/use cases/README.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index c124db098..a177354e8 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -164,7 +164,7 @@ _Модель прецедентів повинна містити загаль
@@ -173,19 +173,19 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :змінює формат опитування на формат спільного доступу; - :копіює посилання; + :змінює формат опитування на формат спільного доступу;#d1a6e2 + :копіює посилання;#d1a6e2 |Система| - :генерує унікальне посилання; - :надає посилання користувачу; + :генерує унікальне посилання;#d1a6e2 + :надає посилання користувачу;#d1a6e2 |Користувач| - :отримує доступ до опитування; - :ділиться посиланням з іншими користувачами; + :отримує доступ до опитування;#d1a6e2 + :ділиться посиланням з іншими користувачами;#d1a6e2 |Інші Користувачі| - :отримують доступ до опитування через посилання; + :отримують доступ до опитування через посилання;#d1a6e2 stop; @@ -208,7 +208,7 @@ _Модель прецедентів повинна містити загаль
@@ -217,19 +217,20 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :переглядає підсумки опитування; - :оцінює якість запитань і надає зворотний зв’язок ; + :переглядає підсумки опитування; #d1a6e2 + :оцінює якість запитань і надає зворотний зв’язок; #d1a6e2 |Система| - :система зберігає відгук; - :надає посилання користувачу; + :система зберігає відгук; #cfd7e6 + :надає посилання користувачу; #cfd7e6 |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі ; + :адміністратор може переглянути отримані відгуки в адмін-панелі; #f7d794 stop; @enduml +
From 654f1cca52cf6e70fb4558e38efcf3014af23606 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri, 28 Feb 2025 14:11:22 +0200 Subject: [PATCH 046/143] Update README.md --- docs/use cases/README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index a177354e8..186209e1c 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -173,19 +173,19 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :змінює формат опитування на формат спільного доступу;#d1a6e2 - :копіює посилання;#d1a6e2 + :змінює формат опитування на формат спільного доступу;#d1a6e2; + :копіює посилання;#d1a6e2; |Система| - :генерує унікальне посилання;#d1a6e2 - :надає посилання користувачу;#d1a6e2 + :генерує унікальне посилання;#d1a6e2; + :надає посилання користувачу;#d1a6e2; |Користувач| - :отримує доступ до опитування;#d1a6e2 - :ділиться посиланням з іншими користувачами;#d1a6e2 + :отримує доступ до опитування;#d1a6e2; + :ділиться посиланням з іншими користувачами;#d1a6e2; |Інші Користувачі| - :отримують доступ до опитування через посилання;#d1a6e2 + :отримують доступ до опитування через посилання;#d1a6e2; stop; @@ -217,15 +217,16 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :переглядає підсумки опитування; #d1a6e2 - :оцінює якість запитань і надає зворотний зв’язок; #d1a6e2 + :переглядає підсумки опитування; #d1a6e2; + :оцінює якість запитань і надає зворотний зв’язок; #d1a6e2; |Система| - :система зберігає відгук; #cfd7e6 - :надає посилання користувачу; #cfd7e6 + :система зберігає відгук; #d1a6e2; + + :надає посилання користувачу; #d1a6e2; |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі; #f7d794 + :адміністратор може переглянути отримані відгуки в адмін-панелі; #d1a6e2; stop; From 2bfd37af66db8ff162ee66ccf56f2de6b2be9998 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri, 28 Feb 2025 14:15:53 +0200 Subject: [PATCH 047/143] Update README.md --- docs/use cases/README.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 186209e1c..325644852 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -173,19 +173,18 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :змінює формат опитування на формат спільного доступу;#d1a6e2; - :копіює посилання;#d1a6e2; + :змінює формат опитування на формат спільного доступу;; + :копіює посилання; ; |Система| - :генерує унікальне посилання;#d1a6e2; - :надає посилання користувачу;#d1a6e2; - + :генерує унікальне посилання; ; + :надає посилання користувачу; ; |Користувач| - :отримує доступ до опитування;#d1a6e2; - :ділиться посиланням з іншими користувачами;#d1a6e2; + :отримує доступ до опитування; ; + :ділиться посиланням з іншими користувачами; ; |Інші Користувачі| - :отримують доступ до опитування через посилання;#d1a6e2; + :отримують доступ до опитування через посилання; ; stop; @@ -217,16 +216,16 @@ _Модель прецедентів повинна містити загаль |Користувач| start; - :переглядає підсумки опитування; #d1a6e2; - :оцінює якість запитань і надає зворотний зв’язок; #d1a6e2; + :переглядає підсумки опитування;; + :оцінює якість запитань і надає зворотний зв’язок; ; |Система| - :система зберігає відгук; #d1a6e2; + :система зберігає відгук; ; - :надає посилання користувачу; #d1a6e2; + :надає посилання користувачу; ; |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі; #d1a6e2; + :адміністратор може переглянути отримані відгуки в адмін-панелі;; stop; From 004d524eb7d5d9bb3c70d81473253d848bef6c33 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri, 28 Feb 2025 14:33:25 +0200 Subject: [PATCH 048/143] Update README.md --- docs/use cases/README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 325644852..694cdfd5c 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -171,20 +171,21 @@ _Модель прецедентів повинна містити загаль @startuml +skinparam ActivityBackgroundColor #d1a6e2 + |Користувач| start; - :змінює формат опитування на формат спільного доступу;; - :копіює посилання; ; - + :змінює формат опитування на формат спільного доступу; + :копіює посилання; |Система| - :генерує унікальне посилання; ; - :надає посилання користувачу; ; + :генерує унікальне посилання; + :надає посилання користувачу; |Користувач| - :отримує доступ до опитування; ; - :ділиться посиланням з іншими користувачами; ; + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; |Інші Користувачі| - :отримують доступ до опитування через посилання; ; + :отримують доступ до опитування через посилання; stop; @@ -214,18 +215,20 @@ _Модель прецедентів повинна містити загаль @startuml +skinparam ActivityBackgroundColor #d1a6e2 + |Користувач| start; - :переглядає підсумки опитування;; - :оцінює якість запитань і надає зворотний зв’язок; ; + :переглядає підсумки опитування; + :оцінює якість запитань і надає зворотний зв’язок; |Система| - :система зберігає відгук; ; + :система зберігає відгук; - :надає посилання користувачу; ; + :надає посилання користувачу; |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі;; + :адміністратор може переглянути отримані відгуки в адмін-панелі; stop; From 111842b890db43c33f96bdd8a4867c22e386b9c2 Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 28 Feb 2025 14:51:00 +0200 Subject: [PATCH 049/143] Update README.md #3 change expert --- docs/use cases/README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index a3a1164b2..cf31642e8 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -143,3 +143,31 @@ _Модель прецедентів повинна містити загаль **Діаграма прецедентів**
+ +
+ +
+ + + +@startuml + + actor "Експерт" as Expert #f0c5c2 + + usecase "SurveyInteraction\nВзаємодія з опитуванням" as SurveyInteraction + usecase "UserCompletesSurvey\nЗаповнення опитування" as TakeSurvey + usecase "UserEditResponses\nРедагування відповідей" as ChangeAnswers + + Expert --> SurveyInteraction + TakeSurvey .u.> SurveyInteraction : extends + ChangeAnswers .u.> SurveyInteraction : extends + +@enduml + +**Діаграма прецедентів експерта** + +
\ No newline at end of file From ab12799c877f8c7b39bcc78dade86f59caeee4d4 Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 28 Feb 2025 14:55:26 +0200 Subject: [PATCH 050/143] Update README.md #3 change expert --- docs/use cases/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index cf31642e8..296e0423b 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -144,8 +144,8 @@ _Модель прецедентів повинна містити загаль -
+
- @startuml actor "Експерт" as Expert #f0c5c2 @@ -170,4 +169,4 @@ _Модель прецедентів повинна містити загаль **Діаграма прецедентів експерта** -
\ No newline at end of file + From 907565c9694f0c19b8ad0c0f590597da4765bd35 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Fri, 28 Feb 2025 16:59:36 +0200 Subject: [PATCH 051/143] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Парт марусі, поробиці надіслала в тг --- docs/use cases/README.md | 96 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 694cdfd5c..57c28457f 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -149,7 +149,99 @@ _Модель прецедентів повинна містити загаль + + # Сценарії використання + +--- +| ID | SurveyResultsExport | +| :--- | :---: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | +| **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | +--- + +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :обирає опитування; + :вибирає формат експорту та надсилає запит; + note right #D10000 + Possible error: + - UnsupportedFormatException + end note + + + |Система| + :система генерує файл; + + |Користувач| + :користувач отримує файл у потрібному форматі; + + + stop; + +@enduml + +
+ + + +--- +| ID | SurveyUpdate | +| :--- | :---: | +| **Назва:** | Оновлення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування створене, але ще не завершене | +| **Результат:** | Система зберігає оновлену версію опитування | +| **Виключні ситуації:** |Опитування вже активне або завершене — зміни неможливі | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | +--- +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач відкриває потрібне опитування для редагування; + :вносить свої зміни та підтверджує нові зміни; + note right #D10000 + Possible error: + - Опитування вже активне або завершене — зміни неможливі + end note + + |Система| + :система зберігає зміни й оновлює поточну версію опитування; + + + stop; + +@enduml + +
+ + + **SurveyShareAccess** --- | ID | SurveyShareAccess | @@ -224,6 +316,10 @@ skinparam ActivityBackgroundColor #d1a6e2 |Система| :система зберігає відгук; + note right #D10000 + Possible error: + - Відгук не відправлено через технічну помилку або недоступність сервера + end note :надає посилання користувачу; From 87a702c2d0e25bbd8a3b1973b7901f9e4de75519 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 28 Feb 2025 18:22:36 +0200 Subject: [PATCH 052/143] #28 , #29: update use-cases.md --- docs/requirements/stakeholders-needs.md | 208 ++++++------ docs/use cases/README.md | 401 +++++++++++++----------- 2 files changed, 327 insertions(+), 282 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index 2c0fedf6f..9e6a1cf91 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -27,137 +27,159 @@ _[Розділ містить опис того, про що йдеться в Також тут описана структура документу.]_ ## Характеристика ділових процесів - -| ID | UserRegistration | -| :--- | :---: | -| **Назва:** | Реєстрація нового користувача | -| **Учасники:** | Користувач, система | - **Передумови:** | Користувач не має облікового запису в системі | - | **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | -| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | -| **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Якщо все вірно, створюється обліковий запис
5. Користувач отримує повідомлення про успішну реєстрацію ---- +| ID | UserRegistration | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Реєстрація нового користувача | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач не має облікового запису в системі | +| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Якщо все вірно, створюється обліковий запис
5. Користувач отримує повідомлення про успішну реєстрацію | --- -| ID | UserLogin | -| :--- | :---: | -| **Назва:** | Вхід у систему | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач уже має обліковий запис | -| **Результат:** | Користувач успішно входить до системи | -| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException | -| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису + --- +| ID | UserLogin | +| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Вхід у систему | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач уже має обліковий запис | +| **Результат:** | Користувач успішно входить до системи | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису | --- -| ID | SurveyCreate | -| :--- | :---: | -| **Назва:** | Створення нового опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | -| **Результат:** | Опитування успішно збережено в базі даних | -| **Виключні ситуації:** |Опитування не містить жодного питання – EmptySurveyException | -| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних + --- +| ID | SurveyCreate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Створення нового опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | +| **Результат:** | Опитування успішно збережено в базі даних | +| **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | +| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних | + --- -| ID | UserCompletesSurvey | -| :--- | :---: | -| **Назва:** | Заповнення опитування| -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач має доступ до опитування | -| **Результат:** | Відповіді користувача збережені | -| **Виключні ситуації:** |Пропущені обов’язкові питання - IncompleteSurveyException | -| **Основний сценарій:** | 1. Користувач відкриває опитування
2. Відповідає на всі питання і надає зворотний зв’язок
3. Завершує проходження
4. Система перевіряє коректність заповнення (може виникнути IncompleteSurveyException)
5. Відповіді зберігаються у базі даних | + --- +| ID | UserCompletesSurvey | +| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Заповнення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має доступ до опитування | +| **Результат:** | Відповіді користувача збережені | +| **Виключні ситуації:** | Пропущені обов’язкові питання - IncompleteSurveyException | +| **Основний сценарій:** | 1. Користувач відкриває опитування
2. Відповідає на всі питання і надає зворотний зв’язок
3. Завершує проходження
4. Система перевіряє коректність заповнення (може виникнути IncompleteSurveyException)
5. Відповіді зберігаються у базі даних | + --- -| ID | UserEditResponses | -| :--- | :---: | -| **Назва:** | Редагування відповідей| -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач раніше пройшов опитування | -| **Результат:** | Відредаговані відповіді збережені | -| **Виключні ситуації:** |Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException| -| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | + +--- + +| ID | UserEditResponses | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Редагування відповідей | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | + --- --- -| ID | SurveyResultsView | -| :--- | :---: | -| **Назва:** | Перегляд відповідей на опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | -| **Результат:** | Система генерує звіт із підсумковими даними | -| **Виключні ситуації:** |Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | + +| ID | SurveyResultsView | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Перегляд відповідей на опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | +| **Результат:** | Система генерує звіт із підсумковими даними | +| **Виключні ситуації:** | Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | | **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування | + --- --- -| ID | SurveyResultsExport | -| :--- | :---: | -| **Назва:** | Експорт результатів опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування завершене | -| **Результат:** | Користувач отримує результати у вибраному форматі | -| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | + +| ID | SurveyResultsExport | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | | **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | + --- --- -| ID | SurveyUpdate | -| :--- | :---: | -| **Назва:** | Оновлення опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування створене, але ще не завершене | -| **Результат:** | Система зберігає оновлену версію опитування | -| **Виключні ситуації:** |Опитування вже активне або завершене — зміни неможливі | + +| ID | SurveyUpdate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Оновлення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування створене, але ще не завершене | +| **Результат:** | Система зберігає оновлену версію опитування | +| **Виключні ситуації:** | Опитування вже активне або завершене — зміни неможливі | | **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | + --- + --- -| ID | SurveyFeedback | -| :--- | :---: | -| **Назва:** | Надання відгуку про опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | -| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | -| **Виключні ситуації:** |Відгук не відправлено через технічну помилку або недоступність сервера | -| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | + +| ID | SurveyFeedback | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | + --- --- -| ID | SurveyShareAccess | -| :--- | :---: | -| **Назва:** | Надання доступу до опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач є автором опитування| -| **Результат:** | Інші користувачі отримують доступ | -| **Виключні ситуації:** |Немає | + +| ID | SurveyShareAccess | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання доступу до опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач є автором опитування | +| **Результат:** | Інші користувачі отримують доступ | +| **Виключні ситуації:** | Немає | | **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | + --- --- -| ID | SurveyReminder | -| :--- | :---: | -| **Назва:** | Нагадування про проходження опитування| -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач має активне опитування, яке ще не завершив | -| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | -| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | + +| ID | SurveyReminder | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Нагадування про проходження опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має активне опитування, яке ще не завершив | +| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | +| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | | **Основний сценарій:** | 1. Система перевіряє список активних опитувань користувача
2. Якщо є незавершені опитування, надсилається нагадування
3. Користувач отримує повідомлення про необхідність завершити опитування | + --- --- -| ID | SurveyDelete | -| :--- | :---: | -| **Назва:** | Видалення опитування| -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач створив опитування | -| **Результат:** | Опитування видалене із системи| -| **Виключні ситуації:** |Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | + +| ID | SurveyDelete | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Видалення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач створив опитування | +| **Результат:** | Опитування видалене із системи | +| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | + --- ## Короткий огляд продукту diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 57c28457f..267eb36d4 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -1,5 +1,217 @@ # Модель прецедентів +## Загальна схема + +
+ +@startuml + + actor Expert + actor Client + + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "SurveyInteraction\nВзаємодія з опитуванням" as EInteraction + usecase "SurveyCreate\nСтворити\nопитування" as SCreate + usecase "SurveyDelete\nВидалити\nопитування" as SDelete + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyShareAccess\nПоділитись\nопитуванням" as SShare + usecase "SurveyUpdate\nОновлення опитування" as SUpdate + + Expert -d-|> Client + Expert -> EInteraction + Client -u-> SResults + Client -r-> SCreate + Client -d-> UInteraction + Client -d-> SDelete + Client -d-> SUpdate + Client -l-> SShare + +@enduml + +
+ +## Сценарії використання + +### SurveyResultsExport + +| ID | SurveyResultsExport | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | +| **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :обирає опитування; + :вибирає формат експорту та надсилає запит; + note right #D10000 + Possible error: + - UnsupportedFormatException + end note + + + |Система| + :система генерує файл; + + |Користувач| + :користувач отримує файл у потрібному форматі; + + + stop; + +@enduml + +
+ +### SurveyUpdate + +| ID | SurveyUpdate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Оновлення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування створене, але ще не завершене | +| **Результат:** | Система зберігає оновлену версію опитування | +| **Виключні ситуації:** | Опитування вже активне або завершене — зміни неможливі | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | + +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач відкриває потрібне опитування для редагування; + :вносить свої зміни та підтверджує нові зміни; + note right #D10000 + Possible error: + - Опитування вже активне або завершене — зміни неможливі + end note + + |Система| + :система зберігає зміни й оновлює поточну версію опитування; + + + stop; + +@enduml + +
+ +### SurveyShareAccess + +| ID | SurveyShareAccess | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання доступу до опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач є автором опитування | +| **Результат:** | Інші користувачі отримують доступ | +| **Виключні ситуації:** | Немає | +| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :змінює формат опитування на формат спільного доступу; + :копіює посилання; + |Система| + :генерує унікальне посилання; + :надає посилання користувачу; + |Користувач| + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; + + |Інші Користувачі| + :отримують доступ до опитування через посилання; + + stop; + +@enduml + +
+ +### SurveyFeedback + +| ID | SurveyFeedback | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :переглядає підсумки опитування; + :оцінює якість запитань і надає зворотний зв’язок; + + |Система| + :система зберігає відгук; + note right #D10000 + Possible error: + - Відгук не відправлено через технічну помилку або недоступність сервера + end note + + :надає посилання користувачу; + + |Адміністратор| + :адміністратор може переглянути отримані відгуки в адмін-панелі; + + stop; + +@enduml + +
+ +## Example + В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. _Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ @@ -10,10 +222,6 @@ _Модель прецедентів повинна містити загаль ```html - - - -
- -@startuml - -skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :обирає опитування; - :вибирає формат експорту та надсилає запит; - note right #D10000 - Possible error: - - UnsupportedFormatException - end note - - - |Система| - :система генерує файл; - - |Користувач| - :користувач отримує файл у потрібному форматі; - - - stop; - -@enduml - -
- - - ---- -| ID | SurveyUpdate | -| :--- | :---: | -| **Назва:** | Оновлення опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування створене, але ще не завершене | -| **Результат:** | Система зберігає оновлену версію опитування | -| **Виключні ситуації:** |Опитування вже активне або завершене — зміни неможливі | -| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | ---- -
- -@startuml - -skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :користувач відкриває потрібне опитування для редагування; - :вносить свої зміни та підтверджує нові зміни; - note right #D10000 - Possible error: - - Опитування вже активне або завершене — зміни неможливі - end note - - |Система| - :система зберігає зміни й оновлює поточну версію опитування; - - - stop; - -@enduml - -
- - - -**SurveyShareAccess** ---- -| ID | SurveyShareAccess | -| :--- | :---: | -| **Назва:** | Надання доступу до опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач є автором опитування| -| **Результат:** | Інші користувачі отримують доступ | -| **Виключні ситуації:** |Немає | -| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | ---- - -
- -@startuml - -skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :змінює формат опитування на формат спільного доступу; - :копіює посилання; - |Система| - :генерує унікальне посилання; - :надає посилання користувачу; - |Користувач| - :отримує доступ до опитування; - :ділиться посиланням з іншими користувачами; - - |Інші Користувачі| - :отримують доступ до опитування через посилання; - - stop; - -@enduml - -
- -**SurveyFeedback** - ---- -| ID | SurveyFeedback | -| :--- | :---: | -| **Назва:** | Надання відгуку про опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | -| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | -| **Виключні ситуації:** |Відгук не відправлено через технічну помилку або недоступність сервера | -| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | ---- - -
- -@startuml - -skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :переглядає підсумки опитування; - :оцінює якість запитань і надає зворотний зв’язок; - - |Система| - :система зберігає відгук; - note right #D10000 - Possible error: - - Відгук не відправлено через технічну помилку або недоступність сервера - end note - - :надає посилання користувачу; - - |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі; - - stop; - -@enduml - - -
- From 91ff87b72dce9d23e171a9aeb3127d69385e49c7 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 28 Feb 2025 18:27:17 +0200 Subject: [PATCH 053/143] #28 , #29: remove images --- docs/use cases/images/SurveyAccess.png | Bin 25010 -> 0 bytes docs/use cases/images/SurveyFeedback.png | Bin 25008 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/use cases/images/SurveyAccess.png delete mode 100644 docs/use cases/images/SurveyFeedback.png diff --git a/docs/use cases/images/SurveyAccess.png b/docs/use cases/images/SurveyAccess.png deleted file mode 100644 index 81c9a52d933f181fc00bd25537c2d1e10b26c206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25010 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 yuWpjv{cN?YD|?fxN*HZi|25eELFa8hVix3t7 diff --git a/docs/use cases/images/SurveyFeedback.png b/docs/use cases/images/SurveyFeedback.png deleted file mode 100644 index f7df2ed6f55ec55d41c6f74e55e6227b51cdc411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25008 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 From 2f73dde820eae198ef5c0a43fefb313b23d1961b Mon Sep 17 00:00:00 2001 From: Vitvor Date: Fri, 28 Feb 2025 21:54:42 +0200 Subject: [PATCH 054/143] #23: edit README.md Fixed some issues with schema. --- docs/use cases/README.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index fcd9f7773..6bbf17105 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -55,26 +55,23 @@ usecase "UserRegistration\nРеєстрація" as URegister usecase "UserLogin\nВхід у систему" as ULogin - UInteraction -u-> URegister - UInteraction -u-> ULogin + UInteraction ..> URegister + UInteraction ..> ULogin ' Група взаємодії з результатами usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults usecase "SurveyResultsView\nПерегляд відповідей" as SView - usecase "UserCompletesSurvey\nЗаповнення опитування" as SComplete - SResults -d-> SView - SResults -d-> SComplete + SResults ..> SView ' Інші сценарії роботи з опитуваннями usecase "SurveyCreate\nСтворення опитування" as SCreate usecase "SurveyUpdate\nОновлення опитування" as SUpdate usecase "SurveyDelete\nВидалення опитування" as SDelete usecase "SurveyReminder\nНагадування" as SReminder - - usecase "UserEditResponses\nРедагування відповідей" as SEdit usecase "SurveyResultsExport\nЕкспорт результатів" as SExport usecase "SurveyFeedback\nНадання відгуку" as SFeedback + usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare Client -[hidden]-> UInteraction @@ -82,14 +79,12 @@ Client -u-> UInteraction Client -d-> SResults Client -l-> SCreate + Client -r-> SUpdate + Client -r-> SDelete + Client -r-> SExport Client -d-> SReminder Client -l-> SFeedback - - ' Допоміжні сценарії - SView ..> SExport - SComplete ..> SEdit - SCreate ..> SUpdate - SCreate ..> SDelete + Client -r-> SShare @enduml From 00ffcc1a9258fc4e73bd457d6002fb072bf18eec Mon Sep 17 00:00:00 2001 From: Vitvor Date: Sun, 2 Mar 2025 20:31:04 +0200 Subject: [PATCH 055/143] #23: edit README.md Fixed merge conflict. --- docs/use cases/README.md | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 267eb36d4..70d51bc69 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -35,6 +35,61 @@ +## Схема клієнта + +
+ +@startuml + + left to right direction + + actor Client + + ' Група взаємодії з обліковим записом + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "UserRegistration\nРеєстрація" as URegister + usecase "UserLogin\nВхід у систему" as ULogin + + UInteraction ..> URegister + UInteraction ..> ULogin + + ' Група взаємодії з результатами + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyResultsView\nПерегляд відповідей" as SView + + SResults ..> SView + + ' Інші сценарії роботи з опитуваннями + usecase "SurveyCreate\nСтворення опитування" as SCreate + usecase "SurveyUpdate\nОновлення опитування" as SUpdate + usecase "SurveyDelete\nВидалення опитування" as SDelete + usecase "SurveyReminder\nНагадування" as SReminder + usecase "SurveyResultsExport\nЕкспорт результатів" as SExport + usecase "SurveyFeedback\nНадання відгуку" as SFeedback + usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare + + Client -[hidden]-> UInteraction + + ' Зв'язки клієнта + Client -u-> UInteraction + Client -d-> SResults + Client -l-> SCreate + Client -r-> SUpdate + Client -r-> SDelete + Client -r-> SExport + Client -d-> SReminder + Client -l-> SFeedback + Client -r-> SShare + +@enduml + +
+ ## Сценарії використання ### SurveyResultsExport From 76640ff2b4c8cfbf0e89be72efc6c7df01389e05 Mon Sep 17 00:00:00 2001 From: Vitvor Date: Sun, 2 Mar 2025 21:24:33 +0200 Subject: [PATCH 056/143] #23: edit README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moved client to the center. Deleted SurveyFeedback. Added dashed arrow SurveyManageResults - SurveyResultsExport, removed arrow client - SurveyResultsExport. Now schema looks like "Очікуваний вигляд схеми" --- docs/use cases/README.md | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 70d51bc69..80f4d8102 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -45,47 +45,31 @@ > @startuml - - left to right direction - actor Client - - ' Група взаємодії з обліковим записом usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction usecase "UserRegistration\nРеєстрація" as URegister usecase "UserLogin\nВхід у систему" as ULogin - - UInteraction ..> URegister - UInteraction ..> ULogin - - ' Група взаємодії з результатами usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults usecase "SurveyResultsView\nПерегляд відповідей" as SView - - SResults ..> SView - - ' Інші сценарії роботи з опитуваннями + usecase "SurveyResultsExport\nЕкспорт результатів" as SExport usecase "SurveyCreate\nСтворення опитування" as SCreate usecase "SurveyUpdate\nОновлення опитування" as SUpdate usecase "SurveyDelete\nВидалення опитування" as SDelete usecase "SurveyReminder\nНагадування" as SReminder - usecase "SurveyResultsExport\nЕкспорт результатів" as SExport - usecase "SurveyFeedback\nНадання відгуку" as SFeedback usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare - + SResults ..> SView + SResults ..> SExport + UInteraction ..> URegister + UInteraction ..> ULogin Client -[hidden]-> UInteraction - - ' Зв'язки клієнта + Client -[hidden]-> SResults Client -u-> UInteraction Client -d-> SResults Client -l-> SCreate - Client -r-> SUpdate - Client -r-> SDelete - Client -r-> SExport + Client -u-> SUpdate + Client -u-> SDelete Client -d-> SReminder - Client -l-> SFeedback Client -r-> SShare - @enduml From c18e5ef2dfd94dd91be66a785eb6ef395bbddcf9 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Tue, 4 Mar 2025 17:29:56 +0200 Subject: [PATCH 057/143] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit За сергио робота --- docs/use cases/README.md | 453 +++++++++++++++++++++------------------ 1 file changed, 242 insertions(+), 211 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 80f4d8102..116f2cdeb 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -1,6 +1,18 @@ # Модель прецедентів -## Загальна схема +В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. + +_Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ + +Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). + +В markdown-файлі використовується опис діаграми + +```html + + + +
Client - Expert -> EInteraction - Client -u-> SResults - Client -r-> SCreate - Client -d-> UInteraction - Client -d-> SDelete - Client -d-> SUpdate - Client -l-> SShare + right header + Package: UCD_3.0 + end header + + title + UC_8. Редагувати конфігурацію порталу + Діаграма прецедентів + end title + + + actor "Користувач" as User #eeeeaa + + package UCD_1{ + usecase "UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa + } + + usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 + usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 + usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 + usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 + + package UCD_1 { + usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa + } + + usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 + usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 + usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 + + + + User -> UC_1 + UC_1.1 .u.> UC_1 :extends + UC_1.2 .u.> UC_1 :extends + UC_4 .d.> UC_1.2 :extends + UC_1.2 .> UC_1.2 :extends + UC_1.2.1 .u.> UC_1.2 :extends + UC_1.2.2 .u.> UC_1.2 :extends + UC_1 ..> UC_1.2.2 :extends + + + UC_1.1.1 -u-|> UC_1.1 + UC_1.1.2 -u-|> UC_1.1 + UC_1.1.3 -u-|> UC_1.1 + + right footer + Аналітичний портал. Модель прецедентів. + НТУУ КПІ ім.І.Сікорського + Киів-2020 + end footer @enduml +**Діаграма прецедентів** +
+``` -## Схема клієнта +яка буде відображена наступним чином
SView - SResults ..> SExport - UInteraction ..> URegister - UInteraction ..> ULogin - Client -[hidden]-> UInteraction - Client -[hidden]-> SResults - Client -u-> UInteraction - Client -d-> SResults - Client -l-> SCreate - Client -u-> SUpdate - Client -u-> SDelete - Client -d-> SReminder - Client -r-> SShare + + right header + Package: UCD_3.0 + end header + + title + UC_8. Редагувати конфігурацію порталу + Діаграма прецедентів + end title + + + actor "Користувач" as User #eeeeaa + + package UCD_1{ + usecase "UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa + } + + usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 + usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 + usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 + usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 + + package UCD_1 { + usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa + } + + usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 + usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 + usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 + + + + User -> UC_1 + UC_1.1 .u.> UC_1 :extends + UC_1.2 .u.> UC_1 :extends + UC_4 .d.> UC_1.2 :extends + UC_1.2 .> UC_1.2 :extends + UC_1.2.1 .u.> UC_1.2 :extends + UC_1.2.2 .u.> UC_1.2 :extends + UC_1 ..> UC_1.2.2 :extends + + + UC_1.1.1 -u-|> UC_1.1 + UC_1.1.2 -u-|> UC_1.1 + UC_1.1.3 -u-|> UC_1.1 + + right footer + Аналітичний портал. Модель прецедентів. + НТУУ КПІ ім.І.Сікорського + Киів-2020 + end footer + @enduml +**Діаграма прецедентів** +
-## Сценарії використання -### SurveyResultsExport -| ID | SurveyResultsExport | -| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Експорт результатів опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування завершене | -| **Результат:** | Користувач отримує результати у вибраному форматі | -| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | +# Сценарії використання + +--- +| ID | SurveyResultsExport | +| :--- | :---: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | | **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | +---
Possible error: @@ -153,25 +231,28 @@ skinparam ActivityBackgroundColor #d1a6e2 end note |Система| - :система зберігає зміни й оновлює поточну версію опитування; - + :система зберігає зміни й оновлює поточну версію опитування; + stop; @enduml
-### SurveyShareAccess -| ID | SurveyShareAccess | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Надання доступу до опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач є автором опитування | -| **Результат:** | Інші користувачі отримують доступ | -| **Виключні ситуації:** | Немає | + +**SurveyShareAccess** +--- +| ID | SurveyShareAccess | +| :--- | :---: | +| **Назва:** | Надання доступу до опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач є автором опитування| +| **Результат:** | Інші користувачі отримують доступ | +| **Виключні ситуації:** |Немає | | **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | +---
Possible error: - - Відгук не відправлено через технічну помилку або недоступність сервера + - Відгук не відправлено через технічну помилку або недоступність сервера end note - :надає посилання користувачу; + :надає посилання користувачу; |Адміністратор| :адміністратор може переглянути отримані відгуки в адмін-панелі; - + stop; @enduml -
-## Example - -В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. - -_Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ - -Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). + -В markdown-файлі використовується опис діаграми +**UserEditResponses** -```html +--- +| ID | UserEditResponses | +| :--- | :---: | +| **Назва:** | Редагування відповідей | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | +---
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa - } - - usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 - usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - - package UCD_1 { - usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa - } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 - usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - - User -> UC_1 - UC_1.1 .u.> UC_1 :extends - UC_1.2 .u.> UC_1 :extends - UC_4 .d.> UC_1.2 :extends - UC_1.2 .> UC_1.2 :extends - UC_1.2.1 .u.> UC_1.2 :extends - UC_1.2.2 .u.> UC_1.2 :extends - UC_1 ..> UC_1.2.2 :extends - +skinparam ActivityBackgroundColor #d1a6e2 - UC_1.1.1 -u-|> UC_1.1 - UC_1.1.2 -u-|> UC_1.1 - UC_1.1.3 -u-|> UC_1.1 + |Користувач| + start; + :обирає раніше пройдене опитування; + :вносить зміни; - right footer - Аналітичний портал. Модель прецедентів. - НТУУ КПІ ім.І.Сікорського - Киів-2020 - end footer + |Система| + :система перевіряє коректність даних; + note right #D10000 + Possible error: + - InvalidResponseException + end note + :система обробляє зміни; + note right #D10000 + Possible error: + - SurveyClosedException + end note + :відредаговані відповіді оновлюються у базі; + + stop; @enduml -**Діаграма прецедентів**
-``` -яка буде відображена наступним чином +**SurveyResultsView ** + +--- +| ID | SurveyResultsView | +| :--- | :---: | +| **Назва:** | Перегляд відповідей на опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | +| **Результат:**|Система генерує звіт із підсумковими даними| +| **Виключні ситуації:** |Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | +| **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування | + +---
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa - } - - usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 - usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - - package UCD_1 { - usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa - } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 - usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - - User -> UC_1 - UC_1.1 .u.> UC_1 :extends - UC_1.2 .u.> UC_1 :extends - UC_4 .d.> UC_1.2 :extends - UC_1.2 .> UC_1.2 :extends - UC_1.2.1 .u.> UC_1.2 :extends - UC_1.2.2 .u.> UC_1.2 :extends - UC_1 ..> UC_1.2.2 :extends +skinparam ActivityBackgroundColor #d1a6e2 + |Система| + start; + :система обробляє всі отримані дані; + :формується звіт із результатами; - UC_1.1.1 -u-|> UC_1.1 - UC_1.1.2 -u-|> UC_1.1 - UC_1.1.3 -u-|> UC_1.1 + |Користувач| + :користувач переглядає звіт або завантажує його у зручному форматі; + :вносить зміни; - right footer - Аналітичний портал. Модель прецедентів. - НТУУ КПІ ім.І.Сікорського - Киів-2020 - end footer + |Адміністратор| + :адміністратор має доступ до звіту в панелі керування; + + stop; @enduml -**Діаграма прецедентів**
+ From 934f1de71fff1e880f078c87844504c7c9ea9f5d Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Tue, 4 Mar 2025 17:53:15 +0200 Subject: [PATCH 058/143] Update README.md --- docs/use cases/README.md | 43 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 267eb36d4..770459e14 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -210,6 +210,49 @@ skinparam ActivityBackgroundColor #d1a6e2 +### UserEditResponses + +| ID | UserEditResponses | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Редагування відповідей| +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | + + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач обирає опитування для редагування; + :копіює посилання; + |Система| + :генерує унікальне посилання; + :надає посилання користувачу; + |Користувач| + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; + + |Інші Користувачі| + :отримують доступ до опитування через посилання; + + stop; + +@enduml + +
+ ## Example В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. From abfa10622f6303afb53563f99d667bf9c0e286ec Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Tue, 4 Mar 2025 18:01:19 +0200 Subject: [PATCH 059/143] Update README.md --- docs/use cases/README.md | 62 +++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 770459e14..dad0cc92f 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -236,16 +236,64 @@ skinparam ActivityBackgroundColor #d1a6e2 |Користувач| start; :користувач обирає опитування для редагування; - :копіює посилання; + :вносить зміни у відповіді; + + |Система| - :генерує унікальне посилання; - :надає посилання користувачу; + :система перевіряє коректність даних; + note right #D10000 + Possible error: + - InvalidResponseException + end note + :система обробляє зміни; + + note right #D10000 + Possible error: + - SurveyClosedException + end note + + :відредаговані відповіді оновлюються у базі + + stop; + +@enduml + + + +### SurveyResultsView + +| ID | SurveyResultsView | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Перегляд відповідей на опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** |Опитування завершене, отримано достатню кількість відповідей | +| **Результат:** | Система генерує звіт із підсумковими даними | +| **Виключні ситуації:** |Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | +| **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування | + + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Система| + start; + :система обробляє всі отримані дані ; + :формується звіт із результатами; + |Користувач| - :отримує доступ до опитування; - :ділиться посиланням з іншими користувачами; + :переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail); + :вносить зміни у відповіді; - |Інші Користувачі| - :отримують доступ до опитування через посилання; + |Адміністратор| + :адміністратор має доступ до звіту в панелі керування; stop; From 5f15f1764038c333c9c7b3fd2c4269cea86ba046 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Tue, 4 Mar 2025 18:02:56 +0200 Subject: [PATCH 060/143] Update README.md --- docs/use cases/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index dad0cc92f..1bb935b92 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -246,13 +246,11 @@ skinparam ActivityBackgroundColor #d1a6e2 - InvalidResponseException end note :система обробляє зміни; - note right #D10000 Possible error: - SurveyClosedException end note - - :відредаговані відповіді оновлюються у базі + :відредаговані відповіді оновлюються у базі; stop; From 93ba402f28a079a69a000589ea455da371acef68 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:13:52 +0200 Subject: [PATCH 061/143] #24: polish expert schema --- docs/use cases/README.md | 53 ++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 296e0423b..d141fe73b 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -1,5 +1,31 @@ # Модель прецедентів +## Схема експерта + +
+ +@startuml + + actor "Експерт" as Expert #f0c5c2 + + usecase "SurveyInteraction\nВзаємодія з опитуванням" as SurveyInteraction + usecase "UserCompletesSurvey\nЗаповнення опитування" as TakeSurvey + usecase "UserEditResponses\nРедагування відповідей" as ChangeAnswers + usecase "SurveyFeedback\nСтворення нового опитування" as SurveyFeedback + + Expert --> SurveyInteraction + SurveyInteraction .d.> TakeSurvey : extends + SurveyInteraction .d.> ChangeAnswers : extends + SurveyInteraction .l.> SurveyFeedback : extends + +@enduml + +
+ В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. _Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ @@ -143,30 +169,3 @@ _Модель прецедентів повинна містити загаль **Діаграма прецедентів**
- - -
-
- - -@startuml - - actor "Експерт" as Expert #f0c5c2 - - usecase "SurveyInteraction\nВзаємодія з опитуванням" as SurveyInteraction - usecase "UserCompletesSurvey\nЗаповнення опитування" as TakeSurvey - usecase "UserEditResponses\nРедагування відповідей" as ChangeAnswers - - Expert --> SurveyInteraction - TakeSurvey .u.> SurveyInteraction : extends - ChangeAnswers .u.> SurveyInteraction : extends - -@enduml - -**Діаграма прецедентів експерта** - -
From 65eaf309ec12f7cd96bba718c96217e6e0c004b5 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:16:08 +0200 Subject: [PATCH 062/143] [#24](https://github.com/edu-db/edu_db_labs/issues/24): polish expert schema --- docs/use cases/README.md | 338 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 338 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index d141fe73b..657428d54 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -1,5 +1,79 @@ # Модель прецедентів +## Загальна схема + +
+ +@startuml + + actor Expert + actor Client + + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "SurveyInteraction\nВзаємодія з опитуванням" as EInteraction + usecase "SurveyCreate\nСтворити\nопитування" as SCreate + usecase "SurveyDelete\nВидалити\nопитування" as SDelete + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyShareAccess\nПоділитись\nопитуванням" as SShare + usecase "SurveyUpdate\nОновлення опитування" as SUpdate + + Expert -d-|> Client + Expert -> EInteraction + Client -u-> SResults + Client -r-> SCreate + Client -d-> UInteraction + Client -d-> SDelete + Client -d-> SUpdate + Client -l-> SShare + +@enduml + +
+ +## Схема клієнта + +
+ +@startuml +actor Client +usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction +usecase "UserRegistration\nРеєстрація" as URegister +usecase "UserLogin\nВхід у систему" as ULogin +usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults +usecase "SurveyResultsView\nПерегляд відповідей" as SView +usecase "SurveyResultsExport\nЕкспорт результатів" as SExport +usecase "SurveyCreate\nСтворення опитування" as SCreate +usecase "SurveyUpdate\nОновлення опитування" as SUpdate +usecase "SurveyDelete\nВидалення опитування" as SDelete +usecase "SurveyReminder\nНагадування" as SReminder +usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare +SResults ..> SView +SResults ..> SExport +UInteraction ..> URegister +UInteraction ..> ULogin +Client -[hidden]-> UInteraction +Client -[hidden]-> SResults +Client -u-> UInteraction +Client -d-> SResults +Client -l-> SCreate +Client -u-> SUpdate +Client -u-> SDelete +Client -d-> SReminder +Client -r-> SShare +@enduml + +
+ ## Схема експерта
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :обирає опитування; + :вибирає формат експорту та надсилає запит; + note right #D10000 + Possible error: + - UnsupportedFormatException + end note + + + |Система| + :система генерує файл; + + |Користувач| + :користувач отримує файл у потрібному форматі; + + + stop; + +@enduml + +
+ +### SurveyUpdate + +| ID | SurveyUpdate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Оновлення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування створене, але ще не завершене | +| **Результат:** | Система зберігає оновлену версію опитування | +| **Виключні ситуації:** | Опитування вже активне або завершене — зміни неможливі | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | + +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач відкриває потрібне опитування для редагування; + :вносить свої зміни та підтверджує нові зміни; + note right #D10000 + Possible error: + - Опитування вже активне або завершене — зміни неможливі + end note + + |Система| + :система зберігає зміни й оновлює поточну версію опитування; + + + stop; + +@enduml + +
+ +### SurveyShareAccess + +| ID | SurveyShareAccess | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання доступу до опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач є автором опитування | +| **Результат:** | Інші користувачі отримують доступ | +| **Виключні ситуації:** | Немає | +| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :змінює формат опитування на формат спільного доступу; + :копіює посилання; + |Система| + :генерує унікальне посилання; + :надає посилання користувачу; + |Користувач| + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; + + |Інші Користувачі| + :отримують доступ до опитування через посилання; + + stop; + +@enduml + +
+ +### SurveyFeedback + +| ID | SurveyFeedback | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :переглядає підсумки опитування; + :оцінює якість запитань і надає зворотний зв’язок; + + |Система| + :система зберігає відгук; + note right #D10000 + Possible error: + - Відгук не відправлено через технічну помилку або недоступність сервера + end note + + :надає посилання користувачу; + + |Адміністратор| + :адміністратор може переглянути отримані відгуки в адмін-панелі; + + stop; + +@enduml + +
+ +### UserEditResponses + +| ID | UserEditResponses | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Редагування відповідей | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач обирає опитування для редагування; + :вносить зміни у відповіді; + + + |Система| + :система перевіряє коректність даних; + note right #D10000 + Possible error: + - InvalidResponseException + end note + :система обробляє зміни; + note right #D10000 + Possible error: + - SurveyClosedException + end note + :відредаговані відповіді оновлюються у базі; + + stop; + +@enduml + +
+ +### SurveyResultsView + +| ID | SurveyResultsView | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Перегляд відповідей на опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | +| **Результат:** | Система генерує звіт із підсумковими даними | +| **Виключні ситуації:** | Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | +| **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Система| + start; + :система обробляє всі отримані дані ; + :формується звіт із результатами; + + |Користувач| + :переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail); + :вносить зміни у відповіді; + + |Адміністратор| + :адміністратор має доступ до звіту в панелі керування; + + stop; + +@enduml + +
+ +## Example + В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. _Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ From 102de36ef6dbad4e612162e34b57a7553fa4c439 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 6 Mar 2025 12:22:29 +0200 Subject: [PATCH 063/143] #24: polish expert schema --- docs/use cases/README.md | 52 +++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index b59d76603..ecf15abbc 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -45,31 +45,33 @@ > @startuml -actor Client -usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction -usecase "UserRegistration\nРеєстрація" as URegister -usecase "UserLogin\nВхід у систему" as ULogin -usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults -usecase "SurveyResultsView\nПерегляд відповідей" as SView -usecase "SurveyResultsExport\nЕкспорт результатів" as SExport -usecase "SurveyCreate\nСтворення опитування" as SCreate -usecase "SurveyUpdate\nОновлення опитування" as SUpdate -usecase "SurveyDelete\nВидалення опитування" as SDelete -usecase "SurveyReminder\nНагадування" as SReminder -usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare -SResults ..> SView -SResults ..> SExport -UInteraction ..> URegister -UInteraction ..> ULogin -Client -[hidden]-> UInteraction -Client -[hidden]-> SResults -Client -u-> UInteraction -Client -d-> SResults -Client -l-> SCreate -Client -u-> SUpdate -Client -u-> SDelete -Client -d-> SReminder -Client -r-> SShare + + actor Client + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "UserRegistration\nРеєстрація" as URegister + usecase "UserLogin\nВхід у систему" as ULogin + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyResultsView\nПерегляд відповідей" as SView + usecase "SurveyResultsExport\nЕкспорт результатів" as SExport + usecase "SurveyCreate\nСтворення опитування" as SCreate + usecase "SurveyUpdate\nОновлення опитування" as SUpdate + usecase "SurveyDelete\nВидалення опитування" as SDelete + usecase "SurveyReminder\nНагадування" as SReminder + usecase "SurveyShareAccess\nПоділитись опитуванням" as SShare + SResults ..> SView + SResults ..> SExport + UInteraction ..> URegister + UInteraction ..> ULogin + Client -[hidden]-> UInteraction + Client -[hidden]-> SResults + Client -u-> UInteraction + Client -d-> SResults + Client -l-> SCreate + Client -u-> SUpdate + Client -u-> SDelete + Client -d-> SReminder + Client -r-> SShare + @enduml From b958203d2b62a1081fbbfedabbddca5923768c4b Mon Sep 17 00:00:00 2001 From: khmko1rtm Date: Thu, 6 Mar 2025 15:41:50 +0200 Subject: [PATCH 064/143] #25 made user registration and user login sequence diagrams --- docs/use cases/README.md | 101 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index ecf15abbc..d3c9677dc 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -104,6 +104,107 @@ ## Сценарії використання +### UserRegistration + +| ID | UserRegistration | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Реєстрація нового користувача | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач не має облікового запису в системі | +| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Якщо все вірно, створюється обліковий запис
5. Користувач отримує повідомлення про успішну реєстрацію | + +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + +|Користувач| +start; +:відкриває сторінку реєстрації; +:вносить необхідні дані; + +|Система| +:перевіряє введену інформацію; +note right #D10000 +Possible error: +- InvalidDataException +- AlreadyRegisteredException +end note + +:створює обліковий запис; +:зберігає реєстраційні дані користувача; + +|Користувач| +:отримує повідомлення про успішну реєстрацію; + +stop; + +@enduml + +
+ +### UserLogin + +| ID | UserLogin | +| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Вхід у систему | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач уже має обліковий запис | +| **Результат:** | Користувач успішно входить до системи | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису | + +
+ +@startuml + +skinparam ActivityBackgroundColor #d1a6e2 + +|Користувач| +start; +:відкриває сторінку авторизації; +:вносить логін та пароль; + +|Система| +:перевіряє правильність введених даних; +note right #D10000 +Possible error: +- InvalidDataException +end note + +:надає доступ до облікового запису; + +|Користувач| +:успішно входить до системи; + +stop; + +@enduml + +
+ +### SurveyCreate + +| ID | SurveyCreate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Створення нового опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | +| **Результат:** | Опитування успішно збережено в базі даних | +| **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | +| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних | + ### SurveyResultsExport | ID | SurveyResultsExport | From 317c9ff274d4aeca2f82dd921225c48fa0d43543 Mon Sep 17 00:00:00 2001 From: Sergio <161027752+ElRimigano@users.noreply.github.com> Date: Thu, 6 Mar 2025 10:51:51 +0200 Subject: [PATCH 065/143] fixed added row for our product --- docs/requirements/state-of-the-art.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md index 85e497b9d..e621f35c1 100644 --- a/docs/requirements/state-of-the-art.md +++ b/docs/requirements/state-of-the-art.md @@ -31,6 +31,7 @@ _[Розділ містить опис підходів, моделей та с | Survio | Зрозумілий інтерфейс і великий вибір шаблонів. Безкоштовна версія має обмеження. | Інтерфейс дружній до користувача. Менше аналітичних можливостей, але зручно для базових опитуваннь. | Для складних завданнь обмежена функціональність. Підходить для невеликих проектів. | Дуже швидкі оптимізовані засоби для роботи, простий API для інтеграцій. | Наявність онлайн-форм для запитів та швидкої підтримки, зручні інструкції. | | SurveyJS | Широкі можливості для кастомізації, інтеграція з веб-додатками. | Потребує часу для освоєння, підходить для фахівців. | Надійність залежить від кваліфікації користувача. |Продуктивність залежить від корситувацьких налаштувань. Є обмеження у роботі з великою кількістю даних. | Немає централізованої служби підтримки, але є підтримка через форуми та спільноти розробників. | | "OCA" | Можливість адаптації під специфічні потреби проекту. Вимагає більше часу і зусилль. | Складний інтерфейс, можлива кастомізація. Наявні засоби компалексного форматування. | Наявні всі базові можливості такі як оновлення та підтримка, захист даних. | Централізоване управління даними з можливістю автоматизації, гнучкі налаштування. Можуть виникати затримки через складність системи, високі вимоги до серверних ресурсів. | Можливість отримання цілеспрямованої підтримки для конкретного проекту, але може вимагати багато уваги для забезпечення. | +| Voice of Experts | Доступні всі базові функції для створення опитуваннь та роботи з ними. Управління списками респондентів та автоматизований збір відповідей. Можлива генерація аналітичних звітів. | Інтуїтивно зрозумілий інтерфейс, різна локалізація. Адаптовано для мобільних пристроїв. | Відновлення системи у випадку пошкодження даних, надійний захист. | Оптимізовано для швидкої обробки та роботи з великими обсягами даних. | Наявна документація для користувачів, гнучкі налаштування системи. | ## Висновки From 632ef5d723c1c2a191d859bb2e26eca035ccd235 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 6 Mar 2025 18:53:28 +0200 Subject: [PATCH 066/143] #26: added 2 tables added 2 tables --- docs/use cases/README.md | 157 ++++++++++++--------------------------- 1 file changed, 47 insertions(+), 110 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index d3c9677dc..55eee090c 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -465,17 +465,16 @@ skinparam ActivityBackgroundColor #d1a6e2 -## Example - -В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. - -_Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ - -Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). - -В markdown-файлі використовується опис діаграми +### SurveyCreate -```html +| ID | SurveyCreate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Створення нового опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | +| **Результат:** | Опитування успішно збережено в базі даних | +| **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | +| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних |
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa - } - - usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 - usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - - package UCD_1 { - usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa - } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 - usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - - User -> UC_1 - UC_1.1 .u.> UC_1 :extends - UC_1.2 .u.> UC_1 :extends - UC_4 .d.> UC_1.2 :extends - UC_1.2 .> UC_1.2 :extends - UC_1.2.1 .u.> UC_1.2 :extends - UC_1.2.2 .u.> UC_1.2 :extends - UC_1 ..> UC_1.2.2 :extends + skinparam ActivityBackgroundColor #d1a6e2 + |Користувач| + start; + :користувач відкриває інтерфейс створення опитування; + :заповнює необхідні поля; + :відправляє запит на збереження; + note right #D10000 + Possible error: + - EmptySurveyException + end note - UC_1.1.1 -u-|> UC_1.1 - UC_1.1.2 -u-|> UC_1.1 - UC_1.1.3 -u-|> UC_1.1 + |Система| + :система зберігає опитування в базі даних; - right footer - Аналітичний портал. Модель прецедентів. - НТУУ КПІ ім.І.Сікорського - Киів-2020 - end footer + stop; @enduml -**Діаграма прецедентів** -
-``` -яка буде відображена наступним чином +### UserCompletesSurvey + +| ID | UserCompletesSurvey | +| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Заповнення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має доступ до опитування | +| **Результат:** | Відповіді користувача збережені | +| **Виключні ситуації:** | Пропущені обов’язкові питання - IncompleteSurveyException | +| **Основний сценарій:** | 1. Користувач відкриває опитування
2. Відповідає на всі питання і надає зворотний зв’язок
3. Завершує проходження
4. Система перевіряє коректність заповнення (може виникнути IncompleteSurveyException)
5. Відповіді зберігаються у базі даних |
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa - } - - usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 - usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - - package UCD_1 { - usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa - } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 - usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - - User -> UC_1 - UC_1.1 .u.> UC_1 :extends - UC_1.2 .u.> UC_1 :extends - UC_4 .d.> UC_1.2 :extends - UC_1.2 .> UC_1.2 :extends - UC_1.2.1 .u.> UC_1.2 :extends - UC_1.2.2 .u.> UC_1.2 :extends - UC_1 ..> UC_1.2.2 :extends + skinparam ActivityBackgroundColor #d1a6e2 + |Користувач| + start; + :користувач відкриває опитування; + :відповідає на всі питання і надає зворотний зв’язок; + :завершує проходження; + note right #D10000 + Possible error: + - IncompleteSurveyException + end note - UC_1.1.1 -u-|> UC_1.1 - UC_1.1.2 -u-|> UC_1.1 - UC_1.1.3 -u-|> UC_1.1 + |Система| + :система перевіряє коректність заповнення; + :система зберігає опитування в базі даних; - right footer - Аналітичний портал. Модель прецедентів. - НТУУ КПІ ім.І.Сікорського - Киів-2020 - end footer + stop; @enduml -**Діаграма прецедентів** -
+ From 1be124b30415a9c2368e7e9fda89b9ecf7ea8c78 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 6 Mar 2025 19:33:38 +0200 Subject: [PATCH 067/143] #38: added survey reminder and survey delete added survey reminder and survey delete --- docs/use cases/README.md | 92 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 2 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 55eee090c..fa5e610a7 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -134,9 +134,10 @@ start; :перевіряє введену інформацію; note right #D10000 Possible error: + - InvalidDataException - AlreadyRegisteredException -end note + end note :створює обліковий запис; :зберігає реєстраційні дані користувача; @@ -180,8 +181,9 @@ start; :перевіряє правильність введених даних; note right #D10000 Possible error: + - InvalidDataException -end note + end note :надає доступ до облікового запису; @@ -548,3 +550,89 @@ skinparam ActivityBackgroundColor #d1a6e2 +### SurveyReminder + +| ID | SurveyReminder | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Нагадування про проходження опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має активне опитування, яке ще не завершив | +| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | +| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | +| **Основний сценарій:** | 1. Система перевіряє список активних опитувань користувача
2. Якщо є незавершені опитування, надсилається нагадування
3. Користувач отримує повідомлення про необхідність завершити опитування | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Система| + start; + :система перевіряє список активних опитувань користувача; + :якщо є незавершені опитування, надсилається нагадування; + + |Користувач| + :користувач отримує повідомлення про необхідність завершити опитування; + :завершує опитування; + + stop; + +@enduml + +
+ +### SurveyDelete + +| ID | SurveyDelete | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Видалення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач створив опитування | +| **Результат:** | Опитування видалене із системи | +| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач обирає опитування для видалення; + :користувач надсилає запит на видалення; + + |Система| + :система перевіряє права доступу; + note right #D10000 + Possible error: + - AccessDeniedException + end note + + |Користувач| + :користувач отримує підтвердження видалення; + + |Система| + :система видаляє опитування; + note right #D10000 + Possible error: + - SurveyNotFoundException + end note + + stop; + +@enduml + +
From 57daaa65a5a47ed5cef80966fceea38fbad50eaf Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 6 Mar 2025 19:57:19 +0200 Subject: [PATCH 068/143] #38: added 2 tables survey reminder and survey delete added 2 tables survey reminder and survey delete --- docs/use cases/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index fa5e610a7..5be100577 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -576,6 +576,10 @@ skinparam ActivityBackgroundColor #d1a6e2 start; :система перевіряє список активних опитувань користувача; :якщо є незавершені опитування, надсилається нагадування; + note right #D10000 + Possible error: + - NoPendingSurveysException + end note |Користувач| :користувач отримує повідомлення про необхідність завершити опитування; From 8740d08d8bf29de3706bca94e0e3c50c9f0d7065 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 6 Mar 2025 20:00:59 +0200 Subject: [PATCH 069/143] #26 and #38: reorder tables --- docs/use cases/README.md | 292 +++++++++++++++++++-------------------- 1 file changed, 142 insertions(+), 150 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index fa5e610a7..2ec78cc07 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -207,17 +207,6 @@ stop; | **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | | **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних | -### SurveyResultsExport - -| ID | SurveyResultsExport | -| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Експорт результатів опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування завершене | -| **Результат:** | Користувач отримує результати у вибраному форматі | -| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | -| **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | -
Possible error: - - Опитування вже активне або завершене — зміни неможливі + - IncompleteSurveyException end note |Система| - :система зберігає зміни й оновлює поточну версію опитування; - + :система перевіряє коректність заповнення; + :система зберігає опитування в базі даних; stop; @@ -293,16 +279,16 @@ skinparam ActivityBackgroundColor #d1a6e2
-### SurveyShareAccess +### UserEditResponses -| ID | SurveyShareAccess | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Надання доступу до опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач є автором опитування | -| **Результат:** | Інші користувачі отримують доступ | -| **Виключні ситуації:** | Немає | -| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | +| ID | UserEditResponses | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Редагування відповідей | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі |
Possible error: - - Відгук не відправлено через технічну помилку або недоступність сервера - end note + start; + :система обробляє всі отримані дані ; + :формується звіт із результатами; - :надає посилання користувачу; + |Користувач| + :переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail); + :вносить зміни у відповіді; |Адміністратор| - :адміністратор може переглянути отримані відгуки в адмін-панелі; + :адміністратор має доступ до звіту в панелі керування; stop; @@ -380,16 +366,16 @@ skinparam ActivityBackgroundColor #d1a6e2
-### UserEditResponses +### SurveyResultsExport -| ID | UserEditResponses | -| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Редагування відповідей | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач раніше пройшов опитування | -| **Результат:** | Відредаговані відповіді збережені | -| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | +| ID | SurveyResultsExport | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | +| **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі |
Possible error: + - Опитування вже активне або завершене — зміни неможливі + end note - |Користувач| - :переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail); - :вносить зміни у відповіді; + |Система| + :система зберігає зміни й оновлює поточну версію опитування; - |Адміністратор| - :адміністратор має доступ до звіту в панелі керування; stop; @@ -467,16 +452,16 @@ skinparam ActivityBackgroundColor #d1a6e2
-### SurveyCreate +### SurveyFeedback -| ID | SurveyCreate | -| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Створення нового опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | -| **Результат:** | Опитування успішно збережено в базі даних | -| **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | -| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних | +| ID | SurveyFeedback | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі |
Possible error: - - IncompleteSurveyException - end note - + :змінює формат опитування на формат спільного доступу; + :копіює посилання; |Система| - :система перевіряє коректність заповнення; - :система зберігає опитування в базі даних; + :генерує унікальне посилання; + :надає посилання користувачу; + |Користувач| + :отримує доступ до опитування; + :ділиться посиланням з іншими користувачами; + + |Інші Користувачі| + :отримують доступ до опитування через посилання; stop; @@ -576,7 +565,10 @@ skinparam ActivityBackgroundColor #d1a6e2 start; :система перевіряє список активних опитувань користувача; :якщо є незавершені опитування, надсилається нагадування; - + note right #D10000 + Possible error: + - NoPendingSurveysException + end note |Користувач| :користувач отримує повідомлення про необхідність завершити опитування; :завершує опитування; From 1e5094fd2e059b2c8f65d5081724ff3d56980751 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Thu, 6 Mar 2025 20:36:13 +0200 Subject: [PATCH 070/143] remake_of_SurveyFeedback --- docs/requirements/stakeholders-needs.md | 2 +- docs/use cases/README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index b0c1f3ea9..0e7efcf8c 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -133,7 +133,7 @@ | **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | | **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | | **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | -| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі | | ID | SurveyShareAccess | | :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 1bb935b92..2c691effb 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -174,7 +174,7 @@ skinparam ActivityBackgroundColor #d1a6e2 | **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | | **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | | **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | -| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути отримані відгуки в адмін-панелі | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі |
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису | +| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Система надає користувачу доступ до облікового запису |
-@startuml - - skinparam ActivityBackgroundColor #d1a6e2 - - |Система| - start; - :система перевіряє список активних опитувань користувача; - :якщо є незавершені опитування, надсилається нагадування; - - |Користувач| - :користувач отримує повідомлення про необхідність завершити опитування; - :завершує опитування; - - stop; - -@enduml - -
- -### SurveyDelete - -| ID | SurveyDelete | -| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Видалення опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач створив опитування | -| **Результат:** | Опитування видалене із системи | -| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | - -
- -@startuml - - skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :користувач обирає опитування для видалення; - :користувач надсилає запит на видалення; - - |Система| - :система перевіряє права доступу; - note right #D10000 - Possible error: - - AccessDeniedException - end note - - |Користувач| - :користувач отримує підтвердження видалення; - - |Система| - :система видаляє опитування; - note right #D10000 - Possible error: - - SurveyNotFoundException - end note - - stop; - -@enduml - -
From 1faa7d530c7c76e1bb33034e04eccd9aaa6c1136 Mon Sep 17 00:00:00 2001 From: Roman Date: Sat, 8 Mar 2025 14:54:12 +0200 Subject: [PATCH 073/143] #26: conflict fixed conflict fixed --- docs/use cases/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 839486545..c283c4ab3 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -139,8 +139,8 @@ - AlreadyRegisteredException end note -:створює обліковий запис; -:зберігає реєстраційні дані користувача; + :створює обліковий запис; + :зберігає реєстраційні дані користувача; |Користувач| :отримує повідомлення про успішну реєстрацію; From c496d61fabe7270da913dffa27e212889009d1cb Mon Sep 17 00:00:00 2001 From: Roman Date: Sat, 8 Mar 2025 15:13:14 +0200 Subject: [PATCH 074/143] #26: changes two tables changes two tables: survey create and user completes survey --- docs/use cases/README.md | 47 ++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index c283c4ab3..8d43c9f5f 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -106,13 +106,13 @@ ### UserRegistration -| ID | UserRegistration | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Реєстрація нового користувача | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач не має облікового запису в системі | -| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | -| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | +| ID | UserRegistration | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Реєстрація нового користувача | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач не має облікового запису в системі | +| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | | **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Система створює новий обліковий запис та фіксує в ньому реєстраційні дані користувача
5. Користувач отримує повідомлення про успішну реєстрацію |
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі |
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Система надає користувачу доступ до облікового запису | +| ID | UserLogin | +| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Вхід у систему | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач уже має обліковий запис | +| **Результат:** | Користувач успішно входить до системи | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException | +| **Основний сценарій:** | 1. Користувач відкриває сторінку авторизації
2. Вносить логін та пароль
3. Система перевіряє правильність введених даних (можлива помилка InvalidDataException)
4. Якщо дані коректні, надається доступ до облікового запису |
+ +### SurveyReminder + +| ID | SurveyReminder | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Нагадування про проходження опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має активне опитування, яке ще не завершив | +| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | +| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | +| **Основний сценарій:** | 1. Система перевіряє список активних опитувань користувача
2. Якщо є незавершені опитування, надсилається нагадування
3. Користувач отримує повідомлення про необхідність завершити опитування | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Система| + start; + :система перевіряє список активних опитувань користувача; + :якщо є незавершені опитування, надсилається нагадування; + + |Користувач| + :користувач отримує повідомлення про необхідність завершити опитування; stop; @enduml
+### SurveyDelete + +| ID | SurveyDelete | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Видалення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач створив опитування | +| **Результат:** | Опитування видалене із системи | +| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | + +
+ +@startuml + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :користувач обирає опитування для видалення; + :користувач надсилає запит на видалення; + + |Система| + :система перевіряє права доступу; + note right #D10000 + Possible error: + - AccessDeniedException + end note + + |Користувач| + :користувач отримує підтвердження видалення; + + |Система| + :система видаляє опитування; + note right #D10000 + Possible error: + - SurveyNotFoundException + end note + + |Користувач| + stop; + +@enduml + +
From 66514a0ce454f0fd6758edcf4ad8019c2ff25c88 Mon Sep 17 00:00:00 2001 From: Roman Date: Sat, 8 Mar 2025 20:41:07 +0200 Subject: [PATCH 079/143] #26: spelling update spelling update --- docs/use cases/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 379c1c965..4adc28525 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -247,7 +247,7 @@ | **Передумови:** | Користувач має доступ до опитування | | **Результат:** | Відповіді користувача збережені | | **Виключні ситуації:** | Пропущені обов’язкові питання - IncompleteSurveyException | -| **Основний сценарій:** | 1. Користувач відкриває опитування
2. Відповідає на всі питання і надає зворотний зв’язок
3. Завершує проходження
4. Система перевіряє коректність заповнення (може виникнути IncompleteSurveyException)
5. Відповіді зберігаються у базі даних | +| **Основний сценарій:** | 1. Користувач відкриває опитування
2. Відповідає на всі питання і надає зворотний зв’язок
3. Завершує проходження
4. Система перевіряє коректність заповнення (може виникнути IncompleteSurveyException)
5. Відповіді зберігають у базі даних |
Possible error: - - IncompleteSurveyException + - EmptySurveyException end note - :відповіді зберігають у базі даних; + + :зберігає відповіді\nкористувача; + :інформує користувача\nпро успішне завершення\nопитування; |Користувач| stop; @@ -522,9 +529,11 @@ skinparam ActivityBackgroundColor #d1a6e2 start; :змінює формат опитування на формат спільного доступу; :копіює посилання; + |Система| :генерує унікальне посилання; :надає посилання користувачу; + |Користувач| :отримує доступ до опитування; :ділиться посиланням з іншими користувачами; @@ -537,88 +546,3 @@ skinparam ActivityBackgroundColor #d1a6e2
-### SurveyReminder - -| ID | SurveyReminder | -| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Нагадування про проходження опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач має активне опитування, яке ще не завершив | -| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | -| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | -| **Основний сценарій:** | 1. Система перевіряє список активних опитувань користувача
2. Якщо є незавершені опитування, надсилається нагадування
3. Користувач отримує повідомлення про необхідність завершити опитування | - -
- -@startuml - - skinparam ActivityBackgroundColor #d1a6e2 - - |Система| - start; - :система перевіряє список активних опитувань користувача; - :якщо є незавершені опитування, надсилається нагадування; - - |Користувач| - :користувач отримує повідомлення про необхідність завершити опитування; - stop; - -@enduml - -
- -### SurveyDelete - -| ID | SurveyDelete | -| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Видалення опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач створив опитування | -| **Результат:** | Опитування видалене із системи | -| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження видалення | - -
- -@startuml - - skinparam ActivityBackgroundColor #d1a6e2 - - |Користувач| - start; - :користувач обирає опитування для видалення; - :користувач надсилає запит на видалення; - - |Система| - :система перевіряє права доступу; - note right #D10000 - Possible error: - - AccessDeniedException - end note - - |Користувач| - :користувач отримує підтвердження видалення; - - |Система| - :система видаляє опитування; - note right #D10000 - Possible error: - - SurveyNotFoundException - end note - - |Користувач| - stop; - -@enduml - -
From acc41af3ade05a9206e9484b65e888be3cd9b979 Mon Sep 17 00:00:00 2001 From: Roman Date: Sat, 8 Mar 2025 21:28:31 +0200 Subject: [PATCH 081/143] #38: added and changed 2 tables added and changed 2 tables so, reminder and delete --- docs/use cases/README.md | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index d528dfe06..e28d47492 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -546,3 +546,86 @@ skinparam ActivityBackgroundColor #d1a6e2
+### SurveyReminder + +| ID | SurveyReminder | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Нагадування про проходження опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має активне опитування, яке ще не завершив | +| **Результат:** | Користувач отримує нагадування про необхідність завершити опитування | +| **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | +| **Основний сценарій:** | 1. Система перевіряє список активних опитувань користувача
2. Якщо є незавершені опитування, надсилається нагадування користувачу
3. Користувач отримує повідомлення про необхідність завершити опитування | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Система| + start; + :перевіряє список активних опитувань користувача; + :якщо є незавершені опитування, надсилається нагадування користувачу; + + |Користувач| + :користувач отримує повідомлення про необхідність завершити опитування; + stop; + +@enduml + +
+ +### SurveyDelete + +| ID | SurveyDelete | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Видалення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач створив опитування | +| **Результат:** | Опитування видалене із системи | +| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | +| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути помилка AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження на видалення | + +
+ +@startuml + + skinparam ActivityBackgroundColor #d1a6e2 + + |Користувач| + start; + :обирає опитування для видалення; + :надсилає запит на видалення; + + |Система| + :перевіряє права доступу; + note right #D10000 + Possible error: + - AccessDeniedException + end note + + :видаляє опитування; + note right #D10000 + Possible error: + - SurveyNotFoundException + end note + + |Користувач| + :отримує підтвердження на видалення; + stop; + +@enduml + +
+ From 12139b601c986fe50882dbda37fd4fb8de4ef145 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sun, 9 Mar 2025 13:54:07 +0200 Subject: [PATCH 082/143] FIXED UserEditResponses + SurveyResultView --- docs/requirements/stakeholders-needs.md | 4 ++-- docs/use cases/README.md | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index 0e7efcf8c..a8723d09f 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -97,7 +97,7 @@ | **Передумови:** | Користувач раніше пройшов опитування | | **Результат:** | Відредаговані відповіді збережені | | **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Система оновлює інформацію у базі | | ID | SurveyResultsView | | :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | @@ -106,7 +106,7 @@ | **Передумови:** | Опитування завершене, отримано достатню кількість відповідей | | **Результат:** | Система генерує звіт із підсумковими даними | | **Виключні ситуації:** | Відсутність достатньої кількості відповідей або технічні проблеми з відображенням інформації | -| **Основний сценарій:** | 1. Система обробляє всі отримані дані
2. Формується звіт із результатами
3. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
4. Адміністратор має доступ до звіту в панелі керування | +| **Основний сценарій:** |1. Користувач обирає опитування для перегляду результатів
2. Система обробляє всі отримані дані
3. Формується звіт із результатами
4. Користувач переглядає звіт або завантажує його у зручному форматі (PDF, надсилання на e-mail)
5. Користувач підтверджує завершення роботи зі звітом або повертається до його перегляду/завантаження | | ID | SurveyResultsExport | | :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 2c691effb..ed1ec4293 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -219,7 +219,7 @@ skinparam ActivityBackgroundColor #d1a6e2 | **Передумови:** | Користувач раніше пройшов опитування | | **Результат:** | Відредаговані відповіді збережені | | **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Відредаговані відповіді оновлюються у базі | +| **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Система оновлює інформацію у базі
6. Користувач підтверджує завершення редагування або повертається до редагування |
Date: Sun, 9 Mar 2025 14:18:39 +0200 Subject: [PATCH 083/143] FIXED: SurveyUpdate + SurveyFeedback + SurveyShareAccess --- docs/requirements/stakeholders-needs.md | 6 +++--- docs/use cases/README.md | 25 ++++++++++++------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index a8723d09f..36b6c4500 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -124,7 +124,7 @@ | **Передумови:** | Опитування створене, але ще не завершене | | **Результат:** | Система зберігає оновлену версію опитування | | **Виключні ситуації:** | Опитування вже активне або завершене — зміни неможливі | -| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування
5. Користувач завершує редагування або повертається до внесення змін| | ID | SurveyFeedback | | :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | @@ -133,7 +133,7 @@ | **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | | **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | | **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | -| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Користувач публікує відгук | | ID | SurveyShareAccess | | :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | @@ -142,7 +142,7 @@ | **Передумови:** | Користувач є автором опитування | | **Результат:** | Інші користувачі отримують доступ | | **Виключні ситуації:** | Немає | -| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Посилання надається користувачам, які отримують доступ | +| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Користувач отримує посилання та розповсюджує його серед інших користувачів | | ID | SurveyReminder | | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | diff --git a/docs/use cases/README.md b/docs/use cases/README.md index ed1ec4293..827cdd480 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -91,7 +91,7 @@ | **Передумови:** | Опитування створене, але ще не завершене | | **Результат:** | Система зберігає оновлену версію опитування | | **Виключні ситуації:** | Опитування вже активне або завершене — зміни неможливі | -| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування | +| **Основний сценарій:** | 1. Користувач відкриває потрібне опитування для редагування
2. Вносить зміни у формулювання запитань або налаштування
3. Підтверджує оновлення
4. Система зберігає зміни й оновлює поточну версію опитування
5. Користувач завершує редагування або повертається до внесення змін |
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Користувач публікує відгук |
Possible error: + - NoPendingSurveysException + end note |Користувач| - :користувач отримує повідомлення про необхідність завершити опитування; + :отримує повідомлення про необхідність завершити опитування; stop; @enduml @@ -590,7 +597,7 @@ skinparam ActivityBackgroundColor #d1a6e2 | **Передумови:** | Користувач створив опитування | | **Результат:** | Опитування видалене із системи | | **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | -| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути помилка AccessDeniedException)
4. Система видаляє опитування (може виникнути SurveyNotFoundException)
5. Користувач отримує підтвердження на видалення | +| **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Користувач надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути помилка AccessDeniedException)
4. Система видаляє опитування (може виникнути помилка SurveyNotFoundException)
5. Користувач отримує підтвердження на видалення |
SView SResults ..> SExport UInteraction ..> URegister @@ -106,13 +108,13 @@ ### UserRegistration -| ID | UserRegistration | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Реєстрація нового користувача | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач не має облікового запису в системі | -| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | -| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | +| ID | UserRegistration | +| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Реєстрація нового користувача | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач не має облікового запису в системі | +| **Результат:** | Система створює новий обліковий запис і зберігає реєстраційні дані користувача | +| **Виключні ситуації:** | Введено некоректні дані – InvalidDataException
Користувач уже зареєстрований – AlreadyRegisteredException | | **Основний сценарій:** | 1. Користувач відкриває сторінку реєстрації
2. Вносить необхідні дані
3. Система перевіряє введену інформацію (можливі помилки InvalidDataException або AlreadyRegisteredException)
4. Система створює новий обліковий запис та фіксує в ньому реєстраційні дані користувача
5. Користувач отримує повідомлення про успішну реєстрацію |
Possible error: - + skinparam ActivityBackgroundColor #d1a6e2 |Користувач| - :користувач завершує редагування або повертається до внесення змін; + start; + :відкриває сторінку авторизації; + :вносить логін та пароль; + |Система| + :перевіряє правильність введених даних; + note right #D10000 + Possible error: -:надає доступ до облікового запису; + - InvalidDataException + end note -|Користувач| -:успішно входить до системи; + :надає доступ до облікового запису; -stop; + |Користувач| + :успішно входить до системи; + + stop; @enduml
-### SurveyShareAccess - -| ID | SurveyShareAccess | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Надання доступу до опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач є автором опитування | -| **Результат:** | Інші користувачі отримують доступ | -| **Виключні ситуації:** | Немає | -| **Основний сценарій:** | 1. Користувач обирає опитування для спільного доступу
2. Система генерує унікальне посилання
3. Користувач отримує посилання та розповсюджує його серед інших користувачів | +### SurveyCreate +| ID | SurveyCreate | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Створення нового опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | 1. Користувач має обліковий запис
2. Має права на створення опитування | +| **Результат:** | Опитування успішно збережено в базі даних | +| **Виключні ситуації:** | Опитування не містить жодного питання – EmptySurveyException | +| **Основний сценарій:** | 1. Користувач відкриває інтерфейс створення опитування
2. Заповнює необхідні поля
3. Відправляє запит на збереження (можлива помилка EmptySurveyException)
4. Система зберігає опитування в базі даних |
-### UserEditResponses +### UserEditResponses -| ID | UserEditResponses | -| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Редагування відповідей| -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач раніше пройшов опитування | -| **Результат:** | Відредаговані відповіді збережені | -| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | +| ID | UserEditResponses | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Редагування відповідей | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач раніше пройшов опитування | +| **Результат:** | Відредаговані відповіді збережені | +| **Виключні ситуації:** | Деякі питання заповнені некоректно - InvalidResponseException
Опитування закрите для змін - SurveyClosedException | | **Основний сценарій:** | 1. Користувач обирає опитування для редагування
2. Вносить зміни у відповіді
3. Система перевіряє коректність даних (може виникнути InvalidResponseException)
4. Система обробляє зміни (може виникнути SurveyClosedException)
5. Система оновлює інформацію у базі
6. Користувач підтверджує завершення редагування або повертається до редагування | -
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Адміністратор може переглянути відгуки в адмін-панелі | +| ID | SurveyFeedback | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Надання відгуку про опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач завершив проходження опитування та має авторизований доступ. | +| **Результат:** | Відгук успішно збережений у системі та доступний адміністрації | +| **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | +| **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Користувач публікує відгук |
Date: Mon, 10 Mar 2025 12:36:56 +0200 Subject: [PATCH 087/143] #26: changes user completes survey changes user completes survey --- docs/use cases/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index db1d08de0..bbcc91d05 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -258,7 +258,7 @@ @startuml - skinparam ActivityBackgroundColor #fffde7 + skinparam ActivityBackgroundColor #d1a6e2 |Користувач| start; @@ -275,7 +275,7 @@ :перевіряє\nкоректність заповнення\nанкети; note right #D10000 Possible error: - - EmptySurveyException + - IncompleteSurveyException end note :зберігає відповіді\nкористувача; From 4fa1e9c574149fa0f42a69a92936783ab0fab744 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:43:05 +0200 Subject: [PATCH 088/143] Update README.md --- docs/use cases/README.md | 43 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index 05d69e2db..e58e3566b 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -242,13 +242,13 @@ ### UserCompletesSurvey -| ID | UserCompletesSurvey | -| :--------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -| **Назва:** | Заповнення опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Користувач має доступ до опитування | -| **Результат:** | Відповіді користувача збережені | -| **Виключні ситуації:** | Пропущені обов’язкові питання - IncompleteSurveyException | +| ID | UserCompletesSurvey | +| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Заповнення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач має доступ до опитування | +| **Результат:** | Відповіді користувача збережені | +| **Виключні ситуації:** | Пропущені обов’язкові питання - IncompleteSurveyException | | **Основний сценарій:** | 1. Користувач відкриває опитування
2. Система формує анкету
3. Користувач відповідає на запитання анкети
4. Користувач завершує проходження опитування
5. Система перевіряє коректність заповнення анкети (може виникнути помилка IncompleteSurveyException)
6. Система зберігає відповіді користувача
7. Система інформує користувача про успішне завершення опитування |
У користувача немає прав на видалення – AccessDeniedException | +| ID | SurveyDelete | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Видалення опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Користувач створив опитування | +| **Результат:** | Опитування видалене із системи | +| **Виключні ситуації:** | Опитування не знайдено – SurveyNotFoundException
У користувача немає прав на видалення – AccessDeniedException | | **Основний сценарій:** | 1. Користувач обирає опитування для видалення
2. Користувач надсилає запит на видалення
3. Система перевіряє права доступу (може виникнути помилка AccessDeniedException)
4. Система видаляє опитування (може виникнути помилка SurveyNotFoundException)
5. Користувач отримує підтвердження на видалення |
Date: Thu, 20 Mar 2025 21:17:11 +0200 Subject: [PATCH 090/143] #47: added ER-model added ER-model --- docs/design/README.md | 107 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/docs/design/README.md b/docs/design/README.md index d76ece741..26ca697cb 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -4,4 +4,111 @@ - модель бізнес-об'єктів - ER-модель + +@startuml + +left to right direction + +entity User { + * id : INT + -- + first_name : VARCHAR + last_name : VARCHAR + email : VARCHAR + password : VARCHAR + phone_number : VARCHAR + age : INT + is_admin : BOOLEAN + role_id : INT +} + +entity Role { + * id : INT + -- + name : VARCHAR + description : TEXT +} + +entity Permission { + * id : INT + -- + name : VARCHAR + description : TEXT +} + +entity RolePermission { + * role_id : INT + * permission_id : INT +} + +entity Survey { + * id : INT + -- + owner_id : INT + title : VARCHAR + description : TEXT + creation_date : DATETIME + close_date : DATETIME + is_active : BOOLEAN +} + +entity Question { + * id : INT + -- + survey_id : INT + description : TEXT + header : VARCHAR +} + +entity Option { + * id : INT + -- + question_id : INT + description : TEXT +} + +entity Answer { + * id : INT + -- + content : TEXT + user_id : INT + question_id : INT + answer_id : INT +} + +entity Results { + * id : INT + -- + content : TEXT + name : VARCHAR + answer_id : INT +} + +entity Feedback { + * id : INT + -- + title : VARCHAR + description : TEXT + date : DATETIME + user_id : INT + survey_id : INT +} + +User }o--|| Role : "has role" +Role ||--|{ RolePermission : "assigns" +Permission }|--|| RolePermission : "grants" + +User ||--|{ Survey : "owns" +Survey ||--|{ Question : "contains" +Question ||--|{ Option : "has options" + +User ||--|{ Answer : "provides" +Question ||--|{ Answer : "has answers" +Answer ||--|{ Results : "produces" + +User ||--|{ Feedback : "writes" +Survey ||--|{ Feedback : "receives" + +@enduml + - реляційна схема From c05db033f81e14ce1c977f9b13d7b98fc701d9d4 Mon Sep 17 00:00:00 2001 From: khmko1rtm Date: Thu, 20 Mar 2025 23:03:49 +0200 Subject: [PATCH 091/143] #47 Fixed some inaccuracies Fixed some inaccuracies --- docs/design/README.md | 54 +++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 26ca697cb..b6dbf1606 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -5,46 +5,51 @@ - модель бізнес-об'єктів - ER-модель +
+ @startuml left to right direction entity User { - * id : INT + * id : UUID -- first_name : VARCHAR last_name : VARCHAR email : VARCHAR password : VARCHAR phone_number : VARCHAR - age : INT - is_admin : BOOLEAN - role_id : INT + age : SMALLINT + role_id : UUID } entity Role { - * id : INT + * id : UUID -- name : VARCHAR description : TEXT } entity Permission { - * id : INT + * id : UUID -- name : VARCHAR description : TEXT } entity RolePermission { - * role_id : INT - * permission_id : INT + * role_id : UUID + * permission_id : UUID } entity Survey { - * id : INT + * id : UUID -- - owner_id : INT + owner_id : UUID title : VARCHAR description : TEXT creation_date : DATETIME @@ -53,45 +58,45 @@ entity Survey { } entity Question { - * id : INT + * id : UUID -- - survey_id : INT + survey_id : UUID description : TEXT header : VARCHAR } entity Option { - * id : INT + * id : UUID -- - question_id : INT + question_id : UUID description : TEXT } entity Answer { - * id : INT + * id : UUID -- content : TEXT - user_id : INT - question_id : INT - answer_id : INT + user_id : UUID + question_id : UUID + answer_id : UUID } entity Results { - * id : INT + * id : UUID -- content : TEXT name : VARCHAR - answer_id : INT + answer_id : UUID } entity Feedback { - * id : INT + * id : UUID -- title : VARCHAR description : TEXT date : DATETIME - user_id : INT - survey_id : INT + user_id : UUID + survey_id : UUID } User }o--|| Role : "has role" @@ -111,4 +116,7 @@ Survey ||--|{ Feedback : "receives" @enduml + +
+ - реляційна схема From 876a3da838b0f51cd7b465e98e3e8338c1f7ce66 Mon Sep 17 00:00:00 2001 From: khmko1rtm Date: Fri, 21 Mar 2025 13:11:53 +0200 Subject: [PATCH 092/143] #47 corrected some small mistakes corrected some small mistakes --- docs/design/README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index b6dbf1606..232227023 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -1,9 +1,17 @@ -# Проєктування бази даних +--- +title: Проєктування баз даних +outline: deep +--- -В рамках проекту розробляється: +# Проєктування баз даних -- модель бізнес-об'єктів -- ER-модель +## Модель бізнес-об'єктів + +Модель бізнес-об'єктів - це опис системи, в рамках якої відображаються всі об’єкти (сутності) даної системи. [[1]](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) + +## ER-модель + +ER-модель описує сутності системи та визначає зв'язки між ними. [[2]](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model)
-- реляційна схема +## Реляційна схема + +Реляційна схема - це набір таблиць, кожна з яких відповідає за одну з сутностей реляційної бази даних, та зв'язків між ними. Реляційна схема використовується для представлення реляційної бази даних. [[3]](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) From 3f0aee0fecbc757687db97bae45825588e647ce6 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 21 Mar 2025 13:52:56 +0200 Subject: [PATCH 093/143] #47: added links to models. changed the design a bit and moved to Artem's shared branch added links to models. changed the design a bit and moved to Artem's shared branch --- docs/design/README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 232227023..9dc9d4935 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -3,15 +3,15 @@ title: Проєктування баз даних outline: deep --- -# Проєктування баз даних +# Проєктування баз даних ## Модель бізнес-об'єктів -Модель бізнес-об'єктів - це опис системи, в рамках якої відображаються всі об’єкти (сутності) даної системи. [[1]](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) +**Модель бізнес-об'єктів** - це опис системи, в рамках якої відображаються всі об’єкти (сутності) даної системи. [[1]](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) ## ER-модель -ER-модель описує сутності системи та визначає зв'язки між ними. [[2]](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model) +**ER-модель** описує сутності системи та визначає зв'язки між ними. [[2]](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model)
Date: Sun, 23 Mar 2025 13:24:46 +0200 Subject: [PATCH 094/143] Update workspace.xml change --- .idea/workspace.xml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c4f0f5ce7..6a1d0463d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,8 +5,7 @@ - - + - { - "keyToString": { - "RunOnceActivity.ShowReadmeOnStart": "true", - "git-widget-placeholder": "Lab1/rina", - "kotlin-language-version-configured": "true", - "last_opened_file_path": "C:/Users/heund/Documents/GitHub/db_labs/db_labs", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -66,6 +65,7 @@ + From c20af1e6ae73f153952469a57cd7196521d4b603 Mon Sep 17 00:00:00 2001 From: Katia Date: Mon, 24 Mar 2025 09:13:01 +0200 Subject: [PATCH 095/143] Update README.md change relational_shema --- docs/design/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/design/README.md b/docs/design/README.md index d76ece741..3acb4f51c 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -1,7 +1,13 @@ # Проєктування бази даних -В рамках проекту розробляється: +## Модель бізнес-об'єктів - модель бізнес-об'єктів - ER-модель - реляційна схема + +## Реляційна схема + +Реляційна схема-це набір таблиць, кожна з яких відповідає за одну з сутностей реляційної бази даних, та зв'язків між ними. Реляційна схема використовується для представлення реляційної бази даних. [[3]](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) + +![Реляційна схема](..%2Fimg%2Frelational_schema.png) \ No newline at end of file From bad9c2c82aa29c4437f7f3b3d7cff40dc646550b Mon Sep 17 00:00:00 2001 From: Katia Date: Mon, 24 Mar 2025 09:13:11 +0200 Subject: [PATCH 096/143] Create relational_schema.png --- docs/img/relational_schema.png | Bin 0 -> 79541 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/relational_schema.png diff --git a/docs/img/relational_schema.png b/docs/img/relational_schema.png new file mode 100644 index 0000000000000000000000000000000000000000..c8626c8d38decb70f83a114f2aeb9b1c523ef5ef GIT binary patch literal 79541 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 literal 0 HcmV?d00001 From ee8cacc4e7d254fb819cc64369d52cb7173b97bd Mon Sep 17 00:00:00 2001 From: Katia Date: Mon, 24 Mar 2025 09:13:24 +0200 Subject: [PATCH 097/143] Update workspace.xml --- .idea/workspace.xml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 6a1d0463d..789d70bde 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,12 +6,16 @@ + + + + - - { + "keyToString": { + "RunOnceActivity.ShowReadmeOnStart": "true", + "git-widget-placeholder": "lab4/rina", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "C:/Users/heund/Desktop/shop.com", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "vue.rearranger.settings.migration": "true" } -}]]> +} From 151d6e7bef503a417f1a3d96effda487c73cd9c9 Mon Sep 17 00:00:00 2001 From: Katia Date: Tue, 25 Mar 2025 10:00:58 +0200 Subject: [PATCH 102/143] Update README.md --- docs/design/README.md | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index f1c4fb9c1..2a79dbd7d 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -3,17 +3,7 @@ title: Проєктування баз даних outline: deep --- -## Модель бізнес-об'єктів -- модель бізнес-об'єктів -- ER-модель -- реляційна схема - -## Реляційна схема - -Реляційна схема-це набір таблиць, кожна з яких відповідає за одну з сутностей реляційної бази даних, та зв'язків між ними. Реляційна схема використовується для представлення реляційної бази даних. [[3]](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) - -![Реляційна схема](..%2Fimg%2Frelational_schema.png) ======= # Проєктування баз даних @@ -142,6 +132,8 @@ Survey ||--|{ Feedback : "receives" **Реляційна схема** - це набір таблиць, кожна з яких відповідає за одну з сутностей реляційної бази даних, та зв'язків між ними. Реляційна схема використовується для представлення реляційної бази даних. [[3]](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) +![Реляційна схема](..%2Fimg%2Frelational_schema.png) + ## Посилання 1. [Бізнес-моделі підприємства: еволюція та класифікація](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) From ad1c265f025210b4014b1137867f4223c4059209 Mon Sep 17 00:00:00 2001 From: Katia Date: Tue, 25 Mar 2025 10:01:14 +0200 Subject: [PATCH 103/143] Create workspace.xml --- .idea/workspace.xml | 122 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 .idea/workspace.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..a4de49a07 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + { + "associatedIndex": 4 +} + + + + { + "keyToString": { + "RunOnceActivity.ShowReadmeOnStart": "true", + "git-widget-placeholder": "lab4/rina", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "C:/Users/heund/Desktop/shop.com", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "vue.rearranger.settings.migration": "true" + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + 1739958068980 + + + + + + + + + \ No newline at end of file From 31295ed33ed6d0e532effb376786154c56418091 Mon Sep 17 00:00:00 2001 From: Katia Date: Tue, 25 Mar 2025 15:21:54 +0200 Subject: [PATCH 104/143] Update relational_schema.png lab4 --- docs/img/relational_schema.png | Bin 79541 -> 80289 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/img/relational_schema.png b/docs/img/relational_schema.png index c8626c8d38decb70f83a114f2aeb9b1c523ef5ef..9f494497bf158a78230b5915d4ce35779a99ec6e 100644 GIT binary patch literal 80289 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 B)BJg@#1lF4kv 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ΞDQY>I8qCniBR`jly(ox2rs<2Uhht)RJp!Oq4+m9GPt z}@53Vc0lJd}feq z%8bQ8q0n1>_w$=Sljr=|fqB|y<$o2tg{_jDGpLmB@;TUh0XW$oLt6ErJtY>F^2>zv zV5IG|mJ~>mJLbUR8QhGAxtvg4baH}-!&rj}Yn@j?u)DlKoTpX&i2YecDTDI?3S7nF zqU_GcYUMje#vjlhe_Gaex?Vlrdp-F>l|=xXS%Ja>d4ctPtScafhZc~aj;E#S6dhps zPT)o`JJqbMGr14dhY^5y=7YNubBy(}ve~!vwpr52r}Ca;{Wte9k2zWydBrpCV-;Qy z*}%(?Ov_IE`5CIJbXKMFsdyC83V8@J4@l{{p}xYw+*}OJdM09#C@_smJTAdQPVpES zCzPG=>dTA%mwzY=wnl%O+QFX|i8e7tVdn664~d<0`8S-eD2(0d;)M&bunYqE1%=x- zZ1*s$^gqc30^SPeA6x zH^c;(BbiB!8udg$wS$i)1G%1ye?St|_>p-Q^_}n?fTRe6$fuZai`?7WB?s}Jv^4KH zU=<`}BSAsvwltJw1quoZIcD-VoT+jS(b`d`BqS{Wof9C0I83(wb^J-ZeC5h&FzO+) z#qq>dRlo)AI6x^3F)(fbGy-Hj>!i#FFHNF|ggqyxfPf#A?Dk35doPoj$ZxEs8ITS) zAl{A_(h(3{k8Q;gcv)kS)LAQlwZDL27@3hE9uPgs5xzJ$yfCW+E(v?y+^P5PxBUM7+uQdoybnorW?JE3 z-nMKJ)2p(M1sOCE2z%E=_I7R!3`&x}uD~Y+LtccY82;;J>OLT0d{`YA{0M@LM1Tyx z=@E8MDqZd@sfBRF3}D}T{C<^UX@RZ(9RQpN#yX&@yAV$wb-3oUqf^~2UuWqR5(oFu z7DF%x??d>6A!B-b+@fn(0Vp4xemT#UT#aSN443%5JNr#!R7Up{*2KxAD&n_e!y}ph zaV>-faB1+~-UaxI2wzPr=(oWP2Mz$P{cv~!rDUX-`N?b4{6L0LB&(-kN_u6#j=>I> z*{4f>8hp7dGkG{F@2uS*jF|%jiCIKkM>cqPy6*;r3Tr1w-_{9e`hGwqfoWkIuk7La z^$+*^Z+OKcH#fU@7hcnHp#hnRedF79)>^*%k?Wi$aQ}k}-*M(2`?fJrXI+jS-QAK3 za3A!w0aM*m+Hds<42%Q~IAnNtQ%`fJq2j?}z#DNGhd2#kmAH4g75I7=g@=(S%XWg3 zaw`9AQd+K^3hzKC*z_R6j_x-2nngQ%6xAC#nNg`GBtYbY6DCPbL^USDlRL4y%P&V zuxna!%p6tU(5fe*2(Ja`tI?Rexd0 zDtPY-QRgpRu|gGrI8NT7K-Ykd?-TKxnQ6~xBvD=C^zrYHPsZaeh;7a?Y5ZB}{*|92 z)I*;?YcOZFRPgjviq$ngc(KfN;QJ~0%C`+DU~}8bbs>kL2ZMBA6&ILz{z`>OJqd-U zb`Vp}-!H8)lC%?T6&-%Bh0$ub(^YUKv0yRWkr{6IB<<4A(w{)fS>8KUd;C2*7qUxd z9NTJXU+9URf$vuSI#-J7VfbH=9_9G>S>^u}Lc&K!7jo^iv*nLQ{8R)L$M*`wP*W=# zEkL9F>*&wRS$g#ljC|O3vtLQi#=Kwa$`UUPKaeDY) z$pStIO@^EOZmJ?qVq)Lk1Sc!I?u3d7>U=DDFB}WtOzixsc`@hTz#DZ7Y0TzqZ51}c z{1m}2IubmyCx?%D22K&uCe2z+;(j1tD-RaF$)U6nJPgFLzIlY~icK}2Pt__WCMGsS zjqS3i8IYVezwWVN<+myp-xe07gjHNy9&1y51-4s1r%suFSCC&VD@$*F*#B8Y!L6aK zmAxhahR_k=cqPhF*cKu;XCh@FkiI76qA1MaPrW&Y`$K%1u~4DHK^2VjhShFyRd%VQsvP(KH^lZx8V2A~ObNtb+4NkhbeMq8-j!Gj0Pv%FbImFA1NZmGlj zh1Z`t)vu)+Cl93gAfN8mudeA`dQ;=|;CV#J!Qz`(Ul9e#OO?q5@YD2nmKnb2f9H-& zdnhNS4iW6arj;pfGYU8`R&bVRZZQ*t(@<$e#eAGk_*Hu)OOy;MVW;B_(?-JT+%H0` z@riD!CH3oSBxDM_66rD&i>bDaN*P-cuX~Gc*dTpu$@?v-Hf^`vQgpl^Ek5}3kBz8JwyX=iI^iP`aP?U!^Hv9S?W^IGtBx8OD4s`}}D)#!n+3m6T^ z5kSg`u|FnlcAe2lI0fQdr(Mb!ShrD6k0aJc=)rFUR*Oy9Vt59EgV5wX(2eO|ep>)J zX`sTRMbX+9>m=omxZk~-DrY@Drl0K8!gA!q>s^MST&Vt&FSfCPO2+_pcB9Ia8)4rx zRP{F0&}s`%H7*S4UWWOl&7_04^62-QVU5%GEe=1d>C_8sIHNMY6bEec&V0Cu&e}*~ zY6X|TMfla&8=>a{$>%Ao4;va9>=5Az={P(73VwFrsNe~~`)q>LxpCAFRS^bQ{dJq* zDfm&v3u(nx8Tgt)zF_5A_FYbA>_02adXdVAe?C&AlC>%fV`f|t9S`9BM;4vvA9(N*bl9WZv&waI7IC^nv6o(R1v^m>OEGMV*wfd7{o zIy&o`xjZtGrL*_lU&p(n(30Xs5#l7QX30K>H`~{yGQAW_9YYIY3TCXOR#yzsG2sY} z13Z9@xDiK>8f@98Kr`wkdR2bMuJu?{h05|t_xA~tN3OG6lHiJP3nZg(oT_kQ>8~{L zqoV-qMA?T@!2^@?M)C!if`s`7;f3znbi)iKb# z@`W^rxn7?%z?Q&~pfvEL>g#U)?S~JG2TFchwR(qdbJhb$`g1^l@Rwv9@Fxl+`MTi5jnK=p>qZ+_2Oolqj zzO-LTzS6yn;;piC){+lhq7~REsJ3$;j=M?hSYdL$VFPv?QY}Hkj`!;($V^}>Y?;hp zvLGpXs zO#fkt3Q0N#iHLHl8ZX>eE;$`fEuKn*G)SDyfO`|? z9^sY2trdn8(o4w;WA=M4Vd1gY=FKNmGj*PJrmkI76IyJVgEDTy^u$;qF%jN;kudXR zcac&@NZdUrAYd=g)Z>qh8S#B-2(>b<1XmyqJ+-4}qJmXzE)dv$BwKKzI0vlt#5QZ% zIIPqRUno6Ny!w7c^(|lD9E88N9s9Y{VBA&~FZl{6y6x}74|6VG&N_KRM@LEzIR~(Z zTn2}Plebna1+Kx&qPL}ohx1uZ$5Efk#Pf1frh{@MFK6HM;3DPeG#=X?=2@94`-&IH zDARKAjKRLc<=RSQrHBKltMfya#h}Qy8A7rZbw{0LljZo=HeB6B#SlC4xdex=S<#q*s;M!exZ51Tu13$w zdwz{>uE=3K*B90RO~ZZ+27MGyz7oB_J|(sJ#3g}>w;R?dE1Q0OcY_D*#p>{gh#Fg) zhk2-`=j8tWl>DTX6vU#lfON4yJB>xszRH=`FKd%;u3Z5`pJH9Qb!lSe`T(^m{`?9< z*IO!+?OKhUy-sb4#vD6-$G#Y-jf?s0^W;eg7QLr|fM0~VXhuv$bXC$p!#eM=F^pW) z)|}Rm#RH<*L5s89E@$;2Bsh2>NCLQNYrvtH(S3Wc1FFL{hspjz7>i=^lLgg>3GFLp z)r4rlH~yG;8-#CAZb=a-=_H;^mKhPDw7 z7f`YUemW2t9lfNJm4}zt1iTd-jPT+Y1YHeM8pA zPv~{|N7m~ED`SKX(}_Wc1Z#*kF;TmoV4mR~WH_cN=yCR2{wxopk>0BIRz%=0BXYq( zHJN8@@|?Uc&_te()J*5L6d8W-lF)s8f^DMRiBZ$_)DG)CGFPY*E2u-!FFBShStsD2 z1=lHXJUBW#HIBmRcjUt>@c&?UdIQv>lU=MvAk%=P;)X#5&cisDr`Y*sOvn_`N|4s; z=uyU-k|SY9#NZ;^c=3gg{m#?9ZyHgH0M{z?DqYdu+Z#kMaHSVz=WGz=S?HCw>$y$# z%M0EjzQQZLdE!zWB<4%BZ-e#hl)e!;3y9MwtPT?PEl@Lija2_?I{ ze=xeCt;kWiZt`PMZ^K_$iJ!3NdK*OQG={4qXVVJNzU8Y?!!j7lu-l+QAh z_n6CEJrtputlgBP;h`Iyk60^Ud~~5QM@zut8L}0{Ie86rqf>t#FF~G)WdGQGr3!|! zawD1JX7s)(5}sBZyurUoQ+3AHSpTaCGyRzW&AYnM)ZXlKutb0j)j;b4Wx96Ux8LX98Y>hUdfI{DtHdvx)2P16} zr3&Nb#}R;YB}CNE)m4I7}k#?x>05O_HDn( zJ2EC!?zP~yBWSz~^BD|vnL)~|sS0Cr+ME-#Huh7C^mzdAs@xxf^(>!Kshm<3ltim4 zq{J5kta8P37 zd8cIy^ClJ+lQN#pPkHPW-!QBz03kv-v+W;^BPI{XooOfrA!dh-8Y>sC zol7?fe>6{0^HIa{O`CFpW|#AZP#1x3jX5)_OjHzW;8=o1NeX1obW&sZa{r;dhAjo8 znR}}$t=8MjZr`Y%a5mInOP;+@O z-T?%gkaQ|;j_c2IZ-9kMD*ufqc(4HU_gZ-=^rwdoT?Il&5ExYHfV434fddIs{>Rnu zh06S!N`O?hreXLr5laJr6&Yh?F}cIolhGrmO;3#z4;|pHbHr8b8M*oSFnJ|E_Sv&% zFf{T2DuUq{q6-kh;td!TUqf-j|J2fAC!w|Ehcs>&?fLfQ3*l1}%l-=Wcf0@Z5>S1E zw+IR4t}*^m6B_!X{BN%`GOdYaVt^tZn}2n3ag-#CQnIoJ&0VzA&6mRy8?iSYL$rss zjJ9E;7G#*AvGMTgVDRc@prY24uiUY&bhEbqOK?Wx6Fk4&;DOHDPN4u@@NtgGnA$>g zCNTN=nOv(3tPUJ@untJ(8@PQORkZFZFVYn1OW|;(qrfAJ18P0^^FlP%rUfnlkO<65 zA@gG|2-iUk088?l0e`u~~xYb)+=`(uJl^Xq5!f+fudxrVBq2Rkj+jqhKn-YYVWk zU89faEL#?XUYzsK%FdB|6IlD(1jgCcVIlV00W3h@$!$0%`K%U&t0QDc#wx|sSzAW$ zAxk|yJx&}6E`E0En{W?_ad@;gl$M7tfO)vOyd(h<9|UA3PoKhN-P_UY;MWv2qr+SV zAIC*DEiJ75%GX&2a!?03zQ3-XNntC zVH15`D!HW3gXt4sC2(cVZ6J6l1?<(#SuqzKg`|?9P|Im9;CEca$I^nV0Mz-AsoJp_ z;=N%0;a_1;>x>3CZzB%8zCP>z4aLgnEMUe6A|tA7w2(wHI|;}hTvSfp6C^1M86}_I z4waX{P6-0tbw_@pu22x3 z<)sFi66uK0s@DqD8Uekrz zil2qDg00}X+?4_rThWEL&t3sL8s_p%==mEZbZ-V6#5#eu5687ilG{n3{I`s5@RLD= z#ncY0LKrajg>Whz#WDpE1gQx@b^!Og9>k_y|3mofxqRiP%{cV#7c&t*pX<&rUq~zZ z>%@z1?Lxic;JFad3f0zW8-Q8~;VmmM^etr9d67w5cV^V|-H(&+eoXvCqV+X2d$=4U z&UNT=8{knk(+CfT^a|X;V9q!00>g6tS6g0TQG`aITE^Ptkand4Dn4+J0 zg%xj`j`HUCJ0?hK@BMxm5%DZ8?x2%XUi&4)LU@ng6a_p$7@Eoi5?z`lukin8IAC1p zJ-@WP913RU!kZ_o?0qn&E7Z9;H$s%ReQRiyB^nxhus^8CnuRMSXVo!G3m?V`G1HUS zb|3dUW#^WJUIK%T1jOahf~i_rW6Gs?2bd~eM=)@Pb2Cwx@oyFTK?6Cv(I#W0k!4g$ z{xf7<7!!_e&D(cR?y)_a=seBGv~_JbwZPv6y>Dde21(bjG2|N*Ag7Sz$`$TUYv@hN zm^`n9nC(W@RIrJSF^_1Rx2?{}OnJfPOTP{%y9wDB?0?X8;|8{40x|(U^@KYrPOj$= z9DrIw;1#$c8Ep*dFBA>M|6hZB0iXr0@pd3l{|euM4?sOC+x)qxokP`aSX_230msN_ z4fC!ELE%`j;>)1pMEq=i!XAysp{}7Q4-n8}fk0tKAaV)o>b4Dk)7lYv1VP2B z%1-*AUF*ER6gl$b>tC_UE?Bb>yJs@+CDEq@)57!{7aLtD=|M(FN-2OL;^s#32}xiE zOvw7v`~6&gudxa3M;EA{?yv;)55*0)-8+lO4Xq)(sHQqE2W4vHdco7krGN7v*4Yb) zS>XUv!^I)0y-`;`Z4)C19yZn8{ZN*XU|RdP@_+PhH0a&#Io(%-9p5a;$LaocGp0G|8*y#B^LSFo|Jdh`Z5l5B z9u)u&b|DxSpxB0qW}WAfsW$g;Zce38s|F0@t%r`3NQGsuL30< zgLb|UBmG&gz*hx4A}_tjnS_B1HkORbC!DI%{i2F^I|7ri^8(|h1JxgnoCr`MR*~XA z3jRIvn5(LHhGwEMOp6m_=9+qAr+&S)rG?Jqa#VU<8^8{{2&jN~$DK3U)(^kC4|@RE zJ7l<^0k!YOZzYxhrlvP48XR3-e%t(c_iJGaWwXa#)$K>xLp27DX={7pY{qWqbN*kU z%ctH1(H!fV`UMeUI3U+nr4kUzDxILaa*um&%IMJDIeA>EM6&ZZ8^DLGcEA0bChsoj zb?u8hHNLZbw_QxLGjWcCm!AhFw1_-u92?>RlkG6aw=)y0N@hbeBT8SE>rlAKdaj-UkCLkM=TTqlKE zoFsNhTn4Pg%u27*)JfX-lbG4`r4hP4hrZS<(5Stz6mtsyPRKBMrbA4DKnI1hA&HQ4 zoaAk;v3sU+`EQf;p}=tJ!cyUkX^MhnJXyUG7V9v1I>mC-(-@?AOqlZl+wa)9#Kk23 zXXMt!5^bq=DM3!FF5L9khbEtgcca2G;z42e>iD%L#uIom5GUP_Fa3nA^WMVKW#@*% z)#XlF6!Rg=ht`{V;3mz8QDnp({XDV8tFa7<*UCSoZ1L=eD7+LE87lRd*C*) z^kv?u`Y7$FewynvjeV$Srr}-t198(RD59XsQzJeSj56*IK-t& zT`{pCf;WknLrM|{zpi0^{nYZC2R!H_%~=~?eDf&MS`Q1;wS{2^a3Q&*I+~Y%_{hr= z$~HUTzb~<@J2iHT27B2&7VC=d-;slW89hCpo?UfS52EHsYWH#P2^W%-gPiM6pY~^L zyY!5&H)r9^$qYDN_{)?p|Ec`plb)51QjI|3mrvOFp^w>h?wr`HZC$QM6;GJk9BZp} z4XUuHGBK(p-1ty%mR46QS*mCVgcN&%oIDb}r5C9~z+8xG(xMZ&9cRx*h8I^E96Gex zo;x00R9V3qiZ7N-<`t%>0H^q@Ng&4 zB%a;hP-xelciv8764t*7jWkgeRSk`r`)6`2q0>ci+-Q-7wguF8dXu5c?1;=7P6viV z!ah(S<2;0LRs^NOumWf>~CufE>HsbAWO+tW$;Ss zi9<2RA`TI`GNKeX3(z4uRBs8Vf|mnkiCB-xyB~enfVEPT+nr=Unj4vg0m1Eh0ObR?eYv~g%wkJvYB3g8f<)VR6T?^ycP4_v%l7Uf-@~T zTEn6W%0~=T2ulftI)u63V+2h6_Kd&fnF7_>`yG9{mB`r(X;uSiR#VMU)g}^3lG4(< zfp)x(iXxJa{^B}2_h_q=N(ZewH`Go&5bR5@xcq^^aDQL^umOC99)u{2_fO3iSTj8y z^D&kGLwA)eEFZ7lxsz$1tj&Mjew4{r^}@x`+ER1b3_qXNeNP#w?t^+>Gbqp#Y!`@a z^#XEdK03;jK#YGT`B;qRVw*GP($R4=p2`DC48PxY5UnBfJgz$e{<0s+1Z;6gD z2U;Lxx(h~bJ}19y=`cLX1m~V$`fdM4b3On7=!Uqn7WkX*UF#HNFQgp(ea5kIlcX7&y^iJ=ePK+z9B1V#O2~? zDDSvwDcAEn&32oYiwoYh)o&Ix=?;F~73Cc8@m5~-ft0ul8^%R`1ne8F+VJg&lIQv# zo~OQY-pn_Wl{H~rb~XK=yWsSKFG6oUd0cpR#6?mG_WJa{Mw%Xr9ZuqYcch@-3YHW+|vw<8o&#iYmUh1NpSnkb8 z;k#GWy>W1K*J)GJj}6vB62TyS9?{l*QBtBg^!xXRmJ4Sg-1I+HSPJMQMCL%qhx9jS zlwLtmFDWT`(M14v>q5kSO-)n}=LPKefPS6srH}Q7371K)u1v;gx1*S}>md(4mad&F zjT3E#X4ckwq|-+#LN-z;J-ITAG_>B5guNd%3E|iaRiryd}PXQ zpSh>x-vbxWQ^}wBh~3Z8$4LIAe$~Fcd!Lp1zo*+HHP310o9w(_ynJ~!KHO4$JCwgj zvQv95S(tdlMJtSXgr0m4<>cOwCr`@1f9JlHC{%T*YJt{&{}n=~Gi@(jIs(P<3lz%T zJH>YiavTukh_z*y`6(2gEPvU0mg*=dzA$C3N-g{L?K!*h2-t@oy3Eg=I|Knwc0=rG zOK0bF5c)n{Y0O=K`=HZ$eaEV@@^al)wK@g9MI!n+kIS_U4P6VSew5F?X}16mH)-wr zkR9Ce^V6eG_5c3!Cy{r4XzJf1M^}Y8IaG({2K4tQr{od!*8qU zVXHA9k!4@LJO%n06&riN|9f@y8$2+t@!h={(^P<(->a&k$ZKMC-?k0$v|4sOs-}u( z1UbH--8Hgj&!~%uj9k~!+A7Au{0s6-vdD+vLr;W-Vr$nPz{P}TGp8-pyyERy+!Yu! zlmmi$1H3RAJ_hh63mn|-m+mn1n%{N8X7dWR4GIcT5fN&JPW>MEMx#;Nch&Yv{FiNQ z#bNq}9}-}CH5H=iG84b8rc6$Xii)TCJki9I)z-cR7vn)2ToB%)X8F|gSo0+g0B~}J zUw(_ky9PG)v2E~SLGChs{_@Jo2Q82ML9NvA$T3oP#e;=?1fPf$jK?tcVwYv7x6ADx zZw%6ZLU}?xclM~u6w_(tjs$i|?~)SB$-W%PB`Sd<8C(>~!Ml4@L132GJ(PgMK3X?G zf823wjA?_?#AB>uJaetX-RlzcEz7vHlq?0_pDA6~vrSg-lVicFl>GZ{c_232_xCsM zHIPsU?3$*#dFxhWRFpb436Mg|2S2OCpaxp%X>=Q#$b%->W{maautz*xk%7U{*COc* zi`(pr7U^85bs235`k7=EibMJ`@=UR!B2!Y12QR2iOiJp6cjbb*am}79B`GLazKh4C zg`rhV2c5$K#^gs29h&)1nAc!mJg|GW*XC(7$gLB{44sdnKG{(4Jaog@C<_bAQ9V6# zen&(`3|6C&G@agu@p}xKc@#R7;06W3{y^t^R;O|y2RJ5JBY~krSXyy z67mH#mPruE6sI62`Jj=}vy|saPwQirKkenQ_$JZz$QStO=~Jin_~YEdfpUgwi|Pvz z6!NmN{?;y+CV)T5F4_r{M{M1?^=+0_i5i|p55U)!)>2dRr4^4Fe=II88yQJ{*qeyE z2GtBiieEpm>F@mrMg@FDs=BptXq^hkk)0+PG@7*&g>|MU~*pW>uv}O3@8FEl^W5+mz?`u(_rLvJNJJLGk z(S_6#V}pj&f7lyVDcTQ&3nzEb##?CPk{9{IF=zq^Y+<04D|HMD2dBHua<{HY2pNnH z+Bmvm3%1`6MmyOFewZE6({rp4)uEGMSKnB#xPHCSf>_U-hRxFlKbDk`Ct8>>2U+s^ zQWbCL;(nD>@AP7O*v^3m0tfNwAM2em!rWWN;frynFQKUAEAo+kL*V;$V5xy)_lAqR z`}PH4F=J((pgR4iR*QNlztGd@7d%Hy1&6`JxUgx3O{%$YBu-td0N(HD1UIj^oxCz@ za048kymFo)UplxGzK)qIzo}PNkP|`Zxuo94$n;6ibj7pSc{{!IlDcZt_k}rr1EAjt zTsDw8e;tVIG3mp>NV2vR$Yy9Aa*(720HWN2>|@&PWUFE6qnutn~Pi znWYThO~-KYvyjH~F?!72E=pEcxAUZ`~esQbv^o(C}f5^ojSU zMw>PoA_W=GK)lm-P7P^b-KGzt=5^wtQ2a~lREDO-VA>w);!vV||Hxaz-tPq&RtK5{ zrr*Tc&|dEEo^Z(+4L8M!-9;T5pA7sd?{i2Xm!Cv32h*McPii%N0gxN(WMFm!qr4X)W?dyo&3~e6|$_pu`#VP+iL{+j%fgd6jct zeb(kPbl&enFAF`#6M1>dV_4v{3QVX6Nk#ti&jn4oDgae0H(yZgrH;R~PYd77D++o+ zD!B4PNd6E_J5cM3v_o;|^px6Ad50qtBU|~r0r~rKJ*&ubBHg(?HL1lXK46oC97?w0 zv)VVYWw~Xa1lHw+AM|FW><0hptdo;l-Ex98u`@1ApfiG( z)?T_heK^wglr%N^;eG7iD$2TPRWgenLxFXuaw4I^;4lhT1N)XGg9}Pu&(li$=^H%V znK2cG4(;@U@_Zga*P*gwLqipYpT(!&I@f?e5e}<>?r(i=s=e-_B7tY_s^-Wv)5b4@ zXeP(+|I7DArJc_t%k4_(^I9PFAZ^ir|LVJ` zt%H!LIi$C?=EI!WKHZ@E$GZaM%e6gcRu-;34WNJfSIhCt9BcF2e*dVtZl?9rEVqrL z>#N5oCm$!d%U~7lh{06&!lbDLnT8#T)1$oD1;46G_avd3KWW70i8H9XCet6eu>rxs z=Xy1lrKeB6wi@Z=@&%c+?6xRxYw5I)kN3oe-u4gDE;!JiA28EDf2^vkeAp0=#^Hmd zegXH=OICzJFL`*?mK>Q&6C*YOK|vvrY^X*r<3G|z8hwAJ*}uaw$4T?4cz+zN1YNvM z0jkztuxi}mG!mPlUh?F1))fDZ1)17Mj(q5)MTLjw`n#;UvNG=ChJx|YALWnDG>VRH zT2T&?XY=4_W5@g4;rZ9LGjefvB+>xcimRv?Du-&}c|CXbY$?!J^UWgM3nNk2!6i-J z)~LjEeecTWtqxmnPf10*d>NwB3xd=+6bE~7q+7!E|J6nCL|`uO1kisvsF{QUkX z9aCJyFWo_G#DN7njx|+(+;!nt~&sZMU)hlp%Iz2h`@~0u&-0myl!oqpA z={hA+KUPxJ?@n?)P_3IcQ)%~TSz0Et9ixUzGL9}}ifJF2roDCPj43OmX?9MsE0>Q8 zOiVqCfA6Op5S~1x+MWKBeW=HWHk5i;puM$N`TWoLgK+(+h_UVPGn~k?ShMD0RL$Zi z>tuU|rq1thuA<|;d zaHK_hNu{WiHc{HckoXDFKGjI3qJ2}^6_q+IN2K+X(xT;{eSfc~{N^|BXWsXnf8PGE zw4A=@`+c7KzV7R~?)&-K!-&qwp3mgGeqwYoOVSfXsb3V{&SZ58dK!lTqC*pN4T)Rz ztja@l9KY>JtG$oYO{A;@u|y$fsVrXX*&O%q{(XW{z+;z6u%|zNP9CbPBi7YUc2mW^ zZ@3Sd)YT^tZFW5f-zh3epPIh&hYGxzyWVOxSn(^~eg}pU$6&~Z=-kti+MSIPLs=8Q z4j+s&josL~p93LlkGOBLbwcbW5@;z7I)-_N{AUM+_$KNX_{)9G{I;iK`{vE3)~yTo zW-!dJa*oU#woZ3QN1^z*wpJ?ywbkc$zM1>ht#jbe-?Hq&4Rc{b{`~_XhrSNrIX^?6 zhIsx|3O4%g-u5>&k)0p~0%p)>0#K?qG4L+eZNMMeXoc`LOm7y=<~4uY+$`!{WM4w* zK33h-blyYq8=_xT$id?Fuhc0g*+y>B^04wx>W+>Xm^{U~(i@314mNOy91spL%9$O= zNK6zL^SrprX#n96D5+~mN}${@C<*idgyWj(vZC|!(;ZQ0e zOIus%S>IP&?4CcZj&GdF3Y4njTW0qh*>JT_P`WvQ+?kOhIHm^qks5c%VQZnW8YE>6 zJ-zzhJeLH7TDW*y7=Fea<1KNIq_`c%BhO~telJTH4-tjbM`}msF-U-k)k^Qpr)$!X zovey(tS~zj`N8^;xaa^kOdhSMa>Hv+G3h z$DhH}yysA8QvYh|<)=#uvmE0Km0Re+OVKG)^Xq=OQvh?I3g z21V&3GFLdk$W zMMqzrWZiE!-F>GW>J>&WJa_EZcgKZI0M%H`Brx;b8~qaN+U&MTOY1=MU|>3bEbd<~ z>I;O4)DG#~`LZ<)KL_@Je0~DEg+Azk7eQUe%$dy<>&!K+HApNOi4d<(D8UYyK%I~K zrCQo%*A2ZMWCa6umQTYj?H+%uIaPjAUmv1bJd8b-c6Mq^x4}C&P0&<3`2wg?)YDd& zwhr*q8Mp>xS0>uL1%}Yj5$wRX(mQW*U_bc=bVhuym7PV0F3XY&`ee74T;kv`MA$@d z8$n$@>jeaKFqa*E8 zY5=8NJHKj}atgQgNs&?YG|~Hok4~fPcm|j~GB6&yQ>u&G;C6`8f?dWNMZVuJ9}ioT z#1cP}ho$b2!ITKojss2SxK3*v-}v%y-G#|vDUcT^o^EXy6Ej?;*cf@W@OQL0MgdWs zo1Pe6#(c!{$SmPb%}X1YR{~7V)i_``$3#ZH6q$0w*mtF6Apm^+&DlCAXMapgt%yglU2PnXJ06a2QpaNa zWG3BUq^4#Zt7&6o+qa?*XrB1`fThr3;OS@PSbX?dNFo6K*c)xdDeyCZD|fRu3bke@ z@oN@HfA$uzIcI5kEH-vDqfzEW>-ONWX^-@b4E+i1Z%m&v8HDZ|%;I0T{EnBnmyoHX zcmpBs%1jcZgAk;~zP5w*ly;iJ50O$7d?%yAH?sS3pPTFNyUFlxkJ(9P$>O7tKev*? zjAhQTaxvS2Q!g%-$zm|ICa9%4_>W?MnlguhK0rNWgOj} zWCePGpnZV^jJ1)vfp@=3fm54ow^t$+%w*;GiHrLuS-X;SxdvM#EfeZYjU`3Wy;!;K z^dFEI3L+B|RZ(Rk7f-zxL18}|^*J;e9GT-Gh05>-qTnPxGK_Alp=Mx15}NOV*Xtl$5?xKjODqn3%j| zaEp3K?c8b7QxXQ?!6$pUI*y$``?mCkmAz=q!vohraULuKlA+aOo{Hu7`p{~ldA_=~ zci0jeUdCl81|>6{D|F`f$jF1>p-5yzW7%f&YR~rcUcPXZAeg%8hEyPC!89P?aQQ{|B@LMbr@@9 zCwq~+wMyRf$VsWihrm9Of5C7YitZnBsOF}L2@XP0-;>Dk?<{>+I2r+(u*7#7xy zuy=C1M}_{6yc9}y7S~Bs`Q%Y!itA8MbOd2Rkxs~4g%AtRB%vt7_J?xO$-N&L#_epS--h%-!*v&@n*HyoVvDBJb;0dvXskhAJJt);MIJ9X#xx(O0X5 zAOfVD<}vMZuCoiqHf7?TLK*=pMWvAm-k?kHR4WE6710@_9dF`U<<^`h_avY^-sPiD zN&lhI^SIR-8X6-ug0b_IX)7v=C0y5v+SJ}Kgc}?;|GP3PEy7q>QCDs+#k3%QZO=ce zF|pE7W&29cnd?iIdJi#fPxc=I3r2O&`f@-}kRElb;LXSH_1J5Xzv&UHV-7Or_|!9b z{HEhLl}$;w)ioe-UR3}E6)ZTn2ni%EU$npoe;EfqjfoKq!!9UTc4%Hi@bWG-lnwqx zDPxIXmRi~h-9j#@ukwnG6iV6EO_E1{;k3?{M&4RI_j}69Xs+BzXZCLJeKPc^RF5sM zU|B{Gw>4A_uQS-*Wj7IVHnuLOl8{O1>=zLx%su(|A1;M_T6fD2W1G&woCTWt^?95t zt_I2rJSXOpXzJ)h+wDECP$4VE!>&JZ=+QlZ{`Lu17ndPe>8P?g5}_fpYczD4NHgq3H}^>eEKjW4aks>j z6+l(ov`P+rtM-MB0BS&CQi2FvvGfm-Y^anBrD$u(Gw)q0xMt`@pePm?pUa zjUi5}nVOnDjg6%REtSRw1d)vA{J`u2^OsGlK6Q1S>^!&Srw#p8<>hZ-YHAwy`y;JKG=L&*-=3f?>LSjAo?NphirD+l^xx181FL zZ!d8{3uYg-D21Y(1oLs2tTUs=&K7qKo@;(_$v*p}l$6w3pTo6K zhLV#dQBCN*7K+WzK8aYnd-?B>-Yg*`+mCw+aC#R>M*kky*sr2%FrWgu3Mls@Tf^Mj z%ea64{?d>MYh&Yrmg|$q*lC`#9{AbMV1`{f?jK3RG-~o+P{d}_A%tkn?VXvPOveNi z+*XXtes%mD&x#q4I6;f^omegL7$;jS;*sY$JLBB!z;=`$@7@Z2d9(U9SIkM7?%1jz zx$p(Jxj-|vGw{wLV;rog(ftu5@avM2cD7ioD*1@2sgZia4pIF$(TVE^HBsh}uQ{?; zX$`rXif8)OG8mCZsgdBQX^cOVLn~%tAiBVP@N4YW0V;w%iWY47_N$~?rY3)2>r8%C z#;O(I+wVD(^CZ(bEl(MY4-{;)=mU#vAD{LR{#kP9!@(XWnTXRoE`xMwe8o~;uUv)s zq;QUb#Pg&#t;licQkmRE*>U(yN5`3KQOzS)yxX9vj3oRD6$4{&>4LU@!tYpmsI(Q4 zX>*4Igzk-0NL2w)9}LObi{tAmH|!9@@iax=^tz)SkWK6Z!A(T zX9{4=1-@qxM)&R9u=aAqeOnv?0|TwFA?y=bj(KFI8OUA+LjYLOkmV5lKGDdQFo47$ zf%&Te<0op`H{HMKJj?qG@&LEEVJ-T#xu37I+;iKR^@DLsrC6C4s~P>}y_o%)>)cjT zA^iZc4{|j1(n1N2+s-vxkT#EUEpog6uOG%*LSM0uHC#(b25AYbATsTdZv-@kG%DfL z^^5e+>uzj>5)5%`3;P)0d^e_H%UtNV>CD0B>YE*Q*Nau;^xP}az36^b*IVR+iaI=1 za1xp@Qy8cPdWk2Q{HA>C;mTyVH`3uTQZjaeV_7BIp(UGlj`Gu8X0qI`1c4M`GC-aN zkoKa>;00nU*xOoO+nm#XoZpMH>E$9gmY0MVN$>g4h`>b@_Z>Tw@ZQrlEHyq$d*Nj} z#QVBiG4|=xV}zRb7)g!L<9D9>1%i5+1_{4ri_Oc0;GAuH1R#cDB;XU<1c-z1MVoLP zySqnyq!j9@0v$h$k~p8WEqA2BD(V6@SApN#nwm$L zS$E{d=?~tNf{!+erAo(+Atc$%h+@FiyLqX_EJ9}Me-N_!545L%geXlw;9|R@_OZ0K zPOp_`OS(WkwbF>fQEAe7dXu*}MNqFvbtRJo;C&9icykDZ51&iJ|4!vxK7pDrg(H4j z4O=$)fJQc^+6}zA%}u|WQ8Vthnk)GZSIr%+SIQ3;O6gN{)SFx(E?WTnPr#CA>O02k zI#YpdLrdY*3Sq5Zv$ls`R+eS@=#RstZLYRlQr@-?nJiLAP|MoC1`S&w=3j!Q=+J@_ z6)HBoa4OHT5_jVlwX_ir;CHR8ujI}S_;9JUFbJ30&5U{f{(WXnE_wVYx@HIN6>;lI z`XyTMdM!2ov!r~)mIspg#f4AH?rN4~YE(bY%WGNvB^ThCz35(5SE}X{Rn6oX8?Avg zi>>-G7y;eV0d^|8f;N?{RtsjW2Rb4V5U0p%BjK|1n46oQyjt#bs9>~31Qv}XPSMWX z&0fw*d6CxS8L96E5e9`QIDJdr#OEF5m!Uk>M&2BV1b`t#H;xVfoDs@riqjYU>ltdJ zaa>%$U|S-#7nz-e9j7;esb*j(%~xcUpvZdeMAvh2dQRL&;7E$)wtFgAUCc6oOsS%q z2@_I*@0`i%3x(&#Bgp%5=&dk|_d$$C)^<<@3~d5CHmp3^+0?tf2y*)5Bx?r`a)I{BIipU&Ld;D7>WsU3HUG&D2;a#SKCr@e zT$F(s)I`9K+MH>B2!%F1`@ zBlk(V%SV8jibjf8nl(7=^w~w0AJXA5KMYV8b?8ie4crA3Mid8dIk-(3QCIO~GS_^+ z9&%)KVEI|$Qc{#$l%dz*0hqbm!1RP>b&;|JSUW*Bx!}A9x+xwO*}M_A)+O(^ng=rH z#zzJGA3S&rzfJ0^&R4^iWo0gZ`5lpA_ntj}fO^ghd*O(jQfOSwPDLgLJ6I}`v(_rX z3g*C0nLevUxDwv)S7OXDV7cXo4az-WwEvD+LKOl)!;znw_|=nqDMA?ECQkqp!B29=_5nBdt=e+Kpoi-z$UPSP+i&OZr8UZbk-#XJ@|MNMtK$Er(8VXw z56b+bLiayZgnx0Uk^1Z86c!Wt_&@5eIfvPopI~IGwxBgrsNA3%)OD6WE0S1F`7; z{>kgF^L1`W7ZGaPX8uoJ&EI);-t>nc6>y$94! z?peTGTF4qLXN|(J=e*pz2&ImO1W%3??z!f7+gf;TKBA>8ijgCvk|Y}trNmqTSP%xf zO%EzQ@1Bl1OC(;`Z~X!$4^js~TSWJ42eW|5et@)3A+yXo5iS~dIqwm8@BVbwGXFHo za3s$r_vy=c0R6e^qR?zPYLy&HK}s$&$2M&(Eo9m^jEJLsO=!c^Knjf3 zUBtEkaIL&|d;=Q)0kELrZ{uNq-OrU5Ivbq^=aAFq4%g^+48~I*AKK)@vt8F_rw*%h zSppcVl55U<47p*wXzY5F%~|SOwr=I6_GiEXhq=KiPC_77&>PVMYd;p8;Ti;N?M8SGFm++w+SYVX?w_uHHtGR^Bxji@Od&#s$X)iI%`G_+9SwD`}UUWSNnH z4N--K;H#$t8xk+Y#B`S+COnkh+$=wRWrA+Y)Nmeuu)Rs&Sioi5k|j5W>a!FqE_}(KJV_0yZRYq_{WSP_Vf&?F~!8Pj|YZvvVB+^Nd4`NeU$=^>4Y z`l^|1?LLRd^7JTcoHxfnD@BDVKoyQyiqG7njbMdwO1DtIp+ljD zFOQJts1~#g4Q=Y_y`z&bsJ&ciRPiS7!KljgNLbE^k(sQ%FUT`Bz%;|?qozB1vwUVJ zBSyq-_w<~LH|($OI8!XoxfLc86tE)$is@*<%W4)oYo4f4zvk|a_Khrk5Ech6m;yu@ zuiG2CYXQ?D#QTHb`Sa-Uz3&V&txD5ZhgG4BLjES@p_ziP4-2!Cr~gxROk@_=UR3)lUi>{F;V2Q<+tSL8-U_U|_sXw?UZC1RMw+&}T${Gb7l=zy~c`7Ps#J z04fHkUut`~SZUU6-pW&Rd;x~fMMH|6+$FeiE-yr*2ew>g5PyPKnM<{Q6(YAOC@}j% zm9d6VQ^9Jyr^`6eWLdS_XmiZWScyV!u@A?^@*jEywuiq9ms8L(Y;k!qC)8=B?(r^K zRp<14%ad(qwT>CgUb9%_ItQN%j`{D}@AeoB0EQ24rCpE-bAcfdf?DUVCB>EgQ6E2k z+{bPG_V_YynBi&aFsDF-35RFNam=I=(G&bFy$(dX{eC-eTzDD0-TLRIB`eD-jVD(! z2fM0zu@yTnM-EoLs{V2l$q-~jT%`5&?b|1kn+C?i+6_f7*1*tAG2YV$kws*olGKxh zUe~|&1P_vL$r#UQ@aC79%i_A0#84b?#h?32I%~q;I$9#h?|XSS=QK8kn!cQ(yF}Zt zfV+S>&yvr~KbWK8bC8j&aIfrnZkzo3JFQ6mNw~auxAH%Fpz#`KuR=>vl$4WuQdr39 zBk{B#GB_k8#c2WM-bK8SE+@wQzB#IzI_F)!ZDzSW@*$@y4Ekk4|7KJRiX`^!J4X!P z-*w-u%t=-2ipJj~raEYoKj9^lw#mrky~`T(teqWadK21)dOLOb`Y(&UVpQe#J@YA} z@r|+8lH^7)J^?7*(>TCCefQ9;g#a5WjNgQC9~G0&X@uuZ+SJbFEs>Cc(A+m=WhuC- zdzy2Xc~`FU0Wr$Yr4_Hm(h?F;U%#@3i$}l?Q7GzhEnW!sMkG)by}Q&1h6+iS)~ndLnOqIXLkPu=PLG-#cUFA3HI3E&&> z;dS<-2;r0GKK==aU>*E}f&TmA`Tlw$YrdQ4{~6=_f4%hKH|QDviU33(nTr6pk^|pB dIuDG^F7OgMdfhSJo@_@7O;P1=!a?J!{{`6c$xZ+O literal 79541 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 From f86d32d7e68bd858041c040be655df9ff6043b76 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Wed, 26 Mar 2025 11:07:48 +0200 Subject: [PATCH 105/143] #48: minor fixes --- docs/design/README.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 2a79dbd7d..25dfcec11 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -3,11 +3,9 @@ title: Проєктування баз даних outline: deep --- - -======= # Проєктування баз даних -## Модель бізнес-об'єктів +## Модель бізнес-об'єктів **Модель бізнес-об'єктів** - це опис системи, в рамках якої відображаються всі об’єкти (сутності) даної системи. [[1]](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) @@ -19,7 +17,8 @@ outline: deep border-radius:4px; border: 1px solid #cfd7e6; box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025); - padding: 1em;"> + padding: 1em;" +> @startuml @@ -128,15 +127,23 @@ Survey ||--|{ Feedback : "receives"
-## Реляційна схема +## Реляційна схема **Реляційна схема** - це набір таблиць, кожна з яких відповідає за одну з сутностей реляційної бази даних, та зв'язків між ними. Реляційна схема використовується для представлення реляційної бази даних. [[3]](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) +
+ ![Реляційна схема](..%2Fimg%2Frelational_schema.png) -## Посилання +
+ +## Посилання 1. [Бізнес-моделі підприємства: еволюція та класифікація](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) 2. [Entity–relationship model](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model) 3. [Relational Schemas](https://www.sciencedirect.com/topics/computer-science/relational-schema#:~:text=A%20relational%20schema%20is%20a,applications%20belong%20to%20one%20schema.) - From fb0528ce5444634b6fb32309424ba35c8a178f21 Mon Sep 17 00:00:00 2001 From: Vitvor Date: Thu, 27 Mar 2025 14:24:09 +0200 Subject: [PATCH 106/143] #46 edit README.md Added Role/Permission parts --- docs/design/README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 4bd8afd99..ed1310b01 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -27,7 +27,6 @@ entity User.email #aaffaa entity User.phone_number #aaffaa entity User.password #aaffaa entity User.age #aaffaa -entity User.is_admin #aaffaa User.id -d-* User User.first_name -d-* User @@ -36,7 +35,6 @@ User.email -d-* User User.phone_number -d-* User User.password -d-* User User.age -d-* User -User.is_admin -d-* User entity Answer #f74564 entity Answer.id #FFC0CB @@ -114,6 +112,24 @@ Survey.creation_date -d-* Survey Survey.close_date -d-* Survey Survey.title -d-* Survey +entity Role #0c56bd +entity Role.id #aaddff +entity Role.name #aaddff +entity Role.description #aaddff + +Role.id -d-* Role +Role.name -d-* Role +Role.description -d-* Role + +entity Permission #14f749 +entity Permission.id #ccee88 +entity Permission.name #ccee88 +entity Permission.description #ccee88 + +Permission.id -d-* Permission +Permission.name -d-* Permission +Permission.description -d-* Permission + User -- Answer : user_id User -- Feedback : user_id User -- Survey : owner_id @@ -123,6 +139,9 @@ Option -- Answer : answer_id Answer -- Result : answer_id Survey -- Question : survey_id Survey -- Feedback : survey_id +User -- Role +User -- Permission +Role.id -- Permission.id : RolePermission @enduml From 5ead283f8fc728425ba75a515a93a73c12fb10ff Mon Sep 17 00:00:00 2001 From: Vitvor Date: Thu, 3 Apr 2025 23:46:25 +0300 Subject: [PATCH 107/143] #46 edit README.md Commited @sunnytea0 version of the business objets model --- docs/design/README.md | 102 +++++++++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 42 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index ed1310b01..0dbca59a9 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -43,31 +43,46 @@ entity Answer.user_id #FFC0CB entity Answer.question_id #FFC0CB entity Answer.answer_id #FFC0CB +entity Variant #9966CC +entity Variant.id #9932CC +entity Variant.text #9932CC +'/ + +Variant.id --* Variant +Variant.text --l-* Variant + + + +entity SelectedVar #C23B22 +SelectedVar "0,* " <-u-> "1,1" Variant +SelectedVar "0,* " <-d-> "1,1" Answer + Answer.id -d-* Answer Answer.content -d-* Answer -Answer.user_id -d-* Answer -Answer.question_id -d-* Answer Answer.answer_id -d-* Answer entity Question #d147d1 entity Question.id #D8BFD8 entity Question.description #D8BFD8 -entity Question.survey_id #D8BFD8 +entity Question.quiz_id #D8BFD8 entity Question.header #D8BFD8 Question.id -d-* Question Question.description -d-* Question -Question.survey_id -d-* Question +Question.quiz_id -d-* Question Question.header -d-* Question -entity Option #117d59 -entity Option.id #1ee8a4 -entity Option.description #1ee8a4 -entity Option.question_id #1ee8a4 +Question "1,1" <- "0,*" Answer +Variant "0,*" -u-> "1,1" Question -Option.id -d-* Option -Option.description -d-* Option -Option.question_id -d-* Option +entity Type #117d59 +entity Type.id #1ee8a4 +entity Type.description #1ee8a4 +entity Type.question_id #1ee8a4 + +Type.id -d-* Type +Type.description -d-* Type +Type.question_id -d-* Type entity Result #00ff61 entity Result.id #00ff61 @@ -86,31 +101,31 @@ entity Feedback.title #FFDAB9 entity Feedback.description #FFDAB9 entity Feedback.date #FFDAB9 entity Feedback.user_id #FFDAB9 -entity Feedback.survey_id #FFDAB9 +entity Feedback.quiz_id #FFDAB9 Feedback.id -d-* Feedback Feedback.title -d-* Feedback Feedback.description -d-* Feedback Feedback.date -d-* Feedback Feedback.user_id -d-* Feedback -Feedback.survey_id -d-* Feedback - -entity Survey #06bfbf -entity Survey.id #9effff -entity Survey.owner_id #9effff -entity Survey.description #9effff -entity Survey.is_active #9effff -entity Survey.creation_date #9effff -entity Survey.close_date #9effff -entity Survey.title #9effff - -Survey.id -d-* Survey -Survey.owner_id -d-* Survey -Survey.description -d-* Survey -Survey.is_active -d-* Survey -Survey.creation_date -d-* Survey -Survey.close_date -d-* Survey -Survey.title -d-* Survey +Feedback.quiz_id -d-* Feedback + +entity Quiz #06bfbf +entity Quiz.id #9effff +entity Quiz.owner_id #9effff +entity Quiz.description #9effff +entity Quiz.is_active #9effff +entity Quiz.creation_date #9effff +entity Quiz.close_date #9effff +entity Quiz.title #9effff + +Quiz.id -d-* Quiz +Quiz.owner_id -d-* Quiz +Quiz.description -d-* Quiz +Quiz.is_active -d-* Quiz +Quiz.creation_date -d-* Quiz +Quiz.close_date -d-* Quiz +Quiz.title -d-* Quiz entity Role #0c56bd entity Role.id #aaddff @@ -130,18 +145,21 @@ Permission.id -d-* Permission Permission.name -d-* Permission Permission.description -d-* Permission -User -- Answer : user_id -User -- Feedback : user_id -User -- Survey : owner_id -Question -- Option : question_id -Question -- Answer : question_id -Option -- Answer : answer_id -Answer -- Result : answer_id -Survey -- Question : survey_id -Survey -- Feedback : survey_id -User -- Role -User -- Permission -Role.id -- Permission.id : RolePermission + + +Quiz "1,1" <-- "0,*" Question + +User "1, 1" <-- "0, *" Answer : user_id +User "1, 1" -- "0, *" Feedback : user_id +User "1, 1" -- "0, *" Quiz : owner_id +User "1, 1" --> "0, *" Role +User "1, 1" -- "0 .. *" Permission +Question "0, *" --> "1,1" Type +Question "1, 1" -- "0 .. *" Answer : question_id +Answer "0 .. *" -- "1, 1" Result : answer_id + +Quiz "1, 1" -- "0 .. *" Feedback +Role "1, 1" -- "0 .. *" Permission : RolePermission @enduml From fb124f9dc6e63b663b245d0597caf2b9424c31e7 Mon Sep 17 00:00:00 2001 From: Vitvor Date: Fri, 4 Apr 2025 00:31:10 +0300 Subject: [PATCH 108/143] #46 Add WorkflowEvent and EventParticipant entities - Add WorkflowEvent (id, datetime, state, description) linked to Quiz and User - Add EventParticipant (id, role) to resolve User-WorkflowEvent many-to-many - role: Defines user involvement (e.g., "approver", "reviewer", "observer") - Fix Answer.question_id and Answer.user_id connections --- docs/design/README.md | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 0dbca59a9..defb265e6 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -43,24 +43,23 @@ entity Answer.user_id #FFC0CB entity Answer.question_id #FFC0CB entity Answer.answer_id #FFC0CB +Answer.id -d-* Answer +Answer.content -d-* Answer +Answer.user_id -d-* Answer +Answer.question_id -d-* Answer +Answer.answer_id -d-* Answer + entity Variant #9966CC entity Variant.id #9932CC entity Variant.text #9932CC -'/ Variant.id --* Variant Variant.text --l-* Variant - - entity SelectedVar #C23B22 SelectedVar "0,* " <-u-> "1,1" Variant SelectedVar "0,* " <-d-> "1,1" Answer -Answer.id -d-* Answer -Answer.content -d-* Answer -Answer.answer_id -d-* Answer - entity Question #d147d1 entity Question.id #D8BFD8 entity Question.description #D8BFD8 @@ -145,7 +144,23 @@ Permission.id -d-* Permission Permission.name -d-* Permission Permission.description -d-* Permission +entity WorkflowEvent #FFA500 +entity WorkflowEvent.id #FFD700 +entity WorkflowEvent.datetime #FFD700 +entity WorkflowEvent.state #FFD700 +entity WorkflowEvent.description #FFD700 +WorkflowEvent.id -d-* WorkflowEvent +WorkflowEvent.datetime -d-* WorkflowEvent +WorkflowEvent.state -d-* WorkflowEvent +WorkflowEvent.description -d-* WorkflowEvent + +entity EventParticipant #9370DB +entity EventParticipant.id #D8BFD8 +entity EventParticipant.role #D8BFD8 + +EventParticipant.id -d-* EventParticipant +EventParticipant.role -d-* EventParticipant Quiz "1,1" <-- "0,*" Question @@ -161,6 +176,11 @@ Answer "0 .. *" -- "1, 1" Result : answer_id Quiz "1, 1" -- "0 .. *" Feedback Role "1, 1" -- "0 .. *" Permission : RolePermission +WorkflowEvent "0,*" --> "1,1" User: initiator +WorkflowEvent "1,1" --> "1,1" Quiz +EventParticipant "0,*" --> "1,1" WorkflowEvent +EventParticipant "0,*" --> "1,1" User + @enduml
From aad964f970d420d5b599c90a4719482986de3dc2 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 9 Apr 2025 17:13:29 +0300 Subject: [PATCH 109/143] # 47: was added new id classes and changes our ER model was added new id classes and changes our ER model --- docs/design/README.md | 99 ++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 33 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 9dc9d4935..eac580bd9 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -20,8 +20,24 @@ outline: deep padding: 1em;"> @startuml - left to right direction +skinparam linetype polyline +skinparam nodesep 80 +skinparam ranksep 80 + +entity EventParticipant { + * id : UUID + -- + role : TEXT +} + +entity WorkflowEvent { + * id : UUID + -- + datetime : DATETIME + state : TEXT + description : TEXT +} entity User { * id : UUID @@ -32,7 +48,6 @@ entity User { password : VARCHAR phone_number : VARCHAR age : SMALLINT - role_id : UUID } entity Role { @@ -49,37 +64,53 @@ entity Permission { description : TEXT } -entity RolePermission { - * role_id : UUID - * permission_id : UUID -} - -entity Survey { +entity Quiz { * id : UUID -- - owner_id : UUID title : VARCHAR description : TEXT creation_date : DATETIME close_date : DATETIME is_active : BOOLEAN + owner_id : UUID } -entity Question { +entity Feedback { * id : UUID -- - survey_id : UUID + title : VARCHAR description : TEXT + date : DATETIME + user_id : UUID + quiz_id : UUID +} + +entity Question { + * id : UUID + -- + quiz_id : UUID header : VARCHAR + description : TEXT } -entity Option { +entity Type { * id : UUID -- question_id : UUID description : TEXT } +entity Variant { + * id : UUID + -- + text : TEXT +} + +entity SelectedVar { + * id : UUID + -- +} + entity Answer { * id : UUID -- @@ -89,7 +120,7 @@ entity Answer { answer_id : UUID } -entity Results { +entity Result { * id : UUID -- content : TEXT @@ -97,30 +128,32 @@ entity Results { answer_id : UUID } -entity Feedback { - * id : UUID - -- - title : VARCHAR - description : TEXT - date : DATETIME - user_id : UUID - survey_id : UUID -} +EventParticipant "0..*" --> "1.1" WorkflowEvent +EventParticipant "0..*" --> "1.1" User + +WorkflowEvent "0..*" --> "1.1" User +WorkflowEvent "1.1" -- "1.1" Quiz + +User "1.1" --> "0..*" Role +User "1.1" -- "0.*" Feedback + +Permission "0..*" -- "1.1" User +Role "1.1" --> "0..*" Permission + +Quiz "1.1" -- "0..*" Feedback +Quiz "0..*" --> "1.1" User -User }o--|| Role : "has role" -Role ||--|{ RolePermission : "assigns" -Permission }|--|| RolePermission : "grants" +Question "0.*" --> "1.1" Quiz +Question "0..*" --> "1.1" Type -User ||--|{ Survey : "owns" -Survey ||--|{ Question : "contains" -Question ||--|{ Option : "has options" +Variant "0.*" --> "1.1" Question +Variant "1.1" <--> "0.*" SelectedVar -User ||--|{ Answer : "provides" -Question ||--|{ Answer : "has answers" -Answer ||--|{ Results : "produces" +Answer "0.*" --> "1.1" User +Answer "0.*" --> "1.1" Question +Answer "0..1" <--> "0.*" SelectedVar -User ||--|{ Feedback : "writes" -Survey ||--|{ Feedback : "receives" +Result "1.1" -- "0.*" Answer @enduml From 077bd0e6d22bfc9f2e3e59d618504955f850eba5 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 9 Apr 2025 22:27:01 +0300 Subject: [PATCH 110/143] #47: added the first scheme globally before the ER model added the first scheme globally before the ER model --- docs/design/README.md | 178 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 177 insertions(+), 1 deletion(-) diff --git a/docs/design/README.md b/docs/design/README.md index eac580bd9..55a10bc83 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -5,10 +5,186 @@ outline: deep # Проєктування баз даних -## Модель бізнес-об'єктів +## Модель бізнес-об'єктів **Модель бізнес-об'єктів** - це опис системи, в рамках якої відображаються всі об’єкти (сутності) даної системи. [[1]](https://economyandsociety.in.ua/journals/7_ukr/82.pdf) +
+ +@startuml + +left to right direction + +entity User #52f752 +entity User.id #aaffaa +entity User.first_name #aaffaa +entity User.last_name #aaffaa +entity User.email #aaffaa +entity User.phone_number #aaffaa +entity User.password #aaffaa +entity User.age #aaffaa + +User.id -d-* User +User.first_name -d-* User +User.last_name -d-* User +User.email -d-* User +User.phone_number -d-* User +User.password -d-* User +User.age -d-* User + +entity Answer #f74564 +entity Answer.id #FFC0CB +entity Answer.content #FFC0CB +entity Answer.user_id #FFC0CB +entity Answer.question_id #FFC0CB +entity Answer.answer_id #FFC0CB + +Answer.id -d-* Answer +Answer.content -d-* Answer +Answer.user_id -d-* Answer +Answer.question_id -d-* Answer +Answer.answer_id -d-* Answer + +entity Variant #9966CC +entity Variant.id #9932CC +entity Variant.text #9932CC + +Variant.id --* Variant +Variant.text --l-* Variant + +entity SelectedVar #C23B22 +SelectedVar "0,* " <-u-> "1,1" Variant +SelectedVar "0,* " <-d-> "1,1" Answer + +entity Question #d147d1 +entity Question.id #D8BFD8 +entity Question.description #D8BFD8 +entity Question.quiz_id #D8BFD8 +entity Question.header #D8BFD8 + +Question.id -d-* Question +Question.description -d-* Question +Question.quiz_id -d-* Question +Question.header -d-* Question + +Question "1,1" <- "0,*" Answer +Variant "0,*" -u-> "1,1" Question + +entity Type #117d59 +entity Type.id #1ee8a4 +entity Type.description #1ee8a4 +entity Type.question_id #1ee8a4 + +Type.id -d-* Type +Type.description -d-* Type +Type.question_id -d-* Type + +entity Result #00ff61 +entity Result.id #00ff61 +entity Result.content #00ff61 +entity Result.name #00ff61 +entity Result.answer_id #00ff61 + +Result.id -d-* Result +Result.content -d-* Result +Result.name -d-* Result +Result.answer_id -d-* Result + +entity Feedback #f59e51 +entity Feedback.id #FFDAB9 +entity Feedback.title #FFDAB9 +entity Feedback.description #FFDAB9 +entity Feedback.date #FFDAB9 +entity Feedback.user_id #FFDAB9 +entity Feedback.quiz_id #FFDAB9 + +Feedback.id -d-* Feedback +Feedback.title -d-* Feedback +Feedback.description -d-* Feedback +Feedback.date -d-* Feedback +Feedback.user_id -d-* Feedback +Feedback.quiz_id -d-* Feedback + +entity Quiz #06bfbf +entity Quiz.id #9effff +entity Quiz.owner_id #9effff +entity Quiz.description #9effff +entity Quiz.is_active #9effff +entity Quiz.creation_date #9effff +entity Quiz.close_date #9effff +entity Quiz.title #9effff + +Quiz.id -d-* Quiz +Quiz.owner_id -d-* Quiz +Quiz.description -d-* Quiz +Quiz.is_active -d-* Quiz +Quiz.creation_date -d-* Quiz +Quiz.close_date -d-* Quiz +Quiz.title -d-* Quiz + +entity Role #0c56bd +entity Role.id #aaddff +entity Role.name #aaddff +entity Role.description #aaddff + +Role.id -d-* Role +Role.name -d-* Role +Role.description -d-* Role + +entity Permission #14f749 +entity Permission.id #ccee88 +entity Permission.name #ccee88 +entity Permission.description #ccee88 + +Permission.id -d-* Permission +Permission.name -d-* Permission +Permission.description -d-* Permission + +entity WorkflowEvent #FFA500 +entity WorkflowEvent.id #FFD700 +entity WorkflowEvent.datetime #FFD700 +entity WorkflowEvent.state #FFD700 +entity WorkflowEvent.description #FFD700 + +WorkflowEvent.id -d-* WorkflowEvent +WorkflowEvent.datetime -d-* WorkflowEvent +WorkflowEvent.state -d-* WorkflowEvent +WorkflowEvent.description -d-* WorkflowEvent + +entity EventParticipant #9370DB +entity EventParticipant.id #D8BFD8 +entity EventParticipant.role #D8BFD8 + +EventParticipant.id -d-* EventParticipant +EventParticipant.role -d-* EventParticipant + +Quiz "1,1" <-- "0,*" Question + +User "1, 1" <-- "0, *" Answer : user_id +User "1, 1" -- "0, *" Feedback : user_id +User "1, 1" -- "0, *" Quiz : owner_id +User "1, 1" --> "0, *" Role +User "1, 1" -- "0 .. *" Permission +Question "0, *" --> "1,1" Type +Question "1, 1" -- "0 .. *" Answer : question_id +Answer "0 .. *" -- "1, 1" Result : answer_id + +Quiz "1, 1" -- "0 .. *" Feedback +Role "1, 1" -- "0 .. *" Permission : RolePermission + +WorkflowEvent "0,*" --> "1,1" User: initiator +WorkflowEvent "1,1" --> "1,1" Quiz +EventParticipant "0,*" --> "1,1" WorkflowEvent +EventParticipant "0,*" --> "1,1" User + +@enduml + +
+ ## ER-модель **ER-модель** описує сутності системи та визначає зв'язки між ними. [[2]](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model) From 2c241064956d6d86dbe9e83e107f768fa44e9e5b Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 10 Apr 2025 17:15:05 +0300 Subject: [PATCH 111/143] Delete relational_schema.png cha --- docs/img/relational_schema.png | Bin 80289 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/img/relational_schema.png diff --git a/docs/img/relational_schema.png b/docs/img/relational_schema.png deleted file mode 100644 index 9f494497bf158a78230b5915d4ce35779a99ec6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80289 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 B)BJg@#1lF4kv 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ΞDQY>I8qCniBR`jly(ox2rs<2Uhht)RJp!Oq4+m9GPt z}@53Vc0lJd}feq z%8bQ8q0n1>_w$=Sljr=|fqB|y<$o2tg{_jDGpLmB@;TUh0XW$oLt6ErJtY>F^2>zv zV5IG|mJ~>mJLbUR8QhGAxtvg4baH}-!&rj}Yn@j?u)DlKoTpX&i2YecDTDI?3S7nF zqU_GcYUMje#vjlhe_Gaex?Vlrdp-F>l|=xXS%Ja>d4ctPtScafhZc~aj;E#S6dhps zPT)o`JJqbMGr14dhY^5y=7YNubBy(}ve~!vwpr52r}Ca;{Wte9k2zWydBrpCV-;Qy z*}%(?Ov_IE`5CIJbXKMFsdyC83V8@J4@l{{p}xYw+*}OJdM09#C@_smJTAdQPVpES zCzPG=>dTA%mwzY=wnl%O+QFX|i8e7tVdn664~d<0`8S-eD2(0d;)M&bunYqE1%=x- zZ1*s$^gqc30^SPeA6x zH^c;(BbiB!8udg$wS$i)1G%1ye?St|_>p-Q^_}n?fTRe6$fuZai`?7WB?s}Jv^4KH zU=<`}BSAsvwltJw1quoZIcD-VoT+jS(b`d`BqS{Wof9C0I83(wb^J-ZeC5h&FzO+) z#qq>dRlo)AI6x^3F)(fbGy-Hj>!i#FFHNF|ggqyxfPf#A?Dk35doPoj$ZxEs8ITS) zAl{A_(h(3{k8Q;gcv)kS)LAQlwZDL27@3hE9uPgs5xzJ$yfCW+E(v?y+^P5PxBUM7+uQdoybnorW?JE3 z-nMKJ)2p(M1sOCE2z%E=_I7R!3`&x}uD~Y+LtccY82;;J>OLT0d{`YA{0M@LM1Tyx z=@E8MDqZd@sfBRF3}D}T{C<^UX@RZ(9RQpN#yX&@yAV$wb-3oUqf^~2UuWqR5(oFu z7DF%x??d>6A!B-b+@fn(0Vp4xemT#UT#aSN443%5JNr#!R7Up{*2KxAD&n_e!y}ph zaV>-faB1+~-UaxI2wzPr=(oWP2Mz$P{cv~!rDUX-`N?b4{6L0LB&(-kN_u6#j=>I> z*{4f>8hp7dGkG{F@2uS*jF|%jiCIKkM>cqPy6*;r3Tr1w-_{9e`hGwqfoWkIuk7La z^$+*^Z+OKcH#fU@7hcnHp#hnRedF79)>^*%k?Wi$aQ}k}-*M(2`?fJrXI+jS-QAK3 za3A!w0aM*m+Hds<42%Q~IAnNtQ%`fJq2j?}z#DNGhd2#kmAH4g75I7=g@=(S%XWg3 zaw`9AQd+K^3hzKC*z_R6j_x-2nngQ%6xAC#nNg`GBtYbY6DCPbL^USDlRL4y%P&V zuxna!%p6tU(5fe*2(Ja`tI?Rexd0 zDtPY-QRgpRu|gGrI8NT7K-Ykd?-TKxnQ6~xBvD=C^zrYHPsZaeh;7a?Y5ZB}{*|92 z)I*;?YcOZFRPgjviq$ngc(KfN;QJ~0%C`+DU~}8bbs>kL2ZMBA6&ILz{z`>OJqd-U zb`Vp}-!H8)lC%?T6&-%Bh0$ub(^YUKv0yRWkr{6IB<<4A(w{)fS>8KUd;C2*7qUxd z9NTJXU+9URf$vuSI#-J7VfbH=9_9G>S>^u}Lc&K!7jo^iv*nLQ{8R)L$M*`wP*W=# zEkL9F>*&wRS$g#ljC|O3vtLQi#=Kwa$`UUPKaeDY) z$pStIO@^EOZmJ?qVq)Lk1Sc!I?u3d7>U=DDFB}WtOzixsc`@hTz#DZ7Y0TzqZ51}c z{1m}2IubmyCx?%D22K&uCe2z+;(j1tD-RaF$)U6nJPgFLzIlY~icK}2Pt__WCMGsS zjqS3i8IYVezwWVN<+myp-xe07gjHNy9&1y51-4s1r%suFSCC&VD@$*F*#B8Y!L6aK zmAxhahR_k=cqPhF*cKu;XCh@FkiI76qA1MaPrW&Y`$K%1u~4DHK^2VjhShFyRd%VQsvP(KH^lZx8V2A~ObNtb+4NkhbeMq8-j!Gj0Pv%FbImFA1NZmGlj zh1Z`t)vu)+Cl93gAfN8mudeA`dQ;=|;CV#J!Qz`(Ul9e#OO?q5@YD2nmKnb2f9H-& zdnhNS4iW6arj;pfGYU8`R&bVRZZQ*t(@<$e#eAGk_*Hu)OOy;MVW;B_(?-JT+%H0` z@riD!CH3oSBxDM_66rD&i>bDaN*P-cuX~Gc*dTpu$@?v-Hf^`vQgpl^Ek5}3kBz8JwyX=iI^iP`aP?U!^Hv9S?W^IGtBx8OD4s`}}D)#!n+3m6T^ z5kSg`u|FnlcAe2lI0fQdr(Mb!ShrD6k0aJc=)rFUR*Oy9Vt59EgV5wX(2eO|ep>)J zX`sTRMbX+9>m=omxZk~-DrY@Drl0K8!gA!q>s^MST&Vt&FSfCPO2+_pcB9Ia8)4rx zRP{F0&}s`%H7*S4UWWOl&7_04^62-QVU5%GEe=1d>C_8sIHNMY6bEec&V0Cu&e}*~ zY6X|TMfla&8=>a{$>%Ao4;va9>=5Az={P(73VwFrsNe~~`)q>LxpCAFRS^bQ{dJq* zDfm&v3u(nx8Tgt)zF_5A_FYbA>_02adXdVAe?C&AlC>%fV`f|t9S`9BM;4vvA9(N*bl9WZv&waI7IC^nv6o(R1v^m>OEGMV*wfd7{o zIy&o`xjZtGrL*_lU&p(n(30Xs5#l7QX30K>H`~{yGQAW_9YYIY3TCXOR#yzsG2sY} z13Z9@xDiK>8f@98Kr`wkdR2bMuJu?{h05|t_xA~tN3OG6lHiJP3nZg(oT_kQ>8~{L zqoV-qMA?T@!2^@?M)C!if`s`7;f3znbi)iKb# z@`W^rxn7?%z?Q&~pfvEL>g#U)?S~JG2TFchwR(qdbJhb$`g1^l@Rwv9@Fxl+`MTi5jnK=p>qZ+_2Oolqj zzO-LTzS6yn;;piC){+lhq7~REsJ3$;j=M?hSYdL$VFPv?QY}Hkj`!;($V^}>Y?;hp zvLGpXs zO#fkt3Q0N#iHLHl8ZX>eE;$`fEuKn*G)SDyfO`|? z9^sY2trdn8(o4w;WA=M4Vd1gY=FKNmGj*PJrmkI76IyJVgEDTy^u$;qF%jN;kudXR zcac&@NZdUrAYd=g)Z>qh8S#B-2(>b<1XmyqJ+-4}qJmXzE)dv$BwKKzI0vlt#5QZ% zIIPqRUno6Ny!w7c^(|lD9E88N9s9Y{VBA&~FZl{6y6x}74|6VG&N_KRM@LEzIR~(Z zTn2}Plebna1+Kx&qPL}ohx1uZ$5Efk#Pf1frh{@MFK6HM;3DPeG#=X?=2@94`-&IH zDARKAjKRLc<=RSQrHBKltMfya#h}Qy8A7rZbw{0LljZo=HeB6B#SlC4xdex=S<#q*s;M!exZ51Tu13$w zdwz{>uE=3K*B90RO~ZZ+27MGyz7oB_J|(sJ#3g}>w;R?dE1Q0OcY_D*#p>{gh#Fg) zhk2-`=j8tWl>DTX6vU#lfON4yJB>xszRH=`FKd%;u3Z5`pJH9Qb!lSe`T(^m{`?9< z*IO!+?OKhUy-sb4#vD6-$G#Y-jf?s0^W;eg7QLr|fM0~VXhuv$bXC$p!#eM=F^pW) z)|}Rm#RH<*L5s89E@$;2Bsh2>NCLQNYrvtH(S3Wc1FFL{hspjz7>i=^lLgg>3GFLp z)r4rlH~yG;8-#CAZb=a-=_H;^mKhPDw7 z7f`YUemW2t9lfNJm4}zt1iTd-jPT+Y1YHeM8pA zPv~{|N7m~ED`SKX(}_Wc1Z#*kF;TmoV4mR~WH_cN=yCR2{wxopk>0BIRz%=0BXYq( zHJN8@@|?Uc&_te()J*5L6d8W-lF)s8f^DMRiBZ$_)DG)CGFPY*E2u-!FFBShStsD2 z1=lHXJUBW#HIBmRcjUt>@c&?UdIQv>lU=MvAk%=P;)X#5&cisDr`Y*sOvn_`N|4s; z=uyU-k|SY9#NZ;^c=3gg{m#?9ZyHgH0M{z?DqYdu+Z#kMaHSVz=WGz=S?HCw>$y$# z%M0EjzQQZLdE!zWB<4%BZ-e#hl)e!;3y9MwtPT?PEl@Lija2_?I{ ze=xeCt;kWiZt`PMZ^K_$iJ!3NdK*OQG={4qXVVJNzU8Y?!!j7lu-l+QAh z_n6CEJrtputlgBP;h`Iyk60^Ud~~5QM@zut8L}0{Ie86rqf>t#FF~G)WdGQGr3!|! zawD1JX7s)(5}sBZyurUoQ+3AHSpTaCGyRzW&AYnM)ZXlKutb0j)j;b4Wx96Ux8LX98Y>hUdfI{DtHdvx)2P16} zr3&Nb#}R;YB}CNE)m4I7}k#?x>05O_HDn( zJ2EC!?zP~yBWSz~^BD|vnL)~|sS0Cr+ME-#Huh7C^mzdAs@xxf^(>!Kshm<3ltim4 zq{J5kta8P37 zd8cIy^ClJ+lQN#pPkHPW-!QBz03kv-v+W;^BPI{XooOfrA!dh-8Y>sC zol7?fe>6{0^HIa{O`CFpW|#AZP#1x3jX5)_OjHzW;8=o1NeX1obW&sZa{r;dhAjo8 znR}}$t=8MjZr`Y%a5mInOP;+@O z-T?%gkaQ|;j_c2IZ-9kMD*ufqc(4HU_gZ-=^rwdoT?Il&5ExYHfV434fddIs{>Rnu zh06S!N`O?hreXLr5laJr6&Yh?F}cIolhGrmO;3#z4;|pHbHr8b8M*oSFnJ|E_Sv&% zFf{T2DuUq{q6-kh;td!TUqf-j|J2fAC!w|Ehcs>&?fLfQ3*l1}%l-=Wcf0@Z5>S1E zw+IR4t}*^m6B_!X{BN%`GOdYaVt^tZn}2n3ag-#CQnIoJ&0VzA&6mRy8?iSYL$rss zjJ9E;7G#*AvGMTgVDRc@prY24uiUY&bhEbqOK?Wx6Fk4&;DOHDPN4u@@NtgGnA$>g zCNTN=nOv(3tPUJ@untJ(8@PQORkZFZFVYn1OW|;(qrfAJ18P0^^FlP%rUfnlkO<65 zA@gG|2-iUk088?l0e`u~~xYb)+=`(uJl^Xq5!f+fudxrVBq2Rkj+jqhKn-YYVWk zU89faEL#?XUYzsK%FdB|6IlD(1jgCcVIlV00W3h@$!$0%`K%U&t0QDc#wx|sSzAW$ zAxk|yJx&}6E`E0En{W?_ad@;gl$M7tfO)vOyd(h<9|UA3PoKhN-P_UY;MWv2qr+SV zAIC*DEiJ75%GX&2a!?03zQ3-XNntC zVH15`D!HW3gXt4sC2(cVZ6J6l1?<(#SuqzKg`|?9P|Im9;CEca$I^nV0Mz-AsoJp_ z;=N%0;a_1;>x>3CZzB%8zCP>z4aLgnEMUe6A|tA7w2(wHI|;}hTvSfp6C^1M86}_I z4waX{P6-0tbw_@pu22x3 z<)sFi66uK0s@DqD8Uekrz zil2qDg00}X+?4_rThWEL&t3sL8s_p%==mEZbZ-V6#5#eu5687ilG{n3{I`s5@RLD= z#ncY0LKrajg>Whz#WDpE1gQx@b^!Og9>k_y|3mofxqRiP%{cV#7c&t*pX<&rUq~zZ z>%@z1?Lxic;JFad3f0zW8-Q8~;VmmM^etr9d67w5cV^V|-H(&+eoXvCqV+X2d$=4U z&UNT=8{knk(+CfT^a|X;V9q!00>g6tS6g0TQG`aITE^Ptkand4Dn4+J0 zg%xj`j`HUCJ0?hK@BMxm5%DZ8?x2%XUi&4)LU@ng6a_p$7@Eoi5?z`lukin8IAC1p zJ-@WP913RU!kZ_o?0qn&E7Z9;H$s%ReQRiyB^nxhus^8CnuRMSXVo!G3m?V`G1HUS zb|3dUW#^WJUIK%T1jOahf~i_rW6Gs?2bd~eM=)@Pb2Cwx@oyFTK?6Cv(I#W0k!4g$ z{xf7<7!!_e&D(cR?y)_a=seBGv~_JbwZPv6y>Dde21(bjG2|N*Ag7Sz$`$TUYv@hN zm^`n9nC(W@RIrJSF^_1Rx2?{}OnJfPOTP{%y9wDB?0?X8;|8{40x|(U^@KYrPOj$= z9DrIw;1#$c8Ep*dFBA>M|6hZB0iXr0@pd3l{|euM4?sOC+x)qxokP`aSX_230msN_ z4fC!ELE%`j;>)1pMEq=i!XAysp{}7Q4-n8}fk0tKAaV)o>b4Dk)7lYv1VP2B z%1-*AUF*ER6gl$b>tC_UE?Bb>yJs@+CDEq@)57!{7aLtD=|M(FN-2OL;^s#32}xiE zOvw7v`~6&gudxa3M;EA{?yv;)55*0)-8+lO4Xq)(sHQqE2W4vHdco7krGN7v*4Yb) zS>XUv!^I)0y-`;`Z4)C19yZn8{ZN*XU|RdP@_+PhH0a&#Io(%-9p5a;$LaocGp0G|8*y#B^LSFo|Jdh`Z5l5B z9u)u&b|DxSpxB0qW}WAfsW$g;Zce38s|F0@t%r`3NQGsuL30< zgLb|UBmG&gz*hx4A}_tjnS_B1HkORbC!DI%{i2F^I|7ri^8(|h1JxgnoCr`MR*~XA z3jRIvn5(LHhGwEMOp6m_=9+qAr+&S)rG?Jqa#VU<8^8{{2&jN~$DK3U)(^kC4|@RE zJ7l<^0k!YOZzYxhrlvP48XR3-e%t(c_iJGaWwXa#)$K>xLp27DX={7pY{qWqbN*kU z%ctH1(H!fV`UMeUI3U+nr4kUzDxILaa*um&%IMJDIeA>EM6&ZZ8^DLGcEA0bChsoj zb?u8hHNLZbw_QxLGjWcCm!AhFw1_-u92?>RlkG6aw=)y0N@hbeBT8SE>rlAKdaj-UkCLkM=TTqlKE zoFsNhTn4Pg%u27*)JfX-lbG4`r4hP4hrZS<(5Stz6mtsyPRKBMrbA4DKnI1hA&HQ4 zoaAk;v3sU+`EQf;p}=tJ!cyUkX^MhnJXyUG7V9v1I>mC-(-@?AOqlZl+wa)9#Kk23 zXXMt!5^bq=DM3!FF5L9khbEtgcca2G;z42e>iD%L#uIom5GUP_Fa3nA^WMVKW#@*% z)#XlF6!Rg=ht`{V;3mz8QDnp({XDV8tFa7<*UCSoZ1L=eD7+LE87lRd*C*) z^kv?u`Y7$FewynvjeV$Srr}-t198(RD59XsQzJeSj56*IK-t& zT`{pCf;WknLrM|{zpi0^{nYZC2R!H_%~=~?eDf&MS`Q1;wS{2^a3Q&*I+~Y%_{hr= z$~HUTzb~<@J2iHT27B2&7VC=d-;slW89hCpo?UfS52EHsYWH#P2^W%-gPiM6pY~^L zyY!5&H)r9^$qYDN_{)?p|Ec`plb)51QjI|3mrvOFp^w>h?wr`HZC$QM6;GJk9BZp} z4XUuHGBK(p-1ty%mR46QS*mCVgcN&%oIDb}r5C9~z+8xG(xMZ&9cRx*h8I^E96Gex zo;x00R9V3qiZ7N-<`t%>0H^q@Ng&4 zB%a;hP-xelciv8764t*7jWkgeRSk`r`)6`2q0>ci+-Q-7wguF8dXu5c?1;=7P6viV z!ah(S<2;0LRs^NOumWf>~CufE>HsbAWO+tW$;Ss zi9<2RA`TI`GNKeX3(z4uRBs8Vf|mnkiCB-xyB~enfVEPT+nr=Unj4vg0m1Eh0ObR?eYv~g%wkJvYB3g8f<)VR6T?^ycP4_v%l7Uf-@~T zTEn6W%0~=T2ulftI)u63V+2h6_Kd&fnF7_>`yG9{mB`r(X;uSiR#VMU)g}^3lG4(< zfp)x(iXxJa{^B}2_h_q=N(ZewH`Go&5bR5@xcq^^aDQL^umOC99)u{2_fO3iSTj8y z^D&kGLwA)eEFZ7lxsz$1tj&Mjew4{r^}@x`+ER1b3_qXNeNP#w?t^+>Gbqp#Y!`@a z^#XEdK03;jK#YGT`B;qRVw*GP($R4=p2`DC48PxY5UnBfJgz$e{<0s+1Z;6gD z2U;Lxx(h~bJ}19y=`cLX1m~V$`fdM4b3On7=!Uqn7WkX*UF#HNFQgp(ea5kIlcX7&y^iJ=ePK+z9B1V#O2~? zDDSvwDcAEn&32oYiwoYh)o&Ix=?;F~73Cc8@m5~-ft0ul8^%R`1ne8F+VJg&lIQv# zo~OQY-pn_Wl{H~rb~XK=yWsSKFG6oUd0cpR#6?mG_WJa{Mw%Xr9ZuqYcch@-3YHW+|vw<8o&#iYmUh1NpSnkb8 z;k#GWy>W1K*J)GJj}6vB62TyS9?{l*QBtBg^!xXRmJ4Sg-1I+HSPJMQMCL%qhx9jS zlwLtmFDWT`(M14v>q5kSO-)n}=LPKefPS6srH}Q7371K)u1v;gx1*S}>md(4mad&F zjT3E#X4ckwq|-+#LN-z;J-ITAG_>B5guNd%3E|iaRiryd}PXQ zpSh>x-vbxWQ^}wBh~3Z8$4LIAe$~Fcd!Lp1zo*+HHP310o9w(_ynJ~!KHO4$JCwgj zvQv95S(tdlMJtSXgr0m4<>cOwCr`@1f9JlHC{%T*YJt{&{}n=~Gi@(jIs(P<3lz%T zJH>YiavTukh_z*y`6(2gEPvU0mg*=dzA$C3N-g{L?K!*h2-t@oy3Eg=I|Knwc0=rG zOK0bF5c)n{Y0O=K`=HZ$eaEV@@^al)wK@g9MI!n+kIS_U4P6VSew5F?X}16mH)-wr zkR9Ce^V6eG_5c3!Cy{r4XzJf1M^}Y8IaG({2K4tQr{od!*8qU zVXHA9k!4@LJO%n06&riN|9f@y8$2+t@!h={(^P<(->a&k$ZKMC-?k0$v|4sOs-}u( z1UbH--8Hgj&!~%uj9k~!+A7Au{0s6-vdD+vLr;W-Vr$nPz{P}TGp8-pyyERy+!Yu! zlmmi$1H3RAJ_hh63mn|-m+mn1n%{N8X7dWR4GIcT5fN&JPW>MEMx#;Nch&Yv{FiNQ z#bNq}9}-}CH5H=iG84b8rc6$Xii)TCJki9I)z-cR7vn)2ToB%)X8F|gSo0+g0B~}J zUw(_ky9PG)v2E~SLGChs{_@Jo2Q82ML9NvA$T3oP#e;=?1fPf$jK?tcVwYv7x6ADx zZw%6ZLU}?xclM~u6w_(tjs$i|?~)SB$-W%PB`Sd<8C(>~!Ml4@L132GJ(PgMK3X?G zf823wjA?_?#AB>uJaetX-RlzcEz7vHlq?0_pDA6~vrSg-lVicFl>GZ{c_232_xCsM zHIPsU?3$*#dFxhWRFpb436Mg|2S2OCpaxp%X>=Q#$b%->W{maautz*xk%7U{*COc* zi`(pr7U^85bs235`k7=EibMJ`@=UR!B2!Y12QR2iOiJp6cjbb*am}79B`GLazKh4C zg`rhV2c5$K#^gs29h&)1nAc!mJg|GW*XC(7$gLB{44sdnKG{(4Jaog@C<_bAQ9V6# zen&(`3|6C&G@agu@p}xKc@#R7;06W3{y^t^R;O|y2RJ5JBY~krSXyy z67mH#mPruE6sI62`Jj=}vy|saPwQirKkenQ_$JZz$QStO=~Jin_~YEdfpUgwi|Pvz z6!NmN{?;y+CV)T5F4_r{M{M1?^=+0_i5i|p55U)!)>2dRr4^4Fe=II88yQJ{*qeyE z2GtBiieEpm>F@mrMg@FDs=BptXq^hkk)0+PG@7*&g>|MU~*pW>uv}O3@8FEl^W5+mz?`u(_rLvJNJJLGk z(S_6#V}pj&f7lyVDcTQ&3nzEb##?CPk{9{IF=zq^Y+<04D|HMD2dBHua<{HY2pNnH z+Bmvm3%1`6MmyOFewZE6({rp4)uEGMSKnB#xPHCSf>_U-hRxFlKbDk`Ct8>>2U+s^ zQWbCL;(nD>@AP7O*v^3m0tfNwAM2em!rWWN;frynFQKUAEAo+kL*V;$V5xy)_lAqR z`}PH4F=J((pgR4iR*QNlztGd@7d%Hy1&6`JxUgx3O{%$YBu-td0N(HD1UIj^oxCz@ za048kymFo)UplxGzK)qIzo}PNkP|`Zxuo94$n;6ibj7pSc{{!IlDcZt_k}rr1EAjt zTsDw8e;tVIG3mp>NV2vR$Yy9Aa*(720HWN2>|@&PWUFE6qnutn~Pi znWYThO~-KYvyjH~F?!72E=pEcxAUZ`~esQbv^o(C}f5^ojSU zMw>PoA_W=GK)lm-P7P^b-KGzt=5^wtQ2a~lREDO-VA>w);!vV||Hxaz-tPq&RtK5{ zrr*Tc&|dEEo^Z(+4L8M!-9;T5pA7sd?{i2Xm!Cv32h*McPii%N0gxN(WMFm!qr4X)W?dyo&3~e6|$_pu`#VP+iL{+j%fgd6jct zeb(kPbl&enFAF`#6M1>dV_4v{3QVX6Nk#ti&jn4oDgae0H(yZgrH;R~PYd77D++o+ zD!B4PNd6E_J5cM3v_o;|^px6Ad50qtBU|~r0r~rKJ*&ubBHg(?HL1lXK46oC97?w0 zv)VVYWw~Xa1lHw+AM|FW><0hptdo;l-Ex98u`@1ApfiG( z)?T_heK^wglr%N^;eG7iD$2TPRWgenLxFXuaw4I^;4lhT1N)XGg9}Pu&(li$=^H%V znK2cG4(;@U@_Zga*P*gwLqipYpT(!&I@f?e5e}<>?r(i=s=e-_B7tY_s^-Wv)5b4@ zXeP(+|I7DArJc_t%k4_(^I9PFAZ^ir|LVJ` zt%H!LIi$C?=EI!WKHZ@E$GZaM%e6gcRu-;34WNJfSIhCt9BcF2e*dVtZl?9rEVqrL z>#N5oCm$!d%U~7lh{06&!lbDLnT8#T)1$oD1;46G_avd3KWW70i8H9XCet6eu>rxs z=Xy1lrKeB6wi@Z=@&%c+?6xRxYw5I)kN3oe-u4gDE;!JiA28EDf2^vkeAp0=#^Hmd zegXH=OICzJFL`*?mK>Q&6C*YOK|vvrY^X*r<3G|z8hwAJ*}uaw$4T?4cz+zN1YNvM z0jkztuxi}mG!mPlUh?F1))fDZ1)17Mj(q5)MTLjw`n#;UvNG=ChJx|YALWnDG>VRH zT2T&?XY=4_W5@g4;rZ9LGjefvB+>xcimRv?Du-&}c|CXbY$?!J^UWgM3nNk2!6i-J z)~LjEeecTWtqxmnPf10*d>NwB3xd=+6bE~7q+7!E|J6nCL|`uO1kisvsF{QUkX z9aCJyFWo_G#DN7njx|+(+;!nt~&sZMU)hlp%Iz2h`@~0u&-0myl!oqpA z={hA+KUPxJ?@n?)P_3IcQ)%~TSz0Et9ixUzGL9}}ifJF2roDCPj43OmX?9MsE0>Q8 zOiVqCfA6Op5S~1x+MWKBeW=HWHk5i;puM$N`TWoLgK+(+h_UVPGn~k?ShMD0RL$Zi z>tuU|rq1thuA<|;d zaHK_hNu{WiHc{HckoXDFKGjI3qJ2}^6_q+IN2K+X(xT;{eSfc~{N^|BXWsXnf8PGE zw4A=@`+c7KzV7R~?)&-K!-&qwp3mgGeqwYoOVSfXsb3V{&SZ58dK!lTqC*pN4T)Rz ztja@l9KY>JtG$oYO{A;@u|y$fsVrXX*&O%q{(XW{z+;z6u%|zNP9CbPBi7YUc2mW^ zZ@3Sd)YT^tZFW5f-zh3epPIh&hYGxzyWVOxSn(^~eg}pU$6&~Z=-kti+MSIPLs=8Q z4j+s&josL~p93LlkGOBLbwcbW5@;z7I)-_N{AUM+_$KNX_{)9G{I;iK`{vE3)~yTo zW-!dJa*oU#woZ3QN1^z*wpJ?ywbkc$zM1>ht#jbe-?Hq&4Rc{b{`~_XhrSNrIX^?6 zhIsx|3O4%g-u5>&k)0p~0%p)>0#K?qG4L+eZNMMeXoc`LOm7y=<~4uY+$`!{WM4w* zK33h-blyYq8=_xT$id?Fuhc0g*+y>B^04wx>W+>Xm^{U~(i@314mNOy91spL%9$O= zNK6zL^SrprX#n96D5+~mN}${@C<*idgyWj(vZC|!(;ZQ0e zOIus%S>IP&?4CcZj&GdF3Y4njTW0qh*>JT_P`WvQ+?kOhIHm^qks5c%VQZnW8YE>6 zJ-zzhJeLH7TDW*y7=Fea<1KNIq_`c%BhO~telJTH4-tjbM`}msF-U-k)k^Qpr)$!X zovey(tS~zj`N8^;xaa^kOdhSMa>Hv+G3h z$DhH}yysA8QvYh|<)=#uvmE0Km0Re+OVKG)^Xq=OQvh?I3g z21V&3GFLdk$W zMMqzrWZiE!-F>GW>J>&WJa_EZcgKZI0M%H`Brx;b8~qaN+U&MTOY1=MU|>3bEbd<~ z>I;O4)DG#~`LZ<)KL_@Je0~DEg+Azk7eQUe%$dy<>&!K+HApNOi4d<(D8UYyK%I~K zrCQo%*A2ZMWCa6umQTYj?H+%uIaPjAUmv1bJd8b-c6Mq^x4}C&P0&<3`2wg?)YDd& zwhr*q8Mp>xS0>uL1%}Yj5$wRX(mQW*U_bc=bVhuym7PV0F3XY&`ee74T;kv`MA$@d z8$n$@>jeaKFqa*E8 zY5=8NJHKj}atgQgNs&?YG|~Hok4~fPcm|j~GB6&yQ>u&G;C6`8f?dWNMZVuJ9}ioT z#1cP}ho$b2!ITKojss2SxK3*v-}v%y-G#|vDUcT^o^EXy6Ej?;*cf@W@OQL0MgdWs zo1Pe6#(c!{$SmPb%}X1YR{~7V)i_``$3#ZH6q$0w*mtF6Apm^+&DlCAXMapgt%yglU2PnXJ06a2QpaNa zWG3BUq^4#Zt7&6o+qa?*XrB1`fThr3;OS@PSbX?dNFo6K*c)xdDeyCZD|fRu3bke@ z@oN@HfA$uzIcI5kEH-vDqfzEW>-ONWX^-@b4E+i1Z%m&v8HDZ|%;I0T{EnBnmyoHX zcmpBs%1jcZgAk;~zP5w*ly;iJ50O$7d?%yAH?sS3pPTFNyUFlxkJ(9P$>O7tKev*? zjAhQTaxvS2Q!g%-$zm|ICa9%4_>W?MnlguhK0rNWgOj} zWCePGpnZV^jJ1)vfp@=3fm54ow^t$+%w*;GiHrLuS-X;SxdvM#EfeZYjU`3Wy;!;K z^dFEI3L+B|RZ(Rk7f-zxL18}|^*J;e9GT-Gh05>-qTnPxGK_Alp=Mx15}NOV*Xtl$5?xKjODqn3%j| zaEp3K?c8b7QxXQ?!6$pUI*y$``?mCkmAz=q!vohraULuKlA+aOo{Hu7`p{~ldA_=~ zci0jeUdCl81|>6{D|F`f$jF1>p-5yzW7%f&YR~rcUcPXZAeg%8hEyPC!89P?aQQ{|B@LMbr@@9 zCwq~+wMyRf$VsWihrm9Of5C7YitZnBsOF}L2@XP0-;>Dk?<{>+I2r+(u*7#7xy zuy=C1M}_{6yc9}y7S~Bs`Q%Y!itA8MbOd2Rkxs~4g%AtRB%vt7_J?xO$-N&L#_epS--h%-!*v&@n*HyoVvDBJb;0dvXskhAJJt);MIJ9X#xx(O0X5 zAOfVD<}vMZuCoiqHf7?TLK*=pMWvAm-k?kHR4WE6710@_9dF`U<<^`h_avY^-sPiD zN&lhI^SIR-8X6-ug0b_IX)7v=C0y5v+SJ}Kgc}?;|GP3PEy7q>QCDs+#k3%QZO=ce zF|pE7W&29cnd?iIdJi#fPxc=I3r2O&`f@-}kRElb;LXSH_1J5Xzv&UHV-7Or_|!9b z{HEhLl}$;w)ioe-UR3}E6)ZTn2ni%EU$npoe;EfqjfoKq!!9UTc4%Hi@bWG-lnwqx zDPxIXmRi~h-9j#@ukwnG6iV6EO_E1{;k3?{M&4RI_j}69Xs+BzXZCLJeKPc^RF5sM zU|B{Gw>4A_uQS-*Wj7IVHnuLOl8{O1>=zLx%su(|A1;M_T6fD2W1G&woCTWt^?95t zt_I2rJSXOpXzJ)h+wDECP$4VE!>&JZ=+QlZ{`Lu17ndPe>8P?g5}_fpYczD4NHgq3H}^>eEKjW4aks>j z6+l(ov`P+rtM-MB0BS&CQi2FvvGfm-Y^anBrD$u(Gw)q0xMt`@pePm?pUa zjUi5}nVOnDjg6%REtSRw1d)vA{J`u2^OsGlK6Q1S>^!&Srw#p8<>hZ-YHAwy`y;JKG=L&*-=3f?>LSjAo?NphirD+l^xx181FL zZ!d8{3uYg-D21Y(1oLs2tTUs=&K7qKo@;(_$v*p}l$6w3pTo6K zhLV#dQBCN*7K+WzK8aYnd-?B>-Yg*`+mCw+aC#R>M*kky*sr2%FrWgu3Mls@Tf^Mj z%ea64{?d>MYh&Yrmg|$q*lC`#9{AbMV1`{f?jK3RG-~o+P{d}_A%tkn?VXvPOveNi z+*XXtes%mD&x#q4I6;f^omegL7$;jS;*sY$JLBB!z;=`$@7@Z2d9(U9SIkM7?%1jz zx$p(Jxj-|vGw{wLV;rog(ftu5@avM2cD7ioD*1@2sgZia4pIF$(TVE^HBsh}uQ{?; zX$`rXif8)OG8mCZsgdBQX^cOVLn~%tAiBVP@N4YW0V;w%iWY47_N$~?rY3)2>r8%C z#;O(I+wVD(^CZ(bEl(MY4-{;)=mU#vAD{LR{#kP9!@(XWnTXRoE`xMwe8o~;uUv)s zq;QUb#Pg&#t;licQkmRE*>U(yN5`3KQOzS)yxX9vj3oRD6$4{&>4LU@!tYpmsI(Q4 zX>*4Igzk-0NL2w)9}LObi{tAmH|!9@@iax=^tz)SkWK6Z!A(T zX9{4=1-@qxM)&R9u=aAqeOnv?0|TwFA?y=bj(KFI8OUA+LjYLOkmV5lKGDdQFo47$ zf%&Te<0op`H{HMKJj?qG@&LEEVJ-T#xu37I+;iKR^@DLsrC6C4s~P>}y_o%)>)cjT zA^iZc4{|j1(n1N2+s-vxkT#EUEpog6uOG%*LSM0uHC#(b25AYbATsTdZv-@kG%DfL z^^5e+>uzj>5)5%`3;P)0d^e_H%UtNV>CD0B>YE*Q*Nau;^xP}az36^b*IVR+iaI=1 za1xp@Qy8cPdWk2Q{HA>C;mTyVH`3uTQZjaeV_7BIp(UGlj`Gu8X0qI`1c4M`GC-aN zkoKa>;00nU*xOoO+nm#XoZpMH>E$9gmY0MVN$>g4h`>b@_Z>Tw@ZQrlEHyq$d*Nj} z#QVBiG4|=xV}zRb7)g!L<9D9>1%i5+1_{4ri_Oc0;GAuH1R#cDB;XU<1c-z1MVoLP zySqnyq!j9@0v$h$k~p8WEqA2BD(V6@SApN#nwm$L zS$E{d=?~tNf{!+erAo(+Atc$%h+@FiyLqX_EJ9}Me-N_!545L%geXlw;9|R@_OZ0K zPOp_`OS(WkwbF>fQEAe7dXu*}MNqFvbtRJo;C&9icykDZ51&iJ|4!vxK7pDrg(H4j z4O=$)fJQc^+6}zA%}u|WQ8Vthnk)GZSIr%+SIQ3;O6gN{)SFx(E?WTnPr#CA>O02k zI#YpdLrdY*3Sq5Zv$ls`R+eS@=#RstZLYRlQr@-?nJiLAP|MoC1`S&w=3j!Q=+J@_ z6)HBoa4OHT5_jVlwX_ir;CHR8ujI}S_;9JUFbJ30&5U{f{(WXnE_wVYx@HIN6>;lI z`XyTMdM!2ov!r~)mIspg#f4AH?rN4~YE(bY%WGNvB^ThCz35(5SE}X{Rn6oX8?Avg zi>>-G7y;eV0d^|8f;N?{RtsjW2Rb4V5U0p%BjK|1n46oQyjt#bs9>~31Qv}XPSMWX z&0fw*d6CxS8L96E5e9`QIDJdr#OEF5m!Uk>M&2BV1b`t#H;xVfoDs@riqjYU>ltdJ zaa>%$U|S-#7nz-e9j7;esb*j(%~xcUpvZdeMAvh2dQRL&;7E$)wtFgAUCc6oOsS%q z2@_I*@0`i%3x(&#Bgp%5=&dk|_d$$C)^<<@3~d5CHmp3^+0?tf2y*)5Bx?r`a)I{BIipU&Ld;D7>WsU3HUG&D2;a#SKCr@e zT$F(s)I`9K+MH>B2!%F1`@ zBlk(V%SV8jibjf8nl(7=^w~w0AJXA5KMYV8b?8ie4crA3Mid8dIk-(3QCIO~GS_^+ z9&%)KVEI|$Qc{#$l%dz*0hqbm!1RP>b&;|JSUW*Bx!}A9x+xwO*}M_A)+O(^ng=rH z#zzJGA3S&rzfJ0^&R4^iWo0gZ`5lpA_ntj}fO^ghd*O(jQfOSwPDLgLJ6I}`v(_rX z3g*C0nLevUxDwv)S7OXDV7cXo4az-WwEvD+LKOl)!;znw_|=nqDMA?ECQkqp!B29=_5nBdt=e+Kpoi-z$UPSP+i&OZr8UZbk-#XJ@|MNMtK$Er(8VXw z56b+bLiayZgnx0Uk^1Z86c!Wt_&@5eIfvPopI~IGwxBgrsNA3%)OD6WE0S1F`7; z{>kgF^L1`W7ZGaPX8uoJ&EI);-t>nc6>y$94! z?peTGTF4qLXN|(J=e*pz2&ImO1W%3??z!f7+gf;TKBA>8ijgCvk|Y}trNmqTSP%xf zO%EzQ@1Bl1OC(;`Z~X!$4^js~TSWJ42eW|5et@)3A+yXo5iS~dIqwm8@BVbwGXFHo za3s$r_vy=c0R6e^qR?zPYLy&HK}s$&$2M&(Eo9m^jEJLsO=!c^Knjf3 zUBtEkaIL&|d;=Q)0kELrZ{uNq-OrU5Ivbq^=aAFq4%g^+48~I*AKK)@vt8F_rw*%h zSppcVl55U<47p*wXzY5F%~|SOwr=I6_GiEXhq=KiPC_77&>PVMYd;p8;Ti;N?M8SGFm++w+SYVX?w_uHHtGR^Bxji@Od&#s$X)iI%`G_+9SwD`}UUWSNnH z4N--K;H#$t8xk+Y#B`S+COnkh+$=wRWrA+Y)Nmeuu)Rs&Sioi5k|j5W>a!FqE_}(KJV_0yZRYq_{WSP_Vf&?F~!8Pj|YZvvVB+^Nd4`NeU$=^>4Y z`l^|1?LLRd^7JTcoHxfnD@BDVKoyQyiqG7njbMdwO1DtIp+ljD zFOQJts1~#g4Q=Y_y`z&bsJ&ciRPiS7!KljgNLbE^k(sQ%FUT`Bz%;|?qozB1vwUVJ zBSyq-_w<~LH|($OI8!XoxfLc86tE)$is@*<%W4)oYo4f4zvk|a_Khrk5Ech6m;yu@ zuiG2CYXQ?D#QTHb`Sa-Uz3&V&txD5ZhgG4BLjES@p_ziP4-2!Cr~gxROk@_=UR3)lUi>{F;V2Q<+tSL8-U_U|_sXw?UZC1RMw+&}T${Gb7l=zy~c`7Ps#J z04fHkUut`~SZUU6-pW&Rd;x~fMMH|6+$FeiE-yr*2ew>g5PyPKnM<{Q6(YAOC@}j% zm9d6VQ^9Jyr^`6eWLdS_XmiZWScyV!u@A?^@*jEywuiq9ms8L(Y;k!qC)8=B?(r^K zRp<14%ad(qwT>CgUb9%_ItQN%j`{D}@AeoB0EQ24rCpE-bAcfdf?DUVCB>EgQ6E2k z+{bPG_V_YynBi&aFsDF-35RFNam=I=(G&bFy$(dX{eC-eTzDD0-TLRIB`eD-jVD(! z2fM0zu@yTnM-EoLs{V2l$q-~jT%`5&?b|1kn+C?i+6_f7*1*tAG2YV$kws*olGKxh zUe~|&1P_vL$r#UQ@aC79%i_A0#84b?#h?32I%~q;I$9#h?|XSS=QK8kn!cQ(yF}Zt zfV+S>&yvr~KbWK8bC8j&aIfrnZkzo3JFQ6mNw~auxAH%Fpz#`KuR=>vl$4WuQdr39 zBk{B#GB_k8#c2WM-bK8SE+@wQzB#IzI_F)!ZDzSW@*$@y4Ekk4|7KJRiX`^!J4X!P z-*w-u%t=-2ipJj~raEYoKj9^lw#mrky~`T(teqWadK21)dOLOb`Y(&UVpQe#J@YA} z@r|+8lH^7)J^?7*(>TCCefQ9;g#a5WjNgQC9~G0&X@uuZ+SJbFEs>Cc(A+m=WhuC- zdzy2Xc~`FU0Wr$Yr4_Hm(h?F;U%#@3i$}l?Q7GzhEnW!sMkG)by}Q&1h6+iS)~ndLnOqIXLkPu=PLG-#cUFA3HI3E&&> z;dS<-2;r0GKK==aU>*E}f&TmA`Tlw$YrdQ4{~6=_f4%hKH|QDviU33(nTr6pk^|pB dIuDG^F7OgMdfhSJo@_@7O;P1=!a?J!{{`6c$xZ+O From 74a62af0c4d5630755ff8bb457bd2b8ec37e3ffd Mon Sep 17 00:00:00 2001 From: Katia Date: Thu, 10 Apr 2025 17:15:13 +0300 Subject: [PATCH 112/143] Create relational_schema.jpg change --- docs/img/relational_schema.jpg | Bin 0 -> 58252 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/relational_schema.jpg diff --git a/docs/img/relational_schema.jpg b/docs/img/relational_schema.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb6c929e75cb3afe764756ef1e8ebedf1fb98cc8 GIT binary patch literal 58252 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 Jcm3 Date: Sat, 12 Apr 2025 21:04:58 +0300 Subject: [PATCH 113/143] Delete relational_schema.jpg --- docs/img/relational_schema.jpg | Bin 58252 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/img/relational_schema.jpg diff --git a/docs/img/relational_schema.jpg b/docs/img/relational_schema.jpg deleted file mode 100644 index cb6c929e75cb3afe764756ef1e8ebedf1fb98cc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58252 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 Jcm3 Date: Sat, 12 Apr 2025 21:05:11 +0300 Subject: [PATCH 114/143] Create relational_schema1.jpg --- docs/img/relational_schema1.jpg | Bin 0 -> 58252 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/relational_schema1.jpg diff --git a/docs/img/relational_schema1.jpg b/docs/img/relational_schema1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb6c929e75cb3afe764756ef1e8ebedf1fb98cc8 GIT binary patch literal 58252 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 Jcm3 Date: Sun, 13 Apr 2025 09:47:36 +0300 Subject: [PATCH 115/143] Update README.md change --- docs/design/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/design/README.md b/docs/design/README.md index 25dfcec11..450da5593 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -138,8 +138,7 @@ Survey ||--|{ Feedback : "receives" padding: 1em;" > -![Реляційна схема](..%2Fimg%2Frelational_schema.png) - +![Реляційна схема](..%2Fimg%2Frelational_schema1.jpg)
## Посилання From 38b0e27302c212d4798e22c046290549adc735bc Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Wed, 23 Apr 2025 19:36:41 +0300 Subject: [PATCH 116/143] #67 feedback entity closes 67 task --- docs/software/README.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/software/README.md b/docs/software/README.md index a4c6b1e9c..76b82d17e 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -4,3 +4,34 @@ - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними + +# Feedback + +```sql + +-- ----------------------------------------------------- +-- Table `DB_labs`.`Feedback` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `DB_labs`.`Feedback` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `content` TEXT NOT NULL, + `date` DATETIME NOT NULL, + `user_id` INT UNSIGNED NOT NULL, + PRIMARY KEY (`id`, `user_id`), + UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE, + INDEX `fk_Feedback_User_idx` (`user_id` ASC) VISIBLE, + CONSTRAINT `fk_Feedback_User` + FOREIGN KEY (`user_id`) + REFERENCES `DB_labs`.`User` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE +) +ENGINE = InnoDB; +`sсurvey_id` INT UNSIGNED NULL, + +INDEX `fk_Feedback_Survey_idx` (`survey_id` ASC) VISIBLE, +CONSTRAINT `fk_Feedback_Survey` + FOREIGN KEY (`survey_id`) + REFERENCES `DB_labs`.`Survey` (`id`) + ON DELETE SET NULL + ON UPDATE CASCADE From f04ad64d05de55cddd8ae92c3dff529f82f3ea0d Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:03:21 +0300 Subject: [PATCH 117/143] #67 2 --- docs/software/README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 76b82d17e..f7d7b82ab 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -17,21 +17,23 @@ CREATE TABLE IF NOT EXISTS `DB_labs`.`Feedback` ( `content` TEXT NOT NULL, `date` DATETIME NOT NULL, `user_id` INT UNSIGNED NOT NULL, + `survey_id` INT UNSIGNED NULL, + `uuid` CHAR(36) NOT NULL, -- Add uuid column PRIMARY KEY (`id`, `user_id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE, INDEX `fk_Feedback_User_idx` (`user_id` ASC) VISIBLE, + INDEX `fk_Feedback_Survey_idx` (`survey_id` ASC) VISIBLE, CONSTRAINT `fk_Feedback_User` FOREIGN KEY (`user_id`) REFERENCES `DB_labs`.`User` (`id`) ON DELETE CASCADE + ON UPDATE CASCADE, + CONSTRAINT `fk_Feedback_Survey` + FOREIGN KEY (`survey_id`) + REFERENCES `DB_labs`.`Survey` (`id`) + ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE = InnoDB; -`sсurvey_id` INT UNSIGNED NULL, - -INDEX `fk_Feedback_Survey_idx` (`survey_id` ASC) VISIBLE, -CONSTRAINT `fk_Feedback_Survey` - FOREIGN KEY (`survey_id`) - REFERENCES `DB_labs`.`Survey` (`id`) - ON DELETE SET NULL - ON UPDATE CASCADE +INSERT INTO `DB_labs`.`Feedback` (`content`, `date`, `user_id`, `survey_id`, `uuid`) +VALUES ('This is some feedback content.', NOW(), 1, NULL, 'd8f3f8f0-5f7c-4288-b403-7787fbe3a9f3'); From 68a5a1adaa4ae5ad2e17b281e6ee9e80c412315e Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Thu, 24 Apr 2025 12:43:43 +0300 Subject: [PATCH 118/143] #64: init DB with quiz tables and sample data --- docs/software/README.md | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index a4c6b1e9c..7bccfda06 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,6 +1,43 @@ # Реалізація інформаційного та програмного забезпечення -В рамках проекту розробляється: +## SQL скрипти для ініціалізації та наповнення бази даних + +```sql +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + +CREATE TABLE IF NOT EXISTS Question ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + quiz_id UUID NOT NULL, + header VARCHAR(255), + description TEXT, + FOREIGN KEY (quiz_id) REFERENCES Quiz(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS Type ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + question_id UUID NOT NULL, + description TEXT, + FOREIGN KEY (question_id) REFERENCES Question(id) ON DELETE CASCADE +); + +INSERT INTO Question (quiz_id, header, description) +VALUES + ('827487ea-227a-4847-9bf7-e0ada468c87e', 'How satisfied are you?', 'Please rate your satisfaction from 1 to 5'), + ('827487ea-227a-4847-9bf7-e0ada468c87e', 'Would you recommend us?', ''), + ('827487ea-227a-4847-9bf7-e0ada468c87e', 'What could we improve?', 'Open-ended feedback welcome'), + ('827487ea-227a-4847-9bf7-e0ada468c87e', 'How easy was it to use our product?', 'Rate from 1 (hard) to 5 (easy)'), + ('827487ea-227a-4847-9bf7-e0ada468c87e', 'Did everything work as expected?', ''); + +INSERT INTO Type (question_id, description) +VALUES + ('f1b5084c-3e9a-485d-92e4-9b4696c2f953', '1TO5RATING'), + ('11a6f19f-612c-4562-acba-a4573decb6ef', 'YES/NO'), + ('68d46927-04b7-4d88-bf3d-6cd2d61e0756', 'TEXT'), + ('654d25da-b39f-4bf0-9731-4872b7c3b5b3', '1TO5RATING'), + ('b7135385-ca55-458c-b3f7-8c56c6449117', 'YES/NO'); +``` + + From 5268ff61de5f0724ec7c086b61f1801b0f8c5ca3 Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 25 Apr 2025 13:53:35 +0300 Subject: [PATCH 119/143] change Quiz --- docs/software/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/software/README.md b/docs/software/README.md index a4c6b1e9c..1aa070b6c 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -4,3 +4,26 @@ - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними + +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + +CREATE TABLE Quiz ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + title VARCHAR(255) NOT NULL, + description TEXT, + creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + close_date TIMESTAMP, + is_active BOOLEAN DEFAULT TRUE, + owner_id UUID NOT NULL, + FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE +); + +INSERT INTO Quiz (title, description, creation_date, close_date, is_active, owner_id) +VALUES + ('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), + ('Employee Feedback Quiz', 'Quiz to collect employee feedback', '2025-04-21 12:00:00', NULL, TRUE, '0e00b3e1-2c66-4f56-9332-9e20bfcdb812'), + ('Website Usability Quiz', 'Quiz to evaluate website usability', '2025-04-22 14:00:00', '2025-05-01 20:00:00', FALSE, '7f6c9aee-681c-4f61-812d-dcd7edb7b029'); + + + + From abc1775a4828acca2a6282d9052877b3b2453d24 Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 25 Apr 2025 21:42:42 +0300 Subject: [PATCH 120/143] change Quiz --- docs/software/README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 1aa070b6c..930fa3326 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,3 +1,4 @@ + # Реалізація інформаційного та програмного забезпечення В рамках проекту розробляється: @@ -8,21 +9,21 @@ CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE TABLE Quiz ( - id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), - title VARCHAR(255) NOT NULL, - description TEXT, - creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - close_date TIMESTAMP, - is_active BOOLEAN DEFAULT TRUE, - owner_id UUID NOT NULL, - FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE +id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), +title VARCHAR(255) NOT NULL, +description TEXT, +creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +close_date TIMESTAMP, +is_active BOOLEAN DEFAULT TRUE, +owner_id UUID NOT NULL, +FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE ); INSERT INTO Quiz (title, description, creation_date, close_date, is_active, owner_id) VALUES - ('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), - ('Employee Feedback Quiz', 'Quiz to collect employee feedback', '2025-04-21 12:00:00', NULL, TRUE, '0e00b3e1-2c66-4f56-9332-9e20bfcdb812'), - ('Website Usability Quiz', 'Quiz to evaluate website usability', '2025-04-22 14:00:00', '2025-05-01 20:00:00', FALSE, '7f6c9aee-681c-4f61-812d-dcd7edb7b029'); +('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), +('Employee Feedback Quiz', 'Quiz to collect employee feedback', '2025-04-21 12:00:00', NULL, TRUE, '0e00b3e1-2c66-4f56-9332-9e20bfcdb812'), +('Website Usability Quiz', 'Quiz to evaluate website usability', '2025-04-22 14:00:00', '2025-05-01 20:00:00', FALSE, '7f6c9aee-681c-4f61-812d-dcd7edb7b029'); From 5dd4b3b56990d48fc0a1fdfccc19953d67aa9c91 Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 25 Apr 2025 21:49:21 +0300 Subject: [PATCH 121/143] change Quiz --- docs/software/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 930fa3326..5fe1ad5e2 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -5,7 +5,7 @@ - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними - +``` CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE TABLE Quiz ( @@ -18,13 +18,14 @@ is_active BOOLEAN DEFAULT TRUE, owner_id UUID NOT NULL, FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE ); - +``` +``` INSERT INTO Quiz (title, description, creation_date, close_date, is_active, owner_id) VALUES ('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), ('Employee Feedback Quiz', 'Quiz to collect employee feedback', '2025-04-21 12:00:00', NULL, TRUE, '0e00b3e1-2c66-4f56-9332-9e20bfcdb812'), ('Website Usability Quiz', 'Quiz to evaluate website usability', '2025-04-22 14:00:00', '2025-05-01 20:00:00', FALSE, '7f6c9aee-681c-4f61-812d-dcd7edb7b029'); - +``` From 99796be2ece1282bd1a258a8c74b244aad158b4e Mon Sep 17 00:00:00 2001 From: Katia Date: Fri, 25 Apr 2025 21:51:26 +0300 Subject: [PATCH 122/143] change Quiz --- docs/software/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/software/README.md b/docs/software/README.md index 5fe1ad5e2..34dbd1783 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -29,3 +29,4 @@ VALUES ``` + From 6cde175313e8e05be9cd188ba75dd9db70f0f1d9 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 25 Apr 2025 21:57:49 +0300 Subject: [PATCH 123/143] #63: fix code block syntax --- docs/software/README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 34dbd1783..2d2bbb6bd 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,11 +1,9 @@ # Реалізація інформаційного та програмного забезпечення -В рамках проекту розробляється: - -- SQL-скрипт для створення на початкового наповнення бази даних -- RESTfull сервіс для управління даними -``` +## SQL скрипти для ініціалізації та наповнення бази даних + +```sql CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE TABLE Quiz ( @@ -18,8 +16,7 @@ is_active BOOLEAN DEFAULT TRUE, owner_id UUID NOT NULL, FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE ); -``` -``` + INSERT INTO Quiz (title, description, creation_date, close_date, is_active, owner_id) VALUES ('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), From 4bbbc5e2f8c64ab738736993cd50a2b540f4c793 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Fri, 25 Apr 2025 22:00:34 +0300 Subject: [PATCH 124/143] Update README.md --- docs/software/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/software/README.md b/docs/software/README.md index f24efea4a..9b674948c 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -14,7 +14,7 @@ CREATE TABLE Quiz ( close_date TIMESTAMP, is_active BOOLEAN DEFAULT TRUE, owner_id UUID NOT NULL, - FOREIGN KEY (owner_id) REFERENCES "User"(id) ON DELETE CASCADE + FOREIGN KEY (owner_id) REFERENCES User(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS Question ( From 60480782365cc045797683b146db2f890b4842f8 Mon Sep 17 00:00:00 2001 From: Sergio <161027752+ElRimigano@users.noreply.github.com> Date: Sat, 26 Apr 2025 13:43:41 +0300 Subject: [PATCH 125/143] updated docs\software\README.md --- docs/software/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/software/README.md b/docs/software/README.md index 9b674948c..863eae699 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -59,3 +59,20 @@ VALUES - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними --> + +```sql +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + +CREATE TABLE EventParticipant ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + role TEXT NOT NULL, + user_id UUID NOT NULL REFERENCES "User"(id), + event_id UUID NOT NULL REFERENCES WorkflowEvent(id) +); + +INSERT INTO EventParticipant (role, user_id, event_id) +VALUES + ('Reviewer', '359d3c13-30b6-4614-a54f-6d30bb5bd4ac', '20a8461b-03a6-4d4a-bd53-f33da214dbfc'), + ('Submitter', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'c69418e5-38ae-4bc5-b6e8-ea98fc249aaf'), + ('Observer', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'b5571635-803c-4fe0-95b1-382461510871'); +``` From 2f0dd3502e9bf2927564710381d93806175effd0 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 16:56:19 +0300 Subject: [PATCH 126/143] #67 --- docs/software/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/software/README.md b/docs/software/README.md index f7d7b82ab..b7ca3bdfa 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -8,7 +8,6 @@ # Feedback ```sql - -- ----------------------------------------------------- -- Table `DB_labs`.`Feedback` -- ----------------------------------------------------- From 8a6bb078a22da3a79263cbd68d31983618a979d8 Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:10:08 +0300 Subject: [PATCH 127/143] #64: merge two code blocks --- docs/software/README.md | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 863eae699..50f27418e 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -32,6 +32,13 @@ CREATE TABLE IF NOT EXISTS Type ( FOREIGN KEY (question_id) REFERENCES Question(id) ON DELETE CASCADE ); +CREATE TABLE EventParticipant ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + role TEXT NOT NULL, + user_id UUID NOT NULL REFERENCES "User"(id), + event_id UUID NOT NULL REFERENCES WorkflowEvent(id) +); + INSERT INTO Quiz (title, description, creation_date, close_date, is_active, owner_id) VALUES ('Customer Satisfaction Quiz', 'Quiz about customer satisfaction', '2025-04-20 10:00:00', '2025-04-30 23:59:59', TRUE, 'e7b3f5b4-8a63-4e2e-baad-5a8c5c5b1234'), @@ -53,22 +60,6 @@ VALUES ('68d46927-04b7-4d88-bf3d-6cd2d61e0756', 'TEXT'), ('654d25da-b39f-4bf0-9731-4872b7c3b5b3', '1TO5RATING'), ('b7135385-ca55-458c-b3f7-8c56c6449117', 'YES/NO'); -``` - - - -```sql -CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - -CREATE TABLE EventParticipant ( - id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), - role TEXT NOT NULL, - user_id UUID NOT NULL REFERENCES "User"(id), - event_id UUID NOT NULL REFERENCES WorkflowEvent(id) -); INSERT INTO EventParticipant (role, user_id, event_id) VALUES @@ -76,3 +67,8 @@ VALUES ('Submitter', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'c69418e5-38ae-4bc5-b6e8-ea98fc249aaf'), ('Observer', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'b5571635-803c-4fe0-95b1-382461510871'); ``` + + From 6fe245db12925bb517298df04f797124683d6fad Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:35:04 +0300 Subject: [PATCH 128/143] #67 --- docs/software/README.md | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index ad9dd6d1e..193073344 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -74,37 +74,37 @@ VALUES - RESTfull сервіс для управління даними -# Feedback +======= +- RESTfull сервіс для управління даними --> ```sql -- ----------------------------------------------------- --- Table `DB_labs`.`Feedback` +-- Table "Feedback" -- ----------------------------------------------------- -CREATE TABLE IF NOT EXISTS `DB_labs`.`Feedback` ( - `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, - `content` TEXT NOT NULL, - `date` DATETIME NOT NULL, - `user_id` INT UNSIGNED NOT NULL, - `survey_id` INT UNSIGNED NULL, - `uuid` CHAR(36) NOT NULL, -- Add uuid column - PRIMARY KEY (`id`, `user_id`), - UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE, - INDEX `fk_Feedback_User_idx` (`user_id` ASC) VISIBLE, - INDEX `fk_Feedback_Survey_idx` (`survey_id` ASC) VISIBLE, - CONSTRAINT `fk_Feedback_User` - FOREIGN KEY (`user_id`) - REFERENCES `DB_labs`.`User` (`id`) +CREATE TABLE IF NOT EXISTS "Feedback" ( + id SERIAL PRIMARY KEY, + content TEXT NOT NULL, + date TIMESTAMP NOT NULL, + user_id INTEGER NOT NULL, + survey_id INTEGER, + uuid UUID NOT NULL, + + CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) + REFERENCES "User" (id) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `fk_Feedback_Survey` - FOREIGN KEY (`survey_id`) - REFERENCES `DB_labs`.`Survey` (`id`) + + CONSTRAINT fk_feedback_survey FOREIGN KEY (survey_id) + REFERENCES "Survey" (id) ON DELETE SET NULL ON UPDATE CASCADE -) -ENGINE = InnoDB; -INSERT INTO `DB_labs`.`Feedback` (`content`, `date`, `user_id`, `survey_id`, `uuid`) +); + + +CREATE INDEX IF NOT EXISTS idx_feedback_user ON "Feedback" (user_id); +CREATE INDEX IF NOT EXISTS idx_feedback_survey ON "Feedback" (survey_id); + +-- Insert example +INSERT INTO "Feedback" (content, date, user_id, survey_id, uuid) VALUES ('This is some feedback content.', NOW(), 1, NULL, 'd8f3f8f0-5f7c-4288-b403-7787fbe3a9f3'); -======= -- RESTfull сервіс для управління даними --> From 55f60671ff4fe2977c36fbea8cac5114111ee04c Mon Sep 17 00:00:00 2001 From: Maxim <144056146+TockePie@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:41:29 +0300 Subject: [PATCH 129/143] Update README.md --- docs/use cases/README.md | 166 +++++++++++---------------------------- 1 file changed, 44 insertions(+), 122 deletions(-) diff --git a/docs/use cases/README.md b/docs/use cases/README.md index dbd6cff80..a50034085 100644 --- a/docs/use cases/README.md +++ b/docs/use cases/README.md @@ -5,19 +5,7 @@ outline: deep # Модель прецедентів -В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них. - -_Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів._ - -Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). - -В markdown-файлі використовується опис діаграми - -```html - - - - +## Загальна схема
UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa - } - - usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1 - usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2 - usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1 - usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2 - - package UCD_1 { - usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa - } - - usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1 - usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2 - usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3 - - - - User -> UC_1 - UC_1.1 .u.> UC_1 :extends - UC_1.2 .u.> UC_1 :extends - UC_4 .d.> UC_1.2 :extends - UC_1.2 .> UC_1.2 :extends - UC_1.2.1 .u.> UC_1.2 :extends - UC_1.2.2 .u.> UC_1.2 :extends - UC_1 ..> UC_1.2.2 :extends - + actor Expert + actor Client - UC_1.1.1 -u-|> UC_1.1 - UC_1.1.2 -u-|> UC_1.1 - UC_1.1.3 -u-|> UC_1.1 + usecase "UserManageAccount\nВзаємодія з\nобліковим записом" as UInteraction + usecase "SurveyInteraction\nВзаємодія з опитуванням" as EInteraction + usecase "SurveyCreate\nСтворити\nопитування" as SCreate + usecase "SurveyDelete\nВидалити\nопитування" as SDelete + usecase "SurveyManageResults\nВзаємодія\nз результатами" as SResults + usecase "SurveyShareAccess\nПоділитись\nопитуванням" as SShare + usecase "SurveyUpdate\nОновлення опитування" as SUpdate - right footer - Аналітичний портал. Модель прецедентів. - НТУУ КПІ ім.І.Сікорського - Киів-2020 - end footer + Expert -d-|> Client + Expert -> EInteraction + Client -u-> SResults + Client -r-> SCreate + Client -d-> UInteraction + Client -d-> SDelete + Client -d-> SUpdate + Client -l-> SShare @enduml -**Діаграма прецедентів** -
-``` -яка буде відображена наступним чином +## Схема клієнта
ChangeAnswers : extends SurveyInteraction .l.> SurveyFeedback : extends - @enduml -**Діаграма прецедентів** -
- +## Сценарії використання ### UserRegistration @@ -436,19 +386,14 @@ _Модель прецедентів повинна містити загаль ### SurveyResultsExport - -# Сценарії використання - ---- -| ID | SurveyResultsExport | -| :--- | :---: | -| **Назва:** | Експорт результатів опитування | -| **Учасники:** | Користувач, система | -| **Передумови:** | Опитування завершене | -| **Результат:** | Користувач отримує результати у вибраному форматі | -| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | +| ID | SurveyResultsExport | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| **Назва:** | Експорт результатів опитування | +| **Учасники:** | Користувач, система | +| **Передумови:** | Опитування завершене | +| **Результат:** | Користувач отримує результати у вибраному форматі | +| **Виключні ситуації:** | Некоректний формат експорту - UnsupportedFormatException | | **Основний сценарій:** | 1. Користувач обирає опитування
2. Вибирає формат експорту та надсилає запит (може виникнути UnsupportedFormatException)
3. Система генерує файл
4. Користувач отримує файл у потрібному форматі | ----
Possible error: @@ -518,19 +460,15 @@ skinparam ActivityBackgroundColor #d1a6e2 end note |Система| - - :система зберігає зміни й оновлює поточну версію опитування; |Користувач| - stop; @enduml
- ### SurveyFeedback | ID | SurveyFeedback | @@ -542,7 +480,6 @@ skinparam ActivityBackgroundColor #d1a6e2 | **Виключні ситуації:** | Відгук не відправлено через технічну помилку або недоступність сервера | | **Основний сценарій:** | 1. Користувач переглядає підсумки опитування
2. Оцінює якість запитань і надає зворотний зв’язок
3. Система зберігає відгук
4. Користувач публікує відгук | -
### SurveyReminder @@ -629,7 +559,6 @@ skinparam ActivityBackgroundColor #d1a6e2 | **Виключні ситуації:** | Немає незавершених опитувань – NoPendingSurveysException | | **Основний сценарій:** | 1. Користувач заходить у систему та переглядає свої активні опитування
2. Система перевіряє список активних опитувань користувача
3. Якщо є незавершені опитування, то система надсилає нагадування користувачу (може виникнути помилка NoPendingSurveysException)
4. Користувач отримує повідомлення про необхідність завершити опитування | -
- From 931f4f5d8c95ac4fde74099c3df8c43f5c907fbd Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:42:16 +0300 Subject: [PATCH 130/143] #67 --- docs/software/README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 193073344..b408e6bf3 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -77,9 +77,14 @@ VALUES ======= - RESTfull сервіс для управління даними --> + + ```sql + +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + -- ----------------------------------------------------- --- Table "Feedback" +-- Table "Feedback" з автогенерацією UUID -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS "Feedback" ( id SERIAL PRIMARY KEY, @@ -87,7 +92,7 @@ CREATE TABLE IF NOT EXISTS "Feedback" ( date TIMESTAMP NOT NULL, user_id INTEGER NOT NULL, survey_id INTEGER, - uuid UUID NOT NULL, + uuid UUID NOT NULL DEFAULT uuid_generate_v4(), -- Ось тут autogenerate CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) REFERENCES "User" (id) @@ -100,11 +105,12 @@ CREATE TABLE IF NOT EXISTS "Feedback" ( ON UPDATE CASCADE ); - +-- Індекси для зовнішніх ключів CREATE INDEX IF NOT EXISTS idx_feedback_user ON "Feedback" (user_id); CREATE INDEX IF NOT EXISTS idx_feedback_survey ON "Feedback" (survey_id); --- Insert example -INSERT INTO "Feedback" (content, date, user_id, survey_id, uuid) -VALUES ('This is some feedback content.', NOW(), 1, NULL, 'd8f3f8f0-5f7c-4288-b403-7787fbe3a9f3'); +-- Тепер можна вставляти дані без вказання uuid вручну +INSERT INTO "Feedback" (content, date, user_id, survey_id) +VALUES ('This is some feedback content.', NOW(), 1, NULL); + From b381b2be8846740c1b3e607ca7e6156e68945843 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:46:53 +0300 Subject: [PATCH 131/143] #67 --- docs/software/README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index b408e6bf3..62d393538 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -87,12 +87,12 @@ CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- Table "Feedback" з автогенерацією UUID -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS "Feedback" ( - id SERIAL PRIMARY KEY, - content TEXT NOT NULL, + id PRIMARY KEY, + description TEXT NOT NULL, date TIMESTAMP NOT NULL, - user_id INTEGER NOT NULL, - survey_id INTEGER, - uuid UUID NOT NULL DEFAULT uuid_generate_v4(), -- Ось тут autogenerate + user_id NOT NULL, + survey_id , + CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) REFERENCES "User" (id) @@ -105,12 +105,11 @@ CREATE TABLE IF NOT EXISTS "Feedback" ( ON UPDATE CASCADE ); --- Індекси для зовнішніх ключів CREATE INDEX IF NOT EXISTS idx_feedback_user ON "Feedback" (user_id); CREATE INDEX IF NOT EXISTS idx_feedback_survey ON "Feedback" (survey_id); --- Тепер можна вставляти дані без вказання uuid вручну + INSERT INTO "Feedback" (content, date, user_id, survey_id) -VALUES ('This is some feedback content.', NOW(), 1, NULL); +VALUES ('This is some feedback content.', NOW(), 'dcd73fec-10fb-4bc5-8c01-938fa329af46', NULL); From a43a2a87a022c906f606acd217f1e00fca75a504 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:48:01 +0300 Subject: [PATCH 132/143] 67 --- docs/software/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index 62d393538..f09c16752 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -72,9 +72,6 @@ VALUES - SQL-скрипт для створення на початкового наповнення бази даних -- RESTfull сервіс для управління даними - -======= - RESTfull сервіс для управління даними --> From f074ea331f108f5d5d9d0f64ed3b4fb85edba6d0 Mon Sep 17 00:00:00 2001 From: Viktoria Pylypchuk <160323232+villyvi@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:51:10 +0300 Subject: [PATCH 133/143] 67 --- docs/software/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/software/README.md b/docs/software/README.md index f09c16752..bcabd403f 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -66,7 +66,7 @@ VALUES ('Reviewer', '359d3c13-30b6-4614-a54f-6d30bb5bd4ac', '20a8461b-03a6-4d4a-bd53-f33da214dbfc'), ('Submitter', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'c69418e5-38ae-4bc5-b6e8-ea98fc249aaf'), ('Observer', '959d7ddf-12bb-4a3c-ae25-df4dbf60867e', 'b5571635-803c-4fe0-95b1-382461510871'); -``` + - - - - - -CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - - - -CREATE TABLE IF NOT EXISTS "Feedback" ( - id PRIMARY KEY, - description TEXT NOT NULL, - date TIMESTAMP NOT NULL, - user_id NOT NULL, - survey_id , - - - CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) - REFERENCES "User" (id) - ON DELETE CASCADE - ON UPDATE CASCADE, - - CONSTRAINT fk_feedback_survey FOREIGN KEY (survey_id) - REFERENCES "Survey" (id) - ON DELETE SET NULL - ON UPDATE CASCADE -); - -CREATE INDEX IF NOT EXISTS idx_feedback_user ON "Feedback" (user_id); -CREATE INDEX IF NOT EXISTS idx_feedback_survey ON "Feedback" (survey_id); - - -INSERT INTO "Feedback" (content, date, user_id, survey_id) -VALUES ('This is some feedback content.', NOW(), 'dcd73fec-10fb-4bc5-8c01-938fa329af46', NULL); -``` - From c3f5b502ef8cb7f7f701aa3c10597ed992d10b1a Mon Sep 17 00:00:00 2001 From: Vitvor Date: Sun, 27 Apr 2025 00:44:02 +0300 Subject: [PATCH 136/143] #65 edit README.md Created Variant and SelectedVar entities --- docs/software/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/software/README.md b/docs/software/README.md index 99953693b..7e921059b 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -38,6 +38,21 @@ CREATE TABLE EventParticipant ( event_id UUID NOT NULL REFERENCES WorkflowEvent(id) ); +CREATE TABLE Variant ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + question_id UUID NOT NULL, + text TEXT NOT NULL, + FOREIGN KEY (question_id) REFERENCES Question(id) ON DELETE CASCADE +); + +CREATE TABLE SelectedVar ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + variant_id UUID NOT NULL, + answer_id UUID NOT NULL, + FOREIGN KEY (variant_id) REFERENCES Variant(id) ON DELETE CASCADE, + FOREIGN KEY (answer_id) REFERENCES Answer(id) ON DELETE CASCADE +); + CREATE TABLE IF NOT EXISTS "Feedback" ( id PRIMARY KEY, description TEXT NOT NULL, @@ -89,6 +104,18 @@ VALUES INSERT INTO Feedback (content, date, user_id, survey_id) VALUES ('This is some feedback content.', NOW(), 'dcd73fec-10fb-4bc5-8c01-938fa329af46', NULL); + +INSERT INTO Variant (id, question_id, text) +VALUES + ('550e8400-e29b-41d4-a716-446655440000', 'f1b5084c-3e9a-485d-92e4-9b4696c2f953', 'Option 1'), + ('6ba7b810-9dad-11d1-80b4-00c04fd430c8', 'f1b5084c-3e9a-485d-92e4-9b4696c2f953', 'Option 2'), + ('6ba7b811-9dad-11d1-80b4-00c04fd430c8', '11a6f19f-612c-4562-acba-a4573decb6ef', 'Yes'), + ('6ba7b812-9dad-11d1-80b4-00c04fd430c8', '11a6f19f-612c-4562-acba-a4573decb6ef', 'No'); + +INSERT INTO SelectedVar (id, variant_id, answer_id) +VALUES + ('6ba7b813-9dad-11d1-80b4-00c04fd430c8', '550e8400-e29b-41d4-a716-446655440000', '123e4567-e89b-12d3-a456-426614174000'), + ('6ba7b814-9dad-11d1-80b4-00c04fd430c8', '6ba7b811-9dad-11d1-80b4-00c04fd430c8', '123e4567-e89b-12d3-a456-426614174001'); ```