From b4f093fcafa130ee2129c2bf2c4f66e42e90b4c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Fri, 8 Nov 2024 11:50:11 +0100 Subject: [PATCH 1/2] Start the version 2.10 --- .github/workflows/main.yaml | 2 +- .github/workflows/ngeo-2-9.yaml | 263 ++++++++++++++++++++++++++++++++ .github/workflows/qgis.yaml | 2 +- .pre-commit-config.yaml | 5 +- .python-version | 2 +- SECURITY.md | 1 + doc/developer/build_release.rst | 182 ++++++---------------- 7 files changed, 313 insertions(+), 144 deletions(-) create mode 100644 .github/workflows/ngeo-2-9.yaml diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index b1841ba88b..9229e3ef31 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -30,7 +30,7 @@ jobs: env: MAIN_BRANCH: master - MAJOR_VERSION: '2.9' + MAJOR_VERSION: '2.10' steps: - run: '! ls BACKPORT_TODO' diff --git a/.github/workflows/ngeo-2-9.yaml b/.github/workflows/ngeo-2-9.yaml new file mode 100644 index 0000000000..0852fc7c3b --- /dev/null +++ b/.github/workflows/ngeo-2-9.yaml @@ -0,0 +1,263 @@ +name: Update ngeo 2.9 + +on: + repository_dispatch: + types: + - ngeo_2.9_updated + pull_request: + +jobs: + main: + name: Update ngeo 2.9 + runs-on: ubuntu-24.04 + timeout-minutes: 135 + + env: + MAIN_BRANCH: '2.9' + MAJOR_VERSION: '2.9' + + steps: + - run: '! ls BACKPORT_TODO' + - run: df -h + - name: Clean all docker images + run: docker system prune --all --force + # Inspired by https://github.com/jlumbroso/free-disk-space/ + - run: sudo rm -rf /usr/local/lib/android /usr/share/dotnet "$AGENT_TOOLSDIRECTORY" + - run: df -h + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ env.MAIN_BRANCH }} + + - uses: camptocamp/initialise-gopass-summon-action@v2 + with: + ci-gpg-private-key: ${{secrets.CI_GPG_PRIVATE_KEY}} + github-gopass-ci-token: ${{secrets.GOPASS_CI_GITHUB_TOKEN}} + patterns: pypi docker transifex + + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + - run: python3 -m pip install --requirement=ci/requirements.txt + - name: Environment information + run: c2cciutils-env + env: + # To display the content of the github object + GITHUB_EVENT: ${{ toJson(github) }} + + - run: c2cciutils-download-applications --applications-file=ci/applications.yaml --versions-file=ci/applications-versions.yaml + + - run: cd geoportal && npm update + - id: version + run: scripts/get-version --auto-increment --github + + - uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} + restore-keys: "pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}\npre-commit-" + - run: pre-commit run --all-files + - run: git diff --exit-code --patch > /tmp/pre-commit.patch || true + if: failure() + - uses: actions/upload-artifact@v4 + with: + name: Apply pre-commit fix.patch + path: /tmp/pre-commit.patch + retention-days: 1 + if: failure() + + - run: python3 -m pip install --requirement=requirements.txt + + # Build images + - run: make build-runner + - run: make build-tools + - run: make checks + if: always() + - run: make build-config + + # Build and lint QGIS images + - run: QGIS_VERSION=3.34-gdal3.8 make build-qgisserver + - run: QGIS_VERSION=3.34-gdal3.8 make prospector-qgisserver + + - run: make preparetest + + # Auto generate Alembic script + - run: | + docker compose exec tests alembic --config=/opt/c2cgeoportal/commons/alembic.ini --name=main check \ + || docker compose exec tests alembic --config=/opt/c2cgeoportal/commons/alembic.ini --name=main \ + revision --autogenerate --message='${{ github.event.pull_request.title }}' + docker compose exec tests alembic --config=/opt/c2cgeoportal/commons/alembic.ini --name=static check \ + || docker compose exec tests alembic --config=/opt/c2cgeoportal/commons/alembic.ini --name=static \ + revision --autogenerate --message='${{ github.event.pull_request.title }}' + sudo chmod go+rw -R commons/c2cgeoportal_commons/alembic/ + # Replace 'main' by schema and 'main. by f'{schema}. + sed -i "s/'main'/schema/g" commons/c2cgeoportal_commons/alembic/*/*.py + sed -i "s/'main\.'/f'{schema}./g" commons/c2cgeoportal_commons/alembic/*/*.py + # Replace 'main_static' by staticschema and 'main_static. by f'{staticschema}. + sed -i "s/'main_static'/staticschema/g" commons/c2cgeoportal_commons/alembic/*/*.py + sed -i "s/'main_static\.'/f'{staticschema}./g" commons/c2cgeoportal_commons/alembic/*/*.py + git checkout commons/c2cgeoportal_commons/alembic/main/ee25d267bf46_main_interface_desktop.py + git checkout commons/c2cgeoportal_commons/alembic/main/415746eb9f6_changes_for_v2.py + git add commons/c2cgeoportal_commons/alembic/main/*.py commons/c2cgeoportal_commons/alembic/static/*.py + pre-commit run --files commons/c2cgeoportal_commons/alembic/main/*.py commons/c2cgeoportal_commons/alembic/static/*.py || true + git add commons/c2cgeoportal_commons/alembic/main/*.py commons/c2cgeoportal_commons/alembic/static/*.py + git diff --staged --patch > /tmp/alembic.patch + git diff --staged --exit-code + - uses: actions/upload-artifact@v4 + with: + name: Add Alembic upgrade script.patch + path: /tmp/alembic.patch + retention-days: 1 + if: failure() + + # Tests + - run: c2cciutils-docker-logs + - run: make tests-commons + - run: c2cciutils-docker-logs + - run: make tests-geoportal + - run: c2cciutils-docker-logs + - run: make tests-admin + - run: c2cciutils-docker-logs + - run: make tests-qgisserver + - run: c2cciutils-docker-logs + if: always() + - run: docker compose down + + - name: Test version generation for the changelog + run: scripts/updated_version latest latest + + - run: sudo git clean -fdx + + # Documentation + - run: > + docker build --tag=camptocamp/geomapfish-doc + --build-arg=MAJOR_VERSION=${MAJOR_VERSION} + --build-arg=MAIN_BRANCH=${MAIN_BRANCH} + doc + env: + DOCKER_BUILDKIT: '1' + + - name: Extract documentation + run: ci/extract-documentation artifacts/documentations/ || true + if: always() + + - uses: actions/upload-artifact@v4 + with: + name: Documentation + path: artifacts/documentations/ + if-no-files-found: ignore + retention-days: 5 + if: always() + + # Test App with Docker compose version 2.x + - timeout-minutes: 30 + run: ci/test-app + - name: Docker logs + continue-on-error: true + run: | + cd ${HOME}/workspace/testgeomapfishapp/ + c2cciutils-docker-logs + if: failure() + + # Use minimal version from the documentation + - uses: actions/setup-python@v5 + with: + # When we upgrade this we should also upgrade the requirements + # in the documentation: doc/integrator/requirements.rst + # and the first pyupgrade pre-commit hook in .pre-commit-config.yaml + python-version: '3.8' # Shouldn't be upgraded to latest Python version + - run: python --version|grep ' 3\.8\.' + - run: pip install --requirement=ci/requirements-project.txt + - run: docker compose version + + # Test App + - timeout-minutes: 30 + run: ci/test-app + - name: Docker logs + continue-on-error: true + run: | + cd ${HOME}/workspace/testgeomapfishapp/ + c2cciutils-docker-logs + if: failure() + + - run: git stash + - run: git pull --ff-only origin ${{ env.MAIN_BRANCH }} + - run: git stash pop || true + + # Test Upgrade + - run: DOCKER_TAG=${{ steps.version.outputs.full }} make build-tools + - run: DOCKER_TAG=${{ steps.version.outputs.full }} make build-runner + - run: DOCKER_TAG=${{ steps.version.outputs.full }} make build-config + - run: docker images | grep "" | awk '{print $3}' | xargs --no-run-if-empty docker rmi || true + - run: ci/test-upgrade init ${HOME}/workspace + - run: ci/test-upgrade 270 ${HOME}/workspace + - run: ci/test-upgrade 280 ${HOME}/workspace + - run: ci/test-upgrade 29 ${HOME}/workspace + - run: ci/test-upgrade cleanup ${HOME}/workspace + + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + - run: pip install --requirement=ci/requirements-back.txt + - run: docker compose version + + - name: Init Git + run: + git remote set-url origin https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository + }} + - run: make build-tools + - run: make build-runner + - run: make build-config + + - run: ci/create-new-project ${HOME}/workspace geomapfishapp + - run: (cd ${HOME}/workspace/geomapfishapp/; ./build) + + - name: Update the changelog + run: ci/changelog ${{ steps.version.outputs.full }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: git diff CHANGELOG.md + - run: | + git add geoportal/package-lock.json + git commit -m "Update used ngeo version" + + - name: Push version and changelog + run: | + set -eux + git add ci/ci.yaml ci/changelog.yaml CHANGELOG.md + git diff --staged --quiet || (\ + git commit -m "[skip ci] Update the minor version"; \ + git push origin HEAD:${{ env.MAIN_BRANCH }} \ + ) + - name: Publish + run: > + c2cciutils-publish + --docker-versions=${{ steps.version.outputs.versions }} + --snyk-version=${{ steps.version.outputs.snyk_version }} + --type=rebuild + if: steps.version.outputs.versions != '' + - run: git diff --exit-code --patch > /tmp/dpkg-versions.patch || true + if: failure() + - uses: actions/upload-artifact@v4 + with: + name: Update dpkg versions list.patch + path: /tmp/dpkg-versions.patch + retention-days: 1 + if: failure() + + - name: Notify demo + run: > + curl --request POST --header "Content-Type: application/json" + --header 'Accept: application/vnd.github.v3+json' + --header "Authorization: token ${{ secrets.GOPASS_CI_GITHUB_TOKEN }}" + https://api.github.com/repos/camptocamp/demo_geomapfish/dispatches + --data '{"event_type": "geomapfish_${{ env.MAJOR_VERSION }}_updated", + "client_payload": {"version": "'"${{ steps.version.outputs.upgrade_version }}"'"}}' + + - run: docker images + if: always() + - run: docker system df + if: always() + - run: df -h + if: always() diff --git a/.github/workflows/qgis.yaml b/.github/workflows/qgis.yaml index 80bf1bf86e..14f759c9c4 100644 --- a/.github/workflows/qgis.yaml +++ b/.github/workflows/qgis.yaml @@ -13,7 +13,7 @@ env: HAS_SECRETS: ${{ secrets.HAS_SECRETS }} DOCKER_BUILDKIT: 1 MAIN_BRANCH: master - MAJOR_VERSION: '2.9' + MAJOR_VERSION: '2.10' jobs: common: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bab3a1b06d..6f951bc8ad 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,14 +38,11 @@ repos: hooks: - id: copyright - id: workflows-require-timeout - - id: poetry-check - exclude: ^geoportal/c2cgeoportal_geoportal/scaffolds/[a-z_]+/{{cookiecutter\.project}}/ - additional_dependencies: - - poetry==1.8.4 # pypi - id: poetry-lock exclude: ^geoportal/c2cgeoportal_geoportal/scaffolds/[a-z_]+/{{cookiecutter\.project}}/ additional_dependencies: - poetry==1.8.4 # pypi + - id: npm-lock - repo: https://github.com/codespell-project/codespell rev: v2.3.0 hooks: diff --git a/.python-version b/.python-version index e4fba21835..2c0733315e 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.12 +3.11 diff --git a/SECURITY.md b/SECURITY.md index 1073be4952..5eccd58198 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,3 +8,4 @@ | 2.6 | Best effort | | 2.7 | 23/06/2026 | | 2.8 | 27/06/2027 | +| 2.9 | To be defined | diff --git a/doc/developer/build_release.rst b/doc/developer/build_release.rst index 52cfebb524..63717cbff2 100644 --- a/doc/developer/build_release.rst +++ b/doc/developer/build_release.rst @@ -79,6 +79,16 @@ Create the new branch You should create the new version branch. +.. prompt:: bash + + NEW_VERSION=x.y + git checkout master + git pull + git checkout -b "${NEW_VERSION}" + git push --set-upstream origin "${NEW_VERSION}" + git push origin "${NEW_VERSION}" + + In the files ``.github/workflows/main.yaml`` and ``.github/workflows/qgis.yaml`` set ``MAIN_BRANCH`` to ````. @@ -95,141 +105,41 @@ Run: .. prompt:: bash - tx pull --source --branch= --force \ + NEW_VERSION=x.y + NEXT_VERSION=x.y+1 + tx pull --source --branch="${NEW_VERSION}" --force \ --resources=geomapfish.c2cgeoportal_geoportal,geomapfish.c2cgeoportal_admin - tx pull --translations --branch= --force --all \ + tx pull --translations --branch="${NEW_VERSION}" --force --all \ --resources=geomapfish.c2cgeoportal_geoportal,geomapfish.c2cgeoportal_admin - tx push --branch= --source --force \ + tx push --branch="${NEXT_VERSION}" --source --force \ --resources=geomapfish.c2cgeoportal_geoportal,geomapfish.c2cgeoportal_admin - tx push --branch= --translation --force \ + tx push --branch="${NEXT_VERSION}" --translation --force \ --resources=geomapfish.c2cgeoportal_geoportal,geomapfish.c2cgeoportal_admin -Update the master branch -------------------------- - -Configure the rebuild +Create a pull request --------------------- -Copy the file ``.github/workflows/main.yaml`` from new version branch to master branch as -``.github/workflows/rebuild-.yaml`` and do the following changes: - -.. code:: diff - - - name: Continuous integration - + name: Rebuild - - on: - - push: - - pull_request: - + schedule: - + - cron: "30 3 * * *" - - jobs: - - not-failed-backport: - - ... - - - name: Continuous integration - + name: Rebuild - - - if: "!startsWith(github.event.head_commit.message, '[skip ci] ')" - - + strategy: - + fail-fast: false - + matrix: - + branch: - + - 'x.y' - - - env: - - MAIN_BRANCH: master - + MAIN_BRANCH: - - - uses: actions/checkout@v2 - with: - + ref: ${{ env.MAIN_BRANCH }} - - - # Test Upgrade - - ... - - - run: ci/test-upgrade cleanup ${HOME}/workspace - - - - name: Update the changelog - - ... - - - run: git diff CHANGELOG.md - - - - name: Push version and changelog - - ... - - - name: Publish - run: > - c2cciutils-publish - --docker-versions=${{ steps.version.outputs.versions }} - --snyk-version=${{ steps.version.outputs.snyk_version }} - + --type=rebuild - - if: > - - env.HAS_SECRETS == 'HAS_SECRETS' - - && steps.version.outputs.versions != '' - - - - - name: Notify demo - - ... - - - - - name: Publish to Transifex - - ... - - - - - name: Publish documentation to GitHub.io - - ... - - -Copy the files ``.github/workflows/qgis.yaml`` from new version branch to master branch -as ``.github/workflows/rebuild-qgis-.yaml`` and do the following changes: - -.. code:: diff - - - name: QGIS build - + name: QGIS rebuild - - on: - - push: - - pull_request: - + schedule: - + - cron: "30 3 * * *" +Create a pull request to update the new version branch. - - name: QGIS build - + name: QGIS rebuild +.. prompt:: bash - - if: "!startsWith(github.event.head_commit.message, '[skip ci] ')" + NEW_VERSION=x.y + git checkout -b "setup-${NEW_VERSION}" + pre-commit run --files=geoportal/package.json npm-lock + git add geoportal/package.json geoportal/package-lock.json .github/workflows/main.yaml .github/workflows/qgis.yaml + git commit -m "Use ngeo version ${NEW_VERSION}" + git push --set-upstream origin "setup-${NEW_VERSION}" - strategy: - fail-fast: false - matrix: - version: - ... - + branch: - + - 'x.y' + Create the pull request on GitHub. - env: - - MAIN_BRANCH: master - - MAJOR_VERSION: x.y - + MAIN_BRANCH: ${{ matrix.branch }} - + MAJOR_VERSION: ${{ matrix.branch }} +Update the master branch +------------------------- - - uses: actions/checkout@v1 - with: - fetch-depth: 0 - + ref: ${{ env.MAIN_BRANCH }} +.. prompt:: bash - - name: Publish - run: > - c2cciutils-publish - --group=qgis-${{ matrix.version }} - --docker-versions=${{ steps.version.outputs.versions }} - --snyk-version=${{ steps.version.outputs.snyk_version }} - + --type=rebuild - - if: > - - github.ref != format('refs/heads/{0}', env.MAIN_BRANCH) - - && github.repository == 'camptocamp/c2cgeoportal' - - - name: Publish version branch - - ... + git checkout master + git pull Copy the file ``.github/workflows/main.yaml`` from new version branch to master branch as ``.github/workflows/ngeo-.yaml`` and do the following changes: @@ -298,6 +208,9 @@ Copy the file ``.github/workflows/main.yaml`` from new version branch to master --snyk-version=${{ steps.version.outputs.snyk_version }} + --type=rebuild + - - name: Publish version branch to pypi + - ... + - - - name: Publish to Transifex - ... - @@ -308,7 +221,6 @@ Copy the file ``.github/workflows/main.yaml`` from new version branch to master And also remove all the `if` concerning the following tests: - ``github.ref != format('refs/heads/{0}', env.MAIN_BRANCH)`` -- ``github.repository == 'camptocamp/c2cgeoportal'`` - ``env.HAS_SECRETS == 'HAS_SECRETS`` (optional) Configure the new branch @@ -317,23 +229,12 @@ Configure the new branch In the file ``.github/workflows/main.yaml`` and ``.github/workflows/qgis.yaml`` set ``MAJOR_VERSION`` to ````. -Configure the audit -------------------- - -Add the new version branch in the ``.github/workflows/audit.yaml`` file. - -Configure the branch on the status dashboard --------------------------------------------- - -Add the new branch for the demo, ngeo and c2cgeoportal in the file -`scripts/status.yaml `_. - Reset the change log -------------------- On the ``c2cgeoportal`` new version branch: -* Empty the file ``CHANGELOG`` +* Empty the file ``CHANGELOG.md`` * Set the content of the file ``ci/changelog.yaml`` to: .. code:: yaml @@ -360,10 +261,17 @@ Backport label Create the new back port label named ``backport_``. -Protect branch --------------- +Create the pull request +----------------------- + +.. prompt:: bash -In GitHub project settings, protect the new branch with the same settings as the master branch. + NEXT_VERSION=x.y + git add -A + git add .github/workflows/ngeo-*.yaml + git checkout -b "start-${NEXT_VERSION}" + git commit -m "Start the version ${NEXT_VERSION}" + git push --set-upstream origin "start-${NEXT_VERSION}" Publish it ---------- From 76c054eed5ea472de2d9102bc7ebfed87ea3434a Mon Sep 17 00:00:00 2001 From: "geo-ghci-int[bot]" <146321879+geo-ghci-int[bot]@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:38:04 +0000 Subject: [PATCH 2/2] Update dpkg versions list From the artifact of the previous workflow run --- geoportal/package-lock.json | 178 ++++++++++++++++++------------------ 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/geoportal/package-lock.json b/geoportal/package-lock.json index a12e9076a6..03f9b2342d 100644 --- a/geoportal/package-lock.json +++ b/geoportal/package-lock.json @@ -1723,9 +1723,9 @@ "optional": true }, "node_modules/@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", "dev": true, "license": "MIT" }, @@ -2002,73 +2002,73 @@ "license": "ISC" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "dependencies": { @@ -2076,9 +2076,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2086,79 +2086,79 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -3869,9 +3869,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001677", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", - "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", + "version": "1.0.30001679", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz", + "integrity": "sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA==", "dev": true, "funding": [ { @@ -4491,9 +4491,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "dev": true, "license": "MIT", "dependencies": { @@ -5429,9 +5429,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.51", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.51.tgz", - "integrity": "sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==", + "version": "1.5.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz", + "integrity": "sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==", "dev": true, "license": "ISC" },