@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.
Files changed (208) hide show
  1. package/.rush/temp/81e0881271ff236956b2f52e8ca99da6574c6e1e.tar.log +223 -0
  2. package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +35 -25
  3. package/.rush/temp/operation/build/all.log +35 -25
  4. package/.rush/temp/operation/build/log-chunks.jsonl +35 -25
  5. package/.rush/temp/operation/build/state.json +1 -1
  6. package/.rush/temp/shrinkwrap-deps.json +175 -163
  7. package/config/jest.config.json +4 -1
  8. package/config/typedoc.json +6 -0
  9. package/dist/index.js +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/packlets/crypto-utils/browserCryptoProvider.js +254 -0
  12. package/dist/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
  13. package/dist/packlets/crypto-utils/browserHashProvider.js.map +1 -0
  14. package/dist/packlets/{crypto → crypto-utils}/index.js +1 -0
  15. package/dist/packlets/crypto-utils/index.js.map +1 -0
  16. package/dist/packlets/file-api-types/index.js +27 -3
  17. package/dist/packlets/file-api-types/index.js.map +1 -1
  18. package/dist/packlets/file-tree/directoryHandleStore.js +124 -0
  19. package/dist/packlets/file-tree/directoryHandleStore.js.map +1 -0
  20. package/dist/packlets/file-tree/fileApiTreeAccessors.js +76 -0
  21. package/dist/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  22. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js +345 -0
  23. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
  24. package/dist/packlets/file-tree/index.js +3 -0
  25. package/dist/packlets/file-tree/index.js.map +1 -1
  26. package/dist/packlets/file-tree/localStorageTreeAccessors.js +308 -0
  27. package/dist/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
  28. package/dist/test/mocks/idb-keyval.js +6 -0
  29. package/dist/test/mocks/idb-keyval.js.map +1 -0
  30. package/dist/test/unit/browserHashProvider.test.js +1 -1
  31. package/dist/test/unit/browserHashProvider.test.js.map +1 -1
  32. package/dist/test/unit/directoryHandleStore.test.js +190 -0
  33. package/dist/test/unit/directoryHandleStore.test.js.map +1 -0
  34. package/dist/test/unit/fileApiTypes.test.js +30 -0
  35. package/dist/test/unit/fileApiTypes.test.js.map +1 -1
  36. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js +517 -0
  37. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
  38. package/dist/test/unit/localStorageTreeAccessors.test.js +595 -0
  39. package/dist/test/unit/localStorageTreeAccessors.test.js.map +1 -0
  40. package/dist/test/utils/fileSystemAccessMocks.js +271 -0
  41. package/dist/test/utils/fileSystemAccessMocks.js.map +1 -0
  42. package/dist/ts-web-extras.d.ts +460 -1
  43. package/dist/tsdoc-metadata.json +1 -1
  44. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider._constructor_.md +50 -0
  45. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.decrypt.md +104 -0
  46. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.derivekey.md +88 -0
  47. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.encrypt.md +72 -0
  48. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.frombase64.md +56 -0
  49. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.generatekey.md +19 -0
  50. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.generaterandombytes.md +56 -0
  51. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.md +169 -0
  52. package/docs/ts-web-extras.cryptoutils.browsercryptoprovider.tobase64.md +56 -0
  53. package/docs/{ts-web-extras.browserhashprovider.hashparts.md → ts-web-extras.cryptoutils.browserhashprovider.hashparts.md} +2 -2
  54. package/docs/{ts-web-extras.browserhashprovider.hashstring.md → ts-web-extras.cryptoutils.browserhashprovider.hashstring.md} +2 -2
  55. package/docs/{ts-web-extras.browserhashprovider.md → ts-web-extras.cryptoutils.browserhashprovider.md} +4 -4
  56. package/docs/ts-web-extras.cryptoutils.createbrowsercryptoprovider.md +19 -0
  57. package/docs/ts-web-extras.cryptoutils.md +71 -0
  58. package/docs/ts-web-extras.fileapitreeaccessors.createfromlocalstorage.md +74 -0
  59. package/docs/ts-web-extras.fileapitreeaccessors.createpersistent.md +76 -0
  60. package/docs/ts-web-extras.fileapitreeaccessors.md +32 -0
  61. package/docs/ts-web-extras.filesystemaccesstreeaccessors._constructor_.md +114 -0
  62. package/docs/ts-web-extras.filesystemaccesstreeaccessors.fileismutable.md +52 -0
  63. package/docs/ts-web-extras.filesystemaccesstreeaccessors.fromdirectoryhandle.md +72 -0
  64. package/docs/ts-web-extras.filesystemaccesstreeaccessors.getdirtypaths.md +17 -0
  65. package/docs/ts-web-extras.filesystemaccesstreeaccessors.isdirty.md +17 -0
  66. package/docs/ts-web-extras.filesystemaccesstreeaccessors.md +159 -0
  67. package/docs/ts-web-extras.filesystemaccesstreeaccessors.savefilecontents.md +66 -0
  68. package/docs/ts-web-extras.filesystemaccesstreeaccessors.synctodisk.md +17 -0
  69. package/docs/ts-web-extras.ifilesystemaccesstreeparams.autosync.md +13 -0
  70. package/docs/ts-web-extras.ifilesystemaccesstreeparams.md +78 -0
  71. package/docs/ts-web-extras.ifilesystemaccesstreeparams.requirewritepermission.md +13 -0
  72. package/docs/ts-web-extras.ilocalstoragetreeparams.autosync.md +13 -0
  73. package/docs/ts-web-extras.ilocalstoragetreeparams.md +97 -0
  74. package/docs/ts-web-extras.ilocalstoragetreeparams.pathtokeymap.md +13 -0
  75. package/docs/ts-web-extras.ilocalstoragetreeparams.storage.md +13 -0
  76. package/docs/ts-web-extras.localstoragetreeaccessors.fileismutable.md +56 -0
  77. package/docs/ts-web-extras.localstoragetreeaccessors.fromstorage.md +56 -0
  78. package/docs/ts-web-extras.localstoragetreeaccessors.getdirtypaths.md +19 -0
  79. package/docs/ts-web-extras.localstoragetreeaccessors.isdirty.md +19 -0
  80. package/docs/ts-web-extras.localstoragetreeaccessors.md +131 -0
  81. package/docs/ts-web-extras.localstoragetreeaccessors.savefilecontents.md +72 -0
  82. package/docs/ts-web-extras.localstoragetreeaccessors.synctodisk.md +19 -0
  83. package/docs/ts-web-extras.md +50 -4
  84. package/etc/ts-web-extras.api.md +91 -1
  85. package/lib/index.d.ts +2 -1
  86. package/lib/index.d.ts.map +1 -1
  87. package/lib/index.js +25 -2
  88. package/lib/index.js.map +1 -1
  89. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts +77 -0
  90. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts.map +1 -0
  91. package/lib/packlets/crypto-utils/browserCryptoProvider.js +259 -0
  92. package/lib/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
  93. package/lib/packlets/crypto-utils/browserHashProvider.d.ts.map +1 -0
  94. package/lib/packlets/crypto-utils/browserHashProvider.js.map +1 -0
  95. package/lib/packlets/{crypto → crypto-utils}/index.d.ts +1 -0
  96. package/lib/packlets/crypto-utils/index.d.ts.map +1 -0
  97. package/lib/packlets/{crypto → crypto-utils}/index.js +1 -0
  98. package/lib/packlets/crypto-utils/index.js.map +1 -0
  99. package/lib/packlets/file-api-types/index.d.ts.map +1 -1
  100. package/lib/packlets/file-api-types/index.js +27 -3
  101. package/lib/packlets/file-api-types/index.js.map +1 -1
  102. package/lib/packlets/file-tree/directoryHandleStore.d.ts +59 -0
  103. package/lib/packlets/file-tree/directoryHandleStore.d.ts.map +1 -0
  104. package/lib/packlets/file-tree/directoryHandleStore.js +128 -0
  105. package/lib/packlets/file-tree/directoryHandleStore.js.map +1 -0
  106. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts +57 -0
  107. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts.map +1 -1
  108. package/lib/packlets/file-tree/fileApiTreeAccessors.js +76 -0
  109. package/lib/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  110. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts +136 -0
  111. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts.map +1 -0
  112. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js +349 -0
  113. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
  114. package/lib/packlets/file-tree/index.d.ts +3 -0
  115. package/lib/packlets/file-tree/index.d.ts.map +1 -1
  116. package/lib/packlets/file-tree/index.js +3 -0
  117. package/lib/packlets/file-tree/index.js.map +1 -1
  118. package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts +129 -0
  119. package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts.map +1 -0
  120. package/lib/packlets/file-tree/localStorageTreeAccessors.js +312 -0
  121. package/lib/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
  122. package/lib/test/mocks/idb-keyval.d.ts +6 -0
  123. package/lib/test/mocks/idb-keyval.d.ts.map +1 -0
  124. package/lib/test/mocks/idb-keyval.js +9 -0
  125. package/lib/test/mocks/idb-keyval.js.map +1 -0
  126. package/lib/test/unit/browserHashProvider.test.js +21 -21
  127. package/lib/test/unit/browserHashProvider.test.js.map +1 -1
  128. package/lib/test/unit/directoryHandleStore.test.d.ts +2 -0
  129. package/lib/test/unit/directoryHandleStore.test.d.ts.map +1 -0
  130. package/lib/test/unit/directoryHandleStore.test.js +192 -0
  131. package/lib/test/unit/directoryHandleStore.test.js.map +1 -0
  132. package/lib/test/unit/fileApiTypes.test.js +30 -0
  133. package/lib/test/unit/fileApiTypes.test.js.map +1 -1
  134. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts +2 -0
  135. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts.map +1 -0
  136. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js +519 -0
  137. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
  138. package/lib/test/unit/localStorageTreeAccessors.test.d.ts +2 -0
  139. package/lib/test/unit/localStorageTreeAccessors.test.d.ts.map +1 -0
  140. package/lib/test/unit/localStorageTreeAccessors.test.js +597 -0
  141. package/lib/test/unit/localStorageTreeAccessors.test.js.map +1 -0
  142. package/lib/test/utils/fileSystemAccessMocks.d.ts +53 -0
  143. package/lib/test/utils/fileSystemAccessMocks.d.ts.map +1 -0
  144. package/lib/test/utils/fileSystemAccessMocks.js +277 -0
  145. package/lib/test/utils/fileSystemAccessMocks.js.map +1 -0
  146. package/package.json +27 -20
  147. package/rush-logs/ts-web-extras.build.cache.log +3 -1
  148. package/rush-logs/ts-web-extras.build.log +35 -25
  149. package/src/index.ts +2 -2
  150. package/src/packlets/crypto-utils/browserCryptoProvider.ts +311 -0
  151. package/src/packlets/{crypto → crypto-utils}/index.ts +1 -0
  152. package/src/packlets/file-api-types/index.ts +24 -3
  153. package/src/packlets/file-tree/directoryHandleStore.ts +136 -0
  154. package/src/packlets/file-tree/fileApiTreeAccessors.ts +90 -0
  155. package/src/packlets/file-tree/fileSystemAccessTreeAccessors.ts +427 -0
  156. package/src/packlets/file-tree/index.ts +3 -0
  157. package/src/packlets/file-tree/localStorageTreeAccessors.ts +377 -0
  158. package/src/test/mocks/idb-keyval.ts +5 -0
  159. package/src/test/unit/browserHashProvider.test.ts +1 -1
  160. package/src/test/unit/directoryHandleStore.test.ts +251 -0
  161. package/src/test/unit/fileApiTypes.test.ts +36 -0
  162. package/src/test/unit/fileSystemAccessTreeAccessors.test.ts +732 -0
  163. package/src/test/unit/localStorageTreeAccessors.test.ts +746 -0
  164. package/src/test/utils/fileSystemAccessMocks.ts +353 -0
  165. package/temp/build/typescript/ts_8nwakTlr.json +1 -0
  166. package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +1018 -0
  167. package/temp/coverage/{crypto → crypto-utils}/browserHashProvider.ts.html +3 -3
  168. package/temp/coverage/{lcov-report/crypto → crypto-utils}/index.html +21 -6
  169. package/temp/coverage/file-tree/directoryHandleStore.ts.html +493 -0
  170. package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +276 -6
  171. package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +1366 -0
  172. package/temp/coverage/file-tree/index.html +55 -10
  173. package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +1216 -0
  174. package/temp/coverage/helpers/fileTreeHelpers.ts.html +1 -1
  175. package/temp/coverage/helpers/index.html +1 -1
  176. package/temp/coverage/index.html +15 -15
  177. package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +1018 -0
  178. package/temp/coverage/lcov-report/{crypto → crypto-utils}/browserHashProvider.ts.html +3 -3
  179. package/temp/coverage/{crypto → lcov-report/crypto-utils}/index.html +21 -6
  180. package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +493 -0
  181. package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +276 -6
  182. package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +1366 -0
  183. package/temp/coverage/lcov-report/file-tree/index.html +55 -10
  184. package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +1216 -0
  185. package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +1 -1
  186. package/temp/coverage/lcov-report/helpers/index.html +1 -1
  187. package/temp/coverage/lcov-report/index.html +15 -15
  188. package/temp/coverage/lcov-report/url-utils/index.html +1 -1
  189. package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +1 -1
  190. package/temp/coverage/lcov.info +2128 -451
  191. package/temp/coverage/url-utils/index.html +1 -1
  192. package/temp/coverage/url-utils/urlParams.ts.html +1 -1
  193. package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
  194. package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
  195. package/temp/ts-web-extras.api.json +3236 -385
  196. package/temp/ts-web-extras.api.md +91 -1
  197. package/dist/packlets/crypto/browserHashProvider.js.map +0 -1
  198. package/dist/packlets/crypto/index.js.map +0 -1
  199. package/lib/packlets/crypto/browserHashProvider.d.ts.map +0 -1
  200. package/lib/packlets/crypto/browserHashProvider.js.map +0 -1
  201. package/lib/packlets/crypto/index.d.ts.map +0 -1
  202. package/lib/packlets/crypto/index.js.map +0 -1
  203. package/temp/build/typescript/ts_vnCx6LlY.json +0 -1
  204. /package/dist/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
  205. /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.d.ts +0 -0
  206. /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
  207. /package/src/packlets/{crypto → crypto-utils}/browserHashProvider.ts +0 -0
  208. /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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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&lt;Result&lt;Uint8Array&gt;&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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&lt;Result&lt;IEncryptionResult&gt;&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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&lt;Uint8Array&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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&lt;Result&lt;Uint8Array&gt;&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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&lt;Uint8Array&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md) &gt; [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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [BrowserHashProvider](./ts-web-extras.browserhashprovider.md) &gt; [hashParts](./ts-web-extras.browserhashprovider.hashparts.md)
3
+ [Home](./index.md) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md) &gt; [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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [BrowserHashProvider](./ts-web-extras.browserhashprovider.md) &gt; [hashString](./ts-web-extras.browserhashprovider.hashstring.md)
3
+ [Home](./index.md) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [BrowserHashProvider](./ts-web-extras.cryptoutils.browserhashprovider.md) &gt; [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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [BrowserHashProvider](./ts-web-extras.browserhashprovider.md)
3
+ [Home](./index.md) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [CryptoUtils](./ts-web-extras.cryptoutils.md) &gt; [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&lt;[BrowserCryptoProvider](./ts-web-extras.cryptoutils.browsercryptoprovider.md)<!-- -->&gt;
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) &gt; [@fgv/ts-web-extras](./ts-web-extras.md) &gt; [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
+