diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-01-03 15:30:38 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-03 15:30:38 -0500 | 
| commit | 63971776a5db6ad0d3a68361f64a74aa9e78aff5 (patch) | |
| tree | e4100c1e6e418cf26165708992ef75be62c9628d | |
| parent | d50d7a4a3a5e307838348726de331cf5eb283bff (diff) | |
CSS lint (#1201)
* Use single quotes instead of double
* Install stylelint
* Set up config
* Update package/tests
* Fix lint issues
* Update CSS rules
| -rw-r--r-- | .github/workflows/ci.yml | 4 | ||||
| -rw-r--r-- | .stylelintrc.json | 54 | ||||
| -rw-r--r-- | ext/bg/css/context.css | 15 | ||||
| -rw-r--r-- | ext/bg/css/pitch-accents-preview.css | 2 | ||||
| -rw-r--r-- | ext/bg/css/popup-preview.css | 2 | ||||
| -rw-r--r-- | ext/bg/css/settings.css | 15 | ||||
| -rw-r--r-- | ext/bg/css/settings2.css | 51 | ||||
| -rw-r--r-- | ext/mixed/css/display.css | 126 | ||||
| -rw-r--r-- | ext/mixed/css/material.css | 91 | ||||
| -rw-r--r-- | ext/mixed/css/search.css | 7 | ||||
| -rw-r--r-- | package-lock.json | 1807 | ||||
| -rw-r--r-- | package.json | 5 | ||||
| -rw-r--r-- | test/data/html/test-stylesheet.css | 8 | 
13 files changed, 2025 insertions, 162 deletions
| diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be248fbf..7458d199 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,10 @@ jobs:        run: npm run test-lint        env:          CI: true +    - name: Lint CSS +      run: npm run test-lint-css +      env: +        CI: true      - name: Tests        run: npm run test-code        env: diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 00000000..69fa3189 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,54 @@ +{ +    "extends": "stylelint-config-recommended", +    "ignoreFiles": [ +        "ext/mixed/lib/**/*.css" +    ], +    "rules": { +        "font-family-name-quotes": "always-where-recommended", +        "string-quotes": "single", +        "color-named": "never", +        "declaration-no-important": true, +        "function-calc-no-invalid": true, +        "function-calc-no-unspaced-operator": true, +        "string-no-newline": true, +        "unit-no-unknown": true, +        "block-no-empty": true, +        "no-extra-semicolons": true, +        "no-invalid-double-slash-comments": true, +        "font-weight-notation": "named-where-possible", +        "color-hex-case": "lower", +        "function-comma-space-after": "always", +        "function-comma-space-before": "never", +        "function-name-case": "lower", +        "function-parentheses-space-inside": "never", +        "function-whitespace-after": "always", +        "number-leading-zero": "always", +        "number-no-trailing-zeros": true, +        "unit-case": "lower", +        "value-keyword-case": "lower", +        "property-case": "lower", +        "indentation": 4, +        "max-empty-lines": 2, +        "selector-type-no-unknown": null, +        "no-descending-specificity": null, +        "no-duplicate-selectors": null, +        "selector-combinator-space-before": "never", +        "selector-combinator-space-after": "never", +        "selector-list-comma-newline-after": "always-multi-line", +        "rule-empty-line-before": null, +        "block-opening-brace-space-before": [ +            "always", +            { +                "ignoreSelectors": "/^\\.icon/" +            } +        ], +        "block-opening-brace-space-after": "always-single-line", +        "color-hex-length": null, +        "declaration-colon-space-before": "never", +        "declaration-colon-space-after": "always-single-line", +        "length-zero-no-unit": null, +        "selector-pseudo-element-colon-notation": "double", +        "custom-property-empty-line-before": null, +        "at-rule-empty-line-before": null +    } +}
\ No newline at end of file diff --git a/ext/bg/css/context.css b/ext/bg/css/context.css index 1c3f3204..773f79c6 100644 --- a/ext/bg/css/context.css +++ b/ext/bg/css/context.css @@ -18,7 +18,7 @@  body {      padding: 10px;      margin: 0; -    font-family: "Segoe UI", Tahoma, sans-serif; +    font-family: 'Segoe UI', Tahoma, sans-serif;      font-size: 14px;  } @@ -90,7 +90,7 @@ label {      padding: 0;  }  .link-group-icon[data-icon=chevron]::after { -    content: ""; +    content: '';      display: block;      width: 100%;      height: 100%; @@ -139,8 +139,8 @@ body[data-loaded=true] .toggle-group {      display: block;      padding: 6px 12px;      font-size: 14px; -    font-weight: 400; -    line-height: 1.42857143; +    font-weight: normal; +    line-height: calc(20 / 14);      text-align: center;      white-space: nowrap;      cursor: pointer; @@ -203,7 +203,7 @@ body[data-loaded=true] .toggle-group {      background-color: #ffffff;      background-image: linear-gradient(#ffffff, #e0e0e0);      background-repeat: repeat-x; -    box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); +    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);  }  .toggle-off:focus,  .toggle-off:hover, @@ -215,7 +215,7 @@ body[data-loaded=true] .toggle-group {  }  .toggle-off:active,  .toggle-handle:active { -    background-color:#d4d4d4; +    background-color: #d4d4d4;      background-image: none;      box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);      border-color: #8c8c8c; @@ -234,14 +234,13 @@ body[data-loaded=true] .toggle-group {      border: 1px solid #cccccc;      margin: 0;      padding: 2px 3px; -    margin: 0;      cursor: pointer;  }  .nav-button+.nav-button {      margin-left: -1px;  }  .nav-button::after { -    content: ""; +    content: '';      display: block;      width: 16px;      height: 16px; diff --git a/ext/bg/css/pitch-accents-preview.css b/ext/bg/css/pitch-accents-preview.css index cd731a99..cda9977e 100644 --- a/ext/bg/css/pitch-accents-preview.css +++ b/ext/bg/css/pitch-accents-preview.css @@ -27,7 +27,7 @@ body {      overflow: hidden;      width: 100%;      height: 100%; -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      font-size: 14px;      line-height: calc(20 / 14);  } diff --git a/ext/bg/css/popup-preview.css b/ext/bg/css/popup-preview.css index 88b6a8f3..2e1f191d 100644 --- a/ext/bg/css/popup-preview.css +++ b/ext/bg/css/popup-preview.css @@ -39,7 +39,7 @@ body {      overflow: hidden;      width: 100%;      height: 100%; -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      font-size: 14px;  } diff --git a/ext/bg/css/settings.css b/ext/bg/css/settings.css index a7a7bcde..7230f59d 100644 --- a/ext/bg/css/settings.css +++ b/ext/bg/css/settings.css @@ -76,11 +76,11 @@ html:root:not([data-options-general-result-output-mode=merge]) #dictionary-main-  .condition>.input-group-btn {      width: auto;  } -.condition>.profile-condition-prefix:after { -    content: "IF"; +.condition>.profile-condition-prefix::after { +    content: 'IF';  } -.condition:nth-child(n+2)>.profile-condition-prefix:after { -    content: "AND"; +.condition:nth-child(n+2)>.profile-condition-prefix::after { +    content: 'AND';  }  .profile-condition-prefix { @@ -152,7 +152,7 @@ html:root:not([data-options-general-result-output-mode=merge]) #dictionary-main-      justify-content: center;      align-items: center;  } -.scan-input-index:after { +.scan-input-index::after {      display: block;      counter-increment: scan-input-id;      content: counter(scan-input-id); @@ -265,7 +265,7 @@ html:root:not([data-options-general-result-output-mode=merge]) #dictionary-main-      width: 39px;      text-align: center;  } -.generic-input-list .generic-input-prefix:after { +.generic-input-list .generic-input-prefix::after {      counter-increment: generic-input-id;      content: counter(generic-input-id);  } @@ -276,7 +276,6 @@ html:root:not([data-options-general-result-output-mode=merge]) #dictionary-main-      width: 100%;      min-height: 34px;      line-height: 18px; -    height: 96px;      resize: vertical;      font-family: 'Courier New', Courier, monospace;      white-space: pre; @@ -395,7 +394,7 @@ html:root[data-operating-system=openbsd] [data-hide-for-operating-system~=openbs  .dictionary-details-table {      display: table; -    width: 100% +    width: 100%;  }  .dictionary-details-entry { diff --git a/ext/bg/css/settings2.css b/ext/bg/css/settings2.css index 9d3d081d..1c3ab84a 100644 --- a/ext/bg/css/settings2.css +++ b/ext/bg/css/settings2.css @@ -67,7 +67,7 @@      --text-color-lighter: #888888;      --separator-color1: #cccccc;      --separator-color2: #eeeeee; -    --outline-item-background-color: rgba(13, 13, 13, 0.0); +    --outline-item-background-color: rgba(13, 13, 13, 0);      --outline-item-background-color-hover: rgba(13, 13, 13, 0.15);      --warning-color: #96751c;      --warning-color-light: hsl(44, 80%, 65%); @@ -116,7 +116,7 @@ body {      padding: 0;      border: none;      font-size: var(--font-size); -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      color: var(--text-color);      line-height: var(--line-height-default);      height: 100%; @@ -130,9 +130,15 @@ ul {      margin: 0;      padding: 0 0 0 1.5em;  } -p+p,  p+ol,  p+ul, -ol+p, ol+ol, ol+ul, -ul+p, ul+ol, ul+ul, +p+p, +p+ol, +p+ul, +ol+p, +ol+ol, +ol+ul, +ul+p, +ul+ol, +ul+ul,  li {      margin: 0.425em 0;  } @@ -326,8 +332,9 @@ h3 {  }  .sidebar:hover {      max-width: var(--sidebar-size); -    transition: max-width var(--animation-duration) ease-out 0.5s, -                box-shadow var(--animation-duration) ease-out; +    transition: +        max-width var(--animation-duration) ease-out 0.5s, +        box-shadow var(--animation-duration) ease-out;  }  .sidebar-inner {      width: 100%; @@ -455,9 +462,10 @@ h3 {      width: 100%;      min-width: 100%;      max-width: 100%; -    transition: width var(--animation-duration) ease-in-out, -                max-width var(--animation-duration) ease-in-out, -                box-shadow var(--animation-duration) ease-in-out; +    transition: +        width var(--animation-duration) ease-in-out, +        max-width var(--animation-duration) ease-in-out, +        box-shadow var(--animation-duration) ease-in-out;  }  .preview-sidebar-inner {      width: 100%; @@ -807,7 +815,7 @@ select.short-height {      margin-right: calc(var(--modal-padding-horizontal) * -1);  }  .modal-body .settings-item+.settings-item { -    border-top: none +    border-top: none;  }  .modal-body .settings-item-left {      padding-left: var(--modal-padding-horizontal); @@ -1094,8 +1102,9 @@ button.popup-menu-item:disabled {      width: 100%;      min-width: 100%;      max-width: 100%; -    transition: width var(--animation-duration) ease-in-out, -                max-width var(--animation-duration) ease-in-out; +    transition: +        width var(--animation-duration) ease-in-out, +        max-width var(--animation-duration) ease-in-out;  }  .fab-container-right-inner2 {      display: flex; @@ -1128,7 +1137,7 @@ button.fab-button:active {  .fab-button-background {      position: absolute;      display: block; -    content: ""; +    content: '';      left: 0;      top: 0;      right: 0; @@ -1264,7 +1273,7 @@ body.preview-sidebar-visible .fab-container-item.fab-container-item-popup-previe  }  .dictionary-details-table {      display: table; -    width: 100% +    width: 100%;  }  .dictionary-details-entry {      display: table-row; @@ -1332,7 +1341,7 @@ body.preview-sidebar-visible .fab-container-item.fab-container-item-popup-previe      flex: 0 0 auto;      min-width: 4em;      text-align: center; -    align-self: stretch +    align-self: stretch;  }  .profile-entry-cell:nth-child(5) {      flex: 0 0 auto; @@ -1426,10 +1435,10 @@ input[type=text].profile-entry-name-input {      margin-right: 0.25em;  }  .profile-condition-prefix::after { -    content: "if" +    content: 'if';  }  .profile-condition:nth-child(n+2)>.profile-condition-prefix::after { -    content: "and" +    content: 'and';  }  select.profile-condition-type,  select.profile-condition-operator { @@ -1743,9 +1752,9 @@ code.anki-field-marker {      grid-template-columns: auto auto 1fr auto;      grid-template-rows: auto;      grid-template-areas: -        "index pattern-label     pattern     button" -        ".     replacement-label replacement button" -        ".     test-label        test        ."; +        'index pattern-label     pattern     button' +        '.     replacement-label replacement button' +        '.     test-label        test        .';      column-gap: 0.25em;      row-gap: 0.25em;      align-items: stretch; diff --git a/ext/mixed/css/display.css b/ext/mixed/css/display.css index 7790d8a7..0e4b2012 100644 --- a/ext/mixed/css/display.css +++ b/ext/mixed/css/display.css @@ -70,7 +70,7 @@      --tag-border-style: none;      --tag-font-weight: bold; -    --compact-list-separator: " | "; +    --compact-list-separator: ' | ';      --list-padding1: 1.4em;      --list-padding2: var(--list-padding1); @@ -218,7 +218,7 @@      background-color: transparent;  }  :root { -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      font-size: var(--font-size);      line-height: var(--line-height);      height: 100%; @@ -441,11 +441,6 @@ a {  :root[data-popup-action-bar-location=bottom] .content-sidebar-bottom {      flex-flow: row nowrap;  } -:root[data-popup-action-bar-location=top] button.sidebar-button, -:root[data-popup-action-bar-location=bottom] button.sidebar-button { -    width: var(--sidebar-width) !important; -    height: 100% !important; -}  /* Sidebar buttons */ @@ -464,6 +459,11 @@ button.sidebar-button {      border-radius: 0;      box-shadow: none;  } +:root[data-popup-action-bar-location=top] button.sidebar-button, +:root[data-popup-action-bar-location=bottom] button.sidebar-button { +    width: var(--sidebar-width); +    height: 100%; +}  button.sidebar-button:disabled {      cursor: default;  } @@ -615,7 +615,7 @@ button.action-button:active {      box-shadow: none;  }  button.action-button::before { -    content: ""; +    content: '';      width: var(--action-button-size);      height: var(--action-button-size);      display: block; @@ -624,19 +624,19 @@ button.action-button::before {      background-size: contain;  }  button.action-button[data-icon=view-note]::before { -    background-image: url("/mixed/img/view-note.svg"); +    background-image: url('/mixed/img/view-note.svg');  }  button.action-button[data-icon=add-term-kanji]::before { -    background-image: url("/mixed/img/add-term-kanji.svg"); +    background-image: url('/mixed/img/add-term-kanji.svg');  }  button.action-button[data-icon=add-term-kana]::before { -    background-image: url("/mixed/img/add-term-kana.svg"); +    background-image: url('/mixed/img/add-term-kana.svg');  }  button.action-button[data-icon=play-audio]::before { -    background-image: url("/mixed/img/play-audio.svg"); +    background-image: url('/mixed/img/play-audio.svg');  }  button.action-button[data-icon=source-term]::before { -    background-image: url("/mixed/img/source-term.svg"); +    background-image: url('/mixed/img/source-term.svg');  }  .entry[data-type=term][data-expression-multi=true] .actions>button.action-button.action-play-audio {      display: none; @@ -694,24 +694,24 @@ button.action-button[data-icon=source-term]::before {      display: block;  }  .tag-frequency-separator::before { -    content: ":"; +    content: ':';  }  .tag-frequency-disambiguation-separator::before { -    content: ":"; +    content: ':';  }  .tag-frequency-disambiguation::before { -    content: "("; +    content: '(';  }  .tag-frequency-disambiguation::after { -    content: ") "; +    content: ') ';  }  .frequencies .tag[data-reading-is-same=true] .tag-frequency-disambiguation-separator,  .frequencies .tag[data-reading-is-same=true] .tag-frequency-disambiguation-reading, -.entry[data-unique-expression-count="1"] .tag-frequency-disambiguation-separator, -.entry[data-unique-expression-count="1"] .tag-frequency-disambiguation-expression, -.entry[data-unique-reading-count="1"] .tag-frequency-disambiguation-separator, -.entry[data-unique-reading-count="1"] .tag-frequency-disambiguation-reading, -.entry[data-unique-expression-count="1"][data-unique-reading-count="1"] .tag-frequency-disambiguation { +.entry[data-unique-expression-count='1'] .tag-frequency-disambiguation-separator, +.entry[data-unique-expression-count='1'] .tag-frequency-disambiguation-expression, +.entry[data-unique-reading-count='1'] .tag-frequency-disambiguation-separator, +.entry[data-unique-reading-count='1'] .tag-frequency-disambiguation-reading, +.entry[data-unique-expression-count='1'][data-unique-reading-count='1'] .tag-frequency-disambiguation {      display: none;  } @@ -762,7 +762,7 @@ button.action-button[data-icon=source-term]::before {      display: none;  }  .term-reasons>.term-reason+.term-reason-separator+.term-reason::before { -    content: " \00AB  "; /* The two spaces is not a typo */ +    content: ' \00AB  '; /* The two spaces is not a typo */      white-space: pre-wrap;      display: inline;  } @@ -782,7 +782,7 @@ button.action-button[data-icon=source-term]::before {      display: none;  }  .term-expression-list>.term-expression:not(:last-of-type)>.term-expression-text-container>.term-expression-text::after { -    content: "\3001"; +    content: '\3001';  } @@ -823,8 +823,7 @@ button.action-button[data-icon=source-term]::before {  }  .entry.entry-current .entry-current-indicator-inner {      height: var(--entry-current-indicator-width); -    transition: -        height var(--entry-current-indicator-transition-duration) linear; +    transition: height var(--entry-current-indicator-transition-duration) linear;  }  :root[data-popup-current-indicator-mode=dot-left] .entry-current-indicator,  :root[data-popup-current-indicator-mode=dot-right] .entry-current-indicator { @@ -834,8 +833,7 @@ button.action-button[data-icon=source-term]::before {  :root[data-popup-current-indicator-mode=dot-right] .entry-current-indicator-inner {      display: block;      position: sticky; -    transition: -        height var(--entry-current-indicator-transition-duration) linear; +    transition: height var(--entry-current-indicator-transition-duration) linear;  }  :root[data-popup-current-indicator-mode=none] .entry-current-indicator,  :root[data-popup-current-indicator-mode=asterisk] .entry-current-indicator, @@ -906,14 +904,14 @@ button.action-button[data-icon=source-term]::before {      display: none;  }  .entry-current-indicator-icon::before { -    content: ""; +    content: '';      width: var(--action-button-size);      height: var(--action-button-size);      display: block;      background-color: transparent;      background-repeat: no-repeat;      background-size: contain; -    background-image: url("/mixed/img/entry-current.svg"); +    background-image: url('/mixed/img/entry-current.svg');  } @@ -969,8 +967,8 @@ button.action-button[data-icon=source-term]::before {      padding: 0 0 0 var(--list-padding1);      list-style-type: decimal;  } -.term-definition-list[data-count="0"], -.term-definition-list[data-count="1"] { +.term-definition-list[data-count='0'], +.term-definition-list[data-count='1'] {      padding-left: 0;      list-style-type: none;  } @@ -979,8 +977,8 @@ button.action-button[data-icon=source-term]::before {      padding: 0 0 0 var(--list-padding2);      list-style-type: circle;  } -.term-glossary-list[data-count="0"], -.term-glossary-list[data-count="1"] { +.term-glossary-list[data-count='0'], +.term-glossary-list[data-count='1'] {      padding-left: 0;      list-style-type: none;  } @@ -991,17 +989,17 @@ button.action-button[data-icon=source-term]::before {  .term-definition-disambiguation-list {      color: var(--text-color-light);  } -.term-definition-disambiguation-list[data-count="0"] { +.term-definition-disambiguation-list[data-count='0'] {      display: none;  }  .term-definition-disambiguation-list::before { -    content: "("; +    content: '(';  }  .term-definition-disambiguation-list::after { -    content: " only) "; +    content: ' only) ';  }  .term-definition-disambiguation+.term-definition-disambiguation::before { -    content: ", "; +    content: ', ';  }  .term-glossary-separator,  .term-reason-separator { @@ -1013,8 +1011,8 @@ button.action-button[data-icon=source-term]::before {  .term-special-tags>.frequencies {      display: inline;  } -.term-entry-body[data-section-count="0"] .term-entry-body-section-header, -.term-entry-body[data-section-count="1"] .term-entry-body-section-header { +.term-entry-body[data-section-count='0'] .term-entry-body-section-header, +.term-entry-body[data-section-count='1'] .term-entry-body-section-header {      display: none;  } @@ -1033,8 +1031,8 @@ button.action-button[data-icon=source-term]::before {      padding: 0 0 0 var(--list-padding1);      list-style-type: decimal;  } -.term-pitch-accent-group-list[data-count="0"], -.term-pitch-accent-group-list[data-count="1"] { +.term-pitch-accent-group-list[data-count='0'], +.term-pitch-accent-group-list[data-count='1'] {      padding-left: 0;      list-style-type: none;  } @@ -1044,8 +1042,8 @@ button.action-button[data-icon=source-term]::before {      list-style-type: circle;      display: block;  } -.term-pitch-accent-list[data-count="0"], -.term-pitch-accent-list[data-count="1"] { +.term-pitch-accent-list[data-count='0'], +.term-pitch-accent-list[data-count='1'] {      padding-left: 0;      list-style-type: none;      display: inline; @@ -1058,8 +1056,8 @@ button.action-button[data-icon=source-term]::before {      display: list-item;      line-height: 1.5;  } -.term-pitch-accent-list[data-count="0"] .term-pitch-accent, -.term-pitch-accent-list[data-count="1"] .term-pitch-accent { +.term-pitch-accent-list[data-count='0'] .term-pitch-accent, +.term-pitch-accent-list[data-count='1'] .term-pitch-accent {      display: inline;  }  .term-pitch-accent-group-tag-list { @@ -1070,18 +1068,18 @@ button.action-button[data-icon=source-term]::before {      color: var(--text-color-light);  }  .term-pitch-accent-disambiguation-list::before { -    content: "("; +    content: '(';  }  .term-pitch-accent-disambiguation-list::after { -    content: " only)"; +    content: ' only)';  }  .term-pitch-accent-disambiguation+.term-pitch-accent-disambiguation::before { -    content: ", "; +    content: ', ';  } -.term-pitch-accent-disambiguation-list[data-count="0"] { +.term-pitch-accent-disambiguation-list[data-count='0'] {      display: none;  } -.term-pitch-accent-tag-list:not([data-count="0"]) { +.term-pitch-accent-tag-list:not([data-count='0']) {      margin-right: 0.375em;  }  .term-pitch-accent-character { @@ -1092,7 +1090,7 @@ button.action-button[data-icon=source-term]::before {      border-color: var(--pitch-accent-annotation-color);  }  .term-pitch-accent-character[data-pitch='high']::before { -    content: ""; +    content: '';      display: block;      user-select: none;      pointer-events: none; @@ -1115,10 +1113,10 @@ button.action-button[data-icon=source-term]::before {      margin-right: 0.1em;  }  .term-pitch-accent-position::before { -    content: " ["; +    content: ' [';  }  .term-pitch-accent-position::after { -    content: "]"; +    content: ']';  }  .term-pitch-accent-details {      display: inline-block; @@ -1196,7 +1194,7 @@ button.action-button[data-icon=source-term]::before {      color: var(--text-color-light);  }  .term-glossary-item[data-has-image=true][data-image-load-state=load-error] .term-glossary-image-container-overlay::after { -    content: "Image failed to load"; +    content: 'Image failed to load';      display: table-cell;      width: 100%;      height: 100%; @@ -1227,17 +1225,17 @@ button.action-button[data-icon=source-term]::before {      image-rendering: crisp-edges;  }  .term-glossary-image-aspect-ratio-sizer { -    content: ""; +    content: '';      display: inline-block;      width: 0;      vertical-align: top;      font-size: 0;  }  .term-glossary-image-link-text::before { -    content: "["; +    content: '[';  }  .term-glossary-image-link-text::after { -    content: "]"; +    content: ']';  } @@ -1247,7 +1245,7 @@ button.action-button[data-icon=source-term]::before {      position: relative;  }  .kanji-glyph { -    font-family: kanji-stroke-orders; +    font-family: kanji-stroke-orders, sans-serif;      font-size: 8.5em;      line-height: 1;      padding: 0.01em; @@ -1292,8 +1290,8 @@ button.action-button[data-icon=source-term]::before {      padding: 0 0 0 var(--list-padding1);      list-style-type: decimal;  } -.kanji-glossary-list[data-count="0"], -.kanji-glossary-list[data-count="1"] { +.kanji-glossary-list[data-count='0'], +.kanji-glossary-list[data-count='1'] {      padding-left: 0;      list-style-type: none;  } @@ -1346,7 +1344,7 @@ button.action-button[data-icon=source-term]::before {  }  .progress-bar-indeterminant::before,  .progress-bar-indeterminant::after { -    content: ""; +    content: '';      display: block;      position: absolute;      left: 0; @@ -1567,7 +1565,7 @@ button.footer-notification-close-button:active {      display: none;  }  :root[data-glossary-layout-mode=compact] .term-definition-tag-list, -:root[data-glossary-layout-mode=compact] .term-definition-disambiguation-list:not([data-count="0"]) { +:root[data-glossary-layout-mode=compact] .term-definition-disambiguation-list:not([data-count='0']) {      display: inline;  }  :root[data-glossary-layout-mode=compact] .term-glossary-list { @@ -1596,7 +1594,7 @@ button.footer-notification-close-button:active {      padding-bottom: 0;      margin-bottom: 0;  } -:root[data-show-pitch-accent-downstep-notation=true] .term-pitch-accent-disambiguation-list[data-expression-count="0"], +:root[data-show-pitch-accent-downstep-notation=true] .term-pitch-accent-disambiguation-list[data-expression-count='0'],  :root[data-show-pitch-accent-downstep-notation=true] .term-pitch-accent-disambiguation[data-type=reading] {      display: none;  } diff --git a/ext/mixed/css/material.css b/ext/mixed/css/material.css index 82c61a41..a21dc2bb 100644 --- a/ext/mixed/css/material.css +++ b/ext/mixed/css/material.css @@ -145,6 +145,7 @@  .icon {      --icon-image: none;      --icon-size: contain; +      -webkit-mask-repeat: no-repeat;      -webkit-mask-position: center center;      -webkit-mask-mode: alpha; @@ -174,14 +175,20 @@  .icon[data-icon=hamburger-menu]          { --icon-image: url(/mixed/img/hamburger-menu.svg); }  .icon[data-icon=kebab-menu]              { --icon-image: url(/mixed/img/kebab-menu.svg); }  .icon[data-icon=mouse]                   { --icon-image: url(/mixed/img/mouse.svg); } -.icon[data-icon=material-down-arrow]     { --icon-image: url(/mixed/img/material-down-arrow.svg);  --icon-size: var(--material-arrow-dimension2) var(--material-arrow-dimension1); } -.icon[data-icon=material-right-arrow]    { --icon-image: url(/mixed/img/material-right-arrow.svg); --icon-size: var(--material-arrow-dimension1) var(--material-arrow-dimension2); }  .icon[data-icon=exclamation-point-short] { --icon-image: url(/mixed/img/exclamation-point-short.svg); }  .icon[data-icon=magnifying-glass]        { --icon-image: url(/mixed/img/magnifying-glass.svg); }  .icon[data-icon=collapse]                { --icon-image: url(/mixed/img/collapse.svg); }  .icon[data-icon=expand]                  { --icon-image: url(/mixed/img/expand.svg); }  .icon[data-icon=window]                  { --icon-image: url(/mixed/img/window.svg); }  .icon[data-icon=cross]                   { --icon-image: url(/mixed/img/cross.svg); } +.icon[data-icon=material-down-arrow] { +    --icon-image: url(/mixed/img/material-down-arrow.svg); +    --icon-size: var(--material-arrow-dimension2) var(--material-arrow-dimension1); +} +.icon[data-icon=material-right-arrow] { +    --icon-image: url(/mixed/img/material-right-arrow.svg); +    --icon-size: var(--material-arrow-dimension1) var(--material-arrow-dimension2); +}  /* Checkbox */ @@ -210,7 +217,6 @@ label.checkbox {      width: 1em;      height: 1em;      position: relative; -    cursor: pointer;  }  .checkbox>input[type=checkbox]:disabled+.checkbox-body {      cursor: default; @@ -326,13 +332,14 @@ label.toggle {      box-shadow:          0 0.0625em 0.25em 0 var(--shadow-color),          0 0.125em 0.125em 0 var(--shadow-color); -    transition: transform var(--animation-duration) ease-in-out, -                background-color var(--animation-duration) ease-in-out; +    transition: +        transform var(--animation-duration) ease-in-out, +        background-color var(--animation-duration) ease-in-out;  }  .toggle-body>.toggle-knob::after {      position: absolute;      display: block; -    content: ""; +    content: '';      left: -0.75em;      top: -0.75em;      right: -0.75em; @@ -343,20 +350,22 @@ label.toggle {      transform: scale(0);      opacity: 0;      visibility: hidden; -    transition: transform 0s ease-in-out var(--animation-duration2), -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility 0s ease-in-out var(--animation-duration2); +    transition: +        transform 0s ease-in-out var(--animation-duration2), +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility 0s ease-in-out var(--animation-duration2);  }  .toggle>input[type=checkbox]:focus:not(:disabled)+.toggle-body>.toggle-knob::after,  .toggle:active>input[type=checkbox]:not(:disabled)+.toggle-body>.toggle-knob::after {      transform: scale(1);      opacity: 1;      visibility: visible; -    transition: transform var(--animation-duration2) ease-in-out, -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility var(--animation-duration2) ease-in-out; +    transition: +        transform var(--animation-duration2) ease-in-out, +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility var(--animation-duration2) ease-in-out;  }  .toggle>input[type=checkbox]:focus+.toggle-body>.toggle-knob::after {      opacity: 0.5; @@ -445,9 +454,10 @@ label.radio {      -webkit-mask-image: url(/mixed/img/radio-button-dot.svg);      opacity: 1;      transform: none; -    transition: transform var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility var(--animation-duration2) ease-in-out; +    transition: +        transform var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility var(--animation-duration2) ease-in-out;  }  .radio>input[type=radio]:disabled+.radio-body>.radio-border,  .radio>input[type=radio]:disabled+.radio-body>.radio-dot { @@ -456,14 +466,15 @@ label.radio {  .radio>input[type=radio]:not(:checked)+.radio-body>.radio-dot {      opacity: 0;      transform: scale(0); -    transition: transform 0s ease-in-out var(--animation-duration2), -                opacity var(--animation-duration2) ease-in-out, -                visibility 0s ease-in-out var(--animation-duration2); +    transition: +        transform 0s ease-in-out var(--animation-duration2), +        opacity var(--animation-duration2) ease-in-out, +        visibility 0s ease-in-out var(--animation-duration2);  }  .radio-body::after {      position: absolute;      display: block; -    content: ""; +    content: '';      left: -0.75em;      top: -0.75em;      right: -0.75em; @@ -474,20 +485,22 @@ label.radio {      transform: scale(0);      opacity: 0;      visibility: hidden; -    transition: transform 0s ease-in-out var(--animation-duration2), -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility 0s ease-in-out var(--animation-duration2); +    transition: +        transform 0s ease-in-out var(--animation-duration2), +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility 0s ease-in-out var(--animation-duration2);  }  .radio>input[type=radio]:focus:not(:disabled)+.radio-body::after,  .radio:active>input[type=radio]:not(:disabled)+.radio-body::after {      transform: scale(1);      opacity: 1;      visibility: visible; -    transition: transform var(--animation-duration2) ease-in-out, -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility var(--animation-duration2) ease-in-out; +    transition: +        transform var(--animation-duration2) ease-in-out, +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility var(--animation-duration2) ease-in-out;  }  .radio>input[type=radio]:focus+.radio-body::after {      opacity: 0.5; @@ -804,7 +817,7 @@ button.icon-button:active {  .icon-button>.icon-button-inner::after {      position: absolute;      display: block; -    content: ""; +    content: '';      left: 0;      top: 0;      right: 0; @@ -815,19 +828,21 @@ button.icon-button:active {      transform: scale(0);      opacity: 0;      visibility: hidden; -    transition: transform 0s ease-in-out var(--animation-duration2), -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility 0s ease-in-out var(--animation-duration2); +    transition: +        transform 0s ease-in-out var(--animation-duration2), +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility 0s ease-in-out var(--animation-duration2);  }  .icon-button:focus>.icon-button-inner::after {      transform: scale(1);      opacity: 1;      visibility: visible; -    transition: transform var(--animation-duration2) ease-in-out, -                background-color var(--animation-duration2) ease-in-out, -                opacity var(--animation-duration2) ease-in-out, -                visibility var(--animation-duration2) ease-in-out; +    transition: +        transform var(--animation-duration2) ease-in-out, +        background-color var(--animation-duration2) ease-in-out, +        opacity var(--animation-duration2) ease-in-out, +        visibility var(--animation-duration2) ease-in-out;  }  .icon-button>.icon-button-inner>.icon {      display: block; diff --git a/ext/mixed/css/search.css b/ext/mixed/css/search.css index f0d69b3d..eb537ba4 100644 --- a/ext/mixed/css/search.css +++ b/ext/mixed/css/search.css @@ -41,8 +41,7 @@ body {      background-color: var(--background-color);      margin: 0;      padding: 0; -    margin: 0; -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      color: var(--text-color);      height: 100%;      overflow: hidden; @@ -72,7 +71,6 @@ h1 {      flex: 1 1 auto;      box-sizing: border-box;      padding: var(--textarea-padding); -    font-family: 'Courier New', Courier, monospace;      background-color: var(--input-background-color);      border-radius: 0;      line-height: var(--textarea-line-height); @@ -84,8 +82,7 @@ h1 {      max-height: calc(var(--textarea-line-height) * 10 + var(--textarea-padding) * 2);      resize: vertical;      font-size: var(--font-size); -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -    color: var(--text-color); +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      white-space: pre-wrap;      z-index: 1;  } diff --git a/package-lock.json b/package-lock.json index b7aeb387..08591253 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,12 +13,188 @@                  "@babel/highlight": "^7.10.4"              }          }, +        "@babel/core": { +            "version": "7.12.10", +            "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", +            "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", +            "dev": true, +            "requires": { +                "@babel/code-frame": "^7.10.4", +                "@babel/generator": "^7.12.10", +                "@babel/helper-module-transforms": "^7.12.1", +                "@babel/helpers": "^7.12.5", +                "@babel/parser": "^7.12.10", +                "@babel/template": "^7.12.7", +                "@babel/traverse": "^7.12.10", +                "@babel/types": "^7.12.10", +                "convert-source-map": "^1.7.0", +                "debug": "^4.1.0", +                "gensync": "^1.0.0-beta.1", +                "json5": "^2.1.2", +                "lodash": "^4.17.19", +                "semver": "^5.4.1", +                "source-map": "^0.5.0" +            }, +            "dependencies": { +                "convert-source-map": { +                    "version": "1.7.0", +                    "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", +                    "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", +                    "dev": true, +                    "requires": { +                        "safe-buffer": "~5.1.1" +                    } +                }, +                "safe-buffer": { +                    "version": "5.1.2", +                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", +                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", +                    "dev": true +                }, +                "semver": { +                    "version": "5.7.1", +                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", +                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", +                    "dev": true +                }, +                "source-map": { +                    "version": "0.5.7", +                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", +                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", +                    "dev": true +                } +            } +        }, +        "@babel/generator": { +            "version": "7.12.11", +            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", +            "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.11", +                "jsesc": "^2.5.1", +                "source-map": "^0.5.0" +            }, +            "dependencies": { +                "source-map": { +                    "version": "0.5.7", +                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", +                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", +                    "dev": true +                } +            } +        }, +        "@babel/helper-function-name": { +            "version": "7.12.11", +            "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", +            "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", +            "dev": true, +            "requires": { +                "@babel/helper-get-function-arity": "^7.12.10", +                "@babel/template": "^7.12.7", +                "@babel/types": "^7.12.11" +            } +        }, +        "@babel/helper-get-function-arity": { +            "version": "7.12.10", +            "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", +            "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.10" +            } +        }, +        "@babel/helper-member-expression-to-functions": { +            "version": "7.12.7", +            "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", +            "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.7" +            } +        }, +        "@babel/helper-module-imports": { +            "version": "7.12.5", +            "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", +            "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.5" +            } +        }, +        "@babel/helper-module-transforms": { +            "version": "7.12.1", +            "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", +            "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", +            "dev": true, +            "requires": { +                "@babel/helper-module-imports": "^7.12.1", +                "@babel/helper-replace-supers": "^7.12.1", +                "@babel/helper-simple-access": "^7.12.1", +                "@babel/helper-split-export-declaration": "^7.11.0", +                "@babel/helper-validator-identifier": "^7.10.4", +                "@babel/template": "^7.10.4", +                "@babel/traverse": "^7.12.1", +                "@babel/types": "^7.12.1", +                "lodash": "^4.17.19" +            } +        }, +        "@babel/helper-optimise-call-expression": { +            "version": "7.12.10", +            "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", +            "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.10" +            } +        }, +        "@babel/helper-replace-supers": { +            "version": "7.12.11", +            "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", +            "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", +            "dev": true, +            "requires": { +                "@babel/helper-member-expression-to-functions": "^7.12.7", +                "@babel/helper-optimise-call-expression": "^7.12.10", +                "@babel/traverse": "^7.12.10", +                "@babel/types": "^7.12.11" +            } +        }, +        "@babel/helper-simple-access": { +            "version": "7.12.1", +            "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", +            "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.1" +            } +        }, +        "@babel/helper-split-export-declaration": { +            "version": "7.12.11", +            "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", +            "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", +            "dev": true, +            "requires": { +                "@babel/types": "^7.12.11" +            } +        },          "@babel/helper-validator-identifier": {              "version": "7.10.4",              "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",              "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",              "dev": true          }, +        "@babel/helpers": { +            "version": "7.12.5", +            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", +            "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", +            "dev": true, +            "requires": { +                "@babel/template": "^7.10.4", +                "@babel/traverse": "^7.12.5", +                "@babel/types": "^7.12.5" +            } +        },          "@babel/highlight": {              "version": "7.10.4",              "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", @@ -43,6 +219,12 @@                  }              }          }, +        "@babel/parser": { +            "version": "7.12.11", +            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", +            "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", +            "dev": true +        },          "@babel/polyfill": {              "version": "7.12.1",              "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", @@ -62,6 +244,70 @@                  "regenerator-runtime": "^0.13.4"              }          }, +        "@babel/template": { +            "version": "7.12.7", +            "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", +            "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", +            "dev": true, +            "requires": { +                "@babel/code-frame": "^7.10.4", +                "@babel/parser": "^7.12.7", +                "@babel/types": "^7.12.7" +            } +        }, +        "@babel/traverse": { +            "version": "7.12.12", +            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", +            "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", +            "dev": true, +            "requires": { +                "@babel/code-frame": "^7.12.11", +                "@babel/generator": "^7.12.11", +                "@babel/helper-function-name": "^7.12.11", +                "@babel/helper-split-export-declaration": "^7.12.11", +                "@babel/parser": "^7.12.11", +                "@babel/types": "^7.12.12", +                "debug": "^4.1.0", +                "globals": "^11.1.0", +                "lodash": "^4.17.19" +            }, +            "dependencies": { +                "@babel/code-frame": { +                    "version": "7.12.11", +                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", +                    "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", +                    "dev": true, +                    "requires": { +                        "@babel/highlight": "^7.10.4" +                    } +                }, +                "globals": { +                    "version": "11.12.0", +                    "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", +                    "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", +                    "dev": true +                } +            } +        }, +        "@babel/types": { +            "version": "7.12.12", +            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", +            "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", +            "dev": true, +            "requires": { +                "@babel/helper-validator-identifier": "^7.12.11", +                "lodash": "^4.17.19", +                "to-fast-properties": "^2.0.0" +            }, +            "dependencies": { +                "@babel/helper-validator-identifier": { +                    "version": "7.12.11", +                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", +                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", +                    "dev": true +                } +            } +        },          "@cliqz-oss/firefox-client": {              "version": "0.3.1",              "resolved": "https://registry.npmjs.org/@cliqz-oss/firefox-client/-/firefox-client-0.3.1.tgz", @@ -156,12 +402,57 @@                  "extend": "3.0.2"              }          }, +        "@nodelib/fs.scandir": { +            "version": "2.1.4", +            "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", +            "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", +            "dev": true, +            "requires": { +                "@nodelib/fs.stat": "2.0.4", +                "run-parallel": "^1.1.9" +            } +        }, +        "@nodelib/fs.stat": { +            "version": "2.0.4", +            "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", +            "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", +            "dev": true +        }, +        "@nodelib/fs.walk": { +            "version": "1.2.6", +            "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", +            "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", +            "dev": true, +            "requires": { +                "@nodelib/fs.scandir": "2.1.4", +                "fastq": "^1.6.0" +            } +        },          "@sindresorhus/is": {              "version": "0.14.0",              "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",              "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",              "dev": true          }, +        "@stylelint/postcss-css-in-js": { +            "version": "0.37.2", +            "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", +            "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", +            "dev": true, +            "requires": { +                "@babel/core": ">=7.9.0" +            } +        }, +        "@stylelint/postcss-markdown": { +            "version": "0.36.2", +            "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", +            "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", +            "dev": true, +            "requires": { +                "remark": "^13.0.0", +                "unist-util-find-all-after": "^3.0.2" +            } +        },          "@szmarczak/http-timer": {              "version": "1.1.2",              "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -171,18 +462,51 @@                  "defer-to-connect": "^1.0.1"              }          }, +        "@types/mdast": { +            "version": "3.0.3", +            "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", +            "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", +            "dev": true, +            "requires": { +                "@types/unist": "*" +            } +        },          "@types/minimatch": {              "version": "3.0.3",              "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",              "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",              "dev": true          }, +        "@types/minimist": { +            "version": "1.2.1", +            "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", +            "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", +            "dev": true +        },          "@types/node": {              "version": "14.14.13",              "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.13.tgz",              "integrity": "sha512-vbxr0VZ8exFMMAjCW8rJwaya0dMCDyYW2ZRdTyjtrCvJoENMpdUHOT/eTzvgyA5ZnqRZ/sI0NwqAxNHKYokLJQ==",              "dev": true          }, +        "@types/normalize-package-data": { +            "version": "2.4.0", +            "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", +            "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", +            "dev": true +        }, +        "@types/parse-json": { +            "version": "4.0.0", +            "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", +            "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", +            "dev": true +        }, +        "@types/unist": { +            "version": "2.0.3", +            "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", +            "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", +            "dev": true +        },          "@types/yauzl": {              "version": "2.9.1",              "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", @@ -816,6 +1140,65 @@              "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",              "dev": true          }, +        "autoprefixer": { +            "version": "9.8.6", +            "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", +            "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", +            "dev": true, +            "requires": { +                "browserslist": "^4.12.0", +                "caniuse-lite": "^1.0.30001109", +                "colorette": "^1.2.1", +                "normalize-range": "^0.1.2", +                "num2fraction": "^1.2.2", +                "postcss": "^7.0.32", +                "postcss-value-parser": "^4.1.0" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        },          "aws-sign2": {              "version": "0.7.0",              "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -828,6 +1211,12 @@              "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==",              "dev": true          }, +        "bail": { +            "version": "1.0.5", +            "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", +            "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", +            "dev": true +        },          "balanced-match": {              "version": "1.0.0",              "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -922,6 +1311,16 @@              "dev": true,              "optional": true          }, +        "bindings": { +            "version": "1.5.0", +            "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", +            "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", +            "dev": true, +            "optional": true, +            "requires": { +                "file-uri-to-path": "1.0.0" +            } +        },          "bl": {              "version": "4.0.3",              "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", @@ -1062,7 +1461,6 @@              "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",              "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",              "dev": true, -            "optional": true,              "requires": {                  "fill-range": "^7.0.1"              } @@ -1289,6 +1687,19 @@                  "pako": "~1.0.5"              }          }, +        "browserslist": { +            "version": "4.16.0", +            "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", +            "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", +            "dev": true, +            "requires": { +                "caniuse-lite": "^1.0.30001165", +                "colorette": "^1.2.1", +                "electron-to-chromium": "^1.3.621", +                "escalade": "^3.1.1", +                "node-releases": "^1.1.67" +            } +        },          "buffer": {              "version": "5.7.1",              "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -1410,6 +1821,31 @@              "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==",              "dev": true          }, +        "camelcase-keys": { +            "version": "6.2.2", +            "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", +            "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", +            "dev": true, +            "requires": { +                "camelcase": "^5.3.1", +                "map-obj": "^4.0.0", +                "quick-lru": "^4.0.1" +            }, +            "dependencies": { +                "camelcase": { +                    "version": "5.3.1", +                    "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", +                    "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", +                    "dev": true +                } +            } +        }, +        "caniuse-lite": { +            "version": "1.0.30001171", +            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz", +            "integrity": "sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg==", +            "dev": true +        },          "caseless": {              "version": "0.12.0",              "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1467,6 +1903,24 @@                  }              }          }, +        "character-entities": { +            "version": "1.2.4", +            "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", +            "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", +            "dev": true +        }, +        "character-entities-legacy": { +            "version": "1.1.4", +            "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", +            "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", +            "dev": true +        }, +        "character-reference-invalid": { +            "version": "1.1.4", +            "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", +            "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", +            "dev": true +        },          "cheerio": {              "version": "1.0.0-rc.3",              "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", @@ -1632,6 +2086,15 @@              "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",              "dev": true          }, +        "clone-regexp": { +            "version": "2.2.0", +            "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", +            "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", +            "dev": true, +            "requires": { +                "is-regexp": "^2.0.0" +            } +        },          "clone-response": {              "version": "1.0.2",              "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -1867,6 +2330,19 @@              "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",              "dev": true          }, +        "cosmiconfig": { +            "version": "7.0.0", +            "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", +            "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", +            "dev": true, +            "requires": { +                "@types/parse-json": "^4.0.0", +                "import-fresh": "^3.2.1", +                "parse-json": "^5.0.0", +                "path-type": "^4.0.0", +                "yaml": "^1.10.0" +            } +        },          "crc-32": {              "version": "1.2.0",              "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", @@ -1986,6 +2462,12 @@              "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",              "dev": true          }, +        "cssesc": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", +            "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", +            "dev": true +        },          "cssom": {              "version": "0.4.4",              "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -2056,6 +2538,30 @@              "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",              "dev": true          }, +        "decamelize-keys": { +            "version": "1.1.0", +            "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", +            "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", +            "dev": true, +            "requires": { +                "decamelize": "^1.1.0", +                "map-obj": "^1.0.0" +            }, +            "dependencies": { +                "decamelize": { +                    "version": "1.2.0", +                    "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", +                    "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", +                    "dev": true +                }, +                "map-obj": { +                    "version": "1.0.1", +                    "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", +                    "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", +                    "dev": true +                } +            } +        },          "decimal.js": {              "version": "10.2.1",              "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", @@ -2252,6 +2758,15 @@                  }              }          }, +        "dir-glob": { +            "version": "3.0.1", +            "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", +            "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", +            "dev": true, +            "requires": { +                "path-type": "^4.0.0" +            } +        },          "dispensary": {              "version": "0.59.0",              "resolved": "https://registry.npmjs.org/dispensary/-/dispensary-0.59.0.tgz", @@ -2457,6 +2972,12 @@                  "safe-buffer": "^5.0.1"              }          }, +        "electron-to-chromium": { +            "version": "1.3.633", +            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz", +            "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==", +            "dev": true +        },          "elliptic": {              "version": "6.5.3",              "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", @@ -2833,6 +3354,15 @@                  "strip-final-newline": "^2.0.0"              }          }, +        "execall": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", +            "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", +            "dev": true, +            "requires": { +                "clone-regexp": "^2.1.0" +            } +        },          "exit-on-epipe": {              "version": "1.0.1",              "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", @@ -3016,6 +3546,32 @@              "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",              "dev": true          }, +        "fast-glob": { +            "version": "3.2.4", +            "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", +            "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", +            "dev": true, +            "requires": { +                "@nodelib/fs.stat": "^2.0.2", +                "@nodelib/fs.walk": "^1.2.3", +                "glob-parent": "^5.1.0", +                "merge2": "^1.3.0", +                "micromatch": "^4.0.2", +                "picomatch": "^2.2.1" +            }, +            "dependencies": { +                "micromatch": { +                    "version": "4.0.2", +                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", +                    "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", +                    "dev": true, +                    "requires": { +                        "braces": "^3.0.1", +                        "picomatch": "^2.0.5" +                    } +                } +            } +        },          "fast-json-patch": {              "version": "2.2.1",              "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz", @@ -3057,6 +3613,21 @@              "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",              "dev": true          }, +        "fastest-levenshtein": { +            "version": "1.0.12", +            "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", +            "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", +            "dev": true +        }, +        "fastq": { +            "version": "1.10.0", +            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", +            "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", +            "dev": true, +            "requires": { +                "reusify": "^1.0.4" +            } +        },          "fd-slicer": {              "version": "1.1.0",              "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -3075,12 +3646,18 @@                  "flat-cache": "^3.0.4"              }          }, +        "file-uri-to-path": { +            "version": "1.0.0", +            "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", +            "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", +            "dev": true, +            "optional": true +        },          "fill-range": {              "version": "7.0.1",              "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",              "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",              "dev": true, -            "optional": true,              "requires": {                  "to-regex-range": "^5.0.1"              } @@ -3314,6 +3891,12 @@                  }              }          }, +        "gensync": { +            "version": "1.0.0-beta.2", +            "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", +            "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", +            "dev": true +        },          "get-assigned-identifiers": {              "version": "1.2.0",              "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -3337,6 +3920,12 @@                  "has-symbols": "^1.0.1"              }          }, +        "get-stdin": { +            "version": "8.0.0", +            "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", +            "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", +            "dev": true +        },          "get-stream": {              "version": "5.2.0",              "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -3394,6 +3983,37 @@                  "ini": "^1.3.5"              }          }, +        "global-modules": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", +            "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", +            "dev": true, +            "requires": { +                "global-prefix": "^3.0.0" +            } +        }, +        "global-prefix": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", +            "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", +            "dev": true, +            "requires": { +                "ini": "^1.3.5", +                "kind-of": "^6.0.2", +                "which": "^1.3.1" +            }, +            "dependencies": { +                "which": { +                    "version": "1.3.1", +                    "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", +                    "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", +                    "dev": true, +                    "requires": { +                        "isexe": "^2.0.0" +                    } +                } +            } +        },          "globals": {              "version": "12.4.0",              "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -3403,6 +4023,43 @@                  "type-fest": "^0.8.1"              }          }, +        "globby": { +            "version": "11.0.1", +            "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", +            "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", +            "dev": true, +            "requires": { +                "array-union": "^2.1.0", +                "dir-glob": "^3.0.1", +                "fast-glob": "^3.1.1", +                "ignore": "^5.1.4", +                "merge2": "^1.3.0", +                "slash": "^3.0.0" +            }, +            "dependencies": { +                "ignore": { +                    "version": "5.1.8", +                    "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", +                    "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", +                    "dev": true +                } +            } +        }, +        "globjoin": { +            "version": "0.1.4", +            "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", +            "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", +            "dev": true +        }, +        "gonzales-pe": { +            "version": "4.3.0", +            "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", +            "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", +            "dev": true, +            "requires": { +                "minimist": "^1.2.5" +            } +        },          "got": {              "version": "9.6.0",              "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -3467,6 +4124,12 @@                  "har-schema": "^2.0.0"              }          }, +        "hard-rejection": { +            "version": "2.1.0", +            "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", +            "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", +            "dev": true +        },          "has": {              "version": "1.0.3",              "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3583,6 +4246,15 @@                  "minimalistic-crypto-utils": "^1.0.1"              }          }, +        "hosted-git-info": { +            "version": "3.0.7", +            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", +            "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", +            "dev": true, +            "requires": { +                "lru-cache": "^6.0.0" +            } +        },          "html-encoding-sniffer": {              "version": "2.0.1",              "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -3592,6 +4264,12 @@                  "whatwg-encoding": "^1.0.5"              }          }, +        "html-tags": { +            "version": "3.1.0", +            "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", +            "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", +            "dev": true +        },          "htmlescape": {              "version": "1.1.1",              "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", @@ -3684,6 +4362,18 @@              "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",              "dev": true          }, +        "indent-string": { +            "version": "4.0.0", +            "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", +            "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", +            "dev": true +        }, +        "indexes-of": { +            "version": "1.0.1", +            "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", +            "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", +            "dev": true +        },          "inflight": {              "version": "1.0.6",              "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3784,6 +4474,22 @@                  }              }          }, +        "is-alphabetical": { +            "version": "1.0.4", +            "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", +            "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", +            "dev": true +        }, +        "is-alphanumerical": { +            "version": "1.0.4", +            "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", +            "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", +            "dev": true, +            "requires": { +                "is-alphabetical": "^1.0.0", +                "is-decimal": "^1.0.0" +            } +        },          "is-arguments": {              "version": "1.1.0",              "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", @@ -3858,6 +4564,12 @@              "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",              "dev": true          }, +        "is-decimal": { +            "version": "1.0.4", +            "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", +            "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", +            "dev": true +        },          "is-descriptor": {              "version": "0.1.6",              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -3913,6 +4625,12 @@                  "is-extglob": "^2.1.1"              }          }, +        "is-hexadecimal": { +            "version": "1.0.4", +            "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", +            "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", +            "dev": true +        },          "is-installed-globally": {              "version": "0.3.2",              "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", @@ -3939,8 +4657,7 @@              "version": "7.0.0",              "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",              "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", -            "dev": true, -            "optional": true +            "dev": true          },          "is-obj": {              "version": "2.0.0", @@ -3954,6 +4671,12 @@              "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",              "dev": true          }, +        "is-plain-obj": { +            "version": "2.1.0", +            "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", +            "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", +            "dev": true +        },          "is-plain-object": {              "version": "2.0.4",              "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -3979,6 +4702,12 @@                  "has-symbols": "^1.0.1"              }          }, +        "is-regexp": { +            "version": "2.1.0", +            "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", +            "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", +            "dev": true +        },          "is-relative": {              "version": "0.1.3",              "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", @@ -4168,6 +4897,12 @@                  }              }          }, +        "jsesc": { +            "version": "2.5.2", +            "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", +            "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", +            "dev": true +        },          "json-buffer": {              "version": "3.0.0",              "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -4222,6 +4957,15 @@              "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",              "dev": true          }, +        "json5": { +            "version": "2.1.3", +            "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", +            "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", +            "dev": true, +            "requires": { +                "minimist": "^1.2.5" +            } +        },          "jsonfile": {              "version": "4.0.0",              "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -4324,8 +5068,13 @@              "version": "6.0.3",              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",              "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", -            "dev": true, -            "optional": true +            "dev": true +        }, +        "known-css-properties": { +            "version": "0.20.0", +            "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.20.0.tgz", +            "integrity": "sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw==", +            "dev": true          },          "labeled-stream-splicer": {              "version": "2.0.2", @@ -4532,6 +5281,21 @@              "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=",              "dev": true          }, +        "log-symbols": { +            "version": "4.0.0", +            "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", +            "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", +            "dev": true, +            "requires": { +                "chalk": "^4.0.0" +            } +        }, +        "longest-streak": { +            "version": "2.0.4", +            "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", +            "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", +            "dev": true +        },          "lowercase-keys": {              "version": "1.0.1",              "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -4580,6 +5344,12 @@              "dev": true,              "optional": true          }, +        "map-obj": { +            "version": "4.1.0", +            "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", +            "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", +            "dev": true +        },          "map-visit": {              "version": "1.0.0",              "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -4596,6 +5366,12 @@              "integrity": "sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==",              "dev": true          }, +        "mathml-tag-names": { +            "version": "2.1.3", +            "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", +            "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", +            "dev": true +        },          "md5.js": {              "version": "1.3.5",              "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -4607,6 +5383,39 @@                  "safe-buffer": "^5.1.2"              }          }, +        "mdast-util-from-markdown": { +            "version": "0.8.4", +            "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz", +            "integrity": "sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==", +            "dev": true, +            "requires": { +                "@types/mdast": "^3.0.0", +                "mdast-util-to-string": "^2.0.0", +                "micromark": "~2.11.0", +                "parse-entities": "^2.0.0", +                "unist-util-stringify-position": "^2.0.0" +            } +        }, +        "mdast-util-to-markdown": { +            "version": "0.6.2", +            "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz", +            "integrity": "sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==", +            "dev": true, +            "requires": { +                "@types/unist": "^2.0.0", +                "longest-streak": "^2.0.0", +                "mdast-util-to-string": "^2.0.0", +                "parse-entities": "^2.0.0", +                "repeat-string": "^1.0.0", +                "zwitch": "^1.0.0" +            } +        }, +        "mdast-util-to-string": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", +            "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", +            "dev": true +        },          "mem": {              "version": "5.1.1",              "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", @@ -4618,12 +5427,55 @@                  "p-is-promise": "^2.1.0"              }          }, +        "meow": { +            "version": "8.1.0", +            "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.0.tgz", +            "integrity": "sha512-fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA==", +            "dev": true, +            "requires": { +                "@types/minimist": "^1.2.0", +                "camelcase-keys": "^6.2.2", +                "decamelize-keys": "^1.1.0", +                "hard-rejection": "^2.1.0", +                "minimist-options": "4.1.0", +                "normalize-package-data": "^3.0.0", +                "read-pkg-up": "^7.0.1", +                "redent": "^3.0.0", +                "trim-newlines": "^3.0.0", +                "type-fest": "^0.18.0", +                "yargs-parser": "^20.2.3" +            }, +            "dependencies": { +                "type-fest": { +                    "version": "0.18.1", +                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", +                    "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", +                    "dev": true +                } +            } +        },          "merge-stream": {              "version": "2.0.0",              "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",              "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",              "dev": true          }, +        "merge2": { +            "version": "1.4.1", +            "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", +            "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", +            "dev": true +        }, +        "micromark": { +            "version": "2.11.2", +            "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz", +            "integrity": "sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==", +            "dev": true, +            "requires": { +                "debug": "^4.0.0", +                "parse-entities": "^2.0.0" +            } +        },          "micromatch": {              "version": "3.1.10",              "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4782,6 +5634,12 @@              "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",              "dev": true          }, +        "min-indent": { +            "version": "1.0.1", +            "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", +            "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", +            "dev": true +        },          "minimalistic-assert": {              "version": "1.0.1",              "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -4809,6 +5667,31 @@              "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",              "dev": true          }, +        "minimist-options": { +            "version": "4.1.0", +            "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", +            "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", +            "dev": true, +            "requires": { +                "arrify": "^1.0.1", +                "is-plain-obj": "^1.1.0", +                "kind-of": "^6.0.3" +            }, +            "dependencies": { +                "arrify": { +                    "version": "1.0.1", +                    "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", +                    "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", +                    "dev": true +                }, +                "is-plain-obj": { +                    "version": "1.1.0", +                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", +                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", +                    "dev": true +                } +            } +        },          "mixin-deep": {              "version": "1.3.2",              "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -5076,12 +5959,42 @@                  }              }          }, +        "node-releases": { +            "version": "1.1.67", +            "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", +            "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", +            "dev": true +        }, +        "normalize-package-data": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", +            "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", +            "dev": true, +            "requires": { +                "hosted-git-info": "^3.0.6", +                "resolve": "^1.17.0", +                "semver": "^7.3.2", +                "validate-npm-package-license": "^3.0.1" +            } +        },          "normalize-path": {              "version": "3.0.0",              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",              "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",              "dev": true          }, +        "normalize-range": { +            "version": "0.1.2", +            "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", +            "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", +            "dev": true +        }, +        "normalize-selector": { +            "version": "0.2.0", +            "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", +            "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", +            "dev": true +        },          "normalize-url": {              "version": "4.5.0",              "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", @@ -5106,6 +6019,12 @@                  "boolbase": "~1.0.0"              }          }, +        "num2fraction": { +            "version": "1.2.2", +            "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", +            "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", +            "dev": true +        },          "nwsapi": {              "version": "2.2.0",              "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -5376,6 +6295,20 @@                  "safe-buffer": "^5.1.1"              }          }, +        "parse-entities": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", +            "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", +            "dev": true, +            "requires": { +                "character-entities": "^1.0.0", +                "character-entities-legacy": "^1.0.0", +                "character-reference-invalid": "^1.0.0", +                "is-alphanumerical": "^1.0.0", +                "is-decimal": "^1.0.0", +                "is-hexadecimal": "^1.0.0" +            } +        },          "parse-json": {              "version": "5.0.1",              "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", @@ -5444,6 +6377,12 @@              "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",              "dev": true          }, +        "path-type": { +            "version": "4.0.0", +            "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", +            "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", +            "dev": true +        },          "pbkdf2": {              "version": "3.1.1",              "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", @@ -5473,8 +6412,7 @@              "version": "2.2.2",              "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",              "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", -            "dev": true, -            "optional": true +            "dev": true          },          "pino": {              "version": "6.7.0", @@ -5515,6 +6453,264 @@                  "vfile-location": "^3.2.0"              }          }, +        "postcss-html": { +            "version": "0.36.0", +            "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", +            "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", +            "dev": true, +            "requires": { +                "htmlparser2": "^3.10.0" +            } +        }, +        "postcss-less": { +            "version": "3.1.4", +            "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", +            "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", +            "dev": true, +            "requires": { +                "postcss": "^7.0.14" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        }, +        "postcss-media-query-parser": { +            "version": "0.2.3", +            "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", +            "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", +            "dev": true +        }, +        "postcss-resolve-nested-selector": { +            "version": "0.1.1", +            "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", +            "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", +            "dev": true +        }, +        "postcss-safe-parser": { +            "version": "4.0.2", +            "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", +            "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", +            "dev": true, +            "requires": { +                "postcss": "^7.0.26" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        }, +        "postcss-sass": { +            "version": "0.4.4", +            "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", +            "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", +            "dev": true, +            "requires": { +                "gonzales-pe": "^4.3.0", +                "postcss": "^7.0.21" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        }, +        "postcss-scss": { +            "version": "2.1.1", +            "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", +            "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", +            "dev": true, +            "requires": { +                "postcss": "^7.0.6" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        }, +        "postcss-selector-parser": { +            "version": "6.0.4", +            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", +            "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", +            "dev": true, +            "requires": { +                "cssesc": "^3.0.0", +                "indexes-of": "^1.0.1", +                "uniq": "^1.0.1", +                "util-deprecate": "^1.0.2" +            } +        }, +        "postcss-syntax": { +            "version": "0.36.2", +            "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", +            "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", +            "dev": true +        }, +        "postcss-value-parser": { +            "version": "4.1.0", +            "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", +            "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", +            "dev": true +        },          "prelude-ls": {              "version": "1.2.1",              "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5641,6 +6837,12 @@              "integrity": "sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==",              "dev": true          }, +        "quick-lru": { +            "version": "4.0.1", +            "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", +            "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", +            "dev": true +        },          "randombytes": {              "version": "2.1.0",              "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5721,6 +6923,61 @@                  }              }          }, +        "read-pkg": { +            "version": "5.2.0", +            "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", +            "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", +            "dev": true, +            "requires": { +                "@types/normalize-package-data": "^2.4.0", +                "normalize-package-data": "^2.5.0", +                "parse-json": "^5.0.0", +                "type-fest": "^0.6.0" +            }, +            "dependencies": { +                "hosted-git-info": { +                    "version": "2.8.8", +                    "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", +                    "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", +                    "dev": true +                }, +                "normalize-package-data": { +                    "version": "2.5.0", +                    "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", +                    "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", +                    "dev": true, +                    "requires": { +                        "hosted-git-info": "^2.1.4", +                        "resolve": "^1.10.0", +                        "semver": "2 || 3 || 4 || 5", +                        "validate-npm-package-license": "^3.0.1" +                    } +                }, +                "semver": { +                    "version": "5.7.1", +                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", +                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", +                    "dev": true +                }, +                "type-fest": { +                    "version": "0.6.0", +                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", +                    "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", +                    "dev": true +                } +            } +        }, +        "read-pkg-up": { +            "version": "7.0.1", +            "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", +            "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", +            "dev": true, +            "requires": { +                "find-up": "^4.1.0", +                "read-pkg": "^5.2.0", +                "type-fest": "^0.8.1" +            } +        },          "readable-stream": {              "version": "3.6.0",              "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -5763,6 +7020,16 @@                  "typeson-registry": "^1.0.0-alpha.20"              }          }, +        "redent": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", +            "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", +            "dev": true, +            "requires": { +                "indent-string": "^4.0.0", +                "strip-indent": "^3.0.0" +            } +        },          "regenerator-runtime": {              "version": "0.13.7",              "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -5837,6 +7104,35 @@                  }              }          }, +        "remark": { +            "version": "13.0.0", +            "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", +            "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", +            "dev": true, +            "requires": { +                "remark-parse": "^9.0.0", +                "remark-stringify": "^9.0.0", +                "unified": "^9.1.0" +            } +        }, +        "remark-parse": { +            "version": "9.0.0", +            "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", +            "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", +            "dev": true, +            "requires": { +                "mdast-util-from-markdown": "^0.8.0" +            } +        }, +        "remark-stringify": { +            "version": "9.0.1", +            "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", +            "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", +            "dev": true, +            "requires": { +                "mdast-util-to-markdown": "^0.6.0" +            } +        },          "remove-trailing-separator": {              "version": "1.1.0",              "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -5855,8 +7151,7 @@              "version": "1.6.1",              "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",              "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", -            "dev": true, -            "optional": true +            "dev": true          },          "request": {              "version": "2.88.2", @@ -5936,6 +7231,12 @@              "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",              "dev": true          }, +        "require-from-string": { +            "version": "2.0.2", +            "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", +            "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", +            "dev": true +        },          "require-main-filename": {              "version": "2.0.0",              "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -5980,6 +7281,12 @@              "dev": true,              "optional": true          }, +        "reusify": { +            "version": "1.0.4", +            "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", +            "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", +            "dev": true +        },          "rimraf": {              "version": "3.0.2",              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -5999,6 +7306,12 @@                  "inherits": "^2.0.1"              }          }, +        "run-parallel": { +            "version": "1.1.10", +            "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", +            "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", +            "dev": true +        },          "safe-buffer": {              "version": "5.2.1",              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6206,6 +7519,12 @@              "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",              "dev": true          }, +        "slash": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", +            "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", +            "dev": true +        },          "slice-ansi": {              "version": "2.1.0",              "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -6415,6 +7734,44 @@                  "os-shim": "^0.1.2"              }          }, +        "spdx-correct": { +            "version": "3.1.1", +            "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", +            "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", +            "dev": true, +            "requires": { +                "spdx-expression-parse": "^3.0.0", +                "spdx-license-ids": "^3.0.0" +            } +        }, +        "spdx-exceptions": { +            "version": "2.3.0", +            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", +            "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", +            "dev": true +        }, +        "spdx-expression-parse": { +            "version": "3.0.1", +            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", +            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", +            "dev": true, +            "requires": { +                "spdx-exceptions": "^2.1.0", +                "spdx-license-ids": "^3.0.0" +            } +        }, +        "spdx-license-ids": { +            "version": "3.0.7", +            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", +            "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", +            "dev": true +        }, +        "specificity": { +            "version": "0.4.1", +            "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", +            "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", +            "dev": true +        },          "split": {              "version": "0.3.3",              "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -6767,12 +8124,259 @@              "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",              "dev": true          }, +        "strip-indent": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", +            "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", +            "dev": true, +            "requires": { +                "min-indent": "^1.0.0" +            } +        },          "strip-json-comments": {              "version": "3.1.1",              "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",              "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",              "dev": true          }, +        "style-search": { +            "version": "0.1.0", +            "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", +            "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", +            "dev": true +        }, +        "stylelint": { +            "version": "13.8.0", +            "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.8.0.tgz", +            "integrity": "sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ==", +            "dev": true, +            "requires": { +                "@stylelint/postcss-css-in-js": "^0.37.2", +                "@stylelint/postcss-markdown": "^0.36.2", +                "autoprefixer": "^9.8.6", +                "balanced-match": "^1.0.0", +                "chalk": "^4.1.0", +                "cosmiconfig": "^7.0.0", +                "debug": "^4.2.0", +                "execall": "^2.0.0", +                "fast-glob": "^3.2.4", +                "fastest-levenshtein": "^1.0.12", +                "file-entry-cache": "^6.0.0", +                "get-stdin": "^8.0.0", +                "global-modules": "^2.0.0", +                "globby": "^11.0.1", +                "globjoin": "^0.1.4", +                "html-tags": "^3.1.0", +                "ignore": "^5.1.8", +                "import-lazy": "^4.0.0", +                "imurmurhash": "^0.1.4", +                "known-css-properties": "^0.20.0", +                "lodash": "^4.17.20", +                "log-symbols": "^4.0.0", +                "mathml-tag-names": "^2.1.3", +                "meow": "^8.0.0", +                "micromatch": "^4.0.2", +                "normalize-selector": "^0.2.0", +                "postcss": "^7.0.35", +                "postcss-html": "^0.36.0", +                "postcss-less": "^3.1.4", +                "postcss-media-query-parser": "^0.2.3", +                "postcss-resolve-nested-selector": "^0.1.1", +                "postcss-safe-parser": "^4.0.2", +                "postcss-sass": "^0.4.4", +                "postcss-scss": "^2.1.1", +                "postcss-selector-parser": "^6.0.4", +                "postcss-syntax": "^0.36.2", +                "postcss-value-parser": "^4.1.0", +                "resolve-from": "^5.0.0", +                "slash": "^3.0.0", +                "specificity": "^0.4.1", +                "string-width": "^4.2.0", +                "strip-ansi": "^6.0.0", +                "style-search": "^0.1.0", +                "sugarss": "^2.0.0", +                "svg-tags": "^1.0.0", +                "table": "^6.0.3", +                "v8-compile-cache": "^2.2.0", +                "write-file-atomic": "^3.0.3" +            }, +            "dependencies": { +                "ajv": { +                    "version": "7.0.3", +                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", +                    "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", +                    "dev": true, +                    "requires": { +                        "fast-deep-equal": "^3.1.1", +                        "json-schema-traverse": "^1.0.0", +                        "require-from-string": "^2.0.2", +                        "uri-js": "^4.2.2" +                    } +                }, +                "astral-regex": { +                    "version": "2.0.0", +                    "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", +                    "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", +                    "dev": true +                }, +                "color-convert": { +                    "version": "2.0.1", +                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", +                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", +                    "dev": true, +                    "requires": { +                        "color-name": "~1.1.4" +                    } +                }, +                "color-name": { +                    "version": "1.1.4", +                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", +                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", +                    "dev": true +                }, +                "emoji-regex": { +                    "version": "8.0.0", +                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", +                    "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", +                    "dev": true +                }, +                "ignore": { +                    "version": "5.1.8", +                    "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", +                    "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", +                    "dev": true +                }, +                "import-lazy": { +                    "version": "4.0.0", +                    "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", +                    "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", +                    "dev": true +                }, +                "is-fullwidth-code-point": { +                    "version": "3.0.0", +                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", +                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", +                    "dev": true +                }, +                "json-schema-traverse": { +                    "version": "1.0.0", +                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", +                    "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", +                    "dev": true +                }, +                "micromatch": { +                    "version": "4.0.2", +                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", +                    "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", +                    "dev": true, +                    "requires": { +                        "braces": "^3.0.1", +                        "picomatch": "^2.0.5" +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    }, +                    "dependencies": { +                        "chalk": { +                            "version": "2.4.2", +                            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                            "dev": true, +                            "requires": { +                                "ansi-styles": "^3.2.1", +                                "escape-string-regexp": "^1.0.5", +                                "supports-color": "^5.3.0" +                            }, +                            "dependencies": { +                                "supports-color": { +                                    "version": "5.5.0", +                                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                                    "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                                    "dev": true, +                                    "requires": { +                                        "has-flag": "^3.0.0" +                                    } +                                } +                            } +                        } +                    } +                }, +                "resolve-from": { +                    "version": "5.0.0", +                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", +                    "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", +                    "dev": true +                }, +                "slice-ansi": { +                    "version": "4.0.0", +                    "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", +                    "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^4.0.0", +                        "astral-regex": "^2.0.0", +                        "is-fullwidth-code-point": "^3.0.0" +                    }, +                    "dependencies": { +                        "ansi-styles": { +                            "version": "4.3.0", +                            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", +                            "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", +                            "dev": true, +                            "requires": { +                                "color-convert": "^2.0.1" +                            } +                        } +                    } +                }, +                "string-width": { +                    "version": "4.2.0", +                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", +                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", +                    "dev": true, +                    "requires": { +                        "emoji-regex": "^8.0.0", +                        "is-fullwidth-code-point": "^3.0.0", +                        "strip-ansi": "^6.0.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                }, +                "table": { +                    "version": "6.0.6", +                    "resolved": "https://registry.npmjs.org/table/-/table-6.0.6.tgz", +                    "integrity": "sha512-OInCtPmDNieVBkVFi6C8RwU2S2H0h8mF3e3TQK4nreaUNCpooQUkI+A/KuEkm5FawfhWIfNqG+qfelVVR+V00g==", +                    "dev": true, +                    "requires": { +                        "ajv": "^7.0.2", +                        "lodash": "^4.17.20", +                        "slice-ansi": "^4.0.0", +                        "string-width": "^4.2.0" +                    } +                } +            } +        }, +        "stylelint-config-recommended": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", +            "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", +            "dev": true +        },          "subarg": {              "version": "1.0.0",              "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -6782,6 +8386,59 @@                  "minimist": "^1.1.0"              }          }, +        "sugarss": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", +            "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", +            "dev": true, +            "requires": { +                "postcss": "^7.0.2" +            }, +            "dependencies": { +                "chalk": { +                    "version": "2.4.2", +                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", +                    "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", +                    "dev": true, +                    "requires": { +                        "ansi-styles": "^3.2.1", +                        "escape-string-regexp": "^1.0.5", +                        "supports-color": "^5.3.0" +                    }, +                    "dependencies": { +                        "supports-color": { +                            "version": "5.5.0", +                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", +                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", +                            "dev": true, +                            "requires": { +                                "has-flag": "^3.0.0" +                            } +                        } +                    } +                }, +                "postcss": { +                    "version": "7.0.35", +                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", +                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", +                    "dev": true, +                    "requires": { +                        "chalk": "^2.4.2", +                        "source-map": "^0.6.1", +                        "supports-color": "^6.1.0" +                    } +                }, +                "supports-color": { +                    "version": "6.1.0", +                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", +                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", +                    "dev": true, +                    "requires": { +                        "has-flag": "^3.0.0" +                    } +                } +            } +        },          "supports-color": {              "version": "5.5.0",              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -6791,6 +8448,12 @@                  "has-flag": "^3.0.0"              }          }, +        "svg-tags": { +            "version": "1.0.0", +            "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", +            "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", +            "dev": true +        },          "symbol-tree": {              "version": "3.2.4",              "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -6927,6 +8590,12 @@                  "rimraf": "^3.0.0"              }          }, +        "to-fast-properties": { +            "version": "2.0.0", +            "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", +            "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", +            "dev": true +        },          "to-object-path": {              "version": "0.3.0",              "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -6973,7 +8642,6 @@              "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",              "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",              "dev": true, -            "optional": true,              "requires": {                  "is-number": "^7.0.0"              } @@ -7010,6 +8678,18 @@              "integrity": "sha1-0EsigOTHkqWBVCnve4tgxkyczDQ=",              "dev": true          }, +        "trim-newlines": { +            "version": "3.0.0", +            "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", +            "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", +            "dev": true +        }, +        "trough": { +            "version": "1.0.5", +            "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", +            "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", +            "dev": true +        },          "tty-browserify": {              "version": "0.0.1",              "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -7103,6 +8783,28 @@                  "xtend": "^4.0.1"              }          }, +        "unified": { +            "version": "9.2.0", +            "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", +            "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", +            "dev": true, +            "requires": { +                "bail": "^1.0.0", +                "extend": "^3.0.0", +                "is-buffer": "^2.0.0", +                "is-plain-obj": "^2.0.0", +                "trough": "^1.0.0", +                "vfile": "^4.0.0" +            }, +            "dependencies": { +                "is-buffer": { +                    "version": "2.0.5", +                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", +                    "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", +                    "dev": true +                } +            } +        },          "union-value": {              "version": "1.0.1",              "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -7116,6 +8818,12 @@                  "set-value": "^2.0.1"              }          }, +        "uniq": { +            "version": "1.0.1", +            "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", +            "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", +            "dev": true +        },          "unique-string": {              "version": "2.0.0",              "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -7125,6 +8833,30 @@                  "crypto-random-string": "^2.0.0"              }          }, +        "unist-util-find-all-after": { +            "version": "3.0.2", +            "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", +            "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", +            "dev": true, +            "requires": { +                "unist-util-is": "^4.0.0" +            } +        }, +        "unist-util-is": { +            "version": "4.0.4", +            "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz", +            "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==", +            "dev": true +        }, +        "unist-util-stringify-position": { +            "version": "2.0.3", +            "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", +            "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", +            "dev": true, +            "requires": { +                "@types/unist": "^2.0.2" +            } +        },          "universalify": {              "version": "0.1.2",              "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -7288,6 +9020,16 @@              "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==",              "dev": true          }, +        "validate-npm-package-license": { +            "version": "3.0.4", +            "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", +            "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", +            "dev": true, +            "requires": { +                "spdx-correct": "^3.0.0", +                "spdx-expression-parse": "^3.0.0" +            } +        },          "verror": {              "version": "1.10.0",              "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -7299,12 +9041,42 @@                  "extsprintf": "^1.2.0"              }          }, +        "vfile": { +            "version": "4.2.1", +            "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", +            "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", +            "dev": true, +            "requires": { +                "@types/unist": "^2.0.0", +                "is-buffer": "^2.0.0", +                "unist-util-stringify-position": "^2.0.0", +                "vfile-message": "^2.0.0" +            }, +            "dependencies": { +                "is-buffer": { +                    "version": "2.0.5", +                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", +                    "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", +                    "dev": true +                } +            } +        },          "vfile-location": {              "version": "3.2.0",              "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",              "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==",              "dev": true          }, +        "vfile-message": { +            "version": "2.0.4", +            "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", +            "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", +            "dev": true, +            "requires": { +                "@types/unist": "^2.0.0", +                "unist-util-stringify-position": "^2.0.0" +            } +        },          "vm-browserify": {              "version": "1.1.2",              "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -7451,6 +9223,7 @@                      "dev": true,                      "optional": true,                      "requires": { +                        "bindings": "^1.5.0",                          "nan": "^2.12.1"                      }                  }, @@ -7897,6 +9670,12 @@              "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",              "dev": true          }, +        "yaml": { +            "version": "1.10.0", +            "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", +            "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", +            "dev": true +        },          "yargs": {              "version": "15.4.1",              "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -8059,6 +9838,12 @@                  "compress-commons": "^4.0.2",                  "readable-stream": "^3.6.0"              } +        }, +        "zwitch": { +            "version": "1.0.5", +            "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", +            "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", +            "dev": true          }      }  } diff --git a/package.json b/package.json index 02320d0c..a658f8b4 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,9 @@      },      "scripts": {          "build": "node ./dev/build.js", -        "test": "npm run test-lint && npm run test-code && npm run test-manifest && npm run test-build", +        "test": "npm run test-lint && npm run test-lint-css && npm run test-code && npm run test-manifest && npm run test-build",          "test-lint": "eslint . && node ./dev/lint/global-declarations.js && node ./dev/lint/html-scripts.js", +        "test-lint-css": "npx stylelint \"**/*.css\"",          "test-lint-web-ext": "npx web-ext lint",          "test-code": "node ./test/test-all.js ./test --skip ./test/test-manifest.js",          "test-manifest": "node ./test/test-manifest.js", @@ -40,6 +41,8 @@          "fake-indexeddb": "^3.1.2",          "jsdom": "^16.4.0",          "parse5": "^6.0.1", +        "stylelint": "^13.8.0", +        "stylelint-config-recommended": "^3.0.0",          "web-ext": "^5.4.1"      }  } diff --git a/test/data/html/test-stylesheet.css b/test/data/html/test-stylesheet.css index b4d2e255..0d7a0f2e 100644 --- a/test/data/html/test-stylesheet.css +++ b/test/data/html/test-stylesheet.css @@ -1,5 +1,5 @@  body { -    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;      font-size: 14px;      max-width: 680px;      padding: 0 1em; @@ -39,9 +39,9 @@ y-test {      border-radius: 4px;  } -.test:before, -y-test:before { -    content: "Test " counter(test-id); +.test::before, +y-test::before { +    content: 'Test ' counter(test-id);      display: block;      counter-increment: test-id;      margin-bottom: 0.5em; |