diff --git a/app/src/main.js b/app/src/main.js index 6ee03780..4f57a397 100644 --- a/app/src/main.js +++ b/app/src/main.js @@ -37,6 +37,7 @@ minimizeButton.onclick = () => { const electron = require('electron'); const GoogleAssistant = require('google-assistant'); const isValidAccelerator = require('electron-is-accelerator'); +const googleIt = require('google-it'); const { execSync } = require('child_process'); const path = require('path'); const fs = require('fs'); @@ -1194,6 +1195,29 @@ function inspectResponseType(assistantResponseString) { ? youtubeMatch[3].startsWith('https://m.youtube.com/watch?v=') : false; + const googleSearchPrompts = [ + 'here\'s a result from search', + 'here\'s a result from the web', + 'here\'s the top search result', + 'this came back from google', + 'this came back from a search', + 'here\'s what i found on the web', + 'this is the top result', + 'here\'s what i found', + 'here\'s some info', + 'this is from wikipedia', + 'i found this on wikipedia', + 'here\'s an answer from wikipedia', + 'here\'s a wikipedia result', + 'here\'s the top wikipedia result', + 'wikipedia has this result', + 'here\'s something from wikipedia', + 'here\'s a result from wikipedia', + 'here\'s a matching wikipedia result', + ]; + + const isGoogleSearchPrompt = googleSearchPrompts.includes(mainArea.innerText.toLowerCase()); + let type; let searchResultParts; @@ -1205,6 +1229,10 @@ function inspectResponseType(assistantResponseString) { type = 'google-search-result'; searchResultParts = searchResultMatch.slice(1, 5); } + else if (isGoogleSearchPrompt) { + type = 'google-search-result-prompt'; + searchResultParts = null; + } else { type = null; searchResultParts = null; @@ -3941,6 +3969,40 @@ async function displayScreenData(screen, pushToHistory = false, theme = null) { `; } + else if (responseType['type'] === 'google-search-result-prompt') { + activateLoader(); + + const searchResults = await googleIt({ + query: getCurrentQuery(), + 'no-display': true, + }); + + const topResult = searchResults[0]; + + const googleSearchResultScreenData = ` +
+
+ ${topResult.title} +
+ +
+ ${topResult.link} +
+ +
+ +
+ ${topResult.snippet} +
+
+ `; + + textContainer.innerHTML = googleSearchResultScreenData; + deactivateLoader(); + } } if (innerText.indexOf('https://www.google.com/search?tbm=isch') !== -1) { @@ -4074,7 +4136,7 @@ async function displayScreenData(screen, pushToHistory = false, theme = null) { const suggestionsDOM = htmlDocument.querySelector('#assistant-scroll-bar'); const suggestionParent = document.querySelector('.suggestion-parent'); - if (suggestionsDOM != null) { + if (suggestionsDOM != null || responseType['type'] === 'google-search-result-prompt') { if (responseType['type'] || hasWebAnswer || hasKnowledgePanel) { suggestionParent.innerHTML += `
@@ -4146,7 +4208,7 @@ async function displayScreenData(screen, pushToHistory = false, theme = null) { `; } - for (let i = 0; i < suggestionsDOM.children.length; i++) { + for (let i = 0; i < suggestionsDOM?.children.length; i++) { const label = suggestionsDOM.children[i].innerHTML.trim(); const query = suggestionsDOM.children[i].getAttribute('data-follow-up-query'); let action = query; @@ -4198,7 +4260,7 @@ async function displayScreenData(screen, pushToHistory = false, theme = null) { if (pushToHistory && mainArea.querySelector('.error-area') == null) { let screenData; - if (isGoogleImagesContent) { + if (isGoogleImagesContent || responseType['type'] === 'google-search-result-prompt') { screenData = generateScreenData(true); } else { @@ -4248,20 +4310,22 @@ function generateScreenData(includePreventAutoScaleFlag = false) { const suggestions = document.querySelector('.suggestion-parent').children; let suggestionsDOM = ''; - for (let i = 0; i < suggestions.length; i++) { - const flag = suggestions[i].getAttribute('data-flag'); - const flagAttrib = flag ? `data-flag="${flag}"` : ''; - const label = suggestions[i].innerHTML.trim(); + if (suggestions.length > 0 && suggestions[0].classList.contains('suggestion')) { + for (let i = 0; i < suggestions.length; i++) { + const flag = suggestions[i].getAttribute('data-flag'); + const flagAttrib = flag ? `data-flag="${flag}"` : ''; + const label = suggestions[i].innerHTML.trim(); - const followUpQuery = suggestions[i] - .getAttribute('onclick') - .replace(/assistantTextQuery\(`(.*)`\)/, '$1'); + const followUpQuery = suggestions[i] + .getAttribute('onclick') + .replace(/assistantTextQuery\(`(.*)`\)/, '$1'); - suggestionsDOM += ` - - `; + suggestionsDOM += ` + + `; + } } const screenDataSuggestionsHTML = ` diff --git a/app/src/style.css b/app/src/style.css index abd62aa3..bbe0bedc 100644 --- a/app/src/style.css +++ b/app/src/style.css @@ -1,1343 +1,1343 @@ -:root { - --window-border-radius: 20px; - --color-blue: #1e90ff; - --color-red: #ea4335; - --color-green: #34a853; - --color-yellow: #fbbc05; - - /* Background and Foreground shades */ - --color-bg: #121212; - --color-secondary: #ffffff1c; - --color-accent: #1e90ff; - --color-fg-rgb: 255, 255, 255; - --color-fg: #ffffff; - --color-fg-med: #ffffff80; - --color-fg-med-low: #ffffff40; - --color-fg-light: #ffffff1c; - --color-fg-lightest: #ffffff0d; - - /* Button */ - --color-btn-bg-default: #ffffff14; - --color-btn-bg-hover: #ffffff24; - --color-btn-bg-active: #ffffff0d; - - /* Suggestion Chip */ - --color-suggestion-bg: #ffffff0d; - --color-suggestion-fg: #ffffff; - --color-suggestion-border-default: transparent; - --color-suggestion-border-hover: #ffffff80; - --color-suggestion-border-active: #ffffff40; - - /* Switch */ - --switch-bg: #ffffff40; - - /* Loader */ - --color-loader-bg: #272727; - - /* Input */ - --color-input-border: #ffffff1a; - --opacity-input-border-low: 0.502; - --opacity-input-border-high: 0.749; - - /* Scrollbar */ - --color-scrollbar-bg: #0d0d0d; - --color-scrollbar-response-screen-bg: #0d0d0d; - --color-scrollbar-response-screen-fg-rgb: 255, 255, 255; - - /* Dropdown */ - --color-select-bg: transparent; - --color-select-bg-hover: #ffffff1c; - --color-select-border: #ffffff40; - --color-option-bg: #000000; -} - -body { - color: var(--color-fg); - font-family: "Product Sans"; - -webkit-user-select: none; - background: transparent; - - transition: color 150ms ease-in; -} - -#master-bg { - z-index: -10; - position: absolute; - top: 0; - left: 0; - bottom: 1px; - right: 1px; - background: var(--color-bg); - border-radius: var(--window-border-radius); - border: transparent 0px solid; - - transition: all 150ms ease-in; -} - -#master-bg[data-border="prominent"][data-theme="dark"] { - border: var(--color-blue) 1.5px solid; -} - -#master-bg[data-border="prominent"][data-theme="light"] { - border: var(--color-blue) 2px solid; -} - -#master-bg[data-border="minimal"][data-theme="light"] { - border: #c0c0c0 1.5px solid; -} - -#master-bg[data-border="minimal"][data-theme="dark"] { - border: #505050 1.5px solid; -} - -#master-bg[data-border="color-shift"][data-theme="dark"] { - border-width: 1.5px; - animation: color-shift-border-anim infinite 5000ms; -} - -#master-bg[data-border="color-shift"][data-theme="light"] { - border-width: 2px; - animation: color-shift-border-anim infinite 5000ms; -} - -@keyframes color-shift-border-anim { - 0% { - border-color: var(--color-blue); - } - 25% { - border-color: var(--color-green); - } - 50% { - border-color: var(--color-red); - } - 75% { - border-color: var(--color-yellow); - } - 100% { - border-color: var(--color-blue); - } -} - -.invert { - filter: invert(1); - -webkit-filter: invert(1); -} - -/********** TITLE BAR SECTION **********/ - -#title-bar { - -webkit-app-region: drag; - -webkit-user-select: none; - user-select: none; - color: var(--color-fg); - padding-bottom: 40px; - - transition: color 150ms ease-in; -} - -#control-region { - z-index: 10; - -webkit-app-region: no-drag; - cursor: default; - -webkit-user-select: none; - position: absolute; - right: 10px; - top: 10px; - vertical-align: middle; -} - -#nav-region { - z-index: 10; - -webkit-app-region: no-drag; - cursor: default; - -webkit-user-select: none; - position: absolute; - left: 10px; - top: 10px; - vertical-align: middle; -} - -.quick-msg { - display: inline-block; - vertical-align: top; - margin-top: 8px; - margin-left: 10px; - color: var(--color-fg-med); - - animation: quick-msg-anim 5000ms ease-out; - transition: color 150ms ease-in; -} - -@keyframes quick-msg-anim { - 0% { - transform: translateX(-10px); - opacity: 0; - } - - 3% { - transform: translateX(5px); - } - - 5% { - transform: translateX(0); - opacity: 1; - } - - 23% { - opacity: 0.5; - } - - 41% { - opacity: 1; - } - - 59% { - opacity: 0.5; - } - - 77% { - opacity: 1; - } - - 95% { - transform: translateX(0); - opacity: 0.5; - } - - 97% { - transform: translateX(7px); - opacity: 0.5; - } - - 100% { - transform: translateX(-10px); - opacity: 0; - } -} - -.app-title { - -webkit-box-align: center; - text-align: center; - width: 100%; - vertical-align: -webkit-baseline-middle; - color: var(--color-fg); - font-size: 18px; - font-weight: bold; - position: absolute; - top: 15px; - left: 0; - right: 0; - - transition: color 150ms ease-in; -} - -/* Styles for pre-loader */ - -#loader-area { - position: absolute; - top: 50px; - left: 0; - right: 0; -} - -/* SRC: https://www.pexels.com/blog/css-only-loaders/ */ -.loader { - height: 4px; - width: 100%; - position: relative; - overflow: hidden; - background-color: var(--color-loader-bg); - - transition: background 150ms ease-in; -} - -.loader:before { - display: block; - position: absolute; - content: ""; - left: -200px; - width: 200px; - height: 4px; - background-color: var(--color-accent); - animation: loading 2s linear infinite; -} - -@keyframes loading { - from { - left: -30%; - width: 30%; - } - 50% { - width: 30%; - } - 70% { - width: 70%; - } - 80% { - left: 50%; - } - 95% { - left: 120%; - } - to { - left: 100%; - } -} - -.determinate-progress { - --determinate-progress-value: 0%; - - height: 4px; - width: 100%; - position: relative; - overflow: hidden; - background-color: var(--color-loader-bg); - - transition: background 150ms ease-in; -} - -.determinate-progress:before { - display: block; - position: absolute; - content: ""; - left: 0 !important; - width: var(--determinate-progress-value); - height: 4px; - background-color: var(--color-accent); - animation: none; - transition: width 150ms ease-in-out; -} - -.determinate-progress.progress-countdown-ten-secs:before { - animation: progress_determinate_anim 10s linear forwards; -} - -@keyframes progress_determinate_anim { - 0% { - width: 0%; - } - - 100% { - width: 100%; - } -} - -/********** MAIN AREA SECTION **********/ - -#main-area { - position: absolute; - top: 30px; - right: 20px; - left: 20px; - bottom: 120px; - -webkit-user-select: text; -} - -.assistant-markup-response { - color: #ffffff; - overflow-x: auto; - margin-top: 15px; - padding-left: 10px; - height: 95%; - transform-origin: top left; -} - -.google-search-result { - cursor: pointer; - background: rgba(255, 255, 255, 0.07); - padding: 10px 15px 20px 15px; - border-radius: 10px; - width: 75%; - -webkit-user-select: none; - - transition: all 150ms ease-in; -} - -.google-search-result:hover { - background: rgba(255, 255, 255, 0.11); -} - -.google-search-result:active { - background: rgba(255, 255, 255, 0.05); -} - -#google-images-carousel { - display: flex; - overflow-x: auto; -} - -#google-images-carousel::-webkit-scrollbar { - display: none; -} - -/* Styles for 'Init' Screen */ - -#init-loading { - transition: all 150ms ease-in; -} - -.fade-in { - animation: fade-in-anim 300ms; -} - -@keyframes fade-in-anim { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -#assistant-logo-main-parent { - animation: fade_in_from_bottom_anim 300ms; -} - -#assistant-logo-main { - height: 60px; - width: 60px; - margin-top: 20px; - -webkit-user-select: none; - -webkit-user-drag: none; -} - -#init-headline { - font-size: 28px; - text-align: center; - margin-top: 25px; - font-weight: bold; -} - -#init-headline-parent { - animation: fade_in_from_bottom_anim 1000ms; -} - -/* Styles for 'Welcome' Screen */ - -#first-time-logo { - height: 70px; - width: 315px; - margin-top: 20px; - margin-bottom: 20px; - -webkit-user-select: none; - -webkit-user-drag: none; -} - -#first-time-desc { - font-size: 20px; - color: var(--color-fg-med); - text-align: center; - margin-top: 25px; - - animation: fade_in_from_bottom_anim 1300ms ease-out; -} - -/* Styles for Carousel */ - -#selection-carousel-tv { - width: fit-content; - transform: scale(0.8); -} - -#photo-carousel-tv { - width: max-content; -} - -#tv_knowledge_panel_source { - width: max-content; -} - -.photo_tv_image { - background: #ffffff0d url(../res/throbber.svg) no-repeat center; - background-size: 20px; -} - -.tv-focusable:has(:not(#photo-carousel-tv)) { - margin-left: -13%; -} - -#tv-item-container { - overflow-x: scroll; - padding: 0; -} - -.carousel_tv_item:first-child { - margin-left: 0 !important; -} - -.fade-in-from-bottom { - animation: fade_in_from_bottom_anim 300ms; -} - -@keyframes fade_in_from_bottom_anim { - from { - padding-top: 15px; - opacity: 0; - } - - to { - padding-top: inherit; - opacity: 1; - } -} - -/********** ERROR/INFO SCREEN SECTION **********/ - -.error-area { - display: grid; - grid-template-areas: - "err-icon err-title err-title err-title" - "err-icon err-details err-details err-details" - "err-icon err-details err-details err-details"; - grid-template-columns: repeat(3, minmax(220px, 1fr)); - column-gap: 20px; - row-gap: 10px; - position: relative; - top: 100px; -} - -.err-icon { - grid-area: err-icon; - margin: auto; -} - -.err-title { - grid-area: err-title; - font-size: 30px; - color: var(--color-fg); -} - -.err-details { - grid-area: err-details; - font-size: 22px; - color: var(--color-fg-med); -} - -.err-subdetails { - grid-area: err-details; - font-size: 20px; - color: var(--color-fg-med-low); - padding-top: 5px; -} - -.no-auth-grid { - display: grid; - grid-template-areas: "no-auth-icon no-auth-info no-auth-info no-auth-info"; - grid-template-columns: minmax(200px, 1fr) 1fr 1fr 1fr; - font-size: 20px; - padding-top: 20px; -} - -.no-auth-grid-icon { - grid-area: no-auth-icon; - font-size: 20px; - margin: auto; -} - -.no-auth-grid-info { - grid-area: no-auth-info; -} - -/********** CONFIG (SETTINGS) SECTION **********/ - -#settings-btn { - position: relative; -} - -#settings-btn::before { - content: ''; - position: absolute; - top: 5px; - right: 5px; - height: 8px; - width: 8px; - border-radius: 100%; - box-shadow: 0 0 6px 1px var(--color-accent); - background-color: var(--color-accent); - transform: scale(0); - transition: transform 150ms ease; -} - -#settings-btn.active-badge::before { - transform: scale(1); -} - -#config-screen { - overflow-x: auto; - margin-top: 25px; - padding-left: 10px; - height: 94%; -} - -#config-notice-parent { - padding-top: 30px; - display: none; - transition: padding 250ms ease; -} - -.setting-label { - margin: 20px 10px 20px 10px; - font-weight: bold; -} - -.setting-label hr { - border: var(--color-fg-light) 0.5px solid; -} - -.setting-item { - display: grid; - grid-template-areas: "setting-key setting-value setting-value"; - grid-template-columns: minmax(200px, 1fr) 1fr 1fr; - padding: 10px 30px 10px 40px; - column-gap: 15px; - font-size: 19px; -} - -.setting-key { - grid-area: setting-key; - font-size: 20px; - margin-top: auto; - margin-bottom: auto; -} - -.setting-value { - grid-area: setting-value; - vertical-align: middle; - margin-top: auto; - margin-bottom: auto; -} - -.setting-item-button { - vertical-align: -webkit-baseline-middle; -} - -.settings-about-section { - grid-template-columns: 0.5fr 1fr 1fr !important; -} - -.config-input { - border: var(--color-input-border) 2px solid; - border-radius: 5px; - padding: 5px 12px; - margin-right: 5px; - font-family: "Roboto Mono", monospace; - font-size: 18px; - width: 76%; - color: rgba(var(--color-fg-rgb)); - - transition: all 200ms ease-out; -} - -.config-input:focus { - border: rgba(31, 143, 255, var(--opacity-input-border-low)) 2px solid; -} - -#config-item__update-options { - margin-top: 30px; - padding: 10px 20px; - border: 2px solid var(--color-accent); - border-radius: 10px; -} - -#config-item__update-options > hr { - border-color: var(--color-fg-light); - margin: 5px 0; -} - -#config-item__update-options .setting-item { - display: grid; - grid-template-columns: 0.75fr 1fr; - padding: 5px 0; -} - -#config-item__update-options .setting-key { - height: 35px; - display: flex; - flex-direction: column; - justify-content: center; -} - -#config-item__update-options .setting-value { - margin-top: unset; -} - -.config-banner { - cursor: pointer; - background-color: #1e90ff30; - margin-top: 10px; - margin-right: 30px; - font-size: 0.9rem; - padding: 30px 30px; - border-radius: 10px; - display: flex; - flex-direction: row; - justify-content: space-between; - - max-height: 4em; - transition: all 250ms ease; - overflow: hidden; -} - -.config-banner h1 { - font-size: 1.4em; - margin: 0; -} - -.config-banner p { - font-size: 1.1em; - opacity: 0.6; - margin: 0; -} - -.config-banner-main { - display: flex; - flex-direction: row; - justify-content: center; - gap: 20px; -} - -.config-banner-actions { - display: flex; - flex-direction: column; - justify-content: center; -} - -.config-banner-actions img { - -webkit-user-drag: none; -} - -.config-item-highlight { - animation: config-item-highlight-animation 5000ms forwards ease-out; -} - -@keyframes config-item-highlight-animation { - 0% { - background-color: #1e90ff30; - } - 100% { - background-color: unset; - } -} - -/********** SUGGESTION BAR SECTION **********/ - -#suggestion-area { - position: absolute; - bottom: 55px; - left: 20px; - right: 20px; - overflow-x: auto; - overflow-y: hidden; - height: 36px; - padding-top: 12px; - padding-bottom: 5px; -} - -.suggestion-parent { - width: max-content; - animation: fade_in_from_right_anim 300ms; -} - -.suggestion { - cursor: pointer; - display: inline; - margin-right: 5px; - background: var(--color-suggestion-bg); - padding: 8px 20px; - border-radius: 30px; - border: 1px solid var(--color-suggestion-border-default); - color: var(--color-suggestion-fg); - - transition: all 150ms ease-in; -} - -.suggestion:hover { - background: var(--color-fg-light); - border: 1px solid var(--color-suggestion-border-hover); -} - -.suggestion:active { - background: var(--color-fg-lightest); - border: 1px solid var(--color-suggestion-border-active); -} - -.suggestion.disabled { - padding: 8px 20px; -} - -@keyframes fade_in_from_right_anim { - from { - padding-left: 15px; - opacity: 0; - } - - to { - padding-left: inherit; - opacity: 1; - } -} - -/********** BOTTOM PERSISTENT BAR SECTION **********/ - -#assistant-persistent-bar { - z-index: 0; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - display: block; - border-bottom-left-radius: var(--window-border-radius); - border-bottom-right-radius: var(--window-border-radius); - - height: 50px; - background: var(--color-fg-lightest); -} - -#assistant-input { - position: absolute; - top: 10px; - left: 20px; - width: 90%; -} - -/* Styles for Assistant Mic and Amp-bar */ - -#assistant-mic-parent { - position: absolute; - top: 0; - right: 0; - height: 30px; - cursor: pointer; - user-select: none; - -webkit-user-drag: none; - - transition: all 0.15s ease-in; -} - -#assistant-mic, -.assistant-mic-disabled { - position: absolute; - top: 10px; - right: 20px; - height: 30px; - cursor: pointer; - user-select: none; - -webkit-user-drag: none; - - transition: all 0.15s ease-in; -} - -#assistant-mic:hover { - top: 2px; - height: 35px; -} - -#assistant-mic:active { - top: 10px; - height: 30px; - opacity: 0.5; -} - -.assistant-mic-disabled { - opacity: 0.5 !important; -} - -#amp-bar-group { - position: absolute; - top: 10px; - right: 20px; - height: 30px; - display: inline-flex; - flex-direction: row; - align-items: center; -} - -.amp-bar { - background-color: #5f00f7; - border-radius: 5px; - margin-right: 5px; - width: 5px; - height: 5px; - vertical-align: middle; - - transition: all 250ms ease-in; -} - -.fade-scale { - animation: fade_scale_anim 300ms; -} - -@keyframes fade_scale_anim { - from { - transform: scale(0.5); - opacity: 0; - } - - to { - transform: scale(1); - opacity: 1; - } -} - -/********** MISCELLANEOUS SECTION **********/ - -.para { - margin: 8px; -} - -.container { - height: 100%; -} - -.monospace { - font-family: "Roboto Mono"; -} - -code { - font-family: "Roboto Mono"; - background: rgba(var(--color-fg-rgb), 0.1); - padding: 1px 8px; - border-radius: 3px; -} - -a, -.link { - color: var(--color-blue); - text-decoration: none; - cursor: pointer; - - transition: all 150ms ease; -} - -a:hover, -.link:hover { - opacity: 0.5; -} - -a:active, -.link:active { - opacity: 0.7; -} - -blockquote { - border-left: 4px var(--color-blue) solid; - margin-left: 0; - padding-left: 20px; -} - -kbd { - font-family: "Roboto Mono"; - font-size: 16px; - background: rgba(var(--color-fg-rgb), 0.2); - padding: 1px 6px; - border-radius: 5px; - border: 1px solid #ffffff50; - border-bottom-width: 3px; -} - -ul li { - margin-top: 5px; -} - -.codeblock { - display: block; - width: 100%; - padding: 10px 15px; - margin-top: 10px; -} - -.markdown-list-checkbox { - list-style: none; - margin-top: 5px; -} - -.markdown-list-checkbox > input[type="checkbox"] { - vertical-align: middle; - height: 0.95rem; - width: 0.95rem; - margin-left: 0; - margin-right: 15px; -} - -.disabled { - opacity: 0.5 !important; - padding: 2px; - -webkit-user-select: none; - -webkit-user-drag: none; - - transition: none; -} - -.hyperlink { - cursor: pointer; - user-select: none; - text-decoration: underline; - transition: all 250ms; -} - -.hyperlink:hover { - opacity: 0.5; -} - -.hyperlink:active { - opacity: 0.25; -} - -.no-x-scroll { - overflow-x: hidden !important; -} - -@keyframes rotate_anim { - 0% { - transform: rotateZ(0deg); - } - - 100% { - transform: rotateZ(360deg); - } -} - -/********** INPUT **********/ - -input { - border: none; - outline: none; - color: var(--color-fg); - background: none; - caret-color: var(--color-accent); - - font-family: "Product Sans"; - font-size: 20px; -} - -.input-active { - border: rgba(31, 143, 255, var(--opacity-input-border-low)) 2px solid; -} - -.input-err { - border: rgba(234, 67, 52, var(--opacity-input-border-low)) 2px solid !important; - background: #ea43351c; - caret-color: #ea4335; -} - -.input-err:focus { - border: rgba(234, 67, 52, var(--opacity-input-border-high)) 2px solid !important; - background: rgba(234, 67, 53, 0.2); -} - -.shake { - animation: shake_anim 300ms; -} - -@keyframes shake_anim { - 0% { - transform: translateX(-5px); - } - - 25% { - transform: translateX(5px); - } - - 50% { - transform: translateX(-2px); - } - - 75% { - transform: translateX(2px); - } - - 100% { - transform: translateX(0px); - } -} - -/********** BUTTON **********/ - -button, -.button { - cursor: pointer; - display: inline; - margin-right: 5px; - background: var(--color-btn-bg-default); - padding: 8px 20px; - border-radius: 30px; - color: var(--color-fg); - font-family: "Product Sans"; - font-size: 16px; - border: none; - outline: none; - -webkit-user-select: none; - - transition: all 150ms ease-in; -} - -button:hover, -.button:hover { - background: var(--color-btn-bg-hover); -} - -button:active, -.button:active { - background: var(--color-btn-bg-active); -} - -button.disabled, -.button.disabled, -button[disabled], -.button[disabled] { - cursor: default; - background: var(--color-btn-bg-default); -} - -/********** ICON BUTTON **********/ - -.ico-btn { - padding: 2px; - border-radius: 100px; - -webkit-user-select: none; - -webkit-user-drag: none; - transition: all 0.2s ease-in; -} - -.ico-btn:hover { - opacity: 0.75; - background: rgba(var(--color-fg-rgb), 0.075); -} - -.ico-btn:active { - background: rgba(var(--color-fg-rgb), 0.22); -} - -.ico-btn.disabled { - background: none; -} - -*[type="icon"] { - height: 30px; - width: 30px; -} - -/********** SCROLLBAR **********/ - -/* Size & Background */ -::-webkit-scrollbar { - height: 5px; - width: 5px; - background: var(--color-scrollbar-bg); -} - -/* Track */ -::-webkit-scrollbar-track { - background: rgba(var(--color-fg-rgb), 0.1); - border-radius: 5px; -} - -/* Handle */ -::-webkit-scrollbar-thumb { - background: rgba(var(--color-fg-rgb), 0.15); - border-radius: 5px; -} - -/* Handle on hover */ -::-webkit-scrollbar-thumb:hover { - background: rgba(var(--color-fg-rgb), 0.2); -} - -/* Handle on click */ -::-webkit-scrollbar-thumb:active { - background: rgba(var(--color-fg-rgb), 0.1); -} - -/* Appearance of scrollbar corner */ -::-webkit-scrollbar-corner { - background: transparent; -} - -/********** ASSISTANT RESPONSE SECTION SCROLLBAR **********/ - -/* Size & Background */ -.assistant-markup-response::-webkit-scrollbar { - background: var(--color-scrollbar-response-screen-bg); -} - -/* Track */ -.assistant-markup-response::-webkit-scrollbar-track { - background: rgba( - var(--color-scrollbar-response-screen-fg-rgb), - 0.1 - ) !important; -} - -/* Handle */ -.assistant-markup-response::-webkit-scrollbar-thumb { - background: rgba( - var(--color-scrollbar-response-screen-fg-rgb), - 0.15 - ) !important; -} - -/* Handle on hover */ -.assistant-markup-response::-webkit-scrollbar-thumb:hover { - background: rgba( - var(--color-scrollbar-response-screen-fg-rgb), - 0.2 - ) !important; -} - -/* Handle on click */ -.assistant-markup-response::-webkit-scrollbar-thumb:active { - background: rgba( - var(--color-scrollbar-response-screen-fg-rgb), - 0.1 - ) !important; -} - -/********** ACCORDION **********/ - -.accordion { - position: relative; -} - -.accordion > input[type="checkbox"] { - display: none; - box-sizing: border-box; -} - -.accordion-tile { - vertical-align: -webkit-baseline-middle; - margin-right: 15px; - user-select: none; - cursor: pointer; - width: 100%; -} - -.accordion .accordion-content { - max-height: 0; - overflow: hidden; - padding: 0 30px; - - transition: all 300ms ease-in-out; -} - -.accordion input:checked ~ .accordion-content { - max-height: 1500px; -} - -.accordion-chevron { - position: absolute; - right: 24px; - top: 18px; - transform: rotateZ(0); - transform-origin: 50% 40%; - - transition: all 300ms ease; -} - -.accordion input:checked ~ .accordion-tile .accordion-chevron { - transform: rotateZ(180deg); -} - -/* Changelog Accordion */ - -#config-item__whats-new { - --changelog-accordion-content-height: 1500px; -} - -#config-item__whats-new input:checked ~ .accordion-content { - max-height: var(--changelog-accordion-content-height); -} - -/********** SLIDER-SWITCH **********/ -/* SRC: https://www.w3schools.com/howto/howto_css_switch.asp */ - -/* The slider */ -.switch { - position: relative; -} - -.switch input { - display: none; -} - -.slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - height: 35px; - width: 60px; - background-color: var(--switch-bg); - -webkit-transition: 0.4s; - transition: 0.4s; -} - -.slider:before { - position: absolute; - content: ""; - height: 26px; - width: 26px; - left: 4px; - bottom: 4px; - background-color: #ffffff; - -webkit-transition: 0.4s; - transition: 0.4s; -} - -input:checked + .slider { - background-color: var(--color-accent); -} - -input:focus + .slider { - box-shadow: 0 0 1px var(--color-accent); -} - -input:checked + .slider:before { - -webkit-transform: translateX(26px); - -ms-transform: translateX(26px); - transform: translateX(26px); -} - -/* Rounded sliders */ -.slider.round { - border-radius: 34px; -} - -.slider.round:before { - border-radius: 50%; -} - -.slider.disabled { - cursor: default; - opacity: 0.3 !important; - padding: unset; -} - -/********** DROP-DOWN **********/ - -select { - color: var(--color-fg); - background: var(--color-select-bg); - outline: none; - border: var(--color-select-border) 1px solid; - font-family: inherit; - font-size: 17px; - border-radius: 5px; - padding: 5px 2px; - height: 34px; - - transition: all 250ms ease-in; -} - -select:hover { - background: var(--color-select-bg-hover); -} - -option { - background: var(--color-option-bg); -} - -.selector-active { - border: var(--color-blue) 1px solid; -} +:root { + --window-border-radius: 20px; + --color-blue: #1e90ff; + --color-red: #ea4335; + --color-green: #34a853; + --color-yellow: #fbbc05; + + /* Background and Foreground shades */ + --color-bg: #121212; + --color-secondary: #ffffff1c; + --color-accent: #1e90ff; + --color-fg-rgb: 255, 255, 255; + --color-fg: #ffffff; + --color-fg-med: #ffffff80; + --color-fg-med-low: #ffffff40; + --color-fg-light: #ffffff1c; + --color-fg-lightest: #ffffff0d; + + /* Button */ + --color-btn-bg-default: #ffffff14; + --color-btn-bg-hover: #ffffff24; + --color-btn-bg-active: #ffffff0d; + + /* Suggestion Chip */ + --color-suggestion-bg: #ffffff0d; + --color-suggestion-fg: #ffffff; + --color-suggestion-border-default: transparent; + --color-suggestion-border-hover: #ffffff80; + --color-suggestion-border-active: #ffffff40; + + /* Switch */ + --switch-bg: #ffffff40; + + /* Loader */ + --color-loader-bg: #272727; + + /* Input */ + --color-input-border: #ffffff1a; + --opacity-input-border-low: 0.502; + --opacity-input-border-high: 0.749; + + /* Scrollbar */ + --color-scrollbar-bg: #0d0d0d; + --color-scrollbar-response-screen-bg: #0d0d0d; + --color-scrollbar-response-screen-fg-rgb: 255, 255, 255; + + /* Dropdown */ + --color-select-bg: transparent; + --color-select-bg-hover: #ffffff1c; + --color-select-border: #ffffff40; + --color-option-bg: #000000; +} + +body { + color: var(--color-fg); + font-family: "Product Sans"; + -webkit-user-select: none; + background: transparent; + + transition: color 150ms ease-in; +} + +#master-bg { + z-index: -10; + position: absolute; + top: 0; + left: 0; + bottom: 1px; + right: 1px; + background: var(--color-bg); + border-radius: var(--window-border-radius); + border: transparent 0px solid; + + transition: all 150ms ease-in; +} + +#master-bg[data-border="prominent"][data-theme="dark"] { + border: var(--color-blue) 1.5px solid; +} + +#master-bg[data-border="prominent"][data-theme="light"] { + border: var(--color-blue) 2px solid; +} + +#master-bg[data-border="minimal"][data-theme="light"] { + border: #c0c0c0 1.5px solid; +} + +#master-bg[data-border="minimal"][data-theme="dark"] { + border: #505050 1.5px solid; +} + +#master-bg[data-border="color-shift"][data-theme="dark"] { + border-width: 1.5px; + animation: color-shift-border-anim infinite 5000ms; +} + +#master-bg[data-border="color-shift"][data-theme="light"] { + border-width: 2px; + animation: color-shift-border-anim infinite 5000ms; +} + +@keyframes color-shift-border-anim { + 0% { + border-color: var(--color-blue); + } + 25% { + border-color: var(--color-green); + } + 50% { + border-color: var(--color-red); + } + 75% { + border-color: var(--color-yellow); + } + 100% { + border-color: var(--color-blue); + } +} + +.invert { + filter: invert(1); + -webkit-filter: invert(1); +} + +/********** TITLE BAR SECTION **********/ + +#title-bar { + -webkit-app-region: drag; + -webkit-user-select: none; + user-select: none; + color: var(--color-fg); + padding-bottom: 40px; + + transition: color 150ms ease-in; +} + +#control-region { + z-index: 10; + -webkit-app-region: no-drag; + cursor: default; + -webkit-user-select: none; + position: absolute; + right: 10px; + top: 10px; + vertical-align: middle; +} + +#nav-region { + z-index: 10; + -webkit-app-region: no-drag; + cursor: default; + -webkit-user-select: none; + position: absolute; + left: 10px; + top: 10px; + vertical-align: middle; +} + +.quick-msg { + display: inline-block; + vertical-align: top; + margin-top: 8px; + margin-left: 10px; + color: var(--color-fg-med); + + animation: quick-msg-anim 5000ms ease-out; + transition: color 150ms ease-in; +} + +@keyframes quick-msg-anim { + 0% { + transform: translateX(-10px); + opacity: 0; + } + + 3% { + transform: translateX(5px); + } + + 5% { + transform: translateX(0); + opacity: 1; + } + + 23% { + opacity: 0.5; + } + + 41% { + opacity: 1; + } + + 59% { + opacity: 0.5; + } + + 77% { + opacity: 1; + } + + 95% { + transform: translateX(0); + opacity: 0.5; + } + + 97% { + transform: translateX(7px); + opacity: 0.5; + } + + 100% { + transform: translateX(-10px); + opacity: 0; + } +} + +.app-title { + -webkit-box-align: center; + text-align: center; + width: 100%; + vertical-align: -webkit-baseline-middle; + color: var(--color-fg); + font-size: 18px; + font-weight: bold; + position: absolute; + top: 15px; + left: 0; + right: 0; + + transition: color 150ms ease-in; +} + +/* Styles for pre-loader */ + +#loader-area { + position: absolute; + top: 50px; + left: 0; + right: 0; +} + +/* SRC: https://www.pexels.com/blog/css-only-loaders/ */ +.loader { + height: 4px; + width: 100%; + position: relative; + overflow: hidden; + background-color: var(--color-loader-bg); + + transition: background 150ms ease-in; +} + +.loader:before { + display: block; + position: absolute; + content: ""; + left: -200px; + width: 200px; + height: 4px; + background-color: var(--color-accent); + animation: loading 2s linear infinite; +} + +@keyframes loading { + from { + left: -30%; + width: 30%; + } + 50% { + width: 30%; + } + 70% { + width: 70%; + } + 80% { + left: 50%; + } + 95% { + left: 120%; + } + to { + left: 100%; + } +} + +.determinate-progress { + --determinate-progress-value: 0%; + + height: 4px; + width: 100%; + position: relative; + overflow: hidden; + background-color: var(--color-loader-bg); + + transition: background 150ms ease-in; +} + +.determinate-progress:before { + display: block; + position: absolute; + content: ""; + left: 0 !important; + width: var(--determinate-progress-value); + height: 4px; + background-color: var(--color-accent); + animation: none; + transition: width 150ms ease-in-out; +} + +.determinate-progress.progress-countdown-ten-secs:before { + animation: progress_determinate_anim 10s linear forwards; +} + +@keyframes progress_determinate_anim { + 0% { + width: 0%; + } + + 100% { + width: 100%; + } +} + +/********** MAIN AREA SECTION **********/ + +#main-area { + position: absolute; + top: 30px; + right: 20px; + left: 20px; + bottom: 120px; + -webkit-user-select: text; +} + +.assistant-markup-response { + color: #ffffff; + overflow-x: auto; + margin-top: 15px; + padding-left: 10px; + height: 95%; + transform-origin: top left; +} + +.google-search-result { + cursor: pointer; + background: rgba(255, 255, 255, 0.07); + padding: 10px 15px 20px 15px; + border-radius: 10px; + width: 75%; + -webkit-user-select: none; + + transition: background 150ms ease-in; +} + +.google-search-result:hover { + background: rgba(255, 255, 255, 0.11); +} + +.google-search-result:active { + background: rgba(255, 255, 255, 0.05); +} + +#google-images-carousel { + display: flex; + overflow-x: auto; +} + +#google-images-carousel::-webkit-scrollbar { + display: none; +} + +/* Styles for 'Init' Screen */ + +#init-loading { + transition: all 150ms ease-in; +} + +.fade-in { + animation: fade-in-anim 300ms; +} + +@keyframes fade-in-anim { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +#assistant-logo-main-parent { + animation: fade_in_from_bottom_anim 300ms; +} + +#assistant-logo-main { + height: 60px; + width: 60px; + margin-top: 20px; + -webkit-user-select: none; + -webkit-user-drag: none; +} + +#init-headline { + font-size: 28px; + text-align: center; + margin-top: 25px; + font-weight: bold; +} + +#init-headline-parent { + animation: fade_in_from_bottom_anim 1000ms; +} + +/* Styles for 'Welcome' Screen */ + +#first-time-logo { + height: 70px; + width: 315px; + margin-top: 20px; + margin-bottom: 20px; + -webkit-user-select: none; + -webkit-user-drag: none; +} + +#first-time-desc { + font-size: 20px; + color: var(--color-fg-med); + text-align: center; + margin-top: 25px; + + animation: fade_in_from_bottom_anim 1300ms ease-out; +} + +/* Styles for Carousel */ + +#selection-carousel-tv { + width: fit-content; + transform: scale(0.8); +} + +#photo-carousel-tv { + width: max-content; +} + +#tv_knowledge_panel_source { + width: max-content; +} + +.photo_tv_image { + background: #ffffff0d url(../res/throbber.svg) no-repeat center; + background-size: 20px; +} + +.tv-focusable:has(:not(#photo-carousel-tv)) { + margin-left: -13%; +} + +#tv-item-container { + overflow-x: scroll; + padding: 0; +} + +.carousel_tv_item:first-child { + margin-left: 0 !important; +} + +.fade-in-from-bottom { + animation: fade_in_from_bottom_anim 300ms; +} + +@keyframes fade_in_from_bottom_anim { + from { + padding-top: 15px; + opacity: 0; + } + + to { + padding-top: inherit; + opacity: 1; + } +} + +/********** ERROR/INFO SCREEN SECTION **********/ + +.error-area { + display: grid; + grid-template-areas: + "err-icon err-title err-title err-title" + "err-icon err-details err-details err-details" + "err-icon err-details err-details err-details"; + grid-template-columns: repeat(3, minmax(220px, 1fr)); + column-gap: 20px; + row-gap: 10px; + position: relative; + top: 100px; +} + +.err-icon { + grid-area: err-icon; + margin: auto; +} + +.err-title { + grid-area: err-title; + font-size: 30px; + color: var(--color-fg); +} + +.err-details { + grid-area: err-details; + font-size: 22px; + color: var(--color-fg-med); +} + +.err-subdetails { + grid-area: err-details; + font-size: 20px; + color: var(--color-fg-med-low); + padding-top: 5px; +} + +.no-auth-grid { + display: grid; + grid-template-areas: "no-auth-icon no-auth-info no-auth-info no-auth-info"; + grid-template-columns: minmax(200px, 1fr) 1fr 1fr 1fr; + font-size: 20px; + padding-top: 20px; +} + +.no-auth-grid-icon { + grid-area: no-auth-icon; + font-size: 20px; + margin: auto; +} + +.no-auth-grid-info { + grid-area: no-auth-info; +} + +/********** CONFIG (SETTINGS) SECTION **********/ + +#settings-btn { + position: relative; +} + +#settings-btn::before { + content: ''; + position: absolute; + top: 5px; + right: 5px; + height: 8px; + width: 8px; + border-radius: 100%; + box-shadow: 0 0 6px 1px var(--color-accent); + background-color: var(--color-accent); + transform: scale(0); + transition: transform 150ms ease; +} + +#settings-btn.active-badge::before { + transform: scale(1); +} + +#config-screen { + overflow-x: auto; + margin-top: 25px; + padding-left: 10px; + height: 94%; +} + +#config-notice-parent { + padding-top: 30px; + display: none; + transition: padding 250ms ease; +} + +.setting-label { + margin: 20px 10px 20px 10px; + font-weight: bold; +} + +.setting-label hr { + border: var(--color-fg-light) 0.5px solid; +} + +.setting-item { + display: grid; + grid-template-areas: "setting-key setting-value setting-value"; + grid-template-columns: minmax(200px, 1fr) 1fr 1fr; + padding: 10px 30px 10px 40px; + column-gap: 15px; + font-size: 19px; +} + +.setting-key { + grid-area: setting-key; + font-size: 20px; + margin-top: auto; + margin-bottom: auto; +} + +.setting-value { + grid-area: setting-value; + vertical-align: middle; + margin-top: auto; + margin-bottom: auto; +} + +.setting-item-button { + vertical-align: -webkit-baseline-middle; +} + +.settings-about-section { + grid-template-columns: 0.5fr 1fr 1fr !important; +} + +.config-input { + border: var(--color-input-border) 2px solid; + border-radius: 5px; + padding: 5px 12px; + margin-right: 5px; + font-family: "Roboto Mono", monospace; + font-size: 18px; + width: 76%; + color: rgba(var(--color-fg-rgb)); + + transition: all 200ms ease-out; +} + +.config-input:focus { + border: rgba(31, 143, 255, var(--opacity-input-border-low)) 2px solid; +} + +#config-item__update-options { + margin-top: 30px; + padding: 10px 20px; + border: 2px solid var(--color-accent); + border-radius: 10px; +} + +#config-item__update-options > hr { + border-color: var(--color-fg-light); + margin: 5px 0; +} + +#config-item__update-options .setting-item { + display: grid; + grid-template-columns: 0.75fr 1fr; + padding: 5px 0; +} + +#config-item__update-options .setting-key { + height: 35px; + display: flex; + flex-direction: column; + justify-content: center; +} + +#config-item__update-options .setting-value { + margin-top: unset; +} + +.config-banner { + cursor: pointer; + background-color: #1e90ff30; + margin-top: 10px; + margin-right: 30px; + font-size: 0.9rem; + padding: 30px 30px; + border-radius: 10px; + display: flex; + flex-direction: row; + justify-content: space-between; + + max-height: 4em; + transition: all 250ms ease; + overflow: hidden; +} + +.config-banner h1 { + font-size: 1.4em; + margin: 0; +} + +.config-banner p { + font-size: 1.1em; + opacity: 0.6; + margin: 0; +} + +.config-banner-main { + display: flex; + flex-direction: row; + justify-content: center; + gap: 20px; +} + +.config-banner-actions { + display: flex; + flex-direction: column; + justify-content: center; +} + +.config-banner-actions img { + -webkit-user-drag: none; +} + +.config-item-highlight { + animation: config-item-highlight-animation 5000ms forwards ease-out; +} + +@keyframes config-item-highlight-animation { + 0% { + background-color: #1e90ff30; + } + 100% { + background-color: unset; + } +} + +/********** SUGGESTION BAR SECTION **********/ + +#suggestion-area { + position: absolute; + bottom: 55px; + left: 20px; + right: 20px; + overflow-x: auto; + overflow-y: hidden; + height: 36px; + padding-top: 12px; + padding-bottom: 5px; +} + +.suggestion-parent { + width: max-content; + animation: fade_in_from_right_anim 300ms; +} + +.suggestion { + cursor: pointer; + display: inline; + margin-right: 5px; + background: var(--color-suggestion-bg); + padding: 8px 20px; + border-radius: 30px; + border: 1px solid var(--color-suggestion-border-default); + color: var(--color-suggestion-fg); + + transition: all 150ms ease-in; +} + +.suggestion:hover { + background: var(--color-fg-light); + border: 1px solid var(--color-suggestion-border-hover); +} + +.suggestion:active { + background: var(--color-fg-lightest); + border: 1px solid var(--color-suggestion-border-active); +} + +.suggestion.disabled { + padding: 8px 20px; +} + +@keyframes fade_in_from_right_anim { + from { + padding-left: 15px; + opacity: 0; + } + + to { + padding-left: inherit; + opacity: 1; + } +} + +/********** BOTTOM PERSISTENT BAR SECTION **********/ + +#assistant-persistent-bar { + z-index: 0; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + border-bottom-left-radius: var(--window-border-radius); + border-bottom-right-radius: var(--window-border-radius); + + height: 50px; + background: var(--color-fg-lightest); +} + +#assistant-input { + position: absolute; + top: 10px; + left: 20px; + width: 90%; +} + +/* Styles for Assistant Mic and Amp-bar */ + +#assistant-mic-parent { + position: absolute; + top: 0; + right: 0; + height: 30px; + cursor: pointer; + user-select: none; + -webkit-user-drag: none; + + transition: all 0.15s ease-in; +} + +#assistant-mic, +.assistant-mic-disabled { + position: absolute; + top: 10px; + right: 20px; + height: 30px; + cursor: pointer; + user-select: none; + -webkit-user-drag: none; + + transition: all 0.15s ease-in; +} + +#assistant-mic:hover { + top: 2px; + height: 35px; +} + +#assistant-mic:active { + top: 10px; + height: 30px; + opacity: 0.5; +} + +.assistant-mic-disabled { + opacity: 0.5 !important; +} + +#amp-bar-group { + position: absolute; + top: 10px; + right: 20px; + height: 30px; + display: inline-flex; + flex-direction: row; + align-items: center; +} + +.amp-bar { + background-color: #5f00f7; + border-radius: 5px; + margin-right: 5px; + width: 5px; + height: 5px; + vertical-align: middle; + + transition: all 250ms ease-in; +} + +.fade-scale { + animation: fade_scale_anim 300ms; +} + +@keyframes fade_scale_anim { + from { + transform: scale(0.5); + opacity: 0; + } + + to { + transform: scale(1); + opacity: 1; + } +} + +/********** MISCELLANEOUS SECTION **********/ + +.para { + margin: 8px; +} + +.container { + height: 100%; +} + +.monospace { + font-family: "Roboto Mono"; +} + +code { + font-family: "Roboto Mono"; + background: rgba(var(--color-fg-rgb), 0.1); + padding: 1px 8px; + border-radius: 3px; +} + +a, +.link { + color: var(--color-blue); + text-decoration: none; + cursor: pointer; + + transition: all 150ms ease; +} + +a:hover, +.link:hover { + opacity: 0.5; +} + +a:active, +.link:active { + opacity: 0.7; +} + +blockquote { + border-left: 4px var(--color-blue) solid; + margin-left: 0; + padding-left: 20px; +} + +kbd { + font-family: "Roboto Mono"; + font-size: 16px; + background: rgba(var(--color-fg-rgb), 0.2); + padding: 1px 6px; + border-radius: 5px; + border: 1px solid #ffffff50; + border-bottom-width: 3px; +} + +ul li { + margin-top: 5px; +} + +.codeblock { + display: block; + width: 100%; + padding: 10px 15px; + margin-top: 10px; +} + +.markdown-list-checkbox { + list-style: none; + margin-top: 5px; +} + +.markdown-list-checkbox > input[type="checkbox"] { + vertical-align: middle; + height: 0.95rem; + width: 0.95rem; + margin-left: 0; + margin-right: 15px; +} + +.disabled { + opacity: 0.5 !important; + padding: 2px; + -webkit-user-select: none; + -webkit-user-drag: none; + + transition: none; +} + +.hyperlink { + cursor: pointer; + user-select: none; + text-decoration: underline; + transition: all 250ms; +} + +.hyperlink:hover { + opacity: 0.5; +} + +.hyperlink:active { + opacity: 0.25; +} + +.no-x-scroll { + overflow-x: hidden !important; +} + +@keyframes rotate_anim { + 0% { + transform: rotateZ(0deg); + } + + 100% { + transform: rotateZ(360deg); + } +} + +/********** INPUT **********/ + +input { + border: none; + outline: none; + color: var(--color-fg); + background: none; + caret-color: var(--color-accent); + + font-family: "Product Sans"; + font-size: 20px; +} + +.input-active { + border: rgba(31, 143, 255, var(--opacity-input-border-low)) 2px solid; +} + +.input-err { + border: rgba(234, 67, 52, var(--opacity-input-border-low)) 2px solid !important; + background: #ea43351c; + caret-color: #ea4335; +} + +.input-err:focus { + border: rgba(234, 67, 52, var(--opacity-input-border-high)) 2px solid !important; + background: rgba(234, 67, 53, 0.2); +} + +.shake { + animation: shake_anim 300ms; +} + +@keyframes shake_anim { + 0% { + transform: translateX(-5px); + } + + 25% { + transform: translateX(5px); + } + + 50% { + transform: translateX(-2px); + } + + 75% { + transform: translateX(2px); + } + + 100% { + transform: translateX(0px); + } +} + +/********** BUTTON **********/ + +button, +.button { + cursor: pointer; + display: inline; + margin-right: 5px; + background: var(--color-btn-bg-default); + padding: 8px 20px; + border-radius: 30px; + color: var(--color-fg); + font-family: "Product Sans"; + font-size: 16px; + border: none; + outline: none; + -webkit-user-select: none; + + transition: all 150ms ease-in; +} + +button:hover, +.button:hover { + background: var(--color-btn-bg-hover); +} + +button:active, +.button:active { + background: var(--color-btn-bg-active); +} + +button.disabled, +.button.disabled, +button[disabled], +.button[disabled] { + cursor: default; + background: var(--color-btn-bg-default); +} + +/********** ICON BUTTON **********/ + +.ico-btn { + padding: 2px; + border-radius: 100px; + -webkit-user-select: none; + -webkit-user-drag: none; + transition: all 0.2s ease-in; +} + +.ico-btn:hover { + opacity: 0.75; + background: rgba(var(--color-fg-rgb), 0.075); +} + +.ico-btn:active { + background: rgba(var(--color-fg-rgb), 0.22); +} + +.ico-btn.disabled { + background: none; +} + +*[type="icon"] { + height: 30px; + width: 30px; +} + +/********** SCROLLBAR **********/ + +/* Size & Background */ +::-webkit-scrollbar { + height: 5px; + width: 5px; + background: var(--color-scrollbar-bg); +} + +/* Track */ +::-webkit-scrollbar-track { + background: rgba(var(--color-fg-rgb), 0.1); + border-radius: 5px; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: rgba(var(--color-fg-rgb), 0.15); + border-radius: 5px; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: rgba(var(--color-fg-rgb), 0.2); +} + +/* Handle on click */ +::-webkit-scrollbar-thumb:active { + background: rgba(var(--color-fg-rgb), 0.1); +} + +/* Appearance of scrollbar corner */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/********** ASSISTANT RESPONSE SECTION SCROLLBAR **********/ + +/* Size & Background */ +.assistant-markup-response::-webkit-scrollbar { + background: var(--color-scrollbar-response-screen-bg); +} + +/* Track */ +.assistant-markup-response::-webkit-scrollbar-track { + background: rgba( + var(--color-scrollbar-response-screen-fg-rgb), + 0.1 + ) !important; +} + +/* Handle */ +.assistant-markup-response::-webkit-scrollbar-thumb { + background: rgba( + var(--color-scrollbar-response-screen-fg-rgb), + 0.15 + ) !important; +} + +/* Handle on hover */ +.assistant-markup-response::-webkit-scrollbar-thumb:hover { + background: rgba( + var(--color-scrollbar-response-screen-fg-rgb), + 0.2 + ) !important; +} + +/* Handle on click */ +.assistant-markup-response::-webkit-scrollbar-thumb:active { + background: rgba( + var(--color-scrollbar-response-screen-fg-rgb), + 0.1 + ) !important; +} + +/********** ACCORDION **********/ + +.accordion { + position: relative; +} + +.accordion > input[type="checkbox"] { + display: none; + box-sizing: border-box; +} + +.accordion-tile { + vertical-align: -webkit-baseline-middle; + margin-right: 15px; + user-select: none; + cursor: pointer; + width: 100%; +} + +.accordion .accordion-content { + max-height: 0; + overflow: hidden; + padding: 0 30px; + + transition: all 300ms ease-in-out; +} + +.accordion input:checked ~ .accordion-content { + max-height: 1500px; +} + +.accordion-chevron { + position: absolute; + right: 24px; + top: 18px; + transform: rotateZ(0); + transform-origin: 50% 40%; + + transition: all 300ms ease; +} + +.accordion input:checked ~ .accordion-tile .accordion-chevron { + transform: rotateZ(180deg); +} + +/* Changelog Accordion */ + +#config-item__whats-new { + --changelog-accordion-content-height: 1500px; +} + +#config-item__whats-new input:checked ~ .accordion-content { + max-height: var(--changelog-accordion-content-height); +} + +/********** SLIDER-SWITCH **********/ +/* SRC: https://www.w3schools.com/howto/howto_css_switch.asp */ + +/* The slider */ +.switch { + position: relative; +} + +.switch input { + display: none; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + height: 35px; + width: 60px; + background-color: var(--switch-bg); + -webkit-transition: 0.4s; + transition: 0.4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: #ffffff; + -webkit-transition: 0.4s; + transition: 0.4s; +} + +input:checked + .slider { + background-color: var(--color-accent); +} + +input:focus + .slider { + box-shadow: 0 0 1px var(--color-accent); +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +.slider.disabled { + cursor: default; + opacity: 0.3 !important; + padding: unset; +} + +/********** DROP-DOWN **********/ + +select { + color: var(--color-fg); + background: var(--color-select-bg); + outline: none; + border: var(--color-select-border) 1px solid; + font-family: inherit; + font-size: 17px; + border-radius: 5px; + padding: 5px 2px; + height: 34px; + + transition: all 250ms ease-in; +} + +select:hover { + background: var(--color-select-bg-hover); +} + +option { + background: var(--color-option-bg); +} + +.selector-active { + border: var(--color-blue) 1px solid; +} diff --git a/package-lock.json b/package-lock.json index aa5fcc4a..f187d459 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "g-assist", - "version": "1.0.0", + "version": "1.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "g-assist", - "version": "1.0.0", + "version": "1.1.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -16,6 +16,7 @@ "electron-updater": "^5.3.0", "express": "^4.18.2", "google-assistant": "github:Melvin-Abraham/google-assistant#g-assist", + "google-it": "^1.6.4", "grpc": "1.24.7", "isomorphic-dompurify": "^0.23.0", "marked": "^4.1.1", @@ -616,7 +617,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -649,7 +649,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -771,6 +770,14 @@ "node": ">=6.0" } }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -871,12 +878,18 @@ "optjs": "~3.2.2" } }, + "node_modules/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==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true, "engines": { "node": ">=0.8" } @@ -927,6 +940,19 @@ "node": ">= 4.0.0" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, "node_modules/axe-core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", @@ -968,6 +994,14 @@ } ] }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/bignumber.js": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", @@ -1038,6 +1072,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/boolean": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", @@ -1282,6 +1321,11 @@ "node": ">=0.10.0" } }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, "node_modules/chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", @@ -1298,6 +1342,42 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -1319,6 +1399,28 @@ "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "dev": true }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -1394,6 +1496,14 @@ "wrap-ansi": "^2.0.0" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -1418,7 +1528,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1429,8 +1538,7 @@ "node_modules/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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colors": { "version": "1.0.3", @@ -1460,6 +1568,20 @@ "node": ">= 0.8" } }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -1593,6 +1715,32 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -1621,6 +1769,17 @@ "dev": true, "peer": true }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -1688,6 +1847,17 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -1895,6 +2065,30 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -1906,11 +2100,38 @@ "node": ">=12" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/dompurify": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dotenv": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", @@ -1932,6 +2153,15 @@ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", "dev": true }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -3110,14 +3340,12 @@ "node_modules/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==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/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==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -3219,6 +3447,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -3254,6 +3493,14 @@ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -3441,6 +3688,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -3569,6 +3824,29 @@ "node": ">=10" } }, + "node_modules/google-it": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/google-it/-/google-it-1.6.4.tgz", + "integrity": "sha512-iM/31cWQ0wLcBngHSR3l6OwtkqYP93kiQWF74YqyHte/sJ5BFQ60IzCckuetu0LH4//mxYqFlH30nhNuBX/udw==", + "dependencies": { + "cheerio": "^1.0.0-rc.11", + "colors": "^1.4.0", + "command-line-args": "^5.0.0", + "ora": "^4.0.3", + "request": "^2.88.0" + }, + "bin": { + "google-it": "lib/app.js" + } + }, + "node_modules/google-it/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/google-p12-pem": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", @@ -3682,6 +3960,27 @@ "node": ">=10" } }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3706,7 +4005,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3777,6 +4075,24 @@ "node": ">=12" } }, + "node_modules/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -3811,6 +4127,20 @@ "node": ">= 6" } }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -4085,6 +4415,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -4195,6 +4533,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -4251,6 +4594,11 @@ "jsdom": "^20.0.1" } }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, "node_modules/jake": { "version": "10.8.5", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", @@ -4293,6 +4641,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "node_modules/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.1.tgz", @@ -4351,11 +4704,15 @@ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, "node_modules/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==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -4366,9 +4723,7 @@ "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "optional": true + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "2.2.1", @@ -4391,6 +4746,41 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsprim/node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/jsprim/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -4526,6 +4916,81 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/log-symbols/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/long": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", @@ -4643,6 +5108,14 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -4712,6 +5185,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -4991,6 +5469,17 @@ "set-blocking": "~2.0.0" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -5004,6 +5493,14 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5129,6 +5626,20 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", @@ -5167,6 +5678,58 @@ "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, + "node_modules/ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -5265,6 +5828,18 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -5316,6 +5891,11 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -5647,6 +6227,70 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/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==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/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==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5696,6 +6340,18 @@ "lowercase-keys": "^1.0.0" } }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -6061,13 +6717,37 @@ "source-map": "^0.6.0" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "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" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stat-mode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", @@ -6207,7 +6887,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6420,6 +7099,22 @@ "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6470,6 +7165,14 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -6506,7 +7209,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -6551,6 +7253,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -6585,6 +7296,14 @@ "node": ">=12" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -7279,7 +7998,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7303,7 +8021,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -7407,6 +8124,11 @@ "@babel/runtime-corejs3": "^7.10.2" } }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7477,12 +8199,18 @@ "optjs": "~3.2.2" } }, + "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" + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, "ast-types-flow": { "version": "0.0.7", @@ -7521,6 +8249,16 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, "axe-core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", @@ -7545,6 +8283,14 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, "bignumber.js": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", @@ -7607,6 +8353,11 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "boolean": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", @@ -7803,6 +8554,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, "chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", @@ -7813,6 +8569,33 @@ "supports-color": "^7.1.0" } }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -7831,6 +8614,19 @@ "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" + }, "cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -7890,6 +8686,11 @@ "wrap-ansi": "^2.0.0" } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -7908,7 +8709,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -7916,8 +8716,7 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.0.3", @@ -7938,6 +8737,17 @@ "delayed-stream": "~1.0.0" } }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, "commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -8045,6 +8855,23 @@ "which": "^2.0.1" } }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, "cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -8072,6 +8899,14 @@ "dev": true, "peer": true }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, "data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -8119,6 +8954,14 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "requires": { + "clone": "^1.0.2" + } + }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -8274,6 +9117,21 @@ "esutils": "^2.0.2" } }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, "domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -8282,11 +9140,29 @@ "webidl-conversions": "^7.0.0" } }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, "dompurify": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz", "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==" }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, "dotenv": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", @@ -8305,6 +9181,15 @@ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", "dev": true }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -9237,14 +10122,12 @@ "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==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "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==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -9341,6 +10224,14 @@ } } }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "requires": { + "array-back": "^3.0.1" + } + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -9367,6 +10258,11 @@ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -9506,6 +10402,14 @@ "get-intrinsic": "^1.1.1" } }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, "glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -9577,7 +10481,7 @@ }, "google-assistant": { "version": "git+ssh://git@github.com/Melvin-Abraham/google-assistant.git#17fbc78a7f02ac2231a7dab137047132327666e0", - "from": "google-assistant@https://github.com/Melvin-Abraham/google-assistant.git#g-assist", + "from": "google-assistant@github:Melvin-Abraham/google-assistant#g-assist", "requires": { "google-auth-library": "^7.0.4", "grpc": "^1.24.6", @@ -9603,6 +10507,25 @@ "lru-cache": "^6.0.0" } }, + "google-it": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/google-it/-/google-it-1.6.4.tgz", + "integrity": "sha512-iM/31cWQ0wLcBngHSR3l6OwtkqYP93kiQWF74YqyHte/sJ5BFQ60IzCckuetu0LH4//mxYqFlH30nhNuBX/udw==", + "requires": { + "cheerio": "^1.0.0-rc.11", + "colors": "^1.4.0", + "command-line-args": "^5.0.0", + "ora": "^4.0.3", + "request": "^2.88.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + } + } + }, "google-p12-pem": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", @@ -9694,6 +10617,20 @@ "jws": "^4.0.0" } }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "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", @@ -9711,8 +10648,7 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-property-descriptors": { "version": "1.0.0", @@ -9759,6 +10695,17 @@ "whatwg-encoding": "^2.0.0" } }, + "htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -9787,6 +10734,16 @@ "debug": "4" } }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -9969,6 +10926,11 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -10037,6 +10999,11 @@ "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": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -10081,6 +11048,11 @@ "jsdom": "^20.0.1" } }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, "jake": { "version": "10.8.5", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", @@ -10114,6 +11086,11 @@ "argparse": "^2.0.1" } }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.1.tgz", @@ -10161,11 +11138,15 @@ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, + "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==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -10176,9 +11157,7 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "optional": true + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "json5": { "version": "2.2.1", @@ -10195,6 +11174,34 @@ "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" + }, + "dependencies": { + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } + } + }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -10315,6 +11322,65 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "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==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "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" + } + } + } + }, "long": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", @@ -10393,6 +11459,11 @@ "mime-db": "1.52.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -10441,6 +11512,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -10675,6 +11751,14 @@ "set-blocking": "~2.0.0" } }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -10685,6 +11769,11 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" }, + "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", @@ -10774,6 +11863,14 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, "open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", @@ -10803,6 +11900,45 @@ "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, + "ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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" + } + }, + "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" + } + } + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -10871,6 +12007,15 @@ "entities": "^4.4.0" } }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -10910,6 +12055,11 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -11164,6 +12314,59 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "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": { + "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" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "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" + } + } + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11201,6 +12404,15 @@ "lowercase-keys": "^1.0.0" } }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -11481,6 +12693,22 @@ "dev": true, "optional": true }, + "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" + } + }, "stat-mode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", @@ -11589,7 +12817,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -11764,6 +12991,19 @@ "dev": true, "optional": true }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -11802,6 +13042,11 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" + }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -11829,7 +13074,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -11868,6 +13112,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -11893,6 +13142,14 @@ "xml-name-validator": "^4.0.0" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "requires": { + "defaults": "^1.0.3" + } + }, "webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", diff --git a/package.json b/package.json index 2080de07..2f938449 100644 --- a/package.json +++ b/package.json @@ -131,6 +131,7 @@ "electron-updater": "^5.3.0", "express": "^4.18.2", "google-assistant": "github:Melvin-Abraham/google-assistant#g-assist", + "google-it": "^1.6.4", "grpc": "1.24.7", "isomorphic-dompurify": "^0.23.0", "marked": "^4.1.1",