UNPKG

@wallet-ui/core

Version:
379 lines (364 loc) 11.2 kB
this.globalThis = this.globalThis || {}; this.globalThis.solanaWeb3 = (function (exports) { 'use strict'; var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value); // src/clusters.ts function createSolanaCluster(props, { id, label, url }) { var _a, _b; if (typeof props === "string") { return { id, label, url: props }; } return { id, label: (_a = props.label) != null ? _a : label, url: (_b = props.url) != null ? _b : url }; } function createSolanaDevnet(props = {}) { return createSolanaCluster(props, { id: "solana:devnet", label: "Devnet", url: "devnet" }); } function createSolanaLocalnet(props = {}) { return createSolanaCluster(props, { id: "solana:localnet", label: "Localnet", url: "localnet" }); } function createSolanaMainnet(props = {}) { return createSolanaCluster(props, { id: "solana:mainnet", label: "Mainnet", url: "mainnet" }); } function createSolanaTestnet(props = {}) { return createSolanaCluster(props, { id: "solana:testnet", label: "Testnet", url: "testnet" }); } // ../../node_modules/.pnpm/nanostores@1.0.1/node_modules/nanostores/clean-stores/index.js var clean = Symbol("clean"); // ../../node_modules/.pnpm/nanostores@1.0.1/node_modules/nanostores/atom/index.js var listenerQueue = []; var lqIndex = 0; var QUEUE_ITEMS_PER_LISTENER = 4; var epoch = 0; var atom = (initialValue) => { let listeners = []; let $atom = { get() { if (!$atom.lc) { $atom.listen(() => { })(); } return $atom.value; }, lc: 0, listen(listener) { $atom.lc = listeners.push(listener); return () => { for (let i = lqIndex + QUEUE_ITEMS_PER_LISTENER; i < listenerQueue.length; ) { if (listenerQueue[i] === listener) { listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER); } else { i += QUEUE_ITEMS_PER_LISTENER; } } let index = listeners.indexOf(listener); if (~index) { listeners.splice(index, 1); if (!--$atom.lc) $atom.off(); } }; }, notify(oldValue, changedKey) { epoch++; let runListenerQueue = !listenerQueue.length; for (let listener of listeners) { listenerQueue.push(listener, $atom.value, oldValue, changedKey); } if (runListenerQueue) { for (lqIndex = 0; lqIndex < listenerQueue.length; lqIndex += QUEUE_ITEMS_PER_LISTENER) { listenerQueue[lqIndex]( listenerQueue[lqIndex + 1], listenerQueue[lqIndex + 2], listenerQueue[lqIndex + 3] ); } listenerQueue.length = 0; } }, /* It will be called on last listener unsubscribing. We will redefine it in onMount and onStop. */ off() { }, set(newValue) { let oldValue = $atom.value; if (oldValue !== newValue) { $atom.value = newValue; $atom.notify(oldValue); } }, subscribe(listener) { let unbind = $atom.listen(listener); listener($atom.value); return unbind; }, value: initialValue }; { $atom[clean] = () => { listeners = []; $atom.lc = 0; $atom.off(); }; } return $atom; }; // ../../node_modules/.pnpm/nanostores@1.0.1/node_modules/nanostores/lifecycle/index.js var MOUNT = 5; var UNMOUNT = 6; var REVERT_MUTATION = 10; var on = (object, listener, eventKey, mutateStore) => { object.events = object.events || {}; if (!object.events[eventKey + REVERT_MUTATION]) { object.events[eventKey + REVERT_MUTATION] = mutateStore((eventProps) => { object.events[eventKey].reduceRight((event, l) => (l(event), event), { shared: {}, ...eventProps }); }); } object.events[eventKey] = object.events[eventKey] || []; object.events[eventKey].push(listener); return () => { let currentListeners = object.events[eventKey]; let index = currentListeners.indexOf(listener); currentListeners.splice(index, 1); if (!currentListeners.length) { delete object.events[eventKey]; object.events[eventKey + REVERT_MUTATION](); delete object.events[eventKey + REVERT_MUTATION]; } }; }; var STORE_UNMOUNT_DELAY = 1e3; var onMount = ($store, initialize) => { let listener = (payload) => { let destroy = initialize(payload); if (destroy) $store.events[UNMOUNT].push(destroy); }; return on($store, listener, MOUNT, (runListeners) => { let originListen = $store.listen; $store.listen = (...args) => { if (!$store.lc && !$store.active) { $store.active = true; runListeners(); } return originListen(...args); }; let originOff = $store.off; $store.events[UNMOUNT] = []; $store.off = () => { originOff(); setTimeout(() => { if ($store.active && !$store.lc) { $store.active = false; for (let destroy of $store.events[UNMOUNT]) destroy(); $store.events[UNMOUNT] = []; } }, STORE_UNMOUNT_DELAY); }; { let originClean = $store[clean]; $store[clean] = () => { for (let destroy of $store.events[UNMOUNT]) destroy(); $store.events[UNMOUNT] = []; $store.active = false; originClean(); }; } return () => { $store.listen = originListen; $store.off = originOff; }; }); }; // ../../node_modules/.pnpm/nanostores@1.0.1/node_modules/nanostores/computed/index.js var computedStore = (stores, cb, batched2) => { if (!Array.isArray(stores)) stores = [stores]; let previousArgs; let currentEpoch; let set = () => { if (currentEpoch === epoch) return; currentEpoch = epoch; let args = stores.map(($store) => $store.get()); if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) { previousArgs = args; let value = cb(...args); if (value && value.then && value.t) { value.then((asyncValue) => { if (previousArgs === args) { $computed.set(asyncValue); } }); } else { $computed.set(value); currentEpoch = epoch; } } }; let $computed = atom(void 0); let get = $computed.get; $computed.get = () => { set(); return get(); }; let run = set; onMount($computed, () => { let unbinds = stores.map(($store) => $store.listen(run)); set(); return () => { for (let unbind of unbinds) unbind(); }; }); return $computed; }; var computed = (stores, fn) => computedStore(stores, fn); // ../../node_modules/.pnpm/@nanostores+persistent@1.1.0_nanostores@1.0.1/node_modules/@nanostores/persistent/index.js var identity = (a) => a; var storageEngine = {}; var eventsEngine = { addEventListener() { }, removeEventListener() { } }; function testSupport() { try { return typeof localStorage !== "undefined"; } catch { return false; } } if (testSupport()) { storageEngine = localStorage; } var windowPersistentEvents = { addEventListener(key, listener, restore) { window.addEventListener("storage", listener); window.addEventListener("pageshow", restore); }, removeEventListener(key, listener, restore) { window.removeEventListener("storage", listener); window.removeEventListener("pageshow", restore); } }; if (typeof window !== "undefined") { eventsEngine = windowPersistentEvents; } function persistentAtom(name, initial = void 0, opts = {}) { let encode = opts.encode || identity; let decode = opts.decode || identity; let store = atom(initial); let set = store.set; store.set = (newValue) => { let converted = encode(newValue); if (typeof converted === "undefined") { delete storageEngine[name]; } else { storageEngine[name] = converted; } set(newValue); }; function listener(e) { if (e.key === name) { if (e.newValue === null) { set(initial); } else { set(decode(e.newValue)); } } else if (!storageEngine[name]) { set(initial); } } function restore() { store.set(storageEngine[name] ? decode(storageEngine[name]) : initial); } onMount(store, () => { restore(); if (opts.listen !== false) { eventsEngine.addEventListener(name, listener, restore); return () => { eventsEngine.removeEventListener(name, listener, restore); }; } }); return store; } // src/storage.ts var Storage = class { constructor(key, initial) { this.key = key; this.initial = initial; __publicField(this, "atom"); this.atom = persistentAtom(key, initial, { decode: JSON.parse, encode: JSON.stringify }); } get() { return this.atom.get(); } set(value) { this.atom.set(value); } get value() { return computed(this.atom, (value) => value); } }; // src/create-storage.ts function createStorage({ initial, key }) { return new Storage(key, initial); } // src/create-storage-account.ts function createStorageAccount({ initial, key } = {}) { return createStorage({ initial, key: key != null ? key : "wallet-ui:account" }); } // src/create-storage-cluster.ts function createStorageCluster({ initial, key } = {}) { return createStorage({ initial: initial != null ? initial : "solana:devnet", key: key != null ? key : "wallet-ui:cluster" }); } // src/handle-copy-text.ts function handleCopyText(text) { if (!text) { return; } if (typeof globalThis === "undefined" || !globalThis.navigator || !globalThis.navigator.clipboard || !globalThis.navigator.clipboard.writeText) { return; } void globalThis.navigator.clipboard.writeText(text); } exports.Storage = Storage; exports.createSolanaDevnet = createSolanaDevnet; exports.createSolanaLocalnet = createSolanaLocalnet; exports.createSolanaMainnet = createSolanaMainnet; exports.createSolanaTestnet = createSolanaTestnet; exports.createStorage = createStorage; exports.createStorageAccount = createStorageAccount; exports.createStorageCluster = createStorageCluster; exports.handleCopyText = handleCopyText; return exports; })({}); //# sourceMappingURL=index.development.js.map //# sourceMappingURL=index.development.js.map