5756 lines
117 KiB
Plaintext
5756 lines
117 KiB
Plaintext
CHANGED: .editorconfig — mkilijanek/.editorconfig +++ gchq/.editorconfig
|
||
@@ -12,3 +12,7 @@ [{package.json,.travis.yml,nightwatch.json}]
|
||
|
||
indent_style = space
|
||
|
||
indent_size = 2
|
||
|
||
-
|
||
|
||
+[.github/**.yml]
|
||
|
||
+indent_style = space
|
||
|
||
+indent_size = 2
|
||
|
||
REMOVED in gchq (exists in mkilijanek): .github/dependabot.yml REMOVED
|
||
in gchq (exists in mkilijanek): .github/workflows/codeql-analysis.yml
|
||
REMOVED in gchq (exists in mkilijanek): .github/workflows/codeql.yml
|
||
REMOVED in gchq (exists in mkilijanek):
|
||
.github/workflows/dependency-review.yml
|
||
|
||
CHANGED: .github/workflows/master.yml —
|
||
mkilijanek/.github/workflows/master.yml +++
|
||
gchq/.github/workflows/master.yml @@ -2,129 +2,64 @@
|
||
|
||
on:
|
||
|
||
workflow_dispatch:
|
||
|
||
- inputs:
|
||
|
||
- nightly:
|
||
|
||
- description: "Tag build as nightly"
|
||
|
||
- required: false
|
||
|
||
- default: "false"
|
||
|
||
push:
|
||
|
||
branches:
|
||
|
||
- - master
|
||
|
||
- schedule:
|
||
|
||
- Weekly build and publish to keep images fresh
|
||
|
||
- - cron: ‘0 3 * * 1’
|
||
|
||
- - master
|
||
|
||
-env:
|
||
|
||
- REGISTRY: ghcr.io
|
||
|
||
- IMAGE_NAME: ${{ github.repository }}
|
||
|
||
- PLATFORMS: linux/amd64,linux/arm64
|
||
|
||
-
|
||
|
||
-env:
|
||
|
||
- REGISTRY: ghcr.io
|
||
|
||
- IMAGE_NAME: ${{ github.repository }}
|
||
|
||
- PLATFORMS: linux/amd64,linux/arm64
|
||
|
||
+permissions:
|
||
|
||
- contents: read
|
||
|
||
jobs:
|
||
|
||
main:
|
||
|
||
- permissions:
|
||
|
||
- contents: write
|
||
|
||
- pages: write
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
|
||
- - uses: actions/checkout@v3
|
||
|
||
- - uses: actions/checkout@v6
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v3
|
||
|
||
- with:
|
||
|
||
- node-version: '18.x'
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v6
|
||
|
||
- with:
|
||
|
||
- node-version: 18
|
||
|
||
- registry-url: "https://registry.npmjs.org"
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm install
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm install
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Production Build
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt prod --msg="Version 10 is here! Read about the new features <a href='https://github.com/gchq/CyberChef/wiki/Character-encoding,-EOL-separators,-and-editor-features'>here</a>"
|
||
|
||
- - name: Production Build
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt prod --msg=""
|
||
|
||
- - name: Generate sitemap
|
||
|
||
- run: npx grunt exec:sitemap
|
||
|
||
- - name: Generate sitemap
|
||
|
||
- run: npx grunt exec:sitemap
|
||
|
||
- - name: UI Tests
|
||
|
||
- if: success()
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
- - name: UI Tests
|
||
|
||
- if: success()
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
- - name: Prepare for GitHub Pages
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt copy:ghPages
|
||
|
||
- - name: Prepare for GitHub Pages
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt copy:ghPages
|
||
|
||
- - name: Deploy to GitHub Pages
|
||
|
||
- if: success() && github.ref == 'refs/heads/master'
|
||
|
||
- uses: crazy-max/ghaction-github-pages@v3
|
||
|
||
- with:
|
||
|
||
- target_branch: gh-pages
|
||
|
||
- build_dir: ./build/prod
|
||
|
||
- env:
|
||
|
||
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
-
|
||
|
||
- docker-images:
|
||
|
||
- name: Build & Publish Docker Images
|
||
|
||
- runs-on: ubuntu-latest
|
||
|
||
- needs: main
|
||
|
||
- if: github.ref == ‘refs/heads/master’
|
||
|
||
- permissions:
|
||
|
||
- contents: read
|
||
|
||
- packages: write
|
||
|
||
- steps:
|
||
|
||
- - uses: actions/checkout@v4
|
||
|
||
-
|
||
|
||
- - name: Set up QEMU
|
||
|
||
- uses: docker/setup-qemu-action@v3
|
||
|
||
-
|
||
|
||
- - name: Set up Docker Buildx
|
||
|
||
- uses: docker/setup-buildx-action@v3
|
||
|
||
-
|
||
|
||
- - name: Log in to GitHub Container Registry
|
||
|
||
- uses: docker/login-action@v3
|
||
|
||
- with:
|
||
|
||
- registry: ${{ env.REGISTRY }}
|
||
|
||
- username: ${{ github.actor }}
|
||
|
||
- password: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
-
|
||
|
||
- - name: Set extra tags
|
||
|
||
- run: |
|
||
|
||
- if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.nightly }}" = "true" ]; then
|
||
|
||
- echo "EXTRA_TAGS=type=raw,value=nightly" >> $GITHUB_ENV
|
||
|
||
- else
|
||
|
||
- echo "EXTRA_TAGS=" >> $GITHUB_ENV
|
||
|
||
- fi
|
||
|
||
-
|
||
|
||
- - name: Docker metadata
|
||
|
||
- id: meta
|
||
|
||
- uses: docker/metadata-action@v5
|
||
|
||
- with:
|
||
|
||
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||
|
||
- tags: |
|
||
|
||
- type=raw,value=latest
|
||
|
||
- type=sha,format=long
|
||
|
||
- ${{ env.EXTRA_TAGS }}
|
||
|
||
-
|
||
|
||
- - name: Build and push multi-arch image
|
||
|
||
- uses: docker/build-push-action@v5
|
||
|
||
- with:
|
||
|
||
- context: .
|
||
|
||
- file: ./Dockerfile
|
||
|
||
- platforms: ${{ env.PLATFORMS }}
|
||
|
||
- push: true
|
||
|
||
- tags: ${{ steps.meta.outputs.tags }}
|
||
|
||
- labels: ${{ steps.meta.outputs.labels }}
|
||
|
||
- cache-from: type=gha
|
||
|
||
- cache-to: type=gha,mode=max
|
||
|
||
- - name: Deploy to GitHub Pages
|
||
|
||
- if: success() && github.ref == 'refs/heads/master'
|
||
|
||
- uses: crazy-max/ghaction-github-pages@v3
|
||
|
||
- with:
|
||
|
||
- target_branch: gh-pages
|
||
|
||
- build_dir: ./build/prod
|
||
|
||
- env:
|
||
|
||
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
CHANGED: .github/workflows/pull_requests.yml —
|
||
mkilijanek/.github/workflows/pull_requests.yml +++
|
||
gchq/.github/workflows/pull_requests.yml @@ -1,4 +1,7 @@ name: “Pull
|
||
Requests”
|
||
|
||
-
|
||
|
||
+permissions:
|
||
|
||
- contents: read
|
||
|
||
on:
|
||
|
||
workflow_dispatch:
|
||
|
||
@@ -9,47 +12,46 @@ main:
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
|
||
- - uses: actions/checkout@v3
|
||
|
||
- - uses: actions/checkout@v6
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v3
|
||
|
||
- with:
|
||
|
||
- node-version: '18.x'
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v6
|
||
|
||
- with:
|
||
|
||
- node-version: 18
|
||
|
||
- registry-url: "https://registry.npmjs.org"
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm install
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm install
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Production Build
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt prod
|
||
|
||
- - name: Production Build
|
||
|
||
- if: success()
|
||
|
||
- run: npx grunt prod
|
||
|
||
- - name: Production Image Build
|
||
|
||
- if: success()
|
||
|
||
- id: build-image
|
||
|
||
- uses: redhat-actions/buildah-build@v2
|
||
|
||
- with:
|
||
|
||
- # Not being uploaded to any registry, use a simple name to allow Buildah to build correctly.
|
||
|
||
- image: cyberchef
|
||
|
||
- containerfiles: ./Dockerfile
|
||
|
||
- platforms: linux/amd64
|
||
|
||
- oci: true
|
||
|
||
- # Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
|
||
|
||
- extra-args: |
|
||
|
||
- --ulimit nofile=10000
|
||
|
||
- - name: Set up Docker Buildx
|
||
|
||
- uses: docker/setup-buildx-action@v3
|
||
|
||
- - name: UI Tests
|
||
|
||
- if: success()
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
- - name: Set up QEMU
|
||
|
||
- uses: docker/setup-qemu-action@v3
|
||
|
||
-
|
||
|
||
- - name: Production Image Build
|
||
|
||
- if: success()
|
||
|
||
- id: build-image
|
||
|
||
- uses: docker/build-push-action@v6
|
||
|
||
- with:
|
||
|
||
- platforms: linux/amd64,linux/arm64
|
||
|
||
- - name: UI Tests
|
||
|
||
- if: success()
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
CHANGED: .github/workflows/releases.yml —
|
||
mkilijanek/.github/workflows/releases.yml +++
|
||
gchq/.github/workflows/releases.yml @@ -4,7 +4,10 @@ workflow_dispatch:
|
||
|
||
push:
|
||
|
||
tags:
|
||
|
||
- - ’v*’
|
||
|
||
- - "v*"
|
||
|
||
-
|
||
|
||
+permissions:
|
||
|
||
- contents: read
|
||
|
||
env:
|
||
|
||
REGISTRY: ghcr.io
|
||
|
||
@@ -14,83 +17,110 @@
|
||
|
||
jobs:
|
||
|
||
main:
|
||
|
||
- permissions:
|
||
|
||
- packages: write
|
||
|
||
- contents: write
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
|
||
- - uses: actions/checkout@v3
|
||
|
||
- - uses: actions/checkout@v6
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v3
|
||
|
||
- with:
|
||
|
||
- node-version: '18.x'
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v6
|
||
|
||
- with:
|
||
|
||
- node-version: 18
|
||
|
||
- registry-url: "https://registry.npmjs.org"
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm ci
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Install
|
||
|
||
- run: |
|
||
|
||
- export DETECT_CHROMEDRIVER_VERSION=true
|
||
|
||
- npm ci
|
||
|
||
- npm run setheapsize
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Lint
|
||
|
||
- run: npx grunt lint
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Unit Tests
|
||
|
||
- run: |
|
||
|
||
- npm test
|
||
|
||
- npm run testnodeconsumer
|
||
|
||
- - name: Production Build
|
||
|
||
- run: npx grunt prod
|
||
|
||
- - name: Production Build
|
||
|
||
- run: npx grunt prod
|
||
|
||
- - name: UI Tests
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
- - name: UI Tests
|
||
|
||
- run: |
|
||
|
||
- sudo apt-get install xvfb
|
||
|
||
- xvfb-run --server-args="-screen 0 1200x800x24" npx grunt testui
|
||
|
||
- - name: Image Metadata
|
||
|
||
- id: image-metadata
|
||
|
||
- uses: docker/metadata-action@v4
|
||
|
||
- with:
|
||
|
||
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||
|
||
- tags: |
|
||
|
||
- type=semver,pattern={{major}}
|
||
|
||
- type=semver,pattern={{major}}.{{minor}}
|
||
|
||
- type=semver,pattern={{version}}
|
||
|
||
- - name: Set up Docker Buildx
|
||
|
||
- uses: docker/setup-buildx-action@v3
|
||
|
||
- - name: Production Image Build
|
||
|
||
- id: build-image
|
||
|
||
- uses: redhat-actions/buildah-build@v2
|
||
|
||
- with:
|
||
|
||
- tags: ${{ steps.image-metadata.outputs.tags }}
|
||
|
||
- labels: ${{ steps.image-metadata.outputs.labels }}
|
||
|
||
- containerfiles: ./Dockerfile
|
||
|
||
- platforms: linux/amd64,linux/arm64
|
||
|
||
- oci: true
|
||
|
||
- # enable build layer caching between platforms
|
||
|
||
- layers: true
|
||
|
||
- # Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
|
||
|
||
- extra-args: |
|
||
|
||
- --ulimit nofile=10000
|
||
|
||
- - name: Set up QEMU
|
||
|
||
- uses: docker/setup-qemu-action@v3
|
||
|
||
- - name: Publish to GHCR
|
||
|
||
- uses: redhat-actions/push-to-registry@v2
|
||
|
||
- with:
|
||
|
||
- image: ${{ steps.build-image.outputs.image }}
|
||
|
||
- tags: ${{ steps.build-image.outputs.tags }}
|
||
|
||
- registry: ${{ env.REGISTRY }}
|
||
|
||
- username: ${{ env.REGISTRY_USER }}
|
||
|
||
- password: ${{ env.REGISTRY_PASSWORD }}
|
||
|
||
- - name: Image Metadata
|
||
|
||
- id: image-metadata
|
||
|
||
- uses: docker/metadata-action@v4
|
||
|
||
- with:
|
||
|
||
- images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||
|
||
- tags: |
|
||
|
||
- type=semver,pattern={{major}}
|
||
|
||
- type=semver,pattern={{major}}.{{minor}}
|
||
|
||
- type=semver,pattern={{version}}
|
||
|
||
- - name: Upload Release Assets
|
||
|
||
- id: upload-release-assets
|
||
|
||
- uses: svenstaro/upload-release-action@v2
|
||
|
||
- with:
|
||
|
||
- repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
- file: build/prod/*.zip
|
||
|
||
- tag: ${{ github.ref }}
|
||
|
||
- overwrite: true
|
||
|
||
- file_glob: true
|
||
|
||
- body: "See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details."
|
||
|
||
- - name: Log in to GHCR
|
||
|
||
- uses: docker/login-action@v3
|
||
|
||
- with:
|
||
|
||
- registry: ${{ env.REGISTRY }}
|
||
|
||
- username: ${{ env.REGISTRY_USER }}
|
||
|
||
- password: ${{ env.REGISTRY_PASSWORD }}
|
||
|
||
- - name: Publish to NPM
|
||
|
||
- uses: JS-DevTools/npm-publish@v1
|
||
|
||
- with:
|
||
|
||
- token: ${{ secrets.NPM_TOKEN }}
|
||
|
||
- - name: Publish to GHCR
|
||
|
||
- uses: docker/build-push-action@v6
|
||
|
||
- with:
|
||
|
||
- context: .
|
||
|
||
- push: true
|
||
|
||
- tags: ${{ steps.image-metadata.outputs.tags }}
|
||
|
||
- labels: ${{ steps.image-metadata.outputs.labels }}
|
||
|
||
- platforms: linux/amd64,linux/arm64
|
||
|
||
-
|
||
|
||
- - name: Upload Release Assets
|
||
|
||
- id: upload-release-assets
|
||
|
||
- uses: svenstaro/upload-release-action@v2
|
||
|
||
- with:
|
||
|
||
- repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
- file: build/prod/*.zip
|
||
|
||
- tag: ${{ github.ref }}
|
||
|
||
- overwrite: true
|
||
|
||
- file_glob: true
|
||
|
||
- body: "See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details."
|
||
|
||
-
|
||
|
||
- npm-publish:
|
||
|
||
- permissions:
|
||
|
||
- id-token: write
|
||
|
||
- contents: read
|
||
|
||
- needs: main
|
||
|
||
- runs-on: ubuntu-latest
|
||
|
||
- steps:
|
||
|
||
- - uses: actions/checkout@v6
|
||
|
||
-
|
||
|
||
- - name: Set node version
|
||
|
||
- uses: actions/setup-node@v6
|
||
|
||
- with:
|
||
|
||
- node-version: 18
|
||
|
||
- registry-url: "https://registry.npmjs.org"
|
||
|
||
-
|
||
|
||
- - name: Install
|
||
|
||
- run: npm ci
|
||
|
||
-
|
||
|
||
- - name: Create machine generated files
|
||
|
||
- run: npm run node
|
||
|
||
-
|
||
|
||
- - name: Reset node version ready for publish
|
||
|
||
- uses: actions/setup-node@v6
|
||
|
||
- with:
|
||
|
||
- node-version: ^24.5
|
||
|
||
- registry-url: "https://registry.npmjs.org"
|
||
|
||
-
|
||
|
||
- - name: Publish to NPM
|
||
|
||
- run: npm publish
|
||
|
||
REMOVED in gchq (exists in mkilijanek):
|
||
.github/workflows/security-auto-fix.yml
|
||
|
||
CHANGED: CHANGELOG.md — mkilijanek/CHANGELOG.md +++ gchq/CHANGELOG.md @@
|
||
-12,6 +12,104 @@
|
||
|
||
## Details
|
||
|
||
-
|
||
|
||
+### [10.22.0] - 2026-02-11
|
||
|
||
+- Separate npm publish out into separate job and run with Node 24.5
|
||
[@GCHQDeveloper581] | [#2188]
|
||
|
||
+- Fixed Percent delimiter for hex encoding [@beneri] [@C85297] |
|
||
[#2137]
|
||
|
||
+- Added the ability to paste one or more Images from the Clipboard
|
||
[@t-martine] [@a3957273] [@C85297] | [#1876]
|
||
|
||
+- Quoted Printable - consistent reference to ‘email’ [@wesinator] |
|
||
[#2186]
|
||
|
||
+- Fix freeze when output text decoding fails [@Raka-loah] | [#1573]
|
||
|
||
+- Update Browserslist DB [@C85297] | [#2183]
|
||
|
||
+- Add contents write permission to releases workflow [@C85297] |
|
||
[#2182]
|
||
|
||
+- Fix release workflow permissions [@C85297] | [#2181]
|
||
|
||
-
|
||
|
||
+### [10.21.0] - 2026-02-05
|
||
|
||
+- Fix import operations with special chars in them [@d98762625]
|
||
[@jg42526] | [#1040]
|
||
|
||
+- Remove custom CodeQL workflow [@C85297] | [#2176]
|
||
|
||
+- Fix code scanning warnings in workflows [@GCHQDeveloper581] | [#2177]
|
||
|
||
+- Use NPM trusted publishing [@C85297] [@GCHQDeveloper581] | [#2174]
|
||
|
||
+- Fix: Correctly parse xxd odd byte hexdumps [@ThomasNotTom]
|
||
[@GCHQDeveloper581] | [#2058]
|
||
|
||
+- Update Sitemap URLs to Use Valid Paths in sitemap.mjs [@rbpi]
|
||
[@C85297] | [#1861]
|
||
|
||
+- Use recommended GitHub Actions to build image [@AlexGustafsson]
|
||
[@C85297] | [#2055]
|
||
|
||
+- Remove version 10 message from banner [@C85297] | [#2169]
|
||
|
||
+- Bump form-data from 4.0.1 to 4.0.5 | [#2175]
|
||
|
||
+- Bump node-forge from 1.3.1 to 1.3.3 | [#2173]
|
||
|
||
+- Update crypto browserify [@C85297] | [#2172]
|
||
|
||
+- Update kbpgp package (resolves #2135) [@GCHQDeveloper581] | [#2136]
|
||
|
||
+- Fix the processing of ALPNs for JA4 to align with new specification
|
||
update [@tuliperis] | [#2165]
|
||
|
||
+- Add Bech32 and Bech32m encoding/decoding operations [@thomasxm] |
|
||
[#2159]
|
||
|
||
+- Exclude Delete character from hex dump output [@mikecat] [@C85297] |
|
||
[#2086]
|
||
|
||
+- Tiny typo fix in “To Base85” operation [@twostraws] | [#2118]
|
||
|
||
+- Bump jsonpath-plus [@C85297] | [#2166]
|
||
|
||
-
|
||
|
||
+### [10.20.0] - 2026-01-28
|
||
|
||
+- Fixed Optical Character Recognition and added tests [@n1474335] |
|
||
[ab37c1e]
|
||
|
||
+- Fixed JA4 version fallback value [@n1474335] | [7a5225c]
|
||
|
||
+- Updated chromedriver [@n1474335] | [0e82e4b]
|
||
|
||
+- Fixed RSA Sign and Verify character encodings [@n1474335] | [895a929]
|
||
|
||
+- Updated chromedriver [@n1474335] | [d3adfc7]
|
||
|
||
+- Added message format arg to RSA Verify operation [@n1474335] |
|
||
[47c85a1]
|
||
|
||
+- Add operation for parsing X.509 CRLs [@robinsandhu] | [#1887]
|
||
|
||
+- Fix typo in description of JWT Sign recipe [@GuilhermoReadonly] |
|
||
[#1961]
|
||
|
||
+- Corrected path to generateNodeIndex.mjs [@simonarnell] | [#1959]
|
||
|
||
+- Add ‘header’ ingredient to JWT Sign operation [@RandomByte] | [#1957]
|
||
|
||
+- Add Parse TLS record operation [@c65722] | [#1936]
|
||
|
||
+- Automatically detect chrome driver version [@gchq] | [#1972]
|
||
|
||
+- Add Strip UDP header operation [@c65722] | [#1900]
|
||
|
||
+- Add Strip TCP header operation [@c65722] | [#1898]
|
||
|
||
+- Webpack compress with gzip and brotli [@max0x53] | [#1955]
|
||
|
||
+- add offset field to ‘Add Line Numbers’ operation [@Adamkadaban] |
|
||
[#1866]
|
||
|
||
+- Disable flakey URL test [@a3957273] | [#1973]
|
||
|
||
+- Add Strip IPv4 header operation [@c65722] | [#1899]
|
||
|
||
+- IPv6 Transition Operation [@jb30795] | [#1780]
|
||
|
||
+- fix: Blowfish - ignore IV length in ECB mode [@FranciscoPombal] |
|
||
[#1902]
|
||
|
||
+- Add ‘Drop nth bytes’ operation [@Oshawk] | [#1914]
|
||
|
||
+- Add ‘Take nth bytes’ operation [@Oshawk] | [#1915]
|
||
|
||
+- Add Leet Speak [@bartblaze] | [#1971]
|
||
|
||
+- Fix Generate TOTP & HOPT [@exactlyaron] | [#1966]
|
||
|
||
+- Updated luhn checksum operation to work with different bases [@k3ach]
|
||
| [#1933]
|
||
|
||
+- automatically theme mode based on user preference [@vs4vijay] |
|
||
[#1921]
|
||
|
||
+- fix: DES/Triple DES - misleading error messages [@FranciscoPombal] |
|
||
[#1904]
|
||
|
||
+- fix: ROT13 - shifting numbers by negative amounts [@FranciscoPombal]
|
||
| [#1903]
|
||
|
||
+- Introduce Yubico’s Modhex for Conversion [@linuxgemini] | [#1105]
|
||
|
||
+- Feature: MIME RFC2047 Decoding [@MShwed] | [#630]
|
||
|
||
+- CC-1889 add _ option [@depperm] | [#1977]
|
||
|
||
+- chore(root): add cspell [@evenstensberg] | [#1976]
|
||
|
||
+- Preserve uppercase for Leet Speak [@bartblaze] | [#1981]
|
||
|
||
+- Load the user’s preferred color scheme if the URL contains an invalid
|
||
theme [@0xh3xa] | [#2007]
|
||
|
||
+- Add SM2 Encrypt and Decrypt Operations [@flakjacket95] | [#1909]
|
||
|
||
+- Support jq as an operation. [@zhzy0077] | [#1604]
|
||
|
||
+- Add fingerprints to the ‘Parse X.509 certificate’ operation
|
||
[@JSCU-CNI] | [#1863]
|
||
|
||
+- Added a JSON to YAML and a YAML to JSON operation [@ccarpo] | [#1286]
|
||
|
||
+- Add CRC Operation [@r4mos] | [#1993]
|
||
|
||
+- Bug Fix: selected theme not loading when refreshing [@0xh3xa] |
|
||
[#2006]
|
||
|
||
+- Fix(RecipeWaiter): sanitize user input in addOperation to prevent XSS
|
||
[@0xh3xa] | [#2014]
|
||
|
||
+- Docker multiplatform build support [@PathToLife] | [#1974]
|
||
|
||
+- Add Base32 Hex Extended Alphabet and Base32 Tests. [@peterc-s] |
|
||
[#1991]
|
||
|
||
+- Add ECB/NoPadding and CBC/NoPadding support to AES encryption
|
||
[@plvie] | [#2013]
|
||
|
||
+- Add new operation: PHP Serialize [@brun0ne] | [#1548]
|
||
|
||
+- Push input through postmessage [@kenduguay1] | [#1992]
|
||
|
||
+- Add jsonata query operation [@jonking-ajar] | [#1587]
|
||
|
||
+- Re-enable Npm Release in github workflows [@PathToLife] | [#2031]
|
||
|
||
+- Add to ECDSA Verify the message format [@r4mos] | [#2027]
|
||
|
||
+- Added alternating caps functionality [@sw5678] | [#1897]
|
||
|
||
+- XOR Checksum operation added [@jg42526] | [#2035]
|
||
|
||
+- Add GenerateAllChecksums operation * Remove checksums from
|
||
GenerateAllHashes operation [@es45411] | [66d445c]
|
||
|
||
+- Update GenerateAllChecksums infoURL [@es45411] | [#2037]
|
||
|
||
+- Add toggle “+” character to URLDecode operation [@es45411] | [#2040]
|
||
|
||
+- Workaround for Safari load bug [@GCHQDeveloper94872] | [#2038]
|
||
|
||
+- Updated Dockerfile to correctly build on ARM64 platforms [@Sma-Das] |
|
||
[#2042]
|
||
|
||
+- Addresses bug report #2008 Added explicit support for octal IP
|
||
addresses. Changed approach to IPv4 regex to be string manipulation
|
||
generated. Added some unit tests for IP address parsing - probably not
|
||
full coverage. Added lookahead and lookbehind tricks to resolve warned
|
||
issue that 1.2.3.256 would still be extracted as 1.2.3.25. Now only
|
||
accepts valid IP addresses. Warning replaced with clause about infinite
|
||
length dotted decimal forms. [@gchqdev364] | [#2041]
|
||
|
||
+- Remove trim from rail fence [@Odyhibit] | [#1986]
|
||
|
||
+- Fix email regex [@ericli-splunk] | [#2025]
|
||
|
||
+- Add Blake3 hashing [@xumptex] | [#2023]
|
||
|
||
+- Use defaultIndex instead of 0 in transformArgs [@bartvanandel] |
|
||
[#2015]
|
||
|
||
+- Add “Generate UUID” and “Analyse UUID” operations [@bartvanandel] |
|
||
[#2011]
|
||
|
||
+- Add new operation: Template [@kendallgoto] | [#2021]
|
||
|
||
+- Add more clear build instructions [@remingtr] | [#1873]
|
||
|
||
+- Show On Map updated to use leaflet over WikiMedia [@0xff1ce] |
|
||
[#1884]
|
||
|
||
+- Fixed ToDecimal signed logic [@starplanet] | [#1545]
|
||
|
||
+- Use BigInt for encoding/decoding VarInt [@mikecat] | [#1978]
|
||
|
||
### 10.19.0 - 2024-06-21
|
||
|
||
- Add support for ECDSA and DSA in ‘Parse CSR’ [@robinsandhu] |
|
||
[#1828]
|
||
|
||
@@ -440,6 +538,9 @@ ## [4.0.0] - 2016-11-28
|
||
|
||
- Initial open source commit [@n1474335] | b1d73a72
|
||
|
||
+[10.22.0]: https://github.com/gchq/CyberChef/releases/tag/v10.22.0
|
||
|
||
+[10.21.0]: https://github.com/gchq/CyberChef/releases/tag/v10.21.0
|
||
|
||
+[10.20.0]: https://github.com/gchq/CyberChef/releases/tag/v10.20.0
|
||
|
||
@@ -630,6 +731,72 @@ [@cplussharp]: https://github.com/cplussharp
|
||
|
||
[@robinsandhu]: https://github.com/robinsandhu
|
||
|
||
[@eltociear]: https://github.com/eltociear
|
||
|
||
+[@GuilhermoReadonly]: https://github.com/GuilhermoReadonly
|
||
|
||
+[@simonarnell]: https://github.com/simonarnell
|
||
|
||
+[@RandomByte]: https://github.com/RandomByte
|
||
|
||
+[@c65722]: https://github.com/c65722
|
||
|
||
+[@c65722]: https://github.com/c65722
|
||
|
||
+[@c65722]: https://github.com/c65722
|
||
|
||
+[@max0x53]: https://github.com/max0x53
|
||
|
||
+[@Adamkadaban]: https://github.com/Adamkadaban
|
||
|
||
+[@c65722]: https://github.com/c65722
|
||
|
||
+[@jb30795]: https://github.com/jb30795
|
||
|
||
+[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||
|
||
+[@Oshawk]: https://github.com/Oshawk
|
||
|
||
+[@Oshawk]: https://github.com/Oshawk
|
||
|
||
+[@bartblaze]: https://github.com/bartblaze
|
||
|
||
+[@exactlyaron]: https://github.com/exactlyaron
|
||
|
||
+[@k3ach]: https://github.com/k3ach
|
||
|
||
+[@vs4vijay]: https://github.com/vs4vijay
|
||
|
||
+[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||
|
||
+[@FranciscoPombal]: https://github.com/FranciscoPombal
|
||
|
||
+[@linuxgemini]: https://github.com/linuxgemini
|
||
|
||
+[@depperm]: https://github.com/depperm
|
||
|
||
+[@evenstensberg]: https://github.com/evenstensberg
|
||
|
||
+[@bartblaze]: https://github.com/bartblaze
|
||
|
||
+[@0xh3xa]: https://github.com/0xh3xa
|
||
|
||
+[@flakjacket95]: https://github.com/flakjacket95
|
||
|
||
+[@zhzy0077]: https://github.com/zhzy0077
|
||
|
||
+[@JSCU-CNI]: https://github.com/JSCU-CNI
|
||
|
||
+[@ccarpo]: https://github.com/ccarpo
|
||
|
||
+[@r4mos]: https://github.com/r4mos
|
||
|
||
+[@0xh3xa]: https://github.com/0xh3xa
|
||
|
||
+[@0xh3xa]: https://github.com/0xh3xa
|
||
|
||
+[@PathToLife]: https://github.com/PathToLife
|
||
|
||
+[@peterc-s]: https://github.com/peterc-s
|
||
|
||
+[@plvie]: https://github.com/plvie
|
||
|
||
+[@kenduguay1]: https://github.com/kenduguay1
|
||
|
||
+[@jonking-ajar]: https://github.com/jonking-ajar
|
||
|
||
+[@PathToLife]: https://github.com/PathToLife
|
||
|
||
+[@r4mos]: https://github.com/r4mos
|
||
|
||
+[@jg42526]: https://github.com/jg42526
|
||
|
||
+[@es45411]: https://github.com/es45411
|
||
|
||
+[@gchq]: https://github.com/gchq
|
||
|
||
+[@gchqdev364]: https://github.com/gchqdev364
|
||
|
||
+[@GCHQDeveloper94872]: https://github.com/GCHQDeveloper94872
|
||
|
||
+[@Sma-Das]: https://github.com/Sma-Das
|
||
|
||
+[@gchq]: https://github.com/gchq
|
||
|
||
+[@Odyhibit]: https://github.com/Odyhibit
|
||
|
||
+[@ericli-splunk]: https://github.com/ericli-splunk
|
||
|
||
+[@xumptex]: https://github.com/xumptex
|
||
|
||
+[@bartvanandel]: https://github.com/bartvanandel
|
||
|
||
+[@bartvanandel]: https://github.com/bartvanandel
|
||
|
||
+[@kendallgoto]: https://github.com/kendallgoto
|
||
|
||
+[@remingtr]: https://github.com/remingtr
|
||
|
||
+[@0xff1ce]: https://github.com/0xff1ce
|
||
|
||
+[@starplanet]: https://github.com/starplanet
|
||
|
||
+[@C85297]: https://github.com/C85297
|
||
|
||
+[@GCHQDeveloper581]: https://github.com/GCHQDeveloper581
|
||
|
||
+[@ThomasNotTom]: https://github.com/ThomasNotTom
|
||
|
||
+[@rbpi]: https://github.com/rbpi
|
||
|
||
+[@AlexGustafsson]: https://github.com/AlexGustafsson
|
||
|
||
+[@tuliperis]: https://github.com/tuliperis
|
||
|
||
+[@thomasxm]: https://github.com/thomasxm
|
||
|
||
+[@twostraws]: https://github.com/twostraws
|
||
|
||
+[@beneri]: https://github.com/beneri
|
||
|
||
+[@t-martine]: https://github.com/t-martine
|
||
|
||
+[@wesinator]: https://github.com/wesinator
|
||
|
||
+[@Raka-loah]: https://github.com/Raka-loah
|
||
|
||
@@ -642,6 +809,46 @@ [760eff4]:
|
||
https://github.com/gchq/CyberChef/commit/760eff49b5307aaa3104c5e5b437ffe62299acd1
|
||
|
||
+[66d445c]:
|
||
https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||
|
||
+[ab37c1e]:
|
||
https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||
|
||
+[965570d]:
|
||
https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||
|
||
+[a477f47]:
|
||
https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||
|
||
+[7a5225c]:
|
||
https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||
|
||
+[5f88ae4]:
|
||
https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||
|
||
+[0e82e4b]:
|
||
https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||
|
||
+[d635cca]:
|
||
https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||
|
||
+[895a929]:
|
||
https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||
|
||
+[270a333]:
|
||
https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||
|
||
+[d3adfc7]:
|
||
https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||
|
||
+[47c85a1]:
|
||
https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||
|
||
+[3822c6c]:
|
||
https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||
|
||
+[66d445c]:
|
||
https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||
|
||
+[ab37c1e]:
|
||
https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||
|
||
+[965570d]:
|
||
https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||
|
||
+[a477f47]:
|
||
https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||
|
||
+[7a5225c]:
|
||
https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||
|
||
+[5f88ae4]:
|
||
https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||
|
||
+[0e82e4b]:
|
||
https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||
|
||
+[d635cca]:
|
||
https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||
|
||
+[895a929]:
|
||
https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||
|
||
+[270a333]:
|
||
https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||
|
||
+[d3adfc7]:
|
||
https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||
|
||
+[47c85a1]:
|
||
https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||
|
||
+[3822c6c]:
|
||
https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||
|
||
+[66d445c]:
|
||
https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||
|
||
+[ab37c1e]:
|
||
https://github.com/gchq/CyberChef/commit/ab37c1e562dbee0495ed32876ecbb8225282af25
|
||
|
||
+[965570d]:
|
||
https://github.com/gchq/CyberChef/commit/965570d2504c17ee1f96211a1dc10ed40cd2b332
|
||
|
||
+[a477f47]:
|
||
https://github.com/gchq/CyberChef/commit/a477f47aecd01d78b11fe186ed4b20d9c487cfac
|
||
|
||
+[7a5225c]:
|
||
https://github.com/gchq/CyberChef/commit/7a5225c961a5e0d192b03152117cd10a761f73d6
|
||
|
||
+[5f88ae4]:
|
||
https://github.com/gchq/CyberChef/commit/5f88ae44ec77228d9bed8f11e8cc8e7dcfb36914
|
||
|
||
+[0e82e4b]:
|
||
https://github.com/gchq/CyberChef/commit/0e82e4b7c6c77cadb8be61cb145e081d6ecfdc88
|
||
|
||
+[d635cca]:
|
||
https://github.com/gchq/CyberChef/commit/d635cca2106aae2a59caf0e5d7e3633ee1ea3155
|
||
|
||
+[895a929]:
|
||
https://github.com/gchq/CyberChef/commit/895a9299255525cb57886deb9d9fd4ba17ae9548
|
||
|
||
+[270a333]:
|
||
https://github.com/gchq/CyberChef/commit/270a33317944612d27ea1cc15275ad6b0ed097e5
|
||
|
||
+[d3adfc7]:
|
||
https://github.com/gchq/CyberChef/commit/d3adfc7c3e5719279524356bce5261bd8350c0f8
|
||
|
||
+[47c85a1]:
|
||
https://github.com/gchq/CyberChef/commit/47c85a105ddbdd4cabfa44ddddbc56e3907a8c33
|
||
|
||
+[3822c6c]:
|
||
https://github.com/gchq/CyberChef/commit/3822c6c520a0b4200abc675c33f46082f5b9efc6
|
||
|
||
+[66d445c]:
|
||
https://github.com/gchq/CyberChef/commit/66d445c5ef4e8bd896fd15396e3ce2d660d8ace1
|
||
|
||
@@ -778,4 +985,29 @@ [#512]:
|
||
https://github.com/gchq/CyberChef/issues/512
|
||
|
||
-
|
||
|
||
+[#1040]: https://github.com/gchq/CyberChef/pull/1040
|
||
|
||
+[#2176]: https://github.com/gchq/CyberChef/pull/2176
|
||
|
||
+[#2177]: https://github.com/gchq/CyberChef/pull/2177
|
||
|
||
+[#2174]: https://github.com/gchq/CyberChef/pull/2174
|
||
|
||
+[#2058]: https://github.com/gchq/CyberChef/pull/2058
|
||
|
||
+[#1861]: https://github.com/gchq/CyberChef/pull/1861
|
||
|
||
+[#2055]: https://github.com/gchq/CyberChef/pull/2055
|
||
|
||
+[#2169]: https://github.com/gchq/CyberChef/pull/2169
|
||
|
||
+[#2175]: https://github.com/gchq/CyberChef/pull/2175
|
||
|
||
+[#2173]: https://github.com/gchq/CyberChef/pull/2173
|
||
|
||
+[#2172]: https://github.com/gchq/CyberChef/pull/2172
|
||
|
||
+[#2136]: https://github.com/gchq/CyberChef/pull/2136
|
||
|
||
+[#2165]: https://github.com/gchq/CyberChef/pull/2165
|
||
|
||
+[#2159]: https://github.com/gchq/CyberChef/pull/2159
|
||
|
||
+[#2086]: https://github.com/gchq/CyberChef/pull/2086
|
||
|
||
+[#2118]: https://github.com/gchq/CyberChef/pull/2118
|
||
|
||
+[#2166]: https://github.com/gchq/CyberChef/pull/2166
|
||
|
||
+[#2188]: https://github.com/gchq/CyberChef/pull/2188
|
||
|
||
+[#2137]: https://github.com/gchq/CyberChef/pull/2137
|
||
|
||
+[#1876]: https://github.com/gchq/CyberChef/pull/1876
|
||
|
||
+[#2186]: https://github.com/gchq/CyberChef/pull/2186
|
||
|
||
+[#1573]: https://github.com/gchq/CyberChef/pull/1573
|
||
|
||
+[#2183]: https://github.com/gchq/CyberChef/pull/2183
|
||
|
||
+[#2182]: https://github.com/gchq/CyberChef/pull/2182
|
||
|
||
+[#2181]: https://github.com/gchq/CyberChef/pull/2181
|
||
|
||
-
|
||
|
||
CHANGED: Dockerfile — mkilijanek/Dockerfile +++ gchq/Dockerfile @@ -27,9
|
||
+27,6 @@ #########################################
|
||
|
||
# Package static build files into nginx #
|
||
|
||
#########################################
|
||
|
||
-# We are using Github Actions: redhat-actions/buildah-build@v2 which
|
||
needs manual selection of arch in base image
|
||
|
||
-# Remove TARGETARCH if docker buildx is supported in the CI release as
|
||
–platform=$TARGETPLATFORM will be automatically set
|
||
|
||
-ARG TARGETPLATFORM
|
||
|
||
-FROM –platform=${TARGETPLATFORM} nginx:stable-alpine AS cyberchef
|
||
|
||
+FROM nginx:stable-alpine AS cyberchef
|
||
|
||
COPY –from=builder /app/build/prod /usr/share/nginx/html/
|
||
|
||
REMOVED in gchq (exists in mkilijanek): Makefile REMOVED in gchq (exists
|
||
in mkilijanek): SECURITY_ANALYSIS.md REMOVED in gchq (exists in
|
||
mkilijanek): SECURITY_AUTOMATION.md REMOVED in gchq (exists in
|
||
mkilijanek): SECURITY_FIXES_APPLIED.md REMOVED in gchq (exists in
|
||
mkilijanek): SECURITY_QUICK_START.md
|
||
|
||
CHANGED: package-lock.json — mkilijanek/package-lock.json +++
|
||
gchq/package-lock.json @@ -1,12 +1,12 @@ {
|
||
|
||
“name”: “cyberchef”,
|
||
|
||
- “version”: “10.19.4”,
|
||
|
||
- “version”: “10.22.1”,
|
||
|
||
“lockfileVersion”: 3,
|
||
|
||
“requires”: true,
|
||
|
||
“packages”: {
|
||
|
||
““: {
|
||
|
||
"name": "cyberchef",
|
||
|
||
- "version": "10.19.4",
|
||
|
||
- "version": "10.22.1",
|
||
|
||
"hasInstallScript": true,
|
||
|
||
"license": "Apache-2.0",
|
||
|
||
"dependencies": {
|
||
|
||
@@ -31,7 +31,7 @@ “chi-squared”: “^1.1.0”,
|
||
|
||
"codepage": "^1.15.0",
|
||
|
||
"crypto-api": "^0.8.5",
|
||
|
||
- "crypto-browserify": "^3.12.0",
|
||
|
||
- "crypto-browserify": "^3.12.1",
|
||
|
||
"crypto-js": "^4.2.0",
|
||
|
||
"ctph.js": "0.0.5",
|
||
|
||
"d3": "7.9.0",
|
||
|
||
@@ -58,10 +58,10 @@ “json5”: “^2.2.3”,
|
||
|
||
"jsonata": "^2.0.3",
|
||
|
||
"jsonpath-plus": "^10.3.0",
|
||
|
||
- "jsonwebtoken": "9.0.0",
|
||
|
||
- "jsonwebtoken": "8.5.1",
|
||
|
||
"jsqr": "^1.4.0",
|
||
|
||
"jsrsasign": "^11.1.0",
|
||
|
||
- "kbpgp": "2.1.15",
|
||
|
||
- "kbpgp": "^2.1.17",
|
||
|
||
"libbzip2-wasm": "0.0.4",
|
||
|
||
"libyara-wasm": "^1.2.1",
|
||
|
||
"lodash": "^4.17.21",
|
||
|
||
@@ -156,7 +156,7 @@ “terser”: “^5.31.1”,
|
||
|
||
"webpack": "^5.91.0",
|
||
|
||
"webpack-bundle-analyzer": "^4.10.2",
|
||
|
||
- "webpack-dev-server": "5.2.1",
|
||
|
||
- "webpack-dev-server": "5.0.4",
|
||
|
||
"webpack-node-externals": "^3.0.0",
|
||
|
||
"worker-loader": "^3.0.8"
|
||
|
||
}
|
||
|
||
@@ -255,7 +255,6 @@ “integrity”:
|
||
“sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@ampproject/remapping": "^2.2.0",
|
||
|
||
"@babel/code-frame": "^7.26.0",
|
||
|
||
@@ -1744,16 +1743,23 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/@babel/runtime-corejs3": {
|
||
|
||
- "version": "7.28.4",
|
||
|
||
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz",
|
||
|
||
- "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "core-js-pure": "^3.43.0"
|
||
|
||
- "version": "7.26.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz",
|
||
|
||
- "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "core-js-pure": "^3.30.2",
|
||
|
||
- "regenerator-runtime": "^0.14.0"
|
||
|
||
},
|
||
|
||
"engines": {
|
||
|
||
"node": ">=6.9.0"
|
||
|
||
}
|
||
|
||
- },
|
||
|
||
- “node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime”:
|
||
{
|
||
|
||
- "version": "0.14.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
||
|
||
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/@babel/runtime/node_modules/regenerator-runtime”: {
|
||
|
||
"version": "0.14.1",
|
||
|
||
@@ -2098,8 +2104,7 @@ “resolved”:
|
||
“https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.17.tgz”,
|
||
|
||
"integrity": "sha512-2EisRLHk6X/PdicybwlajLGKF5aJf4xnX2uuG5lexuYKt05xV/J/OiBADmi8q9obhxf1nesrMQbqAt+6CsHo/w==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/@cspell/dict-dart”: {
|
||
|
||
"version": "2.3.0",
|
||
|
||
@@ -2239,16 +2244,14 @@ “resolved”:
|
||
“https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.11.tgz”,
|
||
|
||
"integrity": "sha512-QR3b/PB972SRQ2xICR1Nw/M44IJ6rjypwzA4jn+GH8ydjAX9acFNfc+hLZVyNe0FqsE90Gw3evLCOIF0vy1vQw==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/@cspell/dict-html-symbol-entities”: {
|
||
|
||
"version": "4.0.3",
|
||
|
||
"resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.3.tgz",
|
||
|
||
"integrity": "sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/@cspell/dict-java”: {
|
||
|
||
"version": "5.0.11",
|
||
|
||
@@ -2446,8 +2449,7 @@ “resolved”:
|
||
“https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.0.tgz”,
|
||
|
||
"integrity": "sha512-Pk3zNePLT8qg51l0M4g1ISowYAEGxTuNfZlgkU5SvHa9Cu7x/BWoyYq9Fvc3kAyoisCjRPyvWF4uRYrPitPDFw==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/@cspell/dict-vue”: {
|
||
|
||
"version": "3.0.4",
|
||
|
||
@@ -2588,7 +2590,6 @@ }
|
||
|
||
],
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"engines": {
|
||
|
||
"node": ">=18"
|
||
|
||
},
|
||
|
||
@@ -2612,7 +2613,6 @@ }
|
||
|
||
],
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"engines": {
|
||
|
||
"node": ">=18"
|
||
|
||
}
|
||
|
||
@@ -2847,6 +2847,109 @@ “funding”: {
|
||
|
||
"type": "github",
|
||
|
||
"url": "https://github.com/sponsors/nzakas"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui”: {
|
||
|
||
- "version": "8.0.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
||
|
||
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "dependencies": {
|
||
|
||
- "string-width": "^5.1.2",
|
||
|
||
- "string-width-cjs": "npm:string-width@^4.2.0",
|
||
|
||
- "strip-ansi": "^7.0.1",
|
||
|
||
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
|
||
|
||
- "wrap-ansi": "^8.1.0",
|
||
|
||
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/ansi-regex”: {
|
||
|
||
- "version": "6.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
|
||
|
||
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/ansi-styles”: {
|
||
|
||
- "version": "6.2.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
|
||
|
||
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/emoji-regex”: {
|
||
|
||
- "version": "9.2.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||
|
||
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/string-width”: {
|
||
|
||
- "version": "5.1.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
||
|
||
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "eastasianwidth": "^0.2.0",
|
||
|
||
- "emoji-regex": "^9.2.2",
|
||
|
||
- "strip-ansi": "^7.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/sindresorhus"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/strip-ansi”: {
|
||
|
||
- "version": "7.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
||
|
||
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-regex": "^6.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/@isaacs/cliui/node_modules/wrap-ansi”: {
|
||
|
||
- "version": "8.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||
|
||
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-styles": "^6.1.0",
|
||
|
||
- "string-width": "^5.0.1",
|
||
|
||
- "strip-ansi": "^7.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/@jimp/bmp”: {
|
||
|
||
@@ -2907,7 +3010,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/core": "^0.22.12"
|
||
|
||
}
|
||
|
||
@@ -2944,7 +3046,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -2957,7 +3058,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -2982,7 +3082,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12",
|
||
|
||
"tinycolor2": "^1.6.0"
|
||
|
||
@@ -3026,7 +3125,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -3150,7 +3248,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -3163,7 +3260,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -3179,7 +3275,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz”,
|
||
|
||
"integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@jimp/utils": "^0.22.12"
|
||
|
||
},
|
||
|
||
@@ -3887,6 +3982,17 @@ “node”: “>= 8”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/@pkgjs/parseargs”: {
|
||
|
||
- "version": "0.11.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||
|
||
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "optional": true,
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=14"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/@pkgr/core”: {
|
||
|
||
“version”: “0.1.1”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz”,
|
||
|
||
@@ -4508,7 +4614,6 @@ “integrity”:
|
||
“sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"bin": {
|
||
|
||
"acorn": "bin/acorn"
|
||
|
||
},
|
||
|
||
@@ -4555,7 +4660,6 @@ “integrity”:
|
||
“sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"fast-deep-equal": "^3.1.1",
|
||
|
||
"fast-json-stable-stringify": "^2.0.0",
|
||
|
||
@@ -5064,14 +5168,14 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/axios": {
|
||
|
||
- "version": "1.13.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
|
||
|
||
- "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
|
||
|
||
- "version": "1.7.9",
|
||
|
||
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
|
||
|
||
- "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
"follow-redirects": "^1.15.6",
|
||
|
||
- "form-data": "^4.0.4",
|
||
|
||
- "form-data": "^4.0.0",
|
||
|
||
"proxy-from-env": "^1.1.0"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
@@ -5898,7 +6002,6 @@ }
|
||
|
||
],
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"caniuse-lite": "^1.0.30001688",
|
||
|
||
"electron-to-chromium": "^1.5.73",
|
||
|
||
@@ -6120,9 +6223,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/caniuse-lite": {
|
||
|
||
- "version": "1.0.30001695",
|
||
|
||
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
|
||
|
||
- "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==",
|
||
|
||
- "version": "1.0.30001769",
|
||
|
||
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz",
|
||
|
||
- "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==",
|
||
|
||
"dev": true,
|
||
|
||
"funding": [
|
||
|
||
{
|
||
|
||
@@ -6653,9 +6756,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/compression": {
|
||
|
||
- "version": "1.8.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
|
||
|
||
- "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
|
||
|
||
- "version": "1.7.5",
|
||
|
||
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz",
|
||
|
||
- "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
@@ -6663,7 +6766,7 @@ “compressible”: “~2.0.18”,
|
||
|
||
"debug": "2.6.9",
|
||
|
||
"negotiator": "~0.6.4",
|
||
|
||
- "on-headers": "~1.1.0",
|
||
|
||
- "on-headers": "~1.0.2",
|
||
|
||
"safe-buffer": "5.2.1",
|
||
|
||
"vary": "~1.1.2"
|
||
|
||
},
|
||
|
||
@@ -6894,9 +6997,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/core-js-pure": {
|
||
|
||
- "version": "3.47.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz",
|
||
|
||
- "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==",
|
||
|
||
- "version": "3.40.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz",
|
||
|
||
- "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==",
|
||
|
||
"hasInstallScript": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"funding": {
|
||
|
||
@@ -7801,7 +7904,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz”,
|
||
|
||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||
|
||
"license": "ISC",
|
||
|
||
- "peer": true,
|
||
|
||
"engines": {
|
||
|
||
"node": ">=12"
|
||
|
||
}
|
||
|
||
@@ -8043,6 +8145,19 @@ },
|
||
|
||
"funding": {
|
||
|
||
"url": "https://github.com/sponsors/sindresorhus"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/default-gateway”: {
|
||
|
||
- "version": "6.0.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
|
||
|
||
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "BSD-2-Clause",
|
||
|
||
- "dependencies": {
|
||
|
||
- "execa": "^5.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">= 10"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/defaults”: {
|
||
|
||
@@ -8387,6 +8502,13 @@ “readable-stream”: “^2.0.0”,
|
||
|
||
"stream-shift": "^1.0.0"
|
||
|
||
}
|
||
|
||
- },
|
||
|
||
- “node_modules/eastasianwidth”: {
|
||
|
||
- "version": "0.2.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||
|
||
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/ecdsa-sig-formatter”: {
|
||
|
||
"version": "1.0.11",
|
||
|
||
@@ -8720,7 +8842,6 @@ “integrity”:
|
||
“sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@eslint-community/eslint-utils": "^4.2.0",
|
||
|
||
"@eslint-community/regexpp": "^4.12.1",
|
||
|
||
@@ -9082,6 +9203,43 @@ “safe-buffer”: “^5.1.1”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/execa”: {
|
||
|
||
- "version": "5.1.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
|
||
|
||
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "cross-spawn": "^7.0.3",
|
||
|
||
- "get-stream": "^6.0.0",
|
||
|
||
- "human-signals": "^2.1.0",
|
||
|
||
- "is-stream": "^2.0.0",
|
||
|
||
- "merge-stream": "^2.0.0",
|
||
|
||
- "npm-run-path": "^4.0.1",
|
||
|
||
- "onetime": "^5.1.2",
|
||
|
||
- "signal-exit": "^3.0.3",
|
||
|
||
- "strip-final-newline": "^2.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=10"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/execa/node_modules/get-stream”: {
|
||
|
||
- "version": "6.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
|
||
|
||
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=10"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/sindresorhus"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/exif-parser”: {
|
||
|
||
“version”: “0.1.12”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz”,
|
||
|
||
@@ -9729,6 +9887,36 @@ “node”: “>=0.10.0”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/foreground-child”: {
|
||
|
||
- "version": "3.3.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
|
||
|
||
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "dependencies": {
|
||
|
||
- "cross-spawn": "^7.0.0",
|
||
|
||
- "signal-exit": "^4.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=14"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/foreground-child/node_modules/signal-exit”: {
|
||
|
||
- "version": "4.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
||
|
||
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=14"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/form-data”: {
|
||
|
||
“version”: “4.0.5”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz”,
|
||
|
||
@@ -10202,7 +10390,6 @@ “integrity”:
|
||
“sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"dateformat": "~4.6.2",
|
||
|
||
"eventemitter2": "~0.4.13",
|
||
|
||
@@ -10899,6 +11086,23 @@ “node”: “>=18”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/html-entities”: {
|
||
|
||
- "version": "2.5.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
|
||
|
||
- "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "funding": [
|
||
|
||
- {
|
||
|
||
- "type": "github",
|
||
|
||
- "url": "https://github.com/sponsors/mdevils"
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
- "type": "patreon",
|
||
|
||
- "url": "https://patreon.com/mdevils"
|
||
|
||
- }
|
||
|
||
- ],
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
“node_modules/html-escaper”: {
|
||
|
||
“version”: “2.0.2”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz”,
|
||
|
||
@@ -11078,9 +11282,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/http-proxy-middleware": {
|
||
|
||
- "version": "2.0.9",
|
||
|
||
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz",
|
||
|
||
- "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==",
|
||
|
||
- "version": "2.0.7",
|
||
|
||
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz",
|
||
|
||
- "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
@@ -11121,6 +11325,16 @@ },
|
||
|
||
"engines": {
|
||
|
||
"node": ">= 14"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/human-signals”: {
|
||
|
||
- "version": "2.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
|
||
|
||
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "Apache-2.0",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=10.17.0"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/hyperdyperid”: {
|
||
|
||
@@ -11810,6 +12024,19 @@ “url”: “https://github.com/sponsors/ljharb”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/is-stream”: {
|
||
|
||
- "version": "2.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
||
|
||
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/sindresorhus"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/is-string”: {
|
||
|
||
“version”: “1.1.1”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz”,
|
||
|
||
@@ -12000,6 +12227,22 @@ “dev”: true,
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
- “node_modules/jackspeak”: {
|
||
|
||
- "version": "3.4.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
|
||
|
||
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "BlueOak-1.0.0",
|
||
|
||
- "dependencies": {
|
||
|
||
- "@isaacs/cliui": "^8.0.2"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- },
|
||
|
||
- "optionalDependencies": {
|
||
|
||
- "@pkgjs/parseargs": "^0.11.0"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/jake”: {
|
||
|
||
“version”: “10.9.2”,
|
||
|
||
“resolved”: “https://registry.npmjs.org/jake/-/jake-10.9.2.tgz”,
|
||
|
||
@@ -12114,7 +12357,6 @@ “integrity”:
|
||
“sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"bin": {
|
||
|
||
"jiti": "bin/jiti.js"
|
||
|
||
}
|
||
|
||
@@ -12135,8 +12377,7 @@ “version”: “3.7.1”,
|
||
|
||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
|
||
|
||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/js-sha3”: {
|
||
|
||
"version": "0.9.3",
|
||
|
||
@@ -12227,7 +12468,6 @@ “resolved”:
|
||
“https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz”,
|
||
|
||
"integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"engines": {
|
||
|
||
"node": ">= 10.16.0"
|
||
|
||
}
|
||
|
||
@@ -12311,31 +12551,34 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/jsonwebtoken": {
|
||
|
||
- "version": "9.0.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
|
||
|
||
- "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==",
|
||
|
||
- "version": "8.5.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
|
||
|
||
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
"jws": "^3.2.2",
|
||
|
||
- "lodash": "^4.17.21",
|
||
|
||
- "lodash.includes": "^4.3.0",
|
||
|
||
- "lodash.isboolean": "^3.0.3",
|
||
|
||
- "lodash.isinteger": "^4.0.4",
|
||
|
||
- "lodash.isnumber": "^3.0.3",
|
||
|
||
- "lodash.isplainobject": "^4.0.6",
|
||
|
||
- "lodash.isstring": "^4.0.1",
|
||
|
||
- "lodash.once": "^4.0.0",
|
||
|
||
"ms": "^2.1.1",
|
||
|
||
- "semver": "^7.3.8"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=12",
|
||
|
||
- "npm": ">=6"
|
||
|
||
- "semver": "^5.6.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=4",
|
||
|
||
- "npm": ">=1.4.28"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/jsonwebtoken/node_modules/semver”: {
|
||
|
||
- "version": "7.7.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
|
||
|
||
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
|
||
|
||
- "version": "5.7.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
||
|
||
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
||
|
||
"license": "ISC",
|
||
|
||
"bin": {
|
||
|
||
- "semver": "bin/semver.js"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=10"
|
||
|
||
- "semver": "bin/semver"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/jsqr”: {
|
||
|
||
@@ -12367,30 +12610,30 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/jwa": {
|
||
|
||
- "version": "1.4.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
|
||
|
||
- "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "buffer-equal-constant-time": "^1.0.1",
|
||
|
||
- "version": "1.4.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
|
||
|
||
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "buffer-equal-constant-time": "1.0.1",
|
||
|
||
"ecdsa-sig-formatter": "1.0.11",
|
||
|
||
"safe-buffer": "^5.0.1"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/jws”: {
|
||
|
||
- "version": "3.2.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.3.tgz",
|
||
|
||
- "integrity": "sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "jwa": "^1.4.2",
|
||
|
||
- "version": "3.2.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
|
||
|
||
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "jwa": "^1.4.1",
|
||
|
||
"safe-buffer": "^5.0.1"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/kbpgp”: {
|
||
|
||
- "version": "2.1.15",
|
||
|
||
- "resolved": "https://registry.npmjs.org/kbpgp/-/kbpgp-2.1.15.tgz",
|
||
|
||
- "integrity": "sha512-iFdQT+m2Mi2DB14kEFydF2joNe9x3E2VZCGZUt7UXsiZnQx5TtSl4KofP7EPtjHvf7weCxNKlEPSYiiCNMZ2jA==",
|
||
|
||
- "version": "2.1.17",
|
||
|
||
- "resolved": "https://registry.npmjs.org/kbpgp/-/kbpgp-2.1.17.tgz",
|
||
|
||
- "integrity": "sha512-pnjH7amyg6dZLXyF42BKbCTST0l0r1ErunqtFRrJCkHkGJb83cZZmx1pnqNFr+d/ls+5gvcHrZLPfUG5q7oRYw==",
|
||
|
||
"license": "BSD-3-Clause",
|
||
|
||
"dependencies": {
|
||
|
||
"bn": "^1.0.5",
|
||
|
||
@@ -12673,6 +12916,18 @@ “dev”: true,
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
- “node_modules/lodash.includes”: {
|
||
|
||
- "version": "4.3.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
|
||
|
||
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
- “node_modules/lodash.isboolean”: {
|
||
|
||
- "version": "3.0.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
|
||
|
||
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
“node_modules/lodash.isfinite”: {
|
||
|
||
“version”: “3.3.2”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz”,
|
||
|
||
@@ -12680,11 +12935,28 @@ “dev”: true,
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
- “node_modules/lodash.isinteger”: {
|
||
|
||
- "version": "4.0.4",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
|
||
|
||
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
- “node_modules/lodash.isnumber”: {
|
||
|
||
- "version": "3.0.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
|
||
|
||
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
“node_modules/lodash.isplainobject”: {
|
||
|
||
“version”: “4.0.6”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz”,
|
||
|
||
“integrity”:
|
||
“sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==”,
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
- “node_modules/lodash.isstring”: {
|
||
|
||
- "version": "4.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
|
||
|
||
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/lodash.merge”: {
|
||
|
||
@@ -12692,6 +12964,12 @@ “resolved”:
|
||
“https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz”,
|
||
|
||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "MIT"
|
||
|
||
- },
|
||
|
||
- “node_modules/lodash.once”: {
|
||
|
||
- "version": "4.1.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
|
||
|
||
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
“node_modules/lodash.union”: {
|
||
|
||
@@ -13064,10 +13342,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/min-document": {
|
||
|
||
- "version": "2.19.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz",
|
||
|
||
- "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==",
|
||
|
||
- "license": "MIT",
|
||
|
||
- "version": "2.19.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
|
||
|
||
- "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
|
||
|
||
"dependencies": {
|
||
|
||
"dom-walk": "^0.1.0"
|
||
|
||
}
|
||
|
||
@@ -13125,6 +13402,16 @@ “license”: “MIT”,
|
||
|
||
"funding": {
|
||
|
||
"url": "https://github.com/sponsors/ljharb"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/minipass”: {
|
||
|
||
- "version": "7.1.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
||
|
||
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=16 || 14 >=14.17"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/mocha”: {
|
||
|
||
@@ -13325,9 +13612,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/morgan": {
|
||
|
||
- "version": "1.10.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz",
|
||
|
||
- "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==",
|
||
|
||
- "version": "1.10.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
|
||
|
||
- "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
@@ -13335,7 +13622,7 @@ “debug”: “2.6.9”,
|
||
|
||
"depd": "~2.0.0",
|
||
|
||
"on-finished": "~2.3.0",
|
||
|
||
- "on-headers": "~1.1.0"
|
||
|
||
- "on-headers": "~1.0.2"
|
||
|
||
},
|
||
|
||
"engines": {
|
||
|
||
"node": ">= 0.8.0"
|
||
|
||
@@ -13832,6 +14119,19 @@ “integrity”:
|
||
“sha512-TKC/8zH5pXIAMVQio2TvVDTtPRX+DJPHDqjRbxogtFiByHyzKmy96RA0JtCQJ+WouyyL4A10xomQzgbUT+1jCg==”,
|
||
|
||
"license": "MIT"
|
||
|
||
},
|
||
|
||
- “node_modules/npm-run-path”: {
|
||
|
||
- "version": "4.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
|
||
|
||
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "path-key": "^3.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/nth-check”: {
|
||
|
||
“version”: “2.1.1”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz”,
|
||
|
||
@@ -14005,9 +14305,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/on-headers": {
|
||
|
||
- "version": "1.1.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
|
||
|
||
- "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
|
||
|
||
- "version": "1.0.2",
|
||
|
||
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
|
||
|
||
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"engines": {
|
||
|
||
@@ -14316,6 +14616,13 @@ “node”: “>= 14”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/package-json-from-dist”: {
|
||
|
||
- "version": "1.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
|
||
|
||
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "BlueOak-1.0.0"
|
||
|
||
- },
|
||
|
||
“node_modules/pad-stream”: {
|
||
|
||
“version”: “2.0.0”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz”,
|
||
|
||
@@ -14568,6 +14875,30 @@ “node”: “>=0.10.0”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/path-scurry”: {
|
||
|
||
- "version": "1.11.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
|
||
|
||
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "BlueOak-1.0.0",
|
||
|
||
- "dependencies": {
|
||
|
||
- "lru-cache": "^10.2.0",
|
||
|
||
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=16 || 14 >=14.18"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/path-scurry/node_modules/lru-cache”: {
|
||
|
||
- "version": "10.4.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
|
||
|
||
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC"
|
||
|
||
- },
|
||
|
||
“node_modules/path-to-regexp”: {
|
||
|
||
“version”: “0.1.12”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz”,
|
||
|
||
@@ -14836,7 +15167,6 @@ “integrity”:
|
||
“sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==”,
|
||
|
||
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"funding": {
|
||
|
||
"type": "opencollective",
|
||
|
||
"url": "https://opencollective.com/popperjs"
|
||
|
||
@@ -14896,7 +15226,6 @@ }
|
||
|
||
],
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"nanoid": "^3.3.8",
|
||
|
||
"picocolors": "^1.1.1",
|
||
|
||
@@ -16034,7 +16363,6 @@ “integrity”:
|
||
“sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"fast-deep-equal": "^3.1.3",
|
||
|
||
"fast-uri": "^3.0.1",
|
||
|
||
@@ -16891,6 +17219,45 @@ “node”: “>=8”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/string-width-cjs”: {
|
||
|
||
- "name": "string-width",
|
||
|
||
- "version": "4.2.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||
|
||
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "emoji-regex": "^8.0.0",
|
||
|
||
- "is-fullwidth-code-point": "^3.0.0",
|
||
|
||
- "strip-ansi": "^6.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/string-width-cjs/node_modules/ansi-regex”: {
|
||
|
||
- "version": "5.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||
|
||
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/string-width-cjs/node_modules/strip-ansi”: {
|
||
|
||
- "version": "6.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||
|
||
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-regex": "^5.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/string-width/node_modules/ansi-regex”: {
|
||
|
||
“version”: “5.0.1”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz”,
|
||
|
||
@@ -16927,6 +17294,30 @@ “node”: “>=0.10.0”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/strip-ansi-cjs”: {
|
||
|
||
- "name": "strip-ansi",
|
||
|
||
- "version": "6.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||
|
||
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-regex": "^5.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/strip-ansi-cjs/node_modules/ansi-regex”: {
|
||
|
||
- "version": "5.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||
|
||
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/strip-comments”: {
|
||
|
||
“version”: “2.0.1”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz”,
|
||
|
||
@@ -16935,6 +17326,16 @@ “license”: “MIT”,
|
||
|
||
"engines": {
|
||
|
||
"node": ">=10"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/strip-final-newline”: {
|
||
|
||
- "version": "2.0.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
|
||
|
||
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=6"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/strip-json-comments”: {
|
||
|
||
@@ -17300,7 +17701,6 @@ “integrity”:
|
||
“sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"engines": {
|
||
|
||
"node": ">=12"
|
||
|
||
},
|
||
|
||
@@ -17309,9 +17709,9 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/tmp": {
|
||
|
||
- "version": "0.2.5",
|
||
|
||
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
|
||
|
||
- "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
|
||
|
||
- "version": "0.2.3",
|
||
|
||
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
|
||
|
||
- "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"engines": {
|
||
|
||
@@ -17462,8 +17862,7 @@ “resolved”:
|
||
“https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz”,
|
||
|
||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||
|
||
"dev": true,
|
||
|
||
- "license": "0BSD",
|
||
|
||
- "peer": true
|
||
|
||
- "license": "0BSD"
|
||
|
||
},
|
||
|
||
“node_modules/tweetnacl”: {
|
||
|
||
"version": "0.13.3",
|
||
|
||
@@ -17980,7 +18379,6 @@ “integrity”:
|
||
“sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==”,
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
- "peer": true,
|
||
|
||
"dependencies": {
|
||
|
||
"@types/eslint-scope": "^3.7.7",
|
||
|
||
"@types/estree": "^1.0.6",
|
||
|
||
@@ -18128,16 +18526,15 @@ }
|
||
|
||
},
|
||
|
||
"node_modules/webpack-dev-server": {
|
||
|
||
- "version": "5.2.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.1.tgz",
|
||
|
||
- "integrity": "sha512-ml/0HIj9NLpVKOMq+SuBPLHcmbG+TGIjXRHsYfZwocUBIqEvws8NnS/V9AFQ5FKP+tgn5adwVwRrTEpGL33QFQ==",
|
||
|
||
- "version": "5.0.4",
|
||
|
||
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz",
|
||
|
||
- "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==",
|
||
|
||
"dev": true,
|
||
|
||
"license": "MIT",
|
||
|
||
"dependencies": {
|
||
|
||
"@types/bonjour": "^3.5.13",
|
||
|
||
"@types/connect-history-api-fallback": "^1.5.4",
|
||
|
||
"@types/express": "^4.17.21",
|
||
|
||
- "@types/express-serve-static-core": "^4.17.21",
|
||
|
||
"@types/serve-index": "^1.9.4",
|
||
|
||
"@types/serve-static": "^1.15.5",
|
||
|
||
"@types/sockjs": "^0.3.36",
|
||
|
||
@@ -18148,20 +18545,23 @@ “colorette”: “^2.0.10”,
|
||
|
||
"compression": "^1.7.4",
|
||
|
||
"connect-history-api-fallback": "^2.0.0",
|
||
|
||
- "express": "^4.21.2",
|
||
|
||
- "default-gateway": "^6.0.3",
|
||
|
||
- "express": "^4.17.3",
|
||
|
||
"graceful-fs": "^4.2.6",
|
||
|
||
- "http-proxy-middleware": "^2.0.7",
|
||
|
||
- "html-entities": "^2.4.0",
|
||
|
||
- "http-proxy-middleware": "^2.0.3",
|
||
|
||
"ipaddr.js": "^2.1.0",
|
||
|
||
"launch-editor": "^2.6.1",
|
||
|
||
"open": "^10.0.3",
|
||
|
||
"p-retry": "^6.2.0",
|
||
|
||
- "rimraf": "^5.0.5",
|
||
|
||
"schema-utils": "^4.2.0",
|
||
|
||
"selfsigned": "^2.4.1",
|
||
|
||
"serve-index": "^1.9.1",
|
||
|
||
"sockjs": "^0.3.24",
|
||
|
||
"spdy": "^4.0.2",
|
||
|
||
- "webpack-dev-middleware": "^7.4.2",
|
||
|
||
- "ws": "^8.18.0"
|
||
|
||
- "webpack-dev-middleware": "^7.1.0",
|
||
|
||
- "ws": "^8.16.0"
|
||
|
||
},
|
||
|
||
"bin": {
|
||
|
||
"webpack-dev-server": "bin/webpack-dev-server.js"
|
||
|
||
@@ -18185,17 +18585,14 @@ }
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/webpack-dev-server/node_modules/@types/express-serve-static-core”:
|
||
{
|
||
|
||
- "version": "4.19.7",
|
||
|
||
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz",
|
||
|
||
- "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "@types/node": "*",
|
||
|
||
- "@types/qs": "*",
|
||
|
||
- "@types/range-parser": "*",
|
||
|
||
- "@types/send": "*"
|
||
|
||
- “node_modules/webpack-dev-server/node_modules/brace-expansion”: {
|
||
|
||
- "version": "2.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||
|
||
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "balanced-match": "^1.0.0"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/webpack-dev-server/node_modules/chokidar”: {
|
||
|
||
@@ -18236,6 +18633,27 @@ “url”:
|
||
“https://github.com/sponsors/sindresorhus”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/webpack-dev-server/node_modules/glob”: {
|
||
|
||
- "version": "10.4.5",
|
||
|
||
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
||
|
||
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "dependencies": {
|
||
|
||
- "foreground-child": "^3.1.0",
|
||
|
||
- "jackspeak": "^3.1.2",
|
||
|
||
- "minimatch": "^9.0.4",
|
||
|
||
- "minipass": "^7.1.2",
|
||
|
||
- "package-json-from-dist": "^1.0.0",
|
||
|
||
- "path-scurry": "^1.11.1"
|
||
|
||
- },
|
||
|
||
- "bin": {
|
||
|
||
- "glob": "dist/esm/bin.mjs"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/webpack-dev-server/node_modules/glob-parent”: {
|
||
|
||
“version”: “5.1.2”,
|
||
|
||
“resolved”:
|
||
“https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz”,
|
||
|
||
@@ -18265,6 +18683,22 @@ “url”:
|
||
“https://github.com/sponsors/sindresorhus”
|
||
|
||
}
|
||
|
||
},
|
||
|
||
- “node_modules/webpack-dev-server/node_modules/minimatch”: {
|
||
|
||
- "version": "9.0.5",
|
||
|
||
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
||
|
||
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "dependencies": {
|
||
|
||
- "brace-expansion": "^2.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=16 || 14 >=14.17"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
“node_modules/webpack-dev-server/node_modules/open”: {
|
||
|
||
“version”: “10.1.0”,
|
||
|
||
“resolved”: “https://registry.npmjs.org/open/-/open-10.1.0.tgz”,
|
||
|
||
@@ -18282,6 +18716,22 @@ },
|
||
|
||
"funding": {
|
||
|
||
"url": "https://github.com/sponsors/sindresorhus"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/webpack-dev-server/node_modules/rimraf”: {
|
||
|
||
- "version": "5.0.10",
|
||
|
||
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
|
||
|
||
- "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "ISC",
|
||
|
||
- "dependencies": {
|
||
|
||
- "glob": "^10.3.7"
|
||
|
||
- },
|
||
|
||
- "bin": {
|
||
|
||
- "rimraf": "dist/esm/bin.mjs"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/sponsors/isaacs"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/webpack-node-externals”: {
|
||
|
||
@@ -18640,6 +19090,64 @@ },
|
||
|
||
"funding": {
|
||
|
||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/wrap-ansi-cjs”: {
|
||
|
||
- "name": "wrap-ansi",
|
||
|
||
- "version": "7.0.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||
|
||
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-styles": "^4.0.0",
|
||
|
||
- "string-width": "^4.1.0",
|
||
|
||
- "strip-ansi": "^6.0.0"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=10"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/wrap-ansi-cjs/node_modules/ansi-regex”: {
|
||
|
||
- "version": "5.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||
|
||
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/wrap-ansi-cjs/node_modules/ansi-styles”: {
|
||
|
||
- "version": "4.3.0",
|
||
|
||
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||
|
||
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "color-convert": "^2.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
- },
|
||
|
||
- "funding": {
|
||
|
||
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||
|
||
- }
|
||
|
||
- },
|
||
|
||
- “node_modules/wrap-ansi-cjs/node_modules/strip-ansi”: {
|
||
|
||
- "version": "6.0.1",
|
||
|
||
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||
|
||
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||
|
||
- "dev": true,
|
||
|
||
- "license": "MIT",
|
||
|
||
- "dependencies": {
|
||
|
||
- "ansi-regex": "^5.0.1"
|
||
|
||
- },
|
||
|
||
- "engines": {
|
||
|
||
- "node": ">=8"
|
||
|
||
}
|
||
|
||
},
|
||
|
||
“node_modules/wrap-ansi/node_modules/ansi-regex”: {
|
||
|
||
CHANGED: package.json — mkilijanek/package.json +++ gchq/package.json @@
|
||
-1,6 +1,6 @@ {
|
||
|
||
“name”: “cyberchef”,
|
||
|
||
- “version”: “10.19.4”,
|
||
|
||
- “version”: “10.22.1”,
|
||
|
||
“description”: “The Cyber Swiss Army Knife for encryption, encoding,
|
||
compression and data analysis.”,
|
||
|
||
“author”: “n1474335 n1474335@gmail.com”,
|
||
|
||
“homepage”: “https://gchq.github.io/CyberChef”,
|
||
|
||
@@ -91,7 +91,7 @@ “terser”: “^5.31.1”,
|
||
|
||
"webpack": "^5.91.0",
|
||
|
||
"webpack-bundle-analyzer": "^4.10.2",
|
||
|
||
- “webpack-dev-server”: “5.2.1”,
|
||
|
||
- “webpack-dev-server”: “5.0.4”,
|
||
|
||
“webpack-node-externals”: “^3.0.0”,
|
||
|
||
“worker-loader”: “^3.0.8”
|
||
|
||
},
|
||
|
||
@@ -117,7 +117,7 @@ “chi-squared”: “^1.1.0”,
|
||
|
||
"codepage": "^1.15.0",
|
||
|
||
"crypto-api": "^0.8.5",
|
||
|
||
- “crypto-browserify”: “^3.12.0”,
|
||
|
||
- “crypto-browserify”: “^3.12.1”,
|
||
|
||
“crypto-js”: “^4.2.0”,
|
||
|
||
“ctph.js”: “0.0.5”,
|
||
|
||
“d3”: “7.9.0”,
|
||
|
||
@@ -144,10 +144,10 @@ “json5”: “^2.2.3”,
|
||
|
||
"jsonata": "^2.0.3",
|
||
|
||
"jsonpath-plus": "^10.3.0",
|
||
|
||
- “jsonwebtoken”: “9.0.0”,
|
||
|
||
- “jsonwebtoken”: “8.5.1”,
|
||
|
||
“jsqr”: “^1.4.0”,
|
||
|
||
“jsrsasign”: “^11.1.0”,
|
||
|
||
- “kbpgp”: “2.1.15”,
|
||
|
||
- “kbpgp”: “^2.1.17”,
|
||
|
||
“libbzip2-wasm”: “0.0.4”,
|
||
|
||
“libyara-wasm”: “^1.2.1”,
|
||
|
||
“lodash”: “^4.17.21”,
|
||
|
||
@@ -202,14 +202,9 @@ “lint:grammar”: “cspell ./src”,
|
||
|
||
"postinstall": "npx grunt exec:fixCryptoApiImports && npx grunt exec:fixSnackbarMarkup && npx grunt exec:fixJimpModule",
|
||
|
||
"newop": "node --experimental-modules --experimental-json-modules src/core/config/scripts/newOperation.mjs",
|
||
|
||
- “minor”: “node –experimental-modules –experimental-json-modules
|
||
src/core/config/scripts/newMinorVersion.mjs”,
|
||
|
||
- “minor”: “node –experimental-modules –experimental-json-modules
|
||
src/core/config/scripts/newMinorVersion.mjs && npm version minor
|
||
–git-tag-version=false && echo "Updated to version v$(npm pkg get
|
||
version | xargs), please create a pull request and once merged use
|
||
‘npm run tag’"”,
|
||
|
||
- “tag”: “git tag -s "v$(npm pkg get version | xargs)\" -m \"$(npm pkg
|
||
get version | xargs)" && echo "Created v$(npm pkg get version |
|
||
xargs), now check and push the tag"”,
|
||
|
||
“getheapsize”: “node -e
|
||
‘console.log(node heap limit = ${require(\"v8\").getHeapStatistics().heap_size_limit / (1024 * 1024)} Mb)’”,
|
||
|
||
- “setheapsize”: “export NODE_OPTIONS=–max_old_space_size=2048”,
|
||
|
||
- “security:audit”: “npm audit”,
|
||
|
||
- “security:audit:json”: “npm audit –json”,
|
||
|
||
- “security:fix”: “./scripts/security-fix.sh”,
|
||
|
||
- “security:triage”: “node scripts/vulnerability-triage.js”,
|
||
|
||
- “security:triage:json”: “node scripts/vulnerability-triage.js
|
||
–json”,
|
||
|
||
- “security:check”: “npm run security:triage && npm run lint”
|
||
|
||
- “setheapsize”: “export NODE_OPTIONS=–max_old_space_size=2048”
|
||
|
||
}
|
||
|
||
}
|
||
|
||
REMOVED in gchq (exists in mkilijanek): scripts/security-fix.sh REMOVED
|
||
in gchq (exists in mkilijanek): scripts/vulnerability-triage.js
|
||
|
||
CHANGED: src/core/Utils.mjs — mkilijanek/src/core/Utils.mjs +++
|
||
gchq/src/core/Utils.mjs @@ -177,7 +177,7 @@ */
|
||
|
||
static printable(str, preserveWs=false, onlyAscii=false) {
|
||
|
||
if (onlyAscii) {
|
||
|
||
- return str.replace(/[^\x20-\x7f]/g, ".");
|
||
|
||
- return str.replace(/[^\x20-\x7e]/g, ".");
|
||
|
||
}
|
||
|
||
|
||
|
||
// eslint-disable-next-line no-misleading-character-class
|
||
|
||
CHANGED: src/core/config/Categories.json —
|
||
mkilijanek/src/core/config/Categories.json +++
|
||
gchq/src/core/config/Categories.json @@ -26,6 +26,8 @@ “From Base45”,
|
||
|
||
"To Base58",
|
||
|
||
"From Base58",
|
||
|
||
- "To Bech32",
|
||
|
||
- "From Bech32",
|
||
|
||
"To Base62",
|
||
|
||
"From Base62",
|
||
|
||
"To Base64",
|
||
|
||
CHANGED: src/core/config/scripts/newMinorVersion.mjs —
|
||
mkilijanek/src/core/config/scripts/newMinorVersion.mjs +++
|
||
gchq/src/core/config/scripts/newMinorVersion.mjs @@ -7,138 +7,197 @@ */
|
||
|
||
/* eslint no-console: [“off”] */
|
||
|
||
-
|
||
|
||
-import prompt from “prompt”;
|
||
|
||
-import colors from “colors”;
|
||
|
||
+/* eslint jsdoc/require-jsdoc: [“off”] */
|
||
|
||
- import path from “path”;
|
||
|
||
-import fs from “fs”;
|
||
|
||
+import fs from “fs”;
|
||
|
||
import process from “process”;
|
||
|
||
-
|
||
|
||
-const dir = path.join(process.cwd() + “/src/core/config/”);
|
||
|
||
-if (!fs.existsSync(dir)) {
|
||
|
||
- console.log(“:” + process.cwd());
|
||
|
||
- console.log(“Error: newMinorVersion.mjs should be run from the
|
||
project root”);
|
||
|
||
- console.log(“Example> node –experimental-modules
|
||
src/core/config/scripts/newMinorVersion.mjs”);
|
||
|
||
- process.exit(1);
|
||
|
||
+import { execSync } from “child_process”;
|
||
|
||
-
|
||
|
||
+const ignoredAuthors = [“github-advanced-security[bot]”,
|
||
“dependabot[bot]”];
|
||
|
||
-
|
||
|
||
+async function main() {
|
||
|
||
- const dir = path.join(process.cwd() + “/src/core/config/”);
|
||
|
||
- if (!fs.existsSync(dir)) {
|
||
|
||
- console.log("\nCWD: " + process.cwd());
|
||
|
||
- console.log(
|
||
|
||
- "Error: newMinorVersion.mjs should be run from the project root",
|
||
|
||
- );
|
||
|
||
- console.log(
|
||
|
||
- "Example> node --experimental-modules src/core/config/scripts/newMinorVersion.mjs",
|
||
|
||
- );
|
||
|
||
- process.exit(1);
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- let changelogData = fs.readFileSync(
|
||
|
||
- path.join(process.cwd(), "CHANGELOG.md"),
|
||
|
||
- "utf8",
|
||
|
||
- );
|
||
|
||
- const lastVersion = changelogData.match(
|
||
|
||
- /## Details\s+### \[(\d+)\.(\d+)\.(\d+)\]/,
|
||
|
||
- );
|
||
|
||
- const newVersion = [
|
||
|
||
- parseInt(lastVersion[1], 10),
|
||
|
||
- parseInt(lastVersion[2], 10) + 1,
|
||
|
||
- 0,
|
||
|
||
- ];
|
||
|
||
-
|
||
|
||
- let knownContributors = changelogData.match(/^[@([^\]]+)]/gm);
|
||
|
||
- knownContributors = knownContributors.map((c) => c.slice(2, -1));
|
||
|
||
-
|
||
|
||
- const date = new Date().toISOString().split(“T”)[0];
|
||
|
||
-
|
||
|
||
- const lastVersionSha = execSync(
|
||
|
||
- `git rev-list -n 1 v${lastVersion[1]}.${lastVersion[2]}.${lastVersion[3]}`,
|
||
|
||
- {
|
||
|
||
- encoding: "utf8",
|
||
|
||
- },
|
||
|
||
- ).trim();
|
||
|
||
- if (lastVersionSha.length !== 40) {
|
||
|
||
- throw new Error(
|
||
|
||
- `Unexpected output from git rev-list: ${lastVersionSha}`,
|
||
|
||
- );
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- const features = [];
|
||
|
||
-
|
||
|
||
- const commits = await (
|
||
|
||
- await fetch(`https://api.github.com/repos/gchq/cyberchef/commits`)
|
||
|
||
- ).json();
|
||
|
||
- let foundLast = false;
|
||
|
||
- for (const commit of commits) {
|
||
|
||
- if (commit.sha === lastVersionSha) {
|
||
|
||
- foundLast = true;
|
||
|
||
- break;
|
||
|
||
- } else {
|
||
|
||
- const feature = {
|
||
|
||
- message: "",
|
||
|
||
- authors: [],
|
||
|
||
- id: "",
|
||
|
||
- };
|
||
|
||
-
|
||
|
||
- const msgparts = commit.commit.message.split("\n\n");
|
||
|
||
- feature.message = msgparts[0];
|
||
|
||
- const prIdMatch = feature.message.match(/\(#(\d+)\)$/);
|
||
|
||
- if (prIdMatch !== null) {
|
||
|
||
- feature.message = feature.message
|
||
|
||
- .replace(prIdMatch[0], "")
|
||
|
||
- .trim();
|
||
|
||
- feature.id = prIdMatch[1];
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- if (!ignoredAuthors.includes(commit.author.login)) {
|
||
|
||
- feature.authors.push(commit.author.login);
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- if (msgparts.length > 1) {
|
||
|
||
- msgparts[1]
|
||
|
||
- .split("\n")
|
||
|
||
- .filter((line) => line.startsWith("Co-authored-by: "))
|
||
|
||
- .forEach((line) => {
|
||
|
||
- let coAuthor = line.slice("Co-authored-by: ".length);
|
||
|
||
- if (coAuthor.indexOf(">") !== -1) {
|
||
|
||
- const email = coAuthor.slice(
|
||
|
||
- coAuthor.indexOf("<") + 1,
|
||
|
||
- coAuthor.indexOf(">"),
|
||
|
||
- );
|
||
|
||
- if (email.endsWith("@users.noreply.github.com")) {
|
||
|
||
- coAuthor = email.slice(
|
||
|
||
- email.indexOf("+") + 1,
|
||
|
||
- -"@users.noreply.github.com".length,
|
||
|
||
- );
|
||
|
||
- } else {
|
||
|
||
- throw new Error(
|
||
|
||
- "Could not get ID of co-author: " +
|
||
|
||
- coAuthor,
|
||
|
||
- );
|
||
|
||
- }
|
||
|
||
- } else {
|
||
|
||
- throw new Error(
|
||
|
||
- "Could not get email of co-author: " + coAuthor,
|
||
|
||
- );
|
||
|
||
- }
|
||
|
||
- if (!ignoredAuthors.includes(coAuthor)) {
|
||
|
||
- feature.authors.push(coAuthor);
|
||
|
||
- }
|
||
|
||
- });
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- features.push(feature);
|
||
|
||
- }
|
||
|
||
- }
|
||
|
||
- if (!foundLast) {
|
||
|
||
- throw new Error(
|
||
|
||
- `Could not find last version commit: ${lastVersionSha} - need to add paging functionality`,
|
||
|
||
- );
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- let message =
|
||
### [${newVersion[0]}.${newVersion[1]}.${newVersion[2]}] - ${date}\n;
|
||
|
||
-
|
||
|
||
- const authors = [];
|
||
|
||
- const prIDs = [];
|
||
|
||
- const commitIDs = [];
|
||
|
||
-
|
||
|
||
- features.forEach((feature) => {
|
||
|
||
- const id =
|
||
|
||
- feature.id.length > 10 ? feature.id.slice(0, 7) : "#" + feature.id;
|
||
|
||
- message += `- ${feature.message} ${feature.authors.map((a) => `[@${a}]`).join(" ")} | [${id}]\n`;
|
||
|
||
-
|
||
|
||
- feature.authors.forEach((author) => {
|
||
|
||
- if (!knownContributors.includes(author)) {
|
||
|
||
- knownContributors.push(author);
|
||
|
||
- authors.push(`[@${author}]: https://github.com/${author}`);
|
||
|
||
- }
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- if (feature.id.length > 10) {
|
||
|
||
- commitIDs.push(
|
||
|
||
- `[${id}]: https://github.com/gchq/CyberChef/commit/${feature.id}`,
|
||
|
||
- );
|
||
|
||
- } else {
|
||
|
||
- prIDs.push(
|
||
|
||
- `[#${feature.id}]: https://github.com/gchq/CyberChef/pull/${feature.id}`,
|
||
|
||
- );
|
||
|
||
- }
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // Message
|
||
|
||
- changelogData = changelogData.replace(
|
||
|
||
- /## Details\n\n/,
|
||
|
||
- "## Details\n\n" + message + "\n",
|
||
|
||
- );
|
||
|
||
-
|
||
|
||
- // Tag
|
||
|
||
- const newTag =
|
||
[${newVersion[0]}.${newVersion[1]}.${newVersion[2]}]: https://github.com/gchq/CyberChef/releases/tag/v${newVersion[0]}.${newVersion[1]}.${newVersion[2]}\n;
|
||
|
||
- changelogData = changelogData.replace(
|
||
|
||
- /\n\n(\[\d+\.\d+\.\d+\]: https)/,
|
||
|
||
- "\n\n" + newTag + "$1",
|
||
|
||
- );
|
||
|
||
-
|
||
|
||
- // Author
|
||
|
||
- authors.forEach((author) => {
|
||
|
||
- changelogData = changelogData.replace(
|
||
|
||
- /(\n\[@[^\]]+\]: https:\/\/github\.com\/[^\n]+\n)\n/,
|
||
|
||
- "$1" + author + "\n\n",
|
||
|
||
- );
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // Commit IDs
|
||
|
||
- commitIDs.forEach((commitID) => {
|
||
|
||
- changelogData = changelogData.replace(
|
||
|
||
- /(\n\[[^\].]+\]: https:\/\/github.com\/gchq\/CyberChef\/commit\/[^\n]+\n)\n/,
|
||
|
||
- "$1" + commitID + "\n\n",
|
||
|
||
- );
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // PR IDs
|
||
|
||
- prIDs.forEach((prID) => {
|
||
|
||
- changelogData = changelogData.replace(
|
||
|
||
- /(\n\[#[^\]]+\]: https:\/\/github.com\/gchq\/CyberChef\/(?:pull|issues)\/[^\n]+\n)\n*$/,
|
||
|
||
- "$1" + prID + "\n\n",
|
||
|
||
- );
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- fs.writeFileSync(path.join(process.cwd(), “CHANGELOG.md”),
|
||
changelogData);
|
||
|
||
}
|
||
|
||
-
|
||
|
||
-let changelogData = fs.readFileSync(path.join(process.cwd(),
|
||
“CHANGELOG.md”), “utf8”);
|
||
|
||
-const lastVersion = changelogData.match(/## Details+### [().().()]/);
|
||
|
||
-const newVersion = [];
|
||
|
||
-
|
||
|
||
-let knownContributors = changelogData.match(/^[@([^\]]+)]/gm);
|
||
|
||
-knownContributors = knownContributors.map(c => c.slice(2, -1));
|
||
|
||
-
|
||
|
||
-const date = (new Date()).toISOString().split(“T”)[0];
|
||
|
||
-
|
||
|
||
-const schema = {
|
||
|
||
- properties: {
|
||
|
||
- message: {
|
||
|
||
- description: "A short but descriptive summary of a feature in this version",
|
||
|
||
- example: "Added 'Op name' operation",
|
||
|
||
- prompt: "Feature description",
|
||
|
||
- type: "string",
|
||
|
||
- required: true,
|
||
|
||
- },
|
||
|
||
- author: {
|
||
|
||
- description: "The author of the feature (only one supported, edit manually to add more)",
|
||
|
||
- example: "n1474335",
|
||
|
||
- prompt: "Author",
|
||
|
||
- type: "string",
|
||
|
||
- default: "n1474335"
|
||
|
||
- },
|
||
|
||
- id: {
|
||
|
||
- description: "The PR number or full commit hash for this feature.",
|
||
|
||
- example: "1200",
|
||
|
||
- prompt: "Pull request or commit ID",
|
||
|
||
- type: "string"
|
||
|
||
- },
|
||
|
||
- another: {
|
||
|
||
- description: "y/n",
|
||
|
||
- example: "y",
|
||
|
||
- prompt: "Add another feature?",
|
||
|
||
- type: "string",
|
||
|
||
- pattern: /^[yn]$/,
|
||
|
||
- }
|
||
|
||
- }
|
||
|
||
-};
|
||
|
||
-
|
||
|
||
-// Build schema
|
||
|
||
-for (const prop in schema.properties) {
|
||
|
||
- const p = schema.properties[prop];
|
||
|
||
- p.description = “” + colors.white(p.description) + colors.cyan(“:” +
|
||
p.example) + “” + colors.green(p.prompt);
|
||
|
||
-}
|
||
|
||
-
|
||
|
||
-prompt.message = ““;
|
||
|
||
-prompt.delimiter = “:”.green;
|
||
|
||
-
|
||
|
||
-const features = [];
|
||
|
||
-const authors = [];
|
||
|
||
-const prIDs = [];
|
||
|
||
-const commitIDs = [];
|
||
|
||
-
|
||
|
||
-prompt.start();
|
||
|
||
-
|
||
|
||
-const getFeature = function() {
|
||
|
||
- prompt.get(schema, (err, result) => {
|
||
|
||
- if (err) {
|
||
|
||
- console.log("\nExiting script.");
|
||
|
||
- process.exit(0);
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- features.push(result);
|
||
|
||
-
|
||
|
||
- if (result.another === "y") {
|
||
|
||
- getFeature();
|
||
|
||
- } else {
|
||
|
||
- let message = `### [${newVersion[0]}.${newVersion[1]}.${newVersion[2]}] - ${date}\n`;
|
||
|
||
-
|
||
|
||
- features.forEach(feature => {
|
||
|
||
- const id = feature.id.length > 10 ? feature.id.slice(0, 7) : "#" + feature.id;
|
||
|
||
- message += `- ${feature.message} [@${feature.author}] | [${id}]\n`;
|
||
|
||
-
|
||
|
||
- if (!knownContributors.includes(feature.author)) {
|
||
|
||
- authors.push(`[@${feature.author}]: https://github.com/${feature.author}`);
|
||
|
||
- }
|
||
|
||
-
|
||
|
||
- if (feature.id.length > 10) {
|
||
|
||
- commitIDs.push(`[${id}]: https://github.com/gchq/CyberChef/commit/${feature.id}`);
|
||
|
||
- } else {
|
||
|
||
- prIDs.push(`[#${feature.id}]: https://github.com/gchq/CyberChef/pull/${feature.id}`);
|
||
|
||
- }
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // Message
|
||
|
||
- changelogData = changelogData.replace(/## Details\n\n/, "## Details\n\n" + message + "\n");
|
||
|
||
-
|
||
|
||
- // Tag
|
||
|
||
- const newTag = `[${newVersion[0]}.${newVersion[1]}.${newVersion[2]}]: https://github.com/gchq/CyberChef/releases/tag/v${newVersion[0]}.${newVersion[1]}.${newVersion[2]}\n`;
|
||
|
||
- changelogData = changelogData.replace(/\n\n(\[\d+\.\d+\.\d+\]: https)/, "\n\n" + newTag + "$1");
|
||
|
||
-
|
||
|
||
- // Author
|
||
|
||
- authors.forEach(author => {
|
||
|
||
- changelogData = changelogData.replace(/(\n\[@[^\]]+\]: https:\/\/github\.com\/[^\n]+\n)\n/, "$1" + author + "\n\n");
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // Commit IDs
|
||
|
||
- commitIDs.forEach(commitID => {
|
||
|
||
- changelogData = changelogData.replace(/(\n\[[^\].]+\]: https:\/\/github.com\/gchq\/CyberChef\/commit\/[^\n]+\n)\n/, "$1" + commitID + "\n\n");
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- // PR IDs
|
||
|
||
- prIDs.forEach(prID => {
|
||
|
||
- changelogData = changelogData.replace(/(\n\[#[^\]]+\]: https:\/\/github.com\/gchq\/CyberChef\/pull\/[^\n]+\n)\n*$/, "$1" + prID + "\n\n");
|
||
|
||
- });
|
||
|
||
-
|
||
|
||
- fs.writeFileSync(path.join(process.cwd(), "CHANGELOG.md"), changelogData);
|
||
|
||
-
|
||
|
||
- console.log("Written CHANGELOG.md\nCommit changes and then run `npm version minor`.");
|
||
|
||
- }
|
||
|
||
- });
|
||
|
||
-};
|
||
|
||
-
|
||
|
||
-getFeature();
|
||
|
||
+main().catch(console.error);
|
||
|
||
ADDED in gchq (missing in mkilijanek): src/core/lib/Bech32.mjs
|
||
|
||
CHANGED: src/core/lib/Hex.mjs — mkilijanek/src/core/lib/Hex.mjs +++
|
||
gchq/src/core/lib/Hex.mjs @@ -33,7 +33,7 @@ if (data instanceof
|
||
ArrayBuffer) data = new Uint8Array(data);
|
||
|
||
let output = "";
|
||
|
||
- const prepend = (delim === “0x” || delim === “\x”);
|
||
|
||
- const prepend = (delim === “0x” || delim === “\x” || delim === “%”);
|
||
|
||
for (let i = 0; i < data.length; i++) {
|
||
|
||
const hex = data[i].toString(16).padStart(padding, "0");
|
||
|
||
CHANGED: src/core/lib/JA4.mjs — mkilijanek/src/core/lib/JA4.mjs +++
|
||
gchq/src/core/lib/JA4.mjs @@ -91,9 +91,7 @@ let alpn = “00”;
|
||
|
||
for (const ext of tlsr.handshake.value.extensions.value) {
|
||
|
||
if (ext.type.value === "application_layer_protocol_negotiation") {
|
||
|
||
- alpn = parseFirstALPNValue(ext.value.data);
|
||
|
||
- alpn = alpn.charAt(0) + alpn.charAt(alpn.length - 1);
|
||
|
||
- if (alpn.charCodeAt(0) > 127) alpn = "99";
|
||
|
||
- alpn = alpnFingerprint(parseFirstALPNValue(ext.value.data));
|
||
|
||
break;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
@@ -212,9 +210,7 @@ let alpn = “00”;
|
||
|
||
for (const ext of tlsr.handshake.value.extensions.value) {
|
||
|
||
if (ext.type.value === "application_layer_protocol_negotiation") {
|
||
|
||
- alpn = parseFirstALPNValue(ext.value.data);
|
||
|
||
- alpn = alpn.charAt(0) + alpn.charAt(alpn.length - 1);
|
||
|
||
- if (alpn.charCodeAt(0) > 127) alpn = "99";
|
||
|
||
- alpn = alpnFingerprint(parseFirstALPNValue(ext.value.data));
|
||
|
||
break;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
@@ -262,3 +258,33 @@ default: return “00”; // Unknown
|
||
|
||
}
|
||
|
||
}
|
||
|
||
-
|
||
|
||
+/**
|
||
|
||
- - Checks if a byte is ASCII alphanumeric (0-9, A-Z, a-z).
|
||
|
||
- - @param {number} byte
|
||
|
||
- - @returns {boolean}
|
||
|
||
- */
|
||
|
||
+function isAlphanumeric(byte) {
|
||
|
||
- return (byte >= 0x30 && byte <= 0x39) ||
|
||
|
||
- (byte >= 0x41 && byte <= 0x5A) ||
|
||
|
||
- (byte >= 0x61 && byte <= 0x7A);
|
||
|
||
+}
|
||
|
||
-
|
||
|
||
+/**
|
||
|
||
- - Computes the 2-character ALPN fingerprint from raw ALPN bytes.
|
||
|
||
- - If both first and last bytes are ASCII alphanumeric, returns
|
||
their characters.
|
||
|
||
- - Otherwise, returns first hex digit of first byte + last hex
|
||
digit of last byte.
|
||
|
||
- - @param {Uint8Array|null} rawBytes
|
||
|
||
- - @returns {string}
|
||
|
||
- */
|
||
|
||
+function alpnFingerprint(rawBytes) {
|
||
|
||
- if (!rawBytes || rawBytes.length === 0) return “00”;
|
||
|
||
- const firstByte = rawBytes[0];
|
||
|
||
- const lastByte = rawBytes[rawBytes.length - 1];
|
||
|
||
- if (isAlphanumeric(firstByte) && isAlphanumeric(lastByte)) {
|
||
|
||
- return String.fromCharCode(firstByte) + String.fromCharCode(lastByte);
|
||
|
||
- }
|
||
|
||
- const firstHex = firstByte.toString(16).padStart(2, “0”);
|
||
|
||
- const lastHex = lastByte.toString(16).padStart(2, “0”);
|
||
|
||
- return firstHex[0] + lastHex[1];
|
||
|
||
+}
|
||
|
||
CHANGED: src/core/lib/LS47.mjs — mkilijanek/src/core/lib/LS47.mjs +++
|
||
gchq/src/core/lib/LS47.mjs @@ -223,19 +223,8 @@ initTiles();
|
||
|
||
checkKey(key);
|
||
|
||
let padding = "";
|
||
|
||
-
|
||
|
||
- // Use cryptographically secure random if available, otherwise
|
||
fallback to Math.random
|
||
|
||
- const getSecureRandom = () => {
|
||
|
||
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
|
||
|
||
- const array = new Uint32Array(1);
|
||
|
||
- crypto.getRandomValues(array);
|
||
|
||
- return array[0] / (0xFFFFFFFF + 1);
|
||
|
||
- }
|
||
|
||
- return Math.random();
|
||
|
||
- };
|
||
|
||
- for (let i = 0; i < paddingSize; i++) {
|
||
|
||
- padding += letters.charAt(Math.floor(getSecureRandom() * letters.length));
|
||
|
||
- padding += letters.charAt(Math.floor(Math.random() * letters.length));
|
||
|
||
}
|
||
|
||
return encrypt(key, padding+plaintext+“—”+signature);
|
||
|
||
}
|
||
|
||
CHANGED: src/core/lib/TLS.mjs — mkilijanek/src/core/lib/TLS.mjs +++
|
||
gchq/src/core/lib/TLS.mjs @@ -247,7 +247,7 @@ description: “Selected
|
||
Compression Method”,
|
||
|
||
length: 1,
|
||
|
||
data: b.getBytes(1),
|
||
|
||
- value: COMPRESSION_METHODS_LOOKUP[s.readInt(1)] || "Unknown"
|
||
|
||
- value: s.readInt(1) // TODO: Compression method name here
|
||
|
||
};
|
||
|
||
// Extensions Length
|
||
|
||
@@ -303,7 +303,7 @@ description: “Compression Method”,
|
||
|
||
length: 1,
|
||
|
||
data: b.getBytes(1),
|
||
|
||
- value: COMPRESSION_METHODS_LOOKUP[s.readInt(1)] || "Unknown"
|
||
|
||
- value: s.readInt(1) // TODO: Compression method name here
|
||
|
||
});
|
||
|
||
}
|
||
|
||
return cm;
|
||
|
||
@@ -837,15 +837,6 @@ ];
|
||
|
||
/**
|
||
|
||
- - Compression methods lookup table
|
||
|
||
- */
|
||
|
||
-const COMPRESSION_METHODS_LOOKUP = {
|
||
|
||
- 0: “null”,
|
||
|
||
- 1: “DEFLATE”,
|
||
|
||
- 64: “LZS”
|
||
|
||
-};
|
||
|
||
-
|
||
|
||
-/**
|
||
|
||
- Parses the supported_versions extension and returns the highest
|
||
supported version.
|
||
|
||
- @param {Uint8Array} bytes
|
||
|
||
- @returns {number}
|
||
|
||
@@ -872,15 +863,15 @@ }
|
||
|
||
/**
|
||
|
||
- - Parses the application_layer_protocol_negotiation extension and
|
||
returns the first value.
|
||
|
||
- - Parses the application_layer_protocol_negotiation extension and
|
||
returns the first value as raw bytes.
|
||
|
||
- @param {Uint8Array} bytes
|
||
|
||
- - @returns {number}
|
||
|
||
- - @returns {Uint8Array|null}
|
||
|
||
*/
|
||
|
||
export function parseFirstALPNValue(bytes) {
|
||
|
||
const s = new Stream(bytes);
|
||
|
||
const alpnExtLen = s.readInt(2);
|
||
|
||
- if (alpnExtLen < 3) return “00”;
|
||
|
||
- if (alpnExtLen < 2) return null;
|
||
|
||
const strLen = s.readInt(1);
|
||
|
||
- if (strLen < 2) return “00”;
|
||
|
||
- return s.readString(strLen);
|
||
|
||
- if (strLen < 1) return null;
|
||
|
||
- return s.getBytes(strLen);
|
||
|
||
}
|
||
|
||
ADDED in gchq (missing in mkilijanek):
|
||
src/core/operations/FromBech32.mjs
|
||
|
||
CHANGED: src/core/operations/FromHexdump.mjs —
|
||
mkilijanek/src/core/operations/FromHexdump.mjs +++
|
||
gchq/src/core/operations/FromHexdump.mjs @@ -43,7 +43,7 @@ */
|
||
|
||
run(input, args) {
|
||
|
||
const output = [],
|
||
|
||
- regex = /^\s*(?:[\dA-F]{4,16}h?:?)?[ \t]+((?:[\dA-F]{2} ){1,8}(?:[ \t]|[\dA-F]{2}-)(?:[\dA-F]{2} ){1,8}|(?:[\dA-F]{4} )*[\dA-F]{4}|(?:[\dA-F]{2} )*[\dA-F]{2})/igm;
|
||
|
||
- regex = /^\s*(?:[\dA-F]{4,16}h?:?)?[ \t]+((?:[\dA-F]{2} ){1,8}(?:[ \t]|[\dA-F]{2}-)(?:[\dA-F]{2} ){1,8}|(?:[\dA-F]{4} )+(?:[\dA-F]{2})?|(?:[\dA-F]{2} )*[\dA-F]{2})/igm;
|
||
|
||
let block, line;
|
||
|
||
|
||
|
||
while ((block = regex.exec(input))) {
|
||
|
||
CHANGED: src/core/operations/FromQuotedPrintable.mjs —
|
||
mkilijanek/src/core/operations/FromQuotedPrintable.mjs +++
|
||
gchq/src/core/operations/FromQuotedPrintable.mjs @@ -23,7 +23,7 @@
|
||
|
||
this.name = "From Quoted Printable";
|
||
|
||
this.module = "Default";
|
||
|
||
- this.description = "Converts QP-encoded text back to standard text.<br><br>e.g. The quoted-printable encoded string <code>hello=20world</code> becomes <code>hello world</code>";
|
||
|
||
- this.description = "Converts QP-encoded text back to standard text. This format is a content transfer encoding common in email messages.<br><br>e.g. The quoted-printable encoded string <code>hello=20world</code> becomes <code>hello world</code>";
|
||
|
||
this.infoURL = "https://wikipedia.org/wiki/Quoted-printable";
|
||
|
||
this.inputType = "string";
|
||
|
||
this.outputType = "byteArray";
|
||
|
||
CHANGED: src/core/operations/ToBase85.mjs —
|
||
mkilijanek/src/core/operations/ToBase85.mjs +++
|
||
gchq/src/core/operations/ToBase85.mjs @@ -33,7 +33,7 @@ value:
|
||
ALPHABET_OPTIONS
|
||
|
||
},
|
||
|
||
{
|
||
|
||
- name: "Include delimeter",
|
||
|
||
- name: "Include delimiter",
|
||
|
||
type: "boolean",
|
||
|
||
value: false
|
||
|
||
}
|
||
|
||
ADDED in gchq (missing in mkilijanek): src/core/operations/ToBech32.mjs
|
||
|
||
CHANGED: src/core/operations/ToQuotedPrintable.mjs —
|
||
mkilijanek/src/core/operations/ToQuotedPrintable.mjs +++
|
||
gchq/src/core/operations/ToQuotedPrintable.mjs @@ -23,7 +23,7 @@
|
||
|
||
this.name = "To Quoted Printable";
|
||
|
||
this.module = "Default";
|
||
|
||
- this.description = "Quoted-Printable, or QP encoding, is an encoding using printable ASCII characters (alphanumeric and the equals sign '=') to transmit 8-bit data over a 7-bit data path or, generally, over a medium which is not 8-bit clean. It is defined as a MIME content transfer encoding for use in e-mail.<br><br>QP works by using the equals sign '=' as an escape character. It also limits line length to 76, as some software has limits on line length.";
|
||
|
||
- this.description = "Quoted-Printable, or QP encoding, is an encoding using printable ASCII characters (alphanumeric and the equals sign '=') to transmit 8-bit data over a 7-bit data path or, generally, over a medium which is not 8-bit clean. It is defined as a MIME content transfer encoding for use in email.<br><br>QP works by using the equals sign '=' as an escape character. It also limits line length to 76, as some software has limits on line length.";
|
||
|
||
this.infoURL = "https://wikipedia.org/wiki/Quoted-printable";
|
||
|
||
this.inputType = "ArrayBuffer";
|
||
|
||
this.outputType = "string";
|
||
|
||
CHANGED: src/core/vendor/gost/gostRandom.mjs —
|
||
mkilijanek/src/core/vendor/gost/gostRandom.mjs +++
|
||
gchq/src/core/vendor/gost/gostRandom.mjs @@ -114,10 +114,7 @@ // Native
|
||
window cryptographic interface
|
||
|
||
rootCrypto.getRandomValues(u8);
|
||
|
||
} else {
|
||
|
||
- // Standard Javascript method - WARNING: Not cryptographically secure!
|
||
|
||
- if (typeof console !== "undefined" && console.warn) {
|
||
|
||
- console.warn("SECURITY WARNING: crypto.getRandomValues not available, falling back to Math.random() which is NOT cryptographically secure!");
|
||
|
||
- }
|
||
|
||
- // Standard Javascript method
|
||
|
||
for (var i = 0, n = u8.length; i < n; i++)
|
||
|
||
u8[i] = Math.floor(256 * Math.random()) & 255;
|
||
|
||
}
|
||
|
||
CHANGED: src/node/apiUtils.mjs — mkilijanek/src/node/apiUtils.mjs +++
|
||
gchq/src/node/apiUtils.mjs @@ -66,7 +66,7 @@ * @param str
|
||
|
||
*/
|
||
|
||
export function sanitise(str) {
|
||
|
||
- return str.replace(/ /g, ““).toLowerCase();
|
||
|
||
- return str.replace(/[/.-]/g, ““).toLowerCase();
|
||
|
||
}
|
||
|
||
CHANGED: src/web/App.mjs — mkilijanek/src/web/App.mjs +++
|
||
gchq/src/web/App.mjs @@ -650,7 +650,7 @@
|
||
|
||
// const compareURL = `https://github.com/gchq/CyberChef/compare/v${prev.join(".")}...v${PKG_VERSION}`;
|
||
|
||
- let compileInfo = `<a href='https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md'>Last build: ${timeSinceCompile.substr(0, 1).toUpperCase() + timeSinceCompile.substr(1)} ago</a>`;
|
||
|
||
- let compileInfo = `<a href='https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md'>Last build: ${timeSinceCompile.substring(0, 1).toUpperCase() + timeSinceCompile.substring(1)} ago</a>`;
|
||
|
||
|
||
|
||
if (window.compileMessage !== "") {
|
||
|
||
compileInfo += " - " + window.compileMessage;
|
||
|
||
CHANGED: src/web/static/sitemap.mjs —
|
||
mkilijanek/src/web/static/sitemap.mjs +++
|
||
gchq/src/web/static/sitemap.mjs @@ -1,6 +1,5 @@ import sm from
|
||
“sitemap”;
|
||
|
||
-import OperationConfig from “../../core/config/OperationConfig.json”
|
||
assert {type: “json”};
|
||
|
||
-
|
||
|
||
+import OperationConfig from “../../core/config/OperationConfig.json”
|
||
assert { type: “json” };
|
||
|
||
/**
|
||
|
||
- Generates an XML sitemap for all CyberChef operations and a number
|
||
of recipes.
|
||
|
||
@@ -10,25 +9,25 @@ * @license Apache-2.0
|
||
|
||
*/
|
||
|
||
-const smStream = new sm.SitemapStream({
|
||
|
||
- hostname: “https://gchq.github.io/CyberChef”,
|
||
|
||
-});
|
||
|
||
+const baseUrl = “https://gchq.github.io/CyberChef/”;
|
||
|
||
-
|
||
|
||
+const smStream = new sm.SitemapStream({});
|
||
|
||
smStream.write({
|
||
|
||
- url: “/”,
|
||
|
||
- url: baseUrl,
|
||
|
||
changefreq: “weekly”,
|
||
|
||
- priority: 1.0
|
||
|
||
- priority: 1.0,
|
||
|
||
});
|
||
|
||
for (const op in OperationConfig) {
|
||
|
||
smStream.write({
|
||
|
||
- url: `/?op=${encodeURIComponent(op)}`,
|
||
|
||
- url: `${baseUrl}?op=${encodeURIComponent(op)}`,
|
||
|
||
changeFreq: "yearly",
|
||
|
||
- priority: 0.5
|
||
|
||
- priority: 0.5,
|
||
|
||
});
|
||
|
||
}
|
||
|
||
smStream.end();
|
||
|
||
sm.streamToPromise(smStream).then(
|
||
|
||
- buffer => console.log(buffer.toString()) // eslint-disable-line
|
||
no-console
|
||
|
||
- (buffer) => console.log(buffer.toString()), // eslint-disable-line
|
||
no-console
|
||
|
||
);
|
||
|
||
CHANGED: src/web/waiters/InputWaiter.mjs —
|
||
mkilijanek/src/web/waiters/InputWaiter.mjs +++
|
||
gchq/src/web/waiters/InputWaiter.mjs @@ -151,8 +151,20 @@ // Event
|
||
handlers
|
||
|
||
EditorView.domEventHandlers({
|
||
|
||
paste(event, view) {
|
||
|
||
- const clipboardData = event.clipboardData;
|
||
|
||
- const items = clipboardData.items;
|
||
|
||
- const files = [];
|
||
|
||
- for (let i = 0; i < items.length; i++) {
|
||
|
||
- const item = items[i];
|
||
|
||
- if (item.kind === "file") {
|
||
|
||
- const file = item.getAsFile();
|
||
|
||
- files.push(file);
|
||
|
||
-
|
||
|
||
- event.preventDefault(); // Prevent the default paste behavior
|
||
|
||
- }
|
||
|
||
- }
|
||
|
||
setTimeout(() => {
|
||
|
||
- self.afterPaste(event);
|
||
|
||
- self.afterPaste(files);
|
||
|
||
});
|
||
|
||
}
|
||
|
||
})
|
||
|
||
@@ -914,9 +926,12 @@ * Handler that fires just after input paste events.
|
||
|
||
* Checks whether the EOL separator or character encoding should be updated.
|
||
|
||
*
|
||
|
||
- * @param {event} e
|
||
|
||
- */
|
||
|
||
- afterPaste(e) {
|
||
|
||
- * @param {File[]} files - An array of any files that were included in the paste event
|
||
|
||
- */
|
||
|
||
- afterPaste(files) {
|
||
|
||
- if (files.length > 0) {
|
||
|
||
- this.loadUIFiles(files);
|
||
|
||
- }
|
||
|
||
// If EOL has been fixed, skip this.
|
||
|
||
if (this.eolState > 1) return;
|
||
|
||
CHANGED: src/web/workers/DishWorker.mjs —
|
||
mkilijanek/src/web/workers/DishWorker.mjs +++
|
||
gchq/src/web/workers/DishWorker.mjs @@ -7,6 +7,8 @@ */
|
||
|
||
import Dish from “../../core/Dish.mjs”;
|
||
|
||
+import DishError from “../../core/errors/DishError.mjs”;
|
||
|
||
+import { CHR_ENC_SIMPLE_REVERSE_LOOKUP } from
|
||
“../../core/lib/ChrEnc.mjs”;
|
||
|
||
import Utils from “../../core/Utils.mjs”;
|
||
|
||
import cptable from “codepage”;
|
||
|
||
import loglevelMessagePrefix from “loglevel-message-prefix”;
|
||
|
||
@@ -98,7 +100,7 @@ try {
|
||
|
||
str = cptable.utils.decode(data.encoding, new Uint8Array(data.buffer));
|
||
|
||
} catch (err) {
|
||
|
||
- str = err;
|
||
|
||
- str = new DishError(`Error decoding buffer with encoding ${CHR_ENC_SIMPLE_REVERSE_LOOKUP[data.encoding]}: ${err.message}`).toString();
|
||
|
||
}
|
||
|
||
}
|
||
|
||
CHANGED: tests/node/tests/Utils.mjs —
|
||
mkilijanek/tests/node/tests/Utils.mjs +++
|
||
gchq/tests/node/tests/Utils.mjs @@ -20,4 +20,10 @@
|
||
assert.equal(Utils.parseEscapedChars(“\\\‘“),”\’”);
|
||
|
||
}),
|
||
|
||
- it(“Utils: should replace delete character”, () => {
|
||
|
||
- assert.equal(
|
||
|
||
- Utils.printable("\x7e\x7f\x80\xa7", false, true),
|
||
|
||
- "\x7e...",
|
||
|
||
- );
|
||
|
||
- }),
|
||
|
||
]);
|
||
|
||
CHANGED: tests/node/tests/nodeApi.mjs —
|
||
mkilijanek/tests/node/tests/nodeApi.mjs +++
|
||
gchq/tests/node/tests/nodeApi.mjs @@ -343,6 +343,42 @@ “args”: [false] }
|
||
|
||
]);
|
||
|
||
assert.strictEqual(result.toString(), "begin_something_aaaaaaaaaaaaaa_end_something");
|
||
|
||
- }),
|
||
|
||
-
|
||
|
||
- it(“chef.bake: should accept operation names from Chef Website which
|
||
contain forward slash”, () => {
|
||
|
||
- const result = chef.bake("I'll have the test salmon", [
|
||
|
||
- { "op": "Find / Replace",
|
||
|
||
- "args": [{ "option": "Regex", "string": "test" }, "good", true, false, true, false]}
|
||
|
||
- ]);
|
||
|
||
- assert.strictEqual(result.toString(), "I'll have the good salmon");
|
||
|
||
- }),
|
||
|
||
-
|
||
|
||
- it(“chef.bake: should accept operation names from Chef Website which
|
||
contain a hyphen”, () => {
|
||
|
||
- const result = chef.bake("I'll have the test salmon", [
|
||
|
||
- { "op": "Adler-32 Checksum",
|
||
|
||
- "args": [] }
|
||
|
||
- ]);
|
||
|
||
- assert.strictEqual(result.toString(), "6e4208f8");
|
||
|
||
- }),
|
||
|
||
-
|
||
|
||
- it(“chef.bake: should accept operation names from Chef Website which
|
||
contain a period”, () => {
|
||
|
||
- const result = chef.bake("30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f", [
|
||
|
||
- { "op": "Parse ASN.1 hex string",
|
||
|
||
- "args": [0, 32] }
|
||
|
||
- ]);
|
||
|
||
- assert.strictEqual(result.toString(), `SEQUENCE
|
||
|
||
- INTEGER 05
|
||
|
||
- IA5String ‘Anybody there?’
|
||
|
||
+`);
|
||
|
||
- }),
|
||
|
||
-
|
||
|
||
- it(“Excluded operations: throw a sensible error when you try and
|
||
call one”, () => {
|
||
|
||
- try {
|
||
|
||
- chef.fork();
|
||
|
||
- } catch (e) {
|
||
|
||
- assert.strictEqual(e.type, "ExcludedOperationError");
|
||
|
||
- assert.strictEqual(e.message, "Sorry, the Fork operation is not available in the Node.js version of CyberChef.");
|
||
|
||
- }
|
||
|
||
}),
|
||
|
||
it(“chef.bake: cannot accept flowControl operations in recipe”, ()
|
||
=> {
|
||
|
||
CHANGED: tests/operations/index.mjs —
|
||
mkilijanek/tests/operations/index.mjs +++
|
||
gchq/tests/operations/index.mjs @@ -26,6 +26,7 @@ import
|
||
“./tests/Base85.mjs”;
|
||
|
||
import “./tests/Base92.mjs”;
|
||
|
||
import “./tests/BCD.mjs”;
|
||
|
||
+import “./tests/Bech32.mjs”;
|
||
|
||
import “./tests/BitwiseOp.mjs”;
|
||
|
||
import “./tests/BLAKE2b.mjs”;
|
||
|
||
import “./tests/BLAKE2s.mjs”;
|
||
|
||
ADDED in gchq (missing in mkilijanek): tests/operations/tests/Bech32.mjs
|
||
|
||
CHANGED: tests/operations/tests/Code.mjs —
|
||
mkilijanek/tests/operations/tests/Code.mjs +++
|
||
gchq/tests/operations/tests/Code.mjs @@ -322,8 +322,21 @@ ]
|
||
|
||
}
|
||
|
||
],
|
||
|
||
- expectedMatch: /^Invalid JPath expression: jsonPath: self is not defined:/
|
||
|
||
- },
|
||
|
||
- expectedMatch: /^Invalid JPath expression: Unexpected "{" at character 1/
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
- name: "JPath Expression: Script-based RCE",
|
||
|
||
- input: "[{}]",
|
||
|
||
- recipeConfig: [
|
||
|
||
- {
|
||
|
||
- "op": "JPath expression",
|
||
|
||
- "args": [
|
||
|
||
- "$..[?(p=\"console.log(this.process.mainModule.require('child_process').execSync('id').toString())\";a=''[['constructor']][['constructor']](p);a())]",
|
||
|
||
- "\n"
|
||
|
||
- ]
|
||
|
||
- }
|
||
|
||
- ],
|
||
|
||
- expectedMatch: /^Invalid JPath expression: jsonPath: Cannot read properties of {2}\(reading 'constructor'\): / },
|
||
|
||
{
|
||
|
||
name: "CSS selector",
|
||
|
||
input: '<div id="test">\n<p class="a">hello</p>\n<p>world</p>\n<p class="a">again</p>\n</div>',
|
||
|
||
CHANGED: tests/operations/tests/Hex.mjs —
|
||
mkilijanek/tests/operations/tests/Hex.mjs +++
|
||
gchq/tests/operations/tests/Hex.mjs @@ -38,6 +38,20 @@ “op”: “To Hex”,
|
||
|
||
"args": [
|
||
|
||
"0x with comma",
|
||
|
||
- 0
|
||
|
||
- ]
|
||
|
||
- }
|
||
|
||
- ]
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
- name: "ASCII to Hex with percent deliminator",
|
||
|
||
- input: "aberystwyth",
|
||
|
||
- expectedOutput: "%61%62%65%72%79%73%74%77%79%74%68",
|
||
|
||
- recipeConfig: [
|
||
|
||
- {
|
||
|
||
- "op": "To Hex",
|
||
|
||
- "args": [
|
||
|
||
- "Percent",
|
||
|
||
0
|
||
|
||
]
|
||
|
||
}
|
||
|
||
CHANGED: tests/operations/tests/Hexdump.mjs —
|
||
mkilijanek/tests/operations/tests/Hexdump.mjs +++
|
||
gchq/tests/operations/tests/Hexdump.mjs @@ -153,6 +153,17 @@ ],
|
||
|
||
},
|
||
|
||
{
|
||
|
||
- name: "From Hexdump: xxd format, odd number of bytes",
|
||
|
||
- input: "00000000: 6162 6364 65 abcde",
|
||
|
||
- expectedOutput: "abcde",
|
||
|
||
- recipeConfig: [
|
||
|
||
- {
|
||
|
||
- op: "From Hexdump",
|
||
|
||
- args: []
|
||
|
||
- }
|
||
|
||
- ],
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
name: "From Hexdump: Wireshark",
|
||
|
||
input: `00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ........ ........
|
||
|
||
00000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f …….. ……..
|
||
|
||
CHANGED: tests/operations/tests/JA4.mjs —
|
||
mkilijanek/tests/operations/tests/JA4.mjs +++
|
||
gchq/tests/operations/tests/JA4.mjs @@ -27,6 +27,28 @@ {
|
||
|
||
"op": "JA4 Fingerprint",
|
||
|
||
"args": ["Hex", "JA4 Original Rendering"]
|
||
|
||
- }
|
||
|
||
- ],
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
- name: "JA4 Fingerprint: TLS 1.3 with whitespace-only ALPN",
|
||
|
||
- input: "1603010200010001fc0303ed338a18e711d670cdc472ff570a5b59f1ace12e5365918bf68bf845019147b6207e4437bfb062d98a4aeb753be8f09022a9dc9413d7694dad4db57fcdcf076e820024130213031301c02cc030c02bc02fcca9cca8c024c028c023c027009f009e006b006700ff0100018f0000001800160000136465762e636f6e74656e74677261622e6e6574000b000403000102000a00160014001d0017001e00190018010001010102010301040023000000100004000201200016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b00050403040303002d00020101003300260024001d00207af053336d5e2c1675aa4c6ce78de5e5fdbd296538113f051ea17ccb64289f22001500d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||
|
||
- expectedOutput: "t13d181220_85036bcba153_d41ae481755e",
|
||
|
||
- recipeConfig: [
|
||
|
||
- {
|
||
|
||
- "op": "JA4 Fingerprint",
|
||
|
||
- "args": ["Hex", "JA4"]
|
||
|
||
- }
|
||
|
||
- ],
|
||
|
||
- },
|
||
|
||
- {
|
||
|
||
- name: "JA4 Fingerprint: TLS 1.3 with ALPN containing a whitespace",
|
||
|
||
- input: "1603010200010001fc0303273682a603be3f64dd025df4ad0f4d2d13043c3a233405a68bb29b865808749a20f4dfc40242b2fce38fae26c516ef9bef20a1b9349eba3c003780168d72471f5c0024130213031301c02cc030c02bc02fcca9cca8c024c028c023c027009f009e006b006700ff0100018f0000001800160000136465762e636f6e74656e74677261622e6e6574000b000403000102000a00160014001d0017001e0019001801000101010201030104002300000010000500030261200016000000170000000d002a0028040305030603080708080809080a080b080408050806040105010601030303010302040205020602002b00050403040303002d00020101003300260024001d0020f4dd1567bd858d3a9f1d88db1fee6a10ab0ea1aa6afe96ffb6a7c4d79dea4075001500d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||
|
||
- expectedOutput: "t13d181260_85036bcba153_d41ae481755e",
|
||
|
||
- recipeConfig: [
|
||
|
||
- {
|
||
|
||
- "op": "JA4 Fingerprint",
|
||
|
||
- "args": ["Hex", "JA4"]
|
||
|
||
}
|
||
|
||
],
|
||
|
||
},
|