Upgrade outdated dependencies

This commit is contained in:
Jamie Kyle 2024-11-18 11:20:23 -08:00 committed by GitHub
parent e4aa4de5e1
commit 8fde907b17
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 2047 additions and 3751 deletions

View file

@ -40,6 +40,10 @@ const config: StorybookConfig = {
from: '../node_modules/emoji-datasource-apple/img',
to: 'node_modules/emoji-datasource-apple/img',
},
{
from: '../node_modules/intl-tel-input/build/img',
to: 'node_modules/intl-tel-input/build/img',
},
],
webpackFinal(config) {

View file

@ -252,7 +252,7 @@ Signal Desktop makes use of the following open source projects.
## backbone
Copyright (c) 2010-2019 Jeremy Ashkenas, DocumentCloud
Copyright (c) 2010-2024 Jeremy Ashkenas, DocumentCloud
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@ -1958,10 +1958,7 @@ Signal Desktop makes use of the following open source projects.
The MIT License (MIT)
Copyright (c) 2016-2019 Matteo Collina, David Mark Clements and the Pino contributors
Pino contributors listed at https://github.com/pinojs/pino#the-team and in
the README file.
Copyright (c) 2016-2024 Matteo Collina, David Mark Clements and the Pino contributors listed at https://github.com/pinojs/pino#the-team and in the README file.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -2025,7 +2022,28 @@ Signal Desktop makes use of the following open source projects.
## proxy-agent
License: MIT
(The MIT License)
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
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.
## qrcode-generator

3338
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -41,7 +41,7 @@
"test": "run-s test-node test-electron test-lint-intl test-eslint",
"test-electron": "node ts/scripts/test-electron.js",
"test-release": "node ts/scripts/test-release.js",
"test-node": "cross-env LANG=en-us electron-mocha --timeout 10000 --file test/setup-test-node.js --recursive test/modules ts/test-node ts/test-both",
"test-node": "cross-env LANG=en-us electron-mocha --timeout 10000 --file test/setup-test-node.js --recursive ts/test-node ts/test-both",
"test-mock": "mocha --require ts/test-mock/setup-ci.js ts/test-mock/**/*_test.js",
"test-eslint": "mocha .eslint/rules/**/*.test.js --ignore-leaks",
"test-lint-intl": "ts-node ./build/intl-linter/linter.ts --test",
@ -104,15 +104,15 @@
"@indutny/sneequals": "4.0.0",
"@popperjs/core": "2.11.8",
"@react-aria/utils": "3.25.3",
"@react-spring/web": "9.5.5",
"@react-spring/web": "9.7.5",
"@signalapp/better-sqlite3": "9.0.8",
"@signalapp/libsignal-client": "0.62.0",
"@signalapp/ringrtc": "2.48.7",
"@types/fabric": "4.5.3",
"backbone": "1.4.0",
"backbone": "1.6.0",
"blob-util": "2.0.2",
"blueimp-load-image": "5.16.0",
"blurhash": "1.1.3",
"blurhash": "2.0.5",
"buffer": "6.0.3",
"changedpi": "1.0.4",
"cirbuf": "1.0.2",
@ -129,7 +129,7 @@
"fast-glob": "3.3.2",
"filesize": "9.0.11",
"firstline": "2.0.2",
"focus-trap-react": "8.8.1",
"focus-trap-react": "9.0.2",
"form-data": "4.0.1",
"fs-extra": "11.2.0",
"fuse.js": "6.5.3",
@ -137,9 +137,9 @@
"got": "11.8.5",
"heic-convert": "2.1.0",
"humanize-duration": "3.27.1",
"intl-tel-input": "17.0.13",
"intl-tel-input": "24.7.0",
"js-yaml": "4.1.0",
"linkify-it": "2.2.0",
"linkify-it": "5.0.0",
"lodash": "4.17.21",
"long": "5.2.3",
"lru-cache": "11.0.2",
@ -155,9 +155,9 @@
"p-timeout": "4.1.0",
"parchment": "1.1.4",
"pify": "3.0.0",
"pino": "8.6.1",
"pino": "9.5.0",
"protobufjs": "7.3.2",
"proxy-agent": "6.3.0",
"proxy-agent": "6.4.0",
"qrcode-generator": "1.4.4",
"quill": "1.3.7",
"quill-delta": "4.0.1",
@ -165,23 +165,23 @@
"react-aria": "3.35.1",
"react-aria-components": "1.4.1",
"react-blurhash": "0.3.0",
"react-contextmenu": "2.11.0",
"react-contextmenu": "2.14.0",
"react-dom": "17.0.2",
"react-hot-loader": "4.13.1",
"react-intl": "6.1.1",
"react-intl": "6.8.7",
"react-popper": "2.3.0",
"react-quill": "2.0.0-beta.4",
"react-redux": "7.2.8",
"react-redux": "8.1.3",
"react-router-dom": "5.0.1",
"react-textarea-autosize": "8.3.4",
"react-textarea-autosize": "8.5.5",
"react-virtualized": "9.22.5",
"read-last-lines": "1.8.0",
"redux": "4.1.2",
"redux": "5.0.1",
"redux-logger": "3.0.6",
"redux-promise-middleware": "6.1.0",
"redux-thunk": "2.3.0",
"reselect": "4.1.2",
"sanitize.css": "11.0.0",
"redux-promise-middleware": "6.2.0",
"redux-thunk": "3.1.0",
"reselect": "5.1.1",
"sanitize.css": "13.0.0",
"semver": "7.6.3",
"split2": "4.2.0",
"type-fest": "4.26.1",
@ -209,41 +209,39 @@
"@indutny/symbolicate-mac": "2.3.0",
"@napi-rs/canvas": "0.1.61",
"@signalapp/mock-server": "10.0.0",
"@storybook/addon-a11y": "8.4.3",
"@storybook/addon-actions": "8.4.3",
"@storybook/addon-controls": "8.4.3",
"@storybook/addon-interactions": "8.4.3",
"@storybook/addon-jest": "8.4.3",
"@storybook/addon-measure": "8.4.3",
"@storybook/addon-toolbars": "8.4.3",
"@storybook/addon-viewport": "8.4.3",
"@storybook/addon-webpack5-compiler-swc": "1.0.4",
"@storybook/preview-api": "8.4.3",
"@storybook/react": "8.4.3",
"@storybook/react-webpack5": "8.4.3",
"@storybook/test": "8.4.3",
"@storybook/addon-a11y": "8.4.4",
"@storybook/addon-actions": "8.4.4",
"@storybook/addon-controls": "8.4.4",
"@storybook/addon-interactions": "8.4.4",
"@storybook/addon-jest": "8.4.4",
"@storybook/addon-measure": "8.4.4",
"@storybook/addon-toolbars": "8.4.4",
"@storybook/addon-viewport": "8.4.4",
"@storybook/addon-webpack5-compiler-swc": "1.0.5",
"@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",
"@types/backbone": "1.4.22",
"@types/blueimp-load-image": "5.16.6",
"@types/chai": "4.3.16",
"@types/chai-as-promised": "7.1.4",
"@types/classnames": "2.3.4",
"@types/config": "3.3.5",
"@types/dashdash": "1.14.3",
"@types/debug": "4.1.12",
"@types/direction": "1.0.0",
"@types/fs-extra": "11.0.4",
"@types/google-libphonenumber": "7.4.30",
"@types/history": "5.0.0",
"@types/humanize-duration": "3.18.1",
"@types/intl-tel-input": "18.1.4",
"@types/js-yaml": "4.0.9",
"@types/json-to-ast": "2.1.4",
"@types/linkify-it": "2.1.0",
"@types/linkify-it": "5.0.0",
"@types/lodash": "4.14.106",
"@types/memoizee": "0.4.11",
"@types/mocha": "9.0.0",
"@types/node": "20.14.10",
"@types/mocha": "10.0.9",
"@types/node": "20.17.6",
"@types/node-fetch": "2.6.12",
"@types/normalize-path": "3.0.2",
"@types/pify": "5.0.4",
@ -255,11 +253,10 @@
"@types/react-redux": "7.1.34",
"@types/react-router-dom": "4.3.4",
"@types/react-virtualized": "9.21.30",
"@types/redux-logger": "3.0.7",
"@types/redux-logger": "3.0.13",
"@types/semver": "7.5.8",
"@types/sinon": "17.0.3",
"@types/split2": "4.2.3",
"@types/terser-webpack-plugin": "5.2.0",
"@types/unzipper": "0.10.10",
"@types/uuid": "10.0.0",
"@types/websocket": "1.0.0",
@ -283,10 +280,10 @@
"debug": "4.3.7",
"electron": "33.1.0",
"electron-builder": "24.13.3",
"electron-mocha": "12.2.0",
"electron-mocha": "13.0.1",
"endanger": "7.0.4",
"enquirer": "2.4.1",
"esbuild": "0.23.1",
"esbuild": "0.24.0",
"eslint": "8.56.0",
"eslint-config-airbnb-typescript-prettier": "5.0.0",
"eslint-config-prettier": "8.5.0",
@ -301,8 +298,8 @@
"json-to-ast": "2.1.0",
"log-symbols": "4.1.0",
"mini-css-extract-plugin": "2.9.2",
"mocha": "9.2.2",
"node-gyp": "10.0.1",
"mocha": "10.8.2",
"node-gyp": "10.2.0",
"node-gyp-build": "4.8.3",
"npm-run-all": "4.1.5",
"p-limit": "3.1.0",
@ -317,7 +314,7 @@
"sass": "1.80.7",
"sass-loader": "16.0.3",
"sinon": "19.0.2",
"storybook": "8.4.3",
"storybook": "8.4.4",
"style-loader": "4.0.0",
"stylelint": "16.10.0",
"stylelint-config-css-modules": "4.4.0",
@ -326,9 +323,8 @@
"svgo": "3.3.2",
"terser-webpack-plugin": "5.3.10",
"ts-node": "10.9.2",
"typed-scss-modules": "4.1.1",
"typescript": "5.3.3",
"unzipper": "0.10.14",
"typescript": "5.6.3",
"unzipper": "0.12.3",
"wait-on": "8.0.1",
"webpack": "5.96.1",
"webpack-cli": "5.1.4",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,12 +0,0 @@
diff --git a/node_modules/proxy-agent/dist/index.js b/node_modules/proxy-agent/dist/index.js
index 885d22a..2930652 100644
--- a/node_modules/proxy-agent/dist/index.js
+++ b/node_modules/proxy-agent/dist/index.js
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.ProxyAgent = exports.proxies = void 0;
const http = __importStar(require("http"));
const https = __importStar(require("https"));
+const { URL } = __importStar(require("url"));
const lru_cache_1 = __importDefault(require("lru-cache"));
const agent_base_1 = require("agent-base");
const debug_1 = __importDefault(require("debug"));

View file

@ -1,5 +1,5 @@
diff --git a/node_modules/react-contextmenu/modules/ContextMenu.js b/node_modules/react-contextmenu/modules/ContextMenu.js
index 622a1f9..630ba68 100644
index 2f88213..150f93e 100644
--- a/node_modules/react-contextmenu/modules/ContextMenu.js
+++ b/node_modules/react-contextmenu/modules/ContextMenu.js
@@ -81,6 +81,11 @@ var ContextMenu = function (_AbstractMenu) {
@ -16,15 +16,15 @@ index 622a1f9..630ba68 100644
_this.registerHandlers();
@@ -226,6 +231,9 @@ var ContextMenu = function (_AbstractMenu) {
if (this.state.isVisible) {
var wrapper = window.requestAnimationFrame || setTimeout;
if (this.state.isVisible) {
+ if (!this.previousFocus) {
+ this.previousFocus = document.activeElement;
+ }
wrapper(function () {
var _state = _this2.state,
@@ -241,13 +249,21 @@ var ContextMenu = function (_AbstractMenu) {
x = _state.x,
@@ -240,7 +248,10 @@ var ContextMenu = function (_AbstractMenu) {
_this2.menu.style.top = top + 'px';
_this2.menu.style.left = left + 'px';
_this2.menu.style.opacity = 1;
@ -35,22 +35,23 @@ index 622a1f9..630ba68 100644
});
});
} else {
if (!this.menu) return;
this.menu.style.opacity = 0;
this.menu.style.pointerEvents = 'none';
@@ -248,6 +259,11 @@ var ContextMenu = function (_AbstractMenu) {
if (!_this2.menu) return;
_this2.menu.style.opacity = 0;
_this2.menu.style.pointerEvents = 'none';
+
+ if (this.previousFocus && this.previousFocus.focus) {
+ this.previousFocus.focus();
+ this.previousFocus = null;
+ }
});
}
}
}, {
diff --git a/node_modules/react-contextmenu/modules/SubMenu.js b/node_modules/react-contextmenu/modules/SubMenu.js
index 3eb1d4e..0734b63 100644
index ad1dc70..ef0c960 100644
--- a/node_modules/react-contextmenu/modules/SubMenu.js
+++ b/node_modules/react-contextmenu/modules/SubMenu.js
@@ -123,6 +123,7 @@ var SubMenu = function (_AbstractMenu) {
@@ -129,6 +129,7 @@ var SubMenu = function (_AbstractMenu) {
if (_this.props.disabled || _this.state.visible) return;
@ -58,7 +59,7 @@ index 3eb1d4e..0734b63 100644
_this.opentimer = setTimeout(function () {
return _this.setState({
visible: true,
@@ -136,6 +137,7 @@ var SubMenu = function (_AbstractMenu) {
@@ -142,6 +143,7 @@ var SubMenu = function (_AbstractMenu) {
if (!_this.state.visible) return;
@ -66,7 +67,7 @@ index 3eb1d4e..0734b63 100644
_this.closetimer = setTimeout(function () {
return _this.setState({
visible: false,
@@ -164,6 +166,15 @@ var SubMenu = function (_AbstractMenu) {
@@ -170,6 +172,15 @@ var SubMenu = function (_AbstractMenu) {
}
};
@ -82,7 +83,7 @@ index 3eb1d4e..0734b63 100644
_this.state = (0, _objectAssign2.default)({}, _this.state, {
visible: false
});
@@ -196,32 +207,28 @@ var SubMenu = function (_AbstractMenu) {
@@ -202,21 +213,24 @@ var SubMenu = function (_AbstractMenu) {
if (this.props.forceOpen || this.state.visible) {
var wrapper = window.requestAnimationFrame || setTimeout;
wrapper(function () {
@ -121,14 +122,11 @@ index 3eb1d4e..0734b63 100644
+ }
});
} else {
- var cleanup = function cleanup() {
- _this2.subMenu.removeEventListener('transitionend', cleanup);
- _this2.subMenu.style.removeProperty('bottom');
- _this2.subMenu.style.removeProperty('right');
- _this2.subMenu.style.top = 0;
- _this2.subMenu.style.left = '100%';
- _this2.unregisterHandlers();
- };
var cleanup = function cleanup() {
@@ -227,7 +241,8 @@ var SubMenu = function (_AbstractMenu) {
_this2.subMenu.style.left = '100%';
_this2.unregisterHandlers();
};
- this.subMenu.addEventListener('transitionend', cleanup);
+ this.subMenu.removeEventListener('transitionend', this.cleanup);
+ this.subMenu.addEventListener('transitionend', this.cleanup);

View file

@ -1,26 +0,0 @@
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js
index ce25001..36bcd17 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js
@@ -110,7 +110,7 @@ var pick = function pick(props, obj) {
var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'boxSizing', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', // non-standard
'tabSize', 'textIndent', // non-standard
'textRendering', 'textTransform', 'width', 'wordBreak'];
-var isIE = typeof document !== 'undefined' ? !!document.documentElement.currentStyle : false;
+var isIE = false;
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);
diff --git a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js
index d4e39a2..f26641e 100644
--- a/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js
+++ b/node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js
@@ -110,7 +110,7 @@ var pick = function pick(props, obj) {
var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'boxSizing', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', // non-standard
'tabSize', 'textIndent', // non-standard
'textRendering', 'textTransform', 'width', 'wordBreak'];
-var isIE = typeof document !== 'undefined' ? !!document.documentElement.currentStyle : false;
+var isIE = false;
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);

View file

@ -0,0 +1,52 @@
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
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
@@ -122,7 +122,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
'textRendering', 'textTransform', 'width', 'wordBreak', 'wordSpacing', 'scrollbarGutter'];
-var isIE = !!document.documentElement.currentStyle ;
+var isIE = false;
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
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
@@ -122,7 +122,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
'textRendering', 'textTransform', 'width', 'wordBreak', 'wordSpacing', 'scrollbarGutter'];
-var isIE = !!document.documentElement.currentStyle ;
+var isIE = false;
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
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
@@ -94,7 +94,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
'textRendering', 'textTransform', 'width', 'wordBreak', 'wordSpacing', 'scrollbarGutter'];
-var isIE = !!document.documentElement.currentStyle ;
+var isIE = false;
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
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
@@ -94,7 +94,7 @@ var SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth',
'tabSize', 'textIndent',
// non-standard
'textRendering', 'textTransform', 'width', 'wordBreak', 'wordSpacing', 'scrollbarGutter'];
-var isIE = !!document.documentElement.currentStyle ;
+var isIE = false;
var getSizingData = function getSizingData(node) {
var style = window.getComputedStyle(node);
if (style === null) {

View file

@ -1,22 +0,0 @@
diff --git a/node_modules/socks-proxy-agent/dist/index.js b/node_modules/socks-proxy-agent/dist/index.js
index 8189e01..e2dedf8 100644
--- a/node_modules/socks-proxy-agent/dist/index.js
+++ b/node_modules/socks-proxy-agent/dist/index.js
@@ -33,6 +33,7 @@ const debug_1 = __importDefault(require("debug"));
const dns = __importStar(require("dns"));
const net = __importStar(require("net"));
const tls = __importStar(require("tls"));
+const { URL } = __importStar(require("url"));
const debug = (0, debug_1.default)('socks-proxy-agent');
function parseSocksURL(url) {
let lookup = false;
@@ -127,6 +128,9 @@ class SocksProxyAgent extends agent_base_1.Agent {
},
command: 'connect',
timeout: timeout ?? undefined,
+ socket_options: {
+ lookup: lookupFn,
+ },
};
const cleanup = (tlsSocket) => {
req.destroy();

View file

@ -413,11 +413,14 @@ $loading-height: 16px;
font-size: 10pt;
input {
margin-top: 1em;
font-size: 12pt;
border: 2px solid variables.$color-ultramarine;
padding: 0.5em;
text-align: center;
}
.phone-input .number {
margin-top: 1em;
width: 20em;
}

View file

@ -6,21 +6,9 @@
@use 'variables';
@use 'progress';
.iti__flag {
// override intlTelInput's flags image location
background-image: url('../node_modules/intl-tel-input/build/img/flags.png');
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.iti__flag {
background-image: url('../node_modules/intl-tel-input/build/img/flags@2x.png');
}
}
.intl-tel-input .country-list {
text-align: start;
}
.intl-tel-input .country-list .country .country-name {
color: variables.$color-black;
:root {
--iti-path-flags-1x: url('../node_modules/intl-tel-input/build/img/flags.webp');
--iti-path-flags-2x: url('../node_modules/intl-tel-input/build/img/flags@2x.webp');
--iti-path-globe-1x: url('../node_modules/intl-tel-input/build/img/globe.webp');
--iti-path-globe-2x: url('../node_modules/intl-tel-input/build/img/globe@2x.webp');
}

View file

@ -2,6 +2,7 @@
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
// @ts-expect-error -- no types
import 'react-quill/dist/quill.core.css';
import { action } from '@storybook/addon-actions';
import type { Meta } from '@storybook/react';

View file

@ -3,7 +3,7 @@
import type { ChangeEvent } from 'react';
import React, { useState, useEffect, useCallback, useRef } from 'react';
import type { Plugin } from 'intl-tel-input';
import type { Iti } from 'intl-tel-input';
import intlTelInput from 'intl-tel-input';
import { strictAssert } from '../util/assert';
@ -21,7 +21,7 @@ function PhoneInput({
onNumberChange: (number?: string) => void;
}): JSX.Element {
const [isValid, setIsValid] = useState(false);
const pluginRef = useRef<Plugin | undefined>();
const pluginRef = useRef<Iti | undefined>();
const elemRef = useRef<HTMLInputElement | null>(null);
const onRef = useCallback(

View file

@ -10,7 +10,7 @@ import { isLinkSneaky, shouldLinkifyMessage } from '../../types/LinkPreview';
import { splitByEmoji } from '../../util/emoji';
import { missingCaseError } from '../../util/missingCaseError';
export const linkify = LinkifyIt()
export const linkify = new LinkifyIt()
// This is all TLDs in place in 2010, according to [IANA's root zone database][0]
// except for those domains marked as [a test domain][1].
//

View file

@ -181,7 +181,6 @@ async function generateTrayIconImage(
context.font = font;
context.textAlign = 'center';
context.textBaseline = 'middle';
// @ts-expect-error Missing types
context.textRendering = 'optimizeLegibility';
context.fontKerning = 'normal';

View file

@ -2,7 +2,7 @@
// SPDX-License-Identifier: AGPL-3.0-only
import { ipcRenderer } from 'electron';
import type { Middleware } from 'redux';
import type { Middleware, UnknownAction } from 'redux';
import {
COLORS_CHANGED,
@ -13,7 +13,9 @@ import {
export const dispatchItemsMiddleware: Middleware =
({ getState }) =>
next =>
action => {
_action => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const action = _action as any as UnknownAction;
const result = next(action);
if (
action.type === 'items/PUT' ||

View file

@ -3,11 +3,11 @@
/* eslint-disable no-console */
import type { Middleware, Store } from 'redux';
import type { Middleware, Store, UnknownAction } from 'redux';
import { applyMiddleware, createStore as reduxCreateStore } from 'redux';
import promise from 'redux-promise-middleware';
import thunk from 'redux-thunk';
import { thunk } from 'redux-thunk';
import { createLogger } from 'redux-logger';
import * as log from '../logging/log';
@ -60,7 +60,9 @@ const actionStats: ActionStats = {
timestamp: Date.now(),
names: [],
};
export const actionRateLogger: Middleware = () => next => action => {
export const actionRateLogger: Middleware = () => next => _action => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const action = _action as any as UnknownAction;
const name = action.type;
const lastTimestamp = actionStats.timestamp;
let count = actionStats.names.length;
@ -101,4 +103,6 @@ const enhancer = applyMiddleware(...middlewareList);
export const createStore = (
initialState: Readonly<StateType>
): Store<StateType> => reduxCreateStore(reducer, initialState, enhancer);
): Store<StateType> =>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
reduxCreateStore<any, any>(reducer, initialState, enhancer);

View file

@ -1,7 +1,7 @@
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { AnyAction } from 'redux';
import type { UnknownAction } from 'redux';
import * as log from '../logging/log';
import { getInitialState } from './getInitialState';
@ -19,7 +19,7 @@ export function reinitializeRedux(options: ReduxInitData): void {
const resetReducer = (
state: StateType | undefined,
action: AnyAction
action: UnknownAction
): StateType => {
if (state == null) {
log.info(
@ -51,7 +51,8 @@ export function reinitializeRedux(options: ReduxInitData): void {
});
log.info(`${logId}: restoring original reducer`);
window.reduxStore.replaceReducer(normalReducer);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
window.reduxStore.replaceReducer(normalReducer as any);
log.info(`${logId}: complete!`);
}

View file

@ -156,7 +156,7 @@ import { formatFileSize } from '../../util/formatFileSize';
export { isIncoming, isOutgoing, isStory };
const linkify = LinkifyIt();
const linkify = new LinkifyIt();
type FormattedContact = Partial<ConversationType> &
Pick<

View file

@ -18,6 +18,7 @@ describe('getClassNamesFor', () => {
it('does not add anything if there is no modifier', () => {
const f = getClassNamesFor('module');
assert.equal(f(), '');
// @ts-expect-error -- test case
assert.equal(f(undefined && '__modifier'), '');
});

View file

@ -46,7 +46,7 @@ export type AddLinkPreviewOptionsType = Readonly<{
disableFetch?: boolean;
}>;
const linkify = LinkifyIt();
const linkify = new LinkifyIt();
export function isValidLink(maybeUrl: string | undefined): boolean {
if (maybeUrl == null) {

View file

@ -1,16 +1,26 @@
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { encode } from 'blurhash';
import { encode83 } from 'blurhash/dist/base83';
/**
* This generates a blurhash for a single pixel of a given color.
*
* The color is specified as an ARGB value, where the alpha channel is ignored.
*/
export function generateBlurHash(argb: number = 0xff_fbfbfb): string {
return encode(
new Uint8ClampedArray([
/* eslint-disable no-bitwise */
export function generateBlurHash(argb = 4294704123): string {
const R = 0xff & (argb >> 16);
const G = 0xff & (argb >> 8);
const B = 0xff & (argb >> 0);
const value = (R << 16) + (G << 8) + B;
return `00${encode83(value, 4)}`;
}
// Flipping from argb to rgba
0xff & (argb >> 16), // R
0xff & (argb >> 8), // G
0xff & (argb >> 0), // B
0xff, // A (ignored)
/* eslint-enable no-bitwise */
]),
1, // width (data is just one pixel)
1, // height (data is just one pixel)
1, // x components (just the average color)
1 // y components (just the average color)
);
}

View file

@ -60,213 +60,38 @@
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.dev.js",
"line": " const instanceRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.dev.js",
"line": " const observerRef = React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.prod.js",
"line": " const instanceRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.cjs.prod.js",
"line": " const observerRef = React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.esm.js",
"path": "node_modules/@react-spring/animated/dist/react-spring_animated.legacy-esm.js",
"line": " const instanceRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/animated/dist/react-spring-animated.esm.js",
"path": "node_modules/@react-spring/animated/dist/react-spring_animated.legacy-esm.js",
"line": " const observerRef = useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
"line": " const layoutId = React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
"line": " const ctrls = React.useRef([...state.ctrls]);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
"line": " const usedTransitions = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
"line": " const exitingTransitions = React.useRef(new Map());",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.dev.js",
"line": " const forceChange = React.useRef(false);",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
"line": " const layoutId = React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
"line": " const ctrls = React.useRef([...state.ctrls]);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
"line": " const usedTransitions = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
"line": " const exitingTransitions = React.useRef(new Map());",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.cjs.prod.js",
"line": " const forceChange = React.useRef(false);",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
"path": "node_modules/@react-spring/core/dist/react-spring_core.legacy-esm.js",
"line": " const layoutId = useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
"path": "node_modules/@react-spring/core/dist/react-spring_core.legacy-esm.js",
"line": " const ctrls = useRef([...state.ctrls]);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
"line": " const usedTransitions = useRef(null);",
"path": "node_modules/@react-spring/shared/dist/react-spring_shared.legacy-esm.js",
"line": " const ref = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
"line": " const exitingTransitions = useRef(new Map());",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/core/dist/react-spring-core.esm.js",
"line": " const forceChange = useRef(false);",
"reasonCategory": "usageTrusted",
"updated": "2022-01-12T23:16:33.623Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
"line": " const committed = react.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
"line": " const prevRef = react.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.dev.js",
"line": " const isMounted = react.useRef(false);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-01T22:57:44.591Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
"line": " const committed = react.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
"line": " const prevRef = react.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.cjs.prod.js",
"line": " const isMounted = react.useRef(false);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-01T22:57:44.591Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
"line": " const isMounted = useRef(false);",
"reasonCategory": "falseMatch",
"updated": "2022-06-01T22:57:44.591Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
"line": " const committed = useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
},
{
"rule": "React-useRef",
"path": "node_modules/@react-spring/shared/dist/react-spring-shared.esm.js",
"line": " const prevRef = useRef();",
"reasonCategory": "usageTrusted",
"updated": "2021-09-27T21:37:06.339Z"
"updated": "2024-11-16T00:21:51.887Z"
},
{
"rule": "DOM-innerHTML",
@ -586,20 +411,6 @@
"reasonCategory": "usageTrusted",
"updated": "2023-10-03T18:55:06.301Z"
},
{
"rule": "React-findDOMNode",
"path": "node_modules/focus-trap-react/dist/focus-trap-react.js",
"line": " var focusTrapElementDOMNodes = this.focusTrapElements.map( // NOTE: `findDOMNode()` does not support CSS selectors; it'll just return",
"reasonCategory": "exampleCode",
"updated": "2021-10-01T23:53:26.107Z"
},
{
"rule": "React-findDOMNode",
"path": "node_modules/focus-trap-react/src/focus-trap-react.js",
"line": " // NOTE: `findDOMNode()` does not support CSS selectors; it'll just return",
"reasonCategory": "exampleCode",
"updated": "2021-10-01T23:53:26.107Z"
},
{
"rule": "eval",
"path": "node_modules/globalthis/test/tests.js",
@ -650,19 +461,6 @@
"updated": "2021-02-16T19:08:17.452Z",
"reasonDetail": "Hard-coded string used for testing capabilities."
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInput-jquery.js",
"line": " this.selectedDialCode.innerHTML = dialCode;",
"reasonCategory": "usageTrusted",
"updated": "2021-12-01T01:31:12.757Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInput-jquery.min.js",
"reasonCategory": "usageTrusted",
"updated": "2021-12-01T01:31:12.757Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInput.js",
@ -678,10 +476,93 @@
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/src/js/intlTelInput.js",
"path": "node_modules/intl-tel-input/build/js/intlTelInput.js",
"line": " this.countryList.innerHTML = \"\";",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.js",
"line": " this.countryList.innerHTML = \"\";",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.js",
"line": " this.selectedDialCode.innerHTML = dialCode;",
"reasonCategory": "usageTrusted",
"updated": "2021-12-01T01:31:12.757Z"
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/build/js/intlTelInputWithUtils.min.js",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/react/build/IntlTelInput.js",
"line": " this.countryList.innerHTML = \"\";",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/react/build/IntlTelInput.js",
"line": " this.selectedDialCode.innerHTML = dialCode;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "React-useRef",
"path": "node_modules/intl-tel-input/react/build/IntlTelInput.js",
"line": " const inputRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "React-useRef",
"path": "node_modules/intl-tel-input/react/build/IntlTelInput.js",
"line": " const itiRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js",
"line": " this.countryList.innerHTML = \"\";",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "DOM-innerHTML",
"path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js",
"line": " this.selectedDialCode.innerHTML = dialCode;",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "React-useRef",
"path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js",
"line": " const inputRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "React-useRef",
"path": "node_modules/intl-tel-input/react/build/IntlTelInputWithUtils.js",
"line": " const itiRef = useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "React-useRef",
"path": "ts/components/StandaloneRegistration.tsx",
"line": " const pluginRef = useRef<Iti | undefined>();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:33:41.092Z"
},
{
"rule": "eval",
@ -1375,107 +1256,254 @@
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
"line": " var libRef = React.useRef(null);",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
"line": " var heightRef = React.useRef(0);",
"line": " var heightRef = React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.cjs.js",
"line": " var measurementsCacheRef = React.useRef();",
"line": " var measurementsCacheRef = React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var libRef = useRef(null);",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var heightRef = useRef(0);",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js",
"line": " var heightRef = React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var measurementsCacheRef = useRef();",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.cjs.js",
"line": " var measurementsCacheRef = React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js",
"line": " var heightRef = React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.dev.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.development.esm.js",
"line": " var measurementsCacheRef = React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var heightRef = React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.prod.js",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js",
"line": " var measurementsCacheRef = React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.js",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.js",
"line": " React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.cjs.js",
"line": " React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.cjs.js",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.cjs.js",
"line": " React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.cjs.js",
"line": " React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.esm.js",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.esm.js",
"line": " React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.esm.js",
"line": " React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.cjs.js",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.cjs.js",
"line": " React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.cjs.js",
"line": " React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.esm.js",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.esm.js",
"line": " React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.development.worker.esm.js",
"line": " React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
"line": " var libRef = useRef(null);",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
"line": " var heightRef = useRef(0);",
"line": " React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.js",
"line": " var measurementsCacheRef = useRef();",
"line": " React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2022-06-16T23:23:32.306Z"
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.cjs.js",
"line": " var libRef = React__namespace.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.cjs.js",
"line": " React__namespace.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.cjs.js",
"line": " React__namespace.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.esm.js",
"line": " var libRef = React.useRef(null);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.esm.js",
"line": " React.useRef(0);",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "React-useRef",
"path": "node_modules/react-textarea-autosize/dist/react-textarea-autosize.worker.esm.js",
"line": " React.useRef();",
"reasonCategory": "usageTrusted",
"updated": "2024-11-16T00:31:42.167Z"
},
{
"rule": "eval",
@ -2287,13 +2315,6 @@
"reasonCategory": "usageTrusted",
"updated": "2021-07-30T16:57:33.618Z"
},
{
"rule": "React-useRef",
"path": "ts/components/StandaloneRegistration.tsx",
"line": " const pluginRef = useRef<Plugin | undefined>();",
"reasonCategory": "usageTrusted",
"updated": "2021-11-24T20:55:14.943Z"
},
{
"rule": "React-useRef",
"path": "ts/components/StandaloneRegistration.tsx",

View file

@ -6,6 +6,7 @@ import { PhoneNumberUtil, PhoneNumberFormat } from 'google-libphonenumber';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as moment from 'moment';
// @ts-expect-error -- no types
import 'moment/min/locales.min';
import { textsecure } from '../../textsecure';

View file

@ -89,7 +89,7 @@
/* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
// "customConditions": [],
/* Check side effect imports. */
// "noUncheckedSideEffectImports": true, // TODO: Enable after upgrading to TypeScript 5.6
"noUncheckedSideEffectImports": true,
/* Enable importing .json files. */
"resolveJsonModule": true,
/* Enable importing files with any extension, provided a declaration file is present. */
@ -164,7 +164,7 @@
/* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
// "verbatimModuleSyntax": true,
/* Require sufficient annotation on exports so other tools can trivially generate declaration files. */
// "isolatedDeclarations": true, // TODO: Enable after upgrading to TypeScript 5.5
"isolatedDeclarations": false, // Incompatible with reselect
/* Allow 'import x from y' when a module doesn't have a default export. */
// "allowSyntheticDefaultImports": true,
/* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
@ -191,7 +191,7 @@
/* Check for class properties that are declared but not set in the constructor. */
"strictPropertyInitialization": true, // (default: strict)
/* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */
// "strictBuiltinIteratorReturn": true, // TODO: Enable after upgrading to TypeScript 5.6
"strictBuiltinIteratorReturn": true,
/* Enable error reporting when 'this' is given the type 'any'. */
"noImplicitThis": true, // (default: strict)
/* Default catch clause variables as 'unknown' instead of 'any'. */