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

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 (383) hide show
  1. package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +58 -25
  2. package/.rush/temp/chunked-rush-logs/ts-web-extras.test.chunks.jsonl +70 -0
  3. package/.rush/temp/operation/build/all.log +58 -25
  4. package/.rush/temp/operation/build/error.log +18 -0
  5. package/.rush/temp/operation/build/log-chunks.jsonl +58 -25
  6. package/.rush/temp/operation/build/state.json +1 -1
  7. package/.rush/temp/operation/test/all.log +70 -0
  8. package/.rush/temp/operation/test/error.log +16 -0
  9. package/.rush/temp/operation/test/log-chunks.jsonl +70 -0
  10. package/.rush/temp/operation/test/state.json +3 -0
  11. package/.rush/temp/shrinkwrap-deps.json +175 -163
  12. package/config/jest.config.json +4 -1
  13. package/config/typedoc.json +6 -0
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +1 -1
  16. package/dist/packlets/crypto-utils/browserCryptoProvider.js +254 -0
  17. package/dist/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
  18. package/dist/packlets/crypto-utils/browserHashProvider.js.map +1 -0
  19. package/dist/packlets/{crypto → crypto-utils}/index.js +1 -0
  20. package/dist/packlets/crypto-utils/index.js.map +1 -0
  21. package/dist/packlets/file-api-types/index.js +27 -3
  22. package/dist/packlets/file-api-types/index.js.map +1 -1
  23. package/dist/packlets/file-tree/directoryHandleStore.js +124 -0
  24. package/dist/packlets/file-tree/directoryHandleStore.js.map +1 -0
  25. package/dist/packlets/file-tree/fileApiTreeAccessors.js +91 -0
  26. package/dist/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  27. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js +414 -0
  28. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
  29. package/dist/packlets/file-tree/httpTreeAccessors.js +279 -0
  30. package/dist/packlets/file-tree/httpTreeAccessors.js.map +1 -0
  31. package/dist/packlets/file-tree/index.js +4 -0
  32. package/dist/packlets/file-tree/index.js.map +1 -1
  33. package/dist/packlets/file-tree/localStorageTreeAccessors.js +359 -0
  34. package/dist/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
  35. package/dist/test/mocks/idb-keyval.js +6 -0
  36. package/dist/test/mocks/idb-keyval.js.map +1 -0
  37. package/dist/test/unit/browserHashProvider.test.js +1 -1
  38. package/dist/test/unit/browserHashProvider.test.js.map +1 -1
  39. package/dist/test/unit/directoryHandleStore.test.js +190 -0
  40. package/dist/test/unit/directoryHandleStore.test.js.map +1 -0
  41. package/dist/test/unit/fileApiTreeAccessors.test.js +51 -0
  42. package/dist/test/unit/fileApiTreeAccessors.test.js.map +1 -1
  43. package/dist/test/unit/fileApiTypes.test.js +30 -0
  44. package/dist/test/unit/fileApiTypes.test.js.map +1 -1
  45. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js +622 -0
  46. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
  47. package/dist/test/unit/httpTreeAccessors.test.js +1000 -0
  48. package/dist/test/unit/httpTreeAccessors.test.js.map +1 -0
  49. package/dist/test/unit/localStorageTreeAccessors.test.js +812 -0
  50. package/dist/test/unit/localStorageTreeAccessors.test.js.map +1 -0
  51. package/dist/test/utils/fileSystemAccessMocks.js +271 -0
  52. package/dist/test/utils/fileSystemAccessMocks.js.map +1 -0
  53. package/dist/ts-web-extras.d.ts +584 -1
  54. package/dist/tsdoc-metadata.json +1 -1
  55. package/docs/@fgv/namespaces/CryptoUtils/README.md +18 -0
  56. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserCryptoProvider.md +203 -0
  57. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserHashProvider.md +63 -0
  58. package/docs/@fgv/namespaces/CryptoUtils/functions/createBrowserCryptoProvider.md +18 -0
  59. package/docs/@fgv/namespaces/FileTreeHelpers/README.md +19 -0
  60. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileListMetadata.md +23 -0
  61. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileMetadata.md +23 -0
  62. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromDirectoryUpload.md +33 -0
  63. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromFileList.md +33 -0
  64. package/docs/@fgv/namespaces/FileTreeHelpers/functions/getOriginalFile.md +25 -0
  65. package/docs/@fgv/namespaces/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +11 -0
  66. package/docs/README.md +78 -0
  67. package/docs/classes/DirectoryHandleStore.md +116 -0
  68. package/docs/classes/FileApiTreeAccessors.md +286 -0
  69. package/docs/classes/FileSystemAccessTreeAccessors.md +557 -0
  70. package/docs/classes/HttpTreeAccessors.md +508 -0
  71. package/docs/classes/LocalStorageTreeAccessors.md +520 -0
  72. package/docs/functions/exportAsJson.md +23 -0
  73. package/docs/functions/exportUsingFileSystemAPI.md +26 -0
  74. package/docs/functions/extractDirectoryPath.md +23 -0
  75. package/docs/functions/isDirectoryHandle.md +23 -0
  76. package/docs/functions/isFileHandle.md +23 -0
  77. package/docs/functions/isFilePath.md +21 -0
  78. package/docs/functions/parseContextFilter.md +22 -0
  79. package/docs/functions/parseQualifierDefaults.md +22 -0
  80. package/docs/functions/parseResourceTypes.md +22 -0
  81. package/docs/functions/parseUrlParameters.md +15 -0
  82. package/docs/functions/safeShowDirectoryPicker.md +24 -0
  83. package/docs/functions/safeShowOpenFilePicker.md +24 -0
  84. package/docs/functions/safeShowSaveFilePicker.md +24 -0
  85. package/docs/functions/supportsFileSystemAccess.md +23 -0
  86. package/docs/interfaces/FilePickerAcceptType.md +16 -0
  87. package/docs/interfaces/FileSystemCreateWritableOptions.md +15 -0
  88. package/docs/interfaces/FileSystemDirectoryHandle.md +187 -0
  89. package/docs/interfaces/FileSystemFileHandle.md +106 -0
  90. package/docs/interfaces/FileSystemGetDirectoryOptions.md +15 -0
  91. package/docs/interfaces/FileSystemGetFileOptions.md +15 -0
  92. package/docs/interfaces/FileSystemHandle.md +69 -0
  93. package/docs/interfaces/FileSystemHandlePermissionDescriptor.md +15 -0
  94. package/docs/interfaces/FileSystemRemoveOptions.md +15 -0
  95. package/docs/interfaces/FileSystemWritableFileStream.md +127 -0
  96. package/docs/interfaces/IDirectoryHandleTreeInitializer.md +17 -0
  97. package/docs/interfaces/IFileHandleTreeInitializer.md +16 -0
  98. package/docs/interfaces/IFileListTreeInitializer.md +15 -0
  99. package/docs/interfaces/IFileMetadata.md +19 -0
  100. package/docs/interfaces/IFileSystemAccessTreeParams.md +30 -0
  101. package/docs/interfaces/IFsAccessApis.md +57 -0
  102. package/docs/interfaces/IHttpTreeParams.md +32 -0
  103. package/docs/interfaces/ILocalStorageTreeParams.md +30 -0
  104. package/docs/interfaces/IUrlConfigOptions.md +27 -0
  105. package/docs/interfaces/ShowDirectoryPickerOptions.md +17 -0
  106. package/docs/interfaces/ShowOpenFilePickerOptions.md +19 -0
  107. package/docs/interfaces/ShowSaveFilePickerOptions.md +19 -0
  108. package/docs/type-aliases/TreeInitializer.md +11 -0
  109. package/docs/type-aliases/WellKnownDirectory.md +11 -0
  110. package/docs/type-aliases/WindowWithFsAccess.md +11 -0
  111. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_DB.md +11 -0
  112. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_STORE.md +11 -0
  113. package/etc/ts-web-extras.api.md +124 -1
  114. package/lib/index.d.ts +2 -1
  115. package/lib/index.d.ts.map +1 -1
  116. package/lib/index.js +25 -2
  117. package/lib/index.js.map +1 -1
  118. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts +77 -0
  119. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts.map +1 -0
  120. package/lib/packlets/crypto-utils/browserCryptoProvider.js +259 -0
  121. package/lib/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
  122. package/lib/packlets/crypto-utils/browserHashProvider.d.ts.map +1 -0
  123. package/lib/packlets/crypto-utils/browserHashProvider.js.map +1 -0
  124. package/lib/packlets/{crypto → crypto-utils}/index.d.ts +1 -0
  125. package/lib/packlets/crypto-utils/index.d.ts.map +1 -0
  126. package/lib/packlets/{crypto → crypto-utils}/index.js +1 -0
  127. package/lib/packlets/crypto-utils/index.js.map +1 -0
  128. package/lib/packlets/file-api-types/index.d.ts.map +1 -1
  129. package/lib/packlets/file-api-types/index.js +27 -3
  130. package/lib/packlets/file-api-types/index.js.map +1 -1
  131. package/lib/packlets/file-tree/directoryHandleStore.d.ts +59 -0
  132. package/lib/packlets/file-tree/directoryHandleStore.d.ts.map +1 -0
  133. package/lib/packlets/file-tree/directoryHandleStore.js +128 -0
  134. package/lib/packlets/file-tree/directoryHandleStore.js.map +1 -0
  135. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts +66 -0
  136. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts.map +1 -1
  137. package/lib/packlets/file-tree/fileApiTreeAccessors.js +91 -0
  138. package/lib/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  139. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts +152 -0
  140. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts.map +1 -0
  141. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js +418 -0
  142. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
  143. package/lib/packlets/file-tree/httpTreeAccessors.d.ts +88 -0
  144. package/lib/packlets/file-tree/httpTreeAccessors.d.ts.map +1 -0
  145. package/lib/packlets/file-tree/httpTreeAccessors.js +283 -0
  146. package/lib/packlets/file-tree/httpTreeAccessors.js.map +1 -0
  147. package/lib/packlets/file-tree/index.d.ts +4 -0
  148. package/lib/packlets/file-tree/index.d.ts.map +1 -1
  149. package/lib/packlets/file-tree/index.js +4 -0
  150. package/lib/packlets/file-tree/index.js.map +1 -1
  151. package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts +141 -0
  152. package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts.map +1 -0
  153. package/lib/packlets/file-tree/localStorageTreeAccessors.js +363 -0
  154. package/lib/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
  155. package/lib/test/mocks/idb-keyval.d.ts +6 -0
  156. package/lib/test/mocks/idb-keyval.d.ts.map +1 -0
  157. package/lib/test/mocks/idb-keyval.js +9 -0
  158. package/lib/test/mocks/idb-keyval.js.map +1 -0
  159. package/lib/test/unit/browserHashProvider.test.js +21 -21
  160. package/lib/test/unit/browserHashProvider.test.js.map +1 -1
  161. package/lib/test/unit/directoryHandleStore.test.d.ts +2 -0
  162. package/lib/test/unit/directoryHandleStore.test.d.ts.map +1 -0
  163. package/lib/test/unit/directoryHandleStore.test.js +192 -0
  164. package/lib/test/unit/directoryHandleStore.test.js.map +1 -0
  165. package/lib/test/unit/fileApiTreeAccessors.test.js +51 -0
  166. package/lib/test/unit/fileApiTreeAccessors.test.js.map +1 -1
  167. package/lib/test/unit/fileApiTypes.test.js +30 -0
  168. package/lib/test/unit/fileApiTypes.test.js.map +1 -1
  169. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts +2 -0
  170. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts.map +1 -0
  171. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js +624 -0
  172. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
  173. package/lib/test/unit/httpTreeAccessors.test.d.ts +2 -0
  174. package/lib/test/unit/httpTreeAccessors.test.d.ts.map +1 -0
  175. package/lib/test/unit/httpTreeAccessors.test.js +1002 -0
  176. package/lib/test/unit/httpTreeAccessors.test.js.map +1 -0
  177. package/lib/test/unit/localStorageTreeAccessors.test.d.ts +2 -0
  178. package/lib/test/unit/localStorageTreeAccessors.test.d.ts.map +1 -0
  179. package/lib/test/unit/localStorageTreeAccessors.test.js +814 -0
  180. package/lib/test/unit/localStorageTreeAccessors.test.js.map +1 -0
  181. package/lib/test/utils/fileSystemAccessMocks.d.ts +53 -0
  182. package/lib/test/utils/fileSystemAccessMocks.d.ts.map +1 -0
  183. package/lib/test/utils/fileSystemAccessMocks.js +277 -0
  184. package/lib/test/utils/fileSystemAccessMocks.js.map +1 -0
  185. package/package.json +41 -34
  186. package/rush-logs/ts-web-extras.build.cache.log +0 -1
  187. package/rush-logs/ts-web-extras.build.error.log +18 -0
  188. package/rush-logs/ts-web-extras.build.log +58 -25
  189. package/rush-logs/ts-web-extras.test.cache.log +1 -0
  190. package/rush-logs/ts-web-extras.test.error.log +16 -0
  191. package/rush-logs/ts-web-extras.test.log +70 -0
  192. package/src/index.ts +2 -2
  193. package/src/packlets/crypto-utils/browserCryptoProvider.ts +311 -0
  194. package/src/packlets/{crypto → crypto-utils}/index.ts +1 -0
  195. package/src/packlets/file-api-types/index.ts +24 -3
  196. package/src/packlets/file-tree/directoryHandleStore.ts +136 -0
  197. package/src/packlets/file-tree/fileApiTreeAccessors.ts +108 -0
  198. package/src/packlets/file-tree/fileSystemAccessTreeAccessors.ts +519 -0
  199. package/src/packlets/file-tree/httpTreeAccessors.ts +381 -0
  200. package/src/packlets/file-tree/index.ts +4 -0
  201. package/src/packlets/file-tree/localStorageTreeAccessors.ts +430 -0
  202. package/src/test/mocks/idb-keyval.ts +5 -0
  203. package/src/test/unit/browserHashProvider.test.ts +1 -1
  204. package/src/test/unit/directoryHandleStore.test.ts +251 -0
  205. package/src/test/unit/fileApiTreeAccessors.test.ts +69 -0
  206. package/src/test/unit/fileApiTypes.test.ts +36 -0
  207. package/src/test/unit/fileSystemAccessTreeAccessors.test.ts +885 -0
  208. package/src/test/unit/httpTreeAccessors.test.ts +1278 -0
  209. package/src/test/unit/localStorageTreeAccessors.test.ts +1014 -0
  210. package/src/test/utils/fileSystemAccessMocks.ts +353 -0
  211. package/temp/build/typescript/ts_8nwakTlr.json +1 -0
  212. package/temp/coverage/crypto/browserHashProvider.ts.html +1 -1
  213. package/temp/coverage/crypto/index.html +1 -1
  214. package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +1018 -0
  215. package/temp/coverage/crypto-utils/browserHashProvider.ts.html +304 -0
  216. package/temp/coverage/crypto-utils/index.html +131 -0
  217. package/temp/coverage/file-tree/directoryHandleStore.ts.html +493 -0
  218. package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +330 -6
  219. package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +1642 -0
  220. package/temp/coverage/file-tree/httpTreeAccessors.ts.html +1228 -0
  221. package/temp/coverage/file-tree/index.html +69 -9
  222. package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +1375 -0
  223. package/temp/coverage/helpers/fileTreeHelpers.ts.html +1 -1
  224. package/temp/coverage/helpers/index.html +1 -1
  225. package/temp/coverage/index.html +13 -13
  226. package/temp/coverage/lcov-report/crypto/browserHashProvider.ts.html +1 -1
  227. package/temp/coverage/lcov-report/crypto/index.html +1 -1
  228. package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +1018 -0
  229. package/temp/coverage/lcov-report/crypto-utils/browserHashProvider.ts.html +304 -0
  230. package/temp/coverage/lcov-report/crypto-utils/index.html +131 -0
  231. package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +493 -0
  232. package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +330 -6
  233. package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +1642 -0
  234. package/temp/coverage/lcov-report/file-tree/httpTreeAccessors.ts.html +1228 -0
  235. package/temp/coverage/lcov-report/file-tree/index.html +69 -9
  236. package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +1375 -0
  237. package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +1 -1
  238. package/temp/coverage/lcov-report/helpers/index.html +1 -1
  239. package/temp/coverage/lcov-report/index.html +13 -13
  240. package/temp/coverage/lcov-report/url-utils/index.html +1 -1
  241. package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +1 -1
  242. package/temp/coverage/lcov.info +2829 -428
  243. package/temp/coverage/url-utils/index.html +1 -1
  244. package/temp/coverage/url-utils/urlParams.ts.html +1 -1
  245. package/temp/test/jest/haste-map-b931e4e63102f86c5bd4949f7dced44f-9d713eb41149188b4e5c0ae3d86d0a57-2ad8e16b24e391b8cdbe50b55c137169 +0 -0
  246. package/temp/test/jest/perf-cache-b931e4e63102f86c5bd4949f7dced44f-da39a3ee5e6b4b0d3255bfef95601890 +1 -0
  247. package/temp/ts-web-extras.api.json +5282 -1472
  248. package/temp/ts-web-extras.api.md +124 -1
  249. package/dist/packlets/crypto/browserHashProvider.js.map +0 -1
  250. package/dist/packlets/crypto/index.js.map +0 -1
  251. package/docs/index.md +0 -34
  252. package/docs/ts-web-extras.browserhashprovider.hashparts.md +0 -88
  253. package/docs/ts-web-extras.browserhashprovider.hashstring.md +0 -72
  254. package/docs/ts-web-extras.browserhashprovider.md +0 -66
  255. package/docs/ts-web-extras.exportasjson.md +0 -70
  256. package/docs/ts-web-extras.exportusingfilesystemapi.md +0 -104
  257. package/docs/ts-web-extras.extractdirectorypath.md +0 -52
  258. package/docs/ts-web-extras.fileapitreeaccessors.create.md +0 -72
  259. package/docs/ts-web-extras.fileapitreeaccessors.extractfilemetadata.md +0 -54
  260. package/docs/ts-web-extras.fileapitreeaccessors.fromdirectoryupload.md +0 -72
  261. package/docs/ts-web-extras.fileapitreeaccessors.fromfilelist.md +0 -72
  262. package/docs/ts-web-extras.fileapitreeaccessors.getoriginalfile.md +0 -72
  263. package/docs/ts-web-extras.fileapitreeaccessors.md +0 -114
  264. package/docs/ts-web-extras.filepickeraccepttype.accept.md +0 -11
  265. package/docs/ts-web-extras.filepickeraccepttype.description.md +0 -11
  266. package/docs/ts-web-extras.filepickeraccepttype.md +0 -75
  267. package/docs/ts-web-extras.filesystemcreatewritableoptions_2.keepexistingdata.md +0 -11
  268. package/docs/ts-web-extras.filesystemcreatewritableoptions_2.md +0 -58
  269. package/docs/ts-web-extras.filesystemdirectoryhandle_2._symbol.asynciterator_.md +0 -15
  270. package/docs/ts-web-extras.filesystemdirectoryhandle_2.entries.md +0 -15
  271. package/docs/ts-web-extras.filesystemdirectoryhandle_2.getdirectoryhandle.md +0 -66
  272. package/docs/ts-web-extras.filesystemdirectoryhandle_2.getfilehandle.md +0 -66
  273. package/docs/ts-web-extras.filesystemdirectoryhandle_2.keys.md +0 -15
  274. package/docs/ts-web-extras.filesystemdirectoryhandle_2.kind.md +0 -11
  275. package/docs/ts-web-extras.filesystemdirectoryhandle_2.md +0 -146
  276. package/docs/ts-web-extras.filesystemdirectoryhandle_2.removeentry.md +0 -66
  277. package/docs/ts-web-extras.filesystemdirectoryhandle_2.resolve.md +0 -50
  278. package/docs/ts-web-extras.filesystemdirectoryhandle_2.values.md +0 -15
  279. package/docs/ts-web-extras.filesystemfilehandle_2.createwritable.md +0 -52
  280. package/docs/ts-web-extras.filesystemfilehandle_2.getfile.md +0 -15
  281. package/docs/ts-web-extras.filesystemfilehandle_2.kind.md +0 -11
  282. package/docs/ts-web-extras.filesystemfilehandle_2.md +0 -92
  283. package/docs/ts-web-extras.filesystemgetdirectoryoptions_2.create.md +0 -11
  284. package/docs/ts-web-extras.filesystemgetdirectoryoptions_2.md +0 -58
  285. package/docs/ts-web-extras.filesystemgetfileoptions_2.create.md +0 -11
  286. package/docs/ts-web-extras.filesystemgetfileoptions_2.md +0 -58
  287. package/docs/ts-web-extras.filesystemhandle_2.issameentry.md +0 -50
  288. package/docs/ts-web-extras.filesystemhandle_2.kind.md +0 -11
  289. package/docs/ts-web-extras.filesystemhandle_2.md +0 -119
  290. package/docs/ts-web-extras.filesystemhandle_2.name.md +0 -11
  291. package/docs/ts-web-extras.filesystemhandle_2.querypermission.md +0 -52
  292. package/docs/ts-web-extras.filesystemhandle_2.requestpermission.md +0 -52
  293. package/docs/ts-web-extras.filesystemhandlepermissiondescriptor.md +0 -58
  294. package/docs/ts-web-extras.filesystemhandlepermissiondescriptor.mode.md +0 -11
  295. package/docs/ts-web-extras.filesystemremoveoptions_2.md +0 -58
  296. package/docs/ts-web-extras.filesystemremoveoptions_2.recursive.md +0 -11
  297. package/docs/ts-web-extras.filesystemwritablefilestream_2.md +0 -57
  298. package/docs/ts-web-extras.filesystemwritablefilestream_2.seek.md +0 -50
  299. package/docs/ts-web-extras.filesystemwritablefilestream_2.truncate.md +0 -50
  300. package/docs/ts-web-extras.filesystemwritablefilestream_2.write.md +0 -50
  301. package/docs/ts-web-extras.filetreehelpers.defaultfileapitreeinitparams.md +0 -13
  302. package/docs/ts-web-extras.filetreehelpers.extractfilelistmetadata.md +0 -56
  303. package/docs/ts-web-extras.filetreehelpers.extractfilemetadata.md +0 -56
  304. package/docs/ts-web-extras.filetreehelpers.fromdirectoryupload.md +0 -76
  305. package/docs/ts-web-extras.filetreehelpers.fromfilelist.md +0 -76
  306. package/docs/ts-web-extras.filetreehelpers.getoriginalfile.md +0 -72
  307. package/docs/ts-web-extras.filetreehelpers.md +0 -102
  308. package/docs/ts-web-extras.idirectoryhandletreeinitializer.dirhandles.md +0 -11
  309. package/docs/ts-web-extras.idirectoryhandletreeinitializer.md +0 -100
  310. package/docs/ts-web-extras.idirectoryhandletreeinitializer.nonrecursive.md +0 -11
  311. package/docs/ts-web-extras.idirectoryhandletreeinitializer.prefix.md +0 -11
  312. package/docs/ts-web-extras.ifilehandletreeinitializer.filehandles.md +0 -11
  313. package/docs/ts-web-extras.ifilehandletreeinitializer.md +0 -79
  314. package/docs/ts-web-extras.ifilehandletreeinitializer.prefix.md +0 -11
  315. package/docs/ts-web-extras.ifilelisttreeinitializer.filelist.md +0 -11
  316. package/docs/ts-web-extras.ifilelisttreeinitializer.md +0 -58
  317. package/docs/ts-web-extras.ifilemetadata.lastmodified.md +0 -11
  318. package/docs/ts-web-extras.ifilemetadata.md +0 -124
  319. package/docs/ts-web-extras.ifilemetadata.name.md +0 -11
  320. package/docs/ts-web-extras.ifilemetadata.path.md +0 -11
  321. package/docs/ts-web-extras.ifilemetadata.size.md +0 -11
  322. package/docs/ts-web-extras.ifilemetadata.type.md +0 -11
  323. package/docs/ts-web-extras.ifsaccessapis.md +0 -56
  324. package/docs/ts-web-extras.ifsaccessapis.showdirectorypicker.md +0 -52
  325. package/docs/ts-web-extras.ifsaccessapis.showopenfilepicker.md +0 -52
  326. package/docs/ts-web-extras.ifsaccessapis.showsavefilepicker.md +0 -52
  327. package/docs/ts-web-extras.isdirectoryhandle.md +0 -56
  328. package/docs/ts-web-extras.isfilehandle.md +0 -56
  329. package/docs/ts-web-extras.isfilepath.md +0 -52
  330. package/docs/ts-web-extras.iurlconfigoptions.config.md +0 -13
  331. package/docs/ts-web-extras.iurlconfigoptions.configstartdir.md +0 -13
  332. package/docs/ts-web-extras.iurlconfigoptions.contextfilter.md +0 -13
  333. package/docs/ts-web-extras.iurlconfigoptions.input.md +0 -13
  334. package/docs/ts-web-extras.iurlconfigoptions.inputstartdir.md +0 -13
  335. package/docs/ts-web-extras.iurlconfigoptions.interactive.md +0 -13
  336. package/docs/ts-web-extras.iurlconfigoptions.loadzip.md +0 -13
  337. package/docs/ts-web-extras.iurlconfigoptions.maxdistance.md +0 -13
  338. package/docs/ts-web-extras.iurlconfigoptions.md +0 -286
  339. package/docs/ts-web-extras.iurlconfigoptions.qualifierdefaults.md +0 -13
  340. package/docs/ts-web-extras.iurlconfigoptions.reducequalifiers.md +0 -13
  341. package/docs/ts-web-extras.iurlconfigoptions.resourcetypes.md +0 -13
  342. package/docs/ts-web-extras.iurlconfigoptions.zipfile.md +0 -13
  343. package/docs/ts-web-extras.iurlconfigoptions.zippath.md +0 -13
  344. package/docs/ts-web-extras.md +0 -512
  345. package/docs/ts-web-extras.parsecontextfilter.md +0 -52
  346. package/docs/ts-web-extras.parsequalifierdefaults.md +0 -52
  347. package/docs/ts-web-extras.parseresourcetypes.md +0 -52
  348. package/docs/ts-web-extras.parseurlparameters.md +0 -17
  349. package/docs/ts-web-extras.safeshowdirectorypicker.md +0 -72
  350. package/docs/ts-web-extras.safeshowopenfilepicker.md +0 -72
  351. package/docs/ts-web-extras.safeshowsavefilepicker.md +0 -72
  352. package/docs/ts-web-extras.showdirectorypickeroptions.id.md +0 -11
  353. package/docs/ts-web-extras.showdirectorypickeroptions.md +0 -96
  354. package/docs/ts-web-extras.showdirectorypickeroptions.mode.md +0 -11
  355. package/docs/ts-web-extras.showdirectorypickeroptions.startin.md +0 -11
  356. package/docs/ts-web-extras.showopenfilepickeroptions.excludeacceptalloption.md +0 -11
  357. package/docs/ts-web-extras.showopenfilepickeroptions.id.md +0 -11
  358. package/docs/ts-web-extras.showopenfilepickeroptions.md +0 -134
  359. package/docs/ts-web-extras.showopenfilepickeroptions.multiple.md +0 -11
  360. package/docs/ts-web-extras.showopenfilepickeroptions.startin.md +0 -11
  361. package/docs/ts-web-extras.showopenfilepickeroptions.types.md +0 -11
  362. package/docs/ts-web-extras.showsavefilepickeroptions.excludeacceptalloption.md +0 -11
  363. package/docs/ts-web-extras.showsavefilepickeroptions.id.md +0 -11
  364. package/docs/ts-web-extras.showsavefilepickeroptions.md +0 -134
  365. package/docs/ts-web-extras.showsavefilepickeroptions.startin.md +0 -11
  366. package/docs/ts-web-extras.showsavefilepickeroptions.suggestedname.md +0 -11
  367. package/docs/ts-web-extras.showsavefilepickeroptions.types.md +0 -11
  368. package/docs/ts-web-extras.supportsfilesystemaccess.md +0 -56
  369. package/docs/ts-web-extras.treeinitializer.md +0 -15
  370. package/docs/ts-web-extras.wellknowndirectory.md +0 -13
  371. package/docs/ts-web-extras.windowwithfsaccess.md +0 -15
  372. package/lib/packlets/crypto/browserHashProvider.d.ts.map +0 -1
  373. package/lib/packlets/crypto/browserHashProvider.js.map +0 -1
  374. package/lib/packlets/crypto/index.d.ts.map +0 -1
  375. package/lib/packlets/crypto/index.js.map +0 -1
  376. package/temp/build/typescript/ts_vnCx6LlY.json +0 -1
  377. package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
  378. package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +0 -1
  379. /package/dist/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
  380. /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.d.ts +0 -0
  381. /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
  382. /package/src/packlets/{crypto → crypto-utils}/browserHashProvider.ts +0 -0
  383. /package/temp/test/jest/{jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/0e/package_0eb6535f5987849d93ea51ef33a14cf6 → jest-transform-cache-b931e4e63102f86c5bd4949f7dced44f-79ef2876fae7ca75eedb2aa53dc48338/b5/package_b5f57afc9ec2c011239b1608ee5bdfa5} +0 -0
