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

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 (275) hide show
  1. package/dist/packlets/crypto-utils/browserCryptoProvider.js +330 -18
  2. package/dist/packlets/crypto-utils/browserCryptoProvider.js.map +1 -1
  3. package/dist/packlets/crypto-utils/index.js +12 -0
  4. package/dist/packlets/crypto-utils/index.js.map +1 -1
  5. package/dist/packlets/file-tree/directoryHandleStore.js.map +1 -1
  6. package/dist/packlets/file-tree/fileApiTreeAccessors.js +1 -1
  7. package/dist/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  8. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js +2 -2
  9. package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -1
  10. package/dist/packlets/file-tree/httpTreeAccessors.js +74 -44
  11. package/dist/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  12. package/dist/packlets/file-tree/localStorageTreeAccessors.js.map +1 -1
  13. package/dist/packlets/helpers/fileTreeHelpers.js +1 -1
  14. package/dist/packlets/helpers/fileTreeHelpers.js.map +1 -1
  15. package/dist/ts-web-extras.d.ts +141 -10
  16. package/dist/tsdoc-metadata.json +1 -1
  17. package/eslint.config.js +32 -0
  18. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts +115 -6
  19. package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts.map +1 -1
  20. package/lib/packlets/crypto-utils/browserCryptoProvider.js +329 -17
  21. package/lib/packlets/crypto-utils/browserCryptoProvider.js.map +1 -1
  22. package/lib/packlets/crypto-utils/index.d.ts +13 -0
  23. package/lib/packlets/crypto-utils/index.d.ts.map +1 -1
  24. package/lib/packlets/crypto-utils/index.js +13 -0
  25. package/lib/packlets/crypto-utils/index.js.map +1 -1
  26. package/lib/packlets/file-tree/directoryHandleStore.d.ts +2 -2
  27. package/lib/packlets/file-tree/directoryHandleStore.d.ts.map +1 -1
  28. package/lib/packlets/file-tree/directoryHandleStore.js.map +1 -1
  29. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts +2 -2
  30. package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts.map +1 -1
  31. package/lib/packlets/file-tree/fileApiTreeAccessors.js +1 -1
  32. package/lib/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
  33. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts.map +1 -1
  34. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js +2 -2
  35. package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -1
  36. package/lib/packlets/file-tree/httpTreeAccessors.d.ts +6 -0
  37. package/lib/packlets/file-tree/httpTreeAccessors.d.ts.map +1 -1
  38. package/lib/packlets/file-tree/httpTreeAccessors.js +74 -44
  39. package/lib/packlets/file-tree/httpTreeAccessors.js.map +1 -1
  40. package/lib/packlets/file-tree/localStorageTreeAccessors.js.map +1 -1
  41. package/lib/packlets/helpers/fileTreeHelpers.d.ts +1 -1
  42. package/lib/packlets/helpers/fileTreeHelpers.d.ts.map +1 -1
  43. package/lib/packlets/helpers/fileTreeHelpers.js +6 -6
  44. package/lib/packlets/helpers/fileTreeHelpers.js.map +1 -1
  45. package/package.json +16 -15
  46. package/.rush/temp/61c1d4a91d98f048b475a5bb3e6541c5d27819de.tar.log +0 -237
  47. package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +0 -55
  48. package/.rush/temp/operation/build/all.log +0 -55
  49. package/.rush/temp/operation/build/log-chunks.jsonl +0 -55
  50. package/.rush/temp/operation/build/state.json +0 -3
  51. package/.rush/temp/shrinkwrap-deps.json +0 -635
  52. package/CHANGELOG.md +0 -23
  53. package/config/api-extractor.json +0 -343
  54. package/config/jest.config.json +0 -19
  55. package/config/rig.json +0 -16
  56. package/config/typedoc.json +0 -6
  57. package/dist/test/mocks/idb-keyval.js +0 -6
  58. package/dist/test/mocks/idb-keyval.js.map +0 -1
  59. package/dist/test/setupTests.js +0 -74
  60. package/dist/test/setupTests.js.map +0 -1
  61. package/dist/test/unit/browserHashProvider.test.js +0 -140
  62. package/dist/test/unit/browserHashProvider.test.js.map +0 -1
  63. package/dist/test/unit/directoryHandleStore.test.js +0 -190
  64. package/dist/test/unit/directoryHandleStore.test.js.map +0 -1
  65. package/dist/test/unit/fileApiTreeAccessors.test.js +0 -1188
  66. package/dist/test/unit/fileApiTreeAccessors.test.js.map +0 -1
  67. package/dist/test/unit/fileApiTypes.test.js +0 -472
  68. package/dist/test/unit/fileApiTypes.test.js.map +0 -1
  69. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js +0 -622
  70. package/dist/test/unit/fileSystemAccessTreeAccessors.test.js.map +0 -1
  71. package/dist/test/unit/fileTreeHelpers.test.js +0 -590
  72. package/dist/test/unit/fileTreeHelpers.test.js.map +0 -1
  73. package/dist/test/unit/httpTreeAccessors.test.js +0 -1229
  74. package/dist/test/unit/httpTreeAccessors.test.js.map +0 -1
  75. package/dist/test/unit/localStorageTreeAccessors.test.js +0 -812
  76. package/dist/test/unit/localStorageTreeAccessors.test.js.map +0 -1
  77. package/dist/test/unit/urlParams.test.js +0 -393
  78. package/dist/test/unit/urlParams.test.js.map +0 -1
  79. package/dist/test/utils/fileSystemAccessMocks.js +0 -271
  80. package/dist/test/utils/fileSystemAccessMocks.js.map +0 -1
  81. package/dist/test/utils/testHelpers.js +0 -124
  82. package/dist/test/utils/testHelpers.js.map +0 -1
  83. package/docs/@fgv/namespaces/CryptoUtils/README.md +0 -18
  84. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserCryptoProvider.md +0 -203
  85. package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserHashProvider.md +0 -63
  86. package/docs/@fgv/namespaces/CryptoUtils/functions/createBrowserCryptoProvider.md +0 -18
  87. package/docs/@fgv/namespaces/FileTreeHelpers/README.md +0 -19
  88. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileListMetadata.md +0 -23
  89. package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileMetadata.md +0 -23
  90. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromDirectoryUpload.md +0 -33
  91. package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromFileList.md +0 -33
  92. package/docs/@fgv/namespaces/FileTreeHelpers/functions/getOriginalFile.md +0 -25
  93. package/docs/@fgv/namespaces/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +0 -11
  94. package/docs/README.md +0 -78
  95. package/docs/classes/DirectoryHandleStore.md +0 -116
  96. package/docs/classes/FileApiTreeAccessors.md +0 -286
  97. package/docs/classes/FileSystemAccessTreeAccessors.md +0 -557
  98. package/docs/classes/HttpTreeAccessors.md +0 -508
  99. package/docs/classes/LocalStorageTreeAccessors.md +0 -520
  100. package/docs/functions/exportAsJson.md +0 -23
  101. package/docs/functions/exportUsingFileSystemAPI.md +0 -26
  102. package/docs/functions/extractDirectoryPath.md +0 -23
  103. package/docs/functions/isDirectoryHandle.md +0 -23
  104. package/docs/functions/isFileHandle.md +0 -23
  105. package/docs/functions/isFilePath.md +0 -21
  106. package/docs/functions/parseContextFilter.md +0 -22
  107. package/docs/functions/parseQualifierDefaults.md +0 -22
  108. package/docs/functions/parseResourceTypes.md +0 -22
  109. package/docs/functions/parseUrlParameters.md +0 -15
  110. package/docs/functions/safeShowDirectoryPicker.md +0 -24
  111. package/docs/functions/safeShowOpenFilePicker.md +0 -24
  112. package/docs/functions/safeShowSaveFilePicker.md +0 -24
  113. package/docs/functions/supportsFileSystemAccess.md +0 -23
  114. package/docs/interfaces/FilePickerAcceptType.md +0 -16
  115. package/docs/interfaces/FileSystemCreateWritableOptions.md +0 -15
  116. package/docs/interfaces/FileSystemDirectoryHandle.md +0 -187
  117. package/docs/interfaces/FileSystemFileHandle.md +0 -106
  118. package/docs/interfaces/FileSystemGetDirectoryOptions.md +0 -15
  119. package/docs/interfaces/FileSystemGetFileOptions.md +0 -15
  120. package/docs/interfaces/FileSystemHandle.md +0 -69
  121. package/docs/interfaces/FileSystemHandlePermissionDescriptor.md +0 -15
  122. package/docs/interfaces/FileSystemRemoveOptions.md +0 -15
  123. package/docs/interfaces/FileSystemWritableFileStream.md +0 -127
  124. package/docs/interfaces/IDirectoryHandleTreeInitializer.md +0 -17
  125. package/docs/interfaces/IFileHandleTreeInitializer.md +0 -16
  126. package/docs/interfaces/IFileListTreeInitializer.md +0 -15
  127. package/docs/interfaces/IFileMetadata.md +0 -19
  128. package/docs/interfaces/IFileSystemAccessTreeParams.md +0 -30
  129. package/docs/interfaces/IFsAccessApis.md +0 -57
  130. package/docs/interfaces/IHttpTreeParams.md +0 -32
  131. package/docs/interfaces/ILocalStorageTreeParams.md +0 -30
  132. package/docs/interfaces/IUrlConfigOptions.md +0 -27
  133. package/docs/interfaces/ShowDirectoryPickerOptions.md +0 -17
  134. package/docs/interfaces/ShowOpenFilePickerOptions.md +0 -19
  135. package/docs/interfaces/ShowSaveFilePickerOptions.md +0 -19
  136. package/docs/type-aliases/TreeInitializer.md +0 -11
  137. package/docs/type-aliases/WellKnownDirectory.md +0 -11
  138. package/docs/type-aliases/WindowWithFsAccess.md +0 -11
  139. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_DB.md +0 -11
  140. package/docs/variables/DEFAULT_DIRECTORY_HANDLE_STORE.md +0 -11
  141. package/etc/ts-web-extras.api.md +0 -433
  142. package/lib/test/mocks/idb-keyval.d.ts +0 -6
  143. package/lib/test/mocks/idb-keyval.d.ts.map +0 -1
  144. package/lib/test/mocks/idb-keyval.js +0 -9
  145. package/lib/test/mocks/idb-keyval.js.map +0 -1
  146. package/lib/test/setupTests.d.ts +0 -2
  147. package/lib/test/setupTests.d.ts.map +0 -1
  148. package/lib/test/setupTests.js +0 -76
  149. package/lib/test/setupTests.js.map +0 -1
  150. package/lib/test/unit/browserHashProvider.test.d.ts +0 -2
  151. package/lib/test/unit/browserHashProvider.test.d.ts.map +0 -1
  152. package/lib/test/unit/browserHashProvider.test.js +0 -142
  153. package/lib/test/unit/browserHashProvider.test.js.map +0 -1
  154. package/lib/test/unit/directoryHandleStore.test.d.ts +0 -2
  155. package/lib/test/unit/directoryHandleStore.test.d.ts.map +0 -1
  156. package/lib/test/unit/directoryHandleStore.test.js +0 -192
  157. package/lib/test/unit/directoryHandleStore.test.js.map +0 -1
  158. package/lib/test/unit/fileApiTreeAccessors.test.d.ts +0 -2
  159. package/lib/test/unit/fileApiTreeAccessors.test.d.ts.map +0 -1
  160. package/lib/test/unit/fileApiTreeAccessors.test.js +0 -1190
  161. package/lib/test/unit/fileApiTreeAccessors.test.js.map +0 -1
  162. package/lib/test/unit/fileApiTypes.test.d.ts +0 -2
  163. package/lib/test/unit/fileApiTypes.test.d.ts.map +0 -1
  164. package/lib/test/unit/fileApiTypes.test.js +0 -474
  165. package/lib/test/unit/fileApiTypes.test.js.map +0 -1
  166. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts +0 -2
  167. package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts.map +0 -1
  168. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js +0 -624
  169. package/lib/test/unit/fileSystemAccessTreeAccessors.test.js.map +0 -1
  170. package/lib/test/unit/fileTreeHelpers.test.d.ts +0 -2
  171. package/lib/test/unit/fileTreeHelpers.test.d.ts.map +0 -1
  172. package/lib/test/unit/fileTreeHelpers.test.js +0 -592
  173. package/lib/test/unit/fileTreeHelpers.test.js.map +0 -1
  174. package/lib/test/unit/httpTreeAccessors.test.d.ts +0 -2
  175. package/lib/test/unit/httpTreeAccessors.test.d.ts.map +0 -1
  176. package/lib/test/unit/httpTreeAccessors.test.js +0 -1231
  177. package/lib/test/unit/httpTreeAccessors.test.js.map +0 -1
  178. package/lib/test/unit/localStorageTreeAccessors.test.d.ts +0 -2
  179. package/lib/test/unit/localStorageTreeAccessors.test.d.ts.map +0 -1
  180. package/lib/test/unit/localStorageTreeAccessors.test.js +0 -814
  181. package/lib/test/unit/localStorageTreeAccessors.test.js.map +0 -1
  182. package/lib/test/unit/urlParams.test.d.ts +0 -2
  183. package/lib/test/unit/urlParams.test.d.ts.map +0 -1
  184. package/lib/test/unit/urlParams.test.js +0 -395
  185. package/lib/test/unit/urlParams.test.js.map +0 -1
  186. package/lib/test/utils/fileSystemAccessMocks.d.ts +0 -53
  187. package/lib/test/utils/fileSystemAccessMocks.d.ts.map +0 -1
  188. package/lib/test/utils/fileSystemAccessMocks.js +0 -277
  189. package/lib/test/utils/fileSystemAccessMocks.js.map +0 -1
  190. package/lib/test/utils/testHelpers.d.ts +0 -51
  191. package/lib/test/utils/testHelpers.d.ts.map +0 -1
  192. package/lib/test/utils/testHelpers.js +0 -133
  193. package/lib/test/utils/testHelpers.js.map +0 -1
  194. package/rush-logs/ts-web-extras.build.cache.log +0 -3
  195. package/rush-logs/ts-web-extras.build.log +0 -55
  196. package/src/index.browser.ts +0 -24
  197. package/src/index.ts +0 -47
  198. package/src/packlets/crypto-utils/browserCryptoProvider.ts +0 -311
  199. package/src/packlets/crypto-utils/browserHashProvider.ts +0 -73
  200. package/src/packlets/crypto-utils/index.ts +0 -29
  201. package/src/packlets/file-api-types/index.ts +0 -366
  202. package/src/packlets/file-tree/directoryHandleStore.ts +0 -136
  203. package/src/packlets/file-tree/fileApiTreeAccessors.ts +0 -528
  204. package/src/packlets/file-tree/fileSystemAccessTreeAccessors.ts +0 -519
  205. package/src/packlets/file-tree/httpTreeAccessors.ts +0 -448
  206. package/src/packlets/file-tree/index.ts +0 -32
  207. package/src/packlets/file-tree/localStorageTreeAccessors.ts +0 -430
  208. package/src/packlets/helpers/fileTreeHelpers.ts +0 -107
  209. package/src/packlets/helpers/index.ts +0 -28
  210. package/src/packlets/url-utils/index.ts +0 -28
  211. package/src/packlets/url-utils/urlParams.ts +0 -245
  212. package/src/test/mocks/idb-keyval.ts +0 -5
  213. package/src/test/setupTests.ts +0 -87
  214. package/src/test/unit/browserHashProvider.test.ts +0 -155
  215. package/src/test/unit/browserHashProvider.test.ts.bak +0 -376
  216. package/src/test/unit/directoryHandleStore.test.ts +0 -251
  217. package/src/test/unit/fileApiTreeAccessors.test.ts +0 -1387
  218. package/src/test/unit/fileApiTypes.test.ts +0 -587
  219. package/src/test/unit/fileSystemAccessTreeAccessors.test.ts +0 -885
  220. package/src/test/unit/fileTreeHelpers.test.ts +0 -694
  221. package/src/test/unit/httpTreeAccessors.test.ts +0 -1571
  222. package/src/test/unit/localStorageTreeAccessors.test.ts +0 -1014
  223. package/src/test/unit/urlParams.test.ts +0 -464
  224. package/src/test/utils/fileSystemAccessMocks.ts +0 -353
  225. package/src/test/utils/testHelpers.ts +0 -155
  226. package/temp/build/typescript/ts_8nwakTlr.json +0 -1
  227. package/temp/coverage/base.css +0 -224
  228. package/temp/coverage/block-navigation.js +0 -87
  229. package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +0 -1018
  230. package/temp/coverage/crypto-utils/browserHashProvider.ts.html +0 -304
  231. package/temp/coverage/crypto-utils/index.html +0 -131
  232. package/temp/coverage/favicon.png +0 -0
  233. package/temp/coverage/file-tree/directoryHandleStore.ts.html +0 -493
  234. package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +0 -1669
  235. package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +0 -1642
  236. package/temp/coverage/file-tree/httpTreeAccessors.ts.html +0 -1429
  237. package/temp/coverage/file-tree/index.html +0 -176
  238. package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +0 -1375
  239. package/temp/coverage/helpers/fileTreeHelpers.ts.html +0 -406
  240. package/temp/coverage/helpers/index.html +0 -116
  241. package/temp/coverage/index.html +0 -161
  242. package/temp/coverage/lcov-report/base.css +0 -224
  243. package/temp/coverage/lcov-report/block-navigation.js +0 -87
  244. package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +0 -1018
  245. package/temp/coverage/lcov-report/crypto-utils/browserHashProvider.ts.html +0 -304
  246. package/temp/coverage/lcov-report/crypto-utils/index.html +0 -131
  247. package/temp/coverage/lcov-report/favicon.png +0 -0
  248. package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +0 -493
  249. package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +0 -1669
  250. package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +0 -1642
  251. package/temp/coverage/lcov-report/file-tree/httpTreeAccessors.ts.html +0 -1429
  252. package/temp/coverage/lcov-report/file-tree/index.html +0 -176
  253. package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +0 -1375
  254. package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +0 -406
  255. package/temp/coverage/lcov-report/helpers/index.html +0 -116
  256. package/temp/coverage/lcov-report/index.html +0 -161
  257. package/temp/coverage/lcov-report/prettify.css +0 -1
  258. package/temp/coverage/lcov-report/prettify.js +0 -2
  259. package/temp/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  260. package/temp/coverage/lcov-report/sorter.js +0 -210
  261. package/temp/coverage/lcov-report/url-utils/index.html +0 -116
  262. package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +0 -820
  263. package/temp/coverage/lcov.info +0 -3597
  264. package/temp/coverage/prettify.css +0 -1
  265. package/temp/coverage/prettify.js +0 -2
  266. package/temp/coverage/sort-arrow-sprite.png +0 -0
  267. package/temp/coverage/sorter.js +0 -210
  268. package/temp/coverage/url-utils/index.html +0 -116
  269. package/temp/coverage/url-utils/urlParams.ts.html +0 -820
  270. package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
  271. package/temp/test/jest/jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/d6/package_d6e3b0fa94752e16b0b2a2777739b973 +0 -53
  272. package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +0 -1
  273. package/temp/ts-web-extras.api.json +0 -8850
  274. package/temp/ts-web-extras.api.md +0 -433
  275. package/tsconfig.json +0 -7
@@ -1,520 +0,0 @@
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
@@ -1,23 +0,0 @@
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`
@@ -1,26 +0,0 @@
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
@@ -1,23 +0,0 @@
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`
@@ -1,23 +0,0 @@
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
@@ -1,23 +0,0 @@
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
@@ -1,21 +0,0 @@
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`
@@ -1,22 +0,0 @@
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`\>
@@ -1,22 +0,0 @@
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`[]\>