@symbiote-native/standard-web-crypto 0.2.0 → 1.0.0

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/README.md CHANGED
@@ -3,14 +3,15 @@
3
3
  A wrapper package for [SymbioteNative](../../README.md) that makes
4
4
  [`expo-standard-web-crypto`](https://github.com/expo/expo/tree/main/packages/expo-standard-web-crypto)
5
5
  — a partial W3C [Web Crypto API](https://www.w3.org/TR/WebCryptoAPI/) polyfill exposing
6
- `crypto.getRandomValues` — usable from **every** adapter, React, Vue, and Angular, not just React.
6
+ `crypto.getRandomValues` — usable from **every** adapter, React, Vue, Svelte, Solid, and Angular,
7
+ not just React.
7
8
  Unlike this repo's other Expo ports, this package needs **no native module of its own** — upstream
8
9
  is a ~15-line pure-JS shim that delegates straight to `expo-crypto`'s own `getRandomValues`; this
9
10
  port delegates to [`@symbiote-native/crypto`](../crypto)'s `getRandomValues` instead, since this
10
11
  repo already ships that native random source as a sibling package. Like `@symbiote-native/crypto`,
11
12
  every export here is a plain function/object with no per-instance state or event stream, so there
12
- is no hook/composable/service to wrap — the React, Vue, and Angular entry points are plain
13
- re-exports of the same `core`.
13
+ is no hook/composable/service to wrap — the React, Vue, Svelte, Solid, and Angular entry points are
14
+ plain re-exports of the same `core`.
14
15
 
15
16
  ## Install
16
17
 
@@ -28,20 +29,24 @@ No further native wiring is needed for this package itself — it has no native
28
29
  ## Shape
29
30
 
30
31
  ```
31
- src/core/ web-crypto.ts — the Crypto class + webCrypto singleton (default export) and
32
- polyfillWebCrypto(), delegating to @symbiote-native/crypto's getRandomValues.
33
- src/react/ @symbiote-native/standard-web-crypto/react — export * from '../core'
34
- src/vue/ @symbiote-native/standard-web-crypto/vue — export * from '../core'
32
+ src/core/ web-crypto.ts — the Crypto class + webCrypto singleton (default export, also
33
+ re-exported as the named `webCrypto`) and polyfillWebCrypto(), delegating to
34
+ @symbiote-native/crypto's getRandomValues.
35
35
  src/angular/ @symbiote-native/standard-web-crypto/angular — export * from '../core'
36
36
  ```
37
37
 
38
- No per-adapter lifecycle wrapper exists because there's nothing to subscribe to or clean up —
39
- each adapter entry is a single-file re-export.
38
+ `./react`, `./vue`, `./svelte`, and `./solid` are `exports`-map aliases straight onto `src/core/` —
39
+ no physical per-framework file, since there's nothing to subscribe to or clean up. (The `webCrypto`
40
+ named re-export used to live only in those three per-framework barrels; it now lives once in
41
+ `src/core/index.ts` instead.) `./angular` stays a physical file/subpath since Angular ships
42
+ through a separate `ngc`/AOT build (`build-ngc/`).
40
43
 
41
44
  ## Use it
42
45
 
43
46
  ```ts
44
- import webCrypto, { polyfillWebCrypto } from '@symbiote-native/standard-web-crypto';
47
+ import webCrypto, {
48
+ polyfillWebCrypto,
49
+ } from '@symbiote-native/standard-web-crypto';
45
50
 
46
51
  // Reach the polyfill (or a real globalThis.crypto, if one already exists) directly:
47
52
  const bytes = new Uint8Array(16);
@@ -53,12 +58,24 @@ polyfillWebCrypto();
53
58
  crypto.getRandomValues(bytes);
54
59
  ```
55
60
 
56
- The React/Vue/Angular entry points re-export the identical surface:
61
+ The React/Vue/Svelte/Solid/Angular entry points re-export the identical surface:
57
62
 
58
63
  ```ts
59
- import webCrypto, { polyfillWebCrypto } from '@symbiote-native/standard-web-crypto/react';
60
- import webCrypto, { polyfillWebCrypto } from '@symbiote-native/standard-web-crypto/vue';
61
- import webCrypto, { polyfillWebCrypto } from '@symbiote-native/standard-web-crypto/angular';
64
+ import webCrypto, {
65
+ polyfillWebCrypto,
66
+ } from '@symbiote-native/standard-web-crypto/react';
67
+ import webCrypto, {
68
+ polyfillWebCrypto,
69
+ } from '@symbiote-native/standard-web-crypto/vue';
70
+ import webCrypto, {
71
+ polyfillWebCrypto,
72
+ } from '@symbiote-native/standard-web-crypto/svelte';
73
+ import webCrypto, {
74
+ polyfillWebCrypto,
75
+ } from '@symbiote-native/standard-web-crypto/solid';
76
+ import webCrypto, {
77
+ polyfillWebCrypto,
78
+ } from '@symbiote-native/standard-web-crypto/angular';
62
79
  ```
63
80
 
64
81
  ## API
@@ -77,7 +94,7 @@ Plus the `IWebCrypto` type describing the shape above.
77
94
  ## Notes
78
95
 
79
96
  - **`webCrypto` is resolved once, at module-load time**: if `globalThis.crypto` already exists
80
- (a real Web Crypto implementation), `webCrypto` *is* that object; otherwise it's this package's
97
+ (a real Web Crypto implementation), `webCrypto` _is_ that object; otherwise it's this package's
81
98
  own `Crypto` class instance backed by `@symbiote-native/crypto`. React Native has no reliable
82
99
  `window` global, so this port checks/defines `globalThis.crypto` rather than upstream's `window`.
83
100
  - **`getRandomValues` only accepts the integer TypedArrays `@symbiote-native/crypto` can hand to
@@ -1,2 +1,2 @@
1
- export { default, polyfillWebCrypto } from './web-crypto';
1
+ export { default, default as webCrypto, polyfillWebCrypto } from './web-crypto';
2
2
  export type { IWebCrypto } from './web-crypto';
@@ -1 +1 @@
1
- export { default, polyfillWebCrypto } from './web-crypto.js';
1
+ export { default, default as webCrypto, polyfillWebCrypto } from './web-crypto.js';
@@ -30,7 +30,7 @@ function isWebCrypto(value) {
30
30
  if (typeof value !== 'object' || value === null) {
31
31
  return false;
32
32
  }
33
- return 'getRandomValues' in value && typeof value.getRandomValues === 'function';
33
+ return ('getRandomValues' in value && typeof value.getRandomValues === 'function');
34
34
  }
35
35
  // No ambient `declare global { var crypto }` here on purpose — it would collide with lib.dom.d.ts's
36
36
  // own `crypto` global the moment any consumer's tsconfig pulls in the DOM lib (as this package's
@@ -1,2 +1,2 @@
1
- export { default, polyfillWebCrypto } from './web-crypto';
1
+ export { default, default as webCrypto, polyfillWebCrypto } from './web-crypto';
2
2
  export type { IWebCrypto } from './web-crypto';
@@ -1,2 +1,2 @@
1
- export { default, polyfillWebCrypto } from './web-crypto';
1
+ export { default, default as webCrypto, polyfillWebCrypto } from './web-crypto';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -30,7 +30,7 @@ function isWebCrypto(value) {
30
30
  if (typeof value !== 'object' || value === null) {
31
31
  return false;
32
32
  }
33
- return 'getRandomValues' in value && typeof value.getRandomValues === 'function';
33
+ return ('getRandomValues' in value && typeof value.getRandomValues === 'function');
34
34
  }
35
35
  // No ambient `declare global { var crypto }` here on purpose — it would collide with lib.dom.d.ts's
36
36
  // own `crypto` global the moment any consumer's tsconfig pulls in the DOM lib (as this package's
@@ -1 +1 @@
1
- {"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../src/core/web-crypto.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,+FAA+F;AAC/F,mGAAmG;AACnG,+FAA+F;AAC/F,kGAAkG;AAClG,4FAA4F;AAC5F,iBAAiB;AACjB,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOnF,gGAAgG;AAChG,6FAA6F;AAC7F,6FAA6F;AAC7F,+EAA+E;AAC/E,SAAS,qBAAqB,CAAC,KAAsB;IACnD,OAAO,CACL,KAAK,YAAY,SAAS;QAC1B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,WAAW;QAC5B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,WAAW,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,MAAM;IACV,eAAe,CAAiC,MAAc;QAC5D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,CAAC;AACnF,CAAC;AAED,oGAAoG;AACpG,iGAAiG;AACjG,gGAAgG;AAChG,4EAA4E;AAC5E,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,SAAS,GAAe,gBAAgB,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC;AAEjE,eAAe,SAAS,CAAC;AAEzB,MAAM,UAAU,iBAAiB;IAC/B,IAAI,gBAAgB,EAAE,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE;YAC1C,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../src/core/web-crypto.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,+FAA+F;AAC/F,mGAAmG;AACnG,+FAA+F;AAC/F,kGAAkG;AAClG,4FAA4F;AAC5F,iBAAiB;AACjB,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOnF,gGAAgG;AAChG,6FAA6F;AAC7F,6FAA6F;AAC7F,+EAA+E;AAC/E,SAAS,qBAAqB,CAAC,KAAsB;IACnD,OAAO,CACL,KAAK,YAAY,SAAS;QAC1B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,WAAW;QAC5B,KAAK,YAAY,UAAU;QAC3B,KAAK,YAAY,WAAW,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,MAAM;IACV,eAAe,CAAiC,MAAc;QAC5D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,iBAAiB,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,CAC1E,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,iGAAiG;AACjG,gGAAgG;AAChG,4EAA4E;AAC5E,SAAS,gBAAgB;IACvB,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,SAAS,GAAe,gBAAgB,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC;AAEjE,eAAe,SAAS,CAAC;AAEzB,MAAM,UAAU,iBAAiB;IAC/B,IAAI,gBAAgB,EAAE,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE;YAC1C,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,20 @@
1
1
  {
2
2
  "name": "@symbiote-native/standard-web-crypto",
3
- "version": "0.2.0",
3
+ "version": "1.0.0",
4
4
  "description": "expo-standard-web-crypto ported for SymbioteNative — a Web Crypto API getRandomValues polyfill built on @symbiote-native/crypto's native random source.",
5
5
  "license": "MIT",
6
+ "keywords": [
7
+ "react-native",
8
+ "symbiote-native",
9
+ "react",
10
+ "vue",
11
+ "svelte",
12
+ "solid",
13
+ "angular",
14
+ "web-crypto",
15
+ "polyfill",
16
+ "getrandomvalues"
17
+ ],
6
18
  "repository": {
7
19
  "type": "git",
8
20
  "url": "git+https://github.com/OneEyed1366/symbiote-native.git",
@@ -23,16 +35,20 @@
23
35
  "default": "./build/core/index.js"
24
36
  },
25
37
  "./vue": {
26
- "types": "./build/vue/index.d.ts",
27
- "default": "./build/vue/index.js"
38
+ "types": "./build/core/index.d.ts",
39
+ "default": "./build/core/index.js"
28
40
  },
29
41
  "./react": {
30
- "types": "./build/react/index.d.ts",
31
- "default": "./build/react/index.js"
42
+ "types": "./build/core/index.d.ts",
43
+ "default": "./build/core/index.js"
32
44
  },
33
45
  "./svelte": {
34
- "types": "./build/svelte/index.d.ts",
35
- "default": "./build/svelte/index.js"
46
+ "types": "./build/core/index.d.ts",
47
+ "default": "./build/core/index.js"
48
+ },
49
+ "./solid": {
50
+ "types": "./build/core/index.d.ts",
51
+ "default": "./build/core/index.js"
36
52
  },
37
53
  "./angular": {
38
54
  "types": "./build-ngc/angular/index.d.ts",
@@ -52,20 +68,22 @@
52
68
  "access": "public"
53
69
  },
54
70
  "dependencies": {
55
- "@symbiote-native/crypto": "0.2.0"
71
+ "@symbiote-native/crypto": "1.0.0"
56
72
  },
57
73
  "peerDependencies": {
58
- "@symbiote-native/angular": ">=0.6.2",
59
- "@symbiote-native/engine": ">=0.1.7",
60
- "@symbiote-native/react": ">=0.2.8",
61
- "@symbiote-native/svelte": ">=0.1.0",
62
- "@symbiote-native/vue": ">=0.3.8",
63
74
  "@angular/core": ">=20",
64
75
  "@vue/runtime-core": "^3.5.13",
65
76
  "react": ">=19.0.0",
66
77
  "react-native": ">=0.86",
78
+ "solid-js": ">=1.9.0",
67
79
  "svelte": ">=5.56.0",
68
- "vue": ">=3.5.0"
80
+ "vue": ">=3.5.0",
81
+ "@symbiote-native/angular": "^1.0.0",
82
+ "@symbiote-native/engine": "^0.4.0",
83
+ "@symbiote-native/react": "^1.0.0",
84
+ "@symbiote-native/solid": "^1.0.0",
85
+ "@symbiote-native/svelte": "^1.0.0",
86
+ "@symbiote-native/vue": "^1.0.0"
69
87
  },
70
88
  "peerDependenciesMeta": {
71
89
  "@symbiote-native/angular": {
@@ -74,6 +92,9 @@
74
92
  "@symbiote-native/react": {
75
93
  "optional": true
76
94
  },
95
+ "@symbiote-native/solid": {
96
+ "optional": true
97
+ },
77
98
  "@symbiote-native/svelte": {
78
99
  "optional": true
79
100
  },
@@ -89,6 +110,9 @@
89
110
  "react": {
90
111
  "optional": true
91
112
  },
113
+ "solid-js": {
114
+ "optional": true
115
+ },
92
116
  "svelte": {
93
117
  "optional": true
94
118
  },
@@ -104,14 +128,16 @@
104
128
  "@types/react": "^19.2.0",
105
129
  "@vue/runtime-core": "^3.5.13",
106
130
  "react": "19.2.3",
131
+ "solid-js": "^1.9.14",
107
132
  "svelte": "^5.56.0",
108
133
  "typescript": "~6.0.0",
109
- "@symbiote-native/angular": "0.7.0",
110
- "@symbiote-native/engine": "0.2.0",
111
- "@symbiote-native/react": "0.3.0",
112
- "@symbiote-native/svelte": "0.2.0",
113
- "@symbiote-native/test-utils": "0.1.6",
114
- "@symbiote-native/vue": "0.4.0"
134
+ "@symbiote-native/angular": "1.0.0",
135
+ "@symbiote-native/engine": "0.4.0",
136
+ "@symbiote-native/react": "1.0.0",
137
+ "@symbiote-native/solid": "1.0.0",
138
+ "@symbiote-native/svelte": "1.0.0",
139
+ "@symbiote-native/test-utils": "0.3.0",
140
+ "@symbiote-native/vue": "1.0.0"
115
141
  },
116
142
  "scripts": {
117
143
  "typecheck": "tsc --build",
package/src/core/index.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { default, polyfillWebCrypto } from './web-crypto';
1
+ export { default, default as webCrypto, polyfillWebCrypto } from './web-crypto';
2
2
  export type { IWebCrypto } from './web-crypto';
@@ -30,7 +30,9 @@ function isSupportedTypedArray(value: ArrayBufferView): value is ITypedArray {
30
30
  class Crypto implements IWebCrypto {
31
31
  getRandomValues<TArray extends ArrayBufferView>(values: TArray): TArray {
32
32
  if (!isSupportedTypedArray(values)) {
33
- throw new TypeError('The provided ArrayBuffer view is not a supported integer-typed array');
33
+ throw new TypeError(
34
+ 'The provided ArrayBuffer view is not a supported integer-typed array',
35
+ );
34
36
  }
35
37
  return getNativeRandomValues(values);
36
38
  }
@@ -40,7 +42,9 @@ function isWebCrypto(value: unknown): value is IWebCrypto {
40
42
  if (typeof value !== 'object' || value === null) {
41
43
  return false;
42
44
  }
43
- return 'getRandomValues' in value && typeof value.getRandomValues === 'function';
45
+ return (
46
+ 'getRandomValues' in value && typeof value.getRandomValues === 'function'
47
+ );
44
48
  }
45
49
 
46
50
  // No ambient `declare global { var crypto }` here on purpose — it would collide with lib.dom.d.ts's
@@ -1,2 +0,0 @@
1
- export * from '../core';
2
- export { default as webCrypto } from '../core';
@@ -1,7 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/react: the React entry over the framework-agnostic core.
2
- // The polyfill has no per-instance state or event stream — nothing for a hook to wrap — so this
3
- // is a plain re-export, mirroring @symbiote-native/device's and @symbiote-native/crypto's React
4
- // entries. `export *` never forwards a default export (ES module semantics), so `webCrypto` needs
5
- // its own explicit named re-export alongside it.
6
- export * from '../core/index.js';
7
- export { default as webCrypto } from '../core/index.js';
@@ -1,2 +0,0 @@
1
- export * from '../core';
2
- export { default as webCrypto } from '../core';
@@ -1,8 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/svelte: the Svelte entry over the framework-agnostic
2
- // core. The polyfill has no per-instance state or event stream — nothing for a rune to wrap —
3
- // so this is a plain re-export. Svelte's lifecycle bucket is `runes/` (adapters/svelte/src/runes
4
- // — never React's `hooks` or Vue's `composables`), and this package has none to fill.
5
- // `export *` never forwards a default export (ES module semantics), so `webCrypto` needs its own
6
- // explicit named re-export alongside it.
7
- export * from '../core/index.js';
8
- export { default as webCrypto } from '../core/index.js';
@@ -1,2 +0,0 @@
1
- export * from '../core';
2
- export { default as webCrypto } from '../core';
@@ -1,6 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/vue: the Vue entry over the framework-agnostic core. Same
2
- // reasoning as the React entry — no per-instance state or event stream to wire onto Vue's
3
- // reactivity, so this is a plain re-export. `export *` never forwards a default export (ES module
4
- // semantics), so `webCrypto` needs its own explicit named re-export alongside it.
5
- export * from '../core/index.js';
6
- export { default as webCrypto } from '../core/index.js';
@@ -1,7 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/react: the React entry over the framework-agnostic core.
2
- // The polyfill has no per-instance state or event stream — nothing for a hook to wrap — so this
3
- // is a plain re-export, mirroring @symbiote-native/device's and @symbiote-native/crypto's React
4
- // entries. `export *` never forwards a default export (ES module semantics), so `webCrypto` needs
5
- // its own explicit named re-export alongside it.
6
- export * from '../core';
7
- export { default as webCrypto } from '../core';
@@ -1,8 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/svelte: the Svelte entry over the framework-agnostic
2
- // core. The polyfill has no per-instance state or event stream — nothing for a rune to wrap —
3
- // so this is a plain re-export. Svelte's lifecycle bucket is `runes/` (adapters/svelte/src/runes
4
- // — never React's `hooks` or Vue's `composables`), and this package has none to fill.
5
- // `export *` never forwards a default export (ES module semantics), so `webCrypto` needs its own
6
- // explicit named re-export alongside it.
7
- export * from '../core';
8
- export { default as webCrypto } from '../core';
package/src/vue/index.ts DELETED
@@ -1,6 +0,0 @@
1
- // @symbiote-native/standard-web-crypto/vue: the Vue entry over the framework-agnostic core. Same
2
- // reasoning as the React entry — no per-instance state or event stream to wire onto Vue's
3
- // reactivity, so this is a plain re-export. `export *` never forwards a default export (ES module
4
- // semantics), so `webCrypto` needs its own explicit named re-export alongside it.
5
- export * from '../core';
6
- export { default as webCrypto } from '../core';