PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/@substrate/light-client-extension-helpers/dist
Просмотр файла: chunk-TMDP3M7I.mjs.map
{"version":3,"sources":["../src/storage/index.ts"],"sourcesContent":["import { STORAGE_PREFIX } from \"@/shared\"\n\nconst chainStoragePrefix = `${STORAGE_PREFIX}_chain_`\n\ntype StorageConfig = {\n chain: [entry: { type: \"chain\"; genesisHash: string }, value: ChainInfo]\n bootNodes: [\n entry: { type: \"bootNodes\"; genesisHash: string },\n value: string[],\n ]\n databaseContent: [\n entry: { type: \"databaseContent\"; genesisHash: string },\n value: string,\n ]\n}\n\ntype StorageEntry = StorageConfig[keyof StorageConfig][0]\ntype StorageValue<T> = T extends StorageEntry\n ? StorageConfig[T[\"type\"]][1]\n : never\n\ntype ChainInfo = {\n genesisHash: string\n name: string\n chainSpec: string\n relayChainGenesisHash?: string\n ss58Format: number\n}\n\nconst keyOf = ({ type, genesisHash }: StorageEntry) => {\n if (!type.length || !genesisHash.length) throw new Error(\"Invalid entry\")\n\n return `${STORAGE_PREFIX}_${type}_${genesisHash}`\n}\n\nexport const get = async <E extends StorageEntry>(\n entry: E,\n): Promise<StorageValue<E> | undefined> => {\n const key = keyOf(entry)\n const { [key]: value } = await chrome.storage.local.get([key])\n return value\n}\n\nexport const set = <E extends StorageEntry>(entry: E, value: StorageValue<E>) =>\n chrome.storage.local.set({ [keyOf(entry)]: value })\n\nexport const remove = (entryOrEntries: StorageEntry | StorageEntry[]) =>\n chrome.storage.local.remove(\n Array.isArray(entryOrEntries)\n ? entryOrEntries.map(keyOf)\n : keyOf(entryOrEntries),\n )\n\nexport const onChainsChanged = (\n callback: (chains: Record<string, ChainInfo>) => void,\n) => {\n const listener = async (changes: {\n [key: string]: chrome.storage.StorageChange\n }) => {\n if (!Object.keys(changes).some((key) => key.startsWith(chainStoragePrefix)))\n return\n callback(await getChains())\n }\n chrome.storage.onChanged.addListener(listener)\n return () => chrome.storage.onChanged.removeListener(listener)\n}\n\nexport const getChains = async (): Promise<Record<string, ChainInfo>> =>\n Object.fromEntries(\n await Promise.all(\n Object.entries(await chrome.storage.local.get())\n .filter((entry): entry is [string, ChainInfo] =>\n entry[0].startsWith(chainStoragePrefix),\n )\n .map(async ([_, { chainSpec, ...chain }]) => {\n const chainSpecJson = JSON.parse(chainSpec)\n chainSpecJson.bootNodes = await get({\n type: \"bootNodes\",\n genesisHash: chain.genesisHash,\n })\n return [\n chain.genesisHash,\n { ...chain, chainSpec: JSON.stringify(chainSpecJson) },\n ]\n }),\n ),\n )\n"],"mappings":";;;;;AAEA,IAAM,qBAAqB,GAAG,cAAc;AA2B5C,IAAM,QAAQ,CAAC,EAAE,MAAM,YAAY,MAAoB;AACrD,MAAI,CAAC,KAAK,UAAU,CAAC,YAAY;AAAQ,UAAM,IAAI,MAAM,eAAe;AAExE,SAAO,GAAG,cAAc,IAAI,IAAI,IAAI,WAAW;AACjD;AAEO,IAAM,MAAM,OACjB,UACyC;AACzC,QAAM,MAAM,MAAM,KAAK;AACvB,QAAM,EAAE,CAAC,GAAG,GAAG,MAAM,IAAI,MAAM,OAAO,QAAQ,MAAM,IAAI,CAAC,GAAG,CAAC;AAC7D,SAAO;AACT;AAEO,IAAM,MAAM,CAAyB,OAAU,UACpD,OAAO,QAAQ,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC;AAE7C,IAAM,SAAS,CAAC,mBACrB,OAAO,QAAQ,MAAM;AAAA,EACnB,MAAM,QAAQ,cAAc,IACxB,eAAe,IAAI,KAAK,IACxB,MAAM,cAAc;AAC1B;AAEK,IAAM,kBAAkB,CAC7B,aACG;AACH,QAAM,WAAW,OAAO,YAElB;AACJ,QAAI,CAAC,OAAO,KAAK,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,WAAW,kBAAkB,CAAC;AACxE;AACF,aAAS,MAAM,UAAU,CAAC;AAAA,EAC5B;AACA,SAAO,QAAQ,UAAU,YAAY,QAAQ;AAC7C,SAAO,MAAM,OAAO,QAAQ,UAAU,eAAe,QAAQ;AAC/D;AAEO,IAAM,YAAY,YACvB,OAAO;AAAA,EACL,MAAM,QAAQ;AAAA,IACZ,OAAO,QAAQ,MAAM,OAAO,QAAQ,MAAM,IAAI,CAAC,EAC5C;AAAA,MAAO,CAAC,UACP,MAAM,CAAC,EAAE,WAAW,kBAAkB;AAAA,IACxC,EACC,IAAI,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM;AAC3C,YAAM,gBAAgB,KAAK,MAAM,SAAS;AAC1C,oBAAc,YAAY,MAAM,IAAI;AAAA,QAClC,MAAM;AAAA,QACN,aAAa,MAAM;AAAA,MACrB,CAAC;AACD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,EAAE,GAAG,OAAO,WAAW,KAAK,UAAU,aAAa,EAAE;AAAA,MACvD;AAAA,IACF,CAAC;AAAA,EACL;AACF;","names":[]}Выполнить команду
Для локальной разработки. Не используйте в интернете!