@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.
- package/.rush/temp/chunked-rush-logs/ts-web-extras.build.chunks.jsonl +58 -25
- package/.rush/temp/chunked-rush-logs/ts-web-extras.test.chunks.jsonl +70 -0
- package/.rush/temp/operation/build/all.log +58 -25
- package/.rush/temp/operation/build/error.log +18 -0
- package/.rush/temp/operation/build/log-chunks.jsonl +58 -25
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/operation/test/all.log +70 -0
- package/.rush/temp/operation/test/error.log +16 -0
- package/.rush/temp/operation/test/log-chunks.jsonl +70 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +175 -163
- package/config/jest.config.json +4 -1
- package/config/typedoc.json +6 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/packlets/crypto-utils/browserCryptoProvider.js +254 -0
- package/dist/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
- package/dist/packlets/crypto-utils/browserHashProvider.js.map +1 -0
- package/dist/packlets/{crypto → crypto-utils}/index.js +1 -0
- package/dist/packlets/crypto-utils/index.js.map +1 -0
- package/dist/packlets/file-api-types/index.js +27 -3
- package/dist/packlets/file-api-types/index.js.map +1 -1
- package/dist/packlets/file-tree/directoryHandleStore.js +124 -0
- package/dist/packlets/file-tree/directoryHandleStore.js.map +1 -0
- package/dist/packlets/file-tree/fileApiTreeAccessors.js +91 -0
- package/dist/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
- package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js +414 -0
- package/dist/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
- package/dist/packlets/file-tree/httpTreeAccessors.js +279 -0
- package/dist/packlets/file-tree/httpTreeAccessors.js.map +1 -0
- package/dist/packlets/file-tree/index.js +4 -0
- package/dist/packlets/file-tree/index.js.map +1 -1
- package/dist/packlets/file-tree/localStorageTreeAccessors.js +359 -0
- package/dist/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
- package/dist/test/mocks/idb-keyval.js +6 -0
- package/dist/test/mocks/idb-keyval.js.map +1 -0
- package/dist/test/unit/browserHashProvider.test.js +1 -1
- package/dist/test/unit/browserHashProvider.test.js.map +1 -1
- package/dist/test/unit/directoryHandleStore.test.js +190 -0
- package/dist/test/unit/directoryHandleStore.test.js.map +1 -0
- package/dist/test/unit/fileApiTreeAccessors.test.js +51 -0
- package/dist/test/unit/fileApiTreeAccessors.test.js.map +1 -1
- package/dist/test/unit/fileApiTypes.test.js +30 -0
- package/dist/test/unit/fileApiTypes.test.js.map +1 -1
- package/dist/test/unit/fileSystemAccessTreeAccessors.test.js +622 -0
- package/dist/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
- package/dist/test/unit/httpTreeAccessors.test.js +1000 -0
- package/dist/test/unit/httpTreeAccessors.test.js.map +1 -0
- package/dist/test/unit/localStorageTreeAccessors.test.js +812 -0
- package/dist/test/unit/localStorageTreeAccessors.test.js.map +1 -0
- package/dist/test/utils/fileSystemAccessMocks.js +271 -0
- package/dist/test/utils/fileSystemAccessMocks.js.map +1 -0
- package/dist/ts-web-extras.d.ts +584 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/docs/@fgv/namespaces/CryptoUtils/README.md +18 -0
- package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserCryptoProvider.md +203 -0
- package/docs/@fgv/namespaces/CryptoUtils/classes/BrowserHashProvider.md +63 -0
- package/docs/@fgv/namespaces/CryptoUtils/functions/createBrowserCryptoProvider.md +18 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/README.md +19 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileListMetadata.md +23 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/functions/extractFileMetadata.md +23 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromDirectoryUpload.md +33 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/functions/fromFileList.md +33 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/functions/getOriginalFile.md +25 -0
- package/docs/@fgv/namespaces/FileTreeHelpers/variables/defaultFileApiTreeInitParams.md +11 -0
- package/docs/README.md +78 -0
- package/docs/classes/DirectoryHandleStore.md +116 -0
- package/docs/classes/FileApiTreeAccessors.md +286 -0
- package/docs/classes/FileSystemAccessTreeAccessors.md +557 -0
- package/docs/classes/HttpTreeAccessors.md +508 -0
- package/docs/classes/LocalStorageTreeAccessors.md +520 -0
- package/docs/functions/exportAsJson.md +23 -0
- package/docs/functions/exportUsingFileSystemAPI.md +26 -0
- package/docs/functions/extractDirectoryPath.md +23 -0
- package/docs/functions/isDirectoryHandle.md +23 -0
- package/docs/functions/isFileHandle.md +23 -0
- package/docs/functions/isFilePath.md +21 -0
- package/docs/functions/parseContextFilter.md +22 -0
- package/docs/functions/parseQualifierDefaults.md +22 -0
- package/docs/functions/parseResourceTypes.md +22 -0
- package/docs/functions/parseUrlParameters.md +15 -0
- package/docs/functions/safeShowDirectoryPicker.md +24 -0
- package/docs/functions/safeShowOpenFilePicker.md +24 -0
- package/docs/functions/safeShowSaveFilePicker.md +24 -0
- package/docs/functions/supportsFileSystemAccess.md +23 -0
- package/docs/interfaces/FilePickerAcceptType.md +16 -0
- package/docs/interfaces/FileSystemCreateWritableOptions.md +15 -0
- package/docs/interfaces/FileSystemDirectoryHandle.md +187 -0
- package/docs/interfaces/FileSystemFileHandle.md +106 -0
- package/docs/interfaces/FileSystemGetDirectoryOptions.md +15 -0
- package/docs/interfaces/FileSystemGetFileOptions.md +15 -0
- package/docs/interfaces/FileSystemHandle.md +69 -0
- package/docs/interfaces/FileSystemHandlePermissionDescriptor.md +15 -0
- package/docs/interfaces/FileSystemRemoveOptions.md +15 -0
- package/docs/interfaces/FileSystemWritableFileStream.md +127 -0
- package/docs/interfaces/IDirectoryHandleTreeInitializer.md +17 -0
- package/docs/interfaces/IFileHandleTreeInitializer.md +16 -0
- package/docs/interfaces/IFileListTreeInitializer.md +15 -0
- package/docs/interfaces/IFileMetadata.md +19 -0
- package/docs/interfaces/IFileSystemAccessTreeParams.md +30 -0
- package/docs/interfaces/IFsAccessApis.md +57 -0
- package/docs/interfaces/IHttpTreeParams.md +32 -0
- package/docs/interfaces/ILocalStorageTreeParams.md +30 -0
- package/docs/interfaces/IUrlConfigOptions.md +27 -0
- package/docs/interfaces/ShowDirectoryPickerOptions.md +17 -0
- package/docs/interfaces/ShowOpenFilePickerOptions.md +19 -0
- package/docs/interfaces/ShowSaveFilePickerOptions.md +19 -0
- package/docs/type-aliases/TreeInitializer.md +11 -0
- package/docs/type-aliases/WellKnownDirectory.md +11 -0
- package/docs/type-aliases/WindowWithFsAccess.md +11 -0
- package/docs/variables/DEFAULT_DIRECTORY_HANDLE_DB.md +11 -0
- package/docs/variables/DEFAULT_DIRECTORY_HANDLE_STORE.md +11 -0
- package/etc/ts-web-extras.api.md +124 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -2
- package/lib/index.js.map +1 -1
- package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts +77 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.d.ts.map +1 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.js +259 -0
- package/lib/packlets/crypto-utils/browserCryptoProvider.js.map +1 -0
- package/lib/packlets/crypto-utils/browserHashProvider.d.ts.map +1 -0
- package/lib/packlets/crypto-utils/browserHashProvider.js.map +1 -0
- package/lib/packlets/{crypto → crypto-utils}/index.d.ts +1 -0
- package/lib/packlets/crypto-utils/index.d.ts.map +1 -0
- package/lib/packlets/{crypto → crypto-utils}/index.js +1 -0
- package/lib/packlets/crypto-utils/index.js.map +1 -0
- package/lib/packlets/file-api-types/index.d.ts.map +1 -1
- package/lib/packlets/file-api-types/index.js +27 -3
- package/lib/packlets/file-api-types/index.js.map +1 -1
- package/lib/packlets/file-tree/directoryHandleStore.d.ts +59 -0
- package/lib/packlets/file-tree/directoryHandleStore.d.ts.map +1 -0
- package/lib/packlets/file-tree/directoryHandleStore.js +128 -0
- package/lib/packlets/file-tree/directoryHandleStore.js.map +1 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts +66 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.d.ts.map +1 -1
- package/lib/packlets/file-tree/fileApiTreeAccessors.js +91 -0
- package/lib/packlets/file-tree/fileApiTreeAccessors.js.map +1 -1
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts +152 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.d.ts.map +1 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js +418 -0
- package/lib/packlets/file-tree/fileSystemAccessTreeAccessors.js.map +1 -0
- package/lib/packlets/file-tree/httpTreeAccessors.d.ts +88 -0
- package/lib/packlets/file-tree/httpTreeAccessors.d.ts.map +1 -0
- package/lib/packlets/file-tree/httpTreeAccessors.js +283 -0
- package/lib/packlets/file-tree/httpTreeAccessors.js.map +1 -0
- package/lib/packlets/file-tree/index.d.ts +4 -0
- package/lib/packlets/file-tree/index.d.ts.map +1 -1
- package/lib/packlets/file-tree/index.js +4 -0
- package/lib/packlets/file-tree/index.js.map +1 -1
- package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts +141 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.d.ts.map +1 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.js +363 -0
- package/lib/packlets/file-tree/localStorageTreeAccessors.js.map +1 -0
- package/lib/test/mocks/idb-keyval.d.ts +6 -0
- package/lib/test/mocks/idb-keyval.d.ts.map +1 -0
- package/lib/test/mocks/idb-keyval.js +9 -0
- package/lib/test/mocks/idb-keyval.js.map +1 -0
- package/lib/test/unit/browserHashProvider.test.js +21 -21
- package/lib/test/unit/browserHashProvider.test.js.map +1 -1
- package/lib/test/unit/directoryHandleStore.test.d.ts +2 -0
- package/lib/test/unit/directoryHandleStore.test.d.ts.map +1 -0
- package/lib/test/unit/directoryHandleStore.test.js +192 -0
- package/lib/test/unit/directoryHandleStore.test.js.map +1 -0
- package/lib/test/unit/fileApiTreeAccessors.test.js +51 -0
- package/lib/test/unit/fileApiTreeAccessors.test.js.map +1 -1
- package/lib/test/unit/fileApiTypes.test.js +30 -0
- package/lib/test/unit/fileApiTypes.test.js.map +1 -1
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts +2 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.d.ts.map +1 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.js +624 -0
- package/lib/test/unit/fileSystemAccessTreeAccessors.test.js.map +1 -0
- package/lib/test/unit/httpTreeAccessors.test.d.ts +2 -0
- package/lib/test/unit/httpTreeAccessors.test.d.ts.map +1 -0
- package/lib/test/unit/httpTreeAccessors.test.js +1002 -0
- package/lib/test/unit/httpTreeAccessors.test.js.map +1 -0
- package/lib/test/unit/localStorageTreeAccessors.test.d.ts +2 -0
- package/lib/test/unit/localStorageTreeAccessors.test.d.ts.map +1 -0
- package/lib/test/unit/localStorageTreeAccessors.test.js +814 -0
- package/lib/test/unit/localStorageTreeAccessors.test.js.map +1 -0
- package/lib/test/utils/fileSystemAccessMocks.d.ts +53 -0
- package/lib/test/utils/fileSystemAccessMocks.d.ts.map +1 -0
- package/lib/test/utils/fileSystemAccessMocks.js +277 -0
- package/lib/test/utils/fileSystemAccessMocks.js.map +1 -0
- package/package.json +41 -34
- package/rush-logs/ts-web-extras.build.cache.log +0 -1
- package/rush-logs/ts-web-extras.build.error.log +18 -0
- package/rush-logs/ts-web-extras.build.log +58 -25
- package/rush-logs/ts-web-extras.test.cache.log +1 -0
- package/rush-logs/ts-web-extras.test.error.log +16 -0
- package/rush-logs/ts-web-extras.test.log +70 -0
- package/src/index.ts +2 -2
- package/src/packlets/crypto-utils/browserCryptoProvider.ts +311 -0
- package/src/packlets/{crypto → crypto-utils}/index.ts +1 -0
- package/src/packlets/file-api-types/index.ts +24 -3
- package/src/packlets/file-tree/directoryHandleStore.ts +136 -0
- package/src/packlets/file-tree/fileApiTreeAccessors.ts +108 -0
- package/src/packlets/file-tree/fileSystemAccessTreeAccessors.ts +519 -0
- package/src/packlets/file-tree/httpTreeAccessors.ts +381 -0
- package/src/packlets/file-tree/index.ts +4 -0
- package/src/packlets/file-tree/localStorageTreeAccessors.ts +430 -0
- package/src/test/mocks/idb-keyval.ts +5 -0
- package/src/test/unit/browserHashProvider.test.ts +1 -1
- package/src/test/unit/directoryHandleStore.test.ts +251 -0
- package/src/test/unit/fileApiTreeAccessors.test.ts +69 -0
- package/src/test/unit/fileApiTypes.test.ts +36 -0
- package/src/test/unit/fileSystemAccessTreeAccessors.test.ts +885 -0
- package/src/test/unit/httpTreeAccessors.test.ts +1278 -0
- package/src/test/unit/localStorageTreeAccessors.test.ts +1014 -0
- package/src/test/utils/fileSystemAccessMocks.ts +353 -0
- package/temp/build/typescript/ts_8nwakTlr.json +1 -0
- package/temp/coverage/crypto/browserHashProvider.ts.html +1 -1
- package/temp/coverage/crypto/index.html +1 -1
- package/temp/coverage/crypto-utils/browserCryptoProvider.ts.html +1018 -0
- package/temp/coverage/crypto-utils/browserHashProvider.ts.html +304 -0
- package/temp/coverage/crypto-utils/index.html +131 -0
- package/temp/coverage/file-tree/directoryHandleStore.ts.html +493 -0
- package/temp/coverage/file-tree/fileApiTreeAccessors.ts.html +330 -6
- package/temp/coverage/file-tree/fileSystemAccessTreeAccessors.ts.html +1642 -0
- package/temp/coverage/file-tree/httpTreeAccessors.ts.html +1228 -0
- package/temp/coverage/file-tree/index.html +69 -9
- package/temp/coverage/file-tree/localStorageTreeAccessors.ts.html +1375 -0
- package/temp/coverage/helpers/fileTreeHelpers.ts.html +1 -1
- package/temp/coverage/helpers/index.html +1 -1
- package/temp/coverage/index.html +13 -13
- package/temp/coverage/lcov-report/crypto/browserHashProvider.ts.html +1 -1
- package/temp/coverage/lcov-report/crypto/index.html +1 -1
- package/temp/coverage/lcov-report/crypto-utils/browserCryptoProvider.ts.html +1018 -0
- package/temp/coverage/lcov-report/crypto-utils/browserHashProvider.ts.html +304 -0
- package/temp/coverage/lcov-report/crypto-utils/index.html +131 -0
- package/temp/coverage/lcov-report/file-tree/directoryHandleStore.ts.html +493 -0
- package/temp/coverage/lcov-report/file-tree/fileApiTreeAccessors.ts.html +330 -6
- package/temp/coverage/lcov-report/file-tree/fileSystemAccessTreeAccessors.ts.html +1642 -0
- package/temp/coverage/lcov-report/file-tree/httpTreeAccessors.ts.html +1228 -0
- package/temp/coverage/lcov-report/file-tree/index.html +69 -9
- package/temp/coverage/lcov-report/file-tree/localStorageTreeAccessors.ts.html +1375 -0
- package/temp/coverage/lcov-report/helpers/fileTreeHelpers.ts.html +1 -1
- package/temp/coverage/lcov-report/helpers/index.html +1 -1
- package/temp/coverage/lcov-report/index.html +13 -13
- package/temp/coverage/lcov-report/url-utils/index.html +1 -1
- package/temp/coverage/lcov-report/url-utils/urlParams.ts.html +1 -1
- package/temp/coverage/lcov.info +2829 -428
- package/temp/coverage/url-utils/index.html +1 -1
- package/temp/coverage/url-utils/urlParams.ts.html +1 -1
- package/temp/test/jest/haste-map-b931e4e63102f86c5bd4949f7dced44f-9d713eb41149188b4e5c0ae3d86d0a57-2ad8e16b24e391b8cdbe50b55c137169 +0 -0
- package/temp/test/jest/perf-cache-b931e4e63102f86c5bd4949f7dced44f-da39a3ee5e6b4b0d3255bfef95601890 +1 -0
- package/temp/ts-web-extras.api.json +5282 -1472
- package/temp/ts-web-extras.api.md +124 -1
- package/dist/packlets/crypto/browserHashProvider.js.map +0 -1
- package/dist/packlets/crypto/index.js.map +0 -1
- package/docs/index.md +0 -34
- package/docs/ts-web-extras.browserhashprovider.hashparts.md +0 -88
- package/docs/ts-web-extras.browserhashprovider.hashstring.md +0 -72
- package/docs/ts-web-extras.browserhashprovider.md +0 -66
- package/docs/ts-web-extras.exportasjson.md +0 -70
- package/docs/ts-web-extras.exportusingfilesystemapi.md +0 -104
- package/docs/ts-web-extras.extractdirectorypath.md +0 -52
- package/docs/ts-web-extras.fileapitreeaccessors.create.md +0 -72
- package/docs/ts-web-extras.fileapitreeaccessors.extractfilemetadata.md +0 -54
- package/docs/ts-web-extras.fileapitreeaccessors.fromdirectoryupload.md +0 -72
- package/docs/ts-web-extras.fileapitreeaccessors.fromfilelist.md +0 -72
- package/docs/ts-web-extras.fileapitreeaccessors.getoriginalfile.md +0 -72
- package/docs/ts-web-extras.fileapitreeaccessors.md +0 -114
- package/docs/ts-web-extras.filepickeraccepttype.accept.md +0 -11
- package/docs/ts-web-extras.filepickeraccepttype.description.md +0 -11
- package/docs/ts-web-extras.filepickeraccepttype.md +0 -75
- package/docs/ts-web-extras.filesystemcreatewritableoptions_2.keepexistingdata.md +0 -11
- package/docs/ts-web-extras.filesystemcreatewritableoptions_2.md +0 -58
- package/docs/ts-web-extras.filesystemdirectoryhandle_2._symbol.asynciterator_.md +0 -15
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.entries.md +0 -15
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.getdirectoryhandle.md +0 -66
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.getfilehandle.md +0 -66
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.keys.md +0 -15
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.kind.md +0 -11
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.md +0 -146
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.removeentry.md +0 -66
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.resolve.md +0 -50
- package/docs/ts-web-extras.filesystemdirectoryhandle_2.values.md +0 -15
- package/docs/ts-web-extras.filesystemfilehandle_2.createwritable.md +0 -52
- package/docs/ts-web-extras.filesystemfilehandle_2.getfile.md +0 -15
- package/docs/ts-web-extras.filesystemfilehandle_2.kind.md +0 -11
- package/docs/ts-web-extras.filesystemfilehandle_2.md +0 -92
- package/docs/ts-web-extras.filesystemgetdirectoryoptions_2.create.md +0 -11
- package/docs/ts-web-extras.filesystemgetdirectoryoptions_2.md +0 -58
- package/docs/ts-web-extras.filesystemgetfileoptions_2.create.md +0 -11
- package/docs/ts-web-extras.filesystemgetfileoptions_2.md +0 -58
- package/docs/ts-web-extras.filesystemhandle_2.issameentry.md +0 -50
- package/docs/ts-web-extras.filesystemhandle_2.kind.md +0 -11
- package/docs/ts-web-extras.filesystemhandle_2.md +0 -119
- package/docs/ts-web-extras.filesystemhandle_2.name.md +0 -11
- package/docs/ts-web-extras.filesystemhandle_2.querypermission.md +0 -52
- package/docs/ts-web-extras.filesystemhandle_2.requestpermission.md +0 -52
- package/docs/ts-web-extras.filesystemhandlepermissiondescriptor.md +0 -58
- package/docs/ts-web-extras.filesystemhandlepermissiondescriptor.mode.md +0 -11
- package/docs/ts-web-extras.filesystemremoveoptions_2.md +0 -58
- package/docs/ts-web-extras.filesystemremoveoptions_2.recursive.md +0 -11
- package/docs/ts-web-extras.filesystemwritablefilestream_2.md +0 -57
- package/docs/ts-web-extras.filesystemwritablefilestream_2.seek.md +0 -50
- package/docs/ts-web-extras.filesystemwritablefilestream_2.truncate.md +0 -50
- package/docs/ts-web-extras.filesystemwritablefilestream_2.write.md +0 -50
- package/docs/ts-web-extras.filetreehelpers.defaultfileapitreeinitparams.md +0 -13
- package/docs/ts-web-extras.filetreehelpers.extractfilelistmetadata.md +0 -56
- package/docs/ts-web-extras.filetreehelpers.extractfilemetadata.md +0 -56
- package/docs/ts-web-extras.filetreehelpers.fromdirectoryupload.md +0 -76
- package/docs/ts-web-extras.filetreehelpers.fromfilelist.md +0 -76
- package/docs/ts-web-extras.filetreehelpers.getoriginalfile.md +0 -72
- package/docs/ts-web-extras.filetreehelpers.md +0 -102
- package/docs/ts-web-extras.idirectoryhandletreeinitializer.dirhandles.md +0 -11
- package/docs/ts-web-extras.idirectoryhandletreeinitializer.md +0 -100
- package/docs/ts-web-extras.idirectoryhandletreeinitializer.nonrecursive.md +0 -11
- package/docs/ts-web-extras.idirectoryhandletreeinitializer.prefix.md +0 -11
- package/docs/ts-web-extras.ifilehandletreeinitializer.filehandles.md +0 -11
- package/docs/ts-web-extras.ifilehandletreeinitializer.md +0 -79
- package/docs/ts-web-extras.ifilehandletreeinitializer.prefix.md +0 -11
- package/docs/ts-web-extras.ifilelisttreeinitializer.filelist.md +0 -11
- package/docs/ts-web-extras.ifilelisttreeinitializer.md +0 -58
- package/docs/ts-web-extras.ifilemetadata.lastmodified.md +0 -11
- package/docs/ts-web-extras.ifilemetadata.md +0 -124
- package/docs/ts-web-extras.ifilemetadata.name.md +0 -11
- package/docs/ts-web-extras.ifilemetadata.path.md +0 -11
- package/docs/ts-web-extras.ifilemetadata.size.md +0 -11
- package/docs/ts-web-extras.ifilemetadata.type.md +0 -11
- package/docs/ts-web-extras.ifsaccessapis.md +0 -56
- package/docs/ts-web-extras.ifsaccessapis.showdirectorypicker.md +0 -52
- package/docs/ts-web-extras.ifsaccessapis.showopenfilepicker.md +0 -52
- package/docs/ts-web-extras.ifsaccessapis.showsavefilepicker.md +0 -52
- package/docs/ts-web-extras.isdirectoryhandle.md +0 -56
- package/docs/ts-web-extras.isfilehandle.md +0 -56
- package/docs/ts-web-extras.isfilepath.md +0 -52
- package/docs/ts-web-extras.iurlconfigoptions.config.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.configstartdir.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.contextfilter.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.input.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.inputstartdir.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.interactive.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.loadzip.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.maxdistance.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.md +0 -286
- package/docs/ts-web-extras.iurlconfigoptions.qualifierdefaults.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.reducequalifiers.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.resourcetypes.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.zipfile.md +0 -13
- package/docs/ts-web-extras.iurlconfigoptions.zippath.md +0 -13
- package/docs/ts-web-extras.md +0 -512
- package/docs/ts-web-extras.parsecontextfilter.md +0 -52
- package/docs/ts-web-extras.parsequalifierdefaults.md +0 -52
- package/docs/ts-web-extras.parseresourcetypes.md +0 -52
- package/docs/ts-web-extras.parseurlparameters.md +0 -17
- package/docs/ts-web-extras.safeshowdirectorypicker.md +0 -72
- package/docs/ts-web-extras.safeshowopenfilepicker.md +0 -72
- package/docs/ts-web-extras.safeshowsavefilepicker.md +0 -72
- package/docs/ts-web-extras.showdirectorypickeroptions.id.md +0 -11
- package/docs/ts-web-extras.showdirectorypickeroptions.md +0 -96
- package/docs/ts-web-extras.showdirectorypickeroptions.mode.md +0 -11
- package/docs/ts-web-extras.showdirectorypickeroptions.startin.md +0 -11
- package/docs/ts-web-extras.showopenfilepickeroptions.excludeacceptalloption.md +0 -11
- package/docs/ts-web-extras.showopenfilepickeroptions.id.md +0 -11
- package/docs/ts-web-extras.showopenfilepickeroptions.md +0 -134
- package/docs/ts-web-extras.showopenfilepickeroptions.multiple.md +0 -11
- package/docs/ts-web-extras.showopenfilepickeroptions.startin.md +0 -11
- package/docs/ts-web-extras.showopenfilepickeroptions.types.md +0 -11
- package/docs/ts-web-extras.showsavefilepickeroptions.excludeacceptalloption.md +0 -11
- package/docs/ts-web-extras.showsavefilepickeroptions.id.md +0 -11
- package/docs/ts-web-extras.showsavefilepickeroptions.md +0 -134
- package/docs/ts-web-extras.showsavefilepickeroptions.startin.md +0 -11
- package/docs/ts-web-extras.showsavefilepickeroptions.suggestedname.md +0 -11
- package/docs/ts-web-extras.showsavefilepickeroptions.types.md +0 -11
- package/docs/ts-web-extras.supportsfilesystemaccess.md +0 -56
- package/docs/ts-web-extras.treeinitializer.md +0 -15
- package/docs/ts-web-extras.wellknowndirectory.md +0 -13
- package/docs/ts-web-extras.windowwithfsaccess.md +0 -15
- package/lib/packlets/crypto/browserHashProvider.d.ts.map +0 -1
- package/lib/packlets/crypto/browserHashProvider.js.map +0 -1
- package/lib/packlets/crypto/index.d.ts.map +0 -1
- package/lib/packlets/crypto/index.js.map +0 -1
- package/temp/build/typescript/ts_vnCx6LlY.json +0 -1
- package/temp/test/jest/haste-map-7492f1b44480e0cdd1f220078fb3afd8-c8dd6c3430605adeb2f1cadf4f75e791-8c9336785555d572065b28c111982ba4 +0 -0
- package/temp/test/jest/perf-cache-7492f1b44480e0cdd1f220078fb3afd8-da39a3ee5e6b4b0d3255bfef95601890 +0 -1
- /package/dist/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
- /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.d.ts +0 -0
- /package/lib/packlets/{crypto → crypto-utils}/browserHashProvider.js +0 -0
- /package/src/packlets/{crypto → crypto-utils}/browserHashProvider.ts +0 -0
- /package/temp/test/jest/{jest-transform-cache-7492f1b44480e0cdd1f220078fb3afd8-79ef2876fae7ca75eedb2aa53dc48338/0e/package_0eb6535f5987849d93ea51ef33a14cf6 → jest-transform-cache-b931e4e63102f86c5bd4949f7dced44f-79ef2876fae7ca75eedb2aa53dc48338/b5/package_b5f57afc9ec2c011239b1608ee5bdfa5} +0 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / BrowserCryptoProvider
|
|
6
|
+
|
|
7
|
+
# Class: BrowserCryptoProvider
|
|
8
|
+
|
|
9
|
+
Browser implementation of `ICryptoProvider` using the Web Crypto API.
|
|
10
|
+
Uses AES-256-GCM for authenticated encryption.
|
|
11
|
+
|
|
12
|
+
Note: This provider requires a browser environment with Web Crypto API support.
|
|
13
|
+
In Node.js 15+, Web Crypto is available via globalThis.crypto or require('crypto').webcrypto.
|
|
14
|
+
|
|
15
|
+
## Implements
|
|
16
|
+
|
|
17
|
+
- [`ICryptoProvider`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-web-extras/docs)
|
|
18
|
+
|
|
19
|
+
## Constructors
|
|
20
|
+
|
|
21
|
+
### Constructor
|
|
22
|
+
|
|
23
|
+
> **new BrowserCryptoProvider**(`cryptoApi?`): `BrowserCryptoProvider`
|
|
24
|
+
|
|
25
|
+
Creates a new BrowserCryptoProvider.
|
|
26
|
+
|
|
27
|
+
#### Parameters
|
|
28
|
+
|
|
29
|
+
| Parameter | Type | Description |
|
|
30
|
+
| ------ | ------ | ------ |
|
|
31
|
+
| `cryptoApi?` | `Crypto` | Optional Crypto instance (defaults to globalThis.crypto) |
|
|
32
|
+
|
|
33
|
+
#### Returns
|
|
34
|
+
|
|
35
|
+
`BrowserCryptoProvider`
|
|
36
|
+
|
|
37
|
+
## Methods
|
|
38
|
+
|
|
39
|
+
### decrypt()
|
|
40
|
+
|
|
41
|
+
> **decrypt**(`encryptedData`, `key`, `iv`, `authTag`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
42
|
+
|
|
43
|
+
Decrypts ciphertext using AES-256-GCM.
|
|
44
|
+
|
|
45
|
+
#### Parameters
|
|
46
|
+
|
|
47
|
+
| Parameter | Type | Description |
|
|
48
|
+
| ------ | ------ | ------ |
|
|
49
|
+
| `encryptedData` | `Uint8Array` | Encrypted bytes |
|
|
50
|
+
| `key` | `Uint8Array` | 32-byte decryption key |
|
|
51
|
+
| `iv` | `Uint8Array` | Initialization vector (12 bytes) |
|
|
52
|
+
| `authTag` | `Uint8Array` | GCM authentication tag (16 bytes) |
|
|
53
|
+
|
|
54
|
+
#### Returns
|
|
55
|
+
|
|
56
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
57
|
+
|
|
58
|
+
`Success` with decrypted UTF-8 string, or `Failure` with an error.
|
|
59
|
+
|
|
60
|
+
#### Implementation of
|
|
61
|
+
|
|
62
|
+
`ICryptoProvider.decrypt`
|
|
63
|
+
|
|
64
|
+
***
|
|
65
|
+
|
|
66
|
+
### deriveKey()
|
|
67
|
+
|
|
68
|
+
> **deriveKey**(`password`, `salt`, `iterations`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
|
|
69
|
+
|
|
70
|
+
Derives a key from a password using PBKDF2.
|
|
71
|
+
|
|
72
|
+
#### Parameters
|
|
73
|
+
|
|
74
|
+
| Parameter | Type | Description |
|
|
75
|
+
| ------ | ------ | ------ |
|
|
76
|
+
| `password` | `string` | Password string |
|
|
77
|
+
| `salt` | `Uint8Array` | Salt bytes (should be at least 16 bytes) |
|
|
78
|
+
| `iterations` | `number` | Number of iterations (recommend 100000+) |
|
|
79
|
+
|
|
80
|
+
#### Returns
|
|
81
|
+
|
|
82
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
|
|
83
|
+
|
|
84
|
+
Success with derived 32-byte key, or Failure with error
|
|
85
|
+
|
|
86
|
+
#### Implementation of
|
|
87
|
+
|
|
88
|
+
`ICryptoProvider.deriveKey`
|
|
89
|
+
|
|
90
|
+
***
|
|
91
|
+
|
|
92
|
+
### encrypt()
|
|
93
|
+
|
|
94
|
+
> **encrypt**(`plaintext`, `key`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`IEncryptionResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-extras/docs)\>\>
|
|
95
|
+
|
|
96
|
+
Encrypts plaintext using AES-256-GCM.
|
|
97
|
+
|
|
98
|
+
#### Parameters
|
|
99
|
+
|
|
100
|
+
| Parameter | Type | Description |
|
|
101
|
+
| ------ | ------ | ------ |
|
|
102
|
+
| `plaintext` | `string` | UTF-8 string to encrypt |
|
|
103
|
+
| `key` | `Uint8Array` | 32-byte encryption key |
|
|
104
|
+
|
|
105
|
+
#### Returns
|
|
106
|
+
|
|
107
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`IEncryptionResult`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-extras/docs)\>\>
|
|
108
|
+
|
|
109
|
+
`Success` with encryption result, or `Failure` with an error.
|
|
110
|
+
|
|
111
|
+
#### Implementation of
|
|
112
|
+
|
|
113
|
+
`ICryptoProvider.encrypt`
|
|
114
|
+
|
|
115
|
+
***
|
|
116
|
+
|
|
117
|
+
### fromBase64()
|
|
118
|
+
|
|
119
|
+
> **fromBase64**(`base64`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
|
|
120
|
+
|
|
121
|
+
Decodes base64 string to binary data.
|
|
122
|
+
|
|
123
|
+
#### Parameters
|
|
124
|
+
|
|
125
|
+
| Parameter | Type | Description |
|
|
126
|
+
| ------ | ------ | ------ |
|
|
127
|
+
| `base64` | `string` | Base64-encoded string |
|
|
128
|
+
|
|
129
|
+
#### Returns
|
|
130
|
+
|
|
131
|
+
[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
|
|
132
|
+
|
|
133
|
+
Success with decoded bytes, or Failure if invalid base64
|
|
134
|
+
|
|
135
|
+
#### Implementation of
|
|
136
|
+
|
|
137
|
+
`ICryptoProvider.fromBase64`
|
|
138
|
+
|
|
139
|
+
***
|
|
140
|
+
|
|
141
|
+
### generateKey()
|
|
142
|
+
|
|
143
|
+
> **generateKey**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
|
|
144
|
+
|
|
145
|
+
Generates a random 32-byte key suitable for AES-256.
|
|
146
|
+
|
|
147
|
+
#### Returns
|
|
148
|
+
|
|
149
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>\>
|
|
150
|
+
|
|
151
|
+
Success with generated key, or Failure with error
|
|
152
|
+
|
|
153
|
+
#### Implementation of
|
|
154
|
+
|
|
155
|
+
`ICryptoProvider.generateKey`
|
|
156
|
+
|
|
157
|
+
***
|
|
158
|
+
|
|
159
|
+
### generateRandomBytes()
|
|
160
|
+
|
|
161
|
+
> **generateRandomBytes**(`length`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
|
|
162
|
+
|
|
163
|
+
Generates cryptographically secure random bytes.
|
|
164
|
+
|
|
165
|
+
#### Parameters
|
|
166
|
+
|
|
167
|
+
| Parameter | Type | Description |
|
|
168
|
+
| ------ | ------ | ------ |
|
|
169
|
+
| `length` | `number` | Number of bytes to generate |
|
|
170
|
+
|
|
171
|
+
#### Returns
|
|
172
|
+
|
|
173
|
+
[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`Uint8Array`\<`ArrayBufferLike`\>\>
|
|
174
|
+
|
|
175
|
+
Success with random bytes, or Failure with error
|
|
176
|
+
|
|
177
|
+
#### Implementation of
|
|
178
|
+
|
|
179
|
+
`ICryptoProvider.generateRandomBytes`
|
|
180
|
+
|
|
181
|
+
***
|
|
182
|
+
|
|
183
|
+
### toBase64()
|
|
184
|
+
|
|
185
|
+
> **toBase64**(`data`): `string`
|
|
186
|
+
|
|
187
|
+
Encodes binary data to base64 string.
|
|
188
|
+
|
|
189
|
+
#### Parameters
|
|
190
|
+
|
|
191
|
+
| Parameter | Type | Description |
|
|
192
|
+
| ------ | ------ | ------ |
|
|
193
|
+
| `data` | `Uint8Array` | Binary data to encode |
|
|
194
|
+
|
|
195
|
+
#### Returns
|
|
196
|
+
|
|
197
|
+
`string`
|
|
198
|
+
|
|
199
|
+
Base64-encoded string
|
|
200
|
+
|
|
201
|
+
#### Implementation of
|
|
202
|
+
|
|
203
|
+
`ICryptoProvider.toBase64`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / BrowserHashProvider
|
|
6
|
+
|
|
7
|
+
# Class: BrowserHashProvider
|
|
8
|
+
|
|
9
|
+
Browser-compatible hash provider using the Web Crypto API.
|
|
10
|
+
Supports common hash algorithms available in browsers.
|
|
11
|
+
|
|
12
|
+
## Constructors
|
|
13
|
+
|
|
14
|
+
### Constructor
|
|
15
|
+
|
|
16
|
+
> **new BrowserHashProvider**(): `BrowserHashProvider`
|
|
17
|
+
|
|
18
|
+
#### Returns
|
|
19
|
+
|
|
20
|
+
`BrowserHashProvider`
|
|
21
|
+
|
|
22
|
+
## Methods
|
|
23
|
+
|
|
24
|
+
### hashParts()
|
|
25
|
+
|
|
26
|
+
> `static` **hashParts**(`parts`, `algorithm`, `separator`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
27
|
+
|
|
28
|
+
Hash multiple strings concatenated with a separator.
|
|
29
|
+
|
|
30
|
+
#### Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Type | Default value | Description |
|
|
33
|
+
| ------ | ------ | ------ | ------ |
|
|
34
|
+
| `parts` | `string`[] | `undefined` | Array of strings to concatenate and hash |
|
|
35
|
+
| `algorithm` | `string` | `'SHA-256'` | The hash algorithm to use |
|
|
36
|
+
| `separator` | `string` | '\|' | Separator to use between parts (default: '|') |
|
|
37
|
+
|
|
38
|
+
#### Returns
|
|
39
|
+
|
|
40
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
41
|
+
|
|
42
|
+
Promise resolving to the hex-encoded hash
|
|
43
|
+
|
|
44
|
+
***
|
|
45
|
+
|
|
46
|
+
### hashString()
|
|
47
|
+
|
|
48
|
+
> `static` **hashString**(`data`, `algorithm`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
49
|
+
|
|
50
|
+
Hash a string using the specified algorithm.
|
|
51
|
+
|
|
52
|
+
#### Parameters
|
|
53
|
+
|
|
54
|
+
| Parameter | Type | Default value | Description |
|
|
55
|
+
| ------ | ------ | ------ | ------ |
|
|
56
|
+
| `data` | `string` | `undefined` | The string to hash |
|
|
57
|
+
| `algorithm` | `string` | `'SHA-256'` | The hash algorithm to use |
|
|
58
|
+
|
|
59
|
+
#### Returns
|
|
60
|
+
|
|
61
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`\>\>
|
|
62
|
+
|
|
63
|
+
Promise resolving to the hex-encoded hash
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [CryptoUtils](../README.md) / createBrowserCryptoProvider
|
|
6
|
+
|
|
7
|
+
# Function: createBrowserCryptoProvider()
|
|
8
|
+
|
|
9
|
+
> **createBrowserCryptoProvider**(): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`BrowserCryptoProvider`](../classes/BrowserCryptoProvider.md)\>
|
|
10
|
+
|
|
11
|
+
Creates a [BrowserCryptoProvider](../classes/BrowserCryptoProvider.md) if Web
|
|
12
|
+
Crypto API is available.
|
|
13
|
+
|
|
14
|
+
## Returns
|
|
15
|
+
|
|
16
|
+
[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`BrowserCryptoProvider`](../classes/BrowserCryptoProvider.md)\>
|
|
17
|
+
|
|
18
|
+
`Success` with provider, or `Failure` if not available
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../README.md) / FileTreeHelpers
|
|
6
|
+
|
|
7
|
+
# FileTreeHelpers
|
|
8
|
+
|
|
9
|
+
## Variables
|
|
10
|
+
|
|
11
|
+
- [defaultFileApiTreeInitParams](variables/defaultFileApiTreeInitParams.md)
|
|
12
|
+
|
|
13
|
+
## Functions
|
|
14
|
+
|
|
15
|
+
- [extractFileListMetadata](functions/extractFileListMetadata.md)
|
|
16
|
+
- [extractFileMetadata](functions/extractFileMetadata.md)
|
|
17
|
+
- [fromDirectoryUpload](functions/fromDirectoryUpload.md)
|
|
18
|
+
- [fromFileList](functions/fromFileList.md)
|
|
19
|
+
- [getOriginalFile](functions/getOriginalFile.md)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / extractFileListMetadata
|
|
6
|
+
|
|
7
|
+
# Function: extractFileListMetadata()
|
|
8
|
+
|
|
9
|
+
> **extractFileListMetadata**(`fileList`): [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)[]
|
|
10
|
+
|
|
11
|
+
Helper function to extract metadata from a `FileList`.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
| Parameter | Type | Description |
|
|
16
|
+
| ------ | ------ | ------ |
|
|
17
|
+
| `fileList` | `FileList` | The `FileList` to extract metadata from |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
[`IFileMetadata`](../../../../interfaces/IFileMetadata.md)[]
|
|
22
|
+
|
|
23
|
+
Array of [file metadata](../../../../interfaces/IFileMetadata.md) objects
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / extractFileMetadata
|
|
6
|
+
|
|
7
|
+
# Function: extractFileMetadata()
|
|
8
|
+
|
|
9
|
+
> **extractFileMetadata**(`file`): [`IFileMetadata`](../../../../interfaces/IFileMetadata.md)
|
|
10
|
+
|
|
11
|
+
Helper function to extract metadata from a `File`.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
| Parameter | Type | Description |
|
|
16
|
+
| ------ | ------ | ------ |
|
|
17
|
+
| `file` | `File` | The File to extract metadata from |
|
|
18
|
+
|
|
19
|
+
## Returns
|
|
20
|
+
|
|
21
|
+
[`IFileMetadata`](../../../../interfaces/IFileMetadata.md)
|
|
22
|
+
|
|
23
|
+
[file metadata](../../../../interfaces/IFileMetadata.md) object
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / fromDirectoryUpload
|
|
6
|
+
|
|
7
|
+
# Function: fromDirectoryUpload()
|
|
8
|
+
|
|
9
|
+
> **fromDirectoryUpload**(`fileList`, `params?`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
|
|
10
|
+
|
|
11
|
+
Helper function to create a new FileTree instance
|
|
12
|
+
from a directory upload with webkitRelativePath support.
|
|
13
|
+
|
|
14
|
+
## Parameters
|
|
15
|
+
|
|
16
|
+
| Parameter | Type | Description |
|
|
17
|
+
| ------ | ------ | ------ |
|
|
18
|
+
| `fileList` | `FileList` | FileList from a directory upload (input with webkitdirectory) |
|
|
19
|
+
| `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\> | Optional `IFileTreeInitParams` for the file tree. |
|
|
20
|
+
|
|
21
|
+
## Returns
|
|
22
|
+
|
|
23
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
|
|
24
|
+
|
|
25
|
+
Promise resolving to a successful Result with the new FileTree instance
|
|
26
|
+
if successful, or a failed Result with an error message otherwise
|
|
27
|
+
|
|
28
|
+
## Remarks
|
|
29
|
+
|
|
30
|
+
The content type of the files is always `string` and the default
|
|
31
|
+
accept contentType function (`FileTree.FileItem.defaultAcceptContentType`) is
|
|
32
|
+
is used, so content type is derived from the mime type of the file, when
|
|
33
|
+
available.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / fromFileList
|
|
6
|
+
|
|
7
|
+
# Function: fromFileList()
|
|
8
|
+
|
|
9
|
+
> **fromFileList**(`fileList`, `params?`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
|
|
10
|
+
|
|
11
|
+
Helper function to create a new FileTree instance
|
|
12
|
+
from a browser FileList (e.g., from input[type="file"]).
|
|
13
|
+
|
|
14
|
+
## Parameters
|
|
15
|
+
|
|
16
|
+
| Parameter | Type | Description |
|
|
17
|
+
| ------ | ------ | ------ |
|
|
18
|
+
| `fileList` | `FileList` | FileList from a file input element |
|
|
19
|
+
| `params?` | [`IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\> | Optional `IFileTreeInitParams` for the file tree. |
|
|
20
|
+
|
|
21
|
+
## Returns
|
|
22
|
+
|
|
23
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileTree_2`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>\>\>
|
|
24
|
+
|
|
25
|
+
Promise resolving to a successful Result with the new FileTree instance
|
|
26
|
+
if successful, or a failed Result with an error message otherwise
|
|
27
|
+
|
|
28
|
+
## Remarks
|
|
29
|
+
|
|
30
|
+
The content type of the files is always `string` and the default
|
|
31
|
+
accept contentType function (`FileTree.FileItem.defaultAcceptContentType`) is
|
|
32
|
+
used, so content type is derived from the mime type of the file, when
|
|
33
|
+
available.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / getOriginalFile
|
|
6
|
+
|
|
7
|
+
# Function: getOriginalFile()
|
|
8
|
+
|
|
9
|
+
> **getOriginalFile**(`fileList`, `path`): [`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
|
|
10
|
+
|
|
11
|
+
Helper function to get the original File object from a FileList by path.
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
|
|
15
|
+
| Parameter | Type | Description |
|
|
16
|
+
| ------ | ------ | ------ |
|
|
17
|
+
| `fileList` | `FileList` | The original FileList |
|
|
18
|
+
| `path` | `string` | The path to the file |
|
|
19
|
+
|
|
20
|
+
## Returns
|
|
21
|
+
|
|
22
|
+
[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`File`\>
|
|
23
|
+
|
|
24
|
+
A successful Result with the File object if found,
|
|
25
|
+
or a failed Result with an error message otherwise
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../../../../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../../../../README.md) / [FileTreeHelpers](../README.md) / defaultFileApiTreeInitParams
|
|
6
|
+
|
|
7
|
+
# Variable: defaultFileApiTreeInitParams
|
|
8
|
+
|
|
9
|
+
> `const` **defaultFileApiTreeInitParams**: [`FileTree.IFileTreeInitParams`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-json-base/docs)\<`string`\>
|
|
10
|
+
|
|
11
|
+
Default initialization parameters for a `FileTree` using [FileApiTreeAccessors](../../../../classes/FileApiTreeAccessors.md).
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
**@fgv/ts-web-extras**
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
# @fgv/ts-web-extras
|
|
6
|
+
|
|
7
|
+
Browser-compatible utilities and FileTree implementations.
|
|
8
|
+
|
|
9
|
+
This library provides browser-compatible alternatives to Node.js-specific functionality,
|
|
10
|
+
including Web Crypto API-based hashing, File API-based file tree implementations,
|
|
11
|
+
and URL parameter parsing utilities.
|
|
12
|
+
All exports are designed to be tree-shakeable for optimal bundle size.
|
|
13
|
+
|
|
14
|
+
## Namespaces
|
|
15
|
+
|
|
16
|
+
- [CryptoUtils](@fgv/namespaces/CryptoUtils/README.md)
|
|
17
|
+
- [FileTreeHelpers](@fgv/namespaces/FileTreeHelpers/README.md)
|
|
18
|
+
|
|
19
|
+
## Classes
|
|
20
|
+
|
|
21
|
+
- [DirectoryHandleStore](classes/DirectoryHandleStore.md)
|
|
22
|
+
- [FileApiTreeAccessors](classes/FileApiTreeAccessors.md)
|
|
23
|
+
- [FileSystemAccessTreeAccessors](classes/FileSystemAccessTreeAccessors.md)
|
|
24
|
+
- [HttpTreeAccessors](classes/HttpTreeAccessors.md)
|
|
25
|
+
- [LocalStorageTreeAccessors](classes/LocalStorageTreeAccessors.md)
|
|
26
|
+
|
|
27
|
+
## Interfaces
|
|
28
|
+
|
|
29
|
+
- [FilePickerAcceptType](interfaces/FilePickerAcceptType.md)
|
|
30
|
+
- [FileSystemCreateWritableOptions](interfaces/FileSystemCreateWritableOptions.md)
|
|
31
|
+
- [FileSystemDirectoryHandle](interfaces/FileSystemDirectoryHandle.md)
|
|
32
|
+
- [FileSystemFileHandle](interfaces/FileSystemFileHandle.md)
|
|
33
|
+
- [FileSystemGetDirectoryOptions](interfaces/FileSystemGetDirectoryOptions.md)
|
|
34
|
+
- [FileSystemGetFileOptions](interfaces/FileSystemGetFileOptions.md)
|
|
35
|
+
- [FileSystemHandle](interfaces/FileSystemHandle.md)
|
|
36
|
+
- [FileSystemHandlePermissionDescriptor](interfaces/FileSystemHandlePermissionDescriptor.md)
|
|
37
|
+
- [FileSystemRemoveOptions](interfaces/FileSystemRemoveOptions.md)
|
|
38
|
+
- [FileSystemWritableFileStream](interfaces/FileSystemWritableFileStream.md)
|
|
39
|
+
- [IDirectoryHandleTreeInitializer](interfaces/IDirectoryHandleTreeInitializer.md)
|
|
40
|
+
- [IFileHandleTreeInitializer](interfaces/IFileHandleTreeInitializer.md)
|
|
41
|
+
- [IFileListTreeInitializer](interfaces/IFileListTreeInitializer.md)
|
|
42
|
+
- [IFileMetadata](interfaces/IFileMetadata.md)
|
|
43
|
+
- [IFileSystemAccessTreeParams](interfaces/IFileSystemAccessTreeParams.md)
|
|
44
|
+
- [IFsAccessApis](interfaces/IFsAccessApis.md)
|
|
45
|
+
- [IHttpTreeParams](interfaces/IHttpTreeParams.md)
|
|
46
|
+
- [ILocalStorageTreeParams](interfaces/ILocalStorageTreeParams.md)
|
|
47
|
+
- [IUrlConfigOptions](interfaces/IUrlConfigOptions.md)
|
|
48
|
+
- [ShowDirectoryPickerOptions](interfaces/ShowDirectoryPickerOptions.md)
|
|
49
|
+
- [ShowOpenFilePickerOptions](interfaces/ShowOpenFilePickerOptions.md)
|
|
50
|
+
- [ShowSaveFilePickerOptions](interfaces/ShowSaveFilePickerOptions.md)
|
|
51
|
+
|
|
52
|
+
## Type Aliases
|
|
53
|
+
|
|
54
|
+
- [TreeInitializer](type-aliases/TreeInitializer.md)
|
|
55
|
+
- [WellKnownDirectory](type-aliases/WellKnownDirectory.md)
|
|
56
|
+
- [WindowWithFsAccess](type-aliases/WindowWithFsAccess.md)
|
|
57
|
+
|
|
58
|
+
## Variables
|
|
59
|
+
|
|
60
|
+
- [DEFAULT\_DIRECTORY\_HANDLE\_DB](variables/DEFAULT_DIRECTORY_HANDLE_DB.md)
|
|
61
|
+
- [DEFAULT\_DIRECTORY\_HANDLE\_STORE](variables/DEFAULT_DIRECTORY_HANDLE_STORE.md)
|
|
62
|
+
|
|
63
|
+
## Functions
|
|
64
|
+
|
|
65
|
+
- [exportAsJson](functions/exportAsJson.md)
|
|
66
|
+
- [exportUsingFileSystemAPI](functions/exportUsingFileSystemAPI.md)
|
|
67
|
+
- [extractDirectoryPath](functions/extractDirectoryPath.md)
|
|
68
|
+
- [isDirectoryHandle](functions/isDirectoryHandle.md)
|
|
69
|
+
- [isFileHandle](functions/isFileHandle.md)
|
|
70
|
+
- [isFilePath](functions/isFilePath.md)
|
|
71
|
+
- [parseContextFilter](functions/parseContextFilter.md)
|
|
72
|
+
- [parseQualifierDefaults](functions/parseQualifierDefaults.md)
|
|
73
|
+
- [parseResourceTypes](functions/parseResourceTypes.md)
|
|
74
|
+
- [parseUrlParameters](functions/parseUrlParameters.md)
|
|
75
|
+
- [safeShowDirectoryPicker](functions/safeShowDirectoryPicker.md)
|
|
76
|
+
- [safeShowOpenFilePicker](functions/safeShowOpenFilePicker.md)
|
|
77
|
+
- [safeShowSaveFilePicker](functions/safeShowSaveFilePicker.md)
|
|
78
|
+
- [supportsFileSystemAccess](functions/supportsFileSystemAccess.md)
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
[**@fgv/ts-web-extras**](../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[@fgv/ts-web-extras](../README.md) / DirectoryHandleStore
|
|
6
|
+
|
|
7
|
+
# Class: DirectoryHandleStore
|
|
8
|
+
|
|
9
|
+
Manages persistence of [FileSystemDirectoryHandle](../interfaces/FileSystemDirectoryHandle.md) objects in IndexedDB.
|
|
10
|
+
Keyed by a label (typically the directory name).
|
|
11
|
+
|
|
12
|
+
## Constructors
|
|
13
|
+
|
|
14
|
+
### Constructor
|
|
15
|
+
|
|
16
|
+
> **new DirectoryHandleStore**(`dbName`, `storeName`): `DirectoryHandleStore`
|
|
17
|
+
|
|
18
|
+
#### Parameters
|
|
19
|
+
|
|
20
|
+
| Parameter | Type | Default value |
|
|
21
|
+
| ------ | ------ | ------ |
|
|
22
|
+
| `dbName` | `string` | `DEFAULT_DIRECTORY_HANDLE_DB` |
|
|
23
|
+
| `storeName` | `string` | `DEFAULT_DIRECTORY_HANDLE_STORE` |
|
|
24
|
+
|
|
25
|
+
#### Returns
|
|
26
|
+
|
|
27
|
+
`DirectoryHandleStore`
|
|
28
|
+
|
|
29
|
+
## Methods
|
|
30
|
+
|
|
31
|
+
### getAll()
|
|
32
|
+
|
|
33
|
+
> **getAll**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
|
|
34
|
+
|
|
35
|
+
Returns all stored handles as label/handle pairs.
|
|
36
|
+
|
|
37
|
+
#### Returns
|
|
38
|
+
|
|
39
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`object`[]\>\>
|
|
40
|
+
|
|
41
|
+
Success with array of entries, or Failure
|
|
42
|
+
|
|
43
|
+
***
|
|
44
|
+
|
|
45
|
+
### getAllLabels()
|
|
46
|
+
|
|
47
|
+
> **getAllLabels**(): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
|
|
48
|
+
|
|
49
|
+
Returns all stored labels (keys).
|
|
50
|
+
|
|
51
|
+
#### Returns
|
|
52
|
+
|
|
53
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`string`[]\>\>
|
|
54
|
+
|
|
55
|
+
Success with array of labels, or Failure
|
|
56
|
+
|
|
57
|
+
***
|
|
58
|
+
|
|
59
|
+
### load()
|
|
60
|
+
|
|
61
|
+
> **load**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
|
|
62
|
+
|
|
63
|
+
Retrieves a directory handle by label.
|
|
64
|
+
|
|
65
|
+
#### Parameters
|
|
66
|
+
|
|
67
|
+
| Parameter | Type | Description |
|
|
68
|
+
| ------ | ------ | ------ |
|
|
69
|
+
| `label` | `string` | Key to look up |
|
|
70
|
+
|
|
71
|
+
#### Returns
|
|
72
|
+
|
|
73
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<[`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) \| `undefined`\>\>
|
|
74
|
+
|
|
75
|
+
Success with handle (or undefined if not found), or Failure on error
|
|
76
|
+
|
|
77
|
+
***
|
|
78
|
+
|
|
79
|
+
### remove()
|
|
80
|
+
|
|
81
|
+
> **remove**(`label`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
|
|
82
|
+
|
|
83
|
+
Removes a directory handle from IndexedDB.
|
|
84
|
+
|
|
85
|
+
#### Parameters
|
|
86
|
+
|
|
87
|
+
| Parameter | Type | Description |
|
|
88
|
+
| ------ | ------ | ------ |
|
|
89
|
+
| `label` | `string` | Key to remove |
|
|
90
|
+
|
|
91
|
+
#### Returns
|
|
92
|
+
|
|
93
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
|
|
94
|
+
|
|
95
|
+
Success or Failure
|
|
96
|
+
|
|
97
|
+
***
|
|
98
|
+
|
|
99
|
+
### save()
|
|
100
|
+
|
|
101
|
+
> **save**(`label`, `handle`): `Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
|
|
102
|
+
|
|
103
|
+
Saves a directory handle to IndexedDB under the given label.
|
|
104
|
+
|
|
105
|
+
#### Parameters
|
|
106
|
+
|
|
107
|
+
| Parameter | Type | Description |
|
|
108
|
+
| ------ | ------ | ------ |
|
|
109
|
+
| `label` | `string` | Key to store the handle under (typically dirHandle.name) |
|
|
110
|
+
| `handle` | [`FileSystemDirectoryHandle`](../interfaces/FileSystemDirectoryHandle.md) | The FileSystemDirectoryHandle to persist |
|
|
111
|
+
|
|
112
|
+
#### Returns
|
|
113
|
+
|
|
114
|
+
`Promise`\<[`Result`](https://github.com/ErikFortune/fgv/tree/main/libraries/ts-utils/docs)\<`void`\>\>
|
|
115
|
+
|
|
116
|
+
Success or Failure
|