@trezor/connect 9.0.7 → 9.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -1
  3. package/lib/api/bitcoin/createPendingTx.d.ts +34 -0
  4. package/lib/api/bitcoin/createPendingTx.js +59 -0
  5. package/lib/api/bitcoin/index.d.ts +1 -0
  6. package/lib/api/bitcoin/index.js +1 -0
  7. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +1 -1
  8. package/lib/api/blockchainGetCurrentFiatRates.d.ts +2 -1
  9. package/lib/api/blockchainGetCurrentFiatRates.js +6 -1
  10. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +3 -1
  11. package/lib/api/blockchainGetFiatRatesForTimestamps.js +9 -1
  12. package/lib/api/blockchainGetTransactions.d.ts +1 -1
  13. package/lib/api/cardano/cardanoAuxiliaryData.js +43 -23
  14. package/lib/api/cardanoSignTransaction.d.ts +2 -1
  15. package/lib/api/cardanoSignTransaction.js +21 -11
  16. package/lib/api/composeTransaction.js +2 -2
  17. package/lib/api/ethereum/ethereumDefinitions.d.ts +7 -0
  18. package/lib/api/ethereum/ethereumDefinitions.js +43 -0
  19. package/lib/api/ethereum/ethereumSignTx.d.ts +3 -2
  20. package/lib/api/ethereum/ethereumSignTx.js +4 -2
  21. package/lib/api/ethereumGetAddress.d.ts +2 -1
  22. package/lib/api/ethereumGetAddress.js +19 -2
  23. package/lib/api/ethereumSignMessage.js +13 -0
  24. package/lib/api/ethereumSignTransaction.js +10 -3
  25. package/lib/api/ethereumSignTypedData.js +14 -0
  26. package/lib/api/firmware/getBinary.d.ts +3 -12
  27. package/lib/api/firmware/getBinary.js +5 -9
  28. package/lib/api/firmwareUpdate.d.ts +3 -2
  29. package/lib/api/firmwareUpdate.js +4 -5
  30. package/lib/api/getAccountInfo.d.ts +8 -8
  31. package/lib/api/getAccountInfo.js +1 -1
  32. package/lib/api/setBusy.js +1 -4
  33. package/lib/api/setProxy.js +1 -1
  34. package/lib/api/signTransaction.js +10 -2
  35. package/lib/api/unlockPath.js +1 -4
  36. package/lib/backend/Blockchain.d.ts +3 -0
  37. package/lib/core/AbstractMethod.d.ts +1 -0
  38. package/lib/core/AbstractMethod.js +9 -0
  39. package/lib/core/index.js +17 -8
  40. package/lib/data/DataManager.d.ts +92 -15
  41. package/lib/data/DataManager.js +3 -54
  42. package/lib/data/config.js +9 -3
  43. package/lib/data/connectSettings.d.ts +0 -1
  44. package/lib/data/connectSettings.js +10 -57
  45. package/lib/data/firmwareInfo.js +48 -46
  46. package/lib/data/transportInfo.d.ts +1 -0
  47. package/lib/data/transportInfo.js +14 -1
  48. package/lib/data/udevInfo.d.ts +1 -0
  49. package/lib/data/udevInfo.js +14 -1
  50. package/lib/data/version.d.ts +1 -1
  51. package/lib/data/version.js +1 -1
  52. package/lib/device/DescriptorStream.js +1 -1
  53. package/lib/device/DeviceCommands.d.ts +1 -1
  54. package/lib/device/DeviceCommands.js +2 -1
  55. package/lib/device/DeviceList.d.ts +1 -2
  56. package/lib/device/DeviceList.js +20 -10
  57. package/lib/events/iframe.d.ts +2 -1
  58. package/lib/events/popup.d.ts +2 -1
  59. package/lib/index.js +1 -4
  60. package/lib/types/api/bitcoin/index.d.ts +2 -0
  61. package/lib/types/api/cardano/index.d.ts +10 -9
  62. package/lib/types/api/firmwareUpdate.d.ts +2 -1
  63. package/lib/types/firmware.d.ts +2 -3
  64. package/lib/types/index.d.ts +1 -1
  65. package/lib/types/settings.d.ts +1 -1
  66. package/lib/utils/firmwareUtils.d.ts +0 -1
  67. package/lib/utils/firmwareUtils.js +1 -9
  68. package/lib/utils/pathUtils.d.ts +1 -0
  69. package/lib/utils/pathUtils.js +3 -1
  70. package/lib/utils/promiseUtils.d.ts +5 -1
  71. package/lib/utils/promiseUtils.js +7 -3
  72. package/lib/utils/urlUtils.d.ts +2 -1
  73. package/lib/utils/urlUtils.js +18 -3
  74. package/lib/utils/versionUtils.d.ts +3 -1
  75. package/lib/utils/versionUtils.js +5 -2
  76. package/package.json +12 -13
  77. package/lib/device/AbortController.d.ts +0 -21
  78. package/lib/device/AbortController.js +0 -40
  79. package/lib/utils/browserUtils.d.ts +0 -21
  80. package/lib/utils/browserUtils.js +0 -100
  81. package/lib/utils/windowsUtils.d.ts +0 -2
  82. package/lib/utils/windowsUtils.js +0 -6
