This commit is contained in:
Fedor Indutny 2025-02-19 10:16:41 -08:00 committed by GitHub
parent 1d44c70393
commit a9fb186c23
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 28499 additions and 35797 deletions

View file

@ -17,7 +17,7 @@ Remember, you can preview this before saving it.
- [ ] My contribution is **not** related to translations.
- [ ] My commits are in nice logical chunks with [good commit messages](http://chris.beams.io/posts/git-commit/)
- [ ] My changes are [rebased](https://medium.com/free-code-camp/git-rebase-and-the-golden-rule-explained-70715eccc372) on the latest [`main`](https://github.com/signalapp/Signal-Desktop/tree/main) branch
- [ ] A `npm run ready` run passes successfully ([more about tests here](https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md#tests))
- [ ] A `pnpm run ready` run passes successfully ([more about tests here](https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md#tests))
- [ ] My changes are ready to be shipped to users
### Description

View file

@ -27,35 +27,43 @@ jobs:
- name: Clone Desktop repo
uses: actions/checkout@v4
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Install global dependencies
run: npm install -g npm@10.2.5
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- name: Install xvfb
run: sudo apt-get install xvfb libpulse0
- name: Cache Desktop node_modules
id: cache-desktop-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- name: Build typescript
run: npm run generate
run: pnpm run generate
- name: Bundle
run: npm run build:esbuild:prod
run: pnpm run build:esbuild:prod
- name: Create preload cache
run: xvfb-run --auto-servernum npm run build:preload-cache
run: xvfb-run --auto-servernum pnpm run build:preload-cache
- name: Run startup benchmarks
run: |
@ -201,8 +209,8 @@ jobs:
- name: Build benchmark repo
working-directory: benchmark-results
run: |
npm ci
npm run build
pnpm install
pnpm run build
- name: Publish to DataDog
working-directory: benchmark-results

View file

@ -19,11 +19,25 @@ jobs:
- run: lsb_release -a
- run: uname -a
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: npm install -g npm@10.2.5
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Restore cached .eslintcache and tsconfig.tsbuildinfo
uses: actions/cache/restore@v4
@ -32,28 +46,23 @@ jobs:
path: |
.eslintcache
tsconfig.tsbuildinfo
key: lint-${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**', '.eslintrc.js', '.eslint/**', 'tsconfig.json') }}
- name: Cache Desktop node_modules
id: cache-desktop-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
key: lint-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**', '.eslintrc.js', '.eslint/**', 'tsconfig.json') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- run: npm run generate
- run: npm run lint
- run: npm run lint-deps
- run: npm run lint-license-comments
- run: pnpm run generate
- run: pnpm run lint
- run: pnpm run lint-deps
- run: pnpm run lint-license-comments
- name: Check acknowledgments file is up to date
run: npm run build:acknowledgments
run: pnpm run build:acknowledgments
env:
REQUIRE_SIGNAL_LIB_FILES: 1
@ -77,36 +86,48 @@ jobs:
steps:
- run: uname -a
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- run: npm install -g npm@10.2.5
- name: Cache Desktop node_modules
id: cache-desktop-modules
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CC: sccache clang
CXX: sccache clang++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- run: npm run generate
- run: npm run prepare-beta-build
- run: npm run test-node
- run: npm run test-electron
- run: pnpm run generate
- run: pnpm run prepare-beta-build
- run: pnpm run test-node
- run: pnpm run test-electron
env:
ARTIFACTS_DIR: artifacts/macos
WORKER_COUNT: 4
timeout-minutes: 5
- run: touch noop.sh && chmod +x noop.sh
- run: npm run build
- run: pnpm run build
env:
CC: sccache clang
CXX: sccache clang++
SCCACHE_GHA_ENABLED: "true"
DISABLE_INSPECT_FUSE: on
SIGN_MACOS_SCRIPT: noop.sh
ARTIFACTS_DIR: artifacts/macos
@ -118,12 +139,9 @@ jobs:
node ts/scripts/dd-installer-size.js macos-universal
env:
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
- name: Rebuild native modules for x64
run: npm run electron:install-app-deps
- run: npm run test-release
- run: pnpm run test-release
env:
NODE_ENV: production
- run: npm run test-eslint
- name: Upload artifacts on failure
if: failure()
@ -140,46 +158,60 @@ jobs:
- run: lsb_release -a
- run: uname -a
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- run: sudo apt-get install xvfb libpulse0
- run: npm install -g npm@10.2.5
- name: Cache Desktop node_modules
id: cache-desktop-modules
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- run: npm run generate
- run: npm run prepare-beta-build
- run: pnpm run generate
- run: pnpm run prepare-beta-build
- name: Create bundle
run: npm run build:esbuild:prod
run: pnpm run build:esbuild:prod
- name: Create preload cache
run: xvfb-run --auto-servernum npm run build:preload-cache
run: xvfb-run --auto-servernum pnpm run build:preload-cache
env:
ARTIFACTS_DIR: artifacts/linux
- name: Build with packaging .deb file
run: npm run build:release -- --publish=never
run: pnpm run build:release -- --publish=never
if: github.ref == 'refs/heads/main'
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
DISABLE_INSPECT_FUSE: on
- name: Build without packaging .deb file
run: npm run build:release -- --linux dir
run: pnpm run build:release -- --linux dir
if: github.ref != 'refs/heads/main'
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
DISABLE_INSPECT_FUSE: on
- name: Upload installer size
@ -188,7 +220,7 @@ jobs:
env:
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
- run: xvfb-run --auto-servernum npm run test-node
- run: xvfb-run --auto-servernum pnpm run test-node
- name: Clone backup integration tests
uses: actions/checkout@v4
@ -197,14 +229,15 @@ jobs:
ref: '2e22808478e08c72e11a7483900c9af6c9b1acf4'
path: 'backup-integration-tests'
- run: xvfb-run --auto-servernum npm run test-electron
- run: xvfb-run --auto-servernum pnpm run test-electron
timeout-minutes: 5
env:
ARTIFACTS_DIR: artifacts/linux
LANG: en_US
LANGUAGE: en_US
BACKUP_INTEGRATION_DIR: 'backup-integration-tests/test-cases'
- run: xvfb-run --auto-servernum npm run test-release
WORKER_COUNT: 8
- run: xvfb-run --auto-servernum pnpm run test-release
env:
NODE_ENV: production
@ -228,11 +261,16 @@ jobs:
- run: git config --global core.autocrlf false
- run: git config --global core.eol lf
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: npm install -g npm@10.2.5 node-gyp@10.0.1
- run: pnpm install -g node-gyp@10.0.1
# Set things up so @nodert-win10-rs4 dependencies build properly
- run: dir "$env:BUILD_LOCATION"
@ -245,36 +283,36 @@ jobs:
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
key: ${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CHILD_CONCURRENCY: 1
NPM_CONFIG_LOGLEVEL: verbose
- run: npm run generate
- run: npm run test-node
- run: pnpm run generate
- run: pnpm run test-node
- run: copy package.json temp.json
- run: del package.json
- run: type temp.json | findstr /v certificateSubjectName | findstr /v certificateSha1 > package.json
- run: npm run prepare-beta-build
- run: pnpm run prepare-beta-build
- name: Create bundle
run: npm run build:esbuild:prod
run: pnpm run build:esbuild:prod
- name: Create preload cache
run: npm run build:preload-cache
run: pnpm run build:preload-cache
env:
ARTIFACTS_DIR: artifacts/win
- name: Build with NSIS
run: npm run build:release
run: pnpm run build:release
if: github.ref == 'refs/heads/main'
env:
DISABLE_INSPECT_FUSE: on
- name: Build without NSIS
run: npm run build:release -- --win dir
run: pnpm run build:release -- --win dir
if: github.ref != 'refs/heads/main'
env:
DISABLE_INSPECT_FUSE: on
@ -285,11 +323,11 @@ jobs:
env:
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
- run: npm run test-electron
- run: pnpm run test-electron
env:
ARTIFACTS_DIR: artifacts/windows
timeout-minutes: 5
- run: npm run test-release
- run: pnpm run test-release
env:
SIGNAL_ENV: production
@ -310,30 +348,32 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Install Sticker Creator node_modules
run: npm ci
run: pnpm install
- name: Build Sticker Creator
run: npm run build
run: pnpm run build
- name: Check Sticker Creator types
run: npm run check:types
run: pnpm run check:types
- name: Check Sticker Creator formatting
run: npm run prettier:check
run: pnpm run prettier:check
- name: Check Sticker Creator linting
run: npm run lint
run: pnpm run lint
- name: Run tests
run: npm test -- --run
run: pnpm test -- --run
mock-tests:
needs: lint
@ -350,42 +390,50 @@ jobs:
- name: Clone Desktop repo
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: Install global dependencies
run: npm install -g npm@10.2.5
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- name: Install xvfb
run: sudo apt-get install xvfb libpulse0
- name: Cache Desktop node_modules
id: cache-desktop-modules
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json', 'patches/**') }}
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Install Desktop node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: npm ci
run: pnpm install
env:
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- name: Build typescript
run: npm run generate
run: pnpm run generate
- name: Bundle
run: npm run build:esbuild:prod
run: pnpm run build:esbuild:prod
- name: Create preload cache
run: xvfb-run --auto-servernum npm run build:preload-cache
run: xvfb-run --auto-servernum pnpm run build:preload-cache
env:
ARTIFACTS_DIR: artifacts/linux
- name: Run mock server tests
run: |
set -o pipefail
xvfb-run --auto-servernum npm run test-mock
xvfb-run --auto-servernum pnpm run test-mock
timeout-minutes: 10
env:
NODE_ENV: production

View file

@ -13,23 +13,17 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch all history
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- run: npm install -g npm@10.2.5
- name: Cache danger node_modules
id: cache-desktop-modules
uses: actions/cache@v3
with:
path: danger/node_modules
key: danger-${{ runner.os }}-${{ hashFiles('danger/package.json', 'danger/package-lock.json') }}
- name: Install danger node_modules
if: steps.cache-desktop-modules.outputs.cache-hit != 'true'
run: cd danger && npm ci
run: cd danger && pnpm install
- name: Run DangerJS
run: npm run danger:ci
run: pnpm run danger:ci
env:
DANGER_GITHUB_API_TOKEN: ${{ secrets.AUTOMATED_GITHUB_PAT }}

View file

@ -14,19 +14,34 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.3.0
- name: Setup node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: 'package-lock.json'
- name: Install global dependencies
run: npm install -g npm@10.2.5
cache: 'pnpm'
cache-dependency-path: 'pnpm-lock.yaml'
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.7
- name: Restore sccache
uses: actions/cache@v4
id: cache-sccache
with:
path: ${{ env.SCCACHE_PATH }}
key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}
- name: Install Desktop node_modules
run: npm ci
run: pnpm install
env:
CHILD_CONCURRENCY: 1
CC: sccache gcc
CXX: sccache g++
SCCACHE_GHA_ENABLED: "true"
NPM_CONFIG_LOGLEVEL: verbose
- run: npm run build:storybook
- run: npx playwright install chromium
- run: pnpm run build:storybook
- run: ./node_modules/.bin/playwright install chromium
- run: ./node_modules/.bin/run-p --race test:storybook:serve test:storybook:test

View file

@ -23,6 +23,7 @@ build/locale-display-names.json
build/country-display-names.json
build/compact-locales/**/*.json
release/**
pnpm-lock.yaml
# Third-party files
node_modules/**

View file

@ -3007,6 +3007,30 @@ Signal Desktop makes use of the following open source projects.
License: (MIT OR CC0-1.0)
## url
The MIT License (MIT)
Copyright 2014 Joyent, Inc. and other Node contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## urlpattern-polyfill
Copyright 2020 Intel Corporation

View file

@ -52,10 +52,11 @@ Now, run these commands in your preferred terminal in a good directory for devel
```
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
npm install # Install and build dependencies (this will take a while)
npm run generate # Generate final JS and CSS assets
npm test # A good idea to make sure tests run first
npm start # Start Signal!
npm install -g pnpm
pnpm install # Install and build dependencies (this will take a while)
pnpm run generate # Generate final JS and CSS assets
pnpm test # A good idea to make sure tests run first
pnpm start # Start Signal!
```
You'll need to restart the application regularly to see your changes, as there
@ -65,14 +66,14 @@ is no automatic restart mechanism. Alternatively, keep the developer tools open
(Windows & Linux).
Also, note that the assets loaded by the application are not necessarily the same files
youre touching. You may not see your changes until you run `npm run generate` on the
youre touching. You may not see your changes until you run `pnpm run generate` on the
command-line like you did during setup. You can make it easier on yourself by generating
the latest built assets when you change a file. Run each of these in their own terminal
instance while you make changes - they'll run until you stop them:
```
npm run dev:transpile # recompiles when you change .ts files
npm run dev:sass # recompiles when you change .scss files
pnpm run dev:transpile # recompiles when you change .ts files
pnpm run dev:sass # recompiles when you change .scss files
```
#### Known issues
@ -121,7 +122,7 @@ You can run a development server for these parts of the app with the
following command:
```
npm run dev
pnpm run dev
```
In order for the app to make requests to the development server you must set
@ -129,7 +130,7 @@ the `SIGNAL_ENABLE_HTTP` environment variable to a truthy value. On Linux and
macOS, that simply looks like this:
```
SIGNAL_ENABLE_HTTP=1 npm start
SIGNAL_ENABLE_HTTP=1 pnpm start
```
## Setting up standalone
@ -194,7 +195,7 @@ For example, to create an 'alice' profile, put a file called `local-alice.json`
Then you can start up the application a little differently to load the profile:
```
NODE_APP_INSTANCE=alice npm start
NODE_APP_INSTANCE=alice pnpm start
```
This changes the `userData` directory from `%appData%/Signal` to `%appData%/Signal-aliceProfile`.
@ -210,15 +211,15 @@ Please write tests! Our testing framework is
[mocha](http://mochajs.org/) and our assertion library is
[chai](http://chaijs.com/api/assert/).
The easiest way to run all tests at once is `npm test`, which will run them on the
The easiest way to run all tests at once is `pnpm test`, which will run them on the
command line. You can run the client-side tests in an interactive session with
`NODE_ENV=test npm start`.
`NODE_ENV=test pnpm start`.
## Pull requests
So you wanna make a pull request? Please observe the following guidelines.
- First, make sure that your `npm run ready` run passes - it's very similar to what our
- First, make sure that your `pnpm run ready` run passes - it's very similar to what our
Continuous Integration servers do to test the app.
- Please do not submit pull requests for translation fixes.
- Never use plain strings right in the source code - pull them from `messages.json`!
@ -297,11 +298,11 @@ will go to your new development desktop app instead of your phone.
To test changes to the build system, build a release using
```
npm run generate
npm run build
pnpm run generate
pnpm run build
```
Then, run the tests using `npm run test-release`.
Then, run the tests using `pnpm run test-release`.
### Testing MacOS builds
@ -312,8 +313,8 @@ you can ad-hoc sign the packaged app which will let you run it locally.
2. Build the app and ad-hoc sign the app bundle:
```
npm run generate
npm run build
pnpm run generate
pnpm run build
cd release
# Pick the desired app bundle: mac, mac-arm64, or mac-universal
cd mac-arm64

View file

@ -5779,6 +5779,10 @@
"messageformat": "Gradient end",
"description": "aria-label for the custom color gradient creator knob"
},
"icu:GIF--download": {
"messageformat": "Download GIF attachment",
"description": "Aria label for GIF attachment's Download button"
},
"icu:customDisappearingTimeOption": {
"messageformat": "Custom time...",
"description": "Text for an option in Disappearing Messages menu and Conversation Details Disappearing Messages setting when no user value is available"

2032
danger/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -3,5 +3,10 @@
"danger": "12.3.3",
"endanger": "7.0.4",
"typescript": "4.6.2"
},
"pnpm": {
"onlyBuiltDependencies": [
"core-js"
]
}
}

1545
danger/pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

32701
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -14,11 +14,11 @@
"browserslist": "last 1 chrome versions",
"main": "app/main.js",
"scripts": {
"postinstall": "npm run build:acknowledgments && patch-package --error-on-fail --error-on-warn && npm run electron:install-app-deps",
"postuninstall": "npm run build:acknowledgments",
"postinstall": "pnpm run build:acknowledgments && pnpm run electron:install-app-deps",
"postuninstall": "pnpm run build:acknowledgments",
"start": "electron .",
"generate": "npm-run-all build-protobuf build:esbuild build:icu-types build:compact-locales sass get-expire-time copy-components",
"build-release": "npm run build",
"build-release": "pnpm run build",
"sign-release": "node ts/updater/generateSignature.js",
"notarize": "echo 'No longer necessary'",
"get-strings": "ts-node ts/scripts/get-strings.ts && ts-node ts/scripts/gen-nsis-script.ts && ts-node ts/scripts/gen-locales-config.ts && run-p get-strings:locales get-strings:countries get-strings:emoji mark-unusued-strings-deleted && run-p build:compact-locales",
@ -32,8 +32,8 @@
"sass": "sass stylesheets/manifest.scss:stylesheets/manifest.css stylesheets/manifest_bridge.scss:stylesheets/manifest_bridge.css",
"build-module-protobuf": "pbjs --root='signal-desktop' --target static-module --force-long --no-typeurl --no-verify --no-create --no-convert --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --no-comments --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js",
"clean-module-protobuf": "rm -f ts/protobuf/compiled.d.ts ts/protobuf/compiled.js",
"build-protobuf": "npm run build-module-protobuf",
"clean-protobuf": "npm run clean-module-protobuf",
"build-protobuf": "pnpm run build-module-protobuf",
"clean-protobuf": "pnpm run clean-module-protobuf",
"prepare-beta-build": "node scripts/prepare_beta_build.js",
"prepare-alpha-build": "node scripts/prepare_alpha_build.js",
"prepare-alpha-version": "node scripts/prepare_tagged_version.js alpha",
@ -65,19 +65,19 @@
"check:types": "tsc --noEmit",
"clean-transpile": "node ./scripts/clean-transpile.js",
"ready": "npm-run-all --print-label clean-transpile generate --parallel lint lint-deps lint-intl test-node test-electron",
"dev": "npm run build-protobuf && cross-env SIGNAL_ENV=storybook storybook dev --port 6006",
"dev:transpile": "run-p \"check:types -- --watch\" dev:esbuild dev:icu-types dev:protobuf",
"dev": "pnpm run build-protobuf && cross-env SIGNAL_ENV=storybook storybook dev --port 6006",
"dev:transpile": "run-p \"check:types --watch\" dev:esbuild dev:icu-types dev:protobuf",
"dev:esbuild": "node scripts/esbuild.js --watch",
"dev:sass": "npm run sass -- --watch",
"dev:icu-types": "chokidar ./_locales/en/messages.json --initial --command \"npm run build:icu-types\"",
"dev:protobuf": "chokidar ./protos/**/*.proto --command \"npm run build-protobuf\"",
"build:storybook": "npm run build-protobuf && cross-env SIGNAL_ENV=storybook storybook build",
"test:storybook": "npm run build:storybook && run-p --race test:storybook:*",
"dev:sass": "pnpm run sass --watch",
"dev:icu-types": "chokidar ./_locales/en/messages.json --initial --command \"pnpm run build:icu-types\"",
"dev:protobuf": "chokidar ./protos/**/*.proto --command \"pnpm run build-protobuf\"",
"build:storybook": "pnpm run build-protobuf && cross-env SIGNAL_ENV=storybook storybook build",
"test:storybook": "pnpm run build:storybook && run-p --race test:storybook:*",
"test:storybook:serve": "http-server storybook-static --port 6006 --silent",
"test:storybook:test": "wait-on http://127.0.0.1:6006/ --timeout 5000 && test-storybook",
"build": "run-s --print-label generate build:esbuild:prod build:release",
"build-win32-all": "run-s --print-label generate build:esbuild:prod build:release-win32-all",
"build-linux": "run-s generate build:esbuild:prod && npm run build:release -- --publish=never",
"build-linux": "run-s generate build:esbuild:prod && pnpm run build:release --publish=never",
"build:acknowledgments": "node scripts/generate-acknowledgments.js",
"build:dns-fallback": "node ts/scripts/generate-dns-fallback.js",
"build:icu-types": "node ts/scripts/generate-icu-types.js",
@ -87,8 +87,8 @@
"build:esbuild": "node scripts/esbuild.js",
"build:esbuild:prod": "node scripts/esbuild.js --prod",
"build:electron": "electron-builder --config.extraMetadata.environment=$SIGNAL_ENV",
"build:release": "cross-env SIGNAL_ENV=production npm run build:electron -- --config.directories.output=release",
"build:release-win32-all": "npm run build:release -- --arm64 --x64",
"build:release": "cross-env SIGNAL_ENV=production pnpm run build:electron --config.directories.output=release",
"build:release-win32-all": "pnpm run build:release --arm64 --x64",
"build:preload-cache": "node ts/scripts/generate-preload-cache.js",
"verify": "run-p --print-label verify:*",
"verify:ts": "tsc --noEmit",
@ -112,7 +112,7 @@
"@popperjs/core": "2.11.8",
"@react-aria/utils": "3.25.3",
"@react-spring/web": "9.7.5",
"@signalapp/better-sqlite3": "9.0.11",
"@signalapp/better-sqlite3": "9.0.13",
"@signalapp/libsignal-client": "0.66.2",
"@signalapp/quill-cjs": "2.1.2",
"@signalapp/ringrtc": "2.49.5",
@ -191,6 +191,7 @@
"semver": "7.6.3",
"split2": "4.2.0",
"type-fest": "4.26.1",
"url": "0.11.4",
"urlpattern-polyfill": "10.0.0",
"uuid": "11.0.2",
"websocket": "1.0.34",
@ -224,11 +225,13 @@
"@storybook/addon-toolbars": "8.4.4",
"@storybook/addon-viewport": "8.4.4",
"@storybook/addon-webpack5-compiler-swc": "1.0.5",
"@storybook/csf": "0.1.11",
"@storybook/preview-api": "8.4.4",
"@storybook/react": "8.4.4",
"@storybook/react-webpack5": "8.4.4",
"@storybook/test": "8.4.4",
"@storybook/test-runner": "0.19.1",
"@storybook/types": "8.1.11",
"@types/backbone": "1.4.22",
"@types/blueimp-load-image": "5.16.6",
"@types/chai": "4.3.16",
@ -308,7 +311,6 @@
"node-gyp-build": "4.8.4",
"npm-run-all": "4.1.5",
"p-limit": "3.1.0",
"patch-package": "8.0.0",
"pixelmatch": "5.3.0",
"playwright": "1.45.0",
"pngjs": "7.0.0",
@ -336,28 +338,59 @@
"webpack-cli": "5.1.4",
"webpack-dev-server": "5.1.0"
},
"overrides": {
"@storybook/react": {
"@storybook/core": {
"node-fetch": "2.6.1"
}
"pnpm": {
"overrides": {
"@storybook/core>node-fetch": "$node-fetch",
"@types/react": "17.0.45",
"@types/react-dom": "17.0.17",
"eslint-config-airbnb-typescript-prettier>eslint-plugin-prettier": "5.2.1",
"canvas": "-",
"jsdom": "-",
"thenify-all>thenify": "3.3.1"
},
"@types/react": "17.0.45",
"@types/react-dom": "17.0.17",
"eslint-config-airbnb-typescript-prettier": {
"eslint-plugin-prettier": "5.2.1"
"patchedDependencies": {
"@types/backbone@1.4.22": "patches/@types+backbone+1.4.22.patch",
"casual@1.6.2": "patches/casual+1.6.2.patch",
"protobufjs@7.3.2": "patches/protobufjs+7.3.2.patch",
"@types/express@4.17.21": "patches/@types+express+4.17.21.patch",
"dmg-builder@26.0.0-alpha.8": "patches/dmg-builder+26.0.0-alpha.8.patch",
"protobufjs-cli@1.1.1": "patches/protobufjs-cli+1.1.1.patch",
"@types/fabric@4.5.3": "patches/@types+fabric+4.5.3.patch",
"electron-util@0.13.1": "patches/electron-util+0.13.1.patch",
"qrcode-generator@1.4.4": "patches/qrcode-generator+1.4.4.patch",
"@types/node-fetch@2.6.12": "patches/@types+node-fetch+2.6.12.patch",
"fabric@4.6.0": "patches/fabric+4.6.0.patch",
"react-contextmenu@2.14.0": "patches/react-contextmenu+2.14.0.patch",
"@vitest/expect@2.0.5": "patches/@vitest+expect+2.0.5.patch",
"got@11.8.5": "patches/got+11.8.5.patch",
"react-textarea-autosize@8.5.5": "patches/react-textarea-autosize+8.5.5.patch",
"app-builder-lib@26.0.0-alpha.8": "patches/app-builder-lib+26.0.0-alpha.8.patch",
"growing-file@0.1.3": "patches/growing-file+0.1.3.patch",
"websocket@1.0.34": "patches/websocket+1.0.34.patch",
"backbone@1.6.0": "patches/backbone+1.6.0.patch",
"node-fetch@2.6.7": "patches/node-fetch+2.6.7.patch",
"zod@3.23.8": "patches/zod+3.23.8.patch"
},
"fabric": {
"canvas": "$nop",
"jsdom": "$nop"
},
"read-last-lines": {
"mz": {
"thenify-all": {
"thenify": "3.3.1"
}
}
}
"onlyBuiltDependencies": [
"@indutny/mac-screen-share",
"@indutny/simple-windows-notifications",
"@parcel/watcher",
"@signalapp/libsignal-client",
"@signalapp/better-sqlite3",
"@signalapp/ringrtc",
"@swc/core",
"bufferutil",
"electron",
"esbuild",
"fs-xattr",
"mac-screen-capture-permissions",
"utf-8-validate"
],
"ignoredBuiltDependencies": [
"core-js",
"es5-ext",
"protobufjs"
]
},
"engines": {
"node": "20.18.2"

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/@types/backbone/index.d.ts b/node_modules/@types/backbone/index.d.ts
diff --git a/index.d.ts b/index.d.ts
index 15d9d4b..a431841 100644
--- a/node_modules/@types/backbone/index.d.ts
+++ b/node_modules/@types/backbone/index.d.ts
--- a/index.d.ts
+++ b/index.d.ts
@@ -66,7 +66,7 @@ declare namespace Backbone {
collection?: Collection<TModel> | undefined;
}

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/@types/express/index.d.ts b/node_modules/@types/express/index.d.ts
diff --git a/index.d.ts b/index.d.ts
index b92b15c..6536d9f 100644
--- a/node_modules/@types/express/index.d.ts
+++ b/node_modules/@types/express/index.d.ts
--- a/index.d.ts
+++ b/index.d.ts
@@ -47,7 +47,7 @@ declare namespace e {
/**
* This is a built-in middleware function in Express. It serves static files and is based on serve-static.

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/@types/fabric/fabric-impl.d.ts b/node_modules/@types/fabric/fabric-impl.d.ts
diff --git a/fabric-impl.d.ts b/fabric-impl.d.ts
index 9b2e307..6da58c3 100755
--- a/node_modules/@types/fabric/fabric-impl.d.ts
+++ b/node_modules/@types/fabric/fabric-impl.d.ts
--- a/fabric-impl.d.ts
+++ b/fabric-impl.d.ts
@@ -1194,18 +1194,6 @@ interface IStaticCanvasOptions {
svgViewportTransformation?: boolean | undefined;
}

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/@types/node-fetch/index.d.ts b/node_modules/@types/node-fetch/index.d.ts
diff --git a/index.d.ts b/index.d.ts
index f95f9c1..72b3814 100644
--- a/node_modules/@types/node-fetch/index.d.ts
+++ b/node_modules/@types/node-fetch/index.d.ts
--- a/index.d.ts
+++ b/index.d.ts
@@ -3,7 +3,8 @@
import FormData = require("form-data");
import { RequestOptions } from "http";

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/@vitest/expect/dist/chai.d.cts b/node_modules/@vitest/expect/dist/chai.d.cts
diff --git a/dist/chai.d.cts b/dist/chai.d.cts
index 7e23131..fc4c3ed 100644
--- a/node_modules/@vitest/expect/dist/chai.d.cts
+++ b/node_modules/@vitest/expect/dist/chai.d.cts
--- a/dist/chai.d.cts
+++ b/dist/chai.d.cts
@@ -13,1956 +13,4 @@
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 3.0

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/app-builder-lib/templates/nsis/include/installer.nsh b/node_modules/app-builder-lib/templates/nsis/include/installer.nsh
diff --git a/templates/nsis/include/installer.nsh b/templates/nsis/include/installer.nsh
index 34e91df..73bfffc 100644
--- a/node_modules/app-builder-lib/templates/nsis/include/installer.nsh
+++ b/node_modules/app-builder-lib/templates/nsis/include/installer.nsh
--- a/templates/nsis/include/installer.nsh
+++ b/templates/nsis/include/installer.nsh
@@ -90,7 +90,13 @@
${if} $installMode == "all"
SetShellVarContext current
@ -17,10 +17,10 @@ index 34e91df..73bfffc 100644
${if} $installMode == "all"
SetShellVarContext all
${endif}
diff --git a/node_modules/app-builder-lib/templates/nsis/installSection.nsh b/node_modules/app-builder-lib/templates/nsis/installSection.nsh
diff --git a/templates/nsis/installSection.nsh b/templates/nsis/installSection.nsh
index 053772f..a58ea8c 100644
--- a/node_modules/app-builder-lib/templates/nsis/installSection.nsh
+++ b/node_modules/app-builder-lib/templates/nsis/installSection.nsh
--- a/templates/nsis/installSection.nsh
+++ b/templates/nsis/installSection.nsh
@@ -22,11 +22,37 @@ StrCpy $appExe "$INSTDIR\${APP_EXECUTABLE_FILENAME}"
SpiderBanner::Show /MODERN
!endif

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/casual/src/casual.js b/node_modules/casual/src/casual.js
diff --git a/src/casual.js b/src/casual.js
index 9179af1..ed70b78 100644
--- a/node_modules/casual/src/casual.js
+++ b/node_modules/casual/src/casual.js
--- a/src/casual.js
+++ b/src/casual.js
@@ -1,11 +1,11 @@
var helpers = require('./helpers');
-var exists = require('fs').existsSync;

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/dmg-builder/out/dmgLicense.js b/node_modules/dmg-builder/out/dmgLicense.js
diff --git a/out/dmgLicense.js b/out/dmgLicense.js
index 9263c2b..40706e5 100644
--- a/node_modules/dmg-builder/out/dmgLicense.js
+++ b/node_modules/dmg-builder/out/dmgLicense.js
--- a/out/dmgLicense.js
+++ b/out/dmgLicense.js
@@ -6,7 +6,7 @@ const js_yaml_1 = require("js-yaml");
const license_1 = require("app-builder-lib/out/util/license");
const fs_extra_1 = require("fs-extra");

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/electron-util/index.d.ts b/node_modules/electron-util/index.d.ts
diff --git a/index.d.ts b/index.d.ts
index 8d493d5..fc522af 100644
--- a/node_modules/electron-util/index.d.ts
+++ b/node_modules/electron-util/index.d.ts
--- a/index.d.ts
+++ b/index.d.ts
@@ -1,7 +1,7 @@
/// <reference lib="dom"/>
/// <reference types="electron"/>
@ -20,10 +20,10 @@ index 8d493d5..fc522af 100644
/**
Check for various things.
diff --git a/node_modules/electron-util/source/is.js b/node_modules/electron-util/source/is.js
diff --git a/source/is.js b/source/is.js
index 9a7622f..9530a9c 100644
--- a/node_modules/electron-util/source/is.js
+++ b/node_modules/electron-util/source/is.js
--- a/source/is.js
+++ b/source/is.js
@@ -1,5 +1,4 @@
'use strict';
-const isDev = require('electron-is-dev');

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/fabric/dist/fabric.js b/node_modules/fabric/dist/fabric.js
diff --git a/dist/fabric.js b/dist/fabric.js
index 86536ce..846c34e 100644
--- a/node_modules/fabric/dist/fabric.js
+++ b/node_modules/fabric/dist/fabric.js
--- a/dist/fabric.js
+++ b/dist/fabric.js
@@ -19,23 +19,6 @@ if (typeof document !== 'undefined' && typeof window !== 'undefined') {
}
fabric.window = window;

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/got/dist/source/as-promise/index.js b/node_modules/got/dist/source/as-promise/index.js
diff --git a/dist/source/as-promise/index.js b/dist/source/as-promise/index.js
index b4026d3..a473860 100644
--- a/node_modules/got/dist/source/as-promise/index.js
+++ b/node_modules/got/dist/source/as-promise/index.js
--- a/dist/source/as-promise/index.js
+++ b/dist/source/as-promise/index.js
@@ -33,6 +33,7 @@ function asPromise(normalizedOptions) {
const promise = new PCancelable((resolve, reject, onCancel) => {
const makeRequest = (retryCount) => {

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/growing-file/lib/growing_file.js b/node_modules/growing-file/lib/growing_file.js
diff --git a/lib/growing_file.js b/lib/growing_file.js
index a25d618..0ff7634 100644
--- a/node_modules/growing-file/lib/growing_file.js
+++ b/node_modules/growing-file/lib/growing_file.js
--- a/lib/growing_file.js
+++ b/lib/growing_file.js
@@ -69,11 +69,15 @@ GrowingFile.prototype._readUntilEof = function() {
this._reading = true;

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js
diff --git a/lib/index.es.js b/lib/index.es.js
index 4852f7c..8a6bee9 100644
--- a/node_modules/node-fetch/lib/index.es.js
+++ b/node_modules/node-fetch/lib/index.es.js
--- a/lib/index.es.js
+++ b/lib/index.es.js
@@ -1253,6 +1253,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
@ -53,10 +53,10 @@ index 4852f7c..8a6bee9 100644
};
if (!isDomainOrSubdomain(request.url, locationURL)) {
diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js
diff --git a/lib/index.js b/lib/index.js
index e5b04f1..5153530 100644
--- a/node_modules/node-fetch/lib/index.js
+++ b/node_modules/node-fetch/lib/index.js
--- a/lib/index.js
+++ b/lib/index.js
@@ -1257,6 +1257,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
@ -108,10 +108,10 @@ index e5b04f1..5153530 100644
};
if (!isDomainOrSubdomain(request.url, locationURL)) {
diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs
diff --git a/lib/index.mjs b/lib/index.mjs
index 49ee05e..ec12540 100644
--- a/node_modules/node-fetch/lib/index.mjs
+++ b/node_modules/node-fetch/lib/index.mjs
--- a/lib/index.mjs
+++ b/lib/index.mjs
@@ -1251,6 +1251,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/protobufjs-cli/lib/tsd-jsdoc/publish.js b/node_modules/protobufjs-cli/lib/tsd-jsdoc/publish.js
diff --git a/lib/tsd-jsdoc/publish.js b/lib/tsd-jsdoc/publish.js
index 3846a99..20c61b6 100644
--- a/node_modules/protobufjs-cli/lib/tsd-jsdoc/publish.js
+++ b/node_modules/protobufjs-cli/lib/tsd-jsdoc/publish.js
--- a/lib/tsd-jsdoc/publish.js
+++ b/lib/tsd-jsdoc/publish.js
@@ -558,6 +558,13 @@ function handleClass(element, parent) {
handleElement(child, element);
});

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/qrcode-generator/qrcode.d.ts b/node_modules/qrcode-generator/qrcode.d.ts
diff --git a/qrcode.d.ts b/qrcode.d.ts
index b34952e..b394c44 100644
--- a/node_modules/qrcode-generator/qrcode.d.ts
+++ b/node_modules/qrcode-generator/qrcode.d.ts
--- a/qrcode.d.ts
+++ b/qrcode.d.ts
@@ -36,7 +36,7 @@ interface QRCodeFactory {
}
@ -11,10 +11,10 @@ index b34952e..b394c44 100644
make() : void;
getModuleCount() : number;
isDark(row: number, col: number) : boolean;
diff --git a/node_modules/qrcode-generator/qrcode.js b/node_modules/qrcode-generator/qrcode.js
diff --git a/qrcode.js b/qrcode.js
index 76889b5..f4d8c88 100644
--- a/node_modules/qrcode-generator/qrcode.js
+++ b/node_modules/qrcode-generator/qrcode.js
--- a/qrcode.js
+++ b/qrcode.js
@@ -1728,7 +1728,7 @@ var qrcode = function() {
var _mode = QRMode.MODE_8BIT_BYTE;

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/react-contextmenu/modules/ContextMenu.js b/node_modules/react-contextmenu/modules/ContextMenu.js
diff --git a/modules/ContextMenu.js b/modules/ContextMenu.js
index 2f88213..41e47ea 100644
--- a/node_modules/react-contextmenu/modules/ContextMenu.js
+++ b/node_modules/react-contextmenu/modules/ContextMenu.js
--- a/modules/ContextMenu.js
+++ b/modules/ContextMenu.js
@@ -81,6 +81,11 @@ var ContextMenu = function (_AbstractMenu) {
x = _e$detail$position.x,
y = _e$detail$position.y;
@ -52,10 +52,10 @@ index 2f88213..41e47ea 100644
});
}
}
diff --git a/node_modules/react-contextmenu/modules/SubMenu.js b/node_modules/react-contextmenu/modules/SubMenu.js
diff --git a/modules/SubMenu.js b/modules/SubMenu.js
index ad1dc70..c919be8 100644
--- a/node_modules/react-contextmenu/modules/SubMenu.js
+++ b/node_modules/react-contextmenu/modules/SubMenu.js
--- a/modules/SubMenu.js
+++ b/modules/SubMenu.js
@@ -129,6 +129,7 @@ var SubMenu = function (_AbstractMenu) {
if (_this.props.disabled || _this.state.visible) return;
@ -141,10 +141,10 @@ index ad1dc70..c919be8 100644
this.subMenu.classList.remove(_helpers.cssClasses.menuVisible);
}
}
diff --git a/node_modules/react-contextmenu/src/index.d.ts b/node_modules/react-contextmenu/src/index.d.ts
diff --git a/src/index.d.ts b/src/index.d.ts
index 753ce90..c5971a4 100644
--- a/node_modules/react-contextmenu/src/index.d.ts
+++ b/node_modules/react-contextmenu/src/index.d.ts
--- a/src/index.d.ts
+++ b/src/index.d.ts
@@ -14,6 +14,7 @@ declare module "react-contextmenu" {
preventHideOnResize?: boolean,
preventHideOnScroll?: boolean,

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js
diff --git a/dist/react-textarea-autosize.browser.cjs.js b/dist/react-textarea-autosize.browser.cjs.js
index 37d2acb..7f76a65 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js
--- a/dist/react-textarea-autosize.browser.cjs.js
+++ b/dist/react-textarea-autosize.browser.cjs.js
@@ -122,7 +122,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
@ -11,10 +11,10 @@ index 37d2acb..7f76a65 100644
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);
if (style === null) {
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js
diff --git a/dist/react-textarea-autosize.browser.development.cjs.js b/dist/react-textarea-autosize.browser.development.cjs.js
index 51e50d5..29a11e3 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js
--- a/dist/react-textarea-autosize.browser.development.cjs.js
+++ b/dist/react-textarea-autosize.browser.development.cjs.js
@@ -122,7 +122,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
@ -24,10 +24,10 @@ index 51e50d5..29a11e3 100644
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);
if (style === null) {
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js
diff --git a/dist/react-textarea-autosize.browser.development.esm.js b/dist/react-textarea-autosize.browser.development.esm.js
index bbaa14c..4eac3f8 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js
--- a/dist/react-textarea-autosize.browser.development.esm.js
+++ b/dist/react-textarea-autosize.browser.development.esm.js
@@ -94,7 +94,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
@ -37,10 +37,10 @@ index bbaa14c..4eac3f8 100644
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);
if (style === null) {
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js
diff --git a/dist/react-textarea-autosize.browser.esm.js b/dist/react-textarea-autosize.browser.esm.js
index 7376e08..196b550 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js
--- a/dist/react-textarea-autosize.browser.esm.js
+++ b/dist/react-textarea-autosize.browser.esm.js
@@ -94,7 +94,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/websocket/lib/WebSocketConnection.js b/node_modules/websocket/lib/WebSocketConnection.js
diff --git a/lib/WebSocketConnection.js b/lib/WebSocketConnection.js
index 219de63..93d3800 100644
--- a/node_modules/websocket/lib/WebSocketConnection.js
+++ b/node_modules/websocket/lib/WebSocketConnection.js
--- a/lib/WebSocketConnection.js
+++ b/lib/WebSocketConnection.js
@@ -271,7 +271,7 @@ WebSocketConnection.prototype.handleSocketData = function(data) {
this.processReceivedData();
};

View file

@ -1,7 +1,7 @@
diff --git a/node_modules/zod/lib/types.d.ts b/node_modules/zod/lib/types.d.ts
diff --git a/lib/types.d.ts b/lib/types.d.ts
index e5314e6..4c54da2 100644
--- a/node_modules/zod/lib/types.d.ts
+++ b/node_modules/zod/lib/types.d.ts
--- a/lib/types.d.ts
+++ b/lib/types.d.ts
@@ -59,7 +59,9 @@ export declare abstract class ZodType<Output = any, Def extends ZodTypeDef = Zod
};
_parseSync(input: ParseInput): SyncParseReturnType<Output>;

20983
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -3,3 +3,4 @@ public/*
src/assets/*
src/util/protos.*
stats.html
pnpm-lock.yaml

View file

@ -72,5 +72,12 @@
"typescript": "5.0.4",
"vite": "4.5.3",
"vitest": "0.30.1"
},
"pnpm": {
"onlyBuiltDependencies": [
"es5-ext",
"esbuild",
"protobufjs"
]
}
}

5513
sticker-creator/pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -61,9 +61,9 @@ export const ShareButtons: React.ComponentType<Props> = React.memo(
<button
type="button"
key={path}
aria-label={title}
className={styles.button}
onClick={() => window.open(url)}
title={title}
>
<svg width={32} height={32}>
<circle cx="16" cy="16" r="16" fill={fill} />

View file

@ -30,10 +30,10 @@ export default {
},
args: {
i18n,
onBack: fn(action('onBack')),
onBack: fn(action('onBack')) as ReturnType<typeof action>,
onDelete: action('onDelete'),
onForward: fn(action('onForward')),
onSave: fn(action('onSave')),
onForward: fn(action('onForward')) as ReturnType<typeof action>,
onSave: fn(action('onSave')) as ReturnType<typeof action>,
hasViewReceiptSetting: false,
renderToastManager: () => <i />,
queueStoryDownload: action('queueStoryDownload'),

View file

@ -25,8 +25,8 @@ export default {
i18n,
me: getDefaultConversation(),
myStories: [getFakeMyStory()],
onAddStory: fn(action('onAddStory')),
onClick: fn(action('onClick')),
onAddStory: fn(action('onAddStory')) as ReturnType<typeof action>,
onClick: fn(action('onClick')) as ReturnType<typeof action>,
queueStoryDownload: action('queueStoryDownload'),
showToast: action('showToast'),
},

View file

@ -212,7 +212,6 @@ export function NavSidebar({
<div className="NavSidebar__Content">{children}</div>
{/* eslint-disable-next-line jsx-a11y/role-supports-aria-props -- See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/separator_role#focusable_separator */}
<div
className={classNames('NavSidebar__DragHandle', {
'NavSidebar__DragHandle--dragging': dragState === DragState.DRAGGING,

View file

@ -16,19 +16,19 @@ export default {
getCaptchaToken: fn(async () => {
await sleep(SECOND);
return 'captcha-token';
}),
}) as () => Promise<string>,
requestVerification: fn(async () => {
await sleep(SECOND);
return { sessionId: 'fake-session-id' };
}),
}) as () => Promise<{ sessionId: string }>,
registerSingleDevice: fn(async () => {
await sleep(SECOND);
}),
}) as () => Promise<void>,
uploadProfile: fn(async () => {
await sleep(SECOND);
}),
onComplete: fn(),
readyForUpdates: fn(),
}) as () => Promise<void>,
onComplete: fn() as () => void,
readyForUpdates: fn() as () => void,
},
} satisfies Meta<PropsType & { daysAgo?: number }>;

View file

@ -264,6 +264,7 @@ export function GIF(props: Props): JSX.Element {
<button
type="button"
className={className}
aria-label={i18n('icu:GIF--download')}
onClick={onOverlayClick}
onKeyDown={onOverlayKeyDown}
tabIndex={tabIndex}

View file

@ -18,7 +18,7 @@ export function StagedPlaceholderAttachment({
type="button"
className="module-staged-placeholder-attachment"
onClick={onClick}
title={i18n('icu:addImageOrVideoattachment')}
aria-label={i18n('icu:addImageOrVideoattachment')}
>
<div className="module-staged-placeholder-attachment__plus-icon" />
</button>

View file

@ -15,84 +15,6 @@
"updated": "2018-09-18T19:19:27.699Z",
"reasonDetail": "Part of runtime library for C++ transpiled code"
},
{
"rule": "eval",
"path": "node_modules/@cspotcode/source-map-support/source-map-support.js",
"line": " // Most eval() calls are in this format",
"reasonCategory": "usageTrusted",
"updated": "2024-09-26T18:39:25.816Z"
},
{
"rule": "eval",
"path": "node_modules/@cspotcode/source-map-support/source-map-support.js",
"line": " // Parse nested eval() calls using recursion",
"reasonCategory": "usageTrusted",
"updated": "2024-09-26T18:39:25.816Z"
},
{
"rule": "eval",
"path": "node_modules/@cspotcode/source-map-support/source-map-support.js",
"line": " // passed to eval() ending in \"//# sourceURL=...\" will return the source file",
"reasonCategory": "usageTrusted",
"updated": "2024-09-26T18:39:25.816Z"
},
{
"rule": "eval",
"path": "node_modules/@cspotcode/source-map-support/source-map-support.js",
"line": " // Code called using eval() needs special handling",
"reasonCategory": "usageTrusted",
"updated": "2024-09-26T18:39:25.816Z"
},
{
"rule": "eval",
"path": "node_modules/@jsonjoy.com/util/lib/codegen/compile.js",
"line": "const compile = (js) => eval(js);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:42:33.044Z"
},
{
"rule": "eval",
"path": "node_modules/@protobufjs/inquire/index.js",
"line": " var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval",
"reasonCategory": "usageTrusted",
"updated": "2018-09-18T19:19:27.699Z",
"reasonDetail": "What's being eval'd is a static string"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring_animated.legacy-esm.js",
"line": " const instanceRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring_animated.legacy-esm.js",
"line": " const observerRef = useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring_core.legacy-esm.js",
"line": " const layoutId = useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring_core.legacy-esm.js",
"line": " const ctrls = useRef([...state.ctrls]);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring_shared.legacy-esm.js",
"line": " const ref = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@signalapp/quill-cjs/core/editor.js",
@ -265,235 +187,6 @@
"updated": "2020-10-13T18:36:57.012Z",
"reasonDetail": "necessary for quill"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@sindresorhus/is/dist/index.js",
"line": " 'innerHTML',",
"reasonCategory": "usageTrusted",
"updated": "2021-10-06T15:40:12.124Z"
},
{
"rule": "eval",
"path": "node_modules/@sinonjs/commons/lib/function-name.test.js",
"line": " fn = eval(\"(function*() {})\")().constructor;",
"reasonCategory": "testCode",
"updated": "2020-10-09T22:28:48.591Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
"line": " if (!element || !('innerHTML' in element)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
"line": " if (!element.innerHTML) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
"line": " const playgroundUrl = getPlaygroundUrl(element.innerHTML);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
"line": " if (!('outerHTML' in dom)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js",
"line": " return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
"line": " if (!element || !('innerHTML' in element)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
"line": " if (!element.innerHTML) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
"line": " const playgroundUrl = getPlaygroundUrl(element.innerHTML);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
"line": " if (!('outerHTML' in dom)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js",
"line": " return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
"line": "\t if (!element || !('innerHTML' in element)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
"line": "\t if (!element.innerHTML) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
"line": "\t const playgroundUrl = getPlaygroundUrl(element.innerHTML);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
"line": "\t if (!('outerHTML' in dom)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js",
"line": "\t return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/pretty-dom.js",
"line": " if (!('outerHTML' in dom)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/dom/dist/pretty-dom.js",
"line": " return maxLength !== undefined && dom.outerHTML.length > maxLength ? `${debugContent.slice(0, maxLength)}...` : debugContent;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/screen.js",
"line": " if (!element || !('innerHTML' in element)) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/screen.js",
"line": " if (!element.innerHTML) {",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/dom/dist/screen.js",
"line": " const playgroundUrl = getPlaygroundUrl(element.innerHTML);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " pass: element.innerHTML === '',",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " ` ${this.utils.printReceived(element.innerHTML)}`,",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " ` ${this.utils.printReceived(element.innerHTML)}`,",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " div.innerHTML = htmlText;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " return div.innerHTML",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/@testing-library/jest-dom/dist/matchers-4fe91ec3.js",
"line": " pass: container.outerHTML.includes(getNormalizedHtml(container, htmlText)),",
"reasonCategory": "usageTrusted",
"updated": "2024-11-13T23:31:32.324Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/user-event/dist/cjs/utility/selectOptions.js",
"line": " const matchingOption = allOptions.find((o)=>o.value === val || o.innerHTML === val);",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/@testing-library/user-event/dist/esm/utility/selectOptions.js",
"line": " const matchingOption = allOptions.find((o)=>o.value === val || o.innerHTML === val);",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "eval",
"path": "node_modules/@tootallnate/quickjs-emscripten/dist/context.js",
"line": " * Like [`eval(code)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Description).",
"reasonCategory": "falseMatch",
"updated": "2023-08-29T19:25:52.732Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/axe-core/axe.js",
@ -548,48 +241,6 @@
"reasonCategory": "usageTrusted",
"updated": "2024-11-14T01:39:46.132Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/domutils/node_modules/dom-serializer/lib/esm/index.js",
"line": " * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).",
"reasonCategory": "falseMatch",
"updated": "2023-01-11T23:51:00.603Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/domutils/node_modules/dom-serializer/lib/index.js",
"line": " * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).",
"reasonCategory": "falseMatch",
"updated": "2023-01-11T23:51:00.603Z"
},
{
"rule": "React-ref",
"path": "node_modules/esquery/dist/esquery.esm.min.js",
"reasonCategory": "falseMatch",
"updated": "2020-08-26T00:10:28.628Z",
"reasonDetail": "isn't react"
},
{
"rule": "React-ref",
"path": "node_modules/esquery/dist/esquery.min.js",
"reasonCategory": "falseMatch",
"updated": "2020-08-26T00:10:28.628Z",
"reasonDetail": "isn't react"
},
{
"rule": "eval",
"path": "node_modules/expect-playwright/lib/matchers/toHaveSelectorCount/index.js",
"line": " const actualCount = await elementHandle.$$eval(selector, (el) => el.length);",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "eval",
"path": "node_modules/globalthis/test/tests.js",
"line": "\t\teval(key + ' = semaphore;');",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/google-libphonenumber/dist/libphonenumber.js",
@ -729,261 +380,6 @@
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "eval",
"path": "node_modules/jest-runner/node_modules/source-map-support/source-map-support.js",
"line": " // Most eval() calls are in this format",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "eval",
"path": "node_modules/jest-runner/node_modules/source-map-support/source-map-support.js",
"line": " // Parse nested eval() calls using recursion",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "eval",
"path": "node_modules/jest-runner/node_modules/source-map-support/source-map-support.js",
"line": " // passed to eval() ending in \"//# sourceURL=...\" will return the source file",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "eval",
"path": "node_modules/jest-runner/node_modules/source-map-support/source-map-support.js",
"line": " // Code called using eval() needs special handling",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "React-ref",
"path": "node_modules/joi/dist/joi-browser.min.js",
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/jsdoc/templates/default/static/scripts/prettify/prettify.js",
"reasonCategory": "testCode",
"updated": "2023-07-12T01:02:31.061Z"
},
{
"rule": "eval",
"path": "node_modules/loader-runner/lib/loadLoader.js",
"line": "\t\t\tvar modulePromise = eval(\"import(\" + JSON.stringify(loaderUrl.toString()) + \")\");",
"reasonCategory": "usageTrusted",
"updated": "2021-04-05T20:48:36.065Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.runningAlert.innerHTML = \"Running \" + this.completeSpecCount + \" of \" + specPluralizedFor(this.totalSpecCount);",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.skippedAlert.innerHTML = \"Skipping \" + this.skippedCount + \" of \" + specPluralizedFor(this.totalSpecCount) + \" - run all\";",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.passedAlert.innerHTML = \"Passing \" + specPluralizedFor(this.passedCount);",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.failedAlert.innerHTML = \"Failing \" + specPluralizedFor(this.failedCount);",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.summaryMenuItem.innerHTML = \"\" + specPluralizedFor(this.runningSpecCount);",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.detailsMenuItem.innerHTML = \"\" + this.failedCount + \" failing\";",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/lz-string/tests/lib/jasmine-1.3.1/jasmine-html.js",
"line": " this.skippedAlert.innerHTML = \"Ran \" + this.runningSpecCount + \" of \" + specPluralizedFor(this.totalSpecCount) + \" - run all\";",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/serialize.js",
"line": " } else if (elem.innerHTML) {",
"reasonCategory": "usageTrusted",
"updated": "2018-09-15T00:38:04.183Z",
"reasonDetail": "Getting the value, not setting it"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/serialize.js",
"line": " key !== \"textContent\" && key !== \"innerText\" && key !== \"namespaceURI\" && key !== \"innerHTML\"",
"reasonCategory": "usageTrusted",
"updated": "2018-09-15T00:38:04.183Z",
"reasonDetail": "Getting the value, not setting it"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/serialize.js",
"line": " strings.push(elem.innerHTML)",
"reasonCategory": "usageTrusted",
"updated": "2020-09-11T17:24:56.124Z",
"reasonDetail": "Read, not write"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " html = div.innerHTML",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " var innerHTML = []",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " innerHTML.push(String(node.outerHTML || node))",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " html = innerHTML.join(\"\")",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " var html = String(div.outerHTML || div)",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " html = element.outerHTML",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/min-document/test/test-document.js",
"line": " innerHTML.push(String(node.outerHTML || node))",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-dom-element.js",
"line": " test(\"does not serialize innerHTML as an attribute\", function(assert) {",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-dom-element.js",
"line": " div.innerHTML = \"Test <img />\"",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/min-document/test/test-dom-element.js",
"line": " input.innerHTML = \"user input here\"",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/object-inspect/example/inspect.js",
"line": "d.innerHTML = '<b>wooo</b><i>iiiii</i>';",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/object-inspect/test/browser/dom.js",
"line": " d.innerHTML = '<b>wooo</b><i>iiiii</i>';",
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\t\tmultiArgs: false,",
"reasonCategory": "falseMatch",
"updated": "2024-12-20T19:43:51.589Z"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\tmultiArgs: false,",
"reasonCategory": "falseMatch",
"updated": "2024-12-20T19:43:51.589Z"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\t\tconst value = options.multiArgs ? args : args[0];",
"reasonCategory": "falseMatch|testCode|exampleCode|otherUtilityCode|regexMatchedSafeCode|notExercisedByOurApp|ruleNeeded|usageTrusted",
"updated": "2024-12-20T19:43:51.589Z",
"reasonDetail": "<optional>"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\tconst value = options.multiArgs ? args : args[0];",
"reasonCategory": "otherUtilityCode",
"updated": "2024-12-20T19:43:51.589Z"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\terror = options.multiArgs ? args : args[0];",
"reasonCategory": "otherUtilityCode",
"updated": "2024-12-20T19:46:49.191Z"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/p-event/index.js",
"line": "\t\tconst value = options.multiArgs ? args : args[0];",
"reasonCategory": "otherUtilityCode",
"updated": "2024-12-20T19:46:49.191Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/parse-entities/decode-entity.browser.js",
"line": " el.innerHTML = entity",
"reasonCategory": "usageTrusted",
"updated": "2020-08-25T16:59:46.588Z",
"reasonDetail": "Ephemeral element"
},
{
"rule": "thenify-multiArgs",
"path": "node_modules/pify/index.js",
@ -1005,18 +401,6 @@
"reasonCategory": "testCode",
"updated": "2024-06-24T19:19:28.335Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/prettier-fallback/plugins/html.js",
"reasonCategory": "notExercisedByOurApp",
"updated": "2024-06-25T17:33:38.376Z"
},
{
"rule": "DOM-outerHTML",
"path": "node_modules/prettier-fallback/plugins/html.js",
"reasonCategory": "notExercisedByOurApp",
"updated": "2024-06-25T17:33:38.376Z"
},
{
"rule": "eval",
"path": "node_modules/protobufjs/dist/light/protobuf.js",
@ -1078,13 +462,6 @@
"updated": "2022-01-04T20:32:10.596Z",
"reasonDetail": "Sample code never required by us."
},
{
"rule": "eval",
"path": "node_modules/raw-body/node_modules/depd/index.js",
"line": " var deprecatedfn = eval('(function (' + args + ') {\\n' +",
"reasonCategory": "usageTrusted",
"updated": "2022-12-13T00:55:48.389Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/react-blurhash/docs/demo.f335462148ad584661d8.js",
@ -1379,130 +756,6 @@
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "eval",
"path": "node_modules/source-map-support/source-map-support.js",
"line": " // Most eval() calls are in this format",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "eval",
"path": "node_modules/source-map-support/source-map-support.js",
"line": " // Parse nested eval() calls using recursion",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "eval",
"path": "node_modules/source-map-support/source-map-support.js",
"line": " // passed to eval() ending in \"//# sourceURL=...\" will return the source file",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "eval",
"path": "node_modules/source-map-support/source-map-support.js",
"line": " // Code called using eval() needs special handling",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "React-useRef",
"path": "node_modules/use-composed-ref/dist/use-composed-ref.cjs.js",
"line": " var prevUserRef = React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
},
{
"rule": "React-useRef",
"path": "node_modules/use-composed-ref/dist/use-composed-ref.esm.js",
"line": " var prevUserRef = useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
},
{
"rule": "React-useRef",
"path": "node_modules/use-latest/dist/use-latest.cjs.dev.js",
"line": " var ref = React__namespace.useRef(value);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
},
{
"rule": "React-useRef",
"path": "node_modules/use-latest/dist/use-latest.cjs.prod.js",
"line": " var ref = React__namespace.useRef(value);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
},
{
"rule": "React-useRef",
"path": "node_modules/use-latest/dist/use-latest.esm.js",
"line": " var ref = React.useRef(value);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
},
{
"rule": "eval",
"path": "node_modules/workerpool/dist/worker.js",
"line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\'' + ' ? require' + ' : function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/dist/workerpool.js",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/dist/workerpool.js",
"line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\' ' + '? require ' + ': function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/dist/workerpool.js",
"line": "var requireFoolWebpack = eval('typeof require !== \\'undefined\\'' + ' ? require' + ' : function (module) { throw new Error(\\'Module \" + module + \" not found.\\') }');",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/dist/workerpool.min.js",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/src/generated/embeddedWorker.js",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/src/requireFoolWebpack.js",
"line": "var requireFoolWebpack = eval(",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "eval",
"path": "node_modules/workerpool/src/worker.js",
"line": "var requireFoolWebpack = eval(",
"reasonCategory": "usageTrusted",
"updated": "2021-09-16T20:26:31.296Z",
"reasonDetail": "Dev-only dependency."
},
{
"rule": "React-useRef",
"path": "ts/calling/useGetCallingFrameBuffer.ts",