You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-25 05:23:13 +03:00
Remove browserify builds (#3759)
This commit is contained in:
committed by
GitHub
parent
5c45c980e9
commit
68317ac836
6
.github/workflows/tests.yml
vendored
6
.github/workflows/tests.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
specs: [browserify, integ, unit]
|
specs: [integ, unit]
|
||||||
node: [18, latest]
|
node: [18, latest]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
@@ -32,10 +32,6 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: "yarn install"
|
run: "yarn install"
|
||||||
|
|
||||||
- name: Build
|
|
||||||
if: matrix.specs == 'browserify'
|
|
||||||
run: "yarn build"
|
|
||||||
|
|
||||||
- name: Get number of CPU cores
|
- name: Get number of CPU cores
|
||||||
id: cpu-cores
|
id: cpu-cores
|
||||||
uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2
|
uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -23,19 +23,7 @@ endpoints from before Matrix 1.1, for example.
|
|||||||
|
|
||||||
## In a browser
|
## In a browser
|
||||||
|
|
||||||
### Note, the browserify build has been deprecated. Please use a bundler like webpack or vite instead.
|
### Note, the browserify build has been removed. Please use a bundler like webpack or vite instead.
|
||||||
|
|
||||||
Download the browser version from
|
|
||||||
https://github.com/matrix-org/matrix-js-sdk/releases/latest and add that as a
|
|
||||||
`<script>` to your page. There will be a global variable `matrixcs`
|
|
||||||
attached to `window` through which you can access the SDK. See below for how to
|
|
||||||
include libolm to enable end-to-end-encryption.
|
|
||||||
|
|
||||||
The browser bundle supports recent versions of browsers. Typically this is ES2015
|
|
||||||
or `> 0.5%, last 2 versions, Firefox ESR, not dead` if using
|
|
||||||
[browserlists](https://github.com/browserslist/browserslist).
|
|
||||||
|
|
||||||
Please check [the working browser example](examples/browser) for more information.
|
|
||||||
|
|
||||||
## In Node.js
|
## In Node.js
|
||||||
|
|
||||||
@@ -375,9 +363,6 @@ To run tests (Jest):
|
|||||||
$ yarn test
|
$ yarn test
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note**
|
|
||||||
> The `sync-browserify.spec.ts` requires a browser build (`yarn build`) in order to pass
|
|
||||||
|
|
||||||
To run linting:
|
To run linting:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
To try it out, **you must build the SDK first** and then host this folder:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn install
|
|
||||||
$ yarn build
|
|
||||||
$ cd examples/browser
|
|
||||||
$ python -m http.server 8003
|
|
||||||
```
|
|
||||||
|
|
||||||
Then visit `http://localhost:8003`.
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
console.log("Loading browser sdk");
|
|
||||||
|
|
||||||
var client = matrixcs.createClient({ baseUrl: "https://matrix.org" });
|
|
||||||
client.publicRooms().then(function (data) {
|
|
||||||
console.log("data %s [...]", JSON.stringify(data).substring(0, 100));
|
|
||||||
console.log("Congratulations! The SDK is working on the browser!");
|
|
||||||
var result = document.getElementById("result");
|
|
||||||
result.innerHTML = "<p>The SDK appears to be working correctly.</p>";
|
|
||||||
});
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>Test</title>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<link rel="icon" href="data:," />
|
|
||||||
<script src="lib/matrix.js"></script>
|
|
||||||
<script src="browserTest.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
Sanity Testing (check the console) : This example is here to make sure that the SDK works inside a browser. It
|
|
||||||
simply does a GET /publicRooms on matrix.org
|
|
||||||
<br />
|
|
||||||
You should see a message confirming that the SDK works below:
|
|
||||||
<br />
|
|
||||||
<div id="result"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../dist/browser-matrix.js
|
|
||||||
2
examples/crypto-browser/lib/.gitignore
vendored
2
examples/crypto-browser/lib/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
olm.js
|
|
||||||
olm.wasm
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../dist/browser-matrix.js
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
||||||
<title>Test Crypto in Browser</title>
|
|
||||||
<script src="lib/olm.js"></script>
|
|
||||||
<script src="lib/matrix.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Testing export/import of Olm devices in the browser</h1>
|
|
||||||
<ul>
|
|
||||||
<li>Make sure you built the current version of the Matrix JS SDK (<code>yarn build</code>)</li>
|
|
||||||
<li>
|
|
||||||
copy <code>olm.js</code> and <code>olm.wasm</code> from a recent release of Olm (was tested with version
|
|
||||||
3.1.4) in directory <code>lib/</code>
|
|
||||||
</li>
|
|
||||||
<li>start a local Matrix homeserver (on port 8008, or change the port in the code)</li>
|
|
||||||
<li>Serve this HTML file (e.g. <code>python3 -m http.server</code>) and go to it through your browser</li>
|
|
||||||
<li>
|
|
||||||
in the JS console, do:
|
|
||||||
<pre>
|
|
||||||
aliceMatrixClient = await newMatrixClient("alice-"+randomHex());
|
|
||||||
await aliceMatrixClient.exportDevice();
|
|
||||||
await aliceMatrixClient.getAccessToken();
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
copy the result of <code>exportDevice</code> and <code>getAccessToken</code> somewhere (<strong
|
|
||||||
>not</strong
|
|
||||||
>
|
|
||||||
in a JS variable as it will be destroyed when you refresh the page)
|
|
||||||
</li>
|
|
||||||
<li><strong>refresh the page (F5)</strong> to make sure the client is destroyed</li>
|
|
||||||
<li>
|
|
||||||
Do the following, replacing <code>ALICE_ID</code>
|
|
||||||
with the user ID of Alice (you can find it in the exported data)
|
|
||||||
<pre>
|
|
||||||
bobMatrixClient = await newMatrixClient("bob-"+randomHex());
|
|
||||||
roomId = await bobMatrixClient.createEncryptedRoom([ALICE_ID]);
|
|
||||||
await bobMatrixClient.sendTextMessage('Hi Alice!', roomId);
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li>Again, <strong>refresh the page (F5)</strong>. You may want to clear your console as well.</li>
|
|
||||||
<li>
|
|
||||||
Now do the following, using the exported data and the access token you saved previously:
|
|
||||||
<pre>
|
|
||||||
aliceMatrixClient = await importMatrixClient(EXPORTED_DATA, ACCESS_TOKEN);
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li>You should see the message sent by Bob printed in the console.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<script src="olm-device-export-import.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
if (!Olm) {
|
|
||||||
console.error("global.Olm does not seem to be present." + " Did you forget to add olm in the lib/ directory?");
|
|
||||||
}
|
|
||||||
|
|
||||||
const BASE_URL = "http://localhost:8008";
|
|
||||||
const ROOM_CRYPTO_CONFIG = { algorithm: "m.megolm.v1.aes-sha2" };
|
|
||||||
const PASSWORD = "password";
|
|
||||||
|
|
||||||
// useful to create new usernames
|
|
||||||
window.randomHex = () => Math.floor(Math.random() * 10 ** 6).toString(16);
|
|
||||||
|
|
||||||
window.newMatrixClient = async function (username) {
|
|
||||||
const registrationClient = matrixcs.createClient(BASE_URL);
|
|
||||||
|
|
||||||
const userRegisterResult = await registrationClient.register(username, PASSWORD, null, { type: "m.login.dummy" });
|
|
||||||
|
|
||||||
const matrixClient = matrixcs.createClient({
|
|
||||||
baseUrl: BASE_URL,
|
|
||||||
userId: userRegisterResult.user_id,
|
|
||||||
accessToken: userRegisterResult.access_token,
|
|
||||||
deviceId: userRegisterResult.device_id,
|
|
||||||
sessionStore: new matrixcs.WebStorageSessionStore(window.localStorage),
|
|
||||||
cryptoStore: new matrixcs.MemoryCryptoStore(),
|
|
||||||
});
|
|
||||||
|
|
||||||
extendMatrixClient(matrixClient);
|
|
||||||
|
|
||||||
await matrixClient.initCrypto();
|
|
||||||
await matrixClient.startClient();
|
|
||||||
return matrixClient;
|
|
||||||
};
|
|
||||||
|
|
||||||
window.importMatrixClient = async function (exportedDevice, accessToken) {
|
|
||||||
const matrixClient = matrixcs.createClient({
|
|
||||||
baseUrl: BASE_URL,
|
|
||||||
deviceToImport: exportedDevice,
|
|
||||||
accessToken,
|
|
||||||
sessionStore: new matrixcs.WebStorageSessionStore(window.localStorage),
|
|
||||||
cryptoStore: new matrixcs.MemoryCryptoStore(),
|
|
||||||
});
|
|
||||||
|
|
||||||
extendMatrixClient(matrixClient);
|
|
||||||
|
|
||||||
await matrixClient.initCrypto();
|
|
||||||
await matrixClient.startClient();
|
|
||||||
return matrixClient;
|
|
||||||
};
|
|
||||||
|
|
||||||
function extendMatrixClient(matrixClient) {
|
|
||||||
// automatic join
|
|
||||||
matrixClient.on("RoomMember.membership", async (event, member) => {
|
|
||||||
if (member.membership === "invite" && member.userId === matrixClient.getUserId()) {
|
|
||||||
await matrixClient.joinRoom(member.roomId);
|
|
||||||
// setting up of room encryption seems to be triggered automatically
|
|
||||||
// but if we don't wait for it the first messages we send are unencrypted
|
|
||||||
await matrixClient.setRoomEncryption(member.roomId, { algorithm: "m.megolm.v1.aes-sha2" });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
matrixClient.onDecryptedMessage = (message) => {
|
|
||||||
console.log("Got encrypted message: ", message);
|
|
||||||
};
|
|
||||||
|
|
||||||
matrixClient.on("Event.decrypted", (event) => {
|
|
||||||
if (event.getType() === "m.room.message") {
|
|
||||||
matrixClient.onDecryptedMessage(event.getContent().body);
|
|
||||||
} else {
|
|
||||||
console.log("decrypted an event of type", event.getType());
|
|
||||||
console.log(event);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
matrixClient.createEncryptedRoom = async function (usersToInvite) {
|
|
||||||
const { room_id: roomId } = await this.createRoom({
|
|
||||||
visibility: "private",
|
|
||||||
invite: usersToInvite,
|
|
||||||
});
|
|
||||||
|
|
||||||
// matrixClient.setRoomEncryption() only updates local state
|
|
||||||
// but does not send anything to the server
|
|
||||||
// (see https://github.com/matrix-org/matrix-js-sdk/issues/905)
|
|
||||||
// so we do it ourselves with 'sendStateEvent'
|
|
||||||
await this.sendStateEvent(roomId, "m.room.encryption", ROOM_CRYPTO_CONFIG);
|
|
||||||
await this.setRoomEncryption(roomId, ROOM_CRYPTO_CONFIG);
|
|
||||||
|
|
||||||
// Marking all devices as verified
|
|
||||||
let room = this.getRoom(roomId);
|
|
||||||
let members = (await room.getEncryptionTargetMembers()).map((x) => x["userId"]);
|
|
||||||
let memberkeys = await this.downloadKeys(members);
|
|
||||||
for (const userId in memberkeys) {
|
|
||||||
for (const deviceId in memberkeys[userId]) {
|
|
||||||
await this.setDeviceVerified(userId, deviceId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return roomId;
|
|
||||||
};
|
|
||||||
|
|
||||||
matrixClient.sendTextMessage = async function (message, roomId) {
|
|
||||||
return matrixClient.sendMessage(roomId, {
|
|
||||||
body: message,
|
|
||||||
msgtype: "m.text",
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
26
package.json
26
package.json
@@ -10,12 +10,10 @@
|
|||||||
"start": "echo THIS IS FOR LEGACY PURPOSES ONLY. && babel src -w -s -d lib --verbose --extensions \".ts,.js\"",
|
"start": "echo THIS IS FOR LEGACY PURPOSES ONLY. && babel src -w -s -d lib --verbose --extensions \".ts,.js\"",
|
||||||
"dist": "echo 'This is for the release script so it can make assets (browser bundle).' && yarn build",
|
"dist": "echo 'This is for the release script so it can make assets (browser bundle).' && yarn build",
|
||||||
"clean": "rimraf lib dist",
|
"clean": "rimraf lib dist",
|
||||||
"build": "yarn build:dev && yarn build:compile-browser && yarn build:minify-browser",
|
"build": "yarn build:dev",
|
||||||
"build:dev": "yarn clean && git rev-parse HEAD > git-revision.txt && yarn build:compile && yarn build:types",
|
"build:dev": "yarn clean && git rev-parse HEAD > git-revision.txt && yarn build:compile && yarn build:types",
|
||||||
"build:types": "tsc -p tsconfig-build.json --emitDeclarationOnly",
|
"build:types": "tsc -p tsconfig-build.json --emitDeclarationOnly",
|
||||||
"build:compile": "babel -d lib --verbose --extensions \".ts,.js\" src",
|
"build:compile": "babel -d lib --verbose --extensions \".ts,.js\" src",
|
||||||
"build:compile-browser": "mkdir dist && BROWSERIFYSWAP_ENV='no-rust-crypto' browserify -d src/browser-index.ts -p [ tsify -p ./tsconfig-build.json ] | exorcist dist/browser-matrix.js.map > dist/browser-matrix.js",
|
|
||||||
"build:minify-browser": "terser dist/browser-matrix.js --compress --mangle --source-map --output dist/browser-matrix.min.js",
|
|
||||||
"gendoc": "typedoc",
|
"gendoc": "typedoc",
|
||||||
"lint": "yarn lint:types && yarn lint:js",
|
"lint": "yarn lint:types && yarn lint:js",
|
||||||
"lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
|
"lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
|
||||||
@@ -97,8 +95,6 @@
|
|||||||
"allchange": "^1.0.6",
|
"allchange": "^1.0.6",
|
||||||
"babel-jest": "^29.0.0",
|
"babel-jest": "^29.0.0",
|
||||||
"babelify": "^10.0.0",
|
"babelify": "^10.0.0",
|
||||||
"browserify": "^17.0.0",
|
|
||||||
"browserify-swap": "^0.2.2",
|
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"domexception": "^4.0.0",
|
"domexception": "^4.0.0",
|
||||||
"eslint": "8.49.0",
|
"eslint": "8.49.0",
|
||||||
@@ -136,25 +132,5 @@
|
|||||||
"outputDirectory": "coverage",
|
"outputDirectory": "coverage",
|
||||||
"outputName": "jest-sonar-report.xml",
|
"outputName": "jest-sonar-report.xml",
|
||||||
"relativePaths": true
|
"relativePaths": true
|
||||||
},
|
|
||||||
"browserify": {
|
|
||||||
"transform": [
|
|
||||||
"browserify-swap",
|
|
||||||
[
|
|
||||||
"babelify",
|
|
||||||
{
|
|
||||||
"sourceMaps": "inline",
|
|
||||||
"presets": [
|
|
||||||
"@babel/preset-env",
|
|
||||||
"@babel/preset-typescript"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"browserify-swap": {
|
|
||||||
"no-rust-crypto": {
|
|
||||||
"src/rust-crypto/index.ts$": "./src/rust-crypto/browserify-index.ts"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import "../../dist/browser-matrix"; // uses browser-matrix instead of the src
|
|
||||||
import type { default as BrowserMatrix } from "../../src/browser-index";
|
|
||||||
|
|
||||||
// stub for browser-matrix browserify tests
|
|
||||||
// @ts-ignore
|
|
||||||
global.XMLHttpRequest = jest.fn();
|
|
||||||
|
|
||||||
afterAll(() => {
|
|
||||||
// clean up XMLHttpRequest mock
|
|
||||||
// @ts-ignore
|
|
||||||
global.XMLHttpRequest = undefined;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Akin to spec/setupTests.ts - but that won't affect the browser-matrix bundle
|
|
||||||
global.matrixcs = {
|
|
||||||
...global.matrixcs,
|
|
||||||
timeoutSignal: () => new AbortController().signal,
|
|
||||||
} as typeof BrowserMatrix;
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import HttpBackend from "matrix-mock-request";
|
|
||||||
|
|
||||||
import "./setupTests"; // uses browser-matrix instead of the src
|
|
||||||
import type { MatrixClient } from "../../src";
|
|
||||||
|
|
||||||
const USER_ID = "@user:test.server";
|
|
||||||
const DEVICE_ID = "device_id";
|
|
||||||
const ACCESS_TOKEN = "access_token";
|
|
||||||
const ROOM_ID = "!room_id:server.test";
|
|
||||||
|
|
||||||
describe("Browserify Test", function () {
|
|
||||||
let client: MatrixClient;
|
|
||||||
let httpBackend: HttpBackend;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
httpBackend = new HttpBackend();
|
|
||||||
client = new global.matrixcs.MatrixClient({
|
|
||||||
baseUrl: "http://test.server",
|
|
||||||
userId: USER_ID,
|
|
||||||
accessToken: ACCESS_TOKEN,
|
|
||||||
deviceId: DEVICE_ID,
|
|
||||||
fetchFn: httpBackend.fetchFn as typeof global.fetch,
|
|
||||||
});
|
|
||||||
|
|
||||||
httpBackend.when("GET", "/versions").respond(200, {});
|
|
||||||
httpBackend.when("GET", "/pushrules").respond(200, {});
|
|
||||||
httpBackend.when("POST", "/filter").respond(200, { filter_id: "fid" });
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(async () => {
|
|
||||||
client.stopClient();
|
|
||||||
client.http.abort();
|
|
||||||
httpBackend.verifyNoOutstandingRequests();
|
|
||||||
httpBackend.verifyNoOutstandingExpectation();
|
|
||||||
await httpBackend.stop();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Sync", async () => {
|
|
||||||
const event = {
|
|
||||||
type: "m.room.member",
|
|
||||||
room_id: ROOM_ID,
|
|
||||||
content: {
|
|
||||||
membership: "join",
|
|
||||||
name: "Displayname",
|
|
||||||
},
|
|
||||||
event_id: "$foobar",
|
|
||||||
};
|
|
||||||
|
|
||||||
const syncData = {
|
|
||||||
next_batch: "batch1",
|
|
||||||
rooms: {
|
|
||||||
join: {
|
|
||||||
[ROOM_ID]: {
|
|
||||||
timeline: {
|
|
||||||
events: [event],
|
|
||||||
limited: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
httpBackend.when("GET", "/sync").respond(200, syncData);
|
|
||||||
httpBackend.when("GET", "/sync").respond(200, syncData);
|
|
||||||
|
|
||||||
const syncPromise = new Promise((r) => client.once(global.matrixcs.ClientEvent.Sync, r));
|
|
||||||
const unexpectedErrorFn = jest.fn();
|
|
||||||
client.once(global.matrixcs.ClientEvent.SyncUnexpectedError, unexpectedErrorFn);
|
|
||||||
|
|
||||||
client.startClient();
|
|
||||||
|
|
||||||
await httpBackend.flushAllExpected();
|
|
||||||
await syncPromise;
|
|
||||||
expect(unexpectedErrorFn).not.toHaveBeenCalled();
|
|
||||||
}, 20000); // additional timeout as this test can take quite a while
|
|
||||||
});
|
|
||||||
@@ -40,8 +40,5 @@ if (indexedDB) {
|
|||||||
matrixcs.setCryptoStoreFactory(() => new matrixcs.IndexedDBCryptoStore(indexedDB!, "matrix-js-sdk:crypto"));
|
matrixcs.setCryptoStoreFactory(() => new matrixcs.IndexedDBCryptoStore(indexedDB!, "matrix-js-sdk:crypto"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// We export 3 things to make browserify happy as well as downstream projects.
|
|
||||||
// It's awkward, but required.
|
|
||||||
export * from "./matrix";
|
export * from "./matrix";
|
||||||
export default matrixcs; // keep export for browserify package deps
|
|
||||||
globalThis.matrixcs = matrixcs;
|
globalThis.matrixcs = matrixcs;
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2023 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* This file replaces rust-crypto/index.ts when the js-sdk is being built for browserify.
|
|
||||||
*
|
|
||||||
* It is a stub, so that we do not import the whole of the base64'ed wasm artifact into the browserify bundle.
|
|
||||||
* It deliberately does nothing except raise an exception.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IHttpOpts, MatrixHttpApi } from "../http-api";
|
|
||||||
|
|
||||||
export async function initRustCrypto(
|
|
||||||
_http: MatrixHttpApi<IHttpOpts & { onlyData: true }>,
|
|
||||||
_userId: string,
|
|
||||||
_deviceId: string,
|
|
||||||
): Promise<Crypto> {
|
|
||||||
throw new Error("Rust crypto is not supported under browserify.");
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user