@peerbit/crypto 2.4.1-3885fc9 → 2.4.1-4783d05

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,gCAA+B,CAAC;AAE/E,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,WAAyB,CAAC;AAEvE,eAAO,MAAM,QAAQ,GAAI,KAAK,UAAU,WAEvC,CAAC;AACF,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,gCAExC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,UAAU,WAE1C,CAAC;AACF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,gCAE3C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,UAAU,WAEvC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,gCAA+B,CAAC;AAY/E,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,WAA+B,CAAC;AAE7E,eAAO,MAAM,QAAQ,GAAI,KAAK,UAAU,WAEvC,CAAC;AACF,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,gCAExC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,UAAU,WAE1C,CAAC;AACF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,gCAE3C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,UAAU,WAEvC,CAAC"}
package/dist/src/utils.js CHANGED
@@ -1,20 +1,29 @@
1
1
  import sodium from "libsodium-wrappers";
2
2
  import { base58btc } from "multiformats/bases/base58";
3
3
  export const fromHexString = (hexString) => sodium.from_hex(hexString);
4
- export const toHexString = (bytes) => sodium.to_hex(bytes);
4
+ // Normalize to a "local realm" Uint8Array.
5
+ // This avoids libsodium rejecting cross-realm typed arrays (e.g. jsdom/happy-dom environments).
6
+ const asU8 = (bytes) => {
7
+ // Fast-path: in normal runtimes `bytes` is already a local Uint8Array.
8
+ // Cross-realm typed arrays (iframes/jsdom/happy-dom) fail `instanceof` checks in libsodium-wrappers.
9
+ return bytes instanceof Uint8Array
10
+ ? bytes
11
+ : new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
12
+ };
13
+ export const toHexString = (bytes) => sodium.to_hex(asU8(bytes));
5
14
  export const toBase64 = (arr) => {
6
- return sodium.to_base64(arr, sodium.base64_variants.ORIGINAL);
15
+ return sodium.to_base64(asU8(arr), sodium.base64_variants.ORIGINAL);
7
16
  };
8
17
  export const fromBase64 = (base64) => {
9
18
  return sodium.from_base64(base64, sodium.base64_variants.ORIGINAL);
10
19
  };
11
20
  export const toBase64URL = (arr) => {
12
- return sodium.to_base64(arr, sodium.base64_variants.URLSAFE);
21
+ return sodium.to_base64(asU8(arr), sodium.base64_variants.URLSAFE);
13
22
  };
14
23
  export const fromBase64URL = (base64) => {
15
24
  return sodium.from_base64(base64, sodium.base64_variants.URLSAFE);
16
25
  };
17
26
  export const toBase58 = (arr) => {
18
- return base58btc.baseEncode(arr);
27
+ return base58btc.baseEncode(asU8(arr));
19
28
  };
20
29
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAe,EAAE,EAAE;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE/E,2CAA2C;AAC3C,gGAAgG;AAChG,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAE,EAAE;IACvC,uEAAuE;IACvE,qGAAqG;IACrG,OAAO,KAAK,YAAY,UAAU;QACjC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAe,EAAE,EAAE;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/crypto",
3
- "version": "2.4.1-3885fc9",
3
+ "version": "2.4.1-4783d05",
4
4
  "description": "Crypto fn",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -62,7 +62,7 @@
62
62
  "multiformats": "^13.4.1"
63
63
  },
64
64
  "dependencies": {
65
- "@peerbit/cache": "2.2.0-3885fc9",
65
+ "@peerbit/cache": "2.2.0-4783d05",
66
66
  "@dao-xyz/borsh": "^6.0.0",
67
67
  "@stablelib/sha256": "^2.0.1",
68
68
  "@ethersproject/wallet": "^5.8.0",
package/src/utils.ts CHANGED
@@ -3,22 +3,32 @@ import { base58btc } from "multiformats/bases/base58";
3
3
 
4
4
  export const fromHexString = (hexString: string) => sodium.from_hex(hexString);
5
5
 
6
- export const toHexString = (bytes: Uint8Array) => sodium.to_hex(bytes);
6
+ // Normalize to a "local realm" Uint8Array.
7
+ // This avoids libsodium rejecting cross-realm typed arrays (e.g. jsdom/happy-dom environments).
8
+ const asU8 = (bytes: ArrayBufferView) => {
9
+ // Fast-path: in normal runtimes `bytes` is already a local Uint8Array.
10
+ // Cross-realm typed arrays (iframes/jsdom/happy-dom) fail `instanceof` checks in libsodium-wrappers.
11
+ return bytes instanceof Uint8Array
12
+ ? bytes
13
+ : new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
14
+ };
15
+
16
+ export const toHexString = (bytes: Uint8Array) => sodium.to_hex(asU8(bytes));
7
17
 
8
18
  export const toBase64 = (arr: Uint8Array) => {
9
- return sodium.to_base64(arr, sodium.base64_variants.ORIGINAL);
19
+ return sodium.to_base64(asU8(arr), sodium.base64_variants.ORIGINAL);
10
20
  };
11
21
  export const fromBase64 = (base64: string) => {
12
22
  return sodium.from_base64(base64, sodium.base64_variants.ORIGINAL);
13
23
  };
14
24
 
15
25
  export const toBase64URL = (arr: Uint8Array) => {
16
- return sodium.to_base64(arr, sodium.base64_variants.URLSAFE);
26
+ return sodium.to_base64(asU8(arr), sodium.base64_variants.URLSAFE);
17
27
  };
18
28
  export const fromBase64URL = (base64: string) => {
19
29
  return sodium.from_base64(base64, sodium.base64_variants.URLSAFE);
20
30
  };
21
31
 
22
32
  export const toBase58 = (arr: Uint8Array) => {
23
- return base58btc.baseEncode(arr);
33
+ return base58btc.baseEncode(asU8(arr));
24
34
  };