diff --git a/package-lock.json b/package-lock.json index 2260360..faf9a04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@angular/platform-browser-dynamic": "~11.2.11", "@angular/router": "~11.2.11", "angular-auth-oidc-client": "^11.6.6", - "matrix-js-sdk": "^9.9.0", + "matrix-js-sdk": "^9.2.0", "moment": "^2.29.1", "olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz", "path": "^0.12.7", @@ -35,7 +35,7 @@ "@angular/compiler-cli": "~11.2.11", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", - "@types/matrix-js-sdk": "^9.2.1", + "@types/matrix-js-sdk": "^9.2.3", "@types/node": "^12.20.6", "codelyzer": "^6.0.0", "jasmine-core": "~3.6.0", @@ -2415,9 +2415,9 @@ "dev": true }, "node_modules/@types/matrix-js-sdk": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@types/matrix-js-sdk/-/matrix-js-sdk-9.2.1.tgz", - "integrity": "sha512-RgNJ5ffGdt0bXyxQpbDXtuyAp/kH205Pgv/RZCoI29jbQXOScY6HlKxi6HJAlW5vexaYlCzGu+70tYqK0sxraQ==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@types/matrix-js-sdk/-/matrix-js-sdk-9.2.3.tgz", + "integrity": "sha512-laRm5frFhwrqyUkiYpl0T9YtHswbbSrPZkBcZLck+ZTlHniWiwdCKI4RDR0rWjQ+rI23y1hvFqmfoyma1DJGaA==", "dev": true }, "node_modules/@types/minimatch": { @@ -9365,17 +9365,17 @@ } }, "node_modules/matrix-js-sdk": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.9.0.tgz", - "integrity": "sha512-rgy9b8D+GzjK3wfdmxDr42fxNV13fK12cvQD1qnsFzqPyJGeg++cazH/+7HxL/uuW/WQR6HAmfc7wo9VQegWtg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.2.0.tgz", + "integrity": "sha512-3lPgCB2in+AHDd+tLT8HbJ9elqDeJjYCE8i8Ti+NO2Myua62HIsf3pE/C/FE/QCDTuZBTjN0vgjym22M+GO65g==", "dependencies": { - "@babel/runtime": "^7.12.5", + "@babel/runtime": "^7.11.2", "another-json": "^0.2.0", "browser-request": "^0.3.3", "bs58": "^4.0.1", "content-type": "^1.0.4", - "loglevel": "^1.7.1", - "qs": "^6.9.6", + "loglevel": "^1.7.0", + "qs": "^6.9.4", "request": "^2.88.2", "unhomoglyph": "^1.0.6" } @@ -20110,9 +20110,9 @@ "dev": true }, "@types/matrix-js-sdk": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@types/matrix-js-sdk/-/matrix-js-sdk-9.2.1.tgz", - "integrity": "sha512-RgNJ5ffGdt0bXyxQpbDXtuyAp/kH205Pgv/RZCoI29jbQXOScY6HlKxi6HJAlW5vexaYlCzGu+70tYqK0sxraQ==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@types/matrix-js-sdk/-/matrix-js-sdk-9.2.3.tgz", + "integrity": "sha512-laRm5frFhwrqyUkiYpl0T9YtHswbbSrPZkBcZLck+ZTlHniWiwdCKI4RDR0rWjQ+rI23y1hvFqmfoyma1DJGaA==", "dev": true }, "@types/minimatch": { @@ -25926,17 +25926,17 @@ } }, "matrix-js-sdk": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.9.0.tgz", - "integrity": "sha512-rgy9b8D+GzjK3wfdmxDr42fxNV13fK12cvQD1qnsFzqPyJGeg++cazH/+7HxL/uuW/WQR6HAmfc7wo9VQegWtg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.2.0.tgz", + "integrity": "sha512-3lPgCB2in+AHDd+tLT8HbJ9elqDeJjYCE8i8Ti+NO2Myua62HIsf3pE/C/FE/QCDTuZBTjN0vgjym22M+GO65g==", "requires": { - "@babel/runtime": "^7.12.5", + "@babel/runtime": "^7.11.2", "another-json": "^0.2.0", "browser-request": "^0.3.3", "bs58": "^4.0.1", "content-type": "^1.0.4", - "loglevel": "^1.7.1", - "qs": "^6.9.6", + "loglevel": "^1.7.0", + "qs": "^6.9.4", "request": "^2.88.2", "unhomoglyph": "^1.0.6" }, diff --git a/package.json b/package.json index ebe76a5..2c385bf 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@angular/platform-browser-dynamic": "~11.2.11", "@angular/router": "~11.2.11", "angular-auth-oidc-client": "^11.6.6", - "matrix-js-sdk": "^9.9.0", + "matrix-js-sdk": "^9.2.0", "moment": "^2.29.1", "olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz", "path": "^0.12.7", @@ -38,7 +38,7 @@ "@angular/compiler-cli": "~11.2.11", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", - "@types/matrix-js-sdk": "^9.2.1", + "@types/matrix-js-sdk": "^9.2.3", "@types/node": "^12.20.6", "codelyzer": "^6.0.0", "jasmine-core": "~3.6.0", diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index 9f4ba0e..5dafd69 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -1,15 +1,14 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import * as matrix from 'matrix-js-sdk'; -import { MatrixClient } from 'matrix-js-sdk/src/client'; -import { MatrixEvent } from 'matrix-js-sdk/src/models/event'; -import { Room, RoomMember } from 'matrix-js-sdk/src/models/room'; -import { SyncApi } from 'matrix-js-sdk/src/sync'; -import * as olm from 'olm'; +import * as matrixsdk from 'matrix-js-sdk'; import { Observable } from 'rxjs'; import { MatrixLoginDto } from '../entities/matrix-login-dto'; import { ChatMessageHandler } from './chat-message-handler'; -global.Olm = olm; +// global.Olm = olm; +export type MatrixClient = matrixsdk.MatrixClient; +export type MatrixEvent = matrixsdk.MatrixEvent; +export type Room = matrixsdk.Room; +export type RoomMember = matrixsdk.RoomMember; const FORWARDS = 'f'; @@ -38,10 +37,10 @@ export class ChatService { return matrixClientPromise; } - getUserId = (): boolean => { + getUserId = (): string => { if (this.matrixClient === undefined) { return null; } - return this.matrixClient.getUserId; + return this.matrixClient.getUserId(); } isLogged = (): boolean => { @@ -91,7 +90,7 @@ export class ChatService { let room: Room = this.matrixClient.getRoom(roomId) as Room; if (room === null) { try { - room = await this.matrixClient.peekInRoom(roomId); + room = await this.matrixClient.peekInRoom(roomId) as Room; } catch (error) { return true; } } @@ -110,21 +109,22 @@ export class ChatService { ).toPromise(); console.log('LOGGED TO CHAT'); console.log({ matrixLogin }); - this.matrixClient = matrix.createClient({ + const ops: matrixsdk.CreateClientOption = { baseUrl: 'http://okupamicoche-synapse:8008', accessToken: matrixLogin.access_token, userId: matrixLogin.user_id - }); + }; + this.matrixClient = matrixsdk.createClient(ops); await this.matrixClient.startClient({ initialSyncLimit: 100 }); - this.matrixClient.once('sync', (state: string, prevState: string, _: any) => { - if (state === 'PREPARED') { - console.log('CHAT SYNC FINISHED'); - } else { - console.log(state); - } - }); + // this.matrixClient.once('sync', (state: string, prevState: string, _: any) => { + // if (state === 'PREPARED') { + // console.log('CHAT SYNC FINISHED'); + // } else { + // console.log('MATRIX CLIENT STATE CHANGED state=' + state); + // } + // }); return this.matrixClient; } diff --git a/src/app/views/chat/chat.component.ts b/src/app/views/chat/chat.component.ts index e5c8574..2753b9c 100644 --- a/src/app/views/chat/chat.component.ts +++ b/src/app/views/chat/chat.component.ts @@ -1,6 +1,5 @@ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core'; -import { MatrixEvent, RoomMember } from 'matrix-js-sdk/src/models/event'; -import { ChatService } from 'src/app/services/chat.service'; +import { MatrixEvent, RoomMember, ChatService } from 'src/app/services/chat.service'; @Component({ diff --git a/tsconfig.json b/tsconfig.json index 1d4dd1e..2c25379 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,13 +12,24 @@ "importHelpers": true, "target": "es2015", "module": "es2020", - "lib": ["es2018", "dom"], + "lib": [ + "es2018", + "dom" + ], "strict": false, "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + "paths": { + "matrix-js-sdk": [ + "node_modules/@types/matrix-js-sdk/index.d.ts" + ] + } }, + // "exclude": [ + // "node_modules/matrix-js-sdk/lib/*.d.ts" + // ], "angularCompilerOptions": { "strictInjectionParameters": true, "strictTemplates": true } -} +} \ No newline at end of file