@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
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > createFromLocalStorage
2
+
3
+ ## FileApiTreeAccessors.createFromLocalStorage() method
4
+
5
+ Create a persistent FileTree from browser localStorage.
6
+ Changes to files can be synced back to localStorage.
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ static createFromLocalStorage(params: ILocalStorageTreeParams<TCT>): Result<FileTree_2<TCT>>;
12
+ ```
13
+
14
+ **Parameters:**
15
+
16
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
17
+ <tbody>
18
+ <tr><td>params</td><td>ILocalStorageTreeParams&lt;TCT&gt;</td><td>Configuration including path-to-key mappings and optional autoSync</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Result&lt;FileTree_2&lt;TCT&gt;&gt;
24
+
25
+ Result containing a FileTree with persistence capability
@@ -0,0 +1,26 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > createPersistent
2
+
3
+ ## FileApiTreeAccessors.createPersistent() method
4
+
5
+ Create a persistent FileTree from a File System Access API directory handle.
6
+ Changes to files can be synced back to disk.
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ static createPersistent(dirHandle: FileSystemDirectoryHandle, params?: IFileSystemAccessTreeParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
12
+ ```
13
+
14
+ **Parameters:**
15
+
16
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
17
+ <tbody>
18
+ <tr><td>dirHandle</td><td>FileSystemDirectoryHandle</td><td>FileSystemDirectoryHandle to load files from</td></tr>
19
+ <tr><td>params</td><td>IFileSystemAccessTreeParams&lt;TCT&gt;</td><td>Optional parameters including autoSync and permission settings</td></tr>
20
+ </tbody></table>
21
+
22
+ **Returns:**
23
+
24
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
25
+
26
+ Promise resolving to a FileTree with persistence capability
@@ -0,0 +1,27 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > createPersistentFromFile
2
+
3
+ ## FileApiTreeAccessors.createPersistentFromFile() method
4
+
5
+ Create a persistent FileTree from a single File System Access API file handle.
6
+ The tree contains exactly one file at `/<filename>`.
7
+ Changes can be synced back to the original file via `syncToDisk()`.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ static createPersistentFromFile(fileHandle: FileSystemFileHandle, params?: IFileSystemAccessTreeParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
13
+ ```
14
+
15
+ **Parameters:**
16
+
17
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
18
+ <tbody>
19
+ <tr><td>fileHandle</td><td>FileSystemFileHandle</td><td>FileSystemFileHandle to load</td></tr>
20
+ <tr><td>params</td><td>IFileSystemAccessTreeParams&lt;TCT&gt;</td><td>Optional parameters including autoSync and permission settings</td></tr>
21
+ </tbody></table>
22
+
23
+ **Returns:**
24
+
25
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
26
+
27
+ Promise resolving to a FileTree with persistence capability
@@ -0,0 +1,24 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > extractFileMetadata
2
+
3
+ ## FileApiTreeAccessors.extractFileMetadata() method
4
+
5
+ Extract file metadata from a File.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static extractFileMetadata(file: File): IFileMetadata;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>file</td><td>File</td><td></td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ [IFileMetadata](../interfaces/IFileMetadata.md)
23
+
24
+ The IFileMetadata | file metadata
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > fromDirectoryUpload
2
+
3
+ ## FileApiTreeAccessors.fromDirectoryUpload() method
4
+
5
+ Create FileTree from directory upload with webkitRelativePath.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static fromDirectoryUpload(fileList: FileList, params?: IFileTreeInitParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>fileList</td><td>FileList</td><td>FileList from a directory upload (input with webkitdirectory)</td></tr>
18
+ <tr><td>params</td><td>IFileTreeInitParams&lt;TCT&gt;</td><td>Optional `IFileTreeInitParams` for the file tree.</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
24
+
25
+ Promise resolving to a FileTree with all content pre-loaded
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > fromFileList
2
+
3
+ ## FileApiTreeAccessors.fromFileList() method
4
+
5
+ Create FileTree from FileList (e.g., from input[type="file"]).
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static fromFileList(fileList: FileList, params?: IFileTreeInitParams<TCT>): Promise<Result<FileTree_2<TCT>>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>fileList</td><td>FileList</td><td>FileList from a file input element</td></tr>
18
+ <tr><td>params</td><td>IFileTreeInitParams&lt;TCT&gt;</td><td>Optional `IFileTreeInitParams` for the file tree.</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;FileTree_2&lt;TCT&gt;&gt;&gt;
24
+
25
+ Promise resolving to a FileTree with all content pre-loaded
@@ -0,0 +1,27 @@
1
+ [Home](../README.md) > [FileApiTreeAccessors](./FileApiTreeAccessors.md) > getOriginalFile
2
+
3
+ ## FileApiTreeAccessors.getOriginalFile() method
4
+
5
+ Get the File object for a specific path from the original FileList.
6
+ This is useful for accessing the original File API object for operations
7
+ like getting file metadata, MIME type, etc.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ static getOriginalFile(fileList: FileList, targetPath: string): Result<File>;
13
+ ```
14
+
15
+ **Parameters:**
16
+
17
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
18
+ <tbody>
19
+ <tr><td>fileList</td><td>FileList</td><td>The original FileList</td></tr>
20
+ <tr><td>targetPath</td><td>string</td><td>The path to find</td></tr>
21
+ </tbody></table>
22
+
23
+ **Returns:**
24
+
25
+ Result&lt;File&gt;
26
+
27
+ Result containing the File object if found
@@ -1,286 +1,172 @@
1
- [**@fgv/ts-web-extras**](../README.md)
1
+ [Home](../README.md) > FileApiTreeAccessors
2
2
 
3
- ***
4
-
5
- [@fgv/ts-web-extras](../README.md) / FileApiTreeAccessors
6
-
7
- # Class: FileApiTreeAccessors\<TCT\>
3
+ # Class: FileApiTreeAccessors
8
4
 
9
5
  Helper class to create FileTree instances from various file sources.
10
6
  Supports File API (FileList) and File System Access API handles.
11
7
 
12
- ## Type Parameters
13
-
14
- | Type Parameter | Default type |
15
- | ------ | ------ |
16
- | `TCT` *extends* `string` | `string` |
17
-
18
8
  ## Constructors
19
9
 
20
- ### Constructor
21
-
22
- > **new FileApiTreeAccessors**\<`TCT`\>(): `FileApiTreeAccessors`\<`TCT`\>
23
-
24
- #### Returns
25
-
26
- `FileApiTreeAccessors`\<`TCT`\>
27
-
28
- ## Methods
29
-
30
- ### create()
31
-
32
- > `static` **create**\<`TCT`\>(`initializers`, `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)\<`TCT`\>\>\>
33
-
34
- Create FileTree from various file sources using TreeInitializer array.
35
-
36
- #### Type Parameters
37
-
38
- | Type Parameter | Default type |
39
- | ------ | ------ |
40
- | `TCT` *extends* `string` | `string` |
41
-
42
- #### Parameters
43
-
44
- | Parameter | Type | Description |
45
- | ------ | ------ | ------ |
46
- | `initializers` | [`TreeInitializer`](../type-aliases/TreeInitializer.md)[] | Array of TreeInitializer objects specifying file sources |
47
- | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\> | Optional `IFileTreeInitParams` for the file tree. |
48
-
49
- #### Returns
10
+ <table><thead><tr><th>
50
11
 
51
- `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)\<`TCT`\>\>\>
52
-
53
- Promise resolving to a FileTree with all content pre-loaded
54
-
55
- ***
56
-
57
- ### createFromHttp()
58
-
59
- > `static` **createFromHttp**\<`TCT`\>(`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)\<`TCT`\>\>\>
60
-
61
- Create a persistent FileTree from an HTTP storage service.
12
+ Constructor
62
13
 
63
- #### Type Parameters
14
+ </th><th>
64
15
 
65
- | Type Parameter | Default type |
66
- | ------ | ------ |
67
- | `TCT` *extends* `string` | `string` |
16
+ Modifiers
68
17
 
69
- #### Parameters
18
+ </th><th>
70
19
 
71
- | Parameter | Type | Description |
72
- | ------ | ------ | ------ |
73
- | `params` | [`IHttpTreeParams`](../interfaces/IHttpTreeParams.md)\<`TCT`\> | Configuration including API base URL, namespace, and optional autoSync |
20
+ Description
74
21
 
75
- #### Returns
22
+ </th></tr></thead>
23
+ <tbody>
24
+ <tr><td>
76
25
 
77
- `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)\<`TCT`\>\>\>
26
+ `constructor()`
78
27
 
79
- Promise resolving to a FileTree with persistence capability
28
+ </td><td>
80
29
 
81
- ***
82
30
 
83
- ### createFromLocalStorage()
84
31
 
85
- > `static` **createFromLocalStorage**\<`TCT`\>(`params`): [`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)\<`TCT`\>\>
32
+ </td><td>
86
33
 
87
- Create a persistent FileTree from browser localStorage.
88
- Changes to files can be synced back to localStorage.
89
34
 
90
- #### Type Parameters
91
35
 
92
- | Type Parameter | Default type |
93
- | ------ | ------ |
94
- | `TCT` *extends* `string` | `string` |
36
+ </td></tr>
37
+ </tbody></table>
95
38
 
96
- #### Parameters
39
+ ## Methods
97
40
 
98
- | Parameter | Type | Description |
99
- | ------ | ------ | ------ |
100
- | `params` | [`ILocalStorageTreeParams`](../interfaces/ILocalStorageTreeParams.md)\<`TCT`\> | Configuration including path-to-key mappings and optional autoSync |
41
+ <table><thead><tr><th>
101
42
 
102
- #### Returns
43
+ Method
103
44
 
104
- [`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)\<`TCT`\>\>
45
+ </th><th>
105
46
 
106
- Result containing a FileTree with persistence capability
47
+ Modifiers
107
48
 
108
- #### Remarks
49
+ </th><th>
109
50
 
110
- - Works in all browsers with localStorage support
111
- - Maps directory paths to localStorage keys
112
- - Each key stores multiple collections as JSON
113
- - Files are automatically discovered from storage
51
+ Description
114
52
 
115
- #### Example
53
+ </th></tr></thead>
54
+ <tbody>
55
+ <tr><td>
116
56
 
117
- ```typescript
118
- const tree = FileApiTreeAccessors.createFromLocalStorage({
119
- pathToKeyMap: {
120
- '/data/ingredients': 'myapp:ingredients:v1',
121
- '/data/fillings': 'myapp:fillings:v1'
122
- },
123
- mutable: true,
124
- autoSync: false
125
- });
126
- ```
57
+ [createPersistent(dirHandle, params)](./FileApiTreeAccessors.createPersistent.md)
127
58
 
128
- ***
59
+ </td><td>
129
60
 
130
- ### createPersistent()
61
+ `static`
131
62
 
132
- > `static` **createPersistent**\<`TCT`\>(`dirHandle`, `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)\<`TCT`\>\>\>
63
+ </td><td>
133
64
 
134
65
  Create a persistent FileTree from a File System Access API directory handle.
135
- Changes to files can be synced back to disk.
136
-
137
- #### Type Parameters
138
66
 
139
- | Type Parameter | Default type |
140
- | ------ | ------ |
141
- | `TCT` *extends* `string` | `string` |
67
+ </td></tr>
68
+ <tr><td>
142
69
 
143
- #### Parameters
70
+ [createFromHttp(params)](./FileApiTreeAccessors.createFromHttp.md)
144
71
 
145
- | Parameter | Type | Description |
146
- | ------ | ------ | ------ |
147
- | `dirHandle` | [`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) | FileSystemDirectoryHandle to load files from |
148
- | `params?` | [`IFileSystemAccessTreeParams`](../interfaces/IFileSystemAccessTreeParams.md)\<`TCT`\> | Optional parameters including autoSync and permission settings |
72
+ </td><td>
149
73
 
150
- #### Returns
74
+ `static`
151
75
 
152
- `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)\<`TCT`\>\>\>
76
+ </td><td>
153
77
 
154
- Promise resolving to a FileTree with persistence capability
78
+ Create a persistent FileTree from an HTTP storage service.
155
79
 
156
- #### Remarks
80
+ </td></tr>
81
+ <tr><td>
157
82
 
158
- - Only works in browsers supporting File System Access API (Chrome, Edge, Opera)
159
- - Requires 'readwrite' permission on the directory handle
160
- - Falls back to read-only mode if permissions unavailable (unless requireWritePermission is true)
83
+ [createPersistentFromFile(fileHandle, params)](./FileApiTreeAccessors.createPersistentFromFile.md)
161
84
 
162
- ***
85
+ </td><td>
163
86
 
164
- ### createPersistentFromFile()
87
+ `static`
165
88
 
166
- > `static` **createPersistentFromFile**\<`TCT`\>(`fileHandle`, `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)\<`TCT`\>\>\>
89
+ </td><td>
167
90
 
