diff --git a/CHANGELOG.md b/CHANGELOG.md index 9340546708..edc0685f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ * Backward incompatible change: use pre shared key as connection protector in libp2p. Add libp2p psk to invitation link +[2.0.3-alpha.1] + +* Temporarily hiding leave community button from Possible impersonation attack + [2.0.3-alpha.0] * Filter CSRs - remove old csrs and replace with new for each pubkey diff --git a/README.md b/README.md index f60ac424a1..d0c76e8899 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Encrypted p2p team chat with no servers, just Tor.
- Downloads | + Downloads | How it Works | Features | Threat Model | @@ -52,7 +52,7 @@ See our [FAQ](https://github.com/TryQuiet/monorepo/wiki/Quiet-FAQ) for answers t ## Getting started -To try Quiet, download the [latest release](https://github.com/TryQuiet/quiet/releases/tag/quiet%401.9.5) for your platform (.dmg for macOS, .exe for Windows, etc.) and install it in the normal way. Then create a community and open the community's settings to invite members. +To try Quiet, download the [latest release](https://github.com/TryQuiet/quiet/releases/tag/quiet%401.9.6) for your platform (.dmg for macOS, .exe for Windows, etc.) and install it in the normal way. Then create a community and open the community's settings to invite members. If you'd like to help develop Quiet, see [Contributing to Quiet](#contributing-to-quiet). diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index bfe5074eb0..3911ccfcd7 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.3-alpha.2](https://github.com/TryQuiet/backend/compare/@quiet/backend@2.0.3-alpha.1...@quiet/backend@2.0.3-alpha.2) (2023-11-09) + +**Note:** Version bump only for package @quiet/backend + + + + + +## [2.0.3-alpha.1](https://github.com/TryQuiet/backend/compare/@quiet/backend@2.0.3-alpha.0...@quiet/backend@2.0.3-alpha.1) (2023-11-08) + +**Note:** Version bump only for package @quiet/backend + + + + + ## [2.0.3-alpha.0](https://github.com/TryQuiet/backend/compare/@quiet/backend@2.0.2-alpha.0...@quiet/backend@2.0.3-alpha.0) (2023-10-26) diff --git a/packages/backend/package-lock.json b/packages/backend/package-lock.json index 899ecab74b..f06bc384fb 100644 --- a/packages/backend/package-lock.json +++ b/packages/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "@quiet/backend", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@quiet/backend", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "license": "MIT", "dependencies": { "@chainsafe/libp2p-gossipsub": "6.1.0", @@ -6580,9 +6580,9 @@ "license": "MIT" }, "node_modules/@types/validator": { - "version": "13.11.5", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz", - "integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==" + "version": "13.11.6", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.6.tgz", + "integrity": "sha512-HUgHujPhKuNzgNXBRZKYexwoG+gHKU+tnfPqjWXFghZAnn73JElicMkuSKJyLGr9JgyA8IgK7fj88IyA9rwYeQ==" }, "node_modules/@types/ws": { "version": "8.5.3", @@ -26936,9 +26936,9 @@ "dev": true }, "@types/validator": { - "version": "13.11.5", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz", - "integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==" + "version": "13.11.6", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.6.tgz", + "integrity": "sha512-HUgHujPhKuNzgNXBRZKYexwoG+gHKU+tnfPqjWXFghZAnn73JElicMkuSKJyLGr9JgyA8IgK7fj88IyA9rwYeQ==" }, "@types/ws": { "version": "8.5.3", diff --git a/packages/backend/package.json b/packages/backend/package.json index 29f68b374e..5277b83afb 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "@quiet/backend", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "description": "tlg-manager", "types": "lib/index.d.ts", "type": "module", diff --git a/packages/backend/src/nest/registration/registration.service.spec.ts b/packages/backend/src/nest/registration/registration.service.spec.ts index 6355013592..98abe55d4b 100644 --- a/packages/backend/src/nest/registration/registration.service.spec.ts +++ b/packages/backend/src/nest/registration/registration.service.spec.ts @@ -9,6 +9,7 @@ import { Time } from 'pkijs' import { issueCertificate, extractPendingCsrs } from './registration.functions' import { jest } from '@jest/globals' import { createTmpDir } from '../common/utils' +import { RegistrationEvents } from './registration.types' describe('RegistrationService', () => { let module: TestingModule @@ -146,4 +147,37 @@ describe('RegistrationService', () => { expect(pendingCsrs.length).toEqual(1) expect(pendingCsrs[0]).toBe(userCsr.userCsr) }) + + it('wait for all NEW_USER events until emitting FINISHED_ISSUING_CERTIFICATES_FOR_ID', async () => { + registrationService.permsData = permsData + + const eventSpy = jest.spyOn(registrationService, 'emit') + + const userCsr = await createUserCsr({ + nickname: 'alice', + commonName: 'nqnw4kc4c77fb47lk52m5l57h4tcxceo7ymxekfn7yh5m66t4jv2olad.onion', + peerId: 'Qmf3ySkYqLET9xtAtDzvAr5Pp3egK1H3C5iJAZm1SpLEp6', + dmPublicKey: 'testdmPublicKey', + signAlg: configCrypto.signAlg, + hashAlg: configCrypto.hashAlg, + }) + const userCsr2 = await createUserCsr({ + nickname: 'karol', + commonName: 'nnnnnnc4c77fb47lk52m5l57h4tcxceo7ymxekfn7yh5m66t4jv2olad.onion', + peerId: 'QmffffffqLET9xtAtDzvAr5Pp3egK1H3C5iJAZm1SpLEp6', + dmPublicKey: 'testdmPublicKey', + signAlg: configCrypto.signAlg, + hashAlg: configCrypto.hashAlg, + }) + + const csrs: string[] = [userCsr.userCsr, userCsr2.userCsr] + // @ts-ignore - fn 'issueCertificates' is private + await registrationService.issueCertificates({ certificates: [], csrs, id: 1 }) + + expect(eventSpy).toHaveBeenLastCalledWith(RegistrationEvents.FINISHED_ISSUING_CERTIFICATES_FOR_ID, { + id: 1, + }) + + expect(eventSpy).toHaveBeenCalledTimes(3) + }) }) diff --git a/packages/backend/src/nest/registration/registration.service.ts b/packages/backend/src/nest/registration/registration.service.ts index ac9dadd7d7..2f6e0d90d9 100644 --- a/packages/backend/src/nest/registration/registration.service.ts +++ b/packages/backend/src/nest/registration/registration.service.ts @@ -31,9 +31,12 @@ export class RegistrationService extends EventEmitter implements OnModuleInit { return } const pendingCsrs = await extractPendingCsrs(payload) - pendingCsrs.forEach(async csr => { - await this.registerUserCertificate(csr) - }) + + await Promise.all( + pendingCsrs.map(async csr => { + await this.registerUserCertificate(csr) + }) + ) if (payload.id) this.emit(RegistrationEvents.FINISHED_ISSUING_CERTIFICATES_FOR_ID, { id: payload.id }) } diff --git a/packages/desktop/CHANGELOG.md b/packages/desktop/CHANGELOG.md index 9a3ac07de2..9695179be6 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.3-alpha.2](https://github.com/TryQuiet/quiet/compare/@quiet/desktop@2.0.3-alpha.1...@quiet/desktop@2.0.3-alpha.2) (2023-11-09) + + +### Bug Fixes + +* trigger desktop ([2898bee](https://github.com/TryQuiet/quiet/commit/2898bee80bbf2f16cbda67281a29e47716faa77c)) + + + + + +## [2.0.3-alpha.1](https://github.com/TryQuiet/quiet/compare/@quiet/desktop@2.0.3-alpha.0...@quiet/desktop@2.0.3-alpha.1) (2023-11-08) + +**Note:** Version bump only for package @quiet/desktop + + + + + ## [2.0.3-alpha.0](https://github.com/TryQuiet/quiet/compare/@quiet/desktop@2.0.2-alpha.0...@quiet/desktop@2.0.3-alpha.0) (2023-10-26) diff --git a/packages/desktop/package-lock.json b/packages/desktop/package-lock.json index e0e7b90226..88d8f4db77 100644 --- a/packages/desktop/package-lock.json +++ b/packages/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "@quiet/desktop", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@quiet/desktop", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "license": "ISC", "dependencies": { "@electron/remote": "^2.0.8", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 09c641ee2c..e5426d47a6 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -80,7 +80,7 @@ }, "homepage": "https://github.com/TryQuiet", "@comment version": "To build new version for specific platform, just replace platform in version tag to one of following linux, mac, windows", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "description": "Decentralized team chat", "main": "dist/main/main.js", "scripts": { diff --git a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.component.tsx b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.component.tsx index 2c3b45a692..03f6d6b28a 100644 --- a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.component.tsx +++ b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.component.tsx @@ -40,14 +40,12 @@ const StyledGrid = styled(Grid)(({ theme }) => ({ export interface PossibleImpersonationAttackModalComponentProps { communityName: string - leaveCommunity: () => void open: boolean handleClose: () => void } const PossibleImpersonationAttackModalComponent: React.FC = ({ communityName, - leaveCommunity, handleClose, open, }) => { @@ -69,9 +67,7 @@ const PossibleImpersonationAttackModalComponent: React.FC This should never happen and we recommend leaving this community immediately! - + {/* Temporarily hiding button - https://github.com/TryQuiet/quiet/issues/2025 */} ) diff --git a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.container.tsx b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.container.tsx index bd7b75f913..4fefa42f1f 100644 --- a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.container.tsx +++ b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.container.tsx @@ -2,7 +2,6 @@ import { capitalizeFirstLetter } from '@quiet/common' import { communities, users } from '@quiet/state-manager' import React, { useEffect } from 'react' import { useSelector } from 'react-redux' -import { clearCommunity } from '../../..' import { useModal } from '../../../containers/hooks' import { ModalName } from '../../../sagas/modals/modals.types' import PossibleImpersonationAttackModalComponent from './PossibleImpersonationAttackModal.component' @@ -19,10 +18,6 @@ const PossibleImpersonationAttackModalContainer = () => { communityName = capitalizeFirstLetter(community.name) } - const leaveCommunity = async () => { - await clearCommunity() - } - useEffect(() => { if (duplicateCerts) { possibleImpersonationAttackModal.handleOpen() @@ -30,11 +25,7 @@ const PossibleImpersonationAttackModalContainer = () => { }, [duplicateCerts]) return ( - + ) } diff --git a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.stories.tsx b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.stories.tsx index bd94e8c525..68ab58500f 100644 --- a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.stories.tsx +++ b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.stories.tsx @@ -19,7 +19,6 @@ const args: PossibleImpersonationAttackModalComponentProps = { handleClose: function (): void {}, open: true, communityName: 'devteam', - leaveCommunity: function (): void {}, } Component.args = args diff --git a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.test.tsx b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.test.tsx index 5a5e512164..e739fbc416 100644 --- a/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.test.tsx +++ b/packages/desktop/src/renderer/components/widgets/possibleImpersonationAttackModal/PossibleImpersonationAttackModal.test.tsx @@ -8,12 +8,7 @@ describe('PossibleImpersonationAttackModal', () => { it('renderComponent', () => { const result = renderComponent( - {}} - open={true} - communityName={'devteam'} - leaveCommunity={() => {}} - /> + {}} open={true} communityName={'devteam'} /> ) expect(result.baseElement).toMatchInlineSnapshot(` @@ -121,17 +116,6 @@ describe('PossibleImpersonationAttackModal', () => { This should never happen and we recommend leaving this community immediately!

- diff --git a/packages/desktop/src/renderer/containers/widgets/update/UpdateModal.tsx b/packages/desktop/src/renderer/containers/widgets/update/UpdateModal.tsx index 0a66f3ca0f..30096a2c84 100644 --- a/packages/desktop/src/renderer/containers/widgets/update/UpdateModal.tsx +++ b/packages/desktop/src/renderer/containers/widgets/update/UpdateModal.tsx @@ -1,7 +1,6 @@ import React from 'react' import { AnyAction, Dispatch, bindActionCreators } from 'redux' import { useDispatch } from 'react-redux' - import UpdateModal from '../../../components/widgets/update/UpdateModal' import updateHandlers from '../../../store/handlers/update' import { useModal } from '../../hooks' diff --git a/packages/desktop/src/rtl-tests/possibleImpersonationAttack.test.tsx b/packages/desktop/src/rtl-tests/possibleImpersonationAttack.test.tsx index bdd2c9a8bc..63da5473e2 100644 --- a/packages/desktop/src/rtl-tests/possibleImpersonationAttack.test.tsx +++ b/packages/desktop/src/rtl-tests/possibleImpersonationAttack.test.tsx @@ -99,8 +99,5 @@ describe('Possible Impersonation Attack', () => { const modal = screen.getByTestId('possible-impersonation-attack-modal-component') expect(modal).toBeVisible() - - const button = screen.getByTestId('unregistered-button') - expect(button).toBeVisible() }) }) diff --git a/packages/e2e-tests/CHANGELOG.md b/packages/e2e-tests/CHANGELOG.md index efbad57c03..2b79672205 100644 --- a/packages/e2e-tests/CHANGELOG.md +++ b/packages/e2e-tests/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.2-alpha.1](https://github.com/TryQuiet/quiet/compare/e2e-tests@2.0.2-alpha.0...e2e-tests@2.0.2-alpha.1) (2023-11-08) + +**Note:** Version bump only for package e2e-tests + + + + + ## [2.0.2-alpha.0](https://github.com/TryQuiet/quiet/compare/e2e-tests@2.0.1-alpha.5...e2e-tests@2.0.2-alpha.0) (2023-10-26) **Note:** Version bump only for package e2e-tests diff --git a/packages/e2e-tests/package-lock.json b/packages/e2e-tests/package-lock.json index fe85e017c9..8442d2a3f6 100644 --- a/packages/e2e-tests/package-lock.json +++ b/packages/e2e-tests/package-lock.json @@ -1,12 +1,12 @@ { "name": "e2e-tests", - "version": "2.0.2-alpha.0", + "version": "2.0.2-alpha.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "e2e-tests", - "version": "2.0.2-alpha.0", + "version": "2.0.2-alpha.1", "license": "ISC", "dependencies": { "cross-env": "^5.2.0", diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index 8a75243a3c..95546199bf 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "e2e-tests", - "version": "2.0.2-alpha.0", + "version": "2.0.2-alpha.1", "description": "For running end to end tests we use Selenium WebDriver (https://www.selenium.dev/documentation/webdriver/) with Electron ChromeDriver (https://www.npmjs.com/package/electron-chromedriver) in Jest", "main": "index.js", "private": true, diff --git a/packages/mobile/CHANGELOG.md b/packages/mobile/CHANGELOG.md index 1cca501724..6592a6d7a1 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -3,6 +3,26 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.3-alpha.2](https://github.com/TryQuiet/quiet/compare/@quiet/mobile@2.0.3-alpha.1...@quiet/mobile@2.0.3-alpha.2) (2023-11-09) + +**Note:** Version bump only for package @quiet/mobile + + + + + +## [2.0.3-alpha.1](https://github.com/TryQuiet/quiet/compare/@quiet/mobile@2.0.3-alpha.0...@quiet/mobile@2.0.3-alpha.1) (2023-11-08) + + +### Bug Fixes + +* fix UI ([#2021](https://github.com/TryQuiet/quiet/issues/2021)) ([0aac01d](https://github.com/TryQuiet/quiet/commit/0aac01da5a02c2ebef6839a7ab4542b99896df68)) +* mobile popup back button ([#2023](https://github.com/TryQuiet/quiet/issues/2023)) ([b0c6e2d](https://github.com/TryQuiet/quiet/commit/b0c6e2d13f287124c52eec3ec85c07e80e2b057b)) + + + + + ## [2.0.3-alpha.0](https://github.com/TryQuiet/quiet/compare/@quiet/mobile@2.0.2-alpha.0...@quiet/mobile@2.0.3-alpha.0) (2023-10-26) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index f2dfdb1f83..8c68c7e16c 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -172,8 +172,8 @@ android { applicationId "com.quietmobile" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 367 - versionName "2.0.3-alpha.0" + versionCode 369 + versionName "2.0.3-alpha.2" resValue "string", "build_config_package", "com.quietmobile" testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' diff --git a/packages/mobile/ios/Quiet/Info.plist b/packages/mobile/ios/Quiet/Info.plist index 43c5a19d94..72870e03b1 100644 --- a/packages/mobile/ios/Quiet/Info.plist +++ b/packages/mobile/ios/Quiet/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 327 + 329 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/packages/mobile/ios/QuietTests/Info.plist b/packages/mobile/ios/QuietTests/Info.plist index fd2d868fc0..d3247726b9 100644 --- a/packages/mobile/ios/QuietTests/Info.plist +++ b/packages/mobile/ios/QuietTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 327 + 329 diff --git a/packages/mobile/package-lock.json b/packages/mobile/package-lock.json index 3bb098828c..1143583532 100644 --- a/packages/mobile/package-lock.json +++ b/packages/mobile/package-lock.json @@ -1,12 +1,12 @@ { "name": "@quiet/mobile", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@quiet/mobile", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "dependencies": { "@peculiar/webcrypto": "^1.4.3", "@react-native-clipboard/clipboard": "^1.11.2", diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 03bc103287..6c4f029770 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@quiet/mobile", - "version": "2.0.3-alpha.0", + "version": "2.0.3-alpha.2", "scripts": { "build": "tsc -p tsconfig.build.json --noEmit", "storybook-android": "ENVFILE=.env.storybook react-native run-android --variant=storybookDebug --appIdSuffix=storybook.debug", @@ -22,7 +22,7 @@ }, "dependencies": { "@peculiar/webcrypto": "^1.4.3", - "@quiet/backend": "^2.0.3-alpha.0", + "@quiet/backend": "^2.0.3-alpha.2", "@quiet/common": "^2.0.2-alpha.0", "@quiet/identity": "^2.0.2-alpha.0", "@quiet/state-manager": "^2.0.2-alpha.0", diff --git a/packages/mobile/src/components/PossibleImpersonationAttack/PossibleImpersonationAttack.component.tsx b/packages/mobile/src/components/PossibleImpersonationAttack/PossibleImpersonationAttack.component.tsx index 5899f6b117..a154591ac6 100644 --- a/packages/mobile/src/components/PossibleImpersonationAttack/PossibleImpersonationAttack.component.tsx +++ b/packages/mobile/src/components/PossibleImpersonationAttack/PossibleImpersonationAttack.component.tsx @@ -35,7 +35,6 @@ const classes = StyleSheet.create({ const PossibleImpersonationAttackComponent: React.FC = ({ handleBackButton, communityName, - leaveCommunity, }) => { return ( This should never happen and we recommend leaving this community immediately! -