Make WordPress Core

Changeset 50636


Ignore:
Timestamp:
04/02/2021 03:26:02 PM (4 years ago)
Author:
desrosj
Message:

Build/Test Tools: Backport GitHub Action and build improvements to the 4.7 branch.

This backports several build and test tool improvements to the 4.7 branch. Most notably, this includes:

  • The changes required to allow each workflow to be triggered by the workflow_dispatch event so that tests can be run on a schedule [50590].
  • Splitting single site and multisite tests into parallel jobs [50379].
  • Split slow tests into separate, parallel jobs for PHP <= 5.6 [50444].
  • Better branch and path scoping for GitHub Action workflows when running on pull_request [50432,50479].
  • Several devDependency updates.

Merges [50379,50387,50413,50416,50432,50435,50436,50444,50446,50473,50474,50476,50479,50485,50486,50487,50545,50579,50590] to the 4.7 branch.
See #50401, #51801, #51802, #52548, #52608, #52612, #52624, #52625, #52645, #52653, #52658, #52660, #52667.

Location:
branches/4.7
Files:
1 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • branches/4.7

  • branches/4.7/.github/workflows/coding-standards.yml

    r50310 r50636  
    22
    33on:
     4  # JSHint was introduced in WordPress 3.8.
     5  # PHPCS checking was introduced in WordPress 5.1.
    46  push:
    57    branches:
    68      - master
    7       # JSHint was introduced in WordPress 3.8.
    8       # PHPCS checking was introduced in WordPress 5.1.
     9      - trunk
    910      - '3.[89]'
    1011      - '[4-9].[0-9]'
     
    1314      - '[4-9].[0-9]*'
    1415  pull_request:
     16    branches:
     17      - master
     18      - trunk
     19      - '3.[89]'
     20      - '[4-9].[0-9]'
     21    paths:
     22      # Any change to a PHP or JavaScript file should run checks.
     23      - '**.js'
     24      - '**.php'
     25      # These files configure NPM. Changes could affect the outcome.
     26      - 'package*.json'
     27      # These files configure Composer. Changes could affect the outcome.
     28      - 'composer.*'
     29      # This file configures JSHint. Changes could affect the outcome.
     30      - '.jshintrc'
     31      # This file configures PHPCS. Changes could affect the outcome.
     32      - 'phpcs.xml.dist'
     33      # Changes to workflow files should always verify all workflows are successful.
     34      - '.github/workflows/*.yml'
     35  workflow_dispatch:
    1536
    1637jobs:
     
    3758    steps:
    3859      - name: Checkout repository
    39         uses: actions/checkout@v2
     60        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    4061
    4162      - name: Log debug information
     
    4768
    4869      - name: Install NodeJS
    49         uses: actions/setup-node@v1
     70        uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
    5071        with:
    5172          node-version: 14
    5273
    5374      - name: Cache NodeJS modules
    54         uses: actions/cache@v2
     75        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    5576        env:
    5677          cache-name: cache-node-modules
     
    5980          path: ~/.npm
    6081          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
    61           restore-keys: |
    62             ${{ runner.os }}-npm-
    6382
    6483      - name: Log debug information
     
    6887
    6988      - name: Install Dependencies
    70         run: npx install-changed --install-command="npm ci"
     89        run: npm ci
    7190
    7291      - name: Run JSHint
  • branches/4.7/.github/workflows/end-to-end-tests.yml

    r50310 r50636  
    22
    33on:
     4  # The end to end test suite was introduced in WordPress 5.3.
    45  push:
    56    branches:
    67      - master
    7       # The end to end test suite was introduced in WordPress 5.3.
     8      - trunk
    89      - '5.[3-9]'
    910      - '[6-9].[0-9]'
     
    1213      - '[6-9].[0-9]*'
    1314  pull_request:
     15    branches:
     16      - master
     17      - trunk
     18      - '5.[3-9]'
     19      - '[6-9].[0-9]'
     20  workflow_dispatch:
    1421
    1522env:
     
    4350      - name: Cancel previous runs of this workflow (pull requests only)
    4451        if: ${{ github.event_name == 'pull_request' }}
    45         uses: styfle/cancel-workflow-action@0.5.0
    46         with:
    47           access_token: ${{ github.token }}
     52        uses: styfle/cancel-workflow-action@3d86a7cc43670094ac248017207be0295edbc31d # v0.8.0
    4853
    4954      - name: Configure environment variables
     
    5358
    5459      - name: Checkout repository
    55         uses: actions/checkout@v2
     60        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    5661
    5762      - name: Log debug information
     
    6772
    6873      - name: Install NodeJS
    69         uses: actions/setup-node@v1
     74        uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
    7075        with:
    7176          node-version: 14
    7277
    7378      - name: Cache NodeJS modules
    74         uses: actions/cache@v2
     79        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    7580        env:
    7681          cache-name: cache-node-modules
     
    7984          path: ~/.npm
    8085          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
    81           restore-keys: |
    82             ${{ runner.os }}-npm-
    8386
    8487      - name: Install Dependencies
    85         run: npx install-changed --install-command="npm ci"
     88        run: npm ci
    8689
    8790      - name: Build WordPress
  • branches/4.7/.github/workflows/javascript-tests.yml

    r50310 r50636  
    22
    33on:
     4  # JavaScript testing was introduced in WordPress 3.8.
    45  push:
    56    branches:
    67      - master
    7       # JavaScript testing was introduced in WordPress 3.8.
     8      - trunk
    89      - '3.[89]'
    910      - '[4-9].[0-9]'
     
    1213      - '[4-9].[0-9]*'
    1314  pull_request:
     15    branches:
     16      - master
     17      - trunk
     18      - '3.[89]'
     19      - '[4-9].[0-9]'
     20    paths:
     21      # Any change to a JavaScript file should run tests.
     22      - '**.js'
     23      # These files configure NPM. Changes could affect the outcome.
     24      - 'package*.json'
     25      # This file configures ESLint. Changes could affect the outcome.
     26      - '.eslintignore'
     27      # This file configures JSHint. Changes could affect the outcome.
     28      - '.jshintrc'
     29      # Any change to the QUnit directory should run tests.
     30      - 'tests/qunit/**'
     31      # Changes to workflow files should always verify all workflows are successful.
     32      - '.github/workflows/*.yml'
     33  workflow_dispatch:
    1434
    1535jobs:
     
    3454      - name: Cancel previous runs of this workflow (pull requests only)
    3555        if: ${{ github.event_name == 'pull_request' }}
    36         uses: styfle/cancel-workflow-action@0.5.0
    37         with:
    38           access_token: ${{ github.token }}
     56        uses: styfle/cancel-workflow-action@3d86a7cc43670094ac248017207be0295edbc31d # v0.8.0
    3957
    4058      - name: Checkout repository
    41         uses: actions/checkout@v2
     59        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    4260
    4361      - name: Log debug information
     
    4967
    5068      - name: Install NodeJS
    51         uses: actions/setup-node@v1
     69        uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
    5270        with:
    5371          node-version: 14
    5472
    5573      - name: Cache NodeJS modules
    56         uses: actions/cache@v2
     74        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    5775        env:
    5876          cache-name: cache-node-modules
     
    6179          path: ~/.npm
    6280          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
    63           restore-keys: |
    64             ${{ runner.os }}-npm-
    6581
    6682      - name: Log debug information
     
    7086
    7187      - name: Install Dependencies
    72         run: npx install-changed --install-command="npm ci"
     88        run: npm ci
    7389
    7490      - name: Run QUnit tests
  • branches/4.7/.github/workflows/php-compatibility.yml

    r50310 r50636  
    22
    33on:
     4  # PHP compatibility testing was introduced in WordPress 5.5.
    45  push:
    56    branches:
    67      - master
    7       # The PHP compatibility testing was introduced in WordPress 5.5.
     8      - trunk
    89      - '5.[5-9]'
    910      - '[6-9].[0-9]'
     
    1213      - '[6-9].[0-9]*'
    1314  pull_request:
     15    branches:
     16      - master
     17      - trunk
     18      - '5.[5-9]'
     19      - '[6-9].[0-9]'
     20    paths:
     21      # This workflow only scans PHP files.
     22      - '**.php'
     23      # These files configure Composer. Changes could affect the outcome.
     24      - 'composer.*'
     25      # This file configures PHP Compatibility scanning. Changes could affect the outcome.
     26      - 'phpcompat.xml.dist'
     27      # Changes to workflow files should always verify all workflows are successful.
     28      - '.github/workflows/*.yml'
     29  workflow_dispatch:
    1430
    1531jobs:
     
    3551    steps:
    3652      - name: Checkout repository
    37         uses: actions/checkout@v2
     53        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    3854
    3955      - name: Set up PHP
    40         uses: shivammathur/setup-php@v2
     56        uses: shivammathur/setup-php@afefcaf556d98dc7896cca380e181decb609ca44 # v2.10.0
    4157        with:
    4258          php-version: '7.4'
     
    5066
    5167      - name: Install Composer dependencies
    52         uses: ramsey/composer-install@v1
     68        uses: ramsey/composer-install@92a7904348d4ad30236f3611e33b7f0c6f9edd70 # v1.1.0
    5369        with:
    5470          composer-options: "--no-progress --no-ansi --no-interaction"
  • branches/4.7/.github/workflows/phpunit-tests.yml

    r50331 r50636  
    55    branches:
    66      - master
     7      - trunk
    78      - '3.[7-9]'
    89      - '[4-9].[0-9]'
     
    1112      - '[4-9].[0-9]*'
    1213  pull_request:
     14    branches:
     15      - master
     16      - trunk
     17      - '3.[7-9]'
     18      - '[4-9].[0-9]'
     19  workflow_dispatch:
    1320  # Once weekly On Sundays at 00:00 UTC.
    1421  schedule:
     
    2229  PHPUNIT_SCRIPT: php
    2330  LOCAL_PHP_MEMCACHED: ${{ false }}
     31  SLOW_TESTS: 'external-http,media,restapi'
    2432
    2533jobs:
     
    4452      - name: Cancel previous runs of this workflow (pull requests only)
    4553        if: ${{ github.event_name == 'pull_request' }}
    46         uses: styfle/cancel-workflow-action@0.5.0
    47         with:
    48           access_token: ${{ github.token }}
     54        uses: styfle/cancel-workflow-action@3d86a7cc43670094ac248017207be0295edbc31d # v0.8.0
    4955
    5056      - name: Checkout repository
    51         uses: actions/checkout@v2
     57        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    5258
    5359      - name: Log debug information
     
    6571
    6672      - name: Install NodeJS
    67         uses: actions/setup-node@v1
     73        uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
    6874        with:
    6975          node-version: 14
    7076
    7177      - name: Cache NodeJS modules
    72         uses: actions/cache@v2
     78        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    7379        env:
    7480          cache-name: cache-node-modules
     
    7783          path: ~/.npm
    7884          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
    79           restore-keys: |
    80             ${{ runner.os }}-npm-
    8185
    8286      - name: Install Dependencies
    83         run: npx install-changed --install-command="npm ci"
     87        run: npm ci
    8488
    8589      - name: Build WordPress
     
    8791
    8892      - name: Create ZIP artifact
    89         uses: thedoctor0/zip-release@0.4.1
     93        uses: thedoctor0/zip-release@a1afcab9c664c9976ac398fa831eac67bed1eb0e # v0.4.1
    9094        with:
    9195          filename: built-wp-${{ github.sha }}.zip
     
    9397
    9498      - name: Upload build artifact
    95         uses: actions/upload-artifact@v2
     99        uses: actions/upload-artifact@e448a9b857ee2131e752b06002bf0e093c65e571 # v2.2.2
    96100        with:
    97101          name: built-wp-${{ github.sha }}
     
    125129  # - todo: Configure Slack notifications for failing tests.
    126130  test-php:
    127     name: ${{ matrix.php }}${{ matrix.memcached && ' with memcached' || '' }} on ${{ matrix.os }}
     131    name: ${{ matrix.php }}${{ matrix.multisite && ' multisite' || '' }}${{ matrix.split_slow && ' slow tests' || '' }} ${{ matrix.memcached && ' with memcached' || '' }} on ${{ matrix.os }}
    128132    needs: setup-wordpress
    129133    runs-on: ${{ matrix.os }}
    130134    strategy:
     135      fail-fast: false
    131136      matrix:
    132         php: [ '7.1' ]
    133         phpunit: [ '6-php-7.1' ]
     137        php: [ '5.3', '5.4', '5.5' ]
    134138        os: [ ubuntu-latest ]
    135139        memcached: [ false ]
     140        split_slow: [ false, true ]
     141        multisite: [ false, true ]
    136142        include:
     143          # Additional "slow" jobs for PHP 5.6.
     144          - php: '5.6'
     145            phpunit: '4-php-5.6'
     146            os: ubuntu-latest
     147            memcached: false
     148            multisite: false
     149            split_slow: true
     150          - php: '5.6'
     151            phpunit: '4-php-5.6'
     152            os: ubuntu-latest
     153            memcached: false
     154            multisite: true
     155            split_slow: true
     156          # Include job for specific PHPUnit versions.
     157          - php: '7.1'
     158            phpunit: '6-php-7.1'
     159            os: ubuntu-latest
     160            memcached: false
     161            multisite: false
     162            split_slow: false
     163          - php: '7.1'
     164            phpunit: '6-php-7.1'
     165            os: ubuntu-latest
     166            memcached: false
     167            multisite: true
     168            split_slow: false
     169          - php: '7.0'
     170            phpunit: '6-php-7.0'
     171            os: ubuntu-latest
     172            memcached: false
     173            multisite: false
     174            split_slow: false
     175          - php: '7.0'
     176            phpunit: '6-php-7.0'
     177            os: ubuntu-latest
     178            memcached: false
     179            multisite: true
     180            split_slow: false
     181          - php: '5.6'
     182            phpunit: '4-php-5.6'
     183            os: ubuntu-latest
     184            memcached: false
     185            multisite: false
     186            split_slow: false
     187          - php: '5.6'
     188            phpunit: '4-php-5.6'
     189            os: ubuntu-latest
     190            memcached: false
     191            multisite: true
     192            split_slow: false
    137193          # Include job for PHP 7.1 with memcached.
    138194          - php: '7.1'
     
    140196            os: ubuntu-latest
    141197            memcached: true
    142           - php: '7.0'
    143             phpunit: '6-php-7.0'
    144             os: ubuntu-latest
    145             memcached: false
    146           - php: '5.6'
    147             phpunit: '4-php-5.6'
    148             os: ubuntu-latest
    149             memcached: false
    150           - php: '5.5'
    151             phpunit: '5.5'
    152             os: ubuntu-latest
    153             memcached: false
    154           - php: '5.4'
    155             phpunit: '5.4'
    156             os: ubuntu-latest
    157             memcached: false
    158           - php: '5.3'
    159             phpunit: '5.3'
    160             os: ubuntu-latest
    161             memcached: false
     198            multisite: false
     199            split_slow: false
     200
    162201    env:
    163202      LOCAL_PHP: ${{ matrix.php }}-fpm
    164       LOCAL_PHPUNIT: ${{ matrix.phpunit }}-fpm
     203      LOCAL_PHPUNIT: ${{ matrix.phpunit && matrix.phpunit || matrix.php }}-fpm
    165204      LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }}
     205      PHPUNIT_CONFIG: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }}
    166206
    167207    steps:
     
    172212
    173213      - name: Download the built WordPress artifact
    174         uses: actions/download-artifact@v2
     214        uses: actions/download-artifact@4a7a711286f30c025902c28b541c10e147a9b843 # v2.0.8
    175215        with:
    176216          name: built-wp-${{ github.sha }}
     
    180220
    181221      - name: Install NodeJS
    182         uses: actions/setup-node@v1
     222        uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
    183223        with:
    184224          node-version: 14
    185225
    186226      - name: Use cached Node modules
    187         uses: actions/cache@v2
     227        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    188228        env:
    189229          cache-name: cache-node-modules
     
    192232          path: ~/.npm
    193233          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
    194           restore-keys: |
    195             ${{ runner.os }}-npm-
    196234
    197235      - name: Install Dependencies
    198         run: npx install-changed --install-command="npm ci"
     236        run: npm ci
    199237
    200238      - name: Cache Composer dependencies
    201239        if: ${{ env.COMPOSER_INSTALL == true }}
    202         uses: actions/cache@v2
     240        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
    203241        env:
    204242          cache-name: cache-composer-dependencies
     
    206244          path: ${{ steps.composer-cache.outputs.dir }}
    207245          key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }}
    208           restore-keys: |
    209             ${{ runner.os }}-php-${{ matrix.php }}-composer-
    210246
    211247      - name: Install Composer dependencies
     
    253289        run: npm run env:install
    254290
     291      - name: Run slow PHPUnit tests
     292        if: ${{ matrix.split_slow }}
     293        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ${{ env.SLOW_TESTS }}
     294
     295      - name: Run PHPUnit tests for single site excluding slow tests
     296        if: ${{ matrix.php < '7.0' && ! matrix.split_slow && ! matrix.multisite }}
     297        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-required
     298
     299      - name: Run PHPUnit tests for Multisite excluding slow tests
     300        if: ${{ matrix.php < '7.0' && ! matrix.split_slow && matrix.multisite }}
     301        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-excluded,oembed-headers
     302
    255303      - name: Run PHPUnit tests
    256         run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist
     304        if: ${{ matrix.php >= '7.0' }}
     305        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }}
    257306
    258307      - name: Run AJAX tests
    259         run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group ajax
    260 
    261       - name: Run tests as a multisite install
    262         run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml
     308        if: ${{ ! matrix.multisite && ! matrix.split_slow }}
     309        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ajax
    263310
    264311      - name: Run ms-files tests as a multisite install
     312        if: ${{ matrix.multisite && ! matrix.split_slow }}
    265313        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml --group ms-files
    266314
    267315      - name: Run external HTTP tests
     316        if: ${{ ! matrix.multisite && ! matrix.split_slow }}
    268317        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group external-http
    269 
    270       - name: Run REST API tests
    271         run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group restapi-jsclient
    272318
    273319      - name: Checkout the WordPress Test Reporter
    274320        if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/master' && matrix.report }}
    275         uses: actions/checkout@v2
     321        uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
    276322        with:
    277323          repository: 'WordPress/phpunit-test-runner'
  • branches/4.7/.github/workflows/welcome-new-contributors.yml

    r50310 r50636  
    1212
    1313    steps:
    14       - uses: bubkoo/welcome-action@v1
     14      - uses: bubkoo/welcome-action@8dbbac2540d155744c90e4e37da6b05ffc9c5e2c # v1.0.3
    1515        with:
    1616          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  • branches/4.7/package-lock.json

    r50204 r50636  
    4646        },
    4747        "@sideway/address": {
    48             "version": "4.1.0",
    49             "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.0.tgz",
    50             "integrity": "sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==",
     48            "version": "4.1.1",
     49            "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz",
     50            "integrity": "sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==",
    5151            "dev": true,
    5252            "requires": {
     
    318318            "dev": true
    319319        },
     320        "array-filter": {
     321            "version": "1.0.0",
     322            "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
     323            "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
     324            "dev": true
     325        },
    320326        "array-find-index": {
    321327            "version": "1.0.2",
     
    380386            "dependencies": {
    381387                "bn.js": {
    382                     "version": "4.11.9",
    383                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    384                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     388                    "version": "4.12.0",
     389                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     390                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    385391                    "dev": true
    386392                }
     
    463469                "postcss": "^7.0.32",
    464470                "postcss-value-parser": "^4.1.0"
     471            }
     472        },
     473        "available-typed-arrays": {
     474            "version": "1.0.2",
     475            "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
     476            "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==",
     477            "dev": true,
     478            "requires": {
     479                "array-filter": "^1.0.0"
    465480            }
    466481        },
     
    836851        },
    837852        "bn.js": {
    838             "version": "5.1.3",
    839             "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
    840             "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
     853            "version": "5.2.0",
     854            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
     855            "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
    841856            "dev": true
    842857        },
     
    929944        },
    930945        "browserify": {
    931             "version": "16.5.2",
    932             "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz",
    933             "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==",
     946            "version": "17.0.0",
     947            "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",
     948            "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==",
    934949            "dev": true,
    935950            "requires": {
     
    946961                "crypto-browserify": "^3.0.0",
    947962                "defined": "^1.0.0",
    948                 "deps-sort": "^2.0.0",
     963                "deps-sort": "^2.0.1",
    949964                "domain-browser": "^1.2.0",
    950965                "duplexer2": "~0.1.2",
    951                 "events": "^2.0.0",
     966                "events": "^3.0.0",
    952967                "glob": "^7.1.0",
    953968                "has": "^1.0.0",
     
    955970                "https-browserify": "^1.0.0",
    956971                "inherits": "~2.0.1",
    957                 "insert-module-globals": "^7.0.0",
     972                "insert-module-globals": "^7.2.1",
    958973                "labeled-stream-splicer": "^2.0.0",
    959974                "mkdirp-classic": "^0.5.2",
     
    961976                "os-browserify": "~0.3.0",
    962977                "parents": "^1.0.1",
    963                 "path-browserify": "~0.0.0",
     978                "path-browserify": "^1.0.0",
    964979                "process": "~0.11.0",
    965980                "punycode": "^1.3.2",
     
    968983                "readable-stream": "^2.0.2",
    969984                "resolve": "^1.1.4",
    970                 "shasum": "^1.0.0",
     985                "shasum-object": "^1.0.0",
    971986                "shell-quote": "^1.6.1",
    972                 "stream-browserify": "^2.0.0",
     987                "stream-browserify": "^3.0.0",
    973988                "stream-http": "^3.0.0",
    974989                "string_decoder": "^1.1.1",
     
    979994                "tty-browserify": "0.0.1",
    980995                "url": "~0.11.0",
    981                 "util": "~0.10.1",
     996                "util": "~0.12.0",
    982997                "vm-browserify": "^1.0.0",
    983998                "xtend": "^4.0.0"
     
    12421257            "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
    12431258            "dev": true,
    1244             "optional": true,
    12451259            "requires": {
    12461260                "function-bind": "^1.1.1",
     
    14021416        },
    14031417        "clean-css": {
    1404             "version": "4.2.3",
    1405             "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
    1406             "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
     1418            "version": "5.1.2",
     1419            "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz",
     1420            "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==",
    14071421            "dev": true,
    14081422            "requires": {
     
    17011715            "dependencies": {
    17021716                "bn.js": {
    1703                     "version": "4.11.9",
    1704                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    1705                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     1717                    "version": "4.12.0",
     1718                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     1719                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    17061720                    "dev": true
    17071721                }
     
    20662080            "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
    20672081            "dev": true,
    2068             "optional": true,
    20692082            "requires": {
    20702083                "object-keys": "^1.0.12"
     
    21812194            "dependencies": {
    21822195                "bn.js": {
    2183                     "version": "4.11.9",
    2184                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    2185                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     2196                    "version": "4.12.0",
     2197                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     2198                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    21862199                    "dev": true
    21872200                }
     
    23502363            "dependencies": {
    23512364                "bn.js": {
    2352                     "version": "4.11.9",
    2353                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    2354                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     2365                    "version": "4.12.0",
     2366                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     2367                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    23552368                    "dev": true
    23562369                }
     
    23962409            "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
    23972410            "dev": true,
    2398             "optional": true,
    23992411            "requires": {
    24002412                "call-bind": "^1.0.2",
     
    24192431            "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
    24202432            "dev": true,
    2421             "optional": true,
    24222433            "requires": {
    24232434                "is-callable": "^1.1.4",
     
    24512462        },
    24522463        "events": {
    2453             "version": "2.1.0",
    2454             "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz",
    2455             "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==",
     2464            "version": "3.3.0",
     2465            "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
     2466            "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
    24562467            "dev": true
    24572468        },
     
    29552966        },
    29562967        "follow-redirects": {
    2957             "version": "1.13.2",
    2958             "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz",
    2959             "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==",
     2968            "version": "1.13.3",
     2969            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
     2970            "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==",
    29602971            "dev": true
    29612972        },
     
    29752986            }
    29762987        },
     2988        "foreach": {
     2989            "version": "2.0.5",
     2990            "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
     2991            "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
     2992            "dev": true
     2993        },
    29772994        "forever-agent": {
    29782995            "version": "0.6.1",
     
    30613078            "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
    30623079            "dev": true,
    3063             "optional": true,
    30643080            "requires": {
    30653081                "function-bind": "^1.1.1",
     
    33363352        },
    33373353        "grunt-browserify": {
    3338             "version": "5.3.0",
    3339             "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.3.0.tgz",
    3340             "integrity": "sha1-R/2M+LrFj+LeaDr9xX9/OoDKeS0=",
     3354            "version": "6.0.0",
     3355            "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-6.0.0.tgz",
     3356            "integrity": "sha512-m130pTVFEsxQZ+dJQd287TrnUI5VvEKJ+MmPjMF/7bVJBTBRWhJlYVFgBOYLZMUykfk1RWXfQ2sAQu5NuXumvg==",
    33413357            "dev": true,
    33423358            "requires": {
    33433359                "async": "^2.5.0",
    3344                 "browserify": "^16.0.0",
     3360                "browserify": "^17.0.0",
    33453361                "browserify-incremental": "^3.1.1",
    33463362                "glob": "^7.1.2",
    33473363                "lodash": "^4.17.4",
    33483364                "resolve": "^1.1.6",
    3349                 "watchify": "^3.6.1"
     3365                "watchify": "^4.0.0"
    33503366            },
    33513367            "dependencies": {
     
    35373553        },
    35383554        "grunt-contrib-cssmin": {
    3539             "version": "3.0.0",
    3540             "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-3.0.0.tgz",
    3541             "integrity": "sha512-eXpooYmVGKMs/xV7DzTLgJFPVOfMuawPD3x0JwhlH0mumq2NtH3xsxaHxp1Y3NKxp0j0tRhFS6kSBRsz6TuTGg==",
    3542             "dev": true,
    3543             "requires": {
    3544                 "chalk": "^2.4.1",
    3545                 "clean-css": "~4.2.1",
    3546                 "maxmin": "^2.1.0"
     3555            "version": "4.0.0",
     3556            "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-4.0.0.tgz",
     3557            "integrity": "sha512-jXU+Zlk8Q8XztOGNGpjYlD/BDQ0n95IHKrQKtFR7Gd8hZrzgqiG1Ra7cGYc8h2DD9vkSFGNlweb9Q00rBxOK2w==",
     3558            "dev": true,
     3559            "requires": {
     3560                "chalk": "^4.1.0",
     3561                "clean-css": "^5.0.1",
     3562                "maxmin": "^3.0.0"
     3563            },
     3564            "dependencies": {
     3565                "ansi-styles": {
     3566                    "version": "4.3.0",
     3567                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
     3568                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
     3569                    "dev": true,
     3570                    "requires": {
     3571                        "color-convert": "^2.0.1"
     3572                    }
     3573                },
     3574                "chalk": {
     3575                    "version": "4.1.0",
     3576                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
     3577                    "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
     3578                    "dev": true,
     3579                    "requires": {
     3580                        "ansi-styles": "^4.1.0",
     3581                        "supports-color": "^7.1.0"
     3582                    }
     3583                },
     3584                "color-convert": {
     3585                    "version": "2.0.1",
     3586                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
     3587                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
     3588                    "dev": true,
     3589                    "requires": {
     3590                        "color-name": "~1.1.4"
     3591                    }
     3592                },
     3593                "color-name": {
     3594                    "version": "1.1.4",
     3595                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
     3596                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
     3597                    "dev": true
     3598                },
     3599                "figures": {
     3600                    "version": "3.2.0",
     3601                    "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
     3602                    "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
     3603                    "dev": true,
     3604                    "requires": {
     3605                        "escape-string-regexp": "^1.0.5"
     3606                    }
     3607                },
     3608                "gzip-size": {
     3609                    "version": "5.1.1",
     3610                    "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
     3611                    "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
     3612                    "dev": true,
     3613                    "requires": {
     3614                        "duplexer": "^0.1.1",
     3615                        "pify": "^4.0.1"
     3616                    }
     3617                },
     3618                "has-flag": {
     3619                    "version": "4.0.0",
     3620                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
     3621                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
     3622                    "dev": true
     3623                },
     3624                "maxmin": {
     3625                    "version": "3.0.0",
     3626                    "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-3.0.0.tgz",
     3627                    "integrity": "sha512-wcahMInmGtg/7c6a75fr21Ch/Ks1Tb+Jtoan5Ft4bAI0ZvJqyOw8kkM7e7p8hDSzY805vmxwHT50KcjGwKyJ0g==",
     3628                    "dev": true,
     3629                    "requires": {
     3630                        "chalk": "^4.1.0",
     3631                        "figures": "^3.2.0",
     3632                        "gzip-size": "^5.1.1",
     3633                        "pretty-bytes": "^5.3.0"
     3634                    }
     3635                },
     3636                "supports-color": {
     3637                    "version": "7.2.0",
     3638                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
     3639                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
     3640                    "dev": true,
     3641                    "requires": {
     3642                        "has-flag": "^4.0.0"
     3643                    }
     3644                }
    35473645            }
    35483646        },
     
    39454043            "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
    39464044            "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
    3947             "dev": true,
    3948             "optional": true
     4045            "dev": true
    39494046        },
    39504047        "has-to-string-tag-x": {
     
    44384535            }
    44394536        },
     4537        "is-arguments": {
     4538            "version": "1.1.0",
     4539            "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
     4540            "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
     4541            "dev": true,
     4542            "requires": {
     4543                "call-bind": "^1.0.0"
     4544            }
     4545        },
    44404546        "is-arrayish": {
    44414547            "version": "0.2.1",
     
    44644570            "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
    44654571            "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
    4466             "dev": true,
    4467             "optional": true
     4572            "dev": true
    44684573        },
    44694574        "is-core-module": {
     
    45004605            "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
    45014606            "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
    4502             "dev": true,
    4503             "optional": true
     4607            "dev": true
    45044608        },
    45054609        "is-descriptor": {
     
    45474651            "dev": true
    45484652        },
     4653        "is-generator-function": {
     4654            "version": "1.0.8",
     4655            "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz",
     4656            "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==",
     4657            "dev": true
     4658        },
    45494659        "is-gif": {
    45504660            "version": "3.0.0",
     
    45844694            "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
    45854695            "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
    4586             "dev": true,
    4587             "optional": true
     4696            "dev": true
    45884697        },
    45894698        "is-number": {
     
    46424751            "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
    46434752            "dev": true,
    4644             "optional": true,
    46454753            "requires": {
    46464754                "call-bind": "^1.0.2",
     
    46864794            "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
    46874795            "dev": true,
    4688             "optional": true,
    4689             "requires": {
     4796            "requires": {
     4797                "has-symbols": "^1.0.1"
     4798            }
     4799        },
     4800        "is-typed-array": {
     4801            "version": "1.1.5",
     4802            "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz",
     4803            "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==",
     4804            "dev": true,
     4805            "requires": {
     4806                "available-typed-arrays": "^1.0.2",
     4807                "call-bind": "^1.0.2",
     4808                "es-abstract": "^1.18.0-next.2",
     4809                "foreach": "^2.0.5",
    46904810                "has-symbols": "^1.0.1"
    46914811            }
     
    47554875        },
    47564876        "joi": {
    4757             "version": "17.3.0",
    4758             "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz",
    4759             "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==",
     4877            "version": "17.4.0",
     4878            "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz",
     4879            "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==",
    47604880            "dev": true,
    47614881            "requires": {
     
    48414961            "dev": true
    48424962        },
    4843         "json-stable-stringify": {
    4844             "version": "0.0.1",
    4845             "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
    4846             "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
    4847             "dev": true,
    4848             "requires": {
    4849                 "jsonify": "~0.0.0"
    4850             }
    4851         },
    48524963        "json-stringify-safe": {
    48534964            "version": "5.0.1",
    48544965            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
    48554966            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
    4856             "dev": true
    4857         },
    4858         "jsonify": {
    4859             "version": "0.0.0",
    4860             "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
    4861             "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
    48624967            "dev": true
    48634968        },
     
    52735378            "dependencies": {
    52745379                "bn.js": {
    5275                     "version": "4.11.9",
    5276                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    5277                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     5380                    "version": "4.12.0",
     5381                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     5382                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    52785383                    "dev": true
    52795384                }
     
    56215726            "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
    56225727            "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
    5623             "dev": true,
    5624             "optional": true
     5728            "dev": true
    56255729        },
    56265730        "object-keys": {
     
    56285732            "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
    56295733            "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
    5630             "dev": true,
    5631             "optional": true
     5734            "dev": true
    56325735        },
    56335736        "object-visit": {
     
    56455748            "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
    56465749            "dev": true,
    5647             "optional": true,
    56485750            "requires": {
    56495751                "call-bind": "^1.0.0",
     
    59246026        },
    59256027        "path-browserify": {
    5926             "version": "0.0.1",
    5927             "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
    5928             "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
     6028            "version": "1.0.1",
     6029            "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
     6030            "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
    59296031            "dev": true
    59306032        },
     
    60256127            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
    60266128            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
     6129            "dev": true
     6130        },
     6131        "picomatch": {
     6132            "version": "2.2.2",
     6133            "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
     6134            "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
    60276135            "dev": true
    60286136        },
     
    61606268            "dependencies": {
    61616269                "bn.js": {
    6162                     "version": "4.11.9",
    6163                     "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
    6164                     "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
     6270                    "version": "4.12.0",
     6271                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
     6272                    "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
    61656273                    "dev": true
    61666274                }
     
    66626770        },
    66636771        "sass": {
    6664             "version": "1.32.6",
    6665             "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.6.tgz",
    6666             "integrity": "sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ==",
     6772            "version": "1.32.8",
     6773            "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz",
     6774            "integrity": "sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==",
    66676775            "dev": true,
    66686776            "requires": {
     
    67416849                "inherits": "^2.0.1",
    67426850                "safe-buffer": "^5.0.1"
    6743             }
    6744         },
    6745         "shasum": {
    6746             "version": "1.0.2",
    6747             "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
    6748             "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
    6749             "dev": true,
    6750             "requires": {
    6751                 "json-stable-stringify": "~0.0.0",
    6752                 "sha.js": "~2.4.4"
    67536851            }
    67546852        },
     
    71127210        },
    71137211        "stream-browserify": {
    7114             "version": "2.0.2",
    7115             "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
    7116             "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
    7117             "dev": true,
    7118             "requires": {
    7119                 "inherits": "~2.0.1",
    7120                 "readable-stream": "^2.0.2"
     7212            "version": "3.0.0",
     7213            "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
     7214            "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
     7215            "dev": true,
     7216            "requires": {
     7217                "inherits": "~2.0.4",
     7218                "readable-stream": "^3.5.0"
     7219            },
     7220            "dependencies": {
     7221                "readable-stream": {
     7222                    "version": "3.6.0",
     7223                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
     7224                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
     7225                    "dev": true,
     7226                    "requires": {
     7227                        "inherits": "^2.0.3",
     7228                        "string_decoder": "^1.1.1",
     7229                        "util-deprecate": "^1.0.1"
     7230                    }
     7231                }
    71217232            }
    71227233        },
     
    72177328            "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
    72187329            "dev": true,
    7219             "optional": true,
    72207330            "requires": {
    72217331                "call-bind": "^1.0.0",
     
    72287338            "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
    72297339            "dev": true,
    7230             "optional": true,
    72317340            "requires": {
    72327341                "call-bind": "^1.0.0",
     
    78047913        },
    78057914        "util": {
    7806             "version": "0.10.4",
    7807             "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
    7808             "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
    7809             "dev": true,
    7810             "requires": {
    7811                 "inherits": "2.0.3"
    7812             },
    7813             "dependencies": {
    7814                 "inherits": {
    7815                     "version": "2.0.3",
    7816                     "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
    7817                     "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
    7818                     "dev": true
    7819                 }
     7915            "version": "0.12.3",
     7916            "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",
     7917            "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==",
     7918            "dev": true,
     7919            "requires": {
     7920                "inherits": "^2.0.3",
     7921                "is-arguments": "^1.0.4",
     7922                "is-generator-function": "^1.0.7",
     7923                "is-typed-array": "^1.1.3",
     7924                "safe-buffer": "^5.1.2",
     7925                "which-typed-array": "^1.1.2"
    78207926            }
    78217927        },
     
    79058011        },
    79068012        "wait-on": {
    7907             "version": "5.2.1",
    7908             "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.2.1.tgz",
    7909             "integrity": "sha512-H2F986kNWMU9hKlI9l/ppO6tN8ZSJd35yBljMLa1/vjzWP++Qh6aXyt77/u7ySJFZQqBtQxnvm/xgG48AObXcw==",
     8013            "version": "5.3.0",
     8014            "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.3.0.tgz",
     8015            "integrity": "sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg==",
    79108016            "dev": true,
    79118017            "requires": {
    79128018                "axios": "^0.21.1",
    79138019                "joi": "^17.3.0",
    7914                 "lodash": "^4.17.20",
     8020                "lodash": "^4.17.21",
    79158021                "minimist": "^1.2.5",
    79168022                "rxjs": "^6.6.3"
    79178023            },
    79188024            "dependencies": {
     8025                "lodash": {
     8026                    "version": "4.17.21",
     8027                    "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
     8028                    "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
     8029                    "dev": true
     8030                },
    79198031                "rxjs": {
    7920                     "version": "6.6.3",
    7921                     "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
    7922                     "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
     8032                    "version": "6.6.7",
     8033                    "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
     8034                    "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
    79238035                    "dev": true,
    79248036                    "requires": {
     
    79298041        },
    79308042        "watchify": {
    7931             "version": "3.11.1",
    7932             "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz",
    7933             "integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==",
    7934             "dev": true,
    7935             "requires": {
    7936                 "anymatch": "^2.0.0",
    7937                 "browserify": "^16.1.0",
    7938                 "chokidar": "^2.1.1",
     8043            "version": "4.0.0",
     8044            "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz",
     8045            "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==",
     8046            "dev": true,
     8047            "requires": {
     8048                "anymatch": "^3.1.0",
     8049                "browserify": "^17.0.0",
     8050                "chokidar": "^3.4.0",
    79398051                "defined": "^1.0.0",
    79408052                "outpipe": "^1.1.0",
    7941                 "through2": "^2.0.0",
    7942                 "xtend": "^4.0.0"
     8053                "through2": "^4.0.2",
     8054                "xtend": "^4.0.2"
     8055            },
     8056            "dependencies": {
     8057                "anymatch": {
     8058                    "version": "3.1.1",
     8059                    "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
     8060                    "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
     8061                    "dev": true,
     8062                    "requires": {
     8063                        "normalize-path": "^3.0.0",
     8064                        "picomatch": "^2.0.4"
     8065                    }
     8066                },
     8067                "binary-extensions": {
     8068                    "version": "2.2.0",
     8069                    "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
     8070                    "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
     8071                    "dev": true
     8072                },
     8073                "braces": {
     8074                    "version": "3.0.2",
     8075                    "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
     8076                    "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
     8077                    "dev": true,
     8078                    "requires": {
     8079                        "fill-range": "^7.0.1"
     8080                    }
     8081                },
     8082                "chokidar": {
     8083                    "version": "3.5.1",
     8084                    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
     8085                    "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
     8086                    "dev": true,
     8087                    "requires": {
     8088                        "anymatch": "~3.1.1",
     8089                        "braces": "~3.0.2",
     8090                        "fsevents": "~2.3.1",
     8091                        "glob-parent": "~5.1.0",
     8092                        "is-binary-path": "~2.1.0",
     8093                        "is-glob": "~4.0.1",
     8094                        "normalize-path": "~3.0.0",
     8095                        "readdirp": "~3.5.0"
     8096                    }
     8097                },
     8098                "fill-range": {
     8099                    "version": "7.0.1",
     8100                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
     8101                    "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
     8102                    "dev": true,
     8103                    "requires": {
     8104                        "to-regex-range": "^5.0.1"
     8105                    }
     8106                },
     8107                "fsevents": {
     8108                    "version": "2.3.2",
     8109                    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
     8110                    "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
     8111                    "dev": true,
     8112                    "optional": true
     8113                },
     8114                "glob-parent": {
     8115                    "version": "5.1.2",
     8116                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
     8117                    "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
     8118                    "dev": true,
     8119                    "requires": {
     8120                        "is-glob": "^4.0.1"
     8121                    }
     8122                },
     8123                "is-binary-path": {
     8124                    "version": "2.1.0",
     8125                    "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
     8126                    "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
     8127                    "dev": true,
     8128                    "requires": {
     8129                        "binary-extensions": "^2.0.0"
     8130                    }
     8131                },
     8132                "is-glob": {
     8133                    "version": "4.0.1",
     8134                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
     8135                    "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
     8136                    "dev": true,
     8137                    "requires": {
     8138                        "is-extglob": "^2.1.1"
     8139                    }
     8140                },
     8141                "is-number": {
     8142                    "version": "7.0.0",
     8143                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
     8144                    "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
     8145                    "dev": true
     8146                },
     8147                "normalize-path": {
     8148                    "version": "3.0.0",
     8149                    "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
     8150                    "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
     8151                    "dev": true
     8152                },
     8153                "readable-stream": {
     8154                    "version": "3.6.0",
     8155                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
     8156                    "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
     8157                    "dev": true,
     8158                    "requires": {
     8159                        "inherits": "^2.0.3",
     8160                        "string_decoder": "^1.1.1",
     8161                        "util-deprecate": "^1.0.1"
     8162                    }
     8163                },
     8164                "readdirp": {
     8165                    "version": "3.5.0",
     8166                    "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
     8167                    "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
     8168                    "dev": true,
     8169                    "requires": {
     8170                        "picomatch": "^2.2.1"
     8171                    }
     8172                },
     8173                "through2": {
     8174                    "version": "4.0.2",
     8175                    "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
     8176                    "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
     8177                    "dev": true,
     8178                    "requires": {
     8179                        "readable-stream": "3"
     8180                    }
     8181                },
     8182                "to-regex-range": {
     8183                    "version": "5.0.1",
     8184                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
     8185                    "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
     8186                    "dev": true,
     8187                    "requires": {
     8188                        "is-number": "^7.0.0"
     8189                    }
     8190                }
    79438191            }
    79448192        },
     
    79698217            }
    79708218        },
     8219        "which-typed-array": {
     8220            "version": "1.1.4",
     8221            "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
     8222            "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==",
     8223            "dev": true,
     8224            "requires": {
     8225                "available-typed-arrays": "^1.0.2",
     8226                "call-bind": "^1.0.0",
     8227                "es-abstract": "^1.18.0-next.1",
     8228                "foreach": "^2.0.5",
     8229                "function-bind": "^1.1.1",
     8230                "has-symbols": "^1.0.1",
     8231                "is-typed-array": "^1.1.3"
     8232            }
     8233        },
    79718234        "wrappy": {
    79728235            "version": "1.0.2",
  • branches/4.7/package.json

    r50204 r50636  
    2727        "dotenv-expand": "^5.1.0",
    2828        "grunt": "~1.3.0",
    29         "grunt-browserify": "~5.3.0",
     29        "grunt-browserify": "~6.0.0",
    3030        "grunt-contrib-clean": "~2.0.0",
    3131        "grunt-contrib-compress": "~2.0.0",
    3232        "grunt-contrib-concat": "1.0.1",
    3333        "grunt-contrib-copy": "~1.0.0",
    34         "grunt-contrib-cssmin": "~3.0.0",
     34        "grunt-contrib-cssmin": "~4.0.0",
    3535        "grunt-contrib-imagemin": "~4.0.0",
    3636        "grunt-contrib-jshint": "3.0.0",
     
    4646        "grunt-sass": "~3.1.0",
    4747        "matchdep": "~2.0.0",
    48         "sass": "^1.32.6",
    49         "wait-on": "~5.2.1"
     48        "sass": "^1.32.8",
     49        "wait-on": "^5.3.0"
    5050    },
    5151    "scripts": {
Note: See TracChangeset for help on using the changeset viewer.