@@ -0,0 +1,203 @@
1
+ [**@fgv/ts-web-extras**](../../../../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / BrowserCryptoProvider
6
+
7
+ # Class: BrowserCryptoProvider
8
+
9
+ Browser implementation of `ICryptoProvider` using the Web Crypto API.
10
+ Uses AES-256-GCM for authenticated encryption.
11
+
12
+ Note: This provider requires a browser environment with Web Crypto API support.
13
+ In Node.js 15+, Web Crypto is available via globalThis.crypto or require('crypto').webcrypto.
14
+
15
+ ## Implements
16
+
17
+ - [`ICryptoProvider`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-web-extras/docs)
18
+
19
+ ## Constructors
20
+
21
+ ### Constructor
22
+
23
+ > **new BrowserCryptoProvider**(`cryptoApi?`): `BrowserCryptoProvider`
24
+
25
+ Creates a new BrowserCryptoProvider.
26
+
27
+ #### Parameters
28
+
29
+ | Parameter | Type | Description |
30
+ | ------ | ------ | ------ |
31
+ | `cryptoApi?` | `Crypto` | Optional Crypto instance (defaults to globalThis.crypto) |
32
+
33
+ #### Returns
34
+
35
+ `BrowserCryptoProvider`
36
+
37
+ ## Methods
38
+
39
+ ### decrypt()
40
+
41
+ > **decrypt**(`encryptedData`, `key`, `iv`, `authTag`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
42
+
43
+ Decrypts ciphertext using AES-256-GCM.
44
+
45
+ #### Parameters
46
+
47
+ | Parameter | Type | Description |
48
+ | ------ | ------ | ------ |
49
+ | `encryptedData` | `Uint8Array` | Encrypted bytes |
50
+ | `key` | `Uint8Array` | 32-byte decryption key |
51
+ | `iv` | `Uint8Array` | Initialization vector (12 bytes) |
52
+ | `authTag` | `Uint8Array` | GCM authentication tag (16 bytes) |
53
+
54
+ #### Returns
55
+
56
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
57
+
58
+ `Success` with decrypted UTF-8 string, or `Failure` with an error.
59
+
60
+ #### Implementation of
61
+
62
+ `ICryptoProvider.decrypt`
63
+
64
+ ***
65
+
66
+ ### deriveKey()
67
+
68
+ > **deriveKey**(`password`, `salt`, `iterations`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
69
+
70
+ Derives a key from a password using PBKDF2.
71
+
72
+ #### Parameters
73
+
74
+ | Parameter | Type | Description |
75
+ | ------ | ------ | ------ |
76
+ | `password` | `string` | Password string |
77
+ | `salt` | `Uint8Array` | Salt bytes (should be at least 16 bytes) |
78
+ | `iterations` | `number` | Number of iterations (recommend 100000+) |
79
+
80
+ #### Returns
81
+
82
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
83
+
84
+ Success with derived 32-byte key, or Failure with error
85
+
86
+ #### Implementation of
87
+
88
+ `ICryptoProvider.deriveKey`
89
+
90
+ ***
91
+
92
+ ### encrypt()
93
+
94
+ > **encrypt**(`plaintext`, `key`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`IEncryptionResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-extras/docs)\>\>
95
+
96
+ Encrypts plaintext using AES-256-GCM.
97
+
98
+ #### Parameters
99
+
100
+ | Parameter | Type | Description |
101
+ | ------ | ------ | ------ |
102
+ | `plaintext` | `string` | UTF-8 string to encrypt |
103
+ | `key` | `Uint8Array` | 32-byte encryption key |
104
+
105
+ #### Returns
106
+
107
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`IEncryptionResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-extras/docs)\>\>
108
+
109
+ `Success` with encryption result, or `Failure` with an error.
110
+
111
+ #### Implementation of
112
+
113
+ `ICryptoProvider.encrypt`
114
+
115
+ ***
116
+
117
+ ### fromBase64()
118
+
119
+ > **fromBase64**(`base64`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
120
+
121
+ Decodes base64 string to binary data.
122
+
123
+ #### Parameters
124
+
125
+ | Parameter | Type | Description |
126
+ | ------ | ------ | ------ |
127
+ | `base64` | `string` | Base64-encoded string |
128
+
129
+ #### Returns
130
+
131
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
132
+
133
+ Success with decoded bytes, or Failure if invalid base64
134
+
135
+ #### Implementation of
136
+
137
+ `ICryptoProvider.fromBase64`
138
+
139
+ ***
140
+
141
+ ### generateKey()
142
+
143
+ > **generateKey**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
144
+
145
+ Generates a random 32-byte key suitable for AES-256.
146
+
147
+ #### Returns
148
+
149
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
150
+
151
+ Success with generated key, or Failure with error
152
+
153
+ #### Implementation of
154
+
155
+ `ICryptoProvider.generateKey`
156
+
157
+ ***
158
+
159
+ ### generateRandomBytes()
160
+
161
+ > **generateRandomBytes**(`length`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
162
+
163
+ Generates cryptographically secure random bytes.
164
+
165
+ #### Parameters
166
+
167
+ | Parameter | Type | Description |
168
+ | ------ | ------ | ------ |
169
+ | `length` | `number` | Number of bytes to generate |
170
+
171
+ #### Returns
172
+
173
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
174
+
175
+ Success with random bytes, or Failure with error
176
+
177
+ #### Implementation of
178
+
179
+ `ICryptoProvider.generateRandomBytes`
180
+
181
+ ***
182
+
183
+ ### toBase64()
184
+
185
+ > **toBase64**(`data`): `string`
186
+
187
+ Encodes binary data to base64 string.
188
+
189
+ #### Parameters
190
+
191
+ | Parameter | Type | Description |
192
+ | ------ | ------ | ------ |
193
+ | `data` | `Uint8Array` | Binary data to encode |
194
+
195
+ #### Returns
196
+
197
+ `string`
198
+
199
+ Base64-encoded string
200
+
201
+ #### Implementation of
202
+
203
+ `ICryptoProvider.toBase64`
@@ -0,0 +1,63 @@
1
+ [**@fgv/ts-web-extras**](../../../../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / BrowserHashProvider
6
+
7
+ # Class: BrowserHashProvider
8
+
9
+ Browser-compatible hash provider using the Web Crypto API.
10
+ Supports common hash algorithms available in browsers.
11
+
12
+ ## Constructors
13
+
14
+ ### Constructor
15
+
16
+ > **new BrowserHashProvider**(): `BrowserHashProvider`
17
+
18
+ #### Returns
19
+
20
+ `BrowserHashProvider`
21
+
22
+ ## Methods
23
+
24
+ ### hashParts()
25
+
26
+ > `static` **hashParts**(`parts`, `algorithm`, `separator`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
27
+
28
+ Hash multiple strings concatenated with a separator.
29
+
30
+ #### Parameters
31
+
32
+ | Parameter | Type | Default value | Description |
33
+ | ------ | ------ | ------ | ------ |
34
+ | `parts` | `string`[] | `undefined` | Array of strings to concatenate and hash |
35
+ | `algorithm` | `string` | `'SHA-256'` | The hash algorithm to use |
36
+ | `separator` | `string` | '\|' | Separator to use between parts (default: '|') |
37
+
38
+ #### Returns
39
+
40
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
41
+
42
+ Promise resolving to the hex-encoded hash
43
+
44
+ ***
45
+
46
+ ### hashString()
47
+
48
+ > `static` **hashString**(`data`, `algorithm`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
49
+
50
+ Hash a string using the specified algorithm.
51
+
52
+ #### Parameters
53
+
54
+ | Parameter | Type | Default value | Description |
55
+ | ------ | ------ | ------ | ------ |
56
+ | `data` | `string` | `undefined` | The string to hash |
57
+ | `algorithm` | `string` | `'SHA-256'` | The hash algorithm to use |
58
+
59
+ #### Returns
60
+
61
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
62
+
63
+ Promise resolving to the hex-encoded hash
@@ -0,0 +1,18 @@
1
+ [**@fgv/ts-web-extras**](../../../../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / createBrowserCryptoProvider
6
+
7
+ # Function: createBrowserCryptoProvider()
8
+
9
+ > **createBrowserCryptoProvider**(): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`BrowserCryptoProvider`](../classes/BrowserCryptoProvider.md)\>
10
+
11
+ Creates a [BrowserCryptoProvider](../classes/BrowserCryptoProvider.md) if Web
12
+ Crypto API is available.
13
+
14
+ ## Returns
15
+
16
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`BrowserCryptoProvider`](../classes/BrowserCryptoProvider.md)\>
17
+
18
+ `Success` with provider, or `Failure` if not available
@@ -0,0 +1,19 @@
1
+ [**@fgv/ts-web-extras**](../../../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../../../README.md) / FileTreeHelpers
6
+
7
+ # FileTreeHelpers
8
+
9
+ ## Variables
10
+
11
+ - [defaultFileApiTreeInitParams](variables/defaultFileApiTreeInitParams.md)
12
+
13
+ ## Functions
14
+
15
+ - [extractFileListMetadata](functions/extractFileListMetadata.md)
16
+ - [extractFileMetadata](functions/extractFileMetadata.md)
17
+ - [fromDirectoryUpload](functions/fromDirectoryUpload.md)
18
+ - [fromFileList](functions/fromFileList.md)
19
+ - [getOriginalFile](functions/getOriginalFile.md)
@@ -0,0 +1,23 @@
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
@@ -0,0 +1,23 @@
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
@@ -0,0 +1,33 @@
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.
@@ -0,0 +1,33 @@
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.
@@ -0,0 +1,25 @@
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
@@ -0,0 +1,11 @@
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).
package/docs/README.md ADDED
@@ -0,0 +1,78 @@
1
+ **@fgv/ts-web-extras**
2
+
3
+ ***
4
+
5
+ # @fgv/ts-web-extras
6
+
7
+ Browser-compatible utilities and FileTree implementations.
8
+
9
+ This library provides browser-compatible alternatives to Node.js-specific functionality,
10
+ including Web Crypto API-based hashing, File API-based file tree implementations,
11
+ and URL parameter parsing utilities.
12
+ All exports are designed to be tree-shakeable for optimal bundle size.
13
+
14
+ ## Namespaces
15
+
16
+ - [CryptoUtils](@fgv/namespaces/CryptoUtils/README.md)
17
+ - [FileTreeHelpers](@fgv/namespaces/FileTreeHelpers/README.md)
18
+
19
+ ## Classes
20
+
21
+ - [DirectoryHandleStore](classes/DirectoryHandleStore.md)
22
+ - [FileApiTreeAccessors](classes/FileApiTreeAccessors.md)
23
+ - [FileSystemAccessTreeAccessors](classes/FileSystemAccessTreeAccessors.md)
24
+ - [HttpTreeAccessors](classes/HttpTreeAccessors.md)
25
+ - [LocalStorageTreeAccessors](classes/LocalStorageTreeAccessors.md)
26
+
27
+ ## Interfaces
28
+
29
+ - [FilePickerAcceptType](interfaces/FilePickerAcceptType.md)
30
+ - [FileSystemCreateWritableOptions](interfaces/FileSystemCreateWritableOptions.md)
31
+ - [FileSystemDirectoryHandle](interfaces/FileSystemDirectoryHandle.md)
32
+ - [FileSystemFileHandle](interfaces/FileSystemFileHandle.md)
33
+ - [FileSystemGetDirectoryOptions](interfaces/FileSystemGetDirectoryOptions.md)
34
+ - [FileSystemGetFileOptions](interfaces/FileSystemGetFileOptions.md)
35
+ - [FileSystemHandle](interfaces/FileSystemHandle.md)
36
+ - [FileSystemHandlePermissionDescriptor](interfaces/FileSystemHandlePermissionDescriptor.md)
37
+ - [FileSystemRemoveOptions](interfaces/FileSystemRemoveOptions.md)
38
+ - [FileSystemWritableFileStream](interfaces/FileSystemWritableFileStream.md)
39
+ - [IDirectoryHandleTreeInitializer](interfaces/IDirectoryHandleTreeInitializer.md)
40
+ - [IFileHandleTreeInitializer](interfaces/IFileHandleTreeInitializer.md)
41
+ - [IFileListTreeInitializer](interfaces/IFileListTreeInitializer.md)
42
+ - [IFileMetadata](interfaces/IFileMetadata.md)
43
+ - [IFileSystemAccessTreeParams](interfaces/IFileSystemAccessTreeParams.md)
44
+ - [IFsAccessApis](interfaces/IFsAccessApis.md)
45
+ - [IHttpTreeParams](interfaces/IHttpTreeParams.md)
46
+ - [ILocalStorageTreeParams](interfaces/ILocalStorageTreeParams.md)
47
+ - [IUrlConfigOptions](interfaces/IUrlConfigOptions.md)
48
+ - [ShowDirectoryPickerOptions](interfaces/ShowDirectoryPickerOptions.md)
49
+ - [ShowOpenFilePickerOptions](interfaces/ShowOpenFilePickerOptions.md)
50
+ - [ShowSaveFilePickerOptions](interfaces/ShowSaveFilePickerOptions.md)
51
+
52
+ ## Type Aliases
53
+
54
+ - [TreeInitializer](type-aliases/TreeInitializer.md)
55
+ - [WellKnownDirectory](type-aliases/WellKnownDirectory.md)
56
+ - [WindowWithFsAccess](type-aliases/WindowWithFsAccess.md)
57
+
58
+ ## Variables
59
+
60
+ - [DEFAULT\_DIRECTORY\_HANDLE\_DB](variables/DEFAULT_DIRECTORY_HANDLE_DB.md)
61
+ - [DEFAULT\_DIRECTORY\_HANDLE\_STORE](variables/DEFAULT_DIRECTORY_HANDLE_STORE.md)
62
+
63
+ ## Functions
64
+
65
+ - [exportAsJson](functions/exportAsJson.md)
66
+ - [exportUsingFileSystemAPI](functions/exportUsingFileSystemAPI.md)
67
+ - [extractDirectoryPath](functions/extractDirectoryPath.md)
68
+ - [isDirectoryHandle](functions/isDirectoryHandle.md)
69
+ - [isFileHandle](functions/isFileHandle.md)
70
+ - [isFilePath](functions/isFilePath.md)
71
+ - [parseContextFilter](functions/parseContextFilter.md)
72
+ - [parseQualifierDefaults](functions/parseQualifierDefaults.md)
73
+ - [parseResourceTypes](functions/parseResourceTypes.md)
74
+ - [parseUrlParameters](functions/parseUrlParameters.md)
75
+ - [safeShowDirectoryPicker](functions/safeShowDirectoryPicker.md)
76
+ - [safeShowOpenFilePicker](functions/safeShowOpenFilePicker.md)
77
+ - [safeShowSaveFilePicker](functions/safeShowSaveFilePicker.md)
78
+ - [supportsFileSystemAccess](functions/supportsFileSystemAccess.md)
@@ -0,0 +1,116 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / DirectoryHandleStore
6
+
7
+ # Class: DirectoryHandleStore
8
+
9
+ Manages persistence of [FileSystemDirectoryHandle](../interfaces/FileSystemDirectoryHandle.md) objects in IndexedDB.
10
+ Keyed by a label (typically the directory name).
11
+
12
+ ## Constructors
13
+
14
+ ### Constructor
15
+
16
+ > **new DirectoryHandleStore**(`dbName`, `storeName`): `DirectoryHandleStore`
17
+
18
+ #### Parameters
19
+
20
+ | Parameter | Type | Default value |
21
+ | ------ | ------ | ------ |
22
+ | `dbName` | `string` | `DEFAULT_DIRECTORY_HANDLE_DB` |
23
+ | `storeName` | `string` | `DEFAULT_DIRECTORY_HANDLE_STORE` |
24
+
25
+ #### Returns
26
+
27
+ `DirectoryHandleStore`
28
+
29
+ ## Methods
30
+
31
+ ### getAll()
32
+
33
+ > **getAll**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
34
+
35
+ Returns all stored handles as label/handle pairs.
36
+
37
+ #### Returns
38
+
39
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
40
+
41
+ Success with array of entries, or Failure
42
+
43
+ ***
44
+
45
+ ### getAllLabels()
46
+
47
+ > **getAllLabels**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
48
+
49
+ Returns all stored labels (keys).
50
+
51
+ #### Returns
52
+
53
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
54
+
55
+ Success with array of labels, or Failure
56
+
57
+ ***
58
+
59
+ ### load()
60
+
61
+ > **load**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
62
+
63
+ Retrieves a directory handle by label.
64
+
65
+ #### Parameters
66
+
67
+ | Parameter | Type | Description |
68
+ | ------ | ------ | ------ |
69
+ | `label` | `string` | Key to look up |
70
+
71
+ #### Returns
72
+
73
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
74
+
75
+ Success with handle (or undefined if not found), or Failure on error
76
+
77
+ ***
78
+
79
+ ### remove()
80
+
81
+ > **remove**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
82
+
83
+ Removes a directory handle from IndexedDB.
84
+
85
+ #### Parameters
86
+
87
+ | Parameter | Type | Description |
88
+ | ------ | ------ | ------ |
89
+ | `label` | `string` | Key to remove |
90
+
91
+ #### Returns
92
+
93
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
94
+
95
+ Success or Failure
96
+
97
+ ***
98
+
99
+ ### save()
100
+
101
+ > **save**(`label`, `handle`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
102
+
103
+ Saves a directory handle to IndexedDB under the given label.
104
+
105
+ #### Parameters
106
+
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
+
112
+ #### Returns
113
+
114
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
115
+
116
+ Success or Failure