@fgv/ts-web-extras 5.1.0-3 → 5.1.0-5

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 (270) hide show
  1. package/.rush/temp/{61c1d4a91d98f048b475a5bb3e6541c5d27819de.tar.log → 54f89319dd14b2acc47614d70128001f4227d01e.tar.log} +3 -3
  2. package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +18 -18
  3. package/.rush/temp/operation/build/all.log +18 -18
  4. package/.rush/temp/operation/build/log-chunks.jsonl +18 -18
  5. package/.rush/temp/operation/build/state.json +1 -1
  6. package/.rush/temp/shrinkwrap-deps.json +690 -633
  7. package/config/typedoc.json +2 -1
  8. package/dist/packlets/file-tree/httpTreeAccessors.js +72 -42
  9. package/dist/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  10. package/dist/test/unit/httpTreeAccessors.test.js +135 -0
  11. package/dist/test/unit/httpTreeAccessors.test.js.map +1 -1
  12. package/dist/ts-web-extras.d.ts +6 -0
  13. package/dist/tsdoc-metadata.json +1 -1
  14. package/docs/CryptoUtils/README.md +60 -0
  15. package/docs/CryptoUtils/classes/BrowserCryptoProvider.decrypt.md +27 -0
  16. package/docs/CryptoUtils/classes/BrowserCryptoProvider.deriveKey.md +26 -0
  17. package/docs/CryptoUtils/classes/BrowserCryptoProvider.encrypt.md +25 -0
  18. package/docs/CryptoUtils/classes/BrowserCryptoProvider.fromBase64.md +24 -0
  19. package/docs/CryptoUtils/classes/BrowserCryptoProvider.generateKey.md +17 -0
  20. package/docs/CryptoUtils/classes/BrowserCryptoProvider.generateRandomBytes.md +24 -0
  21. package/docs/CryptoUtils/classes/BrowserCryptoProvider.md +151 -0
  22. package/docs/CryptoUtils/classes/BrowserCryptoProvider.toBase64.md +24 -0
  23. package/docs/CryptoUtils/classes/BrowserHashProvider.hashParts.md +26 -0
  24. package/docs/CryptoUtils/classes/BrowserHashProvider.hashString.md +25 -0
  25. package/docs/CryptoUtils/classes/BrowserHashProvider.md +81 -0
  26. package/docs/CryptoUtils/functions/createBrowserCryptoProvider.md +12 -0
  27. package/docs/FileTreeHelpers/README.md +85 -0
  28. package/docs/FileTreeHelpers/functions/extractFileListMetadata.md +11 -0
  29. package/docs/FileTreeHelpers/functions/extractFileMetadata.md +11 -0
  30. package/docs/FileTreeHelpers/functions/fromDirectoryUpload.md +12 -0
  31. package/docs/FileTreeHelpers/functions/fromFileList.md +12 -0
  32. package/docs/FileTreeHelpers/functions/getOriginalFile.md +11 -0
  33. package/docs/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +9 -0
  34. package/docs/README.md +499 -53
  35. package/docs/classes/BrowserCryptoProvider.decrypt.md +27 -0
  36. package/docs/classes/BrowserCryptoProvider.deriveKey.md +26 -0
  37. package/docs/classes/BrowserCryptoProvider.encrypt.md +25 -0
  38. package/docs/classes/BrowserCryptoProvider.fromBase64.md +24 -0
  39. package/docs/classes/BrowserCryptoProvider.generateKey.md +17 -0
  40. package/docs/classes/BrowserCryptoProvider.generateRandomBytes.md +24 -0
  41. package/docs/classes/BrowserCryptoProvider.md +151 -0
  42. package/docs/classes/BrowserCryptoProvider.toBase64.md +24 -0
  43. package/docs/classes/BrowserHashProvider.hashParts.md +26 -0
  44. package/docs/classes/BrowserHashProvider.hashString.md +25 -0
  45. package/docs/classes/BrowserHashProvider.md +81 -0
  46. package/docs/classes/DirectoryHandleStore.getAll.md +17 -0
  47. package/docs/classes/DirectoryHandleStore.getAllLabels.md +17 -0
  48. package/docs/classes/DirectoryHandleStore.load.md +24 -0
  49. package/docs/classes/DirectoryHandleStore.md +65 -61
  50. package/docs/classes/DirectoryHandleStore.remove.md +24 -0
  51. package/docs/classes/DirectoryHandleStore.save.md +25 -0
  52. package/docs/classes/FileApiTreeAccessors.create.md +25 -0
  53. package/docs/classes/FileApiTreeAccessors.createFromHttp.md +24 -0
  54. package/docs/classes/FileApiTreeAccessors.createFromLocalStorage.md +25 -0
  55. package/docs/classes/FileApiTreeAccessors.createPersistent.md +26 -0
  56. package/docs/classes/FileApiTreeAccessors.createPersistentFromFile.md +27 -0
  57. package/docs/classes/FileApiTreeAccessors.extractFileMetadata.md +24 -0
  58. package/docs/classes/FileApiTreeAccessors.fromDirectoryUpload.md +25 -0
  59. package/docs/classes/FileApiTreeAccessors.fromFileList.md +25 -0
  60. package/docs/classes/FileApiTreeAccessors.getOriginalFile.md +27 -0
  61. package/docs/classes/FileApiTreeAccessors.md +87 -201
  62. package/docs/classes/FileSystemAccessTreeAccessors.deleteFile.md +22 -0
  63. package/docs/classes/FileSystemAccessTreeAccessors.fileIsMutable.md +22 -0
  64. package/docs/classes/FileSystemAccessTreeAccessors.fromDirectoryHandle.md +25 -0
  65. package/docs/classes/FileSystemAccessTreeAccessors.fromFileHandle.md +29 -0
  66. package/docs/classes/FileSystemAccessTreeAccessors.getDirtyPaths.md +15 -0
  67. package/docs/classes/FileSystemAccessTreeAccessors.isDirty.md +15 -0
  68. package/docs/classes/FileSystemAccessTreeAccessors.md +128 -410
  69. package/docs/classes/FileSystemAccessTreeAccessors.saveFileContents.md +23 -0
  70. package/docs/classes/FileSystemAccessTreeAccessors.syncToDisk.md +15 -0
  71. package/docs/classes/HttpTreeAccessors.deleteFile.md +22 -0
  72. package/docs/classes/HttpTreeAccessors.fileIsMutable.md +24 -0
  73. package/docs/classes/HttpTreeAccessors.fromHttp.md +24 -0
  74. package/docs/classes/HttpTreeAccessors.getDirtyPaths.md +17 -0
  75. package/docs/classes/HttpTreeAccessors.isDirty.md +17 -0
  76. package/docs/classes/HttpTreeAccessors.md +121 -368
  77. package/docs/classes/HttpTreeAccessors.saveFileContents.md +25 -0
  78. package/docs/classes/HttpTreeAccessors.syncToDisk.md +22 -0
  79. package/docs/classes/LocalStorageTreeAccessors.deleteFile.md +24 -0
  80. package/docs/classes/LocalStorageTreeAccessors.fileIsMutable.md +24 -0
  81. package/docs/classes/LocalStorageTreeAccessors.fromStorage.md +25 -0
  82. package/docs/classes/LocalStorageTreeAccessors.getDirtyPaths.md +17 -0
  83. package/docs/classes/LocalStorageTreeAccessors.isDirty.md +17 -0
  84. package/docs/classes/LocalStorageTreeAccessors.md +121 -371
  85. package/docs/classes/LocalStorageTreeAccessors.saveFileContents.md +25 -0
  86. package/docs/classes/LocalStorageTreeAccessors.syncToDisk.md +17 -0
  87. package/docs/functions/createBrowserCryptoProvider.md +12 -0
  88. package/docs/functions/exportAsJson.md +6 -17
  89. package/docs/functions/exportUsingFileSystemAPI.md +6 -21
  90. package/docs/functions/extractDirectoryPath.md +6 -16
  91. package/docs/functions/extractFileListMetadata.md +11 -0
  92. package/docs/functions/extractFileMetadata.md +11 -0
  93. package/docs/functions/fromDirectoryUpload.md +12 -0
  94. package/docs/functions/fromFileList.md +12 -0
  95. package/docs/functions/getOriginalFile.md +11 -0
  96. package/docs/functions/isDirectoryHandle.md +6 -18
  97. package/docs/functions/isFileHandle.md +6 -18
  98. package/docs/functions/isFilePath.md +6 -16
  99. package/docs/functions/parseContextFilter.md +6 -16
  100. package/docs/functions/parseQualifierDefaults.md +6 -16
  101. package/docs/functions/parseResourceTypes.md +6 -16
  102. package/docs/functions/parseUrlParameters.md +6 -10
  103. package/docs/functions/safeShowDirectoryPicker.md +6 -19
  104. package/docs/functions/safeShowOpenFilePicker.md +6 -19
  105. package/docs/functions/safeShowSaveFilePicker.md +6 -19
  106. package/docs/functions/supportsFileSystemAccess.md +6 -18
  107. package/docs/interfaces/FilePickerAcceptType.accept.md +9 -0
  108. package/docs/interfaces/FilePickerAcceptType.description.md +9 -0
  109. package/docs/interfaces/FilePickerAcceptType.md +54 -9
  110. package/docs/interfaces/FileSystemCreateWritableOptions.keepExistingData.md +9 -0
  111. package/docs/interfaces/FileSystemCreateWritableOptions.md +37 -8
  112. package/docs/interfaces/FileSystemDirectoryHandle._asyncIterator_.md +13 -0
  113. package/docs/interfaces/FileSystemDirectoryHandle.entries.md +13 -0
  114. package/docs/interfaces/FileSystemDirectoryHandle.getDirectoryHandle.md +21 -0
  115. package/docs/interfaces/FileSystemDirectoryHandle.getFileHandle.md +21 -0
  116. package/docs/interfaces/FileSystemDirectoryHandle.keys.md +13 -0
  117. package/docs/interfaces/FileSystemDirectoryHandle.kind.md +9 -0
  118. package/docs/interfaces/FileSystemDirectoryHandle.md +140 -103
  119. package/docs/interfaces/FileSystemDirectoryHandle.removeEntry.md +21 -0
  120. package/docs/interfaces/FileSystemDirectoryHandle.resolve.md +20 -0
  121. package/docs/interfaces/FileSystemDirectoryHandle.values.md +13 -0
  122. package/docs/interfaces/FileSystemFileHandle.createWritable.md +20 -0
  123. package/docs/interfaces/FileSystemFileHandle.getFile.md +13 -0
  124. package/docs/interfaces/FileSystemFileHandle.kind.md +9 -0
  125. package/docs/interfaces/FileSystemFileHandle.md +98 -58
  126. package/docs/interfaces/FileSystemGetDirectoryOptions.create.md +9 -0
  127. package/docs/interfaces/FileSystemGetDirectoryOptions.md +37 -8
  128. package/docs/interfaces/FileSystemGetFileOptions.create.md +9 -0
  129. package/docs/interfaces/FileSystemGetFileOptions.md +37 -8
  130. package/docs/interfaces/FileSystemHandle.isSameEntry.md +20 -0
  131. package/docs/interfaces/FileSystemHandle.kind.md +9 -0
  132. package/docs/interfaces/FileSystemHandle.md +88 -39
  133. package/docs/interfaces/FileSystemHandle.name.md +9 -0
  134. package/docs/interfaces/FileSystemHandle.queryPermission.md +20 -0
  135. package/docs/interfaces/FileSystemHandle.requestPermission.md +20 -0
  136. package/docs/interfaces/FileSystemHandlePermissionDescriptor.md +37 -8
  137. package/docs/interfaces/FileSystemHandlePermissionDescriptor.mode.md +9 -0
  138. package/docs/interfaces/FileSystemRemoveOptions.md +37 -8
  139. package/docs/interfaces/FileSystemRemoveOptions.recursive.md +9 -0
  140. package/docs/interfaces/FileSystemWritableFileStream.md +83 -68
  141. package/docs/interfaces/FileSystemWritableFileStream.seek.md +20 -0
  142. package/docs/interfaces/FileSystemWritableFileStream.truncate.md +20 -0
  143. package/docs/interfaces/FileSystemWritableFileStream.write.md +20 -0
  144. package/docs/interfaces/IDirectoryHandleTreeInitializer.dirHandles.md +9 -0
  145. package/docs/interfaces/IDirectoryHandleTreeInitializer.md +71 -10
  146. package/docs/interfaces/IDirectoryHandleTreeInitializer.nonRecursive.md +9 -0
  147. package/docs/interfaces/IDirectoryHandleTreeInitializer.prefix.md +9 -0
  148. package/docs/interfaces/IFileHandleTreeInitializer.fileHandles.md +9 -0
  149. package/docs/interfaces/IFileHandleTreeInitializer.md +54 -9
  150. package/docs/interfaces/IFileHandleTreeInitializer.prefix.md +9 -0
  151. package/docs/interfaces/IFileListTreeInitializer.fileList.md +9 -0
  152. package/docs/interfaces/IFileListTreeInitializer.md +37 -8
  153. package/docs/interfaces/IFileMetadata.lastModified.md +9 -0
  154. package/docs/interfaces/IFileMetadata.md +105 -12
  155. package/docs/interfaces/IFileMetadata.name.md +9 -0
  156. package/docs/interfaces/IFileMetadata.path.md +9 -0
  157. package/docs/interfaces/IFileMetadata.size.md +9 -0
  158. package/docs/interfaces/IFileMetadata.type.md +9 -0
  159. package/docs/interfaces/IFileSystemAccessTreeParams.autoSync.md +12 -0
  160. package/docs/interfaces/IFileSystemAccessTreeParams.filePath.md +13 -0
  161. package/docs/interfaces/IFileSystemAccessTreeParams.logger.md +11 -0
  162. package/docs/interfaces/IFileSystemAccessTreeParams.md +138 -20
  163. package/docs/interfaces/IFileSystemAccessTreeParams.requireWritePermission.md +13 -0
  164. package/docs/interfaces/IFsAccessApis.md +36 -31
  165. package/docs/interfaces/IFsAccessApis.showDirectoryPicker.md +20 -0
  166. package/docs/interfaces/IFsAccessApis.showOpenFilePicker.md +20 -0
  167. package/docs/interfaces/IFsAccessApis.showSaveFilePicker.md +20 -0
  168. package/docs/interfaces/IHttpTreeParams.autoSync.md +9 -0
  169. package/docs/interfaces/IHttpTreeParams.baseUrl.md +9 -0
  170. package/docs/interfaces/IHttpTreeParams.fetchImpl.md +9 -0
  171. package/docs/interfaces/IHttpTreeParams.logger.md +9 -0
  172. package/docs/interfaces/IHttpTreeParams.md +172 -22
  173. package/docs/interfaces/IHttpTreeParams.namespace.md +9 -0
  174. package/docs/interfaces/IHttpTreeParams.userId.md +9 -0
  175. package/docs/interfaces/ILocalStorageTreeParams.autoSync.md +12 -0
  176. package/docs/interfaces/ILocalStorageTreeParams.md +121 -20
  177. package/docs/interfaces/ILocalStorageTreeParams.pathToKeyMap.md +13 -0
  178. package/docs/interfaces/ILocalStorageTreeParams.storage.md +12 -0
  179. package/docs/interfaces/IUrlConfigOptions.config.md +11 -0
  180. package/docs/interfaces/IUrlConfigOptions.configStartDir.md +11 -0
  181. package/docs/interfaces/IUrlConfigOptions.contextFilter.md +11 -0
  182. package/docs/interfaces/IUrlConfigOptions.input.md +11 -0
  183. package/docs/interfaces/IUrlConfigOptions.inputStartDir.md +11 -0
  184. package/docs/interfaces/IUrlConfigOptions.interactive.md +11 -0
  185. package/docs/interfaces/IUrlConfigOptions.loadZip.md +11 -0
  186. package/docs/interfaces/IUrlConfigOptions.maxDistance.md +11 -0
  187. package/docs/interfaces/IUrlConfigOptions.md +241 -20
  188. package/docs/interfaces/IUrlConfigOptions.qualifierDefaults.md +11 -0
  189. package/docs/interfaces/IUrlConfigOptions.reduceQualifiers.md +11 -0
  190. package/docs/interfaces/IUrlConfigOptions.resourceTypes.md +11 -0
  191. package/docs/interfaces/IUrlConfigOptions.zipFile.md +11 -0
  192. package/docs/interfaces/IUrlConfigOptions.zipPath.md +11 -0
  193. package/docs/interfaces/ShowDirectoryPickerOptions.id.md +9 -0
  194. package/docs/interfaces/ShowDirectoryPickerOptions.md +71 -10
  195. package/docs/interfaces/ShowDirectoryPickerOptions.mode.md +9 -0
  196. package/docs/interfaces/ShowDirectoryPickerOptions.startIn.md +9 -0
  197. package/docs/interfaces/ShowOpenFilePickerOptions.excludeAcceptAllOption.md +9 -0
  198. package/docs/interfaces/ShowOpenFilePickerOptions.id.md +9 -0
  199. package/docs/interfaces/ShowOpenFilePickerOptions.md +105 -12
  200. package/docs/interfaces/ShowOpenFilePickerOptions.multiple.md +9 -0
  201. package/docs/interfaces/ShowOpenFilePickerOptions.startIn.md +9 -0
  202. package/docs/interfaces/ShowOpenFilePickerOptions.types.md +9 -0
  203. package/docs/interfaces/ShowSaveFilePickerOptions.excludeAcceptAllOption.md +9 -0
  204. package/docs/interfaces/ShowSaveFilePickerOptions.id.md +9 -0
  205. package/docs/interfaces/ShowSaveFilePickerOptions.md +105 -12
  206. package/docs/interfaces/ShowSaveFilePickerOptions.startIn.md +9 -0
  207. package/docs/interfaces/ShowSaveFilePickerOptions.suggestedName.md +9 -0
  208. package/docs/interfaces/ShowSaveFilePickerOptions.types.md +9 -0
  209. package/docs/type-aliases/TreeInitializer.md +7 -7
  210. package/docs/type-aliases/WellKnownDirectory.md +7 -7
  211. package/docs/type-aliases/WindowWithFsAccess.md +7 -7
  212. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_DB.md +5 -7
  213. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_STORE.md +5 -7
  214. package/docs/variables/defaultFileApiTreeInitParams.md +9 -0
  215. package/lib/packlets/file-tree/httpTreeAccessors.d.ts +6 -0
  216. package/lib/packlets/file-tree/httpTreeAccessors.d.ts.map +1 -1
  217. package/lib/packlets/file-tree/httpTreeAccessors.js +72 -42
  218. package/lib/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  219. package/lib/test/unit/httpTreeAccessors.test.js +135 -0
  220. package/lib/test/unit/httpTreeAccessors.test.js.map +1 -1
  221. package/package.json +12 -11
  222. package/rush-logs/ts-web-extras.build.cache.log +1 -1
  223. package/rush-logs/ts-web-extras.build.log +18 -18
  224. package/src/packlets/file-tree/httpTreeAccessors.ts +76 -46
  225. package/src/test/unit/httpTreeAccessors.test.ts +179 -0
  226. package/temp/build/typescript/ts_8nwakTlr.json +1 -1
  227. package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +1 -1
  228. package/temp/coverage/crypto-utils/browserHashProvider.ts.html +1 -1
  229. package/temp/coverage/crypto-utils/index.html +1 -1
  230. package/temp/coverage/file-tree/directoryHandleStore.ts.html +1 -1
  231. package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +1 -1
  232. package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +1 -1
  233. package/temp/coverage/file-tree/httpTreeAccessors.ts.html +333 -243
  234. package/temp/coverage/file-tree/index.html +11 -11
  235. package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +1 -1
  236. package/temp/coverage/helpers/fileTreeHelpers.ts.html +1 -1
  237. package/temp/coverage/helpers/index.html +1 -1
  238. package/temp/coverage/index.html +10 -10
  239. package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +1 -1
  240. package/temp/coverage/lcov-report/crypto-utils/browserHashProvider.ts.html +1 -1
  241. package/temp/coverage/lcov-report/crypto-utils/index.html +1 -1
  242. package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +1 -1
  243. package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +1 -1
  244. package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +1 -1
  245. package/temp/coverage/lcov-report/file-tree/httpTreeAccessors.ts.html +333 -243
  246. package/temp/coverage/lcov-report/file-tree/index.html +11 -11
  247. package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +1 -1
  248. package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +1 -1
  249. package/temp/coverage/lcov-report/helpers/index.html +1 -1
  250. package/temp/coverage/lcov-report/index.html +10 -10
  251. package/temp/coverage/lcov-report/url-utils/index.html +1 -1
  252. package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +1 -1
  253. package/temp/coverage/lcov.info +470 -437
  254. package/temp/coverage/url-utils/index.html +1 -1
  255. package/temp/coverage/url-utils/urlParams.ts.html +1 -1
  256. package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
  257. package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
  258. package/temp/ts-web-extras.api.json +1 -1
  259. package/docs/@fgv/namespaces/CryptoUtils/README.md +0 -18
  260. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserCryptoProvider.md +0 -203
  261. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserHashProvider.md +0 -63
  262. package/docs/@fgv/namespaces/CryptoUtils/functions/createBrowserCryptoProvider.md +0 -18
  263. package/docs/@fgv/namespaces/FileTreeHelpers/README.md +0 -19
  264. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileListMetadata.md +0 -23
  265. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileMetadata.md +0 -23
  266. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromDirectoryUpload.md +0 -33
  267. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromFileList.md +0 -33
  268. package/docs/@fgv/namespaces/FileTreeHelpers/functions/getOriginalFile.md +0 -25
  269. package/docs/@fgv/namespaces/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +0 -11
  270. /package/temp/test/jest/jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/{d6/package_d6e3b0fa94752e16b0b2a2777739b973 → 7c/package_7c16afc8299e635d80273763175c7a50} +0 -0
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [BrowserCryptoProvider](./BrowserCryptoProvider.md) > generateRandomBytes
2
+
3
+ ## BrowserCryptoProvider.generateRandomBytes() method
4
+
5
+ Generates cryptographically secure random bytes.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ generateRandomBytes(length: number): Result<Uint8Array<ArrayBufferLike>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>length</td><td>number</td><td>Number of bytes to generate</td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ Result&lt;Uint8Array&lt;ArrayBufferLike&gt;&gt;
23
+
24
+ Success with random bytes, or Failure with error
@@ -0,0 +1,151 @@
1
+ [Home](../README.md) > BrowserCryptoProvider
2
+
3
+ # Class: BrowserCryptoProvider
4
+
5
+ Browser implementation of `ICryptoProvider` using the Web Crypto API.
6
+ Uses AES-256-GCM for authenticated encryption.
7
+
8
+ Note: This provider requires a browser environment with Web Crypto API support.
9
+ In Node.js 15+, Web Crypto is available via globalThis.crypto or require('crypto').webcrypto.
10
+
11
+ **Implements:** `ICryptoProvider`
12
+
13
+ ## Constructors
14
+
15
+ <table><thead><tr><th>
16
+
17
+ Constructor
18
+
19
+ </th><th>
20
+
21
+ Modifiers
22
+
23
+ </th><th>
24
+
25
+ Description
26
+
27
+ </th></tr></thead>
28
+ <tbody>
29
+ <tr><td>
30
+
31
+ `constructor(cryptoApi)`
32
+
33
+ </td><td>
34
+
35
+
36
+
37
+ </td><td>
38
+
39
+ Creates a new CryptoUtils.BrowserCryptoProvider | BrowserCryptoProvider.
40
+
41
+ </td></tr>
42
+ </tbody></table>
43
+
44
+ ## Methods
45
+
46
+ <table><thead><tr><th>
47
+
48
+ Method
49
+
50
+ </th><th>
51
+
52
+ Modifiers
53
+
54
+ </th><th>
55
+
56
+ Description
57
+
58
+ </th></tr></thead>
59
+ <tbody>
60
+ <tr><td>
61
+
62
+ [encrypt(plaintext, key)](./BrowserCryptoProvider.encrypt.md)
63
+
64
+ </td><td>
65
+
66
+
67
+
68
+ </td><td>
69
+
70
+ Encrypts plaintext using AES-256-GCM.
71
+
72
+ </td></tr>
73
+ <tr><td>
74
+
75
+ [decrypt(encryptedData, key, iv, authTag)](./BrowserCryptoProvider.decrypt.md)
76
+
77
+ </td><td>
78
+
79
+
80
+
81
+ </td><td>
82
+
83
+ Decrypts ciphertext using AES-256-GCM.
84
+
85
+ </td></tr>
86
+ <tr><td>
87
+
88
+ [generateKey()](./BrowserCryptoProvider.generateKey.md)
89
+
90
+ </td><td>
91
+
92
+
93
+
94
+ </td><td>
95
+
96
+ Generates a random 32-byte key suitable for AES-256.
97
+
98
+ </td></tr>
99
+ <tr><td>
100
+
101
+ [deriveKey(password, salt, iterations)](./BrowserCryptoProvider.deriveKey.md)
102
+
103
+ </td><td>
104
+
105
+
106
+
107
+ </td><td>
108
+
109
+ Derives a key from a password using PBKDF2.
110
+
111
+ </td></tr>
112
+ <tr><td>
113
+
114
+ [generateRandomBytes(length)](./BrowserCryptoProvider.generateRandomBytes.md)
115
+
116
+ </td><td>
117
+
118
+
119
+
120
+ </td><td>
121
+
122
+ Generates cryptographically secure random bytes.
123
+
124
+ </td></tr>
125
+ <tr><td>
126
+
127
+ [toBase64(data)](./BrowserCryptoProvider.toBase64.md)
128
+
129
+ </td><td>
130
+
131
+
132
+
133
+ </td><td>
134
+
135
+ Encodes binary data to base64 string.
136
+
137
+ </td></tr>
138
+ <tr><td>
139
+
140
+ [fromBase64(base64)](./BrowserCryptoProvider.fromBase64.md)
141
+
142
+ </td><td>
143
+
144
+
145
+
146
+ </td><td>
147
+
148
+ Decodes base64 string to binary data.
149
+
150
+ </td></tr>
151
+ </tbody></table>
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [BrowserCryptoProvider](./BrowserCryptoProvider.md) > toBase64
2
+
3
+ ## BrowserCryptoProvider.toBase64() method
4
+
5
+ Encodes binary data to base64 string.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ toBase64(data: Uint8Array): string;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>data</td><td>Uint8Array</td><td>Binary data to encode</td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ string
23
+
24
+ Base64-encoded string
@@ -0,0 +1,26 @@
1
+ [Home](../README.md) > [BrowserHashProvider](./BrowserHashProvider.md) > hashParts
2
+
3
+ ## BrowserHashProvider.hashParts() method
4
+
5
+ Hash multiple strings concatenated with a separator.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static hashParts(parts: string[], algorithm: string, separator: string): Promise<Result<string>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>parts</td><td>string[]</td><td>Array of strings to concatenate and hash</td></tr>
18
+ <tr><td>algorithm</td><td>string</td><td>The hash algorithm to use</td></tr>
19
+ <tr><td>separator</td><td>string</td><td>Separator to use between parts (default: '|')</td></tr>
20
+ </tbody></table>
21
+
22
+ **Returns:**
23
+
24
+ Promise&lt;Result&lt;string&gt;&gt;
25
+
26
+ Promise resolving to the hex-encoded hash
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [BrowserHashProvider](./BrowserHashProvider.md) > hashString
2
+
3
+ ## BrowserHashProvider.hashString() method
4
+
5
+ Hash a string using the specified algorithm.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static hashString(data: string, algorithm: string): Promise<Result<string>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>data</td><td>string</td><td>The string to hash</td></tr>
18
+ <tr><td>algorithm</td><td>string</td><td>The hash algorithm to use</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;string&gt;&gt;
24
+
25
+ Promise resolving to the hex-encoded hash
@@ -0,0 +1,81 @@
1
+ [Home](../README.md) > BrowserHashProvider
2
+
3
+ # Class: BrowserHashProvider
4
+
5
+ Browser-compatible hash provider using the Web Crypto API.
6
+ Supports common hash algorithms available in browsers.
7
+
8
+ ## Constructors
9
+
10
+ <table><thead><tr><th>
11
+
12
+ Constructor
13
+
14
+ </th><th>
15
+
16
+ Modifiers
17
+
18
+ </th><th>
19
+
20
+ Description
21
+
22
+ </th></tr></thead>
23
+ <tbody>
24
+ <tr><td>
25
+
26
+ `constructor()`
27
+
28
+ </td><td>
29
+
30
+
31
+
32
+ </td><td>
33
+
34
+
35
+
36
+ </td></tr>
37
+ </tbody></table>
38
+
39
+ ## Methods
40
+
41
+ <table><thead><tr><th>
42
+
43
+ Method
44
+
45
+ </th><th>
46
+
47
+ Modifiers
48
+
49
+ </th><th>
50
+
51
+ Description
52
+
53
+ </th></tr></thead>
54
+ <tbody>
55
+ <tr><td>
56
+
57
+ [hashString(data, algorithm)](./BrowserHashProvider.hashString.md)
58
+
59
+ </td><td>
60
+
61
+ `static`
62
+
63
+ </td><td>
64
+
65
+ Hash a string using the specified algorithm.
66
+
67
+ </td></tr>
68
+ <tr><td>
69
+
70
+ [hashParts(parts, algorithm, separator)](./BrowserHashProvider.hashParts.md)
71
+
72
+ </td><td>
73
+
74
+ `static`
75
+
76
+ </td><td>
77
+
78
+ Hash multiple strings concatenated with a separator.
79
+
80
+ </td></tr>
81
+ </tbody></table>
@@ -0,0 +1,17 @@
1
+ [Home](../README.md) > [DirectoryHandleStore](./DirectoryHandleStore.md) > getAll
2
+
3
+ ## DirectoryHandleStore.getAll() method
4
+
5
+ Returns all stored handles as label/handle pairs.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ getAll(): Promise<Result<{ label: string; handle: FileSystemDirectoryHandle }[]>>;
11
+ ```
12
+
13
+ **Returns:**
14
+
15
+ Promise&lt;Result&lt;{ label: string; handle: [FileSystemDirectoryHandle](../interfaces/FileSystemDirectoryHandle.md) }[]&gt;&gt;
16
+
17
+ Success with array of entries, or Failure
@@ -0,0 +1,17 @@
1
+ [Home](../README.md) > [DirectoryHandleStore](./DirectoryHandleStore.md) > getAllLabels
2
+
3
+ ## DirectoryHandleStore.getAllLabels() method
4
+
5
+ Returns all stored labels (keys).
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ getAllLabels(): Promise<Result<string[]>>;
11
+ ```
12
+
13
+ **Returns:**
14
+
15
+ Promise&lt;Result&lt;string[]&gt;&gt;
16
+
17
+ Success with array of labels, or Failure
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [DirectoryHandleStore](./DirectoryHandleStore.md) > load
2
+
3
+ ## DirectoryHandleStore.load() method
4
+
5
+ Retrieves a directory handle by label.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ load(label: string): Promise<Result<FileSystemDirectoryHandle | undefined>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>label</td><td>string</td><td>Key to look up</td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ Promise&lt;Result&lt;[FileSystemDirectoryHandle](../interfaces/FileSystemDirectoryHandle.md) | undefined&gt;&gt;
23
+
24
+ Success with handle (or undefined if not found), or Failure on error
@@ -1,116 +1,120 @@
1
- [**@fgv/ts-web-extras**](../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../README.md) / DirectoryHandleStore
1
+ [Home](../README.md) > DirectoryHandleStore
6
2
 
