Update to libsignal-client v0.10.1 with zkgroup included
This commit is contained in:
parent
6445a01f2a
commit
983713003d
11 changed files with 58 additions and 348 deletions
4
.snyk
4
.snyk
|
@ -8,14 +8,10 @@ patch:
|
||||||
'npm:debug:20170905':
|
'npm:debug:20170905':
|
||||||
- websocket > debug:
|
- websocket > debug:
|
||||||
patched: '2020-04-30T19:26:25.236Z'
|
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:
|
- babel-template > babel-traverse > debug:
|
||||||
patched: '2020-04-30T19:26:25.236Z'
|
patched: '2020-04-30T19:26:25.236Z'
|
||||||
- istanbul-lib-instrument > babel-traverse > debug:
|
- istanbul-lib-instrument > babel-traverse > debug:
|
||||||
patched: '2020-04-30T19:26:25.236Z'
|
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:
|
- istanbul-lib-instrument > babel-template > babel-traverse > debug:
|
||||||
patched: '2020-04-30T19:26:25.236Z'
|
patched: '2020-04-30T19:26:25.236Z'
|
||||||
- array-index > debug:
|
- array-index > debug:
|
||||||
|
|
23
package.json
23
package.json
|
@ -74,7 +74,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@popperjs/core": "2.9.2",
|
"@popperjs/core": "2.9.2",
|
||||||
"@react-spring/web": "9.2.6",
|
"@react-spring/web": "9.2.6",
|
||||||
"@signalapp/signal-client": "0.9.8",
|
"@signalapp/signal-client": "0.10.1",
|
||||||
"@sindresorhus/is": "0.8.0",
|
"@sindresorhus/is": "0.8.0",
|
||||||
"abort-controller": "3.0.0",
|
"abort-controller": "3.0.0",
|
||||||
"array-move": "2.1.0",
|
"array-move": "2.1.0",
|
||||||
|
@ -165,7 +165,6 @@
|
||||||
"underscore": "1.12.1",
|
"underscore": "1.12.1",
|
||||||
"uuid": "3.3.2",
|
"uuid": "3.3.2",
|
||||||
"websocket": "1.0.28",
|
"websocket": "1.0.28",
|
||||||
"zkgroup": "https://github.com/signalapp/signal-zkgroup-node.git#0d2b3874d2e671fa5fdcc2154065cc061f977672",
|
|
||||||
"zod": "3.5.1"
|
"zod": "3.5.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -305,10 +304,7 @@
|
||||||
"appId": "org.whispersystems.signal-desktop",
|
"appId": "org.whispersystems.signal-desktop",
|
||||||
"mac": {
|
"mac": {
|
||||||
"asarUnpack": [
|
"asarUnpack": [
|
||||||
"**/*.node",
|
"**/*.node"
|
||||||
"node_modules/zkgroup/libzkgroup.*",
|
|
||||||
"node_modules/@signalapp/signal-client/build/*.node",
|
|
||||||
"node_modules/mac-screen-capture-permissions/build/Release/*.node"
|
|
||||||
],
|
],
|
||||||
"artifactName": "${name}-mac-${version}.${ext}",
|
"artifactName": "${name}-mac-${version}.${ext}",
|
||||||
"category": "public.app-category.social-networking",
|
"category": "public.app-category.social-networking",
|
||||||
|
@ -332,9 +328,7 @@
|
||||||
"asarUnpack": [
|
"asarUnpack": [
|
||||||
"**/*.node",
|
"**/*.node",
|
||||||
"node_modules/spellchecker/vendor/hunspell_dictionaries",
|
"node_modules/spellchecker/vendor/hunspell_dictionaries",
|
||||||
"node_modules/sharp",
|
"node_modules/sharp"
|
||||||
"node_modules/zkgroup/libzkgroup.*",
|
|
||||||
"node_modules/@signalapp/signal-client/build/*.node"
|
|
||||||
],
|
],
|
||||||
"artifactName": "${name}-win-${version}.${ext}",
|
"artifactName": "${name}-win-${version}.${ext}",
|
||||||
"certificateSubjectName": "Signal Messenger, LLC",
|
"certificateSubjectName": "Signal Messenger, LLC",
|
||||||
|
@ -365,9 +359,7 @@
|
||||||
"asarUnpack": [
|
"asarUnpack": [
|
||||||
"**/*.node",
|
"**/*.node",
|
||||||
"node_modules/spellchecker/vendor/hunspell_dictionaries",
|
"node_modules/spellchecker/vendor/hunspell_dictionaries",
|
||||||
"node_modules/sharp",
|
"node_modules/sharp"
|
||||||
"node_modules/zkgroup/libzkgroup.*",
|
|
||||||
"node_modules/@signalapp/signal-client/build/*.node"
|
|
||||||
],
|
],
|
||||||
"target": [
|
"target": [
|
||||||
"deb"
|
"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/*/{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/.bin",
|
||||||
"!**/node_modules/**/build/**",
|
"!**/node_modules/**/build/**",
|
||||||
|
"!**/node_modules/**/prebuilds/**",
|
||||||
"!**/*.{o,hprof,orig,pyc,pyo,rbc}",
|
"!**/*.{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}",
|
"!**/{.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/spellchecker/build/Release/*.node",
|
||||||
"node_modules/websocket/build/Release/*.node",
|
"node_modules/websocket/build/Release/*.node",
|
||||||
"!node_modules/websocket/builderror.log",
|
"!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/*.js",
|
||||||
"node_modules/socks/build/common/*.js",
|
"node_modules/socks/build/common/*.js",
|
||||||
"node_modules/socks/build/client/*.js",
|
"node_modules/socks/build/client/*.js",
|
||||||
|
@ -452,10 +442,9 @@
|
||||||
"!node_modules/better-sqlite3/deps/*",
|
"!node_modules/better-sqlite3/deps/*",
|
||||||
"!node_modules/better-sqlite3/src/*",
|
"!node_modules/better-sqlite3/src/*",
|
||||||
"node_modules/better-sqlite3/build/Release/better_sqlite3.node",
|
"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/ringrtc/build/${platform}/**",
|
||||||
"node_modules/mac-screen-capture-permissions/build/Release/*.node",
|
"node_modules/mac-screen-capture-permissions/build/Release/*.node",
|
||||||
"!**/node_modules/ffi-napi/deps",
|
|
||||||
"!**/node_modules/react-dom/*/*.development.js",
|
"!**/node_modules/react-dom/*/*.development.js",
|
||||||
"!node_modules/.cache"
|
"!node_modules/.cache"
|
||||||
]
|
]
|
||||||
|
|
|
@ -13,11 +13,7 @@ const {
|
||||||
optionalDependencies = {},
|
optionalDependencies = {},
|
||||||
} = require('../package.json');
|
} = require('../package.json');
|
||||||
|
|
||||||
const SKIPPED_DEPENDENCIES = new Set([
|
const SKIPPED_DEPENDENCIES = new Set(['ringrtc', '@signalapp/signal-client']);
|
||||||
'ringrtc',
|
|
||||||
'zkgroup',
|
|
||||||
'@signalapp/signal-client',
|
|
||||||
]);
|
|
||||||
|
|
||||||
const rootDir = join(__dirname, '..');
|
const rootDir = join(__dirname, '..');
|
||||||
const nodeModulesPath = join(rootDir, 'node_modules');
|
const nodeModulesPath = join(rootDir, 'node_modules');
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
isNumber,
|
isNumber,
|
||||||
values,
|
values,
|
||||||
} from 'lodash';
|
} from 'lodash';
|
||||||
import type { ClientZkGroupCipher } from 'zkgroup';
|
import type { ClientZkGroupCipher } from '@signalapp/signal-client/zkgroup';
|
||||||
import { v4 as getGuid } from 'uuid';
|
import { v4 as getGuid } from 'uuid';
|
||||||
import LRU from 'lru-cache';
|
import LRU from 'lru-cache';
|
||||||
import * as log from './logging/log';
|
import * as log from './logging/log';
|
||||||
|
|
|
@ -2,13 +2,9 @@
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import { last, sortBy } from 'lodash';
|
import { last, sortBy } from 'lodash';
|
||||||
import { AuthCredentialResponse } from 'zkgroup';
|
import { AuthCredentialResponse } from '@signalapp/signal-client/zkgroup';
|
||||||
|
|
||||||
import {
|
import { getClientZkAuthOperations } from '../util/zkgroup';
|
||||||
base64ToCompatArray,
|
|
||||||
compatArrayToBase64,
|
|
||||||
getClientZkAuthOperations,
|
|
||||||
} from '../util/zkgroup';
|
|
||||||
|
|
||||||
import type { GroupCredentialType } from '../textsecure/WebAPI';
|
import type { GroupCredentialType } from '../textsecure/WebAPI';
|
||||||
import * as durations from '../util/durations';
|
import * as durations from '../util/durations';
|
||||||
|
@ -151,9 +147,9 @@ export async function maybeFetchNewCredentials(): Promise<void> {
|
||||||
const authCredential = clientZKAuthOperations.receiveAuthCredential(
|
const authCredential = clientZKAuthOperations.receiveAuthCredential(
|
||||||
uuid,
|
uuid,
|
||||||
item.redemptionTime,
|
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 {
|
return {
|
||||||
redemptionTime: item.redemptionTime,
|
redemptionTime: item.redemptionTime,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright 2020-2021 Signal Messenger, LLC
|
// Copyright 2020-2021 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// 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 { SEALED_SENDER } from '../types/SealedSender';
|
||||||
import { Address } from '../types/Address';
|
import { Address } from '../types/Address';
|
||||||
import { QualifiedAddress } from '../types/QualifiedAddress';
|
import { QualifiedAddress } from '../types/QualifiedAddress';
|
||||||
|
|
|
@ -564,36 +564,6 @@
|
||||||
"updated": "2020-08-26T18:06:51.702Z",
|
"updated": "2020-08-26T18:06:51.702Z",
|
||||||
"reasonDetail": "isn't jquery"
|
"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(",
|
"rule": "jQuery-insertAfter(",
|
||||||
"path": "node_modules/ast-types/lib/path.js",
|
"path": "node_modules/ast-types/lib/path.js",
|
||||||
|
@ -9230,62 +9200,6 @@
|
||||||
"reasonCategory": "falseMatch",
|
"reasonCategory": "falseMatch",
|
||||||
"updated": "2021-04-05T20:48:36.065Z"
|
"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-$(",
|
"rule": "jQuery-$(",
|
||||||
"path": "node_modules/regenerate/regenerate.js",
|
"path": "node_modules/regenerate/regenerate.js",
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
// Copyright 2020 Signal Messenger, LLC
|
// Copyright 2020-2021 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import type {
|
import type { ProfileKeyCredentialRequestContext } from '@signalapp/signal-client/zkgroup';
|
||||||
FFICompatArrayType,
|
|
||||||
ProfileKeyCredentialRequestContext,
|
|
||||||
} from 'zkgroup';
|
|
||||||
import {
|
import {
|
||||||
AuthCredential,
|
AuthCredential,
|
||||||
ClientZkAuthOperations,
|
ClientZkAuthOperations,
|
||||||
ClientZkGroupCipher,
|
ClientZkGroupCipher,
|
||||||
ClientZkProfileOperations,
|
ClientZkProfileOperations,
|
||||||
FFICompatArray,
|
|
||||||
GroupMasterKey,
|
GroupMasterKey,
|
||||||
GroupSecretParams,
|
GroupSecretParams,
|
||||||
ProfileKey,
|
ProfileKey,
|
||||||
|
@ -20,36 +16,11 @@ import {
|
||||||
ProfileKeyCredentialResponse,
|
ProfileKeyCredentialResponse,
|
||||||
ServerPublicParams,
|
ServerPublicParams,
|
||||||
UuidCiphertext,
|
UuidCiphertext,
|
||||||
} from 'zkgroup';
|
} from '@signalapp/signal-client/zkgroup';
|
||||||
import * as Bytes from '../Bytes';
|
|
||||||
import { UUID } from '../types/UUID';
|
import { UUID } from '../types/UUID';
|
||||||
import type { UUIDStringType } from '../types/UUID';
|
import type { UUIDStringType } from '../types/UUID';
|
||||||
|
|
||||||
export * from 'zkgroup';
|
export * from '@signalapp/signal-client/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));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scenarios
|
// Scenarios
|
||||||
|
|
||||||
|
@ -57,9 +28,7 @@ export function decryptGroupBlob(
|
||||||
clientZkGroupCipher: ClientZkGroupCipher,
|
clientZkGroupCipher: ClientZkGroupCipher,
|
||||||
ciphertext: Uint8Array
|
ciphertext: Uint8Array
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
return compatArrayToUint8Array(
|
return clientZkGroupCipher.decryptBlob(Buffer.from(ciphertext));
|
||||||
clientZkGroupCipher.decryptBlob(uint8ArrayToCompatArray(ciphertext))
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function decryptProfileKeyCredentialPresentation(
|
export function decryptProfileKeyCredentialPresentation(
|
||||||
|
@ -67,7 +36,7 @@ export function decryptProfileKeyCredentialPresentation(
|
||||||
presentationBuffer: Uint8Array
|
presentationBuffer: Uint8Array
|
||||||
): { profileKey: Uint8Array; uuid: UUIDStringType } {
|
): { profileKey: Uint8Array; uuid: UUIDStringType } {
|
||||||
const presentation = new ProfileKeyCredentialPresentation(
|
const presentation = new ProfileKeyCredentialPresentation(
|
||||||
uint8ArrayToCompatArray(presentationBuffer)
|
Buffer.from(presentationBuffer)
|
||||||
);
|
);
|
||||||
|
|
||||||
const uuidCiphertext = presentation.getUuidCiphertext();
|
const uuidCiphertext = presentation.getUuidCiphertext();
|
||||||
|
@ -80,7 +49,7 @@ export function decryptProfileKeyCredentialPresentation(
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
profileKey: compatArrayToUint8Array(profileKey.serialize()),
|
profileKey: profileKey.serialize(),
|
||||||
uuid: UUID.cast(uuid),
|
uuid: UUID.cast(uuid),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -91,7 +60,7 @@ export function decryptProfileKey(
|
||||||
uuid: UUIDStringType
|
uuid: UUIDStringType
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const profileKeyCiphertext = new ProfileKeyCiphertext(
|
const profileKeyCiphertext = new ProfileKeyCiphertext(
|
||||||
uint8ArrayToCompatArray(profileKeyCiphertextBuffer)
|
Buffer.from(profileKeyCiphertextBuffer)
|
||||||
);
|
);
|
||||||
|
|
||||||
const profileKey = clientZkGroupCipher.decryptProfileKey(
|
const profileKey = clientZkGroupCipher.decryptProfileKey(
|
||||||
|
@ -99,16 +68,14 @@ export function decryptProfileKey(
|
||||||
uuid
|
uuid
|
||||||
);
|
);
|
||||||
|
|
||||||
return compatArrayToUint8Array(profileKey.serialize());
|
return profileKey.serialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function decryptUuid(
|
export function decryptUuid(
|
||||||
clientZkGroupCipher: ClientZkGroupCipher,
|
clientZkGroupCipher: ClientZkGroupCipher,
|
||||||
uuidCiphertextBuffer: Uint8Array
|
uuidCiphertextBuffer: Uint8Array
|
||||||
): string {
|
): string {
|
||||||
const uuidCiphertext = new UuidCiphertext(
|
const uuidCiphertext = new UuidCiphertext(Buffer.from(uuidCiphertextBuffer));
|
||||||
uint8ArrayToCompatArray(uuidCiphertextBuffer)
|
|
||||||
);
|
|
||||||
|
|
||||||
return clientZkGroupCipher.decryptUuid(uuidCiphertext);
|
return clientZkGroupCipher.decryptUuid(uuidCiphertext);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +84,7 @@ export function deriveProfileKeyVersion(
|
||||||
profileKeyBase64: string,
|
profileKeyBase64: string,
|
||||||
uuid: UUIDStringType
|
uuid: UUIDStringType
|
||||||
): string {
|
): string {
|
||||||
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
|
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
|
||||||
const profileKey = new ProfileKey(profileKeyArray);
|
const profileKey = new ProfileKey(profileKeyArray);
|
||||||
|
|
||||||
const profileKeyVersion = profileKey.getProfileKeyVersion(uuid);
|
const profileKeyVersion = profileKey.getProfileKeyVersion(uuid);
|
||||||
|
@ -129,42 +96,34 @@ export function deriveGroupPublicParams(
|
||||||
groupSecretParamsBuffer: Uint8Array
|
groupSecretParamsBuffer: Uint8Array
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const groupSecretParams = new GroupSecretParams(
|
const groupSecretParams = new GroupSecretParams(
|
||||||
uint8ArrayToCompatArray(groupSecretParamsBuffer)
|
Buffer.from(groupSecretParamsBuffer)
|
||||||
);
|
);
|
||||||
|
|
||||||
return compatArrayToUint8Array(
|
return groupSecretParams.getPublicParams().serialize();
|
||||||
groupSecretParams.getPublicParams().serialize()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deriveGroupID(groupSecretParamsBuffer: Uint8Array): Uint8Array {
|
export function deriveGroupID(groupSecretParamsBuffer: Uint8Array): Uint8Array {
|
||||||
const groupSecretParams = new GroupSecretParams(
|
const groupSecretParams = new GroupSecretParams(
|
||||||
uint8ArrayToCompatArray(groupSecretParamsBuffer)
|
Buffer.from(groupSecretParamsBuffer)
|
||||||
);
|
);
|
||||||
|
|
||||||
return compatArrayToUint8Array(
|
return groupSecretParams.getPublicParams().getGroupIdentifier().serialize();
|
||||||
groupSecretParams.getPublicParams().getGroupIdentifier().serialize()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deriveGroupSecretParams(
|
export function deriveGroupSecretParams(
|
||||||
masterKeyBuffer: Uint8Array
|
masterKeyBuffer: Uint8Array
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const masterKey = new GroupMasterKey(
|
const masterKey = new GroupMasterKey(Buffer.from(masterKeyBuffer));
|
||||||
uint8ArrayToCompatArray(masterKeyBuffer)
|
|
||||||
);
|
|
||||||
const groupSecretParams = GroupSecretParams.deriveFromMasterKey(masterKey);
|
const groupSecretParams = GroupSecretParams.deriveFromMasterKey(masterKey);
|
||||||
|
|
||||||
return compatArrayToUint8Array(groupSecretParams.serialize());
|
return groupSecretParams.serialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function encryptGroupBlob(
|
export function encryptGroupBlob(
|
||||||
clientZkGroupCipher: ClientZkGroupCipher,
|
clientZkGroupCipher: ClientZkGroupCipher,
|
||||||
plaintext: Uint8Array
|
plaintext: Uint8Array
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
return compatArrayToUint8Array(
|
return clientZkGroupCipher.encryptBlob(Buffer.from(plaintext));
|
||||||
clientZkGroupCipher.encryptBlob(uint8ArrayToCompatArray(plaintext))
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function encryptUuid(
|
export function encryptUuid(
|
||||||
|
@ -173,7 +132,7 @@ export function encryptUuid(
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const uuidCiphertext = clientZkGroupCipher.encryptUuid(uuidPlaintext);
|
const uuidCiphertext = clientZkGroupCipher.encryptUuid(uuidPlaintext);
|
||||||
|
|
||||||
return compatArrayToUint8Array(uuidCiphertext.serialize());
|
return uuidCiphertext.serialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function generateProfileKeyCredentialRequest(
|
export function generateProfileKeyCredentialRequest(
|
||||||
|
@ -181,7 +140,7 @@ export function generateProfileKeyCredentialRequest(
|
||||||
uuid: UUIDStringType,
|
uuid: UUIDStringType,
|
||||||
profileKeyBase64: string
|
profileKeyBase64: string
|
||||||
): { context: ProfileKeyCredentialRequestContext; requestHex: string } {
|
): { context: ProfileKeyCredentialRequestContext; requestHex: string } {
|
||||||
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
|
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
|
||||||
const profileKey = new ProfileKey(profileKeyArray);
|
const profileKey = new ProfileKey(profileKeyArray);
|
||||||
|
|
||||||
const context = clientZkProfileCipher.createProfileKeyCredentialRequestContext(
|
const context = clientZkProfileCipher.createProfileKeyCredentialRequestContext(
|
||||||
|
@ -193,7 +152,7 @@ export function generateProfileKeyCredentialRequest(
|
||||||
|
|
||||||
return {
|
return {
|
||||||
context,
|
context,
|
||||||
requestHex: compatArrayToHex(requestArray),
|
requestHex: requestArray.toString('hex'),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,17 +162,17 @@ export function getAuthCredentialPresentation(
|
||||||
groupSecretParamsBase64: string
|
groupSecretParamsBase64: string
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const authCredential = new AuthCredential(
|
const authCredential = new AuthCredential(
|
||||||
base64ToCompatArray(authCredentialBase64)
|
Buffer.from(authCredentialBase64, 'base64')
|
||||||
);
|
);
|
||||||
const secretParams = new GroupSecretParams(
|
const secretParams = new GroupSecretParams(
|
||||||
base64ToCompatArray(groupSecretParamsBase64)
|
Buffer.from(groupSecretParamsBase64, 'base64')
|
||||||
);
|
);
|
||||||
|
|
||||||
const presentation = clientZkAuthOperations.createAuthCredentialPresentation(
|
const presentation = clientZkAuthOperations.createAuthCredentialPresentation(
|
||||||
secretParams,
|
secretParams,
|
||||||
authCredential
|
authCredential
|
||||||
);
|
);
|
||||||
return compatArrayToUint8Array(presentation.serialize());
|
return presentation.serialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createProfileKeyCredentialPresentation(
|
export function createProfileKeyCredentialPresentation(
|
||||||
|
@ -221,14 +180,15 @@ export function createProfileKeyCredentialPresentation(
|
||||||
profileKeyCredentialBase64: string,
|
profileKeyCredentialBase64: string,
|
||||||
groupSecretParamsBase64: string
|
groupSecretParamsBase64: string
|
||||||
): Uint8Array {
|
): Uint8Array {
|
||||||
const profileKeyCredentialArray = base64ToCompatArray(
|
const profileKeyCredentialArray = Buffer.from(
|
||||||
profileKeyCredentialBase64
|
profileKeyCredentialBase64,
|
||||||
|
'base64'
|
||||||
);
|
);
|
||||||
const profileKeyCredential = new ProfileKeyCredential(
|
const profileKeyCredential = new ProfileKeyCredential(
|
||||||
profileKeyCredentialArray
|
profileKeyCredentialArray
|
||||||
);
|
);
|
||||||
const secretParams = new GroupSecretParams(
|
const secretParams = new GroupSecretParams(
|
||||||
base64ToCompatArray(groupSecretParamsBase64)
|
Buffer.from(groupSecretParamsBase64, 'base64')
|
||||||
);
|
);
|
||||||
|
|
||||||
const presentation = clientZkProfileCipher.createProfileKeyCredentialPresentation(
|
const presentation = clientZkProfileCipher.createProfileKeyCredentialPresentation(
|
||||||
|
@ -236,14 +196,14 @@ export function createProfileKeyCredentialPresentation(
|
||||||
profileKeyCredential
|
profileKeyCredential
|
||||||
);
|
);
|
||||||
|
|
||||||
return compatArrayToUint8Array(presentation.serialize());
|
return presentation.serialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getClientZkAuthOperations(
|
export function getClientZkAuthOperations(
|
||||||
serverPublicParamsBase64: string
|
serverPublicParamsBase64: string
|
||||||
): ClientZkAuthOperations {
|
): ClientZkAuthOperations {
|
||||||
const serverPublicParams = new ServerPublicParams(
|
const serverPublicParams = new ServerPublicParams(
|
||||||
base64ToCompatArray(serverPublicParamsBase64)
|
Buffer.from(serverPublicParamsBase64, 'base64')
|
||||||
);
|
);
|
||||||
|
|
||||||
return new ClientZkAuthOperations(serverPublicParams);
|
return new ClientZkAuthOperations(serverPublicParams);
|
||||||
|
@ -253,7 +213,7 @@ export function getClientZkGroupCipher(
|
||||||
groupSecretParamsBase64: string
|
groupSecretParamsBase64: string
|
||||||
): ClientZkGroupCipher {
|
): ClientZkGroupCipher {
|
||||||
const serverPublicParams = new GroupSecretParams(
|
const serverPublicParams = new GroupSecretParams(
|
||||||
base64ToCompatArray(groupSecretParamsBase64)
|
Buffer.from(groupSecretParamsBase64, 'base64')
|
||||||
);
|
);
|
||||||
|
|
||||||
return new ClientZkGroupCipher(serverPublicParams);
|
return new ClientZkGroupCipher(serverPublicParams);
|
||||||
|
@ -263,7 +223,7 @@ export function getClientZkProfileOperations(
|
||||||
serverPublicParamsBase64: string
|
serverPublicParamsBase64: string
|
||||||
): ClientZkProfileOperations {
|
): ClientZkProfileOperations {
|
||||||
const serverPublicParams = new ServerPublicParams(
|
const serverPublicParams = new ServerPublicParams(
|
||||||
base64ToCompatArray(serverPublicParamsBase64)
|
Buffer.from(serverPublicParamsBase64, 'base64')
|
||||||
);
|
);
|
||||||
|
|
||||||
return new ClientZkProfileOperations(serverPublicParams);
|
return new ClientZkProfileOperations(serverPublicParams);
|
||||||
|
@ -275,7 +235,7 @@ export function handleProfileKeyCredential(
|
||||||
responseBase64: string
|
responseBase64: string
|
||||||
): string {
|
): string {
|
||||||
const response = new ProfileKeyCredentialResponse(
|
const response = new ProfileKeyCredentialResponse(
|
||||||
base64ToCompatArray(responseBase64)
|
Buffer.from(responseBase64, 'base64')
|
||||||
);
|
);
|
||||||
const profileKeyCredential = clientZkProfileCipher.receiveProfileKeyCredential(
|
const profileKeyCredential = clientZkProfileCipher.receiveProfileKeyCredential(
|
||||||
context,
|
context,
|
||||||
|
@ -284,15 +244,15 @@ export function handleProfileKeyCredential(
|
||||||
|
|
||||||
const credentialArray = profileKeyCredential.serialize();
|
const credentialArray = profileKeyCredential.serialize();
|
||||||
|
|
||||||
return compatArrayToBase64(credentialArray);
|
return credentialArray.toString('base64');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deriveProfileKeyCommitment(
|
export function deriveProfileKeyCommitment(
|
||||||
profileKeyBase64: string,
|
profileKeyBase64: string,
|
||||||
uuid: UUIDStringType
|
uuid: UUIDStringType
|
||||||
): string {
|
): string {
|
||||||
const profileKeyArray = base64ToCompatArray(profileKeyBase64);
|
const profileKeyArray = Buffer.from(profileKeyBase64, 'base64');
|
||||||
const profileKey = new ProfileKey(profileKeyArray);
|
const profileKey = new ProfileKey(profileKeyArray);
|
||||||
|
|
||||||
return compatArrayToBase64(profileKey.getCommitment(uuid).contents);
|
return profileKey.getCommitment(uuid).contents.toString('base64');
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,10 +58,5 @@
|
||||||
// "experimentalDecorators": true, // Enables experimental support for ES7 decorators.
|
// "experimentalDecorators": true, // Enables experimental support for ES7 decorators.
|
||||||
// "emitDecoratorMetadata": true, // Enables experimental support for emitting type metadata for decorators.
|
// "emitDecoratorMetadata": true, // Enables experimental support for emitting type metadata for decorators.
|
||||||
},
|
},
|
||||||
"include": [
|
"include": ["ts/**/*", "app/*", "package.json"]
|
||||||
"ts/**/*",
|
|
||||||
"app/*",
|
|
||||||
"node_modules/zkgroup/zkgroup/modules/*",
|
|
||||||
"package.json"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,9 @@ const { NODE_ENV: mode = 'development' } = process.env;
|
||||||
|
|
||||||
const EXTERNAL_MODULE = new Set([
|
const EXTERNAL_MODULE = new Set([
|
||||||
'@signalapp/signal-client',
|
'@signalapp/signal-client',
|
||||||
|
'@signalapp/signal-client/zkgroup',
|
||||||
'backbone',
|
'backbone',
|
||||||
'better-sqlite3',
|
'better-sqlite3',
|
||||||
'ffi-napi',
|
|
||||||
'fs-xattr',
|
'fs-xattr',
|
||||||
'fsevents',
|
'fsevents',
|
||||||
'got',
|
'got',
|
||||||
|
@ -23,12 +23,9 @@ const EXTERNAL_MODULE = new Set([
|
||||||
'node-sass',
|
'node-sass',
|
||||||
'pino',
|
'pino',
|
||||||
'proxy-agent',
|
'proxy-agent',
|
||||||
'ref-array-napi',
|
|
||||||
'ref-napi',
|
|
||||||
'ringrtc',
|
'ringrtc',
|
||||||
'sharp',
|
'sharp',
|
||||||
'websocket',
|
'websocket',
|
||||||
'zkgroup',
|
|
||||||
|
|
||||||
// Uses fast-glob and dynamic requires
|
// Uses fast-glob and dynamic requires
|
||||||
'./preload_test',
|
'./preload_test',
|
||||||
|
|
147
yarn.lock
147
yarn.lock
|
@ -1717,10 +1717,10 @@
|
||||||
"@react-spring/shared" "~9.2.6-beta.0"
|
"@react-spring/shared" "~9.2.6-beta.0"
|
||||||
"@react-spring/types" "~9.2.6-beta.0"
|
"@react-spring/types" "~9.2.6-beta.0"
|
||||||
|
|
||||||
"@signalapp/signal-client@0.9.8":
|
"@signalapp/signal-client@0.10.1":
|
||||||
version "0.9.8"
|
version "0.10.1"
|
||||||
resolved "https://registry.yarnpkg.com/@signalapp/signal-client/-/signal-client-0.9.8.tgz#e3bd9795eb29ee0246adf0a5245de06054d69180"
|
resolved "https://registry.yarnpkg.com/@signalapp/signal-client/-/signal-client-0.10.1.tgz#74b41264044caac4d42df3baf1f5c393f63ec50a"
|
||||||
integrity sha512-ESm/n2rtVtDVdQvO9ad8y5Hh3grf+HWtM+nzZHYTw3QpvhaYONl3xUBAs1mbGYp/6Gwf83qJ/Le9rduFfw/lVQ==
|
integrity sha512-myVTaqFljakN0fxvmK4FmslOHJPuuoGxpSmlu4KU2D3RP2EiDHmg3Q+Xw9TWh7ehpstUxwe5op6sThq5d3b3Dw==
|
||||||
dependencies:
|
dependencies:
|
||||||
node-gyp-build "^4.2.3"
|
node-gyp-build "^4.2.3"
|
||||||
uuid "^8.3.0"
|
uuid "^8.3.0"
|
||||||
|
@ -2578,15 +2578,6 @@
|
||||||
"@types/express-serve-static-core" "*"
|
"@types/express-serve-static-core" "*"
|
||||||
"@types/serve-static" "*"
|
"@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":
|
"@types/filesize@3.6.0":
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/filesize/-/filesize-3.6.0.tgz#5f1a25c7b4e3d5ee2bc63133d374d096b7008c8d"
|
resolved "https://registry.yarnpkg.com/@types/filesize/-/filesize-3.6.0.tgz#5f1a25c7b4e3d5ee2bc63133d374d096b7008c8d"
|
||||||
|
@ -2937,20 +2928,6 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
redux "^3.6.0"
|
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":
|
"@types/responselike@*", "@types/responselike@^1.0.0":
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
|
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"
|
es-abstract "^1.17.0"
|
||||||
is-string "^1.0.5"
|
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:
|
array-map@~0.0.0:
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
|
resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
|
||||||
|
@ -6576,14 +6545,6 @@ d@1:
|
||||||
dependencies:
|
dependencies:
|
||||||
es5-ext "^0.10.9"
|
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:
|
damerau-levenshtein@^1.0.6:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
|
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"
|
es6-symbol "~3.1.1"
|
||||||
next-tick "^1.0.0"
|
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:
|
es5-shim@^4.5.13:
|
||||||
version "4.5.13"
|
version "4.5.13"
|
||||||
resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.13.tgz#5d88062de049f8969f83783f4a4884395f21d28b"
|
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"
|
resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab"
|
||||||
integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==
|
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:
|
es6-symbol@^3.1.1, es6-symbol@~3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
|
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"
|
utils-merge "1.0.1"
|
||||||
vary "~1.1.2"
|
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:
|
extend-shallow@^2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
||||||
|
@ -8473,18 +8410,6 @@ fd-slicer@~1.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
pend "~1.2.0"
|
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:
|
figgy-pudding@^3.5.1:
|
||||||
version "3.5.2"
|
version "3.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
|
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"
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
|
||||||
integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
|
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:
|
get-uri@3:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
|
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"
|
ftp "~0.3.10"
|
||||||
readable-stream "2"
|
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:
|
get-value@^2.0.3, get-value@^2.0.6:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
|
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"
|
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==
|
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"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
|
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
|
||||||
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
|
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"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
|
||||||
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
|
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"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
|
||||||
integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
|
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"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
|
||||||
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
|
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"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739"
|
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==
|
integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==
|
||||||
|
@ -15587,32 +15500,6 @@ redux@^4.0.0:
|
||||||
loose-envify "^1.4.0"
|
loose-envify "^1.4.0"
|
||||||
symbol-observable "^1.2.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:
|
refractor@^2.4.1:
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.10.0.tgz#4cc7efc0028a87924a9b31d82d129dec831a287b"
|
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"
|
media-typer "0.3.0"
|
||||||
mime-types "~2.1.24"
|
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:
|
typed-scss-modules@4.1.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/typed-scss-modules/-/typed-scss-modules-4.1.1.tgz#eab12f25511a329f8e4837842c3b484ffd66b449"
|
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"
|
lodash "^4.8.0"
|
||||||
readable-stream "^2.0.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:
|
zod@3.5.1:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/zod/-/zod-3.5.1.tgz#e93ce58e182bb76f7d29ccd24feee72611f9a129"
|
resolved "https://registry.yarnpkg.com/zod/-/zod-3.5.1.tgz#e93ce58e182bb76f7d29ccd24feee72611f9a129"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue