@fgv/ts-web-extras 5.1.0-1 → 5.1.0-11

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 (286) hide show
  1. package/.rush/temp/63a2c58f11944fdb592459d835a6483c79343b3f.tar.log +237 -0
  2. package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +19 -39
  3. package/.rush/temp/operation/build/all.log +19 -39
  4. package/.rush/temp/operation/build/log-chunks.jsonl +19 -39
  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 +128 -41
  9. package/dist/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  10. package/dist/test/unit/httpTreeAccessors.test.js +438 -74
  11. package/dist/test/unit/httpTreeAccessors.test.js.map +1 -1
  12. package/dist/ts-web-extras.d.ts +20 -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 +20 -0
  216. package/lib/packlets/file-tree/httpTreeAccessors.d.ts.map +1 -1
  217. package/lib/packlets/file-tree/httpTreeAccessors.js +128 -41
  218. package/lib/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  219. package/lib/test/unit/httpTreeAccessors.test.js +438 -74
  220. package/lib/test/unit/httpTreeAccessors.test.js.map +1 -1
  221. package/package.json +27 -26
  222. package/rush-logs/ts-web-extras.build.cache.log +3 -0
  223. package/rush-logs/ts-web-extras.build.log +19 -39
  224. package/src/packlets/file-tree/httpTreeAccessors.ts +142 -45
  225. package/src/test/unit/httpTreeAccessors.test.ts +556 -84
  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 +507 -216
  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 +11 -11
  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 +507 -216
  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 +11 -11
  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 +520 -387
  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 -0
  258. package/temp/ts-web-extras.api.json +2 -2
  259. package/.rush/temp/chunked-rush-logs/ts-web-extras.test.chunks.jsonl +0 -70
  260. package/.rush/temp/operation/build/error.log +0 -18
  261. package/.rush/temp/operation/test/all.log +0 -70
  262. package/.rush/temp/operation/test/error.log +0 -16
  263. package/.rush/temp/operation/test/log-chunks.jsonl +0 -70
  264. package/.rush/temp/operation/test/state.json +0 -3
  265. package/docs/@fgv/namespaces/CryptoUtils/README.md +0 -18
  266. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserCryptoProvider.md +0 -203
  267. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserHashProvider.md +0 -63
  268. package/docs/@fgv/namespaces/CryptoUtils/functions/createBrowserCryptoProvider.md +0 -18
  269. package/docs/@fgv/namespaces/FileTreeHelpers/README.md +0 -19
  270. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileListMetadata.md +0 -23
  271. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileMetadata.md +0 -23
  272. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromDirectoryUpload.md +0 -33
  273. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromFileList.md +0 -33
  274. package/docs/@fgv/namespaces/FileTreeHelpers/functions/getOriginalFile.md +0 -25
  275. package/docs/@fgv/namespaces/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +0 -11
  276. package/rush-logs/ts-web-extras.build.error.log +0 -18
  277. package/rush-logs/ts-web-extras.test.cache.log +0 -1
  278. package/rush-logs/ts-web-extras.test.error.log +0 -16
  279. package/rush-logs/ts-web-extras.test.log +0 -70
  280. package/temp/coverage/crypto/browserHashProvider.ts.html +0 -304
  281. package/temp/coverage/crypto/index.html +0 -116
  282. package/temp/coverage/lcov-report/crypto/browserHashProvider.ts.html +0 -304
  283. package/temp/coverage/lcov-report/crypto/index.html +0 -116
  284. package/temp/test/jest/haste-map-b931e4e63102f86c5bd4949f7dced44f-9d713eb41149188b4e5c0ae3d86d0a57-2ad8e16b24e391b8cdbe50b55c137169 +0 -0
  285. package/temp/test/jest/perf-cache-b931e4e63102f86c5bd4949f7dced44f-da39a3ee5e6b4b0d3255bfef95601890 +0 -1
  286. /package/temp/test/jest/{jest-transform-cache-b931e4e63102f86c5bd4949f7dced44f-79ef2876fae7ca75eedb2aa53dc48338/b5/package_b5f57afc9ec2c011239b1608ee5bdfa5 → jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/7c/package_7c16afc8299e635d80273763175c7a50} +0 -0
@@ -1,23 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / extractFileListMetadata
6
-
7
- # Function: extractFileListMetadata()
8
-
9
- > **extractFileListMetadata**(`fileList`): [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)[]
10
-
11
- Helper function to extract metadata from a `FileList`.
12
-
13
- ## Parameters
14
-
15
- | Parameter | Type | Description |
16
- | ------ | ------ | ------ |
17
- | `fileList` | `FileList` | The `FileList` to extract metadata from |
18
-
19
- ## Returns
20
-
21
- [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)[]
22
-
23
- Array of [file metadata](../../../../interfaces/IFileMetadata.md) objects
@@ -1,23 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / extractFileMetadata
6
-
7
- # Function: extractFileMetadata()
8
-
9
- > **extractFileMetadata**(`file`): [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)
10
-
11
- Helper function to extract metadata from a `File`.
12
-
13
- ## Parameters
14
-
15
- | Parameter | Type | Description |
16
- | ------ | ------ | ------ |
17
- | `file` | `File` | The File to extract metadata from |
18
-
19
- ## Returns
20
-
21
- [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)
22
-
23
- [file metadata](../../../../interfaces/IFileMetadata.md) object
@@ -1,33 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / fromDirectoryUpload
6
-
7
- # Function: fromDirectoryUpload()
8
-
9
- > **fromDirectoryUpload**(`fileList`, `params?`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
10
-
11
- Helper function to create a new FileTree instance
12
- from a directory upload with webkitRelativePath support.
13
-
14
- ## Parameters
15
-
16
- | Parameter | Type | Description |
17
- | ------ | ------ | ------ |
18
- | `fileList` | `FileList` | FileList from a directory upload (input with webkitdirectory) |
19
- | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\> | Optional `IFileTreeInitParams` for the file tree. |
20
-
21
- ## Returns
22
-
23
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
24
-
25
- Promise resolving to a successful Result with the new FileTree instance
26
- if successful, or a failed Result with an error message otherwise
27
-
28
- ## Remarks
29
-
30
- The content type of the files is always `string` and the default
31
- accept contentType function (`FileTree.FileItem.defaultAcceptContentType`) is
32
- is used, so content type is derived from the mime type of the file, when
33
- available.
@@ -1,33 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / fromFileList
6
-
7
- # Function: fromFileList()
8
-
9
- > **fromFileList**(`fileList`, `params?`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
10
-
11
- Helper function to create a new FileTree instance
12
- from a browser FileList (e.g., from input[type="file"]).
13
-
14
- ## Parameters
15
-
16
- | Parameter | Type | Description |
17
- | ------ | ------ | ------ |
18
- | `fileList` | `FileList` | FileList from a file input element |
19
- | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\> | Optional `IFileTreeInitParams` for the file tree. |
20
-
21
- ## Returns
22
-
23
- `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
24
-
25
- Promise resolving to a successful Result with the new FileTree instance
26
- if successful, or a failed Result with an error message otherwise
27
-
28
- ## Remarks
29
-
30
- The content type of the files is always `string` and the default
31
- accept contentType function (`FileTree.FileItem.defaultAcceptContentType`) is
32
- used, so content type is derived from the mime type of the file, when
33
- available.
@@ -1,25 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / getOriginalFile
6
-
7
- # Function: getOriginalFile()
8
-
9
- > **getOriginalFile**(`fileList`, `path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
10
-
11
- Helper function to get the original File object from a FileList by path.
12
-
13
- ## Parameters
14
-
15
- | Parameter | Type | Description |
16
- | ------ | ------ | ------ |
17
- | `fileList` | `FileList` | The original FileList |
18
- | `path` | `string` | The path to the file |
19
-
20
- ## Returns
21
-
22
- [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
23
-
24
- A successful Result with the File object if found,
25
- or a failed Result with an error message otherwise
@@ -1,11 +0,0 @@
1
- [**@fgv/ts-web-extras**](../../../../README.md)
2
-
3
- ***
4
-
5
- [@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / defaultFileApiTreeInitParams
6
-
7
- # Variable: defaultFileApiTreeInitParams
8
-
9
- > `const` **defaultFileApiTreeInitParams**: [`FileTree.IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>
10
-
11
- Default initialization parameters for a `FileTree` using [FileApiTreeAccessors](../../../../classes/FileApiTreeAccessors.md).
@@ -1,18 +0,0 @@
1
- (node:72593) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2
- (Use `node --trace-deprecation ...` to show where the warning was created)
3
- (node:72591) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
4
- (Use `node --trace-deprecation ...` to show where the warning was created)
5
- (node:72598) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
6
- (Use `node --trace-deprecation ...` to show where the warning was created)
7
- (node:72594) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
8
- (Use `node --trace-deprecation ...` to show where the warning was created)
9
- (node:72597) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
10
- (Use `node --trace-deprecation ...` to show where the warning was created)
11
- (node:72590) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
12
- (Use `node --trace-deprecation ...` to show where the warning was created)
13
- (node:72596) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
14
- (Use `node --trace-deprecation ...` to show where the warning was created)
15
- (node:72592) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
16
- (Use `node --trace-deprecation ...` to show where the warning was created)
17
- (node:72595) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
18
- (Use `node --trace-deprecation ...` to show where the warning was created)
@@ -1 +0,0 @@
1
- This project does not define the caching behavior of the "test" command, so caching has been disabled.
@@ -1,16 +0,0 @@
1
- (node:35708) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2
- (Use `node --trace-deprecation ...` to show where the warning was created)
3
- (node:35707) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
4
- (Use `node --trace-deprecation ...` to show where the warning was created)
5
- (node:35710) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
6
- (Use `node --trace-deprecation ...` to show where the warning was created)
7
- (node:35711) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
8
- (Use `node --trace-deprecation ...` to show where the warning was created)
9
- (node:35705) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
10
- (Use `node --trace-deprecation ...` to show where the warning was created)
11
- (node:35709) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
12
- (Use `node --trace-deprecation ...` to show where the warning was created)
13
- (node:35712) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
14
- (Use `node --trace-deprecation ...` to show where the warning was created)
15
- (node:35706) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
16
- (Use `node --trace-deprecation ...` to show where the warning was created)
@@ -1,70 +0,0 @@
1
- Invoking: heft test --clean
2
- ---- build started ----
3
- [build:clean] Deleted 0 files and 3 folders
4
- [build:typescript] The TypeScript compiler version 5.9.3 is newer than the latest version that was tested with Heft (5.8); it may not work correctly.
5
- [build:typescript] Using TypeScript version 5.9.3
6
- [build:api-extractor] Using API Extractor version 7.55.2
7
- [build:api-extractor] Analysis will use the bundled TypeScript version 5.8.2
8
- [build:api-extractor] *** The target project appears to use TypeScript 5.9.3 which is newer than the bundled compiler engine; consider upgrading API Extractor.
9
- ---- build finished (2.899s) ----
10
- ---- test started ----
11
- [test:clean] Deleted 0 files and 1 folder
12
- [test:jest] Using Jest version 29.5.0
13
- [test:jest]
14
- [test:jest] Run start. 8 test suites
15
- [test:jest] START lib/test/unit/fileApiTreeAccessors.test.js
16
- [test:jest] START lib/test/unit/fileTreeHelpers.test.js
17
- [test:jest] START lib/test/unit/fileSystemAccessTreeAccessors.test.js
18
- [test:jest] START lib/test/unit/localStorageTreeAccessors.test.js
19
- [test:jest] START lib/test/unit/fileApiTypes.test.js
20
- [test:jest] START lib/test/unit/urlParams.test.js
21
- [test:jest] START lib/test/unit/directoryHandleStore.test.js
22
- [test:jest] START lib/test/unit/browserHashProvider.test.js
23
- (node:35708) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
24
- (Use `node --trace-deprecation ...` to show where the warning was created)
25
- [test:jest] PASS lib/test/unit/localStorageTreeAccessors.test.js (duration: 0.633s, 33 passed, 0 failed)
26
- (node:35707) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
27
- (Use `node --trace-deprecation ...` to show where the warning was created)
28
- (node:35710) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
29
- (Use `node --trace-deprecation ...` to show where the warning was created)
30
- (node:35711) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
31
- (Use `node --trace-deprecation ...` to show where the warning was created)
32
- [test:jest] PASS lib/test/unit/directoryHandleStore.test.js (duration: 0.656s, 19 passed, 0 failed)
33
- [test:jest] PASS lib/test/unit/urlParams.test.js (duration: 0.661s, 60 passed, 0 failed)
34
- (node:35705) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
35
- (Use `node --trace-deprecation ...` to show where the warning was created)
36
- [test:jest] PASS lib/test/unit/fileApiTreeAccessors.test.js (duration: 0.660s, 63 passed, 0 failed)
37
- (node:35709) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
38
- (Use `node --trace-deprecation ...` to show where the warning was created)
39
- [test:jest] PASS lib/test/unit/fileApiTypes.test.js (duration: 0.676s, 36 passed, 0 failed)
40
- (node:35712) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
41
- (Use `node --trace-deprecation ...` to show where the warning was created)
42
- (node:35706) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
43
- (Use `node --trace-deprecation ...` to show where the warning was created)
44
- [test:jest] PASS lib/test/unit/fileTreeHelpers.test.js (duration: 0.713s, 35 passed, 0 failed)
45
- [test:jest] PASS lib/test/unit/fileSystemAccessTreeAccessors.test.js (duration: 0.719s, 38 passed, 0 failed)
46
- [test:jest] PASS lib/test/unit/browserHashProvider.test.js (duration: 0.723s, 15 passed, 0 failed)
47
- [test:jest]
48
- [test:jest] Tests finished:
49
- [test:jest] Successes: 299
50
- [test:jest] Failures: 0
51
- [test:jest] Total: 300
52
- -----------------------------------|---------|----------|---------|---------|------------------------------------
53
- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
54
- -----------------------------------|---------|----------|---------|---------|------------------------------------
55
- All files | 100 | 95.68 | 100 | 100 |
56
- crypto-utils | 100 | 100 | 100 | 100 |
57
- browserCryptoProvider.ts | 100 | 100 | 100 | 100 |
58
- browserHashProvider.ts | 100 | 100 | 100 | 100 |
59
- file-tree | 100 | 94.9 | 100 | 100 |
60
- directoryHandleStore.ts | 100 | 100 | 100 | 100 |
61
- fileApiTreeAccessors.ts | 100 | 100 | 100 | 100 |
62
- fileSystemAccessTreeAccessors.ts | 100 | 93.06 | 100 | 100 | 90,152,160,169,176
63
- localStorageTreeAccessors.ts | 100 | 88.6 | 100 | 100 | 92,107,163-164,196-197,210,245-249
64
- helpers | 100 | 100 | 100 | 100 |
65
- fileTreeHelpers.ts | 100 | 100 | 100 | 100 |
66
- url-utils | 100 | 100 | 100 | 100 |
67
- urlParams.ts | 100 | 100 | 100 | 100 |
68
- -----------------------------------|---------|----------|---------|---------|------------------------------------
69
- ---- test finished (1.675s) ----
70
- -------------------- Finished (4.577s) --------------------
@@ -1,304 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for crypto/browserHashProvider.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">crypto</a> browserHashProvider.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>73/73</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>9/9</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>73/73</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
140
- <span class="cline-any cline-yes">1x</span>
141
- <span class="cline-any cline-yes">1x</span>
142
- <span class="cline-any cline-yes">1x</span>
143
- <span class="cline-any cline-yes">1x</span>
144
- <span class="cline-any cline-yes">1x</span>
145
- <span class="cline-any cline-yes">1x</span>
146
- <span class="cline-any cline-yes">1x</span>
147
- <span class="cline-any cline-yes">1x</span>
148
- <span class="cline-any cline-yes">1x</span>
149
- <span class="cline-any cline-yes">1x</span>
150
- <span class="cline-any cline-yes">1x</span>
151
- <span class="cline-any cline-yes">1x</span>
152
- <span class="cline-any cline-yes">1x</span>
153
- <span class="cline-any cline-yes">1x</span>
154
- <span class="cline-any cline-yes">1x</span>
155
- <span class="cline-any cline-yes">1x</span>
156
- <span class="cline-any cline-yes">1x</span>
157
- <span class="cline-any cline-yes">1x</span>
158
- <span class="cline-any cline-yes">1x</span>
159
- <span class="cline-any cline-yes">1x</span>
160
- <span class="cline-any cline-yes">1x</span>
161
- <span class="cline-any cline-yes">1x</span>
162
- <span class="cline-any cline-yes">1x</span>
163
- <span class="cline-any cline-yes">1x</span>
164
- <span class="cline-any cline-yes">1x</span>
165
- <span class="cline-any cline-yes">1x</span>
166
- <span class="cline-any cline-yes">1x</span>
167
- <span class="cline-any cline-yes">1x</span>
168
- <span class="cline-any cline-yes">1x</span>
169
- <span class="cline-any cline-yes">1x</span>
170
- <span class="cline-any cline-yes">1x</span>
171
- <span class="cline-any cline-yes">1x</span>
172
- <span class="cline-any cline-yes">1x</span>
173
- <span class="cline-any cline-yes">1x</span>
174
- <span class="cline-any cline-yes">1x</span>
175
- <span class="cline-any cline-yes">1x</span>
176
- <span class="cline-any cline-yes">20x</span>
177
- <span class="cline-any cline-yes">1x</span>
178
- <span class="cline-any cline-yes">1x</span>
179
- <span class="cline-any cline-yes">1x</span>
180
- <span class="cline-any cline-yes">1x</span>
181
- <span class="cline-any cline-yes">19x</span>
182
- <span class="cline-any cline-yes">19x</span>
183
- <span class="cline-any cline-yes">19x</span>
184
- <span class="cline-any cline-yes">19x</span>
185
- <span class="cline-any cline-yes">18x</span>
186
- <span class="cline-any cline-yes">18x</span>
187
- <span class="cline-any cline-yes">18x</span>
188
- <span class="cline-any cline-yes">18x</span>
189
- <span class="cline-any cline-yes">18x</span>
190
- <span class="cline-any cline-yes">18x</span>
191
- <span class="cline-any cline-yes">20x</span>
192
- <span class="cline-any cline-yes">2x</span>
193
- <span class="cline-any cline-yes">2x</span>
194
- <span class="cline-any cline-yes">20x</span>
195
- <span class="cline-any cline-yes">1x</span>
196
- <span class="cline-any cline-yes">1x</span>
197
- <span class="cline-any cline-yes">1x</span>
198
- <span class="cline-any cline-yes">1x</span>
199
- <span class="cline-any cline-yes">1x</span>
200
- <span class="cline-any cline-yes">1x</span>
201
- <span class="cline-any cline-yes">1x</span>
202
- <span class="cline-any cline-yes">1x</span>
203
- <span class="cline-any cline-yes">1x</span>
204
- <span class="cline-any cline-yes">6x</span>
205
- <span class="cline-any cline-yes">6x</span>
206
- <span class="cline-any cline-yes">6x</span>
207
- <span class="cline-any cline-yes">6x</span>
208
- <span class="cline-any cline-yes">6x</span>
209
- <span class="cline-any cline-yes">6x</span>
210
- <span class="cline-any cline-yes">6x</span>
211
- <span class="cline-any cline-yes">1x</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*
213
- * Copyright (c) 2025 Erik Fortune
214
- *
215
- * Permission is hereby granted, free of charge, to any person obtaining a copy
216
- * of this software and associated documentation files (the "Software"), to deal
217
- * in the Software without restriction, including without limitation the rights
218
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
219
- * copies of the Software, and to permit persons to whom the Software is
220
- * furnished to do so, subject to the following conditions:
221
- *
222
- * The above copyright notice and this permission notice shall be included in all
223
- * copies or substantial portions of the Software.
224
- *
225
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
226
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
227
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
228
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
229
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
230
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
231
- * SOFTWARE.
232
- */
233
- &nbsp;
234
- import { Result, succeed, fail } from '@fgv/ts-utils';
235
- &nbsp;
236
- /**
237
- * Browser-compatible hash provider using the Web Crypto API.
238
- * Supports common hash algorithms available in browsers.
239
- * @public
240
- */
241
- export class BrowserHashProvider {
242
- /**
243
- * Hash a string using the specified algorithm.
244
- * @param data - The string to hash
245
- * @param algorithm - The hash algorithm to use
246
- * @returns Promise resolving to the hex-encoded hash
247
- */
248
- public static async hashString(data: string, algorithm: string = 'SHA-256'): Promise&lt;Result&lt;string&gt;&gt; {
249
- try {
250
- /* c8 ignore next 3 - defense in depth */
251
- if (!crypto.subtle) {
252
- return fail('Web Crypto API not available in this environment');
253
- }
254
- &nbsp;
255
- const encoder = new TextEncoder();
256
- const dataBuffer = encoder.encode(data);
257
- const hashBuffer = await crypto.subtle.digest(algorithm, dataBuffer);
258
- const hashArray = new Uint8Array(hashBuffer);
259
- const hashHex = Array.from(hashArray)
260
- .map((b) =&gt; b.toString(16).padStart(2, '0'))
261
- .join('');
262
- &nbsp;
263
- return succeed(hashHex);
264
- } catch (error) {
265
- return fail(`Hash computation failed: ${error instanceof Error ? error.message : String(error)}`);
266
- }
267
- }
268
- &nbsp;
269
- /**
270
- * Hash multiple strings concatenated with a separator.
271
- * @param parts - Array of strings to concatenate and hash
272
- * @param algorithm - The hash algorithm to use
273
- * @param separator - Separator to use between parts (default: '|')
274
- * @returns Promise resolving to the hex-encoded hash
275
- */
276
- public static async hashParts(
277
- parts: string[],
278
- algorithm: string = 'SHA-256',
279
- separator: string = '|'
280
- ): Promise&lt;Result&lt;string&gt;&gt; {
281
- const combined = parts.join(separator);
282
- return this.hashString(combined, algorithm);
283
- }
284
- }
285
- &nbsp;</pre></td></tr></table></pre>
286
-
287
- <div class='push'></div><!-- for sticky footer -->
288
- </div><!-- /wrapper -->
289
- <div class='footer quiet pad2 space-top1 center small'>
290
- Code coverage generated by
291
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2026-01-02T09:28:21.543Z
293
- </div>
294
- <script src="../prettify.js"></script>
295
- <script>
296
- window.onload = function () {
297
- prettyPrint();
298
- };
299
- </script>
300
- <script src="../sorter.js"></script>
301
- <script src="../block-navigation.js"></script>
302
- </body>
303
- </html>
304
-