7
3
  # Class: DirectoryHandleStore
8
4
 
9
- Manages persistence of [FileSystemDirectoryHandle](../interfaces/FileSystemDirectoryHandle.md) objects in IndexedDB.
5
+ Manages persistence of FileSystemDirectoryHandle objects in IndexedDB.
10
6
  Keyed by a label (typically the directory name).
11
7
 
12
8
  ## Constructors
13
9
 
14
- ### Constructor
10
+ <table><thead><tr><th>
11
+
12
+ Constructor
13
+
14
+ </th><th>
15
+
16
+ Modifiers
17
+
18
+ </th><th>
19
+
20
+ Description
21
+
22
+ </th></tr></thead>
23
+ <tbody>
24
+ <tr><td>
25
+
26
+ `constructor(dbName, storeName)`
27
+
28
+ </td><td>
29
+
15
30
 
16
- > **new DirectoryHandleStore**(`dbName`, `storeName`): `DirectoryHandleStore`
17
31
 
18
- #### Parameters
32
+ </td><td>
19
33
 
20
- | Parameter | Type | Default value |
21
- | ------ | ------ | ------ |
22
- | `dbName` | `string` | `DEFAULT_DIRECTORY_HANDLE_DB` |
23
- | `storeName` | `string` | `DEFAULT_DIRECTORY_HANDLE_STORE` |
24
34
 
