{"version":3,"file":"node_modules_capacitor_filesystem_dist_esm_web_js.js","mappings":"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","sources":["./node_modules/@capacitor/filesystem/dist/esm/web.js"],"sourcesContent":["import { WebPlugin } from '@capacitor/core';\nfunction resolve(path) {\n const posix = path.split('/').filter(item => item !== '.');\n const newPosix = [];\n posix.forEach(item => {\n if (item === '..' &&\n newPosix.length > 0 &&\n newPosix[newPosix.length - 1] !== '..') {\n newPosix.pop();\n }\n else {\n newPosix.push(item);\n }\n });\n return newPosix.join('/');\n}\nfunction isPathParent(parent, children) {\n parent = resolve(parent);\n children = resolve(children);\n const pathsA = parent.split('/');\n const pathsB = children.split('/');\n return (parent !== children &&\n pathsA.every((value, index) => value === pathsB[index]));\n}\nexport class FilesystemWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.DB_VERSION = 1;\n this.DB_NAME = 'Disc';\n this._writeCmds = ['add', 'put', 'delete'];\n }\n async initDb() {\n if (this._db !== undefined) {\n return this._db;\n }\n if (!('indexedDB' in window)) {\n throw this.unavailable(\"This browser doesn't support IndexedDB\");\n }\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.DB_NAME, this.DB_VERSION);\n request.onupgradeneeded = FilesystemWeb.doUpgrade;\n request.onsuccess = () => {\n this._db = request.result;\n resolve(request.result);\n };\n request.onerror = () => reject(request.error);\n request.onblocked = () => {\n console.warn('db blocked');\n };\n });\n }\n static doUpgrade(event) {\n const eventTarget = event.target;\n const db = eventTarget.result;\n switch (event.oldVersion) {\n case 0:\n case 1:\n default: {\n if (db.objectStoreNames.contains('FileStorage')) {\n db.deleteObjectStore('FileStorage');\n }\n const store = db.createObjectStore('FileStorage', { keyPath: 'path' });\n store.createIndex('by_folder', 'folder');\n }\n }\n }\n async dbRequest(cmd, args) {\n const readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly';\n return this.initDb().then((conn) => {\n return new Promise((resolve, reject) => {\n const tx = conn.transaction(['FileStorage'], readFlag);\n const store = tx.objectStore('FileStorage');\n const req = store[cmd](...args);\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n });\n }\n async dbIndexRequest(indexName, cmd, args) {\n const readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly';\n return this.initDb().then((conn) => {\n return new Promise((resolve, reject) => {\n const tx = conn.transaction(['FileStorage'], readFlag);\n const store = tx.objectStore('FileStorage');\n const index = store.index(indexName);\n const req = index[cmd](...args);\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n });\n }\n getPath(directory, uriPath) {\n const cleanedUriPath = uriPath !== undefined ? uriPath.replace(/^[/]+|[/]+$/g, '') : '';\n let fsPath = '';\n if (directory !== undefined)\n fsPath += '/' + directory;\n if (uriPath !== '')\n fsPath += '/' + cleanedUriPath;\n return fsPath;\n }\n async clear() {\n const conn = await this.initDb();\n const tx = conn.transaction(['FileStorage'], 'readwrite');\n const store = tx.objectStore('FileStorage');\n store.clear();\n }\n /**\n * Read a file from disk\n * @param options options for the file read\n * @return a promise that resolves with the read file data result\n */\n async readFile(options) {\n const path = this.getPath(options.directory, options.path);\n // const encoding = options.encoding;\n const entry = (await this.dbRequest('get', [path]));\n if (entry === undefined)\n throw Error('File does not exist.');\n return { data: entry.content ? entry.content : '' };\n }\n /**\n * Write a file to disk in the specified location on device\n * @param options options for the file write\n * @return a promise that resolves with the file write result\n */\n async writeFile(options) {\n const path = this.getPath(options.directory, options.path);\n const data = options.data;\n const doRecursive = options.recursive;\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (occupiedEntry && occupiedEntry.type === 'directory')\n throw Error('The supplied path is a directory.');\n const encoding = options.encoding;\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n if (parentEntry === undefined) {\n const subDirIndex = parentPath.indexOf('/', 1);\n if (subDirIndex !== -1) {\n const parentArgPath = parentPath.substr(subDirIndex);\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: doRecursive,\n });\n }\n }\n const now = Date.now();\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'file',\n size: data.length,\n ctime: now,\n mtime: now,\n content: !encoding && data.indexOf(',') >= 0 ? data.split(',')[1] : data,\n };\n await this.dbRequest('put', [pathObj]);\n return {\n uri: pathObj.path,\n };\n }\n /**\n * Append to a file on disk in the specified location on device\n * @param options options for the file append\n * @return a promise that resolves with the file write result\n */\n async appendFile(options) {\n const path = this.getPath(options.directory, options.path);\n let data = options.data;\n // const encoding = options.encoding;\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const now = Date.now();\n let ctime = now;\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (occupiedEntry && occupiedEntry.type === 'directory')\n throw Error('The supplied path is a directory.');\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n if (parentEntry === undefined) {\n const subDirIndex = parentPath.indexOf('/', 1);\n if (subDirIndex !== -1) {\n const parentArgPath = parentPath.substr(subDirIndex);\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: true,\n });\n }\n }\n if (occupiedEntry !== undefined) {\n data = occupiedEntry.content + data;\n ctime = occupiedEntry.ctime;\n }\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'file',\n size: data.length,\n ctime: ctime,\n mtime: now,\n content: data,\n };\n await this.dbRequest('put', [pathObj]);\n }\n /**\n * Delete a file from disk\n * @param options options for the file delete\n * @return a promise that resolves with the deleted file data result\n */\n async deleteFile(options) {\n const path = this.getPath(options.directory, options.path);\n const entry = (await this.dbRequest('get', [path]));\n if (entry === undefined)\n throw Error('File does not exist.');\n const entries = await this.dbIndexRequest('by_folder', 'getAllKeys', [\n IDBKeyRange.only(path),\n ]);\n if (entries.length !== 0)\n throw Error('Folder is not empty.');\n await this.dbRequest('delete', [path]);\n }\n /**\n * Create a directory.\n * @param options options for the mkdir\n * @return a promise that resolves with the mkdir result\n */\n async mkdir(options) {\n const path = this.getPath(options.directory, options.path);\n const doRecursive = options.recursive;\n const parentPath = path.substr(0, path.lastIndexOf('/'));\n const depth = (path.match(/\\//g) || []).length;\n const parentEntry = (await this.dbRequest('get', [parentPath]));\n const occupiedEntry = (await this.dbRequest('get', [path]));\n if (depth === 1)\n throw Error('Cannot create Root directory');\n if (occupiedEntry !== undefined)\n throw Error('Current directory does already exist.');\n if (!doRecursive && depth !== 2 && parentEntry === undefined)\n throw Error('Parent directory must exist');\n if (doRecursive && depth !== 2 && parentEntry === undefined) {\n const parentArgPath = parentPath.substr(parentPath.indexOf('/', 1));\n await this.mkdir({\n path: parentArgPath,\n directory: options.directory,\n recursive: doRecursive,\n });\n }\n const now = Date.now();\n const pathObj = {\n path: path,\n folder: parentPath,\n type: 'directory',\n size: 0,\n ctime: now,\n mtime: now,\n };\n await this.dbRequest('put', [pathObj]);\n }\n /**\n * Remove a directory\n * @param options the options for the directory remove\n */\n async rmdir(options) {\n const { path, directory, recursive } = options;\n const fullPath = this.getPath(directory, path);\n const entry = (await this.dbRequest('get', [fullPath]));\n if (entry === undefined)\n throw Error('Folder does not exist.');\n if (entry.type !== 'directory')\n throw Error('Requested path is not a directory');\n const readDirResult = await this.readdir({ path, directory });\n if (readDirResult.files.length !== 0 && !recursive)\n throw Error('Folder is not empty');\n for (const entry of readDirResult.files) {\n const entryPath = `${path}/${entry}`;\n const entryObj = await this.stat({ path: entryPath, directory });\n if (entryObj.type === 'file') {\n await this.deleteFile({ path: entryPath, directory });\n }\n else {\n await this.rmdir({ path: entryPath, directory, recursive });\n }\n }\n await this.dbRequest('delete', [fullPath]);\n }\n /**\n * Return a list of files from the directory (not recursive)\n * @param options the options for the readdir operation\n * @return a promise that resolves with the readdir directory listing result\n */\n async readdir(options) {\n const path = this.getPath(options.directory, options.path);\n const entry = (await this.dbRequest('get', [path]));\n if (options.path !== '' && entry === undefined)\n throw Error('Folder does not exist.');\n const entries = await this.dbIndexRequest('by_folder', 'getAllKeys', [IDBKeyRange.only(path)]);\n const names = entries.map(e => {\n return e.substring(path.length + 1);\n });\n return { files: names };\n }\n /**\n * Return full File URI for a path and directory\n * @param options the options for the stat operation\n * @return a promise that resolves with the file stat result\n */\n async getUri(options) {\n const path = this.getPath(options.directory, options.path);\n let entry = (await this.dbRequest('get', [path]));\n if (entry === undefined) {\n entry = (await this.dbRequest('get', [path + '/']));\n }\n return {\n uri: (entry === null || entry === void 0 ? void 0 : entry.path) || path,\n };\n }\n /**\n * Return data about a file\n * @param options the options for the stat operation\n * @return a promise that resolves with the file stat result\n */\n async stat(options) {\n const path = this.getPath(options.directory, options.path);\n let entry = (await this.dbRequest('get', [path]));\n if (entry === undefined) {\n entry = (await this.dbRequest('get', [path + '/']));\n }\n if (entry === undefined)\n throw Error('Entry does not exist.');\n return {\n type: entry.type,\n size: entry.size,\n ctime: entry.ctime,\n mtime: entry.mtime,\n uri: entry.path,\n };\n }\n /**\n * Rename a file or directory\n * @param options the options for the rename operation\n * @return a promise that resolves with the rename result\n */\n async rename(options) {\n return this._copy(options, true);\n }\n /**\n * Copy a file or directory\n * @param options the options for the copy operation\n * @return a promise that resolves with the copy result\n */\n async copy(options) {\n return this._copy(options, false);\n }\n async requestPermissions() {\n return { publicStorage: 'granted' };\n }\n async checkPermissions() {\n return { publicStorage: 'granted' };\n }\n /**\n * Function that can perform a copy or a rename\n * @param options the options for the rename operation\n * @param doRename whether to perform a rename or copy operation\n * @return a promise that resolves with the result\n */\n async _copy(options, doRename = false) {\n let { toDirectory } = options;\n const { to, from, directory: fromDirectory } = options;\n if (!to || !from) {\n throw Error('Both to and from must be provided');\n }\n // If no \"to\" directory is provided, use the \"from\" directory\n if (!toDirectory) {\n toDirectory = fromDirectory;\n }\n const fromPath = this.getPath(fromDirectory, from);\n const toPath = this.getPath(toDirectory, to);\n // Test that the \"to\" and \"from\" locations are different\n if (fromPath === toPath) {\n return;\n }\n if (isPathParent(fromPath, toPath)) {\n throw Error('To path cannot contain the from path');\n }\n // Check the state of the \"to\" location\n let toObj;\n try {\n toObj = await this.stat({\n path: to,\n directory: toDirectory,\n });\n }\n catch (e) {\n // To location does not exist, ensure the directory containing \"to\" location exists and is a directory\n const toPathComponents = to.split('/');\n toPathComponents.pop();\n const toPath = toPathComponents.join('/');\n // Check the containing directory of the \"to\" location exists\n if (toPathComponents.length > 0) {\n const toParentDirectory = await this.stat({\n path: toPath,\n directory: toDirectory,\n });\n if (toParentDirectory.type !== 'directory') {\n throw new Error('Parent directory of the to path is a file');\n }\n }\n }\n // Cannot overwrite a directory\n if (toObj && toObj.type === 'directory') {\n throw new Error('Cannot overwrite a directory with a file');\n }\n // Ensure the \"from\" object exists\n const fromObj = await this.stat({\n path: from,\n directory: fromDirectory,\n });\n // Set the mtime/ctime of the supplied path\n const updateTime = async (path, ctime, mtime) => {\n const fullPath = this.getPath(toDirectory, path);\n const entry = (await this.dbRequest('get', [fullPath]));\n entry.ctime = ctime;\n entry.mtime = mtime;\n await this.dbRequest('put', [entry]);\n };\n const ctime = fromObj.ctime ? fromObj.ctime : Date.now();\n switch (fromObj.type) {\n // The \"from\" object is a file\n case 'file': {\n // Read the file\n const file = await this.readFile({\n path: from,\n directory: fromDirectory,\n });\n // Optionally remove the file\n if (doRename) {\n await this.deleteFile({\n path: from,\n directory: fromDirectory,\n });\n }\n // Write the file to the new location\n await this.writeFile({\n path: to,\n directory: toDirectory,\n data: file.data,\n });\n // Copy the mtime/ctime of a renamed file\n if (doRename) {\n await updateTime(to, ctime, fromObj.mtime);\n }\n // Resolve promise\n return;\n }\n case 'directory': {\n if (toObj) {\n throw Error('Cannot move a directory over an existing object');\n }\n try {\n // Create the to directory\n await this.mkdir({\n path: to,\n directory: toDirectory,\n recursive: false,\n });\n // Copy the mtime/ctime of a renamed directory\n if (doRename) {\n await updateTime(to, ctime, fromObj.mtime);\n }\n }\n catch (e) {\n // ignore\n }\n // Iterate over the contents of the from location\n const contents = (await this.readdir({\n path: from,\n directory: fromDirectory,\n })).files;\n for (const filename of contents) {\n // Move item from the from directory to the to directory\n await this._copy({\n from: `${from}/${filename}`,\n to: `${to}/${filename}`,\n directory: fromDirectory,\n toDirectory,\n }, doRename);\n }\n // Optionally remove the original from directory\n if (doRename) {\n await this.rmdir({\n path: from,\n directory: fromDirectory,\n });\n }\n }\n }\n }\n}\nFilesystemWeb._debug = true;\n"],"names":["WebPlugin","resolve","path","posix","split","filter","item","newPosix","forEach","length","pop","push","join","isPathParent","parent","children","pathsA","pathsB","every","value","index","FilesystemWeb","constructor","arguments","DB_VERSION","DB_NAME","_writeCmds","initDb","_db","undefined","window","unavailable","Promise","reject","request","indexedDB","open","onupgradeneeded","doUpgrade","onsuccess","result","onerror","error","onblocked","console","warn","event","eventTarget","target","db","oldVersion","objectStoreNames","contains","deleteObjectStore","store","createObjectStore","keyPath","createIndex","dbRequest","cmd","args","readFlag","indexOf","then","conn","tx","transaction","objectStore","req","dbIndexRequest","indexName","getPath","directory","uriPath","cleanedUriPath","replace","fsPath","clear","readFile","options","entry","Error","data","content","writeFile","doRecursive","recursive","occupiedEntry","type","encoding","parentPath","substr","lastIndexOf","parentEntry","subDirIndex","parentArgPath","mkdir","now","Date","pathObj","folder","size","ctime","mtime","uri","appendFile","deleteFile","entries","IDBKeyRange","only","depth","match","rmdir","fullPath","readDirResult","readdir","files","entryPath","entryObj","stat","names","map","e","substring","getUri","rename","_copy","copy","requestPermissions","publicStorage","checkPermissions","doRename","toDirectory","to","from","fromDirectory","fromPath","toPath","toObj","toPathComponents","toParentDirectory","fromObj","updateTime","file","contents","filename","_debug"],"sourceRoot":"webpack:///"}