{"version":3,"sources":["jsdelivr-header.js","/npm/vk-storage@1.1.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,eAAiB,OAEvB,IAAI,aAAe,GACf,QAAU,KACV,MAAQ,GACZ,MAAM,YAAc,GAEd,KAAQ,GAAW,IAAI,SAAQ,MAAO,EAAS,KACjD,IAAK,IAAW,EAAO,eAAiB,EAAO,QAAS,OAAO,EAAO,0CACtE,QAAU,EAAO,QACjB,aAAe,EAAO,aACtB,MAAM,QAAa,eAGnB,OAFA,YAAc,aAAa,SACrB,sBACC,GAAS,IAGd,UAAa,IACf,MAAM,EAAK,YAAY,KAAK,GAC5B,MAAO,WAAa,YAAY,EAAG,EAGjC,IAAO,GAAU,MAAM,GAEvB,IAAM,CAAC,EAAO,IAAU,IAAI,SAAQ,CAAC,EAAS,KAChD,cAAc,EAAO,GAChB,MAAK,KACY,KAAV,SAAqB,MAAM,GAC1B,MAAM,GAAS,EACpB,sBACO,OAEV,OAAM,IAAM,EAAO,uBAAsB,IAK5C,aAAe,IAAM,IAAI,SAAQ,CAAC,EAAS,KAC7C,QAAQ,KAAK,wBAAyB,CAClC,OAAU,kBACV,OAAU,CACN,EAzCW,OA0CX,aAAgB,gBAGnB,MAAM,GAAW,EAAQ,EAAO,KAAK,YACrC,OAAM,IAAM,EAAO,uBAAqB,IAG3C,aAAe,CAAC,EAAO,KAAO,IAAI,SAAQ,CAAC,EAAS,KACtD,GAAoB,IAAhB,EAAK,OAAc,OAAO,EAAQ,CAAC,GACvC,QAAQ,KAAK,wBAAyB,CAClC,OAAU,cACV,OAAU,CACN,EAtDW,OAuDX,KAAQ,EAAK,KAAK,KAClB,aAAgB,gBAGnB,MAAM,GAAW,EAAQ,EAAO,KAAK,SAAS,QAAO,CAAC,EAAG,KAAQ,EAAE,EAAE,KAAO,EAAE,MAAc,IAAK,CAAC,MAClG,OAAM,IAAM,EAAO,uBAAqB,IAG3C,cAAgB,CAAC,EAAK,IAAU,IAAI,SAAQ,CAAC,EAAS,KACxD,QAAQ,KAAK,wBAAyB,CAClC,OAAU,cACV,OAAU,CACN,EAnEW,OAoEX,IAAO,EACP,MAAS,EACT,aAAgB,gBAGnB,MAAK,IAAM,MACX,OAAM,IAAM,EAAO,uBAAsB,IAG5C,oBAAsB,IAAM,IAAI,SAAS,IAC3C,YAAY,SAAS,GAAQ,EAAI,SAC1B,qBAGI,CAAE,UAAM,QAAK,QAAK,oBAAW","file":"/npm/vk-storage@1.1.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vk-storage@1.1.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const VK_API_VERSION = \"5.95\";\n\nlet access_token = \"\";\nlet connect = null;\nlet store = [];\nconst subscribers = [];\n\nconst init = (params) => new Promise(async (resolve, reject) => {\n    if (!params || !params.access_token || !params.connect) return reject(\"required data not found in init params\");\n    connect = params.connect;\n    access_token = params.access_token;\n    const keys = await __getAllKeys();\n    store = await __loadByKeys(keys);\n    await __updateSubscribers();\n    return resolve();\n});\n\nconst subscribe = (f) => {\n    const id = subscribers.push(f);\n    return () => delete subscribers[id];\n};\n\nconst get = (field) => store[field];\n\nconst set = (field, value) => new Promise((resolve, reject) => {\n    __updateByKey(field, value)\n        .then(() => {\n            if (value === \"\") delete store[field];\n            else store[field] = value;\n            __updateSubscribers();\n            return resolve();\n        })\n        .catch(() => reject(\"can't update value\"));\n});\n\n\n// Helpers\nconst __getAllKeys = () => new Promise((resolve, reject) => {\n    connect.send(\"VKWebAppCallAPIMethod\", {\n        \"method\": \"storage.getKeys\",\n        \"params\": {\n            \"v\": VK_API_VERSION,\n            \"access_token\": access_token\n        }\n    })\n        .then((result) => resolve(result.data.response))\n        .catch(() => reject(\"can't get all keys\"))\n});\n\nconst __loadByKeys = (keys = []) => new Promise((resolve, reject) => {\n    if (keys.length === 0) return resolve({});\n    connect.send(\"VKWebAppCallAPIMethod\", {\n        \"method\": \"storage.get\",\n        \"params\": {\n            \"v\": VK_API_VERSION,\n            \"keys\": keys.join(','),\n            \"access_token\": access_token\n        }\n    })\n        .then((result) => resolve(result.data.response.reduce((a, x) => { a[x.key] = x.value; return a }, {})))\n        .catch(() => reject(\"can't load by keys\"))\n});\n\nconst __updateByKey = (key, value) => new Promise((resolve, reject) => {\n    connect.send(\"VKWebAppCallAPIMethod\", {\n        \"method\": \"storage.set\",\n        \"params\": {\n            \"v\": VK_API_VERSION,\n            \"key\": key,\n            \"value\": value,\n            \"access_token\": access_token\n        }\n    })\n        .then(() => resolve())\n        .catch(() => reject(\"can't update value\"));\n});\n\nconst __updateSubscribers = () => new Promise((resolve) => {\n    subscribers.forEach((sub) => sub(store));\n    return resolve();\n});\n\nexport default { init, get, set, subscribe, __getAllKeys };"]}