Update to libsignal-client v0.10.1 with zkgroup included

This commit is contained in:
Jordan Rose 2021-11-11 07:24:28 -08:00 committed by GitHub
parent 6445a01f2a
commit 983713003d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 58 additions and 348 deletions

4
.snyk
View File

@ -8,14 +8,10 @@ patch:
'npm:debug:20170905':
- websocket > debug:
patched: '2020-04-30T19:26:25.236Z'
- ref-array-napi > array-index > debug:
patched: '2020-04-30T19:26:25.236Z'
- babel-template > babel-traverse > debug:
patched: '2020-04-30T19:26:25.236Z'
- istanbul-lib-instrument > babel-traverse > debug:
patched: '2020-04-30T19:26:25.236Z'
- zkgroup > ref-array-napi > array-index > debug:
patched: '2020-04-30T19:26:25.236Z'
- istanbul-lib-instrument > babel-template > babel-traverse > debug:
patched: '2020-04-30T19:26:25.236Z'
- array-index > debug:

View File

@ -74,7 +74,7 @@
"dependencies": {
"@popperjs/core": "2.9.2",
"@react-spring/web": "9.2.6",
"@signalapp/signal-client": "0.9.8",
"@signalapp/signal-client": "0.10.1",
"@sindresorhus/is": "0.8.0",
"abort-controller": "3.0.0",
"array-move": "2.1.0",
@ -165,7 +165,6 @@
"underscore": "1.12.1",
"uuid": "3.3.2",
"websocket": "1.0.28",
"zkgroup": "https://github.com/signalapp/signal-zkgroup-node.git#0d2b3874d2e671fa5fdcc2154065cc061f977672",
"zod": "3.5.1"
},
"devDependencies": {
@ -305,10 +304,7 @@
"appId": "org.whispersystems.signal-desktop",
"mac": {
"asarUnpack": [
"**/*.node",
"node_modules/zkgroup/libzkgroup.*",
"node_modules/@signalapp/signal-client/build/*.node",
"node_modules/mac-screen-capture-permissions/build/Release/*.node"
"**/*.node"
],
"artifactName": "${name}-mac-${version}.${ext}",
"category": "public.app-category.social-networking",
@ -332,9 +328,7 @@
"asarUnpack": [
"**/*.node",
"node_modules/spellchecker/vendor/hunspell_dictionaries",
"node_modules/sharp",
"node_modules/zkgroup/libzkgroup.*",
"node_modules/@signalapp/signal-client/build/*.node"
"node_modules/sharp"
],
"artifactName": "${name}-win-${version}.${ext}",
"certificateSubjectName": "Signal Messenger, LLC",
@ -365,9 +359,7 @@
"asarUnpack": [
"**/*.node",
"node_modules/spellchecker/vendor/hunspell_dictionaries",
"node_modules/sharp",
"node_modules/zkgroup/libzkgroup.*",
"node_modules/@signalapp/signal-client/build/*.node"
"node_modules/sharp"
],
"target": [
"deb"
@ -434,15 +426,13 @@
"!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme,test,__tests__,tests,powered-test,example,examples,*.d.ts,.snyk-*.flag,benchmark}",
"!**/node_modules/.bin",
"!**/node_modules/**/build/**",
"!**/node_modules/**/prebuilds/**",
"!**/*.{o,hprof,orig,pyc,pyo,rbc}",
"!**/._*",
"!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.flowconfig,.yarn-metadata.json,.idea,appveyor.yml,.travis.yml,circle.yml,npm-debug.log,.nyc_output,yarn.lock,.yarn-integrity}",
"node_modules/spellchecker/build/Release/*.node",
"node_modules/websocket/build/Release/*.node",
"!node_modules/websocket/builderror.log",
"node_modules/ref-napi/build/Release/*.node",
"node_modules/ref-array-napi/node_modules/ref-napi/build/Release/*.node",
"node_modules/ffi-napi/build/Release/*.node",
"node_modules/socks/build/*.js",
"node_modules/socks/build/common/*.js",
"node_modules/socks/build/client/*.js",
@ -452,10 +442,9 @@
"!node_modules/better-sqlite3/deps/*",
"!node_modules/better-sqlite3/src/*",
"node_modules/better-sqlite3/build/Release/better_sqlite3.node",
"node_modules/@signalapp/signal-client/build/*${platform}*.node",
"node_modules/@signalapp/signal-client/prebuilds/*${platform}*/*.node",
"node_modules/ringrtc/build/${platform}/**",
"node_modules/mac-screen-capture-permissions/build/Release/*.node",
"!**/node_modules/ffi-napi/deps",
"!**/node_modules/react-dom/*/*.development.js",
"!node_modules/.cache"
]

View File

@ -13,11 +13,7 @@ const {
optionalDependencies = {},
} = require('../package.json');
const SKIPPED_DEPENDENCIES = new Set([
'ringrtc',
'zkgroup',
'@signalapp/signal-client',
]);
const SKIPPED_DEPENDENCIES = new Set(['ringrtc', '@signalapp/signal-client']);
const rootDir = join(__dirname, '..');
const nodeModulesPath = join(rootDir, 'node_modules');

View File

@ -9,7 +9,7 @@ import {
isNumber,
values,
} from 'lodash';
import type { ClientZkGroupCipher } from 'zkgroup';
import type { ClientZkGroupCipher } from '@signalapp/signal-client/zkgroup';
import { v4 as getGuid } from 'uuid';
import LRU from 'lru-cache';
import * as log from './logging/log';

View File

@ -2,13 +2,9 @@
// SPDX-License-Identifier: AGPL-3.0-only
import { last, sortBy } from 'lodash';
import { AuthCredentialResponse } from 'zkgroup';
import { AuthCredentialResponse } from '@signalapp/signal-client/zkgroup';
import {
base64ToCompatArray,
compatArrayToBase64,
getClientZkAuthOperations,
} from '../util/zkgroup';
import { getClientZkAuthOperations } from '../util/zkgroup';
import type { GroupCredentialType } from '../textsecure/WebAPI';
import * as durations from '../util/durations';
@ -151,9 +147,9 @@ export async function maybeFetchNewCredentials(): Promise<void> {
const authCredential = clientZKAuthOperations.receiveAuthCredential(
uuid,
item.redemptionTime,
new AuthCredentialResponse(base64ToCompatArray(item.credential))
new AuthCredentialResponse(Buffer.from(item.credential, 'base64'))
);
const credential = compatArrayToBase64(authCredential.serialize());
const credential = authCredential.serialize().toString('base64');
return {
redemptionTime: item.redemptionTime,

View File

@ -1,7 +1,7 @@
// Copyright 2020-2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ProfileKeyCredentialRequestContext } from 'zkgroup';
import type { ProfileKeyCredentialRequestContext } from '@signalapp/signal-client/zkgroup';
import { SEALED_SENDER } from '../types/SealedSender';
import { Address } from '../types/Address';
import { QualifiedAddress } from '../types/QualifiedAddress';

View File

@ -564,36 +564,6 @@
"updated": "2020-08-26T18:06:51.702Z",
"reasonDetail": "isn't jquery"
},
{
"rule": "jQuery-load(",
"path": "node_modules/array-index/node_modules/debug/src/browser.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/array-index/node_modules/debug/src/browser.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/array-index/node_modules/debug/src/node.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-10-21T00:36:11.618Z",
"reasonDetail": "isn't jquery"
},
{
"rule": "jQuery-load(",
"path": "node_modules/array-index/node_modules/debug/src/node.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-10-21T00:36:11.618Z",
"reasonDetail": "isn't jquery"
},
{
"rule": "jQuery-insertAfter(",
"path": "node_modules/ast-types/lib/path.js",
@ -9230,62 +9200,6 @@
"reasonCategory": "falseMatch",
"updated": "2021-04-05T20:48:36.065Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-array-napi/node_modules/debug/src/browser.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-array-napi/node_modules/debug/src/browser.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-array-napi/node_modules/debug/src/node.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-array-napi/node_modules/debug/src/node.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-04-30T22:35:27.860Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-struct-di/node_modules/debug/src/browser.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-struct-di/node_modules/debug/src/browser.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-struct-di/node_modules/debug/src/node.js",
"line": "function load() {",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-load(",
"path": "node_modules/ref-struct-di/node_modules/debug/src/node.js",
"line": "exports.enable(load());",
"reasonCategory": "falseMatch",
"updated": "2020-02-21T22:10:39.074Z"
},
{
"rule": "jQuery-$(",
"path": "node_modules/regenerate/regenerate.js",

View File

@ -1,16 +1,12 @@
// Copyright 2020 Signal Messenger, LLC
// Copyright 2020-2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type {
FFICompatArrayType,
ProfileKeyCredentialRequestContext,
} from 'zkgroup';
import type { ProfileKeyCredentialRequestContext } from '@signalapp/signal-client/zkgroup';
import {
AuthCredential,
ClientZkAuthOperations,
ClientZkGroupCipher,
ClientZkProfileOperations,
FFICompatArray,
GroupMasterKey,
GroupSecretParams,
ProfileKey,
@ -20,36 +16,11 @@ import {
ProfileKeyCredentialResponse,
ServerPublicParams,
UuidCiphertext,
} from 'zkgroup';
import * as Bytes from '../Bytes';
} from '@signalapp/signal-client/zkgroup';
import { UUID } from '../types/UUID';
import type { UUIDStringType } from '../types/UUID';
export * from 'zkgroup';
export function uint8ArrayToCompatArray(
buffer: Uint8Array
): FFICompatArrayType {
return new FFICompatArray(Buffer.from(buffer));
}
export function compatArrayToUint8Array(
compatArray: FFICompatArrayType
): Uint8Array {
return compatArray.buffer;
}
export function base64ToCompatArray(base64: string): FFICompatArrayType {
return uint8ArrayToCompatArray(Bytes.fromBase64(base64));
}
export function compatArrayToBase64(compatArray: FFICompatArrayType): string {
return Bytes.toBase64(compatArrayToUint8Array(compatArray));
}
export function compatArrayToHex(compatArray: FFICompatArrayType): string {
return Bytes.toHex(compatArrayToUint8Array(compatArray));
}
export * from '@signalapp/signal-client/zkgroup';
// Scenarios
@ -57,9 +28,7 @@ export function decryptGroupBlob(
clientZkGroupCipher: ClientZkGroupCipher,
ciphertext: Uint8Array
): Uint8Array {
return compatArrayToUint8Array(
clientZkGroupCipher.decryptBlob(uint8ArrayToCompatArray(ciphertext))
);
return clientZkGroupCipher.decryptBlob(Buffer.from(ciphertext));
}
export function decryptProfileKeyCredentialPresentation(
@ -67,7 +36,7 @@ export function decryptProfileKeyCredentialPresentation(
presentationBuffer: Uint8Array
): { profileKey: Uint8Array; uuid: UUIDStringType } {
const presentation = new ProfileKeyCredentialPresentation(
uint8ArrayToCompatArray(presentationBuffer)
Buffer.from(presentationBuffer)
);
const uuidCiphertext = presentation.getUuidCiphertext();
@ -80,7 +49,7 @@ export function decryptProfileKeyCredentialPresentation(
);
return {
profileKey: compatArrayToUint8Array(profileKey.serialize()),
profileKey: profileKey.serialize(),
uuid: UUID.cast(uuid),
};
}
@ -91,7 +60,7 @@ export function decryptProfileKey(
uuid: UUIDStringType
): Uint8Array {
const profileKeyCiphertext = new ProfileKeyCiphertext(
uint8ArrayToCompatArray(profileKeyCiphertextBuffer)
Buffer.from(profileKeyCiphertextBuffer)
);
const profileKey = clientZkGroupCipher.decryptProfileKey(
@ -99,16 +68,14 @@ export function decryptProfileKey(
uuid
);
return compatArrayToUint8Array(profileKey.serialize());
return profileKey.serialize();
}
export function decryptUuid(
clientZkGroupCipher: ClientZkGroupCipher,
uuidCiphertextBuffer: Uint8Array
): string {
const uuidCiphertext = new UuidCiphertext(
uint8ArrayToCompatArray(uuidCiphertextBuffer)
);
const uuidCiphertext = new UuidCiphertext(Buffer.from(uuidCiphertextBuffer));
return clientZkGroupCipher.decryptUuid(uuidCiphertext);
}
@ -117,7 +84,7 @@ export function deriveProfileKeyVersion(
profileKeyBase64: string,
uuid: UUIDStringType
): string {
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
const profileKey = new ProfileKey(profileKeyArray);
const profileKeyVersion = profileKey.getProfileKeyVersion(uuid);
@ -129,42 +96,34 @@ export function deriveGroupPublicParams(
groupSecretParamsBuffer: Uint8Array
): Uint8Array {
const groupSecretParams = new GroupSecretParams(
uint8ArrayToCompatArray(groupSecretParamsBuffer)
Buffer.from(groupSecretParamsBuffer)
);
return compatArrayToUint8Array(
groupSecretParams.getPublicParams().serialize()
);
return groupSecretParams.getPublicParams().serialize();
}
export function deriveGroupID(groupSecretParamsBuffer: Uint8Array): Uint8Array {
const groupSecretParams = new GroupSecretParams(
uint8ArrayToCompatArray(groupSecretParamsBuffer)
Buffer.from(groupSecretParamsBuffer)
);
return compatArrayToUint8Array(
groupSecretParams.getPublicParams().getGroupIdentifier().serialize()
);
return groupSecretParams.getPublicParams().getGroupIdentifier().serialize();
}
export function deriveGroupSecretParams(
masterKeyBuffer: Uint8Array
): Uint8Array {
const masterKey = new GroupMasterKey(
uint8ArrayToCompatArray(masterKeyBuffer)
);
const masterKey = new GroupMasterKey(Buffer.from(masterKeyBuffer));
const groupSecretParams = GroupSecretParams.deriveFromMasterKey(masterKey);
return compatArrayToUint8Array(groupSecretParams.serialize());
return groupSecretParams.serialize();
}
export function encryptGroupBlob(
clientZkGroupCipher: ClientZkGroupCipher,
plaintext: Uint8Array
): Uint8Array {
return compatArrayToUint8Array(
clientZkGroupCipher.encryptBlob(uint8ArrayToCompatArray(plaintext))
);
return clientZkGroupCipher.encryptBlob(Buffer.from(plaintext));
}
export function encryptUuid(
@ -173,7 +132,7 @@ export function encryptUuid(
): Uint8Array {
const uuidCiphertext = clientZkGroupCipher.encryptUuid(uuidPlaintext);
return compatArrayToUint8Array(uuidCiphertext.serialize());
return uuidCiphertext.serialize();
}
export function generateProfileKeyCredentialRequest(
@ -181,7 +140,7 @@ export function generateProfileKeyCredentialRequest(
uuid: UUIDStringType,
profileKeyBase64: string
): { context: ProfileKeyCredentialRequestContext; requestHex: string } {
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
const profileKey = new ProfileKey(profileKeyArray);
const context = clientZkProfileCipher.createProfileKeyCredentialRequestContext(
@ -193,7 +152,7 @@ export function generateProfileKeyCredentialRequest(
return {
context,
requestHex: compatArrayToHex(requestArray),
requestHex: requestArray.toString('hex'),
};
}
@ -203,17 +162,17 @@ export function getAuthCredentialPresentation(
groupSecretParamsBase64: string
): Uint8Array {
const authCredential = new AuthCredential(
base64ToCompatArray(authCredentialBase64)
Buffer.from(authCredentialBase64, 'base64')
);
const secretParams = new GroupSecretParams(
base64ToCompatArray(groupSecretParamsBase64)
Buffer.from(groupSecretParamsBase64, 'base64')
);
const presentation = clientZkAuthOperations.createAuthCredentialPresentation(
secretParams,
authCredential
);
return compatArrayToUint8Array(presentation.serialize());
return presentation.serialize();
}
export function createProfileKeyCredentialPresentation(
@ -221,14 +180,15 @@ export function createProfileKeyCredentialPresentation(
profileKeyCredentialBase64: string,
groupSecretParamsBase64: string
): Uint8Array {
const profileKeyCredentialArray = base64ToCompatArray(
profileKeyCredentialBase64
const profileKeyCredentialArray = Buffer.from(
profileKeyCredentialBase64,
'base64'
);
const profileKeyCredential = new ProfileKeyCredential(
profileKeyCredentialArray
);
const secretParams = new GroupSecretParams(
base64ToCompatArray(groupSecretParamsBase64)
Buffer.from(groupSecretParamsBase64, 'base64')
);
const presentation = clientZkProfileCipher.createProfileKeyCredentialPresentation(
@ -236,14 +196,14 @@ export function createProfileKeyCredentialPresentation(
profileKeyCredential
);
return compatArrayToUint8Array(presentation.serialize());
return presentation.serialize();
}
export function getClientZkAuthOperations(
serverPublicParamsBase64: string
): ClientZkAuthOperations {
const serverPublicParams = new ServerPublicParams(
base64ToCompatArray(serverPublicParamsBase64)
Buffer.from(serverPublicParamsBase64, 'base64')
);
return new ClientZkAuthOperations(serverPublicParams);
@ -253,7 +213,7 @@ export function getClientZkGroupCipher(
groupSecretParamsBase64: string
): ClientZkGroupCipher {
const serverPublicParams = new GroupSecretParams(
base64ToCompatArray(groupSecretParamsBase64)
Buffer.from(groupSecretParamsBase64, 'base64')
);
return new ClientZkGroupCipher(serverPublicParams);
@ -263,7 +223,7 @@ export function getClientZkProfileOperations(
serverPublicParamsBase64: string
): ClientZkProfileOperations {
const serverPublicParams = new ServerPublicParams(
base64ToCompatArray(serverPublicParamsBase64)
Buffer.from(serverPublicParamsBase64, 'base64')
);
return new ClientZkProfileOperations(serverPublicParams);
@ -275,7 +235,7 @@ export function handleProfileKeyCredential(
responseBase64: string
): string {
const response = new ProfileKeyCredentialResponse(
base64ToCompatArray(responseBase64)
Buffer.from(responseBase64, 'base64')
);
const profileKeyCredential = clientZkProfileCipher.receiveProfileKeyCredential(
context,
@ -284,15 +244,15 @@ export function handleProfileKeyCredential(
const credentialArray = profileKeyCredential.serialize();
return compatArrayToBase64(credentialArray);
return credentialArray.toString('base64');
}
export function deriveProfileKeyCommitment(
profileKeyBase64: string,
uuid: UUIDStringType
): string {
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
const profileKey = new ProfileKey(profileKeyArray);
return compatArrayToBase64(profileKey.getCommitment(uuid).contents);
return profileKey.getCommitment(uuid).contents.toString('base64');
}

View File

@ -58,10 +58,5 @@
// "experimentalDecorators": true, // Enables experimental support for ES7 decorators.
// "emitDecoratorMetadata": true, // Enables experimental support for emitting type metadata for decorators.
},
"include": [
"ts/**/*",
"app/*",
"node_modules/zkgroup/zkgroup/modules/*",
"package.json"
]
"include": ["ts/**/*", "app/*", "package.json"]
}

View File

@ -11,9 +11,9 @@ const { NODE_ENV: mode = 'development' } = process.env;
const EXTERNAL_MODULE = new Set([
'@signalapp/signal-client',
'@signalapp/signal-client/zkgroup',
'backbone',
'better-sqlite3',
'ffi-napi',
'fs-xattr',
'fsevents',
'got',
@ -23,12 +23,9 @@ const EXTERNAL_MODULE = new Set([
'node-sass',
'pino',
'proxy-agent',
'ref-array-napi',
'ref-napi',
'ringrtc',
'sharp',
'websocket',
'zkgroup',
// Uses fast-glob and dynamic requires
'./preload_test',

147
yarn.lock
View File

@ -1717,10 +1717,10 @@
"@react-spring/shared" "~9.2.6-beta.0"
"@react-spring/types" "~9.2.6-beta.0"
"@signalapp/signal-client@0.9.8":
version "0.9.8"
resolved "https://registry.yarnpkg.com/@signalapp/signal-client/-/signal-client-0.9.8.tgz#e3bd9795eb29ee0246adf0a5245de06054d69180"
integrity sha512-ESm/n2rtVtDVdQvO9ad8y5Hh3grf+HWtM+nzZHYTw3QpvhaYONl3xUBAs1mbGYp/6Gwf83qJ/Le9rduFfw/lVQ==
"@signalapp/signal-client@0.10.1":
version "0.10.1"
resolved "https://registry.yarnpkg.com/@signalapp/signal-client/-/signal-client-0.10.1.tgz#74b41264044caac4d42df3baf1f5c393f63ec50a"
integrity sha512-myVTaqFljakN0fxvmK4FmslOHJPuuoGxpSmlu4KU2D3RP2EiDHmg3Q+Xw9TWh7ehpstUxwe5op6sThq5d3b3Dw==
dependencies:
node-gyp-build "^4.2.3"
uuid "^8.3.0"
@ -2578,15 +2578,6 @@
"@types/express-serve-static-core" "*"
"@types/serve-static" "*"
"@types/ffi-napi@^4.0.1":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@types/ffi-napi/-/ffi-napi-4.0.3.tgz#2f016368198e4c6fbb0a69501b67cd8bec9cc3b7"
integrity sha512-hP9SJCapWnVH5dGSsvb3nvrjJMj95cU2jrs45RhZz8IhPHhcwrzqi9XyaTxGuafGJ9rS07I+zJ83BU5dhorerw==
dependencies:
"@types/node" "*"
"@types/ref-napi" "*"
"@types/ref-struct-di" "*"
"@types/filesize@3.6.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@types/filesize/-/filesize-3.6.0.tgz#5f1a25c7b4e3d5ee2bc63133d374d096b7008c8d"
@ -2937,20 +2928,6 @@
dependencies:
redux "^3.6.0"
"@types/ref-napi@*", "@types/ref-napi@^3.0.1":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/ref-napi/-/ref-napi-3.0.3.tgz#1e6093f407dfe5b4dab4a490da1860344045732b"
integrity sha512-5Jm6TjMk9tt2A0m1jPXHhRTOAeDxhAirF36GUEV2ldQSOcXkG9FRV856PZFfx1s2hpdHvJg4nRfojlfEQo7v3A==
dependencies:
"@types/node" "*"
"@types/ref-struct-di@*":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@types/ref-struct-di/-/ref-struct-di-1.1.3.tgz#2e42d5889eb072b2c3f2780f12a397e829b58b8f"
integrity sha512-OdsiCc10hByKZ27R8Bd+09EhiciuD6V9eAn+RjiLNx0YJum8E6CKg8zws5OmHKDtYA5Ke7kUvBJlUwITSZdvzA==
dependencies:
"@types/ref-napi" "*"
"@types/responselike@*", "@types/responselike@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
@ -4048,14 +4025,6 @@ array-includes@^3.1.1:
es-abstract "^1.17.0"
is-string "^1.0.5"
array-index@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-index/-/array-index-1.0.0.tgz#ec56a749ee103e4e08c790b9c353df16055b97f9"
integrity sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k=
dependencies:
debug "^2.2.0"
es6-symbol "^3.0.2"
array-map@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
@ -6576,14 +6545,6 @@ d@1:
dependencies:
es5-ext "^0.10.9"
d@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
dependencies:
es5-ext "^0.10.50"
type "^1.0.1"
damerau-levenshtein@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
@ -7614,15 +7575,6 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.9, es5-ext@~
es6-symbol "~3.1.1"
next-tick "^1.0.0"
es5-ext@^0.10.50:
version "0.10.53"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.3"
next-tick "~1.0.0"
es5-shim@^4.5.13:
version "4.5.13"
resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.13.tgz#5d88062de049f8969f83783f4a4884395f21d28b"
@ -7662,14 +7614,6 @@ es6-shim@^0.35.5:
resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab"
integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==
es6-symbol@^3.0.2, es6-symbol@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
dependencies:
d "^1.0.1"
ext "^1.1.2"
es6-symbol@^3.1.1, es6-symbol@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
@ -8234,13 +8178,6 @@ express@^4.17.0, express@^4.17.1:
utils-merge "1.0.1"
vary "~1.1.2"
ext@^1.1.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
dependencies:
type "^2.0.0"
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
@ -8473,18 +8410,6 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
ffi-napi@4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/ffi-napi/-/ffi-napi-4.0.3.tgz#27a8d42a8ea938457154895c59761fbf1a10f441"
integrity sha512-PMdLCIvDY9mS32RxZ0XGb95sonPRal8aqRhLbeEtWKZTe2A87qRFG9HjOhvG8EX2UmQw5XNRMIOT+1MYlWmdeg==
dependencies:
debug "^4.1.1"
get-uv-event-loop-napi-h "^1.0.5"
node-addon-api "^3.0.0"
node-gyp-build "^4.2.1"
ref-napi "^2.0.1 || ^3.0.2"
ref-struct-di "^1.1.0"
figgy-pudding@^3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
@ -9138,11 +9063,6 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
get-symbol-from-current-process-h@^1.0.1, get-symbol-from-current-process-h@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz#510af52eaef873f7028854c3377f47f7bb200265"
integrity sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw==
get-uri@3:
version "3.0.2"
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
@ -9166,13 +9086,6 @@ get-uri@^2.0.0:
ftp "~0.3.10"
readable-stream "2"
get-uv-event-loop-napi-h@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz#42b0b06b74c3ed21fbac8e7c72845fdb7a200208"
integrity sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg==
dependencies:
get-symbol-from-current-process-h "^1.0.1"
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@ -12802,7 +12715,7 @@ new-github-issue-url@^0.2.1:
resolved "https://registry.yarnpkg.com/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz#e17be1f665a92de465926603e44b9f8685630c1d"
integrity sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==
next-tick@1, next-tick@^1.0.0, next-tick@~1.0.0:
next-tick@1, next-tick@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
@ -12850,7 +12763,7 @@ node-addon-api@^1.6.3:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
node-addon-api@^3.0.0, node-addon-api@^3.1.0:
node-addon-api@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
@ -12879,7 +12792,7 @@ node-forge@0.10.0, node-forge@^0.10.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
node-gyp-build@^4.2.1, node-gyp-build@^4.2.3:
node-gyp-build@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739"
integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==
@ -15587,32 +15500,6 @@ redux@^4.0.0:
loose-envify "^1.4.0"
symbol-observable "^1.2.0"
ref-array-napi@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/ref-array-napi/-/ref-array-napi-1.2.2.tgz#8b172b375aa04441860973c262ac8a557e3d368e"
integrity sha512-EGQzUQpyqD/hN9eIn3uF68UPBmwJXdWkumHCmvK3ncjw128bkjd8TbJ51ur+2PZ4UrfCOQCcPQkuWZ6mNHch9A==
dependencies:
array-index "1"
debug "2"
ref-napi "^3.0.1"
ref-napi@3.0.3, "ref-napi@^2.0.1 || ^3.0.2", ref-napi@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/ref-napi/-/ref-napi-3.0.3.tgz#e259bfc2bbafb3e169e8cd9ba49037dd00396b22"
integrity sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA==
dependencies:
debug "^4.1.1"
get-symbol-from-current-process-h "^1.0.2"
node-addon-api "^3.0.0"
node-gyp-build "^4.2.1"
ref-struct-di@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ref-struct-di/-/ref-struct-di-1.1.0.tgz#d252144eb449608ccf2e5c12fda35f8153bd3760"
integrity sha512-gghZITj/iQwdwFDduZ6T8kL2B2ogInlOz7AOB0ggFoEc7akAKMcDrbzh3OIPk13Kxy8U2bHPvN6nejcBh4jN7A==
dependencies:
debug "^3.1.0"
refractor@^2.4.1:
version "2.10.0"
resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.10.0.tgz#4cc7efc0028a87924a9b31d82d129dec831a287b"
@ -18320,16 +18207,6 @@ type-is@~1.6.17, type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
type@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
typed-scss-modules@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/typed-scss-modules/-/typed-scss-modules-4.1.1.tgz#eab12f25511a329f8e4837842c3b484ffd66b449"
@ -19478,16 +19355,6 @@ zip-stream@^1.2.0:
lodash "^4.8.0"
readable-stream "^2.0.0"
"zkgroup@https://github.com/signalapp/signal-zkgroup-node.git#0d2b3874d2e671fa5fdcc2154065cc061f977672":
version "0.8.2"
resolved "https://github.com/signalapp/signal-zkgroup-node.git#0d2b3874d2e671fa5fdcc2154065cc061f977672"
dependencies:
"@types/ffi-napi" "^4.0.1"
"@types/ref-napi" "^3.0.1"
ffi-napi "4.0.3"
ref-array-napi "1.2.2"
ref-napi "3.0.3"
zod@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.5.1.tgz#e93ce58e182bb76f7d29ccd24feee72611f9a129"