25
- #### Returns
26
35
 
27
- `DirectoryHandleStore`
36
+ </td></tr>
37
+ </tbody></table>
28
38
 
29
39
  ## Methods
30
40
 
31
- ### getAll()
41
+ <table><thead><tr><th>
32
42
 
33
- > **getAll**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
43
+ Method
34
44
 
35
- Returns all stored handles as label/handle pairs.
45
+ </th><th>
36
46
 
37
- #### Returns
47
+ Modifiers
38
48
 
39
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
49
+ </th><th>
40
50
 
41
- Success with array of entries, or Failure
51
+ Description
42
52
 
43
- ***
53
+ </th></tr></thead>
54
+ <tbody>
55
+ <tr><td>
44
56
 
45
- ### getAllLabels()
57
+ [save(label, handle)](./DirectoryHandleStore.save.md)
46
58
 
47
- > **getAllLabels**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
59
+ </td><td>
48
60
 
49
- Returns all stored labels (keys).
50
61
 
51
- #### Returns
52
62
 
53
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
63
+ </td><td>
54
64
 
55
- Success with array of labels, or Failure
65
+ Saves a directory handle to IndexedDB under the given label.
56
66
 
57
- ***
67
+ </td></tr>
68
+ <tr><td>
58
69
 
59
- ### load()
70
+ [load(label)](./DirectoryHandleStore.load.md)
71
+
72
+ </td><td>
60
73
 
61
- > **load**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
62
74
 
63
- Retrieves a directory handle by label.
64
75
 
65
- #### Parameters
76
+ </td><td>
66
77
 
67
- | Parameter | Type | Description |
68
- | ------ | ------ | ------ |
69
- | `label` | `string` | Key to look up |
78
+ Retrieves a directory handle by label.
70
79
 
71
- #### Returns
80
+ </td></tr>
81
+ <tr><td>
72
82
 
73
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
83
+ [remove(label)](./DirectoryHandleStore.remove.md)
74
84
 
75
- Success with handle (or undefined if not found), or Failure on error
85
+ </td><td>
76
86
 
77
- ***
78
87
 
79
- ### remove()
80
88
 
81
- > **remove**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
89
+ </td><td>
82
90
 
83
91
  Removes a directory handle from IndexedDB.
84
92
 
85
- #### Parameters
93
+ </td></tr>
94
+ <tr><td>
86
95
 
87
- | Parameter | Type | Description |
88
- | ------ | ------ | ------ |
89
- | `label` | `string` | Key to remove |
96
+ [getAllLabels()](./DirectoryHandleStore.getAllLabels.md)
90
97
 
91
- #### Returns
98
+ </td><td>
92
99
 
93
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
94
100
 
95
- Success or Failure
96
101
 
