@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,520 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / LocalStorageTreeAccessors
6
+
7
+ # Class: LocalStorageTreeAccessors\<TCT\>
8
+
9
+ Browser localStorage-backed file tree accessors with persistence support.
10
+
11
+ Maps filesystem-like directory paths to localStorage keys, where each key stores
12
+ multiple collections as a JSON object. This provides a general-purpose implementation
13
+ for browser-based file tree persistence without requiring File System Access API.
14
+
15
+ Storage format per key: `{ "collection-id": "<raw file content>" }`
16
+ File paths map as: `/data/ingredients/collection-id.yaml` → stored in key for `/data/ingredients`
17
+
18
+ Legacy format (v1): `{ "collection-id": { ...parsedJsonObject } }` is auto-migrated on load.
19
+
20
+ ## Extends
21
+
22
+ - [`InMemoryTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>
23
+
24
+ ## Type Parameters
25
+
26
+ | Type Parameter | Default type |
27
+ | ------ | ------ |
28
+ | `TCT` *extends* `string` | `string` |
29
+
30
+ ## Implements
31
+
32
+ - [`IPersistentFileTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>
33
+
34
+ ## Methods
35
+
36
+ ### createDirectory()
37
+
38
+ > **createDirectory**(`dirPath`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
39
+
40
+ FileTree.IMutableFileTreeAccessors.createDirectory
41
+
42
+ #### Parameters
43
+
44
+ | Parameter | Type |
45
+ | ------ | ------ |
46
+ | `dirPath` | `string` |
47
+
48
+ #### Returns
49
+
50
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
51
+
52
+ #### Implementation of
53
+
54
+ `FileTree.IPersistentFileTreeAccessors.createDirectory`
55
+
56
+ #### Inherited from
57
+
58
+ `FileTree.InMemoryTreeAccessors.createDirectory`
59
+
60
+ ***
61
+
62
+ ### deleteDirectory()
63
+
64
+ > **deleteDirectory**(`path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`\>
65
+
66
+ FileTree.IMutableFileTreeAccessors.deleteDirectory
67
+
68
+ #### Parameters
69
+
70
+ | Parameter | Type |
71
+ | ------ | ------ |
72
+ | `path` | `string` |
73
+
74
+ #### Returns
75
+
76
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`\>
77
+
78
+ #### Implementation of
79
+
80
+ `FileTree.IPersistentFileTreeAccessors.deleteDirectory`
81
+
82
+ #### Inherited from
83
+
84
+ `FileTree.InMemoryTreeAccessors.deleteDirectory`
85
+
86
+ ***
87
+
88
+ ### deleteFile()
89
+
90
+ > **deleteFile**(`path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`\>
91
+
92
+ Delete a file and remove it from localStorage.
93
+
94
+ #### Parameters
95
+
96
+ | Parameter | Type | Description |
97
+ | ------ | ------ | ------ |
98
+ | `path` | `string` | File path to delete |
99
+
100
+ #### Returns
101
+
102
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`\>
103
+
104
+ Result with true if deleted, or error
105
+
106
+ #### Implementation of
107
+
108
+ `FileTree.IPersistentFileTreeAccessors.deleteFile`
109
+
110
+ #### Overrides
111
+
112
+ `FileTree.InMemoryTreeAccessors.deleteFile`
113
+
114
+ ***
115
+
116
+ ### fileIsMutable()
117
+
118
+ > **fileIsMutable**(`path`): [`DetailedResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`, [`SaveDetail`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\>
119
+
120
+ Check if a file is mutable and return persistence detail.
121
+
122
+ #### Parameters
123
+
124
+ | Parameter | Type | Description |
125
+ | ------ | ------ | ------ |
126
+ | `path` | `string` | File path to check |
127
+
128
+ #### Returns
129
+
130
+ [`DetailedResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`boolean`, [`SaveDetail`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\>
131
+
132
+ DetailedResult with mutability status and 'persistent' detail if mutable
133
+
134
+ #### Implementation of
135
+
136
+ `FileTree.IPersistentFileTreeAccessors.fileIsMutable`
137
+
138
+ #### Overrides
139
+
140
+ `FileTree.InMemoryTreeAccessors.fileIsMutable`
141
+
142
+ ***
143
+
144
+ ### getBaseName()
145
+
146
+ > **getBaseName**(`path`, `suffix?`): `string`
147
+
148
+ FileTree.IFileTreeAccessors.getBaseName
149
+
150
+ #### Parameters
151
+
152
+ | Parameter | Type |
153
+ | ------ | ------ |
154
+ | `path` | `string` |
155
+ | `suffix?` | `string` |
156
+
157
+ #### Returns
158
+
159
+ `string`
160
+
161
+ #### Implementation of
162
+
163
+ `FileTree.IPersistentFileTreeAccessors.getBaseName`
164
+
165
+ #### Inherited from
166
+
167
+ `FileTree.InMemoryTreeAccessors.getBaseName`
168
+
169
+ ***
170
+
171
+ ### getChildren()
172
+
173
+ > **getChildren**(`path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<readonly [`FileTreeItem`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>[]\>
174
+
175
+ FileTree.IFileTreeAccessors.getChildren
176
+
177
+ #### Parameters
178
+
179
+ | Parameter | Type |
180
+ | ------ | ------ |
181
+ | `path` | `string` |
182
+
183
+ #### Returns
184
+
185
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<readonly [`FileTreeItem`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>[]\>
186
+
187
+ #### Implementation of
188
+
189
+ `FileTree.IPersistentFileTreeAccessors.getChildren`
190
+
191
+ #### Inherited from
192
+
193
+ `FileTree.InMemoryTreeAccessors.getChildren`
194
+
195
+ ***
196
+
197
+ ### getDirtyPaths()
198
+
199
+ > **getDirtyPaths**(): `string`[]
200
+
201
+ Get list of file paths with unsaved changes.
202
+
203
+ #### Returns
204
+
205
+ `string`[]
206
+
207
+ Array of dirty file paths
208
+
209
+ #### Implementation of
210
+
211
+ `FileTree.IPersistentFileTreeAccessors.getDirtyPaths`
212
+
213
+ ***
214
+
215
+ ### getExtension()
216
+
217
+ > **getExtension**(`path`): `string`
218
+
219
+ FileTree.IFileTreeAccessors.getExtension
220
+
221
+ #### Parameters
222
+
223
+ | Parameter | Type |
224
+ | ------ | ------ |
225
+ | `path` | `string` |
226
+
227
+ #### Returns
228
+
229
+ `string`
230
+
231
+ #### Implementation of
232
+
233
+ `FileTree.IPersistentFileTreeAccessors.getExtension`
234
+
235
+ #### Inherited from
236
+
237
+ `FileTree.InMemoryTreeAccessors.getExtension`
238
+
239
+ ***
240
+
241
+ ### getFileContents()
242
+
243
+ > **getFileContents**(`path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
244
+
245
+ FileTree.IFileTreeAccessors.getFileContents
246
+
247
+ #### Parameters
248
+
249
+ | Parameter | Type |
250
+ | ------ | ------ |
251
+ | `path` | `string` |
252
+
253
+ #### Returns
254
+
255
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
256
+
257
+ #### Implementation of
258
+
259
+ `FileTree.IPersistentFileTreeAccessors.getFileContents`
260
+
261
+ #### Inherited from
262
+
263
+ `FileTree.InMemoryTreeAccessors.getFileContents`
264
+
265
+ ***
266
+
267
+ ### getFileContentType()
268
+
269
+ > **getFileContentType**(`path`, `provided?`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`TCT` \| `undefined`\>
270
+
271
+ FileTree.IFileTreeAccessors.getFileContentType
272
+
273
+ #### Parameters
274
+
275
+ | Parameter | Type |
276
+ | ------ | ------ |
277
+ | `path` | `string` |
278
+ | `provided?` | `string` |
279
+
280
+ #### Returns
281
+
282
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`TCT` \| `undefined`\>
283
+
284
+ #### Implementation of
285
+
286
+ `FileTree.IPersistentFileTreeAccessors.getFileContentType`
287
+
288
+ #### Inherited from
289
+
290
+ `FileTree.InMemoryTreeAccessors.getFileContentType`
291
+
292
+ ***
293
+
294
+ ### getItem()
295
+
296
+ > **getItem**(`itemPath`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTreeItem`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
297
+
298
+ FileTree.IFileTreeAccessors.getItem
299
+
300
+ #### Parameters
301
+
302
+ | Parameter | Type |
303
+ | ------ | ------ |
304
+ | `itemPath` | `string` |
305
+
306
+ #### Returns
307
+
308
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTreeItem`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
309
+
310
+ #### Implementation of
311
+
312
+ `FileTree.IPersistentFileTreeAccessors.getItem`
313
+
314
+ #### Inherited from
315
+
316
+ `FileTree.InMemoryTreeAccessors.getItem`
317
+
318
+ ***
319
+
320
+ ### isDirty()
321
+
322
+ > **isDirty**(): `boolean`
323
+
324
+ Check if there are unsaved changes.
325
+
326
+ #### Returns
327
+
328
+ `boolean`
329
+
330
+ True if there are dirty files
331
+
332
+ #### Implementation of
333
+
334
+ `FileTree.IPersistentFileTreeAccessors.isDirty`
335
+
336
+ ***
337
+
338
+ ### joinPaths()
339
+
340
+ > **joinPaths**(...`paths`): `string`
341
+
342
+ FileTree.IFileTreeAccessors.joinPaths
343
+
344
+ #### Parameters
345
+
346
+ | Parameter | Type |
347
+ | ------ | ------ |
348
+ | ...`paths` | `string`[] |
349
+
350
+ #### Returns
351
+
352
+ `string`
353
+
354
+ #### Implementation of
355
+
356
+ `FileTree.IPersistentFileTreeAccessors.joinPaths`
357
+
358
+ #### Inherited from
359
+
360
+ `FileTree.InMemoryTreeAccessors.joinPaths`
361
+
362
+ ***
363
+
364
+ ### resolveAbsolutePath()
365
+
366
+ > **resolveAbsolutePath**(...`paths`): `string`
367
+
368
+ FileTree.IFileTreeAccessors.resolveAbsolutePath
369
+
370
+ #### Parameters
371
+
372
+ | Parameter | Type |
373
+ | ------ | ------ |
374
+ | ...`paths` | `string`[] |
375
+
376
+ #### Returns
377
+
378
+ `string`
379
+
380
+ #### Implementation of
381
+
382
+ `FileTree.IPersistentFileTreeAccessors.resolveAbsolutePath`
383
+
384
+ #### Inherited from
385
+
386
+ `FileTree.InMemoryTreeAccessors.resolveAbsolutePath`
387
+
388
+ ***
389
+
390
+ ### saveFileContents()
391
+
392
+ > **saveFileContents**(`path`, `contents`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
393
+
394
+ Save file contents. Marks file as dirty and optionally auto-syncs.
395
+
396
+ #### Parameters
397
+
398
+ | Parameter | Type | Description |
399
+ | ------ | ------ | ------ |
400
+ | `path` | `string` | File path |
401
+ | `contents` | `string` | New file contents |
402
+
403
+ #### Returns
404
+
405
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>
406
+
407
+ Result with the saved contents or error
408
+
409
+ #### Implementation of
410
+
411
+ `FileTree.IPersistentFileTreeAccessors.saveFileContents`
412
+
413
+ #### Overrides
414
+
415
+ `FileTree.InMemoryTreeAccessors.saveFileContents`
416
+
417
+ ***
418
+
419
+ ### syncToDisk()
420
+
421
+ > **syncToDisk**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
422
+
423
+ Sync all dirty files to localStorage.
424
+
425
+ #### Returns
426
+
427
+ `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
428
+
429
+ Result indicating success or failure
430
+
431
+ #### Implementation of
432
+
433
+ `FileTree.IPersistentFileTreeAccessors.syncToDisk`
434
+
435
+ ***
436
+
437
+ ### create()
438
+
439
+ #### Call Signature
440
+
441
+ > `static` **create**\<`TCT`\>(`files`, `prefix?`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`InMemoryTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
442
+
443
+ Creates a new [InMemoryTreeAccessors](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs) instance with the supplied
444
+ in-memory files.
445
+
446
+ ##### Type Parameters
447
+
448
+ | Type Parameter | Default type |
449
+ | ------ | ------ |
450
+ | `TCT` *extends* `string` | `string` |
451
+
452
+ ##### Parameters
453
+
454
+ | Parameter | Type | Description |
455
+ | ------ | ------ | ------ |
456
+ | `files` | [`IInMemoryFile`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>[] | An array of [in-memory files](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs) to include in the tree. |
457
+ | `prefix?` | `string` | Optional prefix for the tree. |
458
+
459
+ ##### Returns
460
+
461
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`InMemoryTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
462
+
463
+ ##### Inherited from
464
+
465
+ `FileTree.InMemoryTreeAccessors.create`
466
+
467
+ #### Call Signature
468
+
469
+ > `static` **create**\<`TCT`\>(`files`, `params?`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`InMemoryTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
470
+
471
+ Creates a new [InMemoryTreeAccessors](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs) instance with the supplied
472
+ in-memory files.
473
+
474
+ ##### Type Parameters
475
+
476
+ | Type Parameter | Default type |
477
+ | ------ | ------ |
478
+ | `TCT` *extends* `string` | `string` |
479
+
480
+ ##### Parameters
481
+
482
+ | Parameter | Type | Description |
483
+ | ------ | ------ | ------ |
484
+ | `files` | [`IInMemoryFile`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>[] | An array of [in-memory files](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs) to include in the tree. |
485
+ | `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\> | Optional params for the tree. |
486
+
487
+ ##### Returns
488
+
489
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`InMemoryTreeAccessors`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`TCT`\>\>
490
+
491
+ ##### Inherited from
492
+
493
+ `FileTree.InMemoryTreeAccessors.create`
494
+
495
+ ***
496
+
497
+ ### fromStorage()
498
+
499
+ > `static` **fromStorage**\<`TCT`\>(`params`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`LocalStorageTreeAccessors`\<`TCT`\>\>
500
+
501
+ Create LocalStorageTreeAccessors from browser localStorage.
502
+ Loads all collections from the configured storage keys.
503
+
504
+ #### Type Parameters
505
+
506
+ | Type Parameter | Default type |
507
+ | ------ | ------ |
508
+ | `TCT` *extends* `string` | `string` |
509
+
510
+ #### Parameters
511
+
512
+ | Parameter | Type | Description |
513
+ | ------ | ------ | ------ |
514
+ | `params` | [`ILocalStorageTreeParams`](../interfaces/ILocalStorageTreeParams.md)\<`TCT`\> | Configuration including path-to-key mappings |
515
+
516
+ #### Returns
517
+
518
+ [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`LocalStorageTreeAccessors`\<`TCT`\>\>
519
+
520
+ Result containing the accessors or an error
@@ -0,0 +1,23 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / exportAsJson
6
+
7
+ # Function: exportAsJson()
8
+
9
+ > **exportAsJson**(`data`, `filename`): `void`
10
+
11
+ Export data as JSON file using legacy blob download method.
12
+ Creates a temporary download link and triggers file download.
13
+
14
+ ## Parameters
15
+
16
+ | Parameter | Type | Description |
17
+ | ------ | ------ | ------ |
18
+ | `data` | `unknown` | Data to export as JSON |
19
+ | `filename` | `string` | Name for the downloaded file |
20
+
21
+ ## Returns
22
+
23
+ `void`
@@ -0,0 +1,26 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / exportUsingFileSystemAPI
6
+
7
+ # Function: exportUsingFileSystemAPI()
8
+
9
+ > **exportUsingFileSystemAPI**(`data`, `suggestedName`, `description`, `window`): `Promise`\<`boolean`\>
10
+
11
+ Export data using File System Access API with fallback to blob download.
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Default value | Description |
16
+ | ------ | ------ | ------ | ------ |
17
+ | `data` | `unknown` | `undefined` | Data to export as JSON |
18
+ | `suggestedName` | `string` | `undefined` | Suggested filename for the save dialog |
19
+ | `description` | `string` | `'JSON files'` | Description for file type filter (default: 'JSON files') |
20
+ | `window` | `Window` | `globalThis.window` | Window object for API access (default: globalThis.window) |
21
+
22
+ ## Returns
23
+
24
+ `Promise`\<`boolean`\>
25
+
26
+ Promise resolving to true if saved via File System Access API, false if fallback used
@@ -0,0 +1,23 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / extractDirectoryPath
6
+
7
+ # Function: extractDirectoryPath()
8
+
9
+ > **extractDirectoryPath**(`path`): `string`
10
+
11
+ Extracts the directory path from a file or directory path
12
+ If the path appears to be a directory (no extension), returns it as-is
13
+ If the path appears to be a file, returns the parent directory
14
+
15
+ ## Parameters
16
+
17
+ | Parameter | Type |
18
+ | ------ | ------ |
19
+ | `path` | `string` |
20
+
21
+ ## Returns
22
+
23
+ `string`
@@ -0,0 +1,23 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / isDirectoryHandle
6
+
7
+ # Function: isDirectoryHandle()
8
+
9
+ > **isDirectoryHandle**(`handle`): `handle is FileSystemDirectoryHandle`
10
+
11
+ Type guard to check if a FileSystemHandle is a directory handle
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | ------ | ------ | ------ |
17
+ | `handle` | [`FileSystemHandle`](../interfaces/FileSystemHandle.md) | The handle to check |
18
+
19
+ ## Returns
20
+
21
+ `handle is FileSystemDirectoryHandle`
22
+
23
+ True if the handle is a FileSystemDirectoryHandle
@@ -0,0 +1,23 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / isFileHandle
6
+
7
+ # Function: isFileHandle()
8
+
9
+ > **isFileHandle**(`handle`): `handle is FileSystemFileHandle`
10
+
11
+ Type guard to check if a FileSystemHandle is a file handle
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | ------ | ------ | ------ |
17
+ | `handle` | [`FileSystemHandle`](../interfaces/FileSystemHandle.md) | The handle to check |
18
+
19
+ ## Returns
20
+
21
+ `handle is FileSystemFileHandle`
22
+
23
+ True if the handle is a FileSystemFileHandle
@@ -0,0 +1,21 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / isFilePath
6
+
7
+ # Function: isFilePath()
8
+
9
+ > **isFilePath**(`path`): `boolean`
10
+
11
+ Determines if a path appears to be a file (has extension) or directory
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type |
16
+ | ------ | ------ |
17
+ | `path` | `string` |
18
+
19
+ ## Returns
20
+
21
+ `boolean`
@@ -0,0 +1,22 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / parseContextFilter
6
+
7
+ # Function: parseContextFilter()
8
+
9
+ > **parseContextFilter**(`contextFilter`): `Record`\<`string`, `string`\>
10
+
11
+ Converts context filter token to context object
12
+ Example: "language=en-US|territory=US" -\> { language: "en-US", territory: "US" }
13
+
14
+ ## Parameters
15
+
16
+ | Parameter | Type |
17
+ | ------ | ------ |
18
+ | `contextFilter` | `string` |
19
+
20
+ ## Returns
21
+
22
+ `Record`\<`string`, `string`\>
@@ -0,0 +1,22 @@
1
+ [**@fgv/ts-web-extras**](../README.md)
2
+
3
+ ***
4
+
5
+ [@fgv/ts-web-extras](../README.md) / parseQualifierDefaults
6
+
7
+ # Function: parseQualifierDefaults()
8
+
9
+ > **parseQualifierDefaults**(`qualifierDefaults`): `Record`\<`string`, `string`[]\>
10
+
11
+ Converts qualifier defaults token to structured format
12
+ Example: "language=en-US,en-CA|territory=US" -\> { language: ["en-US", "en-CA"], territory: ["US"] }
13
+
14
+ ## Parameters
15
+
16
+ | Parameter | Type |
17
+ | ------ | ------ |
18
+ | `qualifierDefaults` | `string` |
19
+
20
+ ## Returns
21
+
22
+ `Record`\<`string`, `string`[]\>