{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n PreferencesPlugin,\n ConfigureOptions,\n GetOptions,\n GetResult,\n SetOptions,\n RemoveOptions,\n KeysResult,\n MigrateResult,\n} from './definitions';\n\nexport class PreferencesWeb extends WebPlugin implements PreferencesPlugin {\n private group = 'CapacitorStorage';\n\n public async configure({ group }: ConfigureOptions): Promise {\n if (typeof group === 'string') {\n this.group = group;\n }\n }\n\n public async get(options: GetOptions): Promise {\n const value = this.impl.getItem(this.applyPrefix(options.key));\n\n return { value };\n }\n\n public async set(options: SetOptions): Promise {\n this.impl.setItem(this.applyPrefix(options.key), options.value);\n }\n\n public async remove(options: RemoveOptions): Promise {\n this.impl.removeItem(this.applyPrefix(options.key));\n }\n\n public async keys(): Promise {\n const keys = this.rawKeys().map((k) => k.substring(this.prefix.length));\n\n return { keys };\n }\n\n public async clear(): Promise {\n for (const key of this.rawKeys()) {\n this.impl.removeItem(key);\n }\n }\n\n public async migrate(): Promise {\n const migrated: string[] = [];\n const existing: string[] = [];\n const oldprefix = '_cap_';\n const keys = Object.keys(this.impl).filter((k) => k.indexOf(oldprefix) === 0);\n\n for (const oldkey of keys) {\n const key = oldkey.substring(oldprefix.length);\n const value = this.impl.getItem(oldkey) ?? '';\n const { value: currentValue } = await this.get({ key });\n\n if (typeof currentValue === 'string') {\n existing.push(key);\n } else {\n await this.set({ key, value });\n migrated.push(key);\n }\n }\n\n return { migrated, existing };\n }\n\n public async removeOld(): Promise {\n const oldprefix = '_cap_';\n const keys = Object.keys(this.impl).filter((k) => k.indexOf(oldprefix) === 0);\n for (const oldkey of keys) {\n this.impl.removeItem(oldkey);\n }\n }\n\n private get impl(): Storage {\n return window.localStorage;\n }\n\n private get prefix(): string {\n return this.group === 'NativeStorage' ? '' : `${this.group}.`;\n }\n\n private rawKeys(): string[] {\n return Object.keys(this.impl).filter((k) => k.indexOf(this.prefix) === 0);\n }\n\n private applyPrefix(key: string) {\n return this.prefix + key;\n }\n}\n"]}