New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@trezor/transport

Package Overview
Dependencies
Maintainers
4
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@trezor/transport - npm Package Compare versions

Comparing version 1.3.2-beta.1 to 1.3.2

48

lib/sessions/background-browser.d.ts

@@ -1,48 +0,8 @@

import type { Descriptor } from '../types';
import { SessionsBackground } from './background';
import { RegisterBackgroundCallbacks } from './types';
export declare const initBackgroundInBrowser: () => {
background: SharedWorker;
requestFn: (params: Parameters<SessionsBackground["handleMessage"]>[0]) => Promise<import("./types").HandshakeResponse | import("./types").EnumerateDoneResponse | ({
success: false;
error: "wrong previous session";
} & {
id: number;
}) | (import("../types").Success<{
session: import("../types").Session;
path: import("../types").PathInternal;
}> & {
id: number;
}) | ({
success: false;
error: "descriptor not found";
} & {
id: number;
}) | (import("../types").Success<{
session: import("../types").Session;
descriptors: Descriptor[];
}> & {
id: number;
}) | (import("../types").Success<{
path: import("../types").PathInternal;
}> & {
id: number;
}) | ({
success: false;
error: "session not found";
} & {
id: number;
}) | import("./types").ReleaseDoneResponse | import("./types").GetSessionsResponse | (import("../types").Success<{
path: import("../types").PathInternal;
}> & {
id: number;
}) | (import("../types").Success<void> & {
id: number;
})>;
export declare const initBackgroundInBrowser: (sessionsBackgroundUrl?: string) => Promise<{
background: SessionsBackground | SharedWorker;
requestFn: SessionsBackground["handleMessage"];
registerBackgroundCallbacks: RegisterBackgroundCallbacks;
} | {
background: SessionsBackground;
requestFn: <M extends import("./types").HandleMessageParams>(message: M) => Promise<import("./types").HandleMessageResponse<M>>;
registerBackgroundCallbacks: RegisterBackgroundCallbacks;
};
}>;
//# sourceMappingURL=background-browser.d.ts.map

19

lib/sessions/background-browser.js

@@ -6,6 +6,15 @@ "use strict";