97
- ***
102
+ </td><td>
98
103
 
99
- ### save()
104
+ Returns all stored labels (keys).
100
105
 
101
- > **save**(`label`, `handle`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
106
+ </td></tr>
107
+ <tr><td>
102
108
 
103
- Saves a directory handle to IndexedDB under the given label.
109
+ [getAll()](./DirectoryHandleStore.getAll.md)
104
110
 
105
- #### Parameters
111
+ </td><td>
106
112
 
107
- | Parameter | Type | Description |
108
- | ------ | ------ | ------ |
109
- | `label` | `string` | Key to store the handle under (typically dirHandle.name) |
110
- | `handle` | [`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) | The FileSystemDirectoryHandle to persist |
111
113
 
112
- #### Returns
113
114
 
114
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
115
+ </td><td>
116
+
117
+ Returns all stored handles as label/handle pairs.
115
118
 
116
- Success or Failure
119
+ </td></tr>
120
+ </tbody></table>
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [DirectoryHandleStore](./DirectoryHandleStore.md) > remove
2
+
3
+ ## DirectoryHandleStore.remove() method
4
+
5
+ Removes a directory handle from IndexedDB.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ remove(label: string): Promise<Result<void>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>label</td><td>string</td><td>Key to remove</td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ Promise&lt;Result&lt;void&gt;&gt;
23
+
24
+ Success or Failure
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [DirectoryHandleStore](./DirectoryHandleStore.md) > save
2
+
3
+ ## DirectoryHandleStore.save() method
4
+
5
+ Saves a directory handle to IndexedDB under the given label.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ save(label: string, handle: FileSystemDirectoryHandle): Promise<Result<void>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>label</td><td>string</td><td>Key to store the handle under (typically dirHandle.name)</td></tr>
18
+ <tr><td>handle</td><td>FileSystemDirectoryHandle</td><td>The FileSystemDirectoryHandle to persist</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;void&gt;&gt;
24
+
25
+ Success or Failure
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > create
2
+
3
+ ## FileApiTreeAccessors.create() method
4
+
5
+ Create FileTree from various file sources using TreeInitializer array.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static create(initializers: TreeInitializer[], params?: IFileTreeInitParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>initializers</td><td>TreeInitializer[]</td><td>Array of TreeInitializer objects specifying file sources</td></tr>
18
+ <tr><td>params</td><td>IFileTreeInitParams&lt;TCT&gt;</td><td>Optional `IFileTreeInitParams` for the file tree.</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
24
+
25
+ Promise resolving to a FileTree with all content pre-loaded
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > createFromHttp
2
+
3
+ ## FileApiTreeAccessors.createFromHttp() method
4
+
5
+ Create a persistent FileTree from an HTTP storage service.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static createFromHttp(params: IHttpTreeParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>params</td><td>IHttpTreeParams&lt;TCT&gt;</td><td>Configuration including API base URL, namespace, and optional autoSync</td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
23
+
24
+ Promise resolving to a FileTree with persistence capability