{"version":3,"file":"keyValue.js","names":[],"sources":["esm/platform/database/keyValue.js"],"sourcesContent":["import {\n  assertOpen,\n  requireKey,\n  requireName,\n  requireValue\n} from \"./keyValueValidate\";\nfunction storagePrefix(name) {\n  return `One.Database.kv|${name}|`;\n}\nfunction openKeyValue(options) {\n  const name = requireName(options?.name);\n  if (typeof localStorage === \"undefined\") {\n    throw new Error(\"Database.openKeyValue requires localStorage in this runtime\");\n  }\n  const prefix = storagePrefix(name);\n  let closed = false;\n  function matchingKeys() {\n    const keys = [];\n    for (let index = 0; index < localStorage.length; index++) {\n      const stored = localStorage.key(index);\n      if (stored?.startsWith(prefix)) keys.push(stored);\n    }\n    return keys;\n  }\n  return Object.freeze({\n    getItem(key) {\n      assertOpen(\"Database.getItem\", closed);\n      requireKey(\"Database.getItem\", key);\n      return localStorage.getItem(prefix + key);\n    },\n    setItem(key, value) {\n      assertOpen(\"Database.setItem\", closed);\n      requireKey(\"Database.setItem\", key);\n      requireValue(\"Database.setItem\", value);\n      localStorage.setItem(prefix + key, value);\n    },\n    removeItem(key) {\n      assertOpen(\"Database.removeItem\", closed);\n      requireKey(\"Database.removeItem\", key);\n      localStorage.removeItem(prefix + key);\n    },\n    getAllKeys() {\n      assertOpen(\"Database.getAllKeys\", closed);\n      return matchingKeys().map((stored) => stored.slice(prefix.length)).sort();\n    },\n    clear() {\n      assertOpen(\"Database.clear\", closed);\n      for (const stored of matchingKeys()) localStorage.removeItem(stored);\n    },\n    close() {\n      closed = true;\n    }\n  });\n}\nexport {\n  openKeyValue\n};\n//# sourceMappingURL=keyValue.js.map\n"],"mappings":";;;AAMA,SAAS,cAAc,MAAM;CAC3B,OAAO,mBAAmB,KAAK;AACjC;AACA,SAAS,aAAa,SAAS;CAC7B,MAAM,OAAO,YAAY,SAAS,IAAI;CACtC,IAAI,OAAO,iBAAiB,aAAa;EACvC,MAAM,IAAI,MAAM,6DAA6D;CAC/E;CACA,MAAM,SAAS,cAAc,IAAI;CACjC,IAAI,SAAS;CACb,SAAS,eAAe;EACtB,MAAM,OAAO,CAAC;EACd,KAAK,IAAI,QAAQ,GAAG,QAAQ,aAAa,QAAQ,SAAS;GACxD,MAAM,SAAS,aAAa,IAAI,KAAK;GACrC,IAAI,QAAQ,WAAW,MAAM,GAAG,KAAK,KAAK,MAAM;EAClD;EACA,OAAO;CACT;CACA,OAAO,OAAO,OAAO;EACnB,QAAQ,KAAK;GACX,WAAW,oBAAoB,MAAM;GACrC,WAAW,oBAAoB,GAAG;GAClC,OAAO,aAAa,QAAQ,SAAS,GAAG;EAC1C;EACA,QAAQ,KAAK,OAAO;GAClB,WAAW,oBAAoB,MAAM;GACrC,WAAW,oBAAoB,GAAG;GAClC,aAAa,oBAAoB,KAAK;GACtC,aAAa,QAAQ,SAAS,KAAK,KAAK;EAC1C;EACA,WAAW,KAAK;GACd,WAAW,uBAAuB,MAAM;GACxC,WAAW,uBAAuB,GAAG;GACrC,aAAa,WAAW,SAAS,GAAG;EACtC;EACA,aAAa;GACX,WAAW,uBAAuB,MAAM;GACxC,OAAO,aAAa,CAAC,CAAC,KAAK,WAAW,OAAO,MAAM,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK;EAC1E;EACA,QAAQ;GACN,WAAW,kBAAkB,MAAM;GACnC,KAAK,MAAM,UAAU,aAAa,GAAG,aAAa,WAAW,MAAM;EACrE;EACA,QAAQ;GACN,SAAS;EACX;CACF,CAAC;AACH"}