const background_1 = require("./background");
const background_sharedworker_1 = tslib_1.__importDefault(require("./background-sharedworker"));
const initBackgroundInBrowser = () => {
const defaultSessionsBackgroundUrl = window.location.origin +
`${process.env.ASSET_PREFIX || ''}/workers/sessions-background-sharedworker.js`
.replace(/\/+/g, '/');
const initBackgroundInBrowser = (...args_1) => tslib_1.__awaiter(void 0, [...args_1], void 0, function* (sessionsBackgroundUrl = defaultSessionsBackgroundUrl) {
try {
const background = new background_sharedworker_1.default();
yield fetch(sessionsBackgroundUrl, { method: 'HEAD' }).then(response => {
if (!response.ok) {
throw new Error(`Failed to fetch sessions-background SharedWorker from url: ${sessionsBackgroundUrl}`);
}
});
const background = new SharedWorker(sessionsBackgroundUrl, {
name: '@trezor/connect-web transport sessions worker',
});
const requestFn = (params) => new Promise(resolve => {

@@ -37,3 +46,3 @@ const onmessage = (message) => {

catch (err) {
console.warn('Unable to load background-sharedworker. Falling back to use local module. Say bye bye to tabs synchronization');
console.warn('Unable to load background-sharedworker. Falling back to use local module. Say bye bye to tabs synchronization. Error details: ', err.message);
const background = new background_1.SessionsBackground();

@@ -51,4 +60,4 @@ const registerBackgroundCallbacks = onDescriptorsCallback => {

}
};
});
exports.initBackgroundInBrowser = initBackgroundInBrowser;
//# sourceMappingURL=background-browser.js.map

@@ -11,6 +11,6 @@ import { TypedEmitter } from '@trezor/utils';

private id;
constructor({ requestFn, registerBackgroundCallbacks, }: {
init({ requestFn, registerBackgroundCallbacks, }: {
requestFn: SessionsBackground['handleMessage'];
registerBackgroundCallbacks?: RegisterBackgroundCallbacks;
});
}): void;
handshake(): Promise<import("./types").HandshakeResponse>;

@@ -17,0 +17,0 @@ enumerateDone(payload: EnumerateDoneRequest): Promise<import("./types").EnumerateDoneResponse>;

@@ -7,7 +7,16 @@ "use strict";

class SessionsClient extends utils_2.TypedEmitter {
constructor({ requestFn, registerBackgroundCallbacks, }) {
super();
constructor() {
super(...arguments);
this.request = () => {
throw new Error('SessionsClient: request method not provided');
};
this.caller = (0, utils_1.getWeakRandomId)(3);
this.id = 0;
}
init({ requestFn, registerBackgroundCallbacks, }) {
this.id = 0;
this.request = params => {
if (!requestFn) {
throw new Error('SessionsClient: requestFn not provided');
}
params.caller = this.caller;

@@ -14,0 +23,0 @@ params.id = this.id;

@@ -7,18 +7,10 @@ import { AbstractTransport, AbstractTransportParams, AbstractTransportMethodParams } from './abstract';

api: AbstractApi;
sessionsClient: (typeof SessionsClient)['prototype'];
}
export declare abstract class AbstractApiTransport extends AbstractTransport {
private sessionsClient;
protected sessionsClient: SessionsClient;
private sessionsBackground;
protected api: AbstractApi;
constructor({ messages, api, sessionsClient, logger }: ConstructorParams);
init({ signal }?: AbstractTransportMethodParams<'init'>): Promise<import("../types").Success<undefined> | {
constructor({ messages, api, logger }: ConstructorParams);
init({ signal }?: AbstractTransportMethodParams<'init'>): Promise<import("../sessions/types").HandshakeResponse | {
success: false;
error: never;
message: string | undefined;
} | {
success: false;
error: "unexpected error";
message: string;
} | {
success: false;
error: NonNullable<"Aborted by signal" | "Aborted by timeout">;

@@ -25,0 +17,0 @@ message: string | undefined;

@@ -5,2 +5,3 @@ "use strict";

const tslib_1 = require("tslib");
const background_1 = require("../sessions/background");
const utils_1 = require("@trezor/utils");

@@ -11,7 +12,9 @@ const protocol_1 = require("@trezor/protocol");

const receive_1 = require("../utils/receive");
const client_1 = require("../sessions/client");
const ERRORS = tslib_1.__importStar(require("../errors"));
class AbstractApiTransport extends abstract_1.AbstractTransport {
constructor({ messages, api, sessionsClient, logger }) {
constructor({ messages, api, logger }) {
super({ messages, logger });
this.sessionsClient = sessionsClient;
this.sessionsClient = new client_1.SessionsClient();
this.sessionsBackground = new background_1.SessionsBackground();
this.api = api;

@@ -21,7 +24,12 @@ }

return this.scheduleAction(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
this.sessionsClient.init({
requestFn: args => this.sessionsBackground.handleMessage(args),
registerBackgroundCallbacks: () => { },
});
this.sessionsBackground.on('descriptors', descriptors => {
this.sessionsClient.emit('descriptors', descriptors);
});
const handshakeRes = yield this.sessionsClient.handshake();
this.stopped = !handshakeRes.success;
return handshakeRes.success
? this.success(undefined)
: this.unknownError('handshake error');
return handshakeRes;
}), { signal });

@@ -222,2 +230,3 @@ }

});
this.sessionsBackground.dispose();
}

@@ -224,0 +233,0 @@ }

@@ -5,3 +5,2 @@ import { AbstractTransportParams } from './abstract';

name: "NodeUsbTransport";
private readonly sessionsBackground;
constructor(params: AbstractTransportParams);

@@ -13,4 +12,3 @@ listen(): import("../types").Success<undefined> | {

};
stop(): void;
}
//# sourceMappingURL=nodeusb.d.ts.map

@@ -6,4 +6,2 @@ "use strict";

const abstractApi_1 = require("./abstractApi");
const client_1 = require("../sessions/client");
const background_1 = require("../sessions/background");
const usb_2 = require("../api/usb");

@@ -13,10 +11,2 @@ class NodeUsbTransport extends abstractApi_1.AbstractApiTransport {

const { messages, logger, debugLink } = params;
const sessionsBackground = new background_1.SessionsBackground();
const sessionsClient = new client_1.SessionsClient({
requestFn: args => sessionsBackground.handleMessage(args),
registerBackgroundCallbacks: () => { },
});
sessionsBackground.on('descriptors', descriptors => {
sessionsClient.emit('descriptors', descriptors);
});
super({

@@ -31,6 +21,4 @@ messages,

}),
sessionsClient,
});
this.name = 'NodeUsbTransport';
this.sessionsBackground = sessionsBackground;
}

@@ -41,8 +29,4 @@ listen() {

}
stop() {
super.stop();
this.sessionsBackground.dispose();
}
}
exports.NodeUsbTransport = NodeUsbTransport;
//# sourceMappingURL=nodeusb.js.map

@@ -6,3 +6,2 @@ import { AbstractTransportParams } from './abstract';

private enumerateTimeout;
private readonly sessionsBackground;
constructor(params: AbstractTransportParams);

@@ -9,0 +8,0 @@ listen(): import("../types").Success<undefined> | {

@@ -6,15 +6,5 @@ "use strict";

const abstractApi_1 = require("./abstractApi");
const client_1 = require("../sessions/client");
const background_1 = require("../sessions/background");
class UdpTransport extends abstractApi_1.AbstractApiTransport {
constructor(params) {
const { messages, logger, debugLink } = params;
const sessionsBackground = new background_1.SessionsBackground();
const sessionsClient = new client_1.SessionsClient({
requestFn: args => sessionsBackground.handleMessage(args),
registerBackgroundCallbacks: () => { },
});
sessionsBackground.on('descriptors', descriptors => {
sessionsClient.emit('descriptors', descriptors);
});
super({

@@ -24,6 +14,4 @@ messages,

logger,
sessionsClient,
});
this.name = 'UdpTransport';
this.sessionsBackground = sessionsBackground;
}

@@ -39,3 +27,2 @@ listen() {

}
this.sessionsBackground.dispose();
return super.stop();

@@ -42,0 +29,0 @@ }

@@ -1,6 +0,19 @@

import { AbstractTransportParams } from './abstract';
import { AbstractTransportMethodParams, AbstractTransportParams } from './abstract';
import { AbstractApiTransport } from './abstractApi';
type WebUsbTransportParams = AbstractTransportParams & {
sessionsBackgroundUrl?: string;
};
export declare class WebUsbTransport extends AbstractApiTransport {
name: "WebUsbTransport";
constructor(params: AbstractTransportParams);
private readonly sessionsBackgroundUrl;
constructor({ messages, logger, sessionsBackgroundUrl }: WebUsbTransportParams);
init({ signal }?: AbstractTransportMethodParams<'init'>): Promise<import("../sessions/types").HandshakeResponse | {
success: false;
error: NonNullable<"Aborted by signal" | "Aborted by timeout">;
message: string | undefined;
} | {
success: false;
error: "unexpected error";
message: string;
}>;
listen(): import("../types").Success<undefined> | {

@@ -12,2 +25,3 @@ success: false;

}
export {};
//# sourceMappingURL=webusb.browser.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebUsbTransport = void 0;
const tslib_1 = require("tslib");
const abstractApi_1 = require("./abstractApi");
const client_1 = require("../sessions/client");
const usb_1 = require("../api/usb");
const background_browser_1 = require("../sessions/background-browser");
class WebUsbTransport extends abstractApi_1.AbstractApiTransport {
constructor(params) {
const { messages, logger } = params;
const { requestFn, registerBackgroundCallbacks } = (0, background_browser_1.initBackgroundInBrowser)();
constructor({ messages, logger, sessionsBackgroundUrl }) {
super({

@@ -19,9 +17,19 @@ messages,

logger,
sessionsClient: new client_1.SessionsClient({
requestFn,
registerBackgroundCallbacks,
}),
});
this.name = 'WebUsbTransport';
this.sessionsBackgroundUrl = sessionsBackgroundUrl;
}
init({ signal } = {}) {
return this.scheduleAction(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
const { sessionsBackgroundUrl } = this;
const { requestFn, registerBackgroundCallbacks } = yield (0, background_browser_1.initBackgroundInBrowser)(sessionsBackgroundUrl);
this.sessionsClient.init({
requestFn,
registerBackgroundCallbacks,
});
const handshakeRes = yield this.sessionsClient.handshake();
this.stopped = !handshakeRes.success;
return handshakeRes;
}), { signal });
}
listen() {

@@ -28,0 +36,0 @@ this.api.listen();

{
"name": "@trezor/transport",
"version": "1.3.2-beta.1",
"version": "1.3.2",
"description": "Low level library facilitating protocol buffers based communication with Trezor devices",

@@ -66,3 +66,3 @@ "npmPublishAccess": "public",

"dependencies": {
"@trezor/protobuf": "1.2.2-beta.1",
"@trezor/protobuf": "1.2.2",
"@trezor/protocol": "1.2.1",

@@ -69,0 +69,0 @@ "@trezor/utils": "9.2.1",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc