@fgv/ts-web-extras 5.0.2 → 5.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/.rush/temp/81e0881271ff236956b2f52e8ca99da6574c6e1e.tar.log +223 -0
- package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +35 -25
- package/.rush/temp/operation/build/all.log +35 -25
- package/.rush/temp/operation/build/log-chunks.jsonl +35 -25
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/shrinkwrap-deps.json +175 -163
- package/config/jest.config.json +4 -1
- package/config/typedoc.json +6 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/packlets/crypto-utils/browserCryptoProvider.js +254 -0
- package/dist/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
- package/dist/packlets/crypto-utils/browserHashProvider.js.map +1 -0
- package/dist/packlets/{crypto → crypto-utils}/index.js +1 -0
- package/dist/packlets/crypto-utils/index.js.map +1 -0
- package/dist/packlets/file-api-types/index.js +27 -3
- package/dist/packlets/file-api-types/index.js.map +1 -1
- package/dist/packlets/file-tree/directoryHandleStore.js +124 -0
- package/dist/packlets/file-tree/directoryHandleStore.js.map +1 -0
- package/dist/packlets/file-tree/fileApiTreeAccessors.js +76 -0
- package/dist/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
- package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js +345 -0
- package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
- package/dist/packlets/file-tree/index.js +3 -0
- package/dist/packlets/file-tree/index.js.map +1 -1
- package/dist/packlets/file-tree/localStorageTreeAccessors.js +308 -0
- package/dist/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
- package/dist/test/mocks/idb-keyval.js +6 -0
- package/dist/test/mocks/idb-keyval.js.map +1 -0
- package/dist/test/unit/browserHashProvider.test.js +1 -1
- package/dist/test/unit/browserHashProvider.test.js.map +1 -1
- package/dist/test/unit/directoryHandleStore.test.js +190 -0
- package/dist/test/unit/directoryHandleStore.test.js.map +1 -0
- package/dist/test/unit/fileApiTypes.test.js +30 -0
- package/dist/test/unit/fileApiTypes.test.js.map +1 -1
- package/dist/test/unit/fileSystemAccessTreeAccessors.test.js +517 -0
- package/dist/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
- package/dist/test/unit/localStorageTreeAccessors.test.js +595 -0
- package/dist/test/unit/localStorageTreeAccessors.test.js.map +1 -0
- package/dist/test/utils/fileSystemAccessMocks.js +271 -0
- package/dist/test/utils/fileSystemAccessMocks.js.map +1 -0
- package/dist/ts-web-extras.d.ts +460 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider._constructor_.md +50 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.decrypt.md +104 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.derivekey.md +88 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.encrypt.md +72 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.frombase64.md +56 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.generatekey.md +19 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.generaterandombytes.md +56 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.md +169 -0
- package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.tobase64.md +56 -0
- package/docs/{ts-web-extras.browserhashprovider.hashparts.md → ts-web-extras.cryptoutils.browserhashprovider.hashparts.md} +2 -2
- package/docs/{ts-web-extras.browserhashprovider.hashstring.md → ts-web-extras.cryptoutils.browserhashprovider.hashstring.md} +2 -2
- package/docs/{ts-web-extras.browserhashprovider.md → ts-web-extras.cryptoutils.browserhashprovider.md} +4 -4
- package/docs/ts-web-extras.cryptoutils.createbrowsercryptoprovider.md +19 -0
- package/docs/ts-web-extras.cryptoutils.md +71 -0
- package/docs/ts-web-extras.fileapitreeaccessors.createfromlocalstorage.md +74 -0
- package/docs/ts-web-extras.fileapitreeaccessors.createpersistent.md +76 -0
- package/docs/ts-web-extras.fileapitreeaccessors.md +32 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors._constructor_.md +114 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.fileismutable.md +52 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.fromdirectoryhandle.md +72 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.getdirtypaths.md +17 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.isdirty.md +17 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.md +159 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.savefilecontents.md +66 -0
- package/docs/ts-web-extras.filesystemaccesstreeaccessors.synctodisk.md +17 -0
- package/docs/ts-web-extras.ifilesystemaccesstreeparams.autosync.md +13 -0
- package/docs/ts-web-extras.ifilesystemaccesstreeparams.md +78 -0
- package/docs/ts-web-extras.ifilesystemaccesstreeparams.requirewritepermission.md +13 -0
- package/docs/ts-web-extras.ilocalstoragetreeparams.autosync.md +13 -0
- package/docs/ts-web-extras.ilocalstoragetreeparams.md +97 -0
- package/docs/ts-web-extras.ilocalstoragetreeparams.pathtokeymap.md +13 -0
- package/docs/ts-web-extras.ilocalstoragetreeparams.storage.md +13 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.fileismutable.md +56 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.fromstorage.md +56 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.getdirtypaths.md +19 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.isdirty.md +19 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.md +131 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.savefilecontents.md +72 -0
- package/docs/ts-web-extras.localstoragetreeaccessors.synctodisk.md +19 -0
- package/docs/ts-web-extras.md +50 -4
- package/etc/ts-web-extras.api.md +91 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -2
- package/lib/index.js.map +1 -1
- package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts +77 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts.map +1 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.js +259 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
- package/lib/packlets/crypto-utils/browserHashProvider.d.ts.map +1 -0
- package/lib/packlets/crypto-utils/browserHashProvider.js.map +1 -0
- package/lib/packlets/{crypto → crypto-utils}/index.d.ts +1 -0
- package/lib/packlets/crypto-utils/index.d.ts.map +1 -0
- package/lib/packlets/{crypto → crypto-utils}/index.js +1 -0
- package/lib/packlets/crypto-utils/index.js.map +1 -0
- package/lib/packlets/file-api-types/index.d.ts.map +1 -1
- package/lib/packlets/file-api-types/index.js +27 -3
- package/lib/packlets/file-api-types/index.js.map +1 -1
- package/lib/packlets/file-tree/directoryHandleStore.d.ts +59 -0
- package/lib/packlets/file-tree/directoryHandleStore.d.ts.map +1 -0
- package/lib/packlets/file-tree/directoryHandleStore.js +128 -0
- package/lib/packlets/file-tree/directoryHandleStore.js.map +1 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts +57 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts.map +1 -1
- package/lib/packlets/file-tree/fileApiTreeAccessors.js +76 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts +136 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts.map +1 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js +349 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
- package/lib/packlets/file-tree/index.d.ts +3 -0
- package/lib/packlets/file-tree/index.d.ts.map +1 -1
- package/lib/packlets/file-tree/index.js +3 -0
- package/lib/packlets/file-tree/index.js.map +1 -1
- package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts +129 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts.map +1 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.js +312 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
- package/lib/test/mocks/idb-keyval.d.ts +6 -0
- package/lib/test/mocks/idb-keyval.d.ts.map +1 -0
- package/lib/test/mocks/idb-keyval.js +9 -0
- package/lib/test/mocks/idb-keyval.js.map +1 -0
- package/lib/test/unit/browserHashProvider.test.js +21 -21
- package/lib/test/unit/browserHashProvider.test.js.map +1 -1
- package/lib/test/unit/directoryHandleStore.test.d.ts +2 -0
- package/lib/test/unit/directoryHandleStore.test.d.ts.map +1 -0
- package/lib/test/unit/directoryHandleStore.test.js +192 -0
- package/lib/test/unit/directoryHandleStore.test.js.map +1 -0
- package/lib/test/unit/fileApiTypes.test.js +30 -0
- package/lib/test/unit/fileApiTypes.test.js.map +1 -1
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts +2 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts.map +1 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.js +519 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
- package/lib/test/unit/localStorageTreeAccessors.test.d.ts +2 -0
- package/lib/test/unit/localStorageTreeAccessors.test.d.ts.map +1 -0
- package/lib/test/unit/localStorageTreeAccessors.test.js +597 -0
- package/lib/test/unit/localStorageTreeAccessors.test.js.map +1 -0
- package/lib/test/utils/fileSystemAccessMocks.d.ts +53 -0
- package/lib/test/utils/fileSystemAccessMocks.d.ts.map +1 -0
- package/lib/test/utils/fileSystemAccessMocks.js +277 -0
- package/lib/test/utils/fileSystemAccessMocks.js.map +1 -0
- package/package.json +27 -20
- package/rush-logs/ts-web-extras.build.cache.log +3 -1
- package/rush-logs/ts-web-extras.build.log +35 -25
- package/src/index.ts +2 -2
- package/src/packlets/crypto-utils/browserCryptoProvider.ts +311 -0
- package/src/packlets/{crypto → crypto-utils}/index.ts +1 -0
- package/src/packlets/file-api-types/index.ts +24 -3
- package/src/packlets/file-tree/directoryHandleStore.ts +136 -0
- package/src/packlets/file-tree/fileApiTreeAccessors.ts +90 -0
- package/src/packlets/file-tree/fileSystemAccessTreeAccessors.ts +427 -0
- package/src/packlets/file-tree/index.ts +3 -0
- package/src/packlets/file-tree/localStorageTreeAccessors.ts +377 -0
- package/src/test/mocks/idb-keyval.ts +5 -0
- package/src/test/unit/browserHashProvider.test.ts +1 -1
- package/src/test/unit/directoryHandleStore.test.ts +251 -0
- package/src/test/unit/fileApiTypes.test.ts +36 -0
- package/src/test/unit/fileSystemAccessTreeAccessors.test.ts +732 -0
- package/src/test/unit/localStorageTreeAccessors.test.ts +746 -0
- package/src/test/utils/fileSystemAccessMocks.ts +353 -0
- package/temp/build/typescript/ts_8nwakTlr.json +1 -0
- package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +1018 -0
- package/temp/coverage/{crypto → crypto-utils}/browserHashProvider.ts.html +3 -3
- package/temp/coverage/{lcov-report/crypto → crypto-utils}/index.html +21 -6
- package/temp/coverage/file-tree/directoryHandleStore.ts.html +493 -0
- package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +276 -6
- package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +1366 -0
- package/temp/coverage/file-tree/index.html +55 -10
- package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +1216 -0
- package/temp/coverage/helpers/fileTreeHelpers.ts.html +1 -1
- package/temp/coverage/helpers/index.html +1 -1
- package/temp/coverage/index.html +15 -15
- package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +1018 -0
- package/temp/coverage/lcov-report/{crypto → crypto-utils}/browserHashProvider.ts.html +3 -3
- package/temp/coverage/{crypto → lcov-report/crypto-utils}/index.html +21 -6
- package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +493 -0
- package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +276 -6
- package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +1366 -0
- package/temp/coverage/lcov-report/file-tree/index.html +55 -10
- package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +1216 -0
- package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +1 -1
- package/temp/coverage/lcov-report/helpers/index.html +1 -1
- package/temp/coverage/lcov-report/index.html +15 -15
- package/temp/coverage/lcov-report/url-utils/index.html +1 -1
- package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +1 -1
- package/temp/coverage/lcov.info +2128 -451
- package/temp/coverage/url-utils/index.html +1 -1
- package/temp/coverage/url-utils/urlParams.ts.html +1 -1
- package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
- package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
- package/temp/ts-web-extras.api.json +3236 -385
- package/temp/ts-web-extras.api.md +91 -1
- package/dist/packlets/crypto/browserHashProvider.js.map +0 -1
- package/dist/packlets/crypto/index.js.map +0 -1
- package/lib/packlets/crypto/browserHashProvider.d.ts.map +0 -1
- package/lib/packlets/crypto/browserHashProvider.js.map +0 -1
- package/lib/packlets/crypto/index.d.ts.map +0 -1
- package/lib/packlets/crypto/index.js.map +0 -1
- package/temp/build/typescript/ts_vnCx6LlY.json +0 -1
- /package/dist/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
- /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.d.ts +0 -0
- /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
- /package/src/packlets/{crypto → crypto-utils}/browserHashProvider.ts +0 -0
- /package/temp/test/jest/jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/{0e/package_0eb6535f5987849d93ea51ef33a14cf6 → 8d/package_8dcbedef69e4299f0f51fcda8f4f1c8e} +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [deriveKey](./ts-web-extras.cryptoutils.browsercryptoprovider.derivekey.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.deriveKey() method
|
|
6
|
+
|
|
7
|
+
Derives a key from a password using PBKDF2.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
deriveKey(password: string, salt: Uint8Array, iterations: number): Promise<Result<Uint8Array>>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<table><thead><tr><th>
|
|
18
|
+
|
|
19
|
+
Parameter
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</th><th>
|
|
23
|
+
|
|
24
|
+
Type
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
</th><th>
|
|
28
|
+
|
|
29
|
+
Description
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</th></tr></thead>
|
|
33
|
+
<tbody><tr><td>
|
|
34
|
+
|
|
35
|
+
password
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
string
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td><td>
|
|
44
|
+
|
|
45
|
+
Password string
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
</td></tr>
|
|
49
|
+
<tr><td>
|
|
50
|
+
|
|
51
|
+
salt
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
</td><td>
|
|
55
|
+
|
|
56
|
+
Uint8Array
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
</td><td>
|
|
60
|
+
|
|
61
|
+
Salt bytes (should be at least 16 bytes)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
</td></tr>
|
|
65
|
+
<tr><td>
|
|
66
|
+
|
|
67
|
+
iterations
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
</td><td>
|
|
71
|
+
|
|
72
|
+
number
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
</td><td>
|
|
76
|
+
|
|
77
|
+
Number of iterations (recommend 100000+)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
</td></tr>
|
|
81
|
+
</tbody></table>
|
|
82
|
+
|
|
83
|
+
**Returns:**
|
|
84
|
+
|
|
85
|
+
Promise<Result<Uint8Array>>
|
|
86
|
+
|
|
87
|
+
Success with derived 32-byte key, or Failure with error
|
|
88
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [encrypt](./ts-web-extras.cryptoutils.browsercryptoprovider.encrypt.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.encrypt() method
|
|
6
|
+
|
|
7
|
+
Encrypts plaintext using AES-256-GCM.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
encrypt(plaintext: string, key: Uint8Array): Promise<Result<IEncryptionResult>>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<table><thead><tr><th>
|
|
18
|
+
|
|
19
|
+
Parameter
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</th><th>
|
|
23
|
+
|
|
24
|
+
Type
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
</th><th>
|
|
28
|
+
|
|
29
|
+
Description
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</th></tr></thead>
|
|
33
|
+
<tbody><tr><td>
|
|
34
|
+
|
|
35
|
+
plaintext
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
string
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td><td>
|
|
44
|
+
|
|
45
|
+
UTF-8 string to encrypt
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
</td></tr>
|
|
49
|
+
<tr><td>
|
|
50
|
+
|
|
51
|
+
key
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
</td><td>
|
|
55
|
+
|
|
56
|
+
Uint8Array
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
</td><td>
|
|
60
|
+
|
|
61
|
+
32-byte encryption key
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
</td></tr>
|
|
65
|
+
</tbody></table>
|
|
66
|
+
|
|
67
|
+
**Returns:**
|
|
68
|
+
|
|
69
|
+
Promise<Result<IEncryptionResult>>
|
|
70
|
+
|
|
71
|
+
`Success` with encryption result, or `Failure` with an error.
|
|
72
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [fromBase64](./ts-web-extras.cryptoutils.browsercryptoprovider.frombase64.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.fromBase64() method
|
|
6
|
+
|
|
7
|
+
Decodes base64 string to binary data.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
fromBase64(base64: string): Result<Uint8Array>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<table><thead><tr><th>
|
|
18
|
+
|
|
19
|
+
Parameter
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</th><th>
|
|
23
|
+
|
|
24
|
+
Type
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
</th><th>
|
|
28
|
+
|
|
29
|
+
Description
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</th></tr></thead>
|
|
33
|
+
<tbody><tr><td>
|
|
34
|
+
|
|
35
|
+
base64
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
string
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td><td>
|
|
44
|
+
|
|
45
|
+
Base64-encoded string
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
</td></tr>
|
|
49
|
+
</tbody></table>
|
|
50
|
+
|
|
51
|
+
**Returns:**
|
|
52
|
+
|
|
53
|
+
Result<Uint8Array>
|
|
54
|
+
|
|
55
|
+
Success with decoded bytes, or Failure if invalid base64
|
|
56
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [generateKey](./ts-web-extras.cryptoutils.browsercryptoprovider.generatekey.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.generateKey() method
|
|
6
|
+
|
|
7
|
+
Generates a random 32-byte key suitable for AES-256.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
generateKey(): Promise<Result<Uint8Array>>;
|
|
13
|
+
```
|
|
14
|
+
**Returns:**
|
|
15
|
+
|
|
16
|
+
Promise<Result<Uint8Array>>
|
|
17
|
+
|
|
18
|
+
Success with generated key, or Failure with error
|
|
19
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [generateRandomBytes](./ts-web-extras.cryptoutils.browsercryptoprovider.generaterandombytes.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.generateRandomBytes() method
|
|
6
|
+
|
|
7
|
+
Generates cryptographically secure random bytes.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
generateRandomBytes(length: number): Result<Uint8Array>;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<table><thead><tr><th>
|
|
18
|
+
|
|
19
|
+
Parameter
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</th><th>
|
|
23
|
+
|
|
24
|
+
Type
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
</th><th>
|
|
28
|
+
|
|
29
|
+
Description
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</th></tr></thead>
|
|
33
|
+
<tbody><tr><td>
|
|
34
|
+
|
|
35
|
+
length
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
number
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td><td>
|
|
44
|
+
|
|
45
|
+
Number of bytes to generate
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
</td></tr>
|
|
49
|
+
</tbody></table>
|
|
50
|
+
|
|
51
|
+
**Returns:**
|
|
52
|
+
|
|
53
|
+
Result<Uint8Array>
|
|
54
|
+
|
|
55
|
+
Success with random bytes, or Failure with error
|
|
56
|
+
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider class
|
|
6
|
+
|
|
7
|
+
Browser implementation of `ICryptoProvider` using the Web Crypto API. Uses AES-256-GCM for authenticated encryption.
|
|
8
|
+
|
|
9
|
+
Note: This provider requires a browser environment with Web Crypto API support. In Node.js 15+, Web Crypto is available via globalThis.crypto or require('crypto').webcrypto.
|
|
10
|
+
|
|
11
|
+
**Signature:**
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
export declare class BrowserCryptoProvider implements ICryptoProvider
|
|
15
|
+
```
|
|
16
|
+
**Implements:** ICryptoProvider
|
|
17
|
+
|
|
18
|
+
## Constructors
|
|
19
|
+
|
|
20
|
+
<table><thead><tr><th>
|
|
21
|
+
|
|
22
|
+
Constructor
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
</th><th>
|
|
26
|
+
|
|
27
|
+
Modifiers
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
</th><th>
|
|
31
|
+
|
|
32
|
+
Description
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
</th></tr></thead>
|
|
36
|
+
<tbody><tr><td>
|
|
37
|
+
|
|
38
|
+
[(constructor)(cryptoApi)](./ts-web-extras.cryptoutils.browsercryptoprovider._constructor_.md)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
</td><td>
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
</td><td>
|
|
45
|
+
|
|
46
|
+
Creates a new [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md)<!-- -->.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
</td></tr>
|
|
50
|
+
</tbody></table>
|
|
51
|
+
|
|
52
|
+
## Methods
|
|
53
|
+
|
|
54
|
+
<table><thead><tr><th>
|
|
55
|
+
|
|
56
|
+
Method
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
</th><th>
|
|
60
|
+
|
|
61
|
+
Modifiers
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
</th><th>
|
|
65
|
+
|
|
66
|
+
Description
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
</th></tr></thead>
|
|
70
|
+
<tbody><tr><td>
|
|
71
|
+
|
|
72
|
+
[decrypt(encryptedData, key, iv, authTag)](./ts-web-extras.cryptoutils.browsercryptoprovider.decrypt.md)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
</td><td>
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
</td><td>
|
|
79
|
+
|
|
80
|
+
Decrypts ciphertext using AES-256-GCM.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
</td></tr>
|
|
84
|
+
<tr><td>
|
|
85
|
+
|
|
86
|
+
[deriveKey(password, salt, iterations)](./ts-web-extras.cryptoutils.browsercryptoprovider.derivekey.md)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
</td><td>
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
</td><td>
|
|
93
|
+
|
|
94
|
+
Derives a key from a password using PBKDF2.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
</td></tr>
|
|
98
|
+
<tr><td>
|
|
99
|
+
|
|
100
|
+
[encrypt(plaintext, key)](./ts-web-extras.cryptoutils.browsercryptoprovider.encrypt.md)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
</td><td>
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
</td><td>
|
|
107
|
+
|
|
108
|
+
Encrypts plaintext using AES-256-GCM.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
</td></tr>
|
|
112
|
+
<tr><td>
|
|
113
|
+
|
|
114
|
+
[fromBase64(base64)](./ts-web-extras.cryptoutils.browsercryptoprovider.frombase64.md)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
</td><td>
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
</td><td>
|
|
121
|
+
|
|
122
|
+
Decodes base64 string to binary data.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
</td></tr>
|
|
126
|
+
<tr><td>
|
|
127
|
+
|
|
128
|
+
[generateKey()](./ts-web-extras.cryptoutils.browsercryptoprovider.generatekey.md)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
</td><td>
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
</td><td>
|
|
135
|
+
|
|
136
|
+
Generates a random 32-byte key suitable for AES-256.
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
</td></tr>
|
|
140
|
+
<tr><td>
|
|
141
|
+
|
|
142
|
+
[generateRandomBytes(length)](./ts-web-extras.cryptoutils.browsercryptoprovider.generaterandombytes.md)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
</td><td>
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
</td><td>
|
|
149
|
+
|
|
150
|
+
Generates cryptographically secure random bytes.
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
</td></tr>
|
|
154
|
+
<tr><td>
|
|
155
|
+
|
|
156
|
+
[toBase64(data)](./ts-web-extras.cryptoutils.browsercryptoprovider.tobase64.md)
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
</td><td>
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
</td><td>
|
|
163
|
+
|
|
164
|
+
Encodes binary data to base64 string.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
</td></tr>
|
|
168
|
+
</tbody></table>
|
|
169
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) > [toBase64](./ts-web-extras.cryptoutils.browsercryptoprovider.tobase64.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.BrowserCryptoProvider.toBase64() method
|
|
6
|
+
|
|
7
|
+
Encodes binary data to base64 string.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
toBase64(data: Uint8Array): string;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Parameters
|
|
16
|
+
|
|
17
|
+
<table><thead><tr><th>
|
|
18
|
+
|
|
19
|
+
Parameter
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
</th><th>
|
|
23
|
+
|
|
24
|
+
Type
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
</th><th>
|
|
28
|
+
|
|
29
|
+
Description
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</th></tr></thead>
|
|
33
|
+
<tbody><tr><td>
|
|
34
|
+
|
|
35
|
+
data
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
Uint8Array
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td><td>
|
|
44
|
+
|
|
45
|
+
Binary data to encode
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
</td></tr>
|
|
49
|
+
</tbody></table>
|
|
50
|
+
|
|
51
|
+
**Returns:**
|
|
52
|
+
|
|
53
|
+
string
|
|
54
|
+
|
|
55
|
+
Base64-encoded string
|
|
56
|
+
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
2
|
|
|
3
|
-
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [BrowserHashProvider](./ts-web-extras.browserhashprovider.md) > [hashParts](./ts-web-extras.browserhashprovider.hashparts.md)
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md) > [hashParts](./ts-web-extras.cryptoutils.browserhashprovider.hashparts.md)
|
|
4
4
|
|
|
5
|
-
## BrowserHashProvider.hashParts() method
|
|
5
|
+
## CryptoUtils.BrowserHashProvider.hashParts() method
|
|
6
6
|
|
|
7
7
|
Hash multiple strings concatenated with a separator.
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
2
|
|
|
3
|
-
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [BrowserHashProvider](./ts-web-extras.browserhashprovider.md) > [hashString](./ts-web-extras.browserhashprovider.hashstring.md)
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md) > [hashString](./ts-web-extras.cryptoutils.browserhashprovider.hashstring.md)
|
|
4
4
|
|
|
5
|
-
## BrowserHashProvider.hashString() method
|
|
5
|
+
## CryptoUtils.BrowserHashProvider.hashString() method
|
|
6
6
|
|
|
7
7
|
Hash a string using the specified algorithm.
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
2
|
|
|
3
|
-
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [BrowserHashProvider](./ts-web-extras.browserhashprovider.md)
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md)
|
|
4
4
|
|
|
5
|
-
## BrowserHashProvider class
|
|
5
|
+
## CryptoUtils.BrowserHashProvider class
|
|
6
6
|
|
|
7
7
|
Browser-compatible hash provider using the Web Crypto API. Supports common hash algorithms available in browsers.
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ Description
|
|
|
32
32
|
</th></tr></thead>
|
|
33
33
|
<tbody><tr><td>
|
|
34
34
|
|
|
35
|
-
[hashParts(parts, algorithm, separator)](./ts-web-extras.browserhashprovider.hashparts.md)
|
|
35
|
+
[hashParts(parts, algorithm, separator)](./ts-web-extras.cryptoutils.browserhashprovider.hashparts.md)
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
</td><td>
|
|
@@ -48,7 +48,7 @@ Hash multiple strings concatenated with a separator.
|
|
|
48
48
|
</td></tr>
|
|
49
49
|
<tr><td>
|
|
50
50
|
|
|
51
|
-
[hashString(data, algorithm)](./ts-web-extras.browserhashprovider.hashstring.md)
|
|
51
|
+
[hashString(data, algorithm)](./ts-web-extras.cryptoutils.browserhashprovider.hashstring.md)
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
</td><td>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md) > [createBrowserCryptoProvider](./ts-web-extras.cryptoutils.createbrowsercryptoprovider.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils.createBrowserCryptoProvider() function
|
|
6
|
+
|
|
7
|
+
Creates a [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) if Web Crypto API is available.
|
|
8
|
+
|
|
9
|
+
**Signature:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
export declare function createBrowserCryptoProvider(): Result<BrowserCryptoProvider>;
|
|
13
|
+
```
|
|
14
|
+
**Returns:**
|
|
15
|
+
|
|
16
|
+
Result<[BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md)<!-- -->>
|
|
17
|
+
|
|
18
|
+
`Success` with provider, or `Failure` if not available
|
|
19
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
|
2
|
+
|
|
3
|
+
[Home](./index.md) > [@fgv/ts-web-extras](./ts-web-extras.md) > [CryptoUtils](./ts-web-extras.cryptoutils.md)
|
|
4
|
+
|
|
5
|
+
## CryptoUtils namespace
|
|
6
|
+
|
|
7
|
+
## Classes
|
|
8
|
+
|
|
9
|
+
<table><thead><tr><th>
|
|
10
|
+
|
|
11
|
+
Class
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
</th><th>
|
|
15
|
+
|
|
16
|
+
Description
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
</th></tr></thead>
|
|
20
|
+
<tbody><tr><td>
|
|
21
|
+
|
|
22
|
+
[BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
</td><td>
|
|
26
|
+
|
|
27
|
+
Browser implementation of `ICryptoProvider` using the Web Crypto API. Uses AES-256-GCM for authenticated encryption.
|
|
28
|
+
|
|
29
|
+
Note: This provider requires a browser environment with Web Crypto API support. In Node.js 15+, Web Crypto is available via globalThis.crypto or require('crypto').webcrypto.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
</td></tr>
|
|
33
|
+
<tr><td>
|
|
34
|
+
|
|
35
|
+
[BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
</td><td>
|
|
39
|
+
|
|
40
|
+
Browser-compatible hash provider using the Web Crypto API. Supports common hash algorithms available in browsers.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
</td></tr>
|
|
44
|
+
</tbody></table>
|
|
45
|
+
|
|
46
|
+
## Functions
|
|
47
|
+
|
|
48
|
+
<table><thead><tr><th>
|
|
49
|
+
|
|
50
|
+
Function
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</th><th>
|
|
54
|
+
|
|
55
|
+
Description
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
</th></tr></thead>
|
|
59
|
+
<tbody><tr><td>
|
|
60
|
+
|
|
61
|
+
[createBrowserCryptoProvider()](./ts-web-extras.cryptoutils.createbrowsercryptoprovider.md)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
</td><td>
|
|
65
|
+
|
|
66
|
+
Creates a [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) if Web Crypto API is available.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
</td></tr>
|
|
70
|
+
</tbody></table>
|
|
71
|
+
|