168
91
  Create a persistent FileTree from a single File System Access API file handle.
169
- The tree contains exactly one file at `/<filename>`.
170
- Changes can be synced back to the original file via `syncToDisk()`.
171
-
172
- #### Type Parameters
173
-
174
- | Type Parameter | Default type |
175
- | ------ | ------ |
176
- | `TCT` *extends* `string` | `string` |
177
-
178
- #### Parameters
179
-
180
- | Parameter | Type | Description |
181
- | ------ | ------ | ------ |
182
- | `fileHandle` | [`FileSystemFileHandle`](../interfaces/FileSystemFileHandle.md) | FileSystemFileHandle to load |
183
- | `params?` | [`IFileSystemAccessTreeParams`](../interfaces/IFileSystemAccessTreeParams.md)\<`TCT`\> | Optional parameters including autoSync and permission settings |
184
-
185
- #### Returns
186
-
187
- `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)\<`TCT`\>\>\>
188
-
189
- Promise resolving to a FileTree with persistence capability
190
-
191
- ***
192
92
 
193
- ### extractFileMetadata()
93
+ </td></tr>
94
+ <tr><td>
194
95
 
195
- > `static` **extractFileMetadata**(`file`): [`IFileMetadata`](../interfaces/IFileMetadata.md)
96
+ [createFromLocalStorage(params)](./FileApiTreeAccessors.createFromLocalStorage.md)
196
97
 
197
- Extract file metadata from a File.
198
-
199
- #### Parameters
200
-
201
- | Parameter | Type |
202
- | ------ | ------ |
203
- | `file` | `File` |
98
+ </td><td>
204
99
 
205
- #### Returns
100
+ `static`
206
101
 
207
- [`IFileMetadata`](../interfaces/IFileMetadata.md)
102
+ </td><td>
208
103
 
209
- The [file metadata](../interfaces/IFileMetadata.md)
104
+ Create a persistent FileTree from browser localStorage.
210
105
 
211
- ***
106
+ </td></tr>
107
+ <tr><td>
212
108
 
213
- ### fromDirectoryUpload()
109
+ [create(initializers, params)](./FileApiTreeAccessors.create.md)
214
110
 
215
- > `static` **fromDirectoryUpload**\<`TCT`\>(`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)\<`TCT`\>\>\>
111
+ </td><td>
216
112
 