@@ -1,5 +1,6 @@
1
1
  import type { PROTO } from '../../../constants';
2
2
  import type { AccountAddresses } from '@trezor/blockchain-link';
3
+ import type { Transaction as BlockbookTransaction } from '@trezor/blockchain-link-types/lib/blockbook';
3
4
  export interface SignMessage {
4
5
  path: string | number[];
5
6
  coin: string;
@@ -76,6 +77,7 @@ export type SignedTransaction = {
76
77
  serializedTx: string;
77
78
  witnesses?: (string | undefined)[];
78
79
  txid?: string;
80
+ signedTransaction?: BlockbookTransaction;
79
81
  };
80
82
  export interface VerifyMessage {
81
83
  address: string;
@@ -137,22 +137,23 @@ export interface CardanoReferenceInput {
137
137
  prev_hash: string;
138
138
  prev_index: number;
139
139
  }
140
- export interface CardanoGovernanceRegistrationDelegation {
141
- votingPublicKey: string;
140
+ export interface CardanoCVoteRegistrationDelegation {
141
+ votePublicKey: string;
142
142
  weight: number;
143
143
  }
144
- export interface CardanoGovernanceRegistrationParameters {
145
- votingPublicKey?: string;
144
+ export interface CardanoCVoteRegistrationParameters {
145
+ votePublicKey?: string;
146
146
  stakingPath: string | number[];
147
- rewardAddressParameters: CardanoAddressParameters;
147
+ paymentAddressParameters?: CardanoAddressParameters;
148
148
  nonce: string;
149
- format?: PROTO.CardanoGovernanceRegistrationFormat;
150
- delegations?: CardanoGovernanceRegistrationDelegation[];
149
+ format?: PROTO.CardanoCVoteRegistrationFormat;
150
+ delegations?: CardanoCVoteRegistrationDelegation[];
151
151
  votingPurpose?: number;
152
+ paymentAddress?: string;
152
153
  }
153
154
  export interface CardanoAuxiliaryData {
154
155
  hash?: string;
155
- governanceRegistrationParameters?: CardanoGovernanceRegistrationParameters;
156
+ cVoteRegistrationParameters?: CardanoCVoteRegistrationParameters;
156
157
  }
157
158
  export interface CardanoSignTransaction {
158
159
  inputs: CardanoInput[];
@@ -186,7 +187,7 @@ export interface CardanoSignedTxWitness {
186
187
  export interface CardanoAuxiliaryDataSupplement {
187
188
  type: PROTO.CardanoTxAuxiliaryDataSupplementType;
188
189
  auxiliaryDataHash: string;
189
- governanceSignature?: string;
190
+ cVoteRegistrationSignature?: string;
190
191
  }
191
192
  export interface CardanoSignedTxData {
192
193
  hash: string;
@@ -1,3 +1,4 @@
1
+ import type { IntermediaryVersion } from '../firmware';
1
2
  import type { Params, Response } from '../params';
2
3
  export interface FirmwareUpdateBinary {
3
4
  binary: ArrayBuffer;
@@ -6,7 +7,7 @@ export interface FirmwareUpdate {
6
7
  version: number[];
7
8
  btcOnly?: boolean;
8
9
  baseUrl?: string;
9
- intermediary?: boolean;
10
+ intermediaryVersion?: IntermediaryVersion;
10
11
  }
11
12
  export interface FirmwareUpdateResponse {
12
13
  hash: string;
@@ -22,15 +22,14 @@ export type FirmwareRelease = {
22
22
  url_bitcoinonly?: string;
23
23
  fingerprint_bitcoinonly?: string;
24
24
  notes?: string;
25
- rollout?: number;
26
25
  channel?: string;
27
26
  };
27
+ export type IntermediaryVersion = 1 | 2 | 3;
28
28
  export type ReleaseInfo = {
29
29
  changelog: FirmwareRelease[] | null;
30
30
  release: FirmwareRelease;
31
- isLatest: boolean;
32
- latest: FirmwareRelease;
33
31
  isRequired: boolean | null;
34
32
  isNewer: boolean | null;
33
+ intermediaryVersion?: IntermediaryVersion;
35
34
  };
36
35
  //# sourceMappingURL=firmware.d.ts.map
@@ -15,5 +15,5 @@ export * from './api/stellar';
15
15
  export * from './api/tezos';
16
16
  export type { ComposeOutput, PrecomposedTransaction } from './api/composeTransaction';
17
17
  export type { RecoveryDevice } from './api/recoveryDevice';
18
- export type { TokenInfo, Transaction as AccountTransaction, Target as TransactionTarget, AccountBalanceHistory as BlockchainAccountBalanceHistory, } from '@trezor/blockchain-link';
18
+ export type { TokenInfo, TokenTransfer, InternalTransfer, FiatRates, Transaction as AccountTransaction, Target as TransactionTarget, AccountBalanceHistory as BlockchainAccountBalanceHistory, } from '@trezor/blockchain-link';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import type { BlockchainSettings } from '@trezor/blockchain-link';
2
2
  import type { Transport } from '@trezor/transport';
3
+ export type { SystemInfo } from '@trezor/connect-common';
3
4
  export interface Manifest {
4
5
  appUrl: string;
5
6
  email: string;
@@ -26,7 +27,6 @@ export interface ConnectSettings {
26
27
  version: string;
27
28
  priority: number;
28
29
  trustedHost: boolean;
29
- supportedBrowser?: boolean;
30
30
  extension?: string;
31
31
  env: 'node' | 'web' | 'webextension' | 'electron' | 'react-native';
32
32
  timestamp: number;
@@ -1,7 +1,6 @@
1
1
  import type { Features, StrictFeatures, FirmwareRelease, VersionArray } from '../types';
2
2
  export declare const isStrictFeatures: (extFeatures: Features) => extFeatures is StrictFeatures;
3
3
  export declare const isValidReleases: (extReleases: any) => extReleases is FirmwareRelease[];
4
- export declare const getScore: (device_id: string) => number;
5
4
  export declare const filterSafeListByBootloader: (releasesList: FirmwareRelease[], bootloaderVersion: VersionArray) => FirmwareRelease[];
6
5
  export declare const filterSafeListByFirmware: (releasesList: FirmwareRelease[], firmwareVersion: VersionArray) => FirmwareRelease[];
7
6
  //# sourceMappingURL=firmwareUtils.d.ts.map
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.getScore = exports.isValidReleases = exports.isStrictFeatures = void 0;
4
- const crypto_1 = require("crypto");
3
+ exports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.isValidReleases = exports.isStrictFeatures = void 0;
5
4
  const utils_1 = require("@trezor/utils");
6
5
  const isStrictFeatures = (extFeatures) => [1, 2].includes(extFeatures.major_version) &&
7
6
  (extFeatures.firmware_present === false ||
@@ -11,13 +10,6 @@ exports.isStrictFeatures = isStrictFeatures;
11
10
  const isValidReleases = (extReleases) => Array.isArray(extReleases) &&
12
11
  extReleases.every(release => release.version && release.min_firmware_version && release.min_bootloader_version);
13
12
  exports.isValidReleases = isValidReleases;
14
- const getScore = (device_id) => {
15
- const hash = (0, crypto_1.createHash)('sha256');
16
- hash.update(device_id);
17
- const output = parseInt(hash.digest('hex'), 16) / 2 ** 256;
18
- return Math.round(output * 100) / 100;
19
- };
20
- exports.getScore = getScore;
21
13
  const filterSafeListByBootloader = (releasesList, bootloaderVersion) => releasesList.filter(item => (!item.min_bootloader_version ||
22
14
  utils_1.versionUtils.isNewerOrEqual(bootloaderVersion, item.min_bootloader_version)) &&
23
15
  (!item.bootloader_version ||
@@ -3,6 +3,7 @@ import type { CoinInfo } from '../types';
3
3
  export declare const HD_HARDENED = 2147483648;
4
4
  export declare const toHardened: (n: number) => number;
5
5
  export declare const fromHardened: (n: number) => number;
6
+ export declare const getSlip44ByPath: (path: number[]) => number;
6
7
  export declare const getHDPath: (path: string) => number[];
7
8
  export declare const isSegwitPath: (path: number[] | undefined) => boolean;
8
9
  export declare const isBech32Path: (path: number[] | undefined) => boolean;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLabel = exports.fixPath = exports.getIndexFromPath = exports.getPathFromIndex = exports.getSerializedPath = exports.validatePath = exports.getOutputScriptType = exports.getScriptType = exports.getAccountType = exports.isTaprootPath = exports.isBech32Path = exports.isSegwitPath = exports.getHDPath = exports.fromHardened = exports.toHardened = exports.HD_HARDENED = void 0;
3
+ exports.getLabel = exports.fixPath = exports.getIndexFromPath = exports.getPathFromIndex = exports.getSerializedPath = exports.validatePath = exports.getOutputScriptType = exports.getScriptType = exports.getAccountType = exports.isTaprootPath = exports.isBech32Path = exports.isSegwitPath = exports.getHDPath = exports.getSlip44ByPath = exports.fromHardened = exports.toHardened = exports.HD_HARDENED = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  exports.HD_HARDENED = 0x80000000;
6
6
  const toHardened = (n) => (n | exports.HD_HARDENED) >>> 0;
7
7
  exports.toHardened = toHardened;
8
8
  const fromHardened = (n) => (n & ~exports.HD_HARDENED) >>> 0;
9
9
  exports.fromHardened = fromHardened;
10
+ const getSlip44ByPath = (path) => (0, exports.fromHardened)(path[1]);
11
+ exports.getSlip44ByPath = getSlip44ByPath;
10
12
  const PATH_NOT_VALID = constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Not a valid path');
11
13
  const PATH_NEGATIVE_VALUES = constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Path cannot contain negative values');
12
14
  const getHDPath = (path) => {
@@ -1,2 +1,6 @@
1
- export declare const resolveAfter: (msec: number, value?: any) => Promise<any>;
1
+ /// <reference types="node" />
2
+ export declare const resolveAfter: (msec: number, value?: any) => {
3
+ promise: Promise<any>;
4
+ timeout: NodeJS.Timeout | undefined;
5
+ };
2
6
  //# sourceMappingURL=promiseUtils.d.ts.map
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveAfter = void 0;
4
- const resolveAfter = (msec, value) => new Promise(resolve => {
5
- setTimeout(resolve, msec, value);
6
- });
4
+ const resolveAfter = (msec, value) => {
5
+ let timeout;
6
+ const promise = new Promise(resolve => {
7
+ timeout = setTimeout(resolve, msec, value);
8
+ });
9
+ return { promise, timeout };
10
+ };
7
11
  exports.resolveAfter = resolveAfter;
8
12
  //# sourceMappingURL=promiseUtils.js.map
@@ -1,4 +1,5 @@
1
- export declare const getOrigin: (url: string) => string;
1
+ export declare const getOrigin: (url: unknown) => string;
2
+ export declare const getHost: (url: unknown) => string | undefined;
2
3
  export declare const getOnionDomain: <T extends string | string[]>(url: T, dict: {
3
4
  [domain: string]: string;
4
5
  }) => T;
@@ -1,15 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOnionDomain = exports.getOrigin = void 0;
3
+ exports.getOnionDomain = exports.getHost = exports.getOrigin = void 0;
4
4
  const getOrigin = (url) => {
5
+ var _a;
5
6
  if (typeof url !== 'string')
6
7
  return 'unknown';
7
8
  if (url.indexOf('file://') === 0)
8
9
  return 'file://';
9
- const parts = url.match(/^.+\:\/\/[^\/]+/);
10
- return Array.isArray(parts) && parts.length > 0 ? parts[0] : 'unknown';
10
+ const [origin] = (_a = url.match(/^https?:\/\/[^/]+/)) !== null && _a !== void 0 ? _a : [];
11
+ return origin !== null && origin !== void 0 ? origin : 'unknown';
11
12
  };
12
13
  exports.getOrigin = getOrigin;
14
+ const getHost = (url) => {
15
+ var _a;
16
+ if (typeof url !== 'string')
17
+ return;
18
+ const [, , uri] = (_a = url.match(/^(https?):\/\/([^:/]+)?/i)) !== null && _a !== void 0 ? _a : [];
19
+ if (uri) {
20
+ const parts = uri.split('.');
21
+ return parts.length > 2
22
+ ?
23
+ parts.slice(parts.length - 2, parts.length).join('.')
24
+ : uri;
25
+ }
26
+ };
27
+ exports.getHost = getHost;
13
28
  const getOnionDomain = (url, dict) => {
14
29
  var _a;
15
30
  if (Array.isArray(url)) {
@@ -1,5 +1,7 @@
1
+ import type { VersionArray } from '../types';
1
2
  export declare const isValidVersionString: (version: string) => boolean;
2
- export declare const isValidVersionArray: (version: number[]) => boolean;
3
+ export declare const isValidVersionArray: (version: (number | null)[]) => boolean;
4
+ export declare const isVersionArray: (arr: (number | null)[]) => arr is VersionArray;
3
5
  export declare const normalizeVersionArray: (version: number[]) => number[];
4
6
  export declare const versionSplit: (version: string) => number[];
5
7
  export declare const versionCompare: (a: string | number[], b: string | number[]) => 1 | 0 | -1;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.versionCompare = exports.versionSplit = exports.normalizeVersionArray = exports.isValidVersionArray = exports.isValidVersionString = void 0;
3
+ exports.versionCompare = exports.versionSplit = exports.normalizeVersionArray = exports.isVersionArray = exports.isValidVersionArray = exports.isValidVersionString = void 0;
4
4
  const VER_NUMS = 3;
5
5
  const versionRegex = new RegExp(/^[0-9]{1,3}(\.[0-9]{1,3}){0,2}$/);
6
6
  const isValidVersionString = (version) => versionRegex.test(version);
@@ -16,13 +16,16 @@ const isValidVersionArray = (version) => {
16
16
  return false;
17
17
  }
18
18
  for (let i = 0; i < version.length; i++) {
19
- if (typeof version[i] !== 'number' || version[i] < 0) {
19
+ const versionNumber = version[i];
20
+ if (typeof versionNumber !== 'number' || versionNumber === null || versionNumber < 0) {
20
21
  return false;
21
22
  }
22
23
  }
23
24
  return true;
24
25
  };
25
26
  exports.isValidVersionArray = isValidVersionArray;
27
+ const isVersionArray = (arr) => (0, exports.isValidVersionArray)(arr);
28
+ exports.isVersionArray = isVersionArray;
26
29
  const normalizeVersionArray = (version) => {
27
30
  if (version.length === VER_NUMS) {
28
31
  return version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trezor/connect",
3
- "version": "9.0.7",
3
+ "version": "9.0.9",
4
4
  "author": "Trezor <info@trezor.io>",
5
5
  "homepage": "https://github.com/trezor/trezor-suite/tree/develop/packages/connect",
6
6
  "description": "High-level javascript interface for Trezor hardware wallet.",
@@ -36,7 +36,7 @@
36
36
  ],
37
37
  "scripts": {
38
38
  "lint:js": "yarn g:eslint '**/*.{ts,tsx,js}'",
39
- "test:unit": "jest",
39
+ "test:unit": "jest --version && jest",
40
40
  "type-check": "tsc --build",
41
41
  "build:lib": "rimraf ./lib && yarn tsc --build tsconfig.lib.json",
42
42
  "version:beta": "tsx scripts/bump-version.ts prerelease",
@@ -49,27 +49,26 @@
49
49
  "prepublish": "yarn tsx ../../scripts/prepublish.js"
50
50
  },
51
51
  "dependencies": {
52
- "@trezor/blockchain-link": "^2.1.8",
53
- "@trezor/connect-common": "0.0.12",
54
- "@trezor/transport": "^1.1.8",
55
- "@trezor/utils": "^9.0.6",
56
- "@trezor/utxo-lib": "^1.0.4",
52
+ "@trezor/blockchain-link": "2.1.11",
53
+ "@trezor/connect-analytics": "1.0.0",
54
+ "@trezor/connect-common": "0.0.14",
55
+ "@trezor/transport": "1.1.10",
56
+ "@trezor/utils": "9.0.7",
57
+ "@trezor/utxo-lib": "1.0.5",
57
58
  "bignumber.js": "^9.1.1",
58
59
  "blakejs": "^1.2.1",
59
- "bowser": "^2.11.0",
60
60
  "cross-fetch": "^3.1.5",
61
61
  "events": "^3.3.0",
62
- "parse-uri": "1.0.7",
63
62
  "randombytes": "2.1.0",
64
63
  "tslib": "2.5.0"
65
64
  },
66
65
  "devDependencies": {
67
- "@trezor/connect-analytics": "1.0.0",
68
66
  "@trezor/trezor-user-env-link": "1.0.0",
69
67
  "@types/karma": "^6.3.3",
70
68
  "@types/parse-uri": "^1.0.0",
71
69
  "@types/randombytes": "^2.0.0",
72
- "jest": "^26.6.3",
70
+ "jest": "^29.5.0",
71
+ "jest-environment-jsdom": "^29.5.0",
73
72
  "karma": "^6.4.1",
74
73
  "karma-babel-preprocessor": "^8.0.2",
75
74
  "karma-chrome-launcher": "^3.1.1",
@@ -77,10 +76,10 @@
77
76
  "karma-jasmine-async": "^0.0.1",
78
77
  "karma-sourcemap-loader": "^0.4.0",
79
78
  "karma-webpack": "^5.0.0",
80
- "rimraf": "^4.1.2",
79
+ "rimraf": "^4.4.1",
81
80
  "ts-loader": "^9.4.2",
82
81
  "ts-node": "^10.9.1",
83
- "tsx": "^3.12.3",
82
+ "tsx": "^3.12.6",
84
83
  "typescript": "4.9.5"
85
84
  }
86
85
  }
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import EventEmitter from 'events';
3
- declare class AbortSignal {
4
- eventEmitter: EventEmitter;
5
- aborted: boolean;
6
- constructor();
7
- toString(): string;
8
- removeEventListener(name: string, handler: any): void;
9
- addEventListener(name: string, handler: any): void;
10
- dispatchEvent(type: string): void;
11
- }
12
- declare class AbortControllerFallback {
13
- signal: AbortSignal;
14
- constructor();
15
- abort(): void;
16
- toString(): string;
17
- }
18
- export type Controller = AbortController | AbortControllerFallback;
19
- export declare const getAbortController: () => AbortControllerFallback | AbortController;
20
- export {};
21
- //# sourceMappingURL=AbortController.d.ts.map
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAbortController = void 0;
4
- const tslib_1 = require("tslib");
5
- const events_1 = tslib_1.__importDefault(require("events"));
6
- class AbortSignal {
7
- constructor() {
8
- this.aborted = false;
9
- this.eventEmitter = new events_1.default();
10
- }
11
- toString() {
12
- return '[object AbortSignal]';
13
- }
14
- removeEventListener(name, handler) {
15
- this.eventEmitter.removeListener(name, handler);
16
- }
17
- addEventListener(name, handler) {
18
- this.eventEmitter.on(name, handler);
19
- }
20
- dispatchEvent(type) {
21
- this.eventEmitter.emit(type, { type, target: this });
22
- }
23
- }
24
- class AbortControllerFallback {
25
- constructor() {
26
- this.signal = new AbortSignal();
27
- }
28
- abort() {
29
- if (this.signal.aborted)
30
- return;
31
- this.signal.dispatchEvent('abort');
32
- this.signal.aborted = true;
33
- }
34
- toString() {
35
- return '[object AbortController]';
36
- }
37
- }
38
- const getAbortController = () => typeof AbortController !== 'undefined' ? new AbortController() : new AbortControllerFallback();
39
- exports.getAbortController = getAbortController;
40
- //# sourceMappingURL=AbortController.js.map
@@ -1,21 +0,0 @@
1
- export type BrowserState = {
2
- name: string;
3
- osname: string;
4
- supported: boolean;
5
- outdated: boolean;
6
- mobile: boolean;
7
- };
8
- type SupportedBrowser = {
9
- version: number;
10
- download: string;
11
- update: string;
12
- };
13
- export declare const getBrowserState: (supportedBrowsers: {
14
- [key: string]: SupportedBrowser;
15
- }) => BrowserState;
16
- export declare const getOS: () => string;
17
- export declare const getSuggestedPlatform: () => string | undefined;
18
- export declare const suggestBridgeInstaller: () => import("..").BridgeInfo;
19
- export declare const suggestUdevInstaller: () => import("..").UdevInfo;
20
- export {};
21
- //# sourceMappingURL=browserUtils.d.ts.map
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.suggestUdevInstaller = exports.suggestBridgeInstaller = exports.getSuggestedPlatform = exports.getOS = exports.getBrowserState = void 0;
4
- const tslib_1 = require("tslib");
5
- const bowser_1 = tslib_1.__importDefault(require("bowser"));
6
- const transportInfo_1 = require("../data/transportInfo");
7
- const udevInfo_1 = require("../data/udevInfo");
8
- const DEFAULT_STATE = {
9
- name: 'unknown',
10
- osname: 'unknown',
11
- supported: false,
12
- outdated: false,
13
- mobile: false,
14
- };
15
- const getBrowserState = (supportedBrowsers) => {
16
- if (typeof window === 'undefined' || !navigator || !navigator.userAgent)
17
- return DEFAULT_STATE;
18
- const { browser, os, platform } = bowser_1.default.parse(navigator.userAgent);
19
- const mobile = platform.type === 'mobile';
20
- let supported = browser.name ? supportedBrowsers[browser.name.toLowerCase()] : null;
21
- let outdated = false;
22
- if (mobile && typeof navigator.usb === 'undefined') {
23
- supported = null;
24
- }
25
- if (supported) {
26
- outdated = supported.version > parseInt(browser.version, 10);
27
- if (outdated) {
28
- supported = null;
29
- }
30
- }
31
- return {
32
- name: `${browser.name}: ${browser.version}; ${os.name}: ${os.version};`,
33
- osname: os.name,
34
- mobile,
35
- supported: !!supported,
36
- outdated,
37
- };
38
- };
39
- exports.getBrowserState = getBrowserState;
40
- const getOS = () => {
41
- if (typeof window === 'undefined' || !navigator || !navigator.userAgent)
42
- return 'unknown';
43
- const { os } = bowser_1.default.parse(navigator.userAgent);
44
- return os.name ? os.name.toLowerCase() : 'unknown';
45
- };
46
- exports.getOS = getOS;
47
- const getSuggestedPlatform = () => {
48
- if (typeof window === 'undefined' || !navigator || !navigator.userAgent)
49
- return;
50
- const agent = navigator.userAgent;
51
- const { os } = bowser_1.default.parse(agent);
52
- const name = os.name ? os.name.toLowerCase() : null;
53
- switch (name) {
54
- case 'linux': {
55
- const isRpm = agent.match(/CentOS|Fedora|Mandriva|Mageia|Red Hat|Scientific|SUSE/)
56
- ? 'rpm'
57
- : 'deb';
58
- const is64x = agent.match(/Linux i[3456]86/) ? '32' : '64';
59
- return `${isRpm}${is64x}`;
60
- }
61
- case 'macos':
62
- return 'mac';
63
- case 'windows': {
64
- const arch = agent.match(/(Win64|WOW64)/) ? '64' : '32';
65
- return `win${arch}`;
66
- }
67
- default:
68
- break;
69
- }
70
- };
71
- exports.getSuggestedPlatform = getSuggestedPlatform;
72
- const suggestBridgeInstaller = () => {
73
- const info = (0, transportInfo_1.getBridgeInfo)();
74
- if (!info.packages.find(p => p.preferred)) {
75
- const platform = (0, exports.getSuggestedPlatform)();
76
- if (platform) {
77
- info.packages = info.packages.map(p => ({
78
- ...p,
79
- preferred: p.platform.indexOf(platform) >= 0,
80
- }));
81
- }
82
- }
83
- return info;
84
- };
85
- exports.suggestBridgeInstaller = suggestBridgeInstaller;
86
- const suggestUdevInstaller = () => {
87
- const info = (0, udevInfo_1.getUdevInfo)();
88
- if (!info.packages.find(p => p.preferred)) {
89
- const platform = (0, exports.getSuggestedPlatform)();
90
- if (platform) {
91
- info.packages = info.packages.map(p => ({
92
- ...p,
93
- preferred: p.platform.indexOf(platform) >= 0,
94
- }));
95
- }
96
- }
97
- return info;
98
- };
99
- exports.suggestUdevInstaller = suggestUdevInstaller;
100
- //# sourceMappingURL=browserUtils.js.map
@@ -1,2 +0,0 @@
1
- export declare const sendMessage: (message: any, origin: string) => void;
2
- //# sourceMappingURL=windowsUtils.d.ts.map
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendMessage = void 0;
4
- const sendMessage = (message, origin) => window.parent.postMessage(message, origin);
5
- exports.sendMessage = sendMessage;
6
- //# sourceMappingURL=windowsUtils.js.map