@bsv/sdk 1.8.2 → 1.8.4
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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +10 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +78 -19
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +10 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +78 -19
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +1 -0
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/compat.md +27 -15
- package/docs/reference/identity.md +16 -12
- package/docs/reference/kvstore.md +25 -7
- package/docs/reference/messages.md +8 -0
- package/docs/reference/overlay-tools.md +22 -15
- package/docs/reference/primitives.md +168 -168
- package/docs/reference/registry.md +19 -9
- package/docs/reference/script.md +32 -31
- package/docs/reference/storage.md +14 -10
- package/docs/reference/totp.md +5 -5
- package/docs/reference/transaction.md +70 -67
- package/docs/reference/wallet.md +135 -131
- package/package.json +1 -1
- package/src/overlay-tools/LookupResolver.ts +11 -1
- package/src/primitives/Random.ts +86 -17
- package/src/primitives/__tests/Random.test.ts +21 -0
|
@@ -83,7 +83,9 @@ export default class LookupResolver {
|
|
|
83
83
|
this.networkPreset = config.networkPreset ?? 'mainnet';
|
|
84
84
|
this.facilitator = config.facilitator ?? new HTTPSOverlayLookupFacilitator(undefined, this.networkPreset === 'local');
|
|
85
85
|
this.slapTrackers = config.slapTrackers ?? (this.networkPreset === 'mainnet' ? DEFAULT_SLAP_TRACKERS : DEFAULT_TESTNET_SLAP_TRACKERS);
|
|
86
|
-
|
|
86
|
+
const hostOverrides = config.hostOverrides ?? {};
|
|
87
|
+
this.assertValidOverrideServices(hostOverrides);
|
|
88
|
+
this.hostOverrides = hostOverrides;
|
|
87
89
|
this.additionalHosts = config.additionalHosts ?? {};
|
|
88
90
|
// cache tuning
|
|
89
91
|
this.hostsTtlMs = config.cache?.hostsTtlMs ?? 5 * 60 * 1000; // 5 min
|
|
@@ -266,5 +268,12 @@ export default class LookupResolver {
|
|
|
266
268
|
if (firstKey !== undefined)
|
|
267
269
|
m.delete(firstKey);
|
|
268
270
|
}
|
|
271
|
+
assertValidOverrideServices(overrides) {
|
|
272
|
+
for (const service of Object.keys(overrides)) {
|
|
273
|
+
if (!service.startsWith('ls_')) {
|
|
274
|
+
throw new Error(`Host override service names must start with "ls_": ${service}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
269
278
|
}
|
|
270
279
|
//# sourceMappingURL=LookupResolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Random number generator that works across modern JavaScript environments.
|
|
3
|
+
*
|
|
4
|
+
* This implementation uses the Web Crypto API which is available in:
|
|
5
|
+
* - Node.js 6+ via require('crypto').randomBytes()
|
|
6
|
+
* - Node.js 18+ via globalThis.crypto
|
|
7
|
+
* - Modern browsers via globalThis.crypto, self.crypto, or window.crypto
|
|
8
|
+
* - Web Workers and Service Workers via self.crypto
|
|
9
|
+
* - Deno and Bun via globalThis.crypto
|
|
10
|
+
* - React Native (requires react-native-get-random-values polyfill)
|
|
11
|
+
*
|
|
12
|
+
* @throws {Error} If no secure random number generator is available
|
|
13
|
+
*/
|
|
1
14
|
class Rand {
|
|
2
15
|
_rand; // ✅ Explicit function type
|
|
16
|
+
getRandomValues(obj, n) {
|
|
17
|
+
const arr = new Uint8Array(n);
|
|
18
|
+
obj.crypto.getRandomValues(arr);
|
|
19
|
+
return Array.from(arr);
|
|
20
|
+
}
|
|
3
21
|
constructor() {
|
|
4
22
|
const noRand = () => {
|
|
5
23
|
throw new Error('No secure random number generator is available in this environment.');
|
|
6
24
|
};
|
|
7
25
|
this._rand = noRand; // Assign the function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return [...arr];
|
|
16
|
-
};
|
|
17
|
-
} /* if (typeof window === 'object') */
|
|
18
|
-
else {
|
|
19
|
-
this._rand = noRand;
|
|
20
|
-
}
|
|
26
|
+
// Try globalThis.crypto (works in Node.js 18+, modern browsers, and Deno)
|
|
27
|
+
if (typeof globalThis !== 'undefined' && typeof globalThis.crypto?.getRandomValues === 'function') {
|
|
28
|
+
this._rand = (n) => {
|
|
29
|
+
/* eslint-disable-next-line */
|
|
30
|
+
return this.getRandomValues(globalThis, n);
|
|
31
|
+
};
|
|
32
|
+
return;
|
|
21
33
|
}
|
|
22
|
-
|
|
34
|
+
// Node.js fallback for versions < 18
|
|
35
|
+
if (typeof process !== 'undefined' && process.release?.name === 'node') {
|
|
23
36
|
try {
|
|
24
|
-
|
|
25
|
-
const crypto = require(
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
38
|
+
const crypto = require('crypto');
|
|
26
39
|
if (typeof crypto.randomBytes === 'function') {
|
|
27
|
-
this._rand = (n) =>
|
|
40
|
+
this._rand = (n) => {
|
|
41
|
+
return Array.from(crypto.randomBytes(n));
|
|
42
|
+
};
|
|
43
|
+
return;
|
|
28
44
|
}
|
|
29
45
|
}
|
|
30
|
-
catch {
|
|
31
|
-
|
|
46
|
+
catch (e) {
|
|
47
|
+
// crypto module not available, continue to other checks
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Try self.crypto (Web Workers and Service Workers)
|
|
51
|
+
if (typeof self !== 'undefined' && typeof self.crypto?.getRandomValues === 'function') {
|
|
52
|
+
this._rand = (n) => {
|
|
53
|
+
/* eslint-disable-next-line */
|
|
54
|
+
return this.getRandomValues(self, n);
|
|
55
|
+
};
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Try window.crypto (browsers)
|
|
59
|
+
if (typeof window !== 'undefined' && typeof window.crypto?.getRandomValues === 'function') {
|
|
60
|
+
this._rand = (n) => {
|
|
61
|
+
/* eslint-disable-next-line */
|
|
62
|
+
return this.getRandomValues(window, n);
|
|
63
|
+
};
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// React Native support - try to load polyfill
|
|
67
|
+
if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
|
|
68
|
+
try {
|
|
69
|
+
// Try to require the polyfill - this will populate globalThis.crypto
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
71
|
+
require('react-native-get-random-values');
|
|
72
|
+
if (typeof globalThis.crypto?.getRandomValues === 'function') {
|
|
73
|
+
this._rand = (n) => {
|
|
74
|
+
/* eslint-disable-next-line */
|
|
75
|
+
return this.getRandomValues(globalThis, n);
|
|
76
|
+
};
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
// Polyfill not available - provide helpful error
|
|
82
|
+
this._rand = () => {
|
|
83
|
+
throw new Error('React Native detected but crypto is not available. ' +
|
|
84
|
+
'Please install and import "react-native-get-random-values" at the top of your entry file:\n' +
|
|
85
|
+
'npm install react-native-get-random-values\n' +
|
|
86
|
+
'Then add: import "react-native-get-random-values" to your index.js/App.js');
|
|
87
|
+
};
|
|
88
|
+
return;
|
|
32
89
|
}
|
|
33
90
|
}
|
|
91
|
+
// No crypto available
|
|
92
|
+
this._rand = noRand;
|
|
34
93
|
}
|
|
35
94
|
generate(len) {
|
|
36
95
|
return this._rand(len);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI;IACR,KAAK,CAAyB,CAAC,2BAA2B;IAE1D;QACE,MAAM,MAAM,GAAG,GAAU,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;QACH,CAAC,CAAA;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA,CAAC,sBAAsB;QAE1C,IAAI,OAAO,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"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"}
|