217
- Create FileTree from directory upload with webkitRelativePath.
113
+ `static`
218
114
 
219
- #### Type Parameters
115
+ </td><td>
220
116
 
221
- | Type Parameter | Default type |
222
- | ------ | ------ |
223
- | `TCT` *extends* `string` | `string` |
117
+ Create FileTree from various file sources using TreeInitializer array.
224
118
 
225
- #### Parameters
119
+ </td></tr>
120
+ <tr><td>
226
121
 
227
- | Parameter | Type | Description |
228
- | ------ | ------ | ------ |
229
- | `fileList` | `FileList` | FileList from a directory upload (input with webkitdirectory) |
230
- | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\> | Optional `IFileTreeInitParams` for the file tree. |
122
+ [fromFileList(fileList, params)](./FileApiTreeAccessors.fromFileList.md)
231
123
 
232
- #### Returns
124
+ </td><td>
233
125
 
234
- `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)\<`TCT`\>\>\>
126
+ `static`
235
127
 
236
- Promise resolving to a FileTree with all content pre-loaded
128
+ </td><td>
237
129
 
238
- ***
130
+ Create FileTree from FileList (e.g., from input[type="file"]).
239
131
 
240
- ### fromFileList()
132
+ </td></tr>
133
+ <tr><td>
241
134
 
242
- > `static` **fromFileList**\<`TCT`\>(`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)\<`TCT`\>\>\>
135
+ [fromDirectoryUpload(fileList, params)](./FileApiTreeAccessors.fromDirectoryUpload.md)
243
136
 
244
- Create FileTree from FileList (e.g., from input[type="file"]).
137
+ </td><td>
245
138
 
246
- #### Type Parameters
139
+ `static`
247
140
 
248
- | Type Parameter | Default type |
249
- | ------ | ------ |
250
- | `TCT` *extends* `string` | `string` |
141
+ </td><td>
251
142
 
252
- #### Parameters
143
+ Create FileTree from directory upload with webkitRelativePath.
253
144
 
254
- | Parameter | Type | Description |
255
- | ------ | ------ | ------ |
256
- | `fileList` | `FileList` | FileList from a file input element |
257
- | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\> | Optional `IFileTreeInitParams` for the file tree. |
145
+ </td></tr>
146
+ <tr><td>
258
147
 
259
- #### Returns
148
+ [getOriginalFile(fileList, targetPath)](./FileApiTreeAccessors.getOriginalFile.md)
260
149
 
261
- `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)\<`TCT`\>\>\>
150
+ </td><td>
262
151
 
263
- Promise resolving to a FileTree with all content pre-loaded
152
+ `static`
264
153
 
265
- ***
154
+ </td><td>
266
155
 
267
- ### getOriginalFile()
156
+ Get the File object for a specific path from the original FileList.
268
157
 
269
- > `static` **getOriginalFile**(`fileList`, `targetPath`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
158
+ </td></tr>
159
+ <tr><td>
270
160
 
271
- Get the File object for a specific path from the original FileList.
272
- This is useful for accessing the original File API object for operations
273
- like getting file metadata, MIME type, etc.
161
+ [extractFileMetadata(file)](./FileApiTreeAccessors.extractFileMetadata.md)
274
162
 
275
- #### Parameters
163
+ </td><td>
276
164
 
277
- | Parameter | Type | Description |
278
- | ------ | ------ | ------ |
279
- | `fileList` | `FileList` | The original FileList |
280
- | `targetPath` | `string` | The path to find |
165
+ `static`
281
166
 
282
- #### Returns
167
+ </td><td>
283
168
 
284
- [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
169
+ Extract file metadata from a File.
285
170
 
286
- Result containing the File object if found
171
+ </td></tr>
172
+ </tbody></table>
@@ -0,0 +1,22 @@
1
+ [Home](../README.md) > [FileSystemAccessTreeAccessors](./FileSystemAccessTreeAccessors.md) > deleteFile
2
+
3
+ ## FileSystemAccessTreeAccessors.deleteFile() method
4
+
5
+ Override deleteFile to track pending deletions for syncToDisk.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ deleteFile(path: string): Result<boolean>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>path</td><td>string</td><td></td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ Result&lt;boolean&gt;
@@ -0,0 +1,22 @@
1
+ [Home](../README.md) > [FileSystemAccessTreeAccessors](./FileSystemAccessTreeAccessors.md) > fileIsMutable
2
+
3
+ ## FileSystemAccessTreeAccessors.fileIsMutable() method
4
+
5
+ Implements `FileTree.IMutableFileTreeAccessors.fileIsMutable`
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ fileIsMutable(path: string): DetailedResult<boolean, SaveDetail>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>path</td><td>string</td><td></td></tr>
18
+ </tbody></table>
19
+
20
+ **Returns:**
21
+
22
+ DetailedResult&lt;boolean, SaveDetail&gt;
@@ -0,0 +1,25 @@
1
+ [Home](../README.md) > [FileSystemAccessTreeAccessors](./FileSystemAccessTreeAccessors.md) > fromDirectoryHandle
2
+
3
+ ## FileSystemAccessTreeAccessors.fromDirectoryHandle() method
4
+
5
+ Creates a new FileSystemAccessTreeAccessors instance from a directory handle.
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ static fromDirectoryHandle(dirHandle: FileSystemDirectoryHandle, params?: IFileSystemAccessTreeParams<TCT>): Promise<Result<FileSystemAccessTreeAccessors<TCT>>>;
11
+ ```
12
+
13
+ **Parameters:**
14
+
15
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
16
+ <tbody>
17
+ <tr><td>dirHandle</td><td>FileSystemDirectoryHandle</td><td>The FileSystemDirectoryHandle to load files from.</td></tr>
18
+ <tr><td>params</td><td>IFileSystemAccessTreeParams&lt;TCT&gt;</td><td>Optional parameters including autoSync and permission settings.</td></tr>
19
+ </tbody></table>
20
+
21
+ **Returns:**
22
+
23
+ Promise&lt;Result&lt;[FileSystemAccessTreeAccessors](FileSystemAccessTreeAccessors.md)&lt;TCT&gt;&gt;&gt;
24
+
25
+ Promise resolving to a FileSystemAccessTreeAccessors instance.
@@ -0,0 +1,29 @@
1
+ [Home](../README.md) > [FileSystemAccessTreeAccessors](./FileSystemAccessTreeAccessors.md) > fromFileHandle
2
+
3
+ ## FileSystemAccessTreeAccessors.fromFileHandle() method
4
+
5
+ Creates a new FileSystemAccessTreeAccessors instance from a single file handle.
6
+
7
+ The resulting tree contains exactly one file at `/<filename>`.
8
+ `syncToDisk()` writes changes back to the original file via the File System Access API.
9
+ New file creation is not supported on this tree (no parent directory handle).
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ static fromFileHandle(fileHandle: FileSystemFileHandle, params?: IFileSystemAccessTreeParams<TCT>): Promise<Result<FileSystemAccessTreeAccessors<TCT>>>;
15
+ ```
16
+
17
+ **Parameters:**
18
+
19
+ <table><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead>
20
+ <tbody>
21
+ <tr><td>fileHandle</td><td>FileSystemFileHandle</td><td>The FileSystemFileHandle to load.</td></tr>
22
+ <tr><td>params</td><td>IFileSystemAccessTreeParams&lt;TCT&gt;</td><td>Optional parameters including autoSync and permission settings.</td></tr>
23
+ </tbody></table>
24
+
25
+ **Returns:**
26
+
27
+ Promise&lt;Result&lt;[FileSystemAccessTreeAccessors](FileSystemAccessTreeAccessors.md)&lt;TCT&gt;&gt;&gt;
28
+
29
+ Promise resolving to a FileSystemAccessTreeAccessors instance.