@wowok/wowok 2.6.2 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/{arb-DVWx1QfD.mjs → arb-DW8LZkHn.mjs} +1 -1
- package/dist/esm/base-CusbA-zy.mjs +1 -0
- package/dist/esm/call-I_AA4-jo.mjs +1 -0
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/{client-4RLOGmzt.mjs → client-C8we1Qaf.mjs} +1 -1
- package/dist/esm/common-uweycQjC.mjs +1 -0
- package/dist/esm/cryptography/index.d.mts +1 -1
- package/dist/esm/{evm-account-DHHNdYtg.d.mts → evm-account-Bk7Axxmu.d.mts} +2 -2
- package/dist/esm/exception-C6IYkBi6.mjs +1 -0
- package/dist/esm/graphql/index.d.mts +1 -1
- package/dist/esm/graphql/index.mjs +1 -1
- package/dist/esm/{graphql-gC65K0Ol.mjs → graphql-DhgtIlyU.mjs} +1 -1
- package/dist/esm/grpc/index.d.mts +1 -1
- package/dist/esm/grpc/index.mjs +1 -1
- package/dist/esm/grpc-B51l1CS7.mjs +1 -0
- package/dist/esm/{index-CiEBi_Uf.d.mts → index-BHXc1_-d.d.mts} +1577 -25
- package/dist/esm/index.d.mts +5 -5
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/jsonRpc/index.d.mts +1 -1
- package/dist/esm/jsonRpc/index.mjs +1 -1
- package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
- package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
- package/dist/esm/keypairs/passkey/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
- package/dist/esm/{messenger-Co1M8e5T.mjs → messenger-D-v41MtN.mjs} +1 -1
- package/dist/esm/{messenger-api-uoBMSPx-.mjs → messenger-api-D1pnUr3S.mjs} +1 -1
- package/dist/esm/multisig/index.d.mts +1 -1
- package/dist/esm/{object-U0GIwoIo.mjs → object-uRhJNXxh.mjs} +1 -1
- package/dist/esm/{passport-U9BAD6tV.mjs → passport-DFwsmd4q.mjs} +1 -1
- package/dist/esm/{proof-DmXvb0fs.mjs → proof-BxnnvK17.mjs} +1 -1
- package/dist/esm/query-BjVGMgAU.mjs +1 -0
- package/dist/esm/{received-eMOAzbYT.mjs → received-CbuXIbwP.mjs} +1 -1
- package/dist/esm/{secure-storage-CHe7jmEz.d.mts → secure-storage-lI6ZR9sW.d.mts} +1 -1
- package/dist/esm/{service-Cnr2PLD7.mjs → service-UOHVHMDZ.mjs} +1 -1
- package/dist/esm/{storage-BegHqtD4.d.mts → storage-B8nW4YTJ.d.mts} +27 -1
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/{util-D_L6mPoZ.mjs → util-DblOW4yW.mjs} +1 -1
- package/dist/esm/verify/index.d.mts +1 -1
- package/dist/esm/w/call/allocation.d.mts +1 -1
- package/dist/esm/w/call/allocation.mjs +1 -1
- package/dist/esm/w/call/arbitration.d.mts +1 -1
- package/dist/esm/w/call/arbitration.mjs +1 -1
- package/dist/esm/w/call/base.d.mts +1 -1
- package/dist/esm/w/call/base.mjs +1 -1
- package/dist/esm/w/call/demand.d.mts +1 -1
- package/dist/esm/w/call/demand.mjs +1 -1
- package/dist/esm/w/call/guard.d.mts +1 -1
- package/dist/esm/w/call/guard.mjs +1 -1
- package/dist/esm/w/call/index.d.mts +2 -2
- package/dist/esm/w/call/index.mjs +1 -1
- package/dist/esm/w/call/machine.d.mts +1 -1
- package/dist/esm/w/call/machine.mjs +1 -1
- package/dist/esm/w/call/passport.d.mts +1 -1
- package/dist/esm/w/call/passport.mjs +1 -1
- package/dist/esm/w/call/payment.d.mts +1 -1
- package/dist/esm/w/call/payment.mjs +1 -1
- package/dist/esm/w/call/permission.d.mts +1 -1
- package/dist/esm/w/call/permission.mjs +1 -1
- package/dist/esm/w/call/progress.d.mts +2 -2
- package/dist/esm/w/call/progress.mjs +1 -1
- package/dist/esm/w/call/repository.d.mts +1 -1
- package/dist/esm/w/call/repository.mjs +1 -1
- package/dist/esm/w/call/reward.d.mts +1 -1
- package/dist/esm/w/call/reward.mjs +1 -1
- package/dist/esm/w/call/service.d.mts +1 -1
- package/dist/esm/w/call/service.mjs +1 -1
- package/dist/esm/w/call/treasury.d.mts +1 -1
- package/dist/esm/w/call/treasury.mjs +1 -1
- package/dist/esm/w/common.d.mts +1 -1
- package/dist/esm/w/common.mjs +1 -1
- package/dist/esm/w/index.d.mts +5 -5
- package/dist/esm/w/index.mjs +1 -1
- package/dist/esm/w/local/account.d.mts +2 -2
- package/dist/esm/w/local/account.mjs +1 -1
- package/dist/esm/w/local/evm-account.d.mts +1 -1
- package/dist/esm/w/local/evm-account.mjs +1 -1
- package/dist/esm/w/local/index.d.mts +5 -5
- package/dist/esm/w/local/index.mjs +1 -1
- package/dist/esm/w/local/local.mjs +1 -1
- package/dist/esm/w/local/project.mjs +1 -1
- package/dist/esm/w/local/secure-storage.d.mts +1 -1
- package/dist/esm/w/local/storage.d.mts +2 -2
- package/dist/esm/w/local/storage.mjs +1 -1
- package/dist/esm/w/local/token.d.mts +1 -1
- package/dist/esm/w/local/token.mjs +1 -1
- package/dist/esm/w/messenger/index.d.mts +1 -1
- package/dist/esm/w/messenger/index.mjs +1 -1
- package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
- package/dist/esm/w/messenger/messenger-api.mjs +1 -1
- package/dist/esm/w/messenger/messenger.d.mts +1 -1
- package/dist/esm/w/messenger/messenger.mjs +1 -1
- package/dist/esm/w/messenger/storage.d.mts +1 -1
- package/dist/esm/w/messenger/storage.mjs +1 -1
- package/dist/esm/w/messenger/types.d.mts +1 -1
- package/dist/esm/w/query/index.d.mts +2 -2
- package/dist/esm/w/query/index.mjs +1 -1
- package/dist/esm/w/query/object.d.mts +1 -1
- package/dist/esm/w/query/object.mjs +1 -1
- package/dist/esm/{w-D3w1ryxR.mjs → w-Bzhaqud8.mjs} +1 -1
- package/package.json +2 -1
- package/dist/esm/base-BAe63oAT.mjs +0 -1
- package/dist/esm/call-BZIT0pHs.mjs +0 -1
- package/dist/esm/common-asa9BxDq.mjs +0 -1
- package/dist/esm/exception-0GqTGX2P.mjs +0 -1
- package/dist/esm/grpc-DXUftsa8.mjs +0 -1
- package/dist/esm/query-D-J4v6JL.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a81a}from'../../mnemonics-C6qlqegr.mjs';import{o as a81b}from'../../exception-0GqTGX2P.mjs';import{t as a81c}from'../../lock-QdrQzo0u.mjs';import{SQLiteAccountStorage}from'./storage.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import{HDKey}from'@scure/bip32';import{keccak_256}from'@noble/hashes/sha3.js';let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}var EvmAccount=class EvmAccount{static{this['_dataLock']=new a81c();}static{this['_storageLock']=new a81c();}['setStorage'](a){EvmAccount['storage']=a;}['setEncryptedStorage'](a){EvmAccount['storage']=new SecureAccountStorage(a);}async['_getStorage'](){if(EvmAccount['storage'])return EvmAccount['storage'];return EvmAccount['_storageLock']['run'](async()=>{if(!EvmAccount['storage'])EvmAccount['storage']=new SecureAccountStorage(new SQLiteAccountStorage(void 0x0,'evm_accounts'));return EvmAccount['storage'];});}async['unlock'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}async['getMcpAccess'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMcpAccess']();return'allowed';}async['setMcpAccess'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['setMcpAccess'](a,b);}static['Instance'](){if(EvmAccount['_instance'])return EvmAccount['_instance'];if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}async['_readAll'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)return[];const c=JSON['parse'](b);let d=[],e=![];if(Array['isArray'](c))d=c['map'](f=>({'address':f['address'],'name':f['name'],'pubkey':f['pubkey'],'secret':f['secret'],'isActive':f['isActive'],'createdAt':f['createdAt'],'updatedAt':f['updatedAt']})),d['length']>0x0&&!d['some'](f=>f['isActive']===!![])&&(d[0x0]['isActive']=!![],e=!![]);else c&&typeof c==='object'&&(d=[{'address':c['address'],'name':c['name'],'pubkey':c['pubkey'],'secret':c['secret'],'isActive':!![],'createdAt':c['createdAt'],'updatedAt':c['updatedAt']}],e=!![]);if(e)await a['put'](JSON['stringify'](d));return d;}async['_writeAll'](a){await(await this['_getStorage']())['put'](JSON['stringify'](a));}['_findActive'](a){return a['find'](b=>b['isActive']===!![]);}['_sanitize'](a,b=![],c=![]){const {secret:d,...e}=a,f=c?a:e;if(!b){const {pubkey:g,...h}=f;return h;}return f;}async['_get'](a=![]){const b=await this['_readAll'](),c=this['_findActive'](b);if(!c)return void 0x0;return this['_sanitize'](c,a);}async['_getWithSecret'](){const a=await this['_readAll'](),b=this['_findActive'](a);if(!b||!b['secret'])a81b('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret.\x20Call\x20active()\x20first\x20to\x20auto-generate\x20one.');return b;}async['_upsertAsActive'](a){const b=await this['_readAll']();b['forEach'](d=>{if(d['address']!==a['address'])d['isActive']=![];});const c=b['findIndex'](d=>d['address']['toLowerCase']()===a['address']['toLowerCase']());if(c!==-0x1)b[c]={...a,'isActive':!![]};else b['push']({...a,'isActive':!![]});await this['_writeAll'](b);}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x2710;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{const k=await ethRpcWithAbort(h,b,c,i['signal']);return d['markHealthy'](h),k;}finally{clearTimeout(j);}}catch(l){f=l,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](a=![]){return EvmAccount['_dataLock']['run'](async()=>{const b=secp256k1['utils']['randomSecretKey'](),c='0x'+bytesToHex(b),d=privateKeyToAddress(b),e=Date['now'](),f={'address':d,'secret':c,'isActive':!![],'createdAt':e,'updatedAt':e};if(a)f['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](b,!![]));return await this['_upsertAsActive'](f),this['_sanitize'](f,a);});}async['importPrivateKey'](a,b=![]){return EvmAccount['_dataLock']['run'](async()=>{const c=a['startsWith']('0x')?a['slice'](0x2):a;if(c['length']!==0x40)a81b('invalid\x20parameter','Private\x20key\x20must\x20be\x2032\x20bytes\x20(64\x20hex\x20chars),\x20got\x20'+c['length']+'\x20chars');const d='0x'+c,e=hexToBytes(d),f=privateKeyToAddress(e),g=Date['now'](),h={'address':f,'secret':d,'isActive':!![],'createdAt':g,'updatedAt':g};if(b)h['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](e,!![]));return await this['_upsertAsActive'](h),this['_sanitize'](h,b);});}async['importMnemonic'](a,b,c=![]){return EvmAccount['_dataLock']['run'](async()=>{const d=a81a(a),e=HDKey['fromMasterSeed'](d),f=b||'m/44\x27/60\x27/0\x27/0/0',g=e['derive'](f);if(!g['privateKey'])a81b('invalid\x20parameter','Failed\x20to\x20derive\x20private\x20key\x20from\x20mnemonic');const h='0x'+bytesToHex(g['privateKey']),i=hexToBytes(h),j=privateKeyToAddress(i),k=Date['now'](),l={'address':j,'secret':h,'isActive':!![],'createdAt':k,'updatedAt':k};if(c)l['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](i,!![]));return await this['_upsertAsActive'](l),this['_sanitize'](l,c);});}async['active'](a=![]){const b=await this['_get'](a);if(b)return b;return this['gen'](a);}async['list'](a){let b=(await this['_readAll']())['slice']();if(a?.['isActive']!==void 0x0)b=b['filter'](c=>a['isActive']?c['isActive']===!![]:c['isActive']!==!![]);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address'])b=b['map'](c=>{let d=0x0;if(a?.['name']!=null){const e=(c['name']||'')['toLowerCase'](),f=a['name']['toLowerCase']();if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['address']){const g=c['address']['toLowerCase'](),h=a['address']['toLowerCase']();if(g===h)d+=0x64;else{if(g['startsWith'](h))d+=0x32;else{if(g['includes'](h))d+=0x19;}}}if((a?.['name']||a?.['address'])&&d===0x0)d=-0x1;return{'a':c,'score':d};})['filter'](c=>c['score']>=0x0)['sort']((c,d)=>d['score']-c['score'])['map'](c=>c['a']);else b['sort']((c,d)=>{if(c['isActive']===!![]&&d['isActive']!==!![])return-0x1;if(c['isActive']!==!![]&&d['isActive']===!![])return 0x1;return 0x0;});return b['map'](c=>this['_sanitize'](c,a?.['includePubkey']));}async['setActive'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['find'](d=>d['address']['toLowerCase']()===a['toLowerCase']());if(!c)return![];return b['forEach'](d=>{d['isActive']=d['address']===c['address'];}),c['updatedAt']=Date['now'](),await this['_writeAll'](b),!![];});}async['rename'](a,b){return EvmAccount['_dataLock']['run'](async()=>{const c=await this['_readAll'](),d=c['find'](f=>f['address']['toLowerCase']()===a['toLowerCase']());if(!d)return![];const e=Date['now']();return d['name']=b,d['updatedAt']=e,await this['_writeAll'](c),!![];});}async['del'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['findIndex'](e=>e['address']['toLowerCase']()===a['toLowerCase']());if(c===-0x1)return![];const d=b[c]['isActive']===!![];return b['splice'](c,0x1),d&&b['length']>0x0&&!b['some'](e=>e['isActive']===!![])&&(b[0x0]['isActive']=!![],b[0x0]['updatedAt']=Date['now']()),await this['_writeAll'](b),!![];});}async['getByNameOrAddress'](a,b=![],c=![]){const d=await this['_readAll'](),e=a['toLowerCase'](),f=d['find'](g=>g['address']['toLowerCase']()===e||g['name']&&g['name']['toLowerCase']()===e);if(!f)return void 0x0;return this['_sanitize'](f,b,c);}async['exportSecret'](a){return(await this['getByNameOrAddress'](a,![],!![]))?.['secret'];}async['balance'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getBalance',[d['address'],'latest']);return BigInt(f);}async['balanceOf'](b,c,d){const e=await this['_get']();if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g='0x70a08231'+e['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),h=await this['rpcWithFailover'](f,'eth_call',[{'to':b,'data':g},'latest']);return BigInt(h);}async['getNonce'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getTransactionCount',[d['address'],'pending']);return parseInt(f,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['ethCall'](b,c,d){const e=await this['_get']();if(!e)a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']);return await this['rpcWithFailover'](g,'eth_call',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)},'latest']);}['guessGasLimit'](a){const b=a['data']??'';if(b['startsWith']('0x9c3ecefb'))return 0x927c0n;if(b['startsWith']('0x095ea7b3'))return 0x186a0n;if(b['startsWith']('0xb4b7068c'))return 0x3d090n;if(b['startsWith']('0x0bdba58b'))return 0x493e0n;return 0x61a80n;}async['estimateGas'](b,c,d){const e=await this['_get']();if(!e)a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']),h=await this['rpcWithFailover'](g,'eth_estimateGas',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(h);}async['safeEstimateGas'](a){if(!await this['_get']())a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const {cfg:b}=await this['resolveNetwork'](a['network'],a['rpcUrl']);let c;try{await this['ethCall'](a);}catch(d){return c=extractRevertReason(d),{'gasLimit':this['guessGasLimit'](a),'revertReason':c||'eth_call\x20failed'};}try{const f=await this['estimateGas'](a),g=b['gasLimitMultiplier']??1.2;return{'gasLimit':BigInt(Math['ceil'](Number(f)*g))};}catch(h){return c=extractRevertReason(h),console['warn']('[safeEstimateGas]\x20estimateGas\x20failed,\x20using\x20fallback\x20gasLimit='+this['guessGasLimit'](a),c?'revert:\x20'+c:''),{'gasLimit':this['guessGasLimit'](a),'revertReason':c};}}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c){const d=await this['_getWithSecret']();if(!d||!d['secret'])a81b('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret');const {cfg:e,url:f}=await this['resolveNetwork'](b['network'],c??b['rpcUrl']),g=b['chainId']??e['chainId'],h=hexToBytes(d['secret']['slice'](0x2)),i=b['nonce']??await this['getNonce'](e['chainId'],f);let {maxFeePerGas:j,maxPriorityFeePerGas:k,gasPrice:l}=b;e['useLegacy']&&!l&&(l=(await this['getFeeData'](e['chainId'],f))['maxFeePerGas'],j=void 0x0,k=void 0x0);if(!j&&!k&&!l){const r=await this['getFeeData'](e['chainId'],f);j=r['maxFeePerGas'],k=r['maxPriorityFeePerGas'];}let m=b['gasLimit'];if(!m){const s=await this['safeEstimateGas'](b);m=s['gasLimit'],s['revertReason'];}const n=hexToBytes(b['to']['slice'](0x2)),o=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let p;if(l)p=signLegacy({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'gasPrice':l,'gasLimit':m},h);else p=signEIP1559({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'maxFeePerGas':j,'maxPriorityFeePerGas':k,'gasLimit':m},h);const q=await this['rpcWithFailover'](e,'eth_sendRawTransaction',[p]);return await this['waitForReceipt'](q,e['chainId'],f);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a81b('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a){const b=await this['_getWithSecret'](),c=hexToBytes(b['secret']['slice'](0x2)),d=typeof a==='string'?new TextEncoder()['encode'](a):a,e='\x19Ethereum\x20Signed\x20Message:\x0a'+d['length'],f=new Uint8Array(e['length']+d['length']);f['set'](new TextEncoder()['encode'](e),0x0),f['set'](d,e['length']);const g=keccak_256(f),h=secp256k1['sign'](g,c,{'format':'recovered','prehash':![]}),i=0x1b+h[0x0],j=new Uint8Array(0x41);j['set'](h['subarray'](0x1,0x21),0x0),j['set'](h['subarray'](0x21,0x41),0x20),j[0x40]=i;const k=secp256k1['getPublicKey'](c,!![]);return{'signature':'0x'+bytesToHex(j),'publicKey':'0x'+bytesToHex(k),'address':b['address']};}async['transfer'](a){await this['_getWithSecret']();if(!isValidEvmAddress(a['to']))a81b('invalid\x20parameter','Invalid\x20EVM\x20recipient\x20address:\x20'+a['to']);if(a['amount']<=0x0n)a81b('invalid\x20parameter','amount\x20must\x20be\x20positive');const b=!!a['tokenAddress'];if(b){const e=await this['balanceOf'](a['tokenAddress'],a['network'],a['rpcUrl']);if(e===void 0x0||e<a['amount'])a81b('fail','Insufficient\x20ERC20\x20balance:\x20have\x20'+(e??0x0n)+',\x20need\x20'+a['amount']);}else{const f=await this['balance'](a['network'],a['rpcUrl']);if(f===void 0x0||f<a['amount'])a81b('fail','Insufficient\x20ETH\x20balance:\x20have\x20'+(f??0x0n)+',\x20need\x20'+a['amount']);}let c;if(b){const g='0xa9059cbb'+a['to']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0')+a['amount']['toString'](0x10)['padStart'](0x40,'0');c={'to':a['tokenAddress'],'value':0x0n,'data':g,'network':a['network'],'rpcUrl':a['rpcUrl']};}else c={'to':a['to'],'value':a['amount'],'data':'0x','network':a['network'],'rpcUrl':a['rpcUrl']};const d=await this['sign_and_send'](c,a['rpcUrl']);if(d['status']!=='0x1')a81b('fail','EVM\x20transfer\x20reverted:\x20txHash='+d['transactionHash']);return d;}async['withdrawFromActive'](a){return this['transfer']({...a});}};function extractRevertReason(a){if(!a)return void 0x0;const b=typeof a==='string'?a:a?.['message']??a?.['toString']?.()??'',c=b['match'](/execution reverted:\s*(.+?)(?:\.|$)/i);if(c)return c[0x1]['trim']();const d=b['match'](/reverted with reason string\s*'([^']+)'/i);if(d)return d[0x1];const e=b['match'](/reverted with panic code\s*(0x[0-9a-f]+)/i);if(e)return'panic:\x20'+e[0x1];if(/stack underflow/i['test'](b))return'stack\x20underflow\x20(calldata\x20encoding\x20error)';if(/stack overflow/i['test'](b))return'stack\x20overflow';if(/out of gas/i['test'](b))return'out\x20of\x20gas';return b['length']>0xc8?b['slice'](0x0,0xc8)+'...':b;}export{EvmAccount,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
|
|
1
|
+
import{r as a81a}from'../../mnemonics-C6qlqegr.mjs';import{o as a81b}from'../../exception-C6IYkBi6.mjs';import{t as a81c}from'../../lock-QdrQzo0u.mjs';import{SQLiteAccountStorage}from'./storage.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import{HDKey}from'@scure/bip32';import{keccak_256}from'@noble/hashes/sha3.js';let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}var EvmAccount=class EvmAccount{static{this['_dataLock']=new a81c();}static{this['_storageLock']=new a81c();}['setStorage'](a){EvmAccount['storage']=a;}['setEncryptedStorage'](a){EvmAccount['storage']=new SecureAccountStorage(a);}async['_getStorage'](){if(EvmAccount['storage'])return EvmAccount['storage'];return EvmAccount['_storageLock']['run'](async()=>{if(!EvmAccount['storage'])EvmAccount['storage']=new SecureAccountStorage(new SQLiteAccountStorage(void 0x0,'evm_accounts'));return EvmAccount['storage'];});}async['unlock'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}async['getMcpAccess'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMcpAccess']();return'allowed';}async['setMcpAccess'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['setMcpAccess'](a,b);}static['Instance'](){if(EvmAccount['_instance'])return EvmAccount['_instance'];if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}async['_readAll'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)return[];const c=JSON['parse'](b);let d=[],e=![];if(Array['isArray'](c))d=c['map'](f=>({'address':f['address'],'name':f['name'],'pubkey':f['pubkey'],'secret':f['secret'],'isActive':f['isActive'],'createdAt':f['createdAt'],'updatedAt':f['updatedAt']})),d['length']>0x0&&!d['some'](f=>f['isActive']===!![])&&(d[0x0]['isActive']=!![],e=!![]);else c&&typeof c==='object'&&(d=[{'address':c['address'],'name':c['name'],'pubkey':c['pubkey'],'secret':c['secret'],'isActive':!![],'createdAt':c['createdAt'],'updatedAt':c['updatedAt']}],e=!![]);if(e)await a['put'](JSON['stringify'](d));return d;}async['_writeAll'](a){await(await this['_getStorage']())['put'](JSON['stringify'](a));}['_findActive'](a){return a['find'](b=>b['isActive']===!![]);}['_sanitize'](a,b=![],c=![]){const {secret:d,...e}=a,f=c?a:e;if(!b){const {pubkey:g,...h}=f;return h;}return f;}async['_get'](a=![]){const b=await this['_readAll'](),c=this['_findActive'](b);if(!c)return void 0x0;return this['_sanitize'](c,a);}async['_getWithSecret'](){const a=await this['_readAll'](),b=this['_findActive'](a);if(!b||!b['secret'])a81b('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret.\x20Call\x20active()\x20first\x20to\x20auto-generate\x20one.');return b;}async['_upsertAsActive'](a){const b=await this['_readAll']();b['forEach'](d=>{if(d['address']!==a['address'])d['isActive']=![];});const c=b['findIndex'](d=>d['address']['toLowerCase']()===a['address']['toLowerCase']());if(c!==-0x1)b[c]={...a,'isActive':!![]};else b['push']({...a,'isActive':!![]});await this['_writeAll'](b);}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x2710;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{const k=await ethRpcWithAbort(h,b,c,i['signal']);return d['markHealthy'](h),k;}finally{clearTimeout(j);}}catch(l){f=l,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](a=![]){return EvmAccount['_dataLock']['run'](async()=>{const b=secp256k1['utils']['randomSecretKey'](),c='0x'+bytesToHex(b),d=privateKeyToAddress(b),e=Date['now'](),f={'address':d,'secret':c,'isActive':!![],'createdAt':e,'updatedAt':e};if(a)f['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](b,!![]));return await this['_upsertAsActive'](f),this['_sanitize'](f,a);});}async['importPrivateKey'](a,b=![]){return EvmAccount['_dataLock']['run'](async()=>{const c=a['startsWith']('0x')?a['slice'](0x2):a;if(c['length']!==0x40)a81b('invalid\x20parameter','Private\x20key\x20must\x20be\x2032\x20bytes\x20(64\x20hex\x20chars),\x20got\x20'+c['length']+'\x20chars');const d='0x'+c,e=hexToBytes(d),f=privateKeyToAddress(e),g=Date['now'](),h={'address':f,'secret':d,'isActive':!![],'createdAt':g,'updatedAt':g};if(b)h['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](e,!![]));return await this['_upsertAsActive'](h),this['_sanitize'](h,b);});}async['importMnemonic'](a,b,c=![]){return EvmAccount['_dataLock']['run'](async()=>{const d=a81a(a),e=HDKey['fromMasterSeed'](d),f=b||'m/44\x27/60\x27/0\x27/0/0',g=e['derive'](f);if(!g['privateKey'])a81b('invalid\x20parameter','Failed\x20to\x20derive\x20private\x20key\x20from\x20mnemonic');const h='0x'+bytesToHex(g['privateKey']),i=hexToBytes(h),j=privateKeyToAddress(i),k=Date['now'](),l={'address':j,'secret':h,'isActive':!![],'createdAt':k,'updatedAt':k};if(c)l['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](i,!![]));return await this['_upsertAsActive'](l),this['_sanitize'](l,c);});}async['active'](a=![]){const b=await this['_get'](a);if(b)return b;return this['gen'](a);}async['list'](a){let b=(await this['_readAll']())['slice']();if(a?.['isActive']!==void 0x0)b=b['filter'](c=>a['isActive']?c['isActive']===!![]:c['isActive']!==!![]);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address'])b=b['map'](c=>{let d=0x0;if(a?.['name']!=null){const e=(c['name']||'')['toLowerCase'](),f=a['name']['toLowerCase']();if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['address']){const g=c['address']['toLowerCase'](),h=a['address']['toLowerCase']();if(g===h)d+=0x64;else{if(g['startsWith'](h))d+=0x32;else{if(g['includes'](h))d+=0x19;}}}if((a?.['name']||a?.['address'])&&d===0x0)d=-0x1;return{'a':c,'score':d};})['filter'](c=>c['score']>=0x0)['sort']((c,d)=>d['score']-c['score'])['map'](c=>c['a']);else b['sort']((c,d)=>{if(c['isActive']===!![]&&d['isActive']!==!![])return-0x1;if(c['isActive']!==!![]&&d['isActive']===!![])return 0x1;return 0x0;});return b['map'](c=>this['_sanitize'](c,a?.['includePubkey']));}async['setActive'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['find'](d=>d['address']['toLowerCase']()===a['toLowerCase']());if(!c)return![];return b['forEach'](d=>{d['isActive']=d['address']===c['address'];}),c['updatedAt']=Date['now'](),await this['_writeAll'](b),!![];});}async['rename'](a,b){return EvmAccount['_dataLock']['run'](async()=>{const c=await this['_readAll'](),d=c['find'](f=>f['address']['toLowerCase']()===a['toLowerCase']());if(!d)return![];const e=Date['now']();return d['name']=b,d['updatedAt']=e,await this['_writeAll'](c),!![];});}async['del'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['findIndex'](e=>e['address']['toLowerCase']()===a['toLowerCase']());if(c===-0x1)return![];const d=b[c]['isActive']===!![];return b['splice'](c,0x1),d&&b['length']>0x0&&!b['some'](e=>e['isActive']===!![])&&(b[0x0]['isActive']=!![],b[0x0]['updatedAt']=Date['now']()),await this['_writeAll'](b),!![];});}async['getByNameOrAddress'](a,b=![],c=![]){const d=await this['_readAll'](),e=a['toLowerCase'](),f=d['find'](g=>g['address']['toLowerCase']()===e||g['name']&&g['name']['toLowerCase']()===e);if(!f)return void 0x0;return this['_sanitize'](f,b,c);}async['exportSecret'](a){return(await this['getByNameOrAddress'](a,![],!![]))?.['secret'];}async['balance'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getBalance',[d['address'],'latest']);return BigInt(f);}async['balanceOf'](b,c,d){const e=await this['_get']();if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g='0x70a08231'+e['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),h=await this['rpcWithFailover'](f,'eth_call',[{'to':b,'data':g},'latest']);return BigInt(h);}async['getNonce'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getTransactionCount',[d['address'],'pending']);return parseInt(f,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['ethCall'](b,c,d){const e=await this['_get']();if(!e)a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']);return await this['rpcWithFailover'](g,'eth_call',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)},'latest']);}['guessGasLimit'](a){const b=a['data']??'';if(b['startsWith']('0x9c3ecefb'))return 0x927c0n;if(b['startsWith']('0x095ea7b3'))return 0x186a0n;if(b['startsWith']('0xb4b7068c'))return 0x3d090n;if(b['startsWith']('0x0bdba58b'))return 0x493e0n;return 0x61a80n;}async['estimateGas'](b,c,d){const e=await this['_get']();if(!e)a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']),h=await this['rpcWithFailover'](g,'eth_estimateGas',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(h);}async['safeEstimateGas'](a){if(!await this['_get']())a81b('account\x20not\x20found','No\x20active\x20EVM\x20account');const {cfg:b}=await this['resolveNetwork'](a['network'],a['rpcUrl']);let c;try{await this['ethCall'](a);}catch(d){return c=extractRevertReason(d),{'gasLimit':this['guessGasLimit'](a),'revertReason':c||'eth_call\x20failed'};}try{const f=await this['estimateGas'](a),g=b['gasLimitMultiplier']??1.2;return{'gasLimit':BigInt(Math['ceil'](Number(f)*g))};}catch(h){return c=extractRevertReason(h),console['warn']('[safeEstimateGas]\x20estimateGas\x20failed,\x20using\x20fallback\x20gasLimit='+this['guessGasLimit'](a),c?'revert:\x20'+c:''),{'gasLimit':this['guessGasLimit'](a),'revertReason':c};}}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c){const d=await this['_getWithSecret']();if(!d||!d['secret'])a81b('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret');const {cfg:e,url:f}=await this['resolveNetwork'](b['network'],c??b['rpcUrl']),g=b['chainId']??e['chainId'],h=hexToBytes(d['secret']['slice'](0x2)),i=b['nonce']??await this['getNonce'](e['chainId'],f);let {maxFeePerGas:j,maxPriorityFeePerGas:k,gasPrice:l}=b;e['useLegacy']&&!l&&(l=(await this['getFeeData'](e['chainId'],f))['maxFeePerGas'],j=void 0x0,k=void 0x0);if(!j&&!k&&!l){const r=await this['getFeeData'](e['chainId'],f);j=r['maxFeePerGas'],k=r['maxPriorityFeePerGas'];}let m=b['gasLimit'];if(!m){const s=await this['safeEstimateGas'](b);m=s['gasLimit'],s['revertReason'];}const n=hexToBytes(b['to']['slice'](0x2)),o=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let p;if(l)p=signLegacy({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'gasPrice':l,'gasLimit':m},h);else p=signEIP1559({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'maxFeePerGas':j,'maxPriorityFeePerGas':k,'gasLimit':m},h);const q=await this['rpcWithFailover'](e,'eth_sendRawTransaction',[p]);return await this['waitForReceipt'](q,e['chainId'],f);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a81b('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a){const b=await this['_getWithSecret'](),c=hexToBytes(b['secret']['slice'](0x2)),d=typeof a==='string'?new TextEncoder()['encode'](a):a,e='\x19Ethereum\x20Signed\x20Message:\x0a'+d['length'],f=new Uint8Array(e['length']+d['length']);f['set'](new TextEncoder()['encode'](e),0x0),f['set'](d,e['length']);const g=keccak_256(f),h=secp256k1['sign'](g,c,{'format':'recovered','prehash':![]}),i=0x1b+h[0x0],j=new Uint8Array(0x41);j['set'](h['subarray'](0x1,0x21),0x0),j['set'](h['subarray'](0x21,0x41),0x20),j[0x40]=i;const k=secp256k1['getPublicKey'](c,!![]);return{'signature':'0x'+bytesToHex(j),'publicKey':'0x'+bytesToHex(k),'address':b['address']};}async['transfer'](a){await this['_getWithSecret']();if(!isValidEvmAddress(a['to']))a81b('invalid\x20parameter','Invalid\x20EVM\x20recipient\x20address:\x20'+a['to']);if(a['amount']<=0x0n)a81b('invalid\x20parameter','amount\x20must\x20be\x20positive');const b=!!a['tokenAddress'];if(b){const e=await this['balanceOf'](a['tokenAddress'],a['network'],a['rpcUrl']);if(e===void 0x0||e<a['amount'])a81b('fail','Insufficient\x20ERC20\x20balance:\x20have\x20'+(e??0x0n)+',\x20need\x20'+a['amount']);}else{const f=await this['balance'](a['network'],a['rpcUrl']);if(f===void 0x0||f<a['amount'])a81b('fail','Insufficient\x20ETH\x20balance:\x20have\x20'+(f??0x0n)+',\x20need\x20'+a['amount']);}let c;if(b){const g='0xa9059cbb'+a['to']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0')+a['amount']['toString'](0x10)['padStart'](0x40,'0');c={'to':a['tokenAddress'],'value':0x0n,'data':g,'network':a['network'],'rpcUrl':a['rpcUrl']};}else c={'to':a['to'],'value':a['amount'],'data':'0x','network':a['network'],'rpcUrl':a['rpcUrl']};const d=await this['sign_and_send'](c,a['rpcUrl']);if(d['status']!=='0x1')a81b('fail','EVM\x20transfer\x20reverted:\x20txHash='+d['transactionHash']);return d;}async['withdrawFromActive'](a){return this['transfer']({...a});}};function extractRevertReason(a){if(!a)return void 0x0;const b=typeof a==='string'?a:a?.['message']??a?.['toString']?.()??'',c=b['match'](/execution reverted:\s*(.+?)(?:\.|$)/i);if(c)return c[0x1]['trim']();const d=b['match'](/reverted with reason string\s*'([^']+)'/i);if(d)return d[0x1];const e=b['match'](/reverted with panic code\s*(0x[0-9a-f]+)/i);if(e)return'panic:\x20'+e[0x1];if(/stack underflow/i['test'](b))return'stack\x20underflow\x20(calldata\x20encoding\x20error)';if(/stack overflow/i['test'](b))return'stack\x20overflow';if(/out of gas/i['test'](b))return'out\x20of\x20gas';return b['length']>0xc8?b['slice'](0x0,0xc8)+'...':b;}export{EvmAccount,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Ay as
|
|
1
|
+
import { Ay as query_local_info, By as AccountData, Cy as QueryAccountResult, Dy as local_mark_operation, Ey as local_info_operation, Fy as query_local_token_list, Hy as DEFAULT_ACCOUNT_NAME, Iy as TokenDataFilter, Ly as TokenInfo, My as query_local_info_list, Ny as query_local_mark, Oy as query_account, Py as query_local_mark_list, Ry as TokenTypeInfo, Sy as QueryAccount, Ty as fetch_token_info_operation, Uy as FaucetCoinInfo, Vy as AccountFilter, Wy as MAX_MESSENGER_ACCOUNTS, _y as LocalInfoOperationResult, by as LocalNameByAddress, cy as AccountOperation, dy as FaucetNetwork, fy as FetchTokenInfoOperation, gy as LocalInfoOperation, hy as GetManyAccountOrMark_Address, jy as query_local_info_default, ky as query_account_list, ly as AccountOperationResult, my as GetLocalNamesByAddresses, py as GetAccountOrMark_Address, uy as AccountOrMark_Address, vy as LocalMarkOperation, wy as account_operation, xy as ManyAccountOrMark_Address, yy as LocalMarkOperationResult, zy as Account } from "../../index-BHXc1_-d.mjs";
|
|
2
2
|
import { n as ConfigData, t as Config } from "../../config-CPqpYYLT.mjs";
|
|
3
|
-
import { t as IAccountStorage } from "../../storage-
|
|
4
|
-
import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-
|
|
3
|
+
import { o as UserModeRecord, s as UserModeStorage, t as IAccountStorage } from "../../storage-B8nW4YTJ.mjs";
|
|
4
|
+
import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-lI6ZR9sW.mjs";
|
|
5
5
|
import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-gzBIsXyJ.mjs";
|
|
6
6
|
import { _ as toChecksumAddress, c as bytesToHex, d as hexToBytes, g as signLegacy, h as signEIP1559, m as privateKeyToAddress, p as isValidEvmAddress, s as bytesToBigInt } from "../../rlp-Do3rPWRV.mjs";
|
|
7
|
-
import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-
|
|
7
|
+
import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-Bk7Axxmu.mjs";
|
|
8
8
|
import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../networks-ByH0We-G.mjs";
|
|
9
9
|
import { A as wipToHtml, C as createWip, D as verifyWip, E as sign_wip, O as verify_wip, S as WipVerificationResult, T as loadWip, _ as WipSignature, a as SignatureAlgorithm, b as WipToHtmlOptions, c as WipContent, d as WipFile, f as WipGenerationOptions, g as WipPayload, h as WipMeta, i as ImageSource, k as wip2html, l as WipCreateOptions, m as WipMedia, n as HashAlgorithm, o as TextFormat, p as WipLimits, r as ImageMimeType, s as WIP, t as DEFAULT_LIMITS, u as WipError, v as WipSignatureVerification, w as generate_wip, x as WipValidationError, y as WipSizeError } from "../../wip-NbB1ChbI.mjs";
|
|
10
10
|
import { C as ProjectUpdate, S as ProjectStatus, T as RelationshipType, _ as ProjectDocument, a as EvaluationType, b as ProjectObjectAdd, c as GraphEdgeInput, d as ObjectCacheEntry, f as ObjectCacheHistoryEntry, g as ProjectCreate, h as Project, i as EvaluationInput, l as GraphNode, m as ObjectRole, n as EdgeSource, o as GraphData, p as ObjectDiff, r as Evaluation, s as GraphEdge, t as DiffField, u as LocalProject, v as ProjectFilter, w as ProjectVersion, x as ProjectPerspective, y as ProjectObject } from "../../project-B3Z3z_Z_.mjs";
|
|
11
11
|
import { n as getWowMcpDir, t as getWowDir } from "../../util-7R_TK4HK.mjs";
|
|
12
|
-
export { Account, AccountData, AccountFilter, AccountOperation, AccountOperationResult, AccountOrMark_Address, BUITIN_IDS, Config, ConfigData, CryptoVault, DEFAULT_ACCOUNT_NAME, DEFAULT_LIMITS, DiffField, ETH_MAINNET, EdgeSource, EncryptionMode, Evaluation, EvaluationInput, EvaluationType, EvmAccount, EvmAccountData, EvmAccountFilter, EvmLog, EvmNetworkConfig, EvmNetworkRegistry, EvmTransactionReceipt, EvmTransactionRequest, FaucetCoinInfo, FaucetNetwork, FetchTokenInfoOperation, GetAccountOrMark_Address, GetLocalNamesByAddresses, GetManyAccountOrMark_Address, GraphData, GraphEdge, GraphEdgeInput, GraphNode, HashAlgorithm, type IAccountStorage, ImageMimeType, ImageSource, InfoData, InfoDataInner, KeyMetadata, LocalInfo, LocalInfoContentMaxCount, LocalInfoContentMaxLength, LocalInfoFilter, LocalInfoNameDefault, LocalInfoNameMaxLength, LocalInfoOperation, LocalInfoOperationResult, LocalMark, LocalMarkFilter, LocalMarkNameMaxLength, LocalMarkOperation, LocalMarkOperationResult, LocalMarkTagMaxCount, LocalMarkTagMaxLength, LocalNameByAddress, LocalProject, MAX_MESSENGER_ACCOUNTS, ManyAccountOrMark_Address, MarkData, MarkParam, ObjectCacheEntry, ObjectCacheHistoryEntry, ObjectDiff, ObjectRole, Project, ProjectCreate, ProjectDocument, ProjectFilter, ProjectObject, ProjectObjectAdd, ProjectPerspective, ProjectStatus, ProjectUpdate, ProjectVersion, QueryAccount, QueryAccountResult, RelationshipType, SecureAccountStorage, SecureEnvelope, SignatureAlgorithm, TextFormat, TokenDataFilter, TokenInfo, TokenTypeInfo, WIP, WipContent, WipCreateOptions, WipError, WipFile, WipGenerationOptions, WipLimits, WipMedia, WipMeta, WipPayload, WipSignature, WipSignatureVerification, WipSizeError, WipToHtmlOptions, WipValidationError, WipVerificationResult, account_operation, bytesToBigInt, bytesToHex, createWip, fetch_token_info_operation, generate_wip, getWowDir, getWowMcpDir, hexToBytes, isValidAddress, isValidEvmAddress, loadWip, local_info_operation, local_mark_operation, privateKeyToAddress, query_account, query_account_list, query_local_info, query_local_info_default, query_local_info_list, query_local_mark, query_local_mark_list, query_local_token_list, registerBridgeEvmNetworks, signEIP1559, signLegacy, sign_wip, toChecksumAddress, verifyWip, verify_wip, wip2html, wipToHtml };
|
|
12
|
+
export { Account, AccountData, AccountFilter, AccountOperation, AccountOperationResult, AccountOrMark_Address, BUITIN_IDS, Config, ConfigData, CryptoVault, DEFAULT_ACCOUNT_NAME, DEFAULT_LIMITS, DiffField, ETH_MAINNET, EdgeSource, EncryptionMode, Evaluation, EvaluationInput, EvaluationType, EvmAccount, EvmAccountData, EvmAccountFilter, EvmLog, EvmNetworkConfig, EvmNetworkRegistry, EvmTransactionReceipt, EvmTransactionRequest, FaucetCoinInfo, FaucetNetwork, FetchTokenInfoOperation, GetAccountOrMark_Address, GetLocalNamesByAddresses, GetManyAccountOrMark_Address, GraphData, GraphEdge, GraphEdgeInput, GraphNode, HashAlgorithm, type IAccountStorage, ImageMimeType, ImageSource, InfoData, InfoDataInner, KeyMetadata, LocalInfo, LocalInfoContentMaxCount, LocalInfoContentMaxLength, LocalInfoFilter, LocalInfoNameDefault, LocalInfoNameMaxLength, LocalInfoOperation, LocalInfoOperationResult, LocalMark, LocalMarkFilter, LocalMarkNameMaxLength, LocalMarkOperation, LocalMarkOperationResult, LocalMarkTagMaxCount, LocalMarkTagMaxLength, LocalNameByAddress, LocalProject, MAX_MESSENGER_ACCOUNTS, ManyAccountOrMark_Address, MarkData, MarkParam, ObjectCacheEntry, ObjectCacheHistoryEntry, ObjectDiff, ObjectRole, Project, ProjectCreate, ProjectDocument, ProjectFilter, ProjectObject, ProjectObjectAdd, ProjectPerspective, ProjectStatus, ProjectUpdate, ProjectVersion, QueryAccount, QueryAccountResult, RelationshipType, SecureAccountStorage, SecureEnvelope, SignatureAlgorithm, TextFormat, TokenDataFilter, TokenInfo, TokenTypeInfo, type UserModeRecord, UserModeStorage, WIP, WipContent, WipCreateOptions, WipError, WipFile, WipGenerationOptions, WipLimits, WipMedia, WipMeta, WipPayload, WipSignature, WipSignatureVerification, WipSizeError, WipToHtmlOptions, WipValidationError, WipVerificationResult, account_operation, bytesToBigInt, bytesToHex, createWip, fetch_token_info_operation, generate_wip, getWowDir, getWowMcpDir, hexToBytes, isValidAddress, isValidEvmAddress, loadWip, local_info_operation, local_mark_operation, privateKeyToAddress, query_account, query_account_list, query_local_info, query_local_info_default, query_local_info_list, query_local_mark, query_local_mark_list, query_local_token_list, registerBridgeEvmNetworks, signEIP1559, signLegacy, sign_wip, toChecksumAddress, verifyWip, verify_wip, wip2html, wipToHtml };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a82a}from'../../wow-types-DcqbnAaK.mjs';import{i as a82b,r as a82c}from'../../common-
|
|
1
|
+
import{a as a82a}from'../../wow-types-DcqbnAaK.mjs';import{i as a82b,r as a82c}from'../../common-uweycQjC.mjs';import{o as a82d}from'../../exception-C6IYkBi6.mjs';import{getWowDir,getWowMcpDir}from'./util.mjs';import{UserModeStorage}from'./storage.mjs';import{Config}from'./config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./local.mjs';import{CryptoVault,SecureAccountStorage}from'./secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./account.mjs';import{TokenInfo}from'./token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./evm/networks.mjs';import{EvmAccount}from'./evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./wip.mjs';import{LocalProject}from'./project.mjs';const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](void 0x0);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](void 0x0);if(b['toLowerCase']()==='0xaaa')return a82c;if(b['toLowerCase']()==='0xaab')return a82b;if(a82a(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}},GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));},GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);if(!d&&a['check_all_founded'])a82d('invalid\x20parameter','entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark');if(d)b['push'](d);}return b;},query_local_mark_list=async a=>{return await LocalMark['Instance']()['list'](a);},query_account_list=async a=>{return await Account['Instance']()['list'](a);},query_local_info_list=async a=>{return await LocalInfo['Instance']()['list'](a);},query_local_token_list=async a=>{return await TokenInfo['Instance']()['list'](a);},query_local_mark=async a=>{if(typeof a==='string')return await LocalMark['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalMark['Instance']()['get_many'](a);}},query_local_info=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalInfo['Instance']()['get_many'](a);}},query_local_info_default=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get_default'](a);else{if(Array['isArray'](a))return(await LocalInfo['Instance']()['get_many'](a))['map'](b=>b?.['default']);}},query_account=async a=>{const b=await Account['Instance']()['get'](a['name_or_address']);if(!b)return{'name_or_address':a['name_or_address']};const c={'address':b['address'],'name_or_address':b['name']},d=a['token_type']??'0x2::wow::WOW';if(a?.['balance'])c['balance']=await Account['Instance']()['balance'](d,b['address'],a['network']);else{if(a?.['coin'])c['coin']=await Account['Instance']()['coin'](d,a['coin']['cursor'],a['coin']['limit'],b['address'],a['network']);}return c;},account_operation=async a=>{var b={};if(a['gen']!=null){const c=await Account['Instance']()['gen'](a['gen']?.['name'],a['gen']?.['replaceExistName'],a['gen']?.['messenger']);b['gen']={'address':c?.['address'],'name':c?.['name'],'messenger':c?.['messenger']};}if(a['faucet']!=null)b['faucet']={'name_or_address':a['faucet']['name_or_address'],'result':await Account['Instance']()['faucet'](a['faucet']['name_or_address'],a['faucet']['network']),'network':a['faucet']['network']};if(a['suspend']!=null)b['suspend']={'name_or_address':a['suspend']['name_or_address'],'success':await Account['Instance']()['suspend'](a['suspend']['name_or_address'])};if(a['resume']!=null)b['resume']={'address':a['resume']['address'],'name':a['resume']['name'],'success':await Account['Instance']()['resume'](a['resume']['address'],a['resume']['name'])};if(a['rename']!=null)b['rename']={'name_or_address':a['rename']['name_or_address'],'new_name':a['rename']['new_name'],'success':await Account['Instance']()['rename'](a['rename']['name_or_address'],a['rename']['new_name'])};if(a['swap_name']!=null)b['swap_name']={'name_or_address1':a['swap_name']['name_or_address1'],'name_or_address2':a['swap_name']['name_or_address2'],'success':await Account['Instance']()['swap_name'](a['swap_name']['name_or_address1'],a['swap_name']['name_or_address2'])};if(a['transfer']!=null){const {name_or_address_from:d,name_or_address_to:e,amount:f,token_type:g,network:h}=a['transfer'];b['transfer']=await Account['Instance']()['transfer'](f,g,e,d,h);}if(a['get']!=null){const {balance_required:i,token_type:j,name_or_address:k,network:l}=a['get'];b['get']={'name_or_address':k,'balance_required':i,'token_type':j,'network':l,'coin_address':await Account['Instance']()['coinObject_with_balance'](i,j,k,l)};}if(a['signData']!=null){const {name_or_address:m,data:n,data_encoding:o}=a['signData'];let p=n;if(typeof n==='string'&&o)switch(o){case'base64':p=Uint8Array['from'](Buffer['from'](n,'base64'));break;case'hex':p=Uint8Array['from'](Buffer['from'](n['replace'](/^0x/,''),'hex'));break;default:p=n;break;}const q=await Account['Instance']()['signData'](m,p);b['signData']={'name_or_address':m,'signature':q['signature'],'publicKey':q['publicKey'],'address':q['address']};}if(a['messenger']!=null){const {name_or_account:r,enabled:s}=a['messenger'];await Account['Instance']()['set_messenger'](r,s),b['messenger']={'name_or_account':r,'enabled':s};}return b;},local_mark_operation=async a=>{const b={};if(a['clear'])b['clear']=await LocalMark['Instance']()['clear']();else{if(a['add'])b['add']=await LocalMark['Instance']()['put'](a['add']['data']);else{if(a['remove'])b['remove']=await LocalMark['Instance']()['del'](a['remove']['names']);}}return b;},local_info_operation=async a=>{if(a['clear'])await LocalInfo['Instance']()['clear']();else{if(a['add'])await LocalInfo['Instance']()['add'](a['add']['data']);else{if(a['remove'])await Promise['all'](a['remove']['data']['map'](b=>LocalInfo['Instance']()['del'](b)));else{if(a['reset'])await LocalInfo['Instance']()['reset_contents'](a['reset']['name'],a['reset']['contents']);}}}return{'success':!![]};},fetch_token_info_operation=async a=>{return await TokenInfo['Instance']()['fetch'](a['tokenType'],a?.['alias'],a?.['network']);};export{Account,BUITIN_IDS,Config,CryptoVault,DEFAULT_ACCOUNT_NAME,DEFAULT_LIMITS,ETH_MAINNET,EvmAccount,EvmNetworkRegistry,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,LocalProject,MAX_MESSENGER_ACCOUNTS,SecureAccountStorage,TokenInfo,UserModeStorage,WIP,WipError,WipSizeError,WipValidationError,account_operation,bytesToBigInt,bytesToHex,createWip,fetch_token_info_operation,generate_wip,getWowDir,getWowMcpDir,hexToBytes,isValidAddress,isValidEvmAddress,loadWip,local_info_operation,local_mark_operation,privateKeyToAddress,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,registerBridgeEvmNetworks,signEIP1559,signLegacy,sign_wip,toChecksumAddress,verifyWip,verify_wip,wip2html,wipToHtml};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a83a,l as a83b}from'../../wow-types-DcqbnAaK.mjs';import{o as a83c}from'../../exception-0GqTGX2P.mjs';import{t as a83d}from'../../lock-QdrQzo0u.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','0xa','0xc','0xd','0x403','0xaaa','0xaab','0xacc'],isValidAddress=a=>{return a&&(a83a(a)||BUITIN_IDS['includes'](a));},LocalMarkNameMaxLength=0x40,LocalMarkTagMaxLength=0x40,LocalMarkTagMaxCount=0x32,LocalInfoNameMaxLength=0x40,LocalInfoContentMaxLength=0x12c,LocalInfoContentMaxCount=0x32,LocalInfoNameDefault='Address\x20of\x20delivery';var LocalMark=class LocalMark{static{this['_instanceLock']=new a83d();}constructor(){this['config']=Config['Instance']();}async['getCacheKey'](){return['mark',await this['config']['network_get']()];}static['Instance'](){if(LocalMark['_instance'])return LocalMark['_instance'];if(!LocalMark['_instance'])LocalMark['_instance']=new LocalMark();return LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,0x32),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,0x40);}),a;}['resolve_name'](a){return a['slice'](0x0,0x40);}async['put'](a){const b=await this['getCacheKey'](),c=(await Cache['read'](b,async()=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[],d=[...c],e=[];for(const f of a){f['address']=f['address']['toLowerCase']();if(!isValidAddress(f['address']))a83c('invalid\x20address','LocalMark.put.mark.address:\x20'+f['address']);if(f?.['name']?.['value'])f['name']['value']=this['resolve_name'](f?.['name']?.['value']);f['tags']=this['resolve_tags'](f?.['tags']);if(f?.['name']?.['value']!=null)d['forEach'](i=>{if(LocalMark['nameMatch'](i['name'],f['name']['value'])){if(f?.['name']?.['replaceExistName'])i['name']=void 0x0;else a83c('local\x20mark\x20name\x20exist','LocalMark.put.mark.name:\x20'+f['name']['value']);}});const g=Date['now'](),h={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':g,'updatedAt':g};c['push'](h),e['push'](h);}return await Cache['read'](b,async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===void 0x0||a===null)return;const b=await this['getCacheKey']();return(await Cache['read'](b,async c=>{return{'expire':'INFINITE','data':[]};}))?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a83b(a);return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await this['getCacheKey'](),c=(await Cache['read'](b,async d=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](void 0x0),c=new Map();a['forEach']((g,h)=>{if(g===null||g===void 0x0)b[h]=void 0x0;else{if(isValidAddress(g))b[h]=g['toLowerCase']();else c['set'](h,g);}});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['filter'](g=>{const h=a['map'](m=>m['toLowerCase']()),i=g['name']!==void 0x0&&g['name']!==null&&a['some'](m=>LocalMark['nameMatch'](g['name'],m)),j=h['includes'](g['address']['toLowerCase']()),k=i||j,l=g['name']===void 0x0||g['name']===null;if(b)return!k&&!l;else return!k;}),f=d['filter'](g=>!e['includes'](g));if(e['length']!==d['length'])await Cache['read'](c,async()=>({'expire':'INFINITE','data':e}),!![]);return f;}async['clear'](){const a=await this['getCacheKey']();return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['add_tags'](a,b){const c=this['resolve_tags'](b);if(!c||c['length']===0x0)return![];const d=await this['getCacheKey'](),e=(await Cache['read'](d,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],f=e['find'](i=>LocalMark['nameMatch'](i['name'],a)||i['address']['toLowerCase']()===a['toLowerCase']());if(!f)return![];const g=new Set(f['tags']??[]),h=[...g];for(const i of c){!g['has'](i)&&(h['push'](i),g['add'](i));if(h['length']>=0x32)break;}return f['tags']=h,f['updatedAt']=Date['now'](),await Cache['read'](d,async()=>({'expire':'INFINITE','data':e}),!![]),!![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](c=>c!==''&&c);const b=await this['getCacheKey']();return((await Cache['read'](b,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[])['filter'](c=>{if(a?.['address']&&c['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!c['createdAt']||c['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!c['createdAt']||c['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](c=>{let d=0x0;const e=c['name']?.['toLowerCase']()||'',f=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['tags']&&a['tags']['length']>0x0)a['tags']['forEach'](g=>{const h=g['toLowerCase']();if(c['tags'])c['tags']['forEach'](i=>{const j=i['toLowerCase']();if(j===h)d+=0x14;else{if(j['startsWith'](h))d+=0xf;else{if(j['includes'](h))d+=0xa;}}});});if((a?.['name']||a?.['tags'])&&d===0x0)d=-0x1;return{'mark':c,'score':d};})['filter'](({score:c})=>c>=0x0)['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=(c['mark']['name']||'')['length'],f=(d['mark']['name']||'')['length'];if(e!==f)return e-f;return(c['mark']['name']||'')['localeCompare'](d['mark']['name']||'');})['map'](({mark:c})=>c);}},LocalInfo=class LocalInfo{constructor(){this['cacheKey']=['info'];}static{this['_dataLock']=new a83d();}static['Instance'](){if(LocalInfo['_instance'])return LocalInfo['_instance'];if(!LocalInfo['_instance'])LocalInfo['_instance']=new LocalInfo();return LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,0x32),a['map'](b=>b['slice'](0x0,0x12c));}['resolve_name'](a){return a['slice'](0x0,0x40);}async['add'](a){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};for(const c of a){const d=this['resolve_name'](c['name']),e=c['default']['slice'](0x0,0x12c);if(b[d]){const f=Date['now'](),g=b[d];g['default']=e;if(c['contents']!==void 0x0)g['contents']=this['resolve_contents'](c['contents']);g['updatedAt']=f;}else{const h=Date['now']();b[d]={'default':e,'contents':c['contents']?this['resolve_contents'](c['contents']):[],'createdAt':h,'updatedAt':h};}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=((await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{})[a];return b?{'name':a,...b}:void 0x0;}async['get_default'](a=LocalInfoNameDefault){return(await this['get'](a))?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return a['map'](c=>{const d=b[c];return d?{'name':c,...d}:void 0x0;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};delete b[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_dataLock']['run'](async()=>{const c=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{},d=c[a];if(d){const e=Date['now']();return d['contents']=this['resolve_contents'](b),d['updatedAt']=e,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_dataLock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return Object['entries'](b)['map'](([c,d])=>{let e=0x0;const f={'name':c,...d};if(a?.['name']){const g=c['toLowerCase'](),h=a['name']['toLowerCase']();if(g===h)e+=0x64;else{if(g['startsWith'](h))e+=0x32;else{if(g['includes'](h))e+=0x19;}}}if(a?.['default']){const i=d['default']['toLowerCase'](),j=a['default']['toLowerCase']();if(i===j)e+=0x5a;else{if(i['startsWith'](j))e+=0x2d;else{if(i['includes'](j))e+=0x16;}}}if(a?.['contents']&&a['contents']['length']>0x0)a['contents']['forEach'](k=>{const l=k['toLowerCase']();if(d['contents'])d['contents']['forEach'](m=>{const n=m['toLowerCase']();if(n===l)e+=0x14;else{if(n['startsWith'](l))e+=0xf;else{if(n['includes'](l))e+=0xa;}}});});if((a?.['name']||a?.['default']||a?.['contents'])&&e===0x0)e=-0x1;return{'info':f,'score':e};})['filter'](({score:c,info:d})=>{if(c<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=c['info']['name']['length'],f=d['info']['name']['length'];if(e!==f)return e-f;return c['info']['name']['localeCompare'](d['info']['name']);})['map'](({info:c})=>c);}};export{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress};
|
|
1
|
+
import{a as a83a,l as a83b}from'../../wow-types-DcqbnAaK.mjs';import{o as a83c}from'../../exception-C6IYkBi6.mjs';import{t as a83d}from'../../lock-QdrQzo0u.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','0xa','0xc','0xd','0x403','0xaaa','0xaab','0xacc'],isValidAddress=a=>{return a&&(a83a(a)||BUITIN_IDS['includes'](a));},LocalMarkNameMaxLength=0x40,LocalMarkTagMaxLength=0x40,LocalMarkTagMaxCount=0x32,LocalInfoNameMaxLength=0x40,LocalInfoContentMaxLength=0x12c,LocalInfoContentMaxCount=0x32,LocalInfoNameDefault='Address\x20of\x20delivery';var LocalMark=class LocalMark{static{this['_instanceLock']=new a83d();}constructor(){this['config']=Config['Instance']();}async['getCacheKey'](){return['mark',await this['config']['network_get']()];}static['Instance'](){if(LocalMark['_instance'])return LocalMark['_instance'];if(!LocalMark['_instance'])LocalMark['_instance']=new LocalMark();return LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,0x32),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,0x40);}),a;}['resolve_name'](a){return a['slice'](0x0,0x40);}async['put'](a){const b=await this['getCacheKey'](),c=(await Cache['read'](b,async()=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[],d=[...c],e=[];for(const f of a){f['address']=f['address']['toLowerCase']();if(!isValidAddress(f['address']))a83c('invalid\x20address','LocalMark.put.mark.address:\x20'+f['address']);if(f?.['name']?.['value'])f['name']['value']=this['resolve_name'](f?.['name']?.['value']);f['tags']=this['resolve_tags'](f?.['tags']);if(f?.['name']?.['value']!=null)d['forEach'](i=>{if(LocalMark['nameMatch'](i['name'],f['name']['value'])){if(f?.['name']?.['replaceExistName'])i['name']=void 0x0;else a83c('local\x20mark\x20name\x20exist','LocalMark.put.mark.name:\x20'+f['name']['value']);}});const g=Date['now'](),h={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':g,'updatedAt':g};c['push'](h),e['push'](h);}return await Cache['read'](b,async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===void 0x0||a===null)return;const b=await this['getCacheKey']();return(await Cache['read'](b,async c=>{return{'expire':'INFINITE','data':[]};}))?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a83b(a);return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await this['getCacheKey'](),c=(await Cache['read'](b,async d=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](void 0x0),c=new Map();a['forEach']((g,h)=>{if(g===null||g===void 0x0)b[h]=void 0x0;else{if(isValidAddress(g))b[h]=g['toLowerCase']();else c['set'](h,g);}});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['filter'](g=>{const h=a['map'](m=>m['toLowerCase']()),i=g['name']!==void 0x0&&g['name']!==null&&a['some'](m=>LocalMark['nameMatch'](g['name'],m)),j=h['includes'](g['address']['toLowerCase']()),k=i||j,l=g['name']===void 0x0||g['name']===null;if(b)return!k&&!l;else return!k;}),f=d['filter'](g=>!e['includes'](g));if(e['length']!==d['length'])await Cache['read'](c,async()=>({'expire':'INFINITE','data':e}),!![]);return f;}async['clear'](){const a=await this['getCacheKey']();return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['add_tags'](a,b){const c=this['resolve_tags'](b);if(!c||c['length']===0x0)return![];const d=await this['getCacheKey'](),e=(await Cache['read'](d,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],f=e['find'](i=>LocalMark['nameMatch'](i['name'],a)||i['address']['toLowerCase']()===a['toLowerCase']());if(!f)return![];const g=new Set(f['tags']??[]),h=[...g];for(const i of c){!g['has'](i)&&(h['push'](i),g['add'](i));if(h['length']>=0x32)break;}return f['tags']=h,f['updatedAt']=Date['now'](),await Cache['read'](d,async()=>({'expire':'INFINITE','data':e}),!![]),!![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](c=>c!==''&&c);const b=await this['getCacheKey']();return((await Cache['read'](b,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[])['filter'](c=>{if(a?.['address']&&c['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!c['createdAt']||c['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!c['createdAt']||c['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](c=>{let d=0x0;const e=c['name']?.['toLowerCase']()||'',f=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['tags']&&a['tags']['length']>0x0)a['tags']['forEach'](g=>{const h=g['toLowerCase']();if(c['tags'])c['tags']['forEach'](i=>{const j=i['toLowerCase']();if(j===h)d+=0x14;else{if(j['startsWith'](h))d+=0xf;else{if(j['includes'](h))d+=0xa;}}});});if((a?.['name']||a?.['tags'])&&d===0x0)d=-0x1;return{'mark':c,'score':d};})['filter'](({score:c})=>c>=0x0)['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=(c['mark']['name']||'')['length'],f=(d['mark']['name']||'')['length'];if(e!==f)return e-f;return(c['mark']['name']||'')['localeCompare'](d['mark']['name']||'');})['map'](({mark:c})=>c);}},LocalInfo=class LocalInfo{constructor(){this['cacheKey']=['info'];}static{this['_dataLock']=new a83d();}static['Instance'](){if(LocalInfo['_instance'])return LocalInfo['_instance'];if(!LocalInfo['_instance'])LocalInfo['_instance']=new LocalInfo();return LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,0x32),a['map'](b=>b['slice'](0x0,0x12c));}['resolve_name'](a){return a['slice'](0x0,0x40);}async['add'](a){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};for(const c of a){const d=this['resolve_name'](c['name']),e=c['default']['slice'](0x0,0x12c);if(b[d]){const f=Date['now'](),g=b[d];g['default']=e;if(c['contents']!==void 0x0)g['contents']=this['resolve_contents'](c['contents']);g['updatedAt']=f;}else{const h=Date['now']();b[d]={'default':e,'contents':c['contents']?this['resolve_contents'](c['contents']):[],'createdAt':h,'updatedAt':h};}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=((await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{})[a];return b?{'name':a,...b}:void 0x0;}async['get_default'](a=LocalInfoNameDefault){return(await this['get'](a))?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return a['map'](c=>{const d=b[c];return d?{'name':c,...d}:void 0x0;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};delete b[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_dataLock']['run'](async()=>{const c=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{},d=c[a];if(d){const e=Date['now']();return d['contents']=this['resolve_contents'](b),d['updatedAt']=e,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_dataLock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return Object['entries'](b)['map'](([c,d])=>{let e=0x0;const f={'name':c,...d};if(a?.['name']){const g=c['toLowerCase'](),h=a['name']['toLowerCase']();if(g===h)e+=0x64;else{if(g['startsWith'](h))e+=0x32;else{if(g['includes'](h))e+=0x19;}}}if(a?.['default']){const i=d['default']['toLowerCase'](),j=a['default']['toLowerCase']();if(i===j)e+=0x5a;else{if(i['startsWith'](j))e+=0x2d;else{if(i['includes'](j))e+=0x16;}}}if(a?.['contents']&&a['contents']['length']>0x0)a['contents']['forEach'](k=>{const l=k['toLowerCase']();if(d['contents'])d['contents']['forEach'](m=>{const n=m['toLowerCase']();if(n===l)e+=0x14;else{if(n['startsWith'](l))e+=0xf;else{if(n['includes'](l))e+=0xa;}}});});if((a?.['name']||a?.['default']||a?.['contents'])&&e===0x0)e=-0x1;return{'info':f,'score':e};})['filter'](({score:c,info:d})=>{if(c<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=c['info']['name']['length'],f=d['info']['name']['length'];if(e!==f)return e-f;return c['info']['name']['localeCompare'](d['info']['name']);})['map'](({info:c})=>c);}};export{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as a84a}from'../../exception-0GqTGX2P.mjs';import{getWowDir}from'./util.mjs';import{t as a84b}from'../../lock-QdrQzo0u.mjs';import a84c from'libsql';import*as a84d from'path';import*as a84e from'fs';const WOW_DIR=getWowDir(),PROJECT_DB_PATH=a84d['join'](WOW_DIR,'project.db');function ensureWowDirExists(){if(!a84e['existsSync'](WOW_DIR))a84e['mkdirSync'](WOW_DIR,{'recursive':!![]});}let projectDbInstance=null;function getProjectDatabase(){ensureWowDirExists();const a=new a84c(PROJECT_DB_PATH);return a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['pragma']('busy_timeout\x20=\x205000'),a['exec'](SCHEMA_SQL),a;}function getProjectDb(){if(projectDbInstance)return projectDbInstance;return projectDbInstance=getProjectDatabase(),projectDbInstance;}const SCHEMA_SQL='\x0a--\x20Project\x20metadata\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20projects\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20prefix\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20UNIQUE\x20NOT\x20NULL,\x0a\x20\x20\x20\x20name\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20description\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20industry\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20perspective\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27producer\x27,\x0a\x20\x20\x20\x20status\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27draft\x27,\x0a\x20\x20\x20\x20labels\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20current_version\x20TEXT,\x0a\x20\x20\x20\x20service_address\x20TEXT,\x0a\x20\x20\x20\x20default_account\x20TEXT,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL\x20DEFAULT\x20\x27testnet\x27,\x0a\x20\x20\x20\x20created_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20updated_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_status\x20ON\x20projects(status);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_network\x20ON\x20projects(network);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_perspective\x20ON\x20projects(perspective);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_service\x20ON\x20projects(service_address);\x0a\x0a--\x20Project\x20version\x20history\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_versions\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20version\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20description\x20TEXT,\x0a\x20\x20\x20\x20created_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE,\x0a\x20\x20\x20\x20UNIQUE(project_id,\x20version)\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_versions_project\x20ON\x20project_versions(project_id);\x0a\x0a--\x20Project-object\x20relationships\x20(rigid,\x20not\x20tag-based)\x0a--\x20An\x20object\x20can\x20belong\x20to\x20multiple\x20projects\x20(no\x20UNIQUE\x20on\x20object_address)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_objects\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_type\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20object_name\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20role\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27reference\x27,\x0a\x20\x20\x20\x20tags\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20added_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_project\x20ON\x20project_objects(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_address\x20ON\x20project_objects(object_address);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_type\x20ON\x20project_objects(object_type);\x0a\x0a--\x20Cached\x20on-chain\x20object\x20data\x20with\x20timestamps\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20object_cache\x20(\x0a\x20\x20\x20\x20address\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20object_type\x20TEXT,\x0a\x20\x20\x20\x20data\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20fetched_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_type\x20ON\x20object_cache(object_type);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_network\x20ON\x20object_cache(network);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_fetched\x20ON\x20object_cache(fetched_at);\x0a\x0a--\x20Historical\x20snapshots\x20for\x20diff\x20analysis\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20object_cache_history\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20address\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_type\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20data\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20fetched_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20changed_fields\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_history_address\x20ON\x20object_cache_history(address);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_history_time\x20ON\x20object_cache_history(fetched_at);\x0a\x0a--\x20Relationship\x20graph\x20edges\x20(3-pathway\x20fusion)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20graph_edges\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20source_object\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20target_object\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20edge_source\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20relationship_type\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20field_name\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20depth\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20verified\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20weight\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REAL\x20DEFAULT\x200.5,\x0a\x20\x20\x20\x20direction\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20cached_at\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_project\x20ON\x20graph_edges(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_source\x20ON\x20graph_edges(source_object);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_target\x20ON\x20graph_edges(target_object);\x0a\x0a--\x20Evaluation\x20results\x20(cached\x20with\x20timestamps)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20evaluations\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20eval_type\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20score\x20\x20\x20\x20\x20\x20\x20\x20\x20REAL,\x0a\x20\x20\x20\x20summary\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20details\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20evaluated_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_eval_project\x20ON\x20evaluations(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_eval_type\x20ON\x20evaluations(eval_type);\x0a\x0a--\x20Project\x20deployment\x20documents\x20(generated\x20from\x20SQLite\x20data)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_documents\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20version\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20doc_type\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27deployment\x27,\x0a\x20\x20\x20\x20content\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20checksum\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20generated_at\x20INTEGER,\x0a\x20\x20\x20\x20updated_at\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_docs_project\x20ON\x20project_documents(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_docs_network\x20ON\x20project_documents(network);\x0a';function generateId(){if(typeof crypto!=='undefined'&&crypto['randomUUID'])return crypto['randomUUID']();return Date['now']()+'-'+Math['random']()['toString'](0x24)['slice'](0x2,0xb);}function parseJSON(a){if(!a)return null;try{return JSON['parse'](a);}catch{return null;}}function parseStringArray(a){if(!a)return null;try{const b=JSON['parse'](a);return Array['isArray'](b)?b:null;}catch{return null;}}function rowToProject(a){return{'id':a['id'],'prefix':a['prefix'],'name':a['name'],'description':a['description'],'industry':a['industry'],'perspective':a['perspective'],'status':a['status'],'labels':parseStringArray(a['labels']),'currentVersion':a['current_version'],'serviceAddress':a['service_address'],'defaultAccount':a['default_account'],'network':a['network'],'createdAt':a['created_at'],'updatedAt':a['updated_at'],'metadata':parseJSON(a['metadata'])};}function rowToVersion(a){return{'id':a['id'],'projectId':a['project_id'],'version':a['version'],'description':a['description'],'createdAt':a['created_at'],'metadata':parseJSON(a['metadata'])};}function rowToProjectObject(a){return{'id':a['id'],'projectId':a['project_id'],'objectAddress':a['object_address'],'objectType':a['object_type'],'objectName':a['object_name'],'role':a['role'],'tags':parseStringArray(a['tags']),'addedAt':a['added_at'],'metadata':parseJSON(a['metadata'])};}function rowToGraphEdge(a){return{'id':a['id'],'projectId':a['project_id'],'sourceObject':a['source_object'],'targetObject':a['target_object'],'edgeSource':a['edge_source'],'relationshipType':a['relationship_type'],'fieldName':a['field_name'],'depth':a['depth'],'verified':a['verified']===0x1,'weight':a['weight'],'direction':a['direction'],'metadata':parseJSON(a['metadata']),'cachedAt':a['cached_at']};}function rowToEvaluation(a){return{'id':a['id'],'projectId':a['project_id'],'evalType':a['eval_type'],'score':a['score'],'summary':a['summary'],'details':parseJSON(a['details']),'evaluatedAt':a['evaluated_at'],'metadata':parseJSON(a['metadata'])};}function rowToProjectDocument(a){return{'id':a['id'],'project_id':a['project_id'],'version':a['version']??void 0x0,'network':a['network'],'doc_type':a['doc_type'],'content':a['content'],'checksum':a['checksum']??void 0x0,'generated_at':a['generated_at']??void 0x0,'updated_at':a['updated_at']??void 0x0};}var LocalProject=class LocalProject{static{this['_instanceLock']=new a84b();}constructor(){this['_dbLock']=new a84b();}static['Instance'](){if(LocalProject['_instance'])return LocalProject['_instance'];if(!LocalProject['_instance'])LocalProject['_instance']=new LocalProject();return LocalProject['_instance'];}get['db'](){return getProjectDb();}async['createProject'](a){return this['_dbLock']['run'](async()=>{const b=generateId(),c=Date['now'](),d=a['network']??'testnet',e=a['perspective']??'producer';return this['db']['prepare']('INSERT\x20INTO\x20projects\x20(id,\x20prefix,\x20name,\x20description,\x20industry,\x20perspective,\x20status,\x20labels,\x0a\x09\x09\x09\x09\x09\x09current_version,\x20service_address,\x20default_account,\x20network,\x20created_at,\x20updated_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20\x27draft\x27,\x20?,\x20NULL,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](b,a['prefix'],a['name'],a['description']??null,a['industry']??null,e,a['labels']?JSON['stringify'](a['labels']):null,a['serviceAddress']??null,a['defaultAccount']??null,d,c,c,a['metadata']?JSON['stringify'](a['metadata']):null),await this['getProject'](b);});}async['updateProject'](a,b){return this['_dbLock']['run'](async()=>{if(!await this['getProject'](a))a84a('invalid\x20parameter','Project\x20not\x20found:\x20'+a);const c=Date['now'](),d=[],e=[];return b['name']!==void 0x0&&(d['push']('name\x20=\x20?'),e['push'](b['name'])),b['description']!==void 0x0&&(d['push']('description\x20=\x20?'),e['push'](b['description'])),b['industry']!==void 0x0&&(d['push']('industry\x20=\x20?'),e['push'](b['industry'])),b['perspective']!==void 0x0&&(d['push']('perspective\x20=\x20?'),e['push'](b['perspective'])),b['status']!==void 0x0&&(d['push']('status\x20=\x20?'),e['push'](b['status'])),b['labels']!==void 0x0&&(d['push']('labels\x20=\x20?'),e['push'](b['labels']?JSON['stringify'](b['labels']):null)),b['currentVersion']!==void 0x0&&(d['push']('current_version\x20=\x20?'),e['push'](b['currentVersion'])),b['serviceAddress']!==void 0x0&&(d['push']('service_address\x20=\x20?'),e['push'](b['serviceAddress'])),b['defaultAccount']!==void 0x0&&(d['push']('default_account\x20=\x20?'),e['push'](b['defaultAccount'])),b['metadata']!==void 0x0&&(d['push']('metadata\x20=\x20?'),e['push'](b['metadata']?JSON['stringify'](b['metadata']):null)),d['push']('updated_at\x20=\x20?'),e['push'](c),e['push'](a),this['db']['prepare']('UPDATE\x20projects\x20SET\x20'+d['join'](',\x20')+'\x20WHERE\x20id\x20=\x20?')['run'](...e),await this['getProject'](a);});}async['getProject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20projects\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToProject(b):void 0x0;}async['getProjectByPrefix'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20projects\x20WHERE\x20prefix\x20=\x20?')['get'](a);return b?rowToProject(b):void 0x0;}async['listProjects'](a){const b=[],c=[];a?.['status']&&(b['push']('status\x20=\x20?'),c['push'](a['status']));a?.['perspective']&&(b['push']('perspective\x20=\x20?'),c['push'](a['perspective']));a?.['network']&&(b['push']('network\x20=\x20?'),c['push'](a['network']));a?.['industry']&&(b['push']('industry\x20=\x20?'),c['push'](a['industry']));a?.['serviceAddress']&&(b['push']('service_address\x20=\x20?'),c['push'](a['serviceAddress']));let d='SELECT\x20*\x20FROM\x20projects';if(b['length']>0x0)d+='\x20WHERE\x20'+b['join']('\x20AND\x20');d+='\x20ORDER\x20BY\x20updated_at\x20DESC';let e=this['db']['prepare'](d)['all'](...c);if(a?.['labels']&&a['labels']['length']>0x0)e=e['filter'](f=>{const g=parseStringArray(f['labels']);if(!g)return![];return a['labels']['some'](h=>g['includes'](h));});return e['map'](rowToProject);}async['deleteProject'](a){return this['_dbLock']['run'](async()=>{this['db']['prepare']('DELETE\x20FROM\x20projects\x20WHERE\x20id\x20=\x20?')['run'](a);});}async['createVersion'](a,b,c,d){return this['_dbLock']['run'](async()=>{const e=generateId(),f=Date['now']();return this['db']['prepare']('INSERT\x20INTO\x20project_versions\x20(id,\x20project_id,\x20version,\x20description,\x20created_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](e,a,b,c??null,f,d?JSON['stringify'](d):null),this['db']['prepare']('UPDATE\x20projects\x20SET\x20current_version\x20=\x20?,\x20updated_at\x20=\x20?\x20WHERE\x20id\x20=\x20?')['run'](b,f,a),await this['getVersion'](e);});}async['getVersion'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_versions\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToVersion(b):void 0x0;}async['listVersions'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_versions\x20WHERE\x20project_id\x20=\x20?\x20ORDER\x20BY\x20created_at\x20DESC')['all'](a)['map'](rowToVersion);}async['addObject'](a,b){return this['_dbLock']['run'](async()=>{const c=generateId(),d=Date['now'](),e=b['role']??'reference';return this['db']['prepare']('INSERT\x20INTO\x20project_objects\x20(id,\x20project_id,\x20object_address,\x20object_type,\x20object_name,\x20role,\x20tags,\x20added_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](c,a,b['objectAddress'],b['objectType']??null,b['objectName']??null,e,b['tags']?JSON['stringify'](b['tags']):null,d,b['metadata']?JSON['stringify'](b['metadata']):null),await this['getObject'](c);});}async['addObjects'](a,b){const c=[];for(const d of b)c['push'](await this['addObject'](a,d));return c;}async['getObject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToProjectObject(b):void 0x0;}async['listObjects'](a,b){const c=['project_id\x20=\x20?'],d=[a];return b?.['objectType']&&(c['push']('object_type\x20=\x20?'),d['push'](b['objectType'])),b?.['role']&&(c['push']('role\x20=\x20?'),d['push'](b['role'])),this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20'+c['join']('\x20AND\x20')+'\x20ORDER\x20BY\x20added_at\x20DESC')['all'](...d)['map'](rowToProjectObject);}async['removeObject'](a){this['db']['prepare']('DELETE\x20FROM\x20project_objects\x20WHERE\x20id\x20=\x20?')['run'](a);}async['removeObjectByAddress'](a,b){this['db']['prepare']('DELETE\x20FROM\x20project_objects\x20WHERE\x20project_id\x20=\x20?\x20AND\x20object_address\x20=\x20?')['run'](a,b);}async['updateObject'](a,b){const c=[],d=[];b['objectName']!==void 0x0&&(c['push']('object_name\x20=\x20?'),d['push'](b['objectName']));b['objectType']!==void 0x0&&(c['push']('object_type\x20=\x20?'),d['push'](b['objectType']));b['role']!==void 0x0&&(c['push']('role\x20=\x20?'),d['push'](b['role']));b['tags']!==void 0x0&&(c['push']('tags\x20=\x20?'),d['push'](JSON['stringify'](b['tags'])));if(c['length']===0x0)throw new Error('No\x20fields\x20to\x20update');return d['push'](a),this['db']['prepare']('UPDATE\x20project_objects\x20SET\x20'+c['join'](',\x20')+'\x20WHERE\x20id\x20=\x20?')['run'](...d),await this['getObject'](a);}async['findObjectsByAddress'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20object_address\x20=\x20?\x20ORDER\x20BY\x20added_at\x20DESC')['all'](a)['map'](rowToProjectObject);}async['cacheObject'](a,b,c,d){return this['_dbLock']['run'](async()=>{const e=Date['now'](),f=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['get'](a);if(f){const g=this['computeChangedFields'](f['data'],c);this['db']['prepare']('INSERT\x20INTO\x20object_cache_history\x20(id,\x20address,\x20object_type,\x20data,\x20fetched_at,\x20network,\x20changed_fields)\x0a\x09\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](generateId(),a,f['object_type'],f['data'],f['fetched_at'],f['network'],g['length']>0x0?JSON['stringify'](g):null);}this['db']['prepare']('INSERT\x20INTO\x20object_cache\x20(address,\x20object_type,\x20data,\x20fetched_at,\x20network)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)\x0a\x09\x09\x09\x09\x09\x20ON\x20CONFLICT(address)\x20DO\x20UPDATE\x20SET\x20object_type\x20=\x20excluded.object_type,\x0a\x09\x09\x09\x09\x09\x09data\x20=\x20excluded.data,\x20fetched_at\x20=\x20excluded.fetched_at,\x20network\x20=\x20excluded.network')['run'](a,b,c,e,d);});}async['getCachedObject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['get'](a);if(!b)return void 0x0;return{'address':b['address'],'objectType':b['object_type'],'data':b['data'],'fetchedAt':b['fetched_at'],'network':b['network']};}async['getCachedObjects'](a){const b=new Map();if(a['length']===0x0)return b;const c=a['map'](()=>'?')['join'](','),d=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20IN\x20('+c+')')['all'](...a);for(const e of d)b['set'](e['address'],{'address':e['address'],'objectType':e['object_type'],'data':e['data'],'fetchedAt':e['fetched_at'],'network':e['network']});return b;}async['deleteCachedObject'](a){this['db']['prepare']('DELETE\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['run'](a);}async['getObjectDiff'](a,b,c){const d=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache_history\x0a\x09\x09\x09\x09\x20WHERE\x20address\x20=\x20?\x20AND\x20fetched_at\x20BETWEEN\x20?\x20AND\x20?\x0a\x09\x09\x09\x09\x20ORDER\x20BY\x20fetched_at\x20ASC')['all'](a,b,c),e=await this['getCachedObject'](a);if(e&&e['fetchedAt']>=b&&e['fetchedAt']<=c)d['push']({'id':'current','address':e['address'],'object_type':e['objectType'],'data':e['data'],'fetched_at':e['fetchedAt'],'network':e['network'],'changed_fields':null});const f=[];if(d['length']>=0x2){const g=d[0x0],h=d[d['length']-0x1],i=this['computeDiff'](g['data'],h['data'],g['data'],h['data']);f['push'](...i);}return{'address':a,'fromTime':b,'toTime':c,'changedFields':f};}async['getObjectHistory'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache_history\x20WHERE\x20address\x20=\x20?\x20ORDER\x20BY\x20fetched_at\x20DESC')['all'](a)['map'](b=>({'id':b['id'],'address':b['address'],'objectType':b['object_type'],'data':b['data'],'fetchedAt':b['fetched_at'],'network':b['network'],'changedFields':parseStringArray(b['changed_fields'])}));}['computeChangedFields'](a,b){try{const c=JSON['parse'](a),d=JSON['parse'](b),e=[];return this['collectChangedPaths'](c,d,'',e),e;}catch{return[];}}['collectChangedPaths'](a,b,c,d){if(typeof a!==typeof b){d['push'](c||'(root)');return;}if(typeof a!=='object'||a===null||b===null){if(a!==b)d['push'](c||'(root)');return;}const e=a,f=b,g=new Set([...Object['keys'](e),...Object['keys'](f)]);for(const h of g){const i=c?c+'.'+h:h;if(!(h in e))d['push'](i);else{if(!(h in f))d['push'](i);else this['collectChangedPaths'](e[h],f[h],i,d);}}}['computeDiff'](a,b,c,d){try{const e=JSON['parse'](a),f=JSON['parse'](b),g=[];return this['collectDiff'](e,f,'',g),g;}catch{return[];}}['collectDiff'](a,b,c,d){if(typeof a!==typeof b){d['push']({'fieldPath':c||'(root)','oldValue':a,'newValue':b,'changeType':'modified'});return;}if(typeof a!=='object'||a===null||b===null){if(a!==b)d['push']({'fieldPath':c||'(root)','oldValue':a,'newValue':b,'changeType':'modified'});return;}const e=a,f=b,g=new Set([...Object['keys'](e),...Object['keys'](f)]);for(const h of g){const i=c?c+'.'+h:h;if(!(h in e))d['push']({'fieldPath':i,'oldValue':void 0x0,'newValue':f[h],'changeType':'added'});else{if(!(h in f))d['push']({'fieldPath':i,'oldValue':e[h],'newValue':void 0x0,'changeType':'removed'});else this['collectDiff'](e[h],f[h],i,d);}}}async['saveGraphEdges'](a,b){return this['_dbLock']['run'](async()=>{const c=Date['now']();if(a)this['db']['prepare']('DELETE\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['run'](a);const d=this['db']['prepare']('INSERT\x20INTO\x20graph_edges\x20(id,\x20project_id,\x20source_object,\x20target_object,\x20edge_source,\x0a\x09\x09\x09\x09\x09relationship_type,\x20field_name,\x20depth,\x20verified,\x20weight,\x20direction,\x20metadata,\x20cached_at)\x0a\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)');return this['db']['transaction'](e=>{for(const f of e){const g=generateId();d['run'](g,a??f['projectId']??null,f['sourceObject'],f['targetObject'],f['edgeSource'],f['relationshipType'],f['fieldName']??null,f['depth']??0x0,f['verified']?0x1:0x0,f['weight']??0.5,f['direction']??null,f['metadata']?JSON['stringify'](f['metadata']):null,c);}})(b),(a?this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['all'](a):this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20IS\x20NULL')['all']())['map'](rowToGraphEdge);});}async['getGraph'](a){return(a?this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['all'](a):this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges')['all']())['map'](rowToGraphEdge);}async['getGraphForObject'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20source_object\x20=\x20?\x20OR\x20target_object\x20=\x20?')['all'](a,a)['map'](rowToGraphEdge);}async['clearGraph'](a){if(a)this['db']['prepare']('DELETE\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['run'](a);else this['db']['exec']('DELETE\x20FROM\x20graph_edges');}async['saveEvaluation'](a){return this['_dbLock']['run'](async()=>{const b=generateId(),c=Date['now']();return this['db']['prepare']('INSERT\x20INTO\x20evaluations\x20(id,\x20project_id,\x20eval_type,\x20score,\x20summary,\x20details,\x20evaluated_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](b,a['projectId'],a['evalType'],a['score']??null,a['summary']??null,a['details']?JSON['stringify'](a['details']):null,c,a['metadata']?JSON['stringify'](a['metadata']):null),await this['getEvaluation'](b);});}async['getEvaluation'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToEvaluation(b):void 0x0;}async['listEvaluations'](a,b){const c=['project_id\x20=\x20?'],d=[a];return b?.['evalType']&&(c['push']('eval_type\x20=\x20?'),d['push'](b['evalType'])),this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20'+c['join']('\x20AND\x20')+'\x20ORDER\x20BY\x20evaluated_at\x20DESC')['all'](...d)['map'](rowToEvaluation);}async['getLatestEvaluation'](a,b){const c=this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20project_id\x20=\x20?\x20AND\x20eval_type\x20=\x20?\x0a\x09\x09\x09\x09\x20ORDER\x20BY\x20evaluated_at\x20DESC\x20LIMIT\x201')['get'](a,b);return c?rowToEvaluation(c):void 0x0;}async['saveDocument'](a,b,c,d='deployment'){return this['_dbLock']['run'](async()=>{const e=generateId(),f=Date['now'](),g=this['computeChecksum'](c),h=this['db']['prepare']('SELECT\x20id\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['get'](a,b,d);if(h)return this['db']['prepare']('UPDATE\x20project_documents\x20SET\x20content\x20=\x20?,\x20checksum\x20=\x20?,\x20updated_at\x20=\x20?\x20WHERE\x20id\x20=\x20?')['run'](c,g,f,h['id']),this['getDocument'](a,b,d);return this['db']['prepare']('INSERT\x20INTO\x20project_documents\x20(id,\x20project_id,\x20network,\x20doc_type,\x20content,\x20checksum,\x20generated_at,\x20updated_at)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](e,a,b,d,c,g,f,f),this['getDocument'](a,b,d);});}async['getDocument'](a,b,c='deployment'){const d=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['get'](a,b,c);return d?rowToProjectDocument(d):void 0x0;}async['listDocuments'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20ORDER\x20BY\x20updated_at\x20DESC')['all'](a)['map'](rowToProjectDocument);}async['deleteDocument'](a,b,c='deployment'){return this['_dbLock']['run'](async()=>{return this['db']['prepare']('DELETE\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['run'](a,b,c)['changes']>0x0;});}['computeChecksum'](a){let b=0x0;for(let c=0x0;c<a['length'];c++){const d=a['charCodeAt'](c);b=(b<<0x5)-b+d,b=b&b;}return b['toString'](0x10);}static['resetDbConnection'](){if(projectDbInstance){try{projectDbInstance['close']();}catch{}projectDbInstance=null;}}};process['on']('exit',()=>{LocalProject['resetDbConnection']();}),process['on']('SIGINT',()=>{LocalProject['resetDbConnection'](),process['exit'](0x0);}),process['on']('SIGTERM',()=>{LocalProject['resetDbConnection'](),process['exit'](0x0);});export{LocalProject};
|
|
1
|
+
import{o as a84a}from'../../exception-C6IYkBi6.mjs';import{getWowDir}from'./util.mjs';import{t as a84b}from'../../lock-QdrQzo0u.mjs';import a84c from'libsql';import*as a84d from'path';import*as a84e from'fs';const WOW_DIR=getWowDir(),PROJECT_DB_PATH=a84d['join'](WOW_DIR,'project.db');function ensureWowDirExists(){if(!a84e['existsSync'](WOW_DIR))a84e['mkdirSync'](WOW_DIR,{'recursive':!![]});}let projectDbInstance=null;function getProjectDatabase(){ensureWowDirExists();const a=new a84c(PROJECT_DB_PATH);return a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['pragma']('busy_timeout\x20=\x205000'),a['exec'](SCHEMA_SQL),a;}function getProjectDb(){if(projectDbInstance)return projectDbInstance;return projectDbInstance=getProjectDatabase(),projectDbInstance;}const SCHEMA_SQL='\x0a--\x20Project\x20metadata\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20projects\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20prefix\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20UNIQUE\x20NOT\x20NULL,\x0a\x20\x20\x20\x20name\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20description\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20industry\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20perspective\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27producer\x27,\x0a\x20\x20\x20\x20status\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27draft\x27,\x0a\x20\x20\x20\x20labels\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20current_version\x20TEXT,\x0a\x20\x20\x20\x20service_address\x20TEXT,\x0a\x20\x20\x20\x20default_account\x20TEXT,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL\x20DEFAULT\x20\x27testnet\x27,\x0a\x20\x20\x20\x20created_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20updated_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_status\x20ON\x20projects(status);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_network\x20ON\x20projects(network);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_perspective\x20ON\x20projects(perspective);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_projects_service\x20ON\x20projects(service_address);\x0a\x0a--\x20Project\x20version\x20history\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_versions\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20version\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20description\x20TEXT,\x0a\x20\x20\x20\x20created_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE,\x0a\x20\x20\x20\x20UNIQUE(project_id,\x20version)\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_versions_project\x20ON\x20project_versions(project_id);\x0a\x0a--\x20Project-object\x20relationships\x20(rigid,\x20not\x20tag-based)\x0a--\x20An\x20object\x20can\x20belong\x20to\x20multiple\x20projects\x20(no\x20UNIQUE\x20on\x20object_address)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_objects\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_type\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20object_name\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20role\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27reference\x27,\x0a\x20\x20\x20\x20tags\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20added_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_project\x20ON\x20project_objects(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_address\x20ON\x20project_objects(object_address);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_objects_type\x20ON\x20project_objects(object_type);\x0a\x0a--\x20Cached\x20on-chain\x20object\x20data\x20with\x20timestamps\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20object_cache\x20(\x0a\x20\x20\x20\x20address\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20object_type\x20TEXT,\x0a\x20\x20\x20\x20data\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20fetched_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_type\x20ON\x20object_cache(object_type);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_network\x20ON\x20object_cache(network);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_cache_fetched\x20ON\x20object_cache(fetched_at);\x0a\x0a--\x20Historical\x20snapshots\x20for\x20diff\x20analysis\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20object_cache_history\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20address\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20object_type\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20data\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20fetched_at\x20\x20\x20\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20changed_fields\x20\x20TEXT\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_history_address\x20ON\x20object_cache_history(address);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_history_time\x20ON\x20object_cache_history(fetched_at);\x0a\x0a--\x20Relationship\x20graph\x20edges\x20(3-pathway\x20fusion)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20graph_edges\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20source_object\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20target_object\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20edge_source\x20\x20\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20relationship_type\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20field_name\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20depth\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20verified\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20weight\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REAL\x20DEFAULT\x200.5,\x0a\x20\x20\x20\x20direction\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20cached_at\x20\x20\x20\x20\x20\x20\x20\x20\x20INTEGER\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_project\x20ON\x20graph_edges(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_source\x20ON\x20graph_edges(source_object);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_edges_target\x20ON\x20graph_edges(target_object);\x0a\x0a--\x20Evaluation\x20results\x20(cached\x20with\x20timestamps)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20evaluations\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20eval_type\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20score\x20\x20\x20\x20\x20\x20\x20\x20\x20REAL,\x0a\x20\x20\x20\x20summary\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20details\x20\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20evaluated_at\x20\x20INTEGER,\x0a\x20\x20\x20\x20metadata\x20\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_eval_project\x20ON\x20evaluations(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_eval_type\x20ON\x20evaluations(eval_type);\x0a\x0a--\x20Project\x20deployment\x20documents\x20(generated\x20from\x20SQLite\x20data)\x0aCREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20project_documents\x20(\x0a\x20\x20\x20\x20id\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20project_id\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20version\x20\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20network\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20doc_type\x20\x20\x20\x20TEXT\x20DEFAULT\x20\x27deployment\x27,\x0a\x20\x20\x20\x20content\x20\x20\x20\x20\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20checksum\x20\x20\x20\x20TEXT,\x0a\x20\x20\x20\x20generated_at\x20INTEGER,\x0a\x20\x20\x20\x20updated_at\x20\x20\x20INTEGER,\x0a\x20\x20\x20\x20FOREIGN\x20KEY\x20(project_id)\x20REFERENCES\x20projects(id)\x20ON\x20DELETE\x20CASCADE\x0a);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_docs_project\x20ON\x20project_documents(project_id);\x0aCREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_docs_network\x20ON\x20project_documents(network);\x0a';function generateId(){if(typeof crypto!=='undefined'&&crypto['randomUUID'])return crypto['randomUUID']();return Date['now']()+'-'+Math['random']()['toString'](0x24)['slice'](0x2,0xb);}function parseJSON(a){if(!a)return null;try{return JSON['parse'](a);}catch{return null;}}function parseStringArray(a){if(!a)return null;try{const b=JSON['parse'](a);return Array['isArray'](b)?b:null;}catch{return null;}}function rowToProject(a){return{'id':a['id'],'prefix':a['prefix'],'name':a['name'],'description':a['description'],'industry':a['industry'],'perspective':a['perspective'],'status':a['status'],'labels':parseStringArray(a['labels']),'currentVersion':a['current_version'],'serviceAddress':a['service_address'],'defaultAccount':a['default_account'],'network':a['network'],'createdAt':a['created_at'],'updatedAt':a['updated_at'],'metadata':parseJSON(a['metadata'])};}function rowToVersion(a){return{'id':a['id'],'projectId':a['project_id'],'version':a['version'],'description':a['description'],'createdAt':a['created_at'],'metadata':parseJSON(a['metadata'])};}function rowToProjectObject(a){return{'id':a['id'],'projectId':a['project_id'],'objectAddress':a['object_address'],'objectType':a['object_type'],'objectName':a['object_name'],'role':a['role'],'tags':parseStringArray(a['tags']),'addedAt':a['added_at'],'metadata':parseJSON(a['metadata'])};}function rowToGraphEdge(a){return{'id':a['id'],'projectId':a['project_id'],'sourceObject':a['source_object'],'targetObject':a['target_object'],'edgeSource':a['edge_source'],'relationshipType':a['relationship_type'],'fieldName':a['field_name'],'depth':a['depth'],'verified':a['verified']===0x1,'weight':a['weight'],'direction':a['direction'],'metadata':parseJSON(a['metadata']),'cachedAt':a['cached_at']};}function rowToEvaluation(a){return{'id':a['id'],'projectId':a['project_id'],'evalType':a['eval_type'],'score':a['score'],'summary':a['summary'],'details':parseJSON(a['details']),'evaluatedAt':a['evaluated_at'],'metadata':parseJSON(a['metadata'])};}function rowToProjectDocument(a){return{'id':a['id'],'project_id':a['project_id'],'version':a['version']??void 0x0,'network':a['network'],'doc_type':a['doc_type'],'content':a['content'],'checksum':a['checksum']??void 0x0,'generated_at':a['generated_at']??void 0x0,'updated_at':a['updated_at']??void 0x0};}var LocalProject=class LocalProject{static{this['_instanceLock']=new a84b();}constructor(){this['_dbLock']=new a84b();}static['Instance'](){if(LocalProject['_instance'])return LocalProject['_instance'];if(!LocalProject['_instance'])LocalProject['_instance']=new LocalProject();return LocalProject['_instance'];}get['db'](){return getProjectDb();}async['createProject'](a){return this['_dbLock']['run'](async()=>{const b=generateId(),c=Date['now'](),d=a['network']??'testnet',e=a['perspective']??'producer';return this['db']['prepare']('INSERT\x20INTO\x20projects\x20(id,\x20prefix,\x20name,\x20description,\x20industry,\x20perspective,\x20status,\x20labels,\x0a\x09\x09\x09\x09\x09\x09current_version,\x20service_address,\x20default_account,\x20network,\x20created_at,\x20updated_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20\x27draft\x27,\x20?,\x20NULL,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](b,a['prefix'],a['name'],a['description']??null,a['industry']??null,e,a['labels']?JSON['stringify'](a['labels']):null,a['serviceAddress']??null,a['defaultAccount']??null,d,c,c,a['metadata']?JSON['stringify'](a['metadata']):null),await this['getProject'](b);});}async['updateProject'](a,b){return this['_dbLock']['run'](async()=>{if(!await this['getProject'](a))a84a('invalid\x20parameter','Project\x20not\x20found:\x20'+a);const c=Date['now'](),d=[],e=[];return b['name']!==void 0x0&&(d['push']('name\x20=\x20?'),e['push'](b['name'])),b['description']!==void 0x0&&(d['push']('description\x20=\x20?'),e['push'](b['description'])),b['industry']!==void 0x0&&(d['push']('industry\x20=\x20?'),e['push'](b['industry'])),b['perspective']!==void 0x0&&(d['push']('perspective\x20=\x20?'),e['push'](b['perspective'])),b['status']!==void 0x0&&(d['push']('status\x20=\x20?'),e['push'](b['status'])),b['labels']!==void 0x0&&(d['push']('labels\x20=\x20?'),e['push'](b['labels']?JSON['stringify'](b['labels']):null)),b['currentVersion']!==void 0x0&&(d['push']('current_version\x20=\x20?'),e['push'](b['currentVersion'])),b['serviceAddress']!==void 0x0&&(d['push']('service_address\x20=\x20?'),e['push'](b['serviceAddress'])),b['defaultAccount']!==void 0x0&&(d['push']('default_account\x20=\x20?'),e['push'](b['defaultAccount'])),b['metadata']!==void 0x0&&(d['push']('metadata\x20=\x20?'),e['push'](b['metadata']?JSON['stringify'](b['metadata']):null)),d['push']('updated_at\x20=\x20?'),e['push'](c),e['push'](a),this['db']['prepare']('UPDATE\x20projects\x20SET\x20'+d['join'](',\x20')+'\x20WHERE\x20id\x20=\x20?')['run'](...e),await this['getProject'](a);});}async['getProject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20projects\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToProject(b):void 0x0;}async['getProjectByPrefix'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20projects\x20WHERE\x20prefix\x20=\x20?')['get'](a);return b?rowToProject(b):void 0x0;}async['listProjects'](a){const b=[],c=[];a?.['status']&&(b['push']('status\x20=\x20?'),c['push'](a['status']));a?.['perspective']&&(b['push']('perspective\x20=\x20?'),c['push'](a['perspective']));a?.['network']&&(b['push']('network\x20=\x20?'),c['push'](a['network']));a?.['industry']&&(b['push']('industry\x20=\x20?'),c['push'](a['industry']));a?.['serviceAddress']&&(b['push']('service_address\x20=\x20?'),c['push'](a['serviceAddress']));let d='SELECT\x20*\x20FROM\x20projects';if(b['length']>0x0)d+='\x20WHERE\x20'+b['join']('\x20AND\x20');d+='\x20ORDER\x20BY\x20updated_at\x20DESC';let e=this['db']['prepare'](d)['all'](...c);if(a?.['labels']&&a['labels']['length']>0x0)e=e['filter'](f=>{const g=parseStringArray(f['labels']);if(!g)return![];return a['labels']['some'](h=>g['includes'](h));});return e['map'](rowToProject);}async['deleteProject'](a){return this['_dbLock']['run'](async()=>{this['db']['prepare']('DELETE\x20FROM\x20projects\x20WHERE\x20id\x20=\x20?')['run'](a);});}async['createVersion'](a,b,c,d){return this['_dbLock']['run'](async()=>{const e=generateId(),f=Date['now']();return this['db']['prepare']('INSERT\x20INTO\x20project_versions\x20(id,\x20project_id,\x20version,\x20description,\x20created_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](e,a,b,c??null,f,d?JSON['stringify'](d):null),this['db']['prepare']('UPDATE\x20projects\x20SET\x20current_version\x20=\x20?,\x20updated_at\x20=\x20?\x20WHERE\x20id\x20=\x20?')['run'](b,f,a),await this['getVersion'](e);});}async['getVersion'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_versions\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToVersion(b):void 0x0;}async['listVersions'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_versions\x20WHERE\x20project_id\x20=\x20?\x20ORDER\x20BY\x20created_at\x20DESC')['all'](a)['map'](rowToVersion);}async['addObject'](a,b){return this['_dbLock']['run'](async()=>{const c=generateId(),d=Date['now'](),e=b['role']??'reference';return this['db']['prepare']('INSERT\x20INTO\x20project_objects\x20(id,\x20project_id,\x20object_address,\x20object_type,\x20object_name,\x20role,\x20tags,\x20added_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](c,a,b['objectAddress'],b['objectType']??null,b['objectName']??null,e,b['tags']?JSON['stringify'](b['tags']):null,d,b['metadata']?JSON['stringify'](b['metadata']):null),await this['getObject'](c);});}async['addObjects'](a,b){const c=[];for(const d of b)c['push'](await this['addObject'](a,d));return c;}async['getObject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToProjectObject(b):void 0x0;}async['listObjects'](a,b){const c=['project_id\x20=\x20?'],d=[a];return b?.['objectType']&&(c['push']('object_type\x20=\x20?'),d['push'](b['objectType'])),b?.['role']&&(c['push']('role\x20=\x20?'),d['push'](b['role'])),this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20'+c['join']('\x20AND\x20')+'\x20ORDER\x20BY\x20added_at\x20DESC')['all'](...d)['map'](rowToProjectObject);}async['removeObject'](a){this['db']['prepare']('DELETE\x20FROM\x20project_objects\x20WHERE\x20id\x20=\x20?')['run'](a);}async['removeObjectByAddress'](a,b){this['db']['prepare']('DELETE\x20FROM\x20project_objects\x20WHERE\x20project_id\x20=\x20?\x20AND\x20object_address\x20=\x20?')['run'](a,b);}async['updateObject'](a,b){const c=[],d=[];b['objectName']!==void 0x0&&(c['push']('object_name\x20=\x20?'),d['push'](b['objectName']));b['objectType']!==void 0x0&&(c['push']('object_type\x20=\x20?'),d['push'](b['objectType']));b['role']!==void 0x0&&(c['push']('role\x20=\x20?'),d['push'](b['role']));b['tags']!==void 0x0&&(c['push']('tags\x20=\x20?'),d['push'](JSON['stringify'](b['tags'])));if(c['length']===0x0)throw new Error('No\x20fields\x20to\x20update');return d['push'](a),this['db']['prepare']('UPDATE\x20project_objects\x20SET\x20'+c['join'](',\x20')+'\x20WHERE\x20id\x20=\x20?')['run'](...d),await this['getObject'](a);}async['findObjectsByAddress'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_objects\x20WHERE\x20object_address\x20=\x20?\x20ORDER\x20BY\x20added_at\x20DESC')['all'](a)['map'](rowToProjectObject);}async['cacheObject'](a,b,c,d){return this['_dbLock']['run'](async()=>{const e=Date['now'](),f=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['get'](a);if(f){const g=this['computeChangedFields'](f['data'],c);this['db']['prepare']('INSERT\x20INTO\x20object_cache_history\x20(id,\x20address,\x20object_type,\x20data,\x20fetched_at,\x20network,\x20changed_fields)\x0a\x09\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](generateId(),a,f['object_type'],f['data'],f['fetched_at'],f['network'],g['length']>0x0?JSON['stringify'](g):null);}this['db']['prepare']('INSERT\x20INTO\x20object_cache\x20(address,\x20object_type,\x20data,\x20fetched_at,\x20network)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)\x0a\x09\x09\x09\x09\x09\x20ON\x20CONFLICT(address)\x20DO\x20UPDATE\x20SET\x20object_type\x20=\x20excluded.object_type,\x0a\x09\x09\x09\x09\x09\x09data\x20=\x20excluded.data,\x20fetched_at\x20=\x20excluded.fetched_at,\x20network\x20=\x20excluded.network')['run'](a,b,c,e,d);});}async['getCachedObject'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['get'](a);if(!b)return void 0x0;return{'address':b['address'],'objectType':b['object_type'],'data':b['data'],'fetchedAt':b['fetched_at'],'network':b['network']};}async['getCachedObjects'](a){const b=new Map();if(a['length']===0x0)return b;const c=a['map'](()=>'?')['join'](','),d=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache\x20WHERE\x20address\x20IN\x20('+c+')')['all'](...a);for(const e of d)b['set'](e['address'],{'address':e['address'],'objectType':e['object_type'],'data':e['data'],'fetchedAt':e['fetched_at'],'network':e['network']});return b;}async['deleteCachedObject'](a){this['db']['prepare']('DELETE\x20FROM\x20object_cache\x20WHERE\x20address\x20=\x20?')['run'](a);}async['getObjectDiff'](a,b,c){const d=this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache_history\x0a\x09\x09\x09\x09\x20WHERE\x20address\x20=\x20?\x20AND\x20fetched_at\x20BETWEEN\x20?\x20AND\x20?\x0a\x09\x09\x09\x09\x20ORDER\x20BY\x20fetched_at\x20ASC')['all'](a,b,c),e=await this['getCachedObject'](a);if(e&&e['fetchedAt']>=b&&e['fetchedAt']<=c)d['push']({'id':'current','address':e['address'],'object_type':e['objectType'],'data':e['data'],'fetched_at':e['fetchedAt'],'network':e['network'],'changed_fields':null});const f=[];if(d['length']>=0x2){const g=d[0x0],h=d[d['length']-0x1],i=this['computeDiff'](g['data'],h['data'],g['data'],h['data']);f['push'](...i);}return{'address':a,'fromTime':b,'toTime':c,'changedFields':f};}async['getObjectHistory'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20object_cache_history\x20WHERE\x20address\x20=\x20?\x20ORDER\x20BY\x20fetched_at\x20DESC')['all'](a)['map'](b=>({'id':b['id'],'address':b['address'],'objectType':b['object_type'],'data':b['data'],'fetchedAt':b['fetched_at'],'network':b['network'],'changedFields':parseStringArray(b['changed_fields'])}));}['computeChangedFields'](a,b){try{const c=JSON['parse'](a),d=JSON['parse'](b),e=[];return this['collectChangedPaths'](c,d,'',e),e;}catch{return[];}}['collectChangedPaths'](a,b,c,d){if(typeof a!==typeof b){d['push'](c||'(root)');return;}if(typeof a!=='object'||a===null||b===null){if(a!==b)d['push'](c||'(root)');return;}const e=a,f=b,g=new Set([...Object['keys'](e),...Object['keys'](f)]);for(const h of g){const i=c?c+'.'+h:h;if(!(h in e))d['push'](i);else{if(!(h in f))d['push'](i);else this['collectChangedPaths'](e[h],f[h],i,d);}}}['computeDiff'](a,b,c,d){try{const e=JSON['parse'](a),f=JSON['parse'](b),g=[];return this['collectDiff'](e,f,'',g),g;}catch{return[];}}['collectDiff'](a,b,c,d){if(typeof a!==typeof b){d['push']({'fieldPath':c||'(root)','oldValue':a,'newValue':b,'changeType':'modified'});return;}if(typeof a!=='object'||a===null||b===null){if(a!==b)d['push']({'fieldPath':c||'(root)','oldValue':a,'newValue':b,'changeType':'modified'});return;}const e=a,f=b,g=new Set([...Object['keys'](e),...Object['keys'](f)]);for(const h of g){const i=c?c+'.'+h:h;if(!(h in e))d['push']({'fieldPath':i,'oldValue':void 0x0,'newValue':f[h],'changeType':'added'});else{if(!(h in f))d['push']({'fieldPath':i,'oldValue':e[h],'newValue':void 0x0,'changeType':'removed'});else this['collectDiff'](e[h],f[h],i,d);}}}async['saveGraphEdges'](a,b){return this['_dbLock']['run'](async()=>{const c=Date['now']();if(a)this['db']['prepare']('DELETE\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['run'](a);const d=this['db']['prepare']('INSERT\x20INTO\x20graph_edges\x20(id,\x20project_id,\x20source_object,\x20target_object,\x20edge_source,\x0a\x09\x09\x09\x09\x09relationship_type,\x20field_name,\x20depth,\x20verified,\x20weight,\x20direction,\x20metadata,\x20cached_at)\x0a\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)');return this['db']['transaction'](e=>{for(const f of e){const g=generateId();d['run'](g,a??f['projectId']??null,f['sourceObject'],f['targetObject'],f['edgeSource'],f['relationshipType'],f['fieldName']??null,f['depth']??0x0,f['verified']?0x1:0x0,f['weight']??0.5,f['direction']??null,f['metadata']?JSON['stringify'](f['metadata']):null,c);}})(b),(a?this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['all'](a):this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20IS\x20NULL')['all']())['map'](rowToGraphEdge);});}async['getGraph'](a){return(a?this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['all'](a):this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges')['all']())['map'](rowToGraphEdge);}async['getGraphForObject'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20graph_edges\x20WHERE\x20source_object\x20=\x20?\x20OR\x20target_object\x20=\x20?')['all'](a,a)['map'](rowToGraphEdge);}async['clearGraph'](a){if(a)this['db']['prepare']('DELETE\x20FROM\x20graph_edges\x20WHERE\x20project_id\x20=\x20?')['run'](a);else this['db']['exec']('DELETE\x20FROM\x20graph_edges');}async['saveEvaluation'](a){return this['_dbLock']['run'](async()=>{const b=generateId(),c=Date['now']();return this['db']['prepare']('INSERT\x20INTO\x20evaluations\x20(id,\x20project_id,\x20eval_type,\x20score,\x20summary,\x20details,\x20evaluated_at,\x20metadata)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](b,a['projectId'],a['evalType'],a['score']??null,a['summary']??null,a['details']?JSON['stringify'](a['details']):null,c,a['metadata']?JSON['stringify'](a['metadata']):null),await this['getEvaluation'](b);});}async['getEvaluation'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20id\x20=\x20?')['get'](a);return b?rowToEvaluation(b):void 0x0;}async['listEvaluations'](a,b){const c=['project_id\x20=\x20?'],d=[a];return b?.['evalType']&&(c['push']('eval_type\x20=\x20?'),d['push'](b['evalType'])),this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20'+c['join']('\x20AND\x20')+'\x20ORDER\x20BY\x20evaluated_at\x20DESC')['all'](...d)['map'](rowToEvaluation);}async['getLatestEvaluation'](a,b){const c=this['db']['prepare']('SELECT\x20*\x20FROM\x20evaluations\x20WHERE\x20project_id\x20=\x20?\x20AND\x20eval_type\x20=\x20?\x0a\x09\x09\x09\x09\x20ORDER\x20BY\x20evaluated_at\x20DESC\x20LIMIT\x201')['get'](a,b);return c?rowToEvaluation(c):void 0x0;}async['saveDocument'](a,b,c,d='deployment'){return this['_dbLock']['run'](async()=>{const e=generateId(),f=Date['now'](),g=this['computeChecksum'](c),h=this['db']['prepare']('SELECT\x20id\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['get'](a,b,d);if(h)return this['db']['prepare']('UPDATE\x20project_documents\x20SET\x20content\x20=\x20?,\x20checksum\x20=\x20?,\x20updated_at\x20=\x20?\x20WHERE\x20id\x20=\x20?')['run'](c,g,f,h['id']),this['getDocument'](a,b,d);return this['db']['prepare']('INSERT\x20INTO\x20project_documents\x20(id,\x20project_id,\x20network,\x20doc_type,\x20content,\x20checksum,\x20generated_at,\x20updated_at)\x0a\x09\x09\x09\x09\x09\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](e,a,b,d,c,g,f,f),this['getDocument'](a,b,d);});}async['getDocument'](a,b,c='deployment'){const d=this['db']['prepare']('SELECT\x20*\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['get'](a,b,c);return d?rowToProjectDocument(d):void 0x0;}async['listDocuments'](a){return this['db']['prepare']('SELECT\x20*\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20ORDER\x20BY\x20updated_at\x20DESC')['all'](a)['map'](rowToProjectDocument);}async['deleteDocument'](a,b,c='deployment'){return this['_dbLock']['run'](async()=>{return this['db']['prepare']('DELETE\x20FROM\x20project_documents\x20WHERE\x20project_id\x20=\x20?\x20AND\x20network\x20=\x20?\x20AND\x20doc_type\x20=\x20?')['run'](a,b,c)['changes']>0x0;});}['computeChecksum'](a){let b=0x0;for(let c=0x0;c<a['length'];c++){const d=a['charCodeAt'](c);b=(b<<0x5)-b+d,b=b&b;}return b['toString'](0x10);}static['resetDbConnection'](){if(projectDbInstance){try{projectDbInstance['close']();}catch{}projectDbInstance=null;}}};process['on']('exit',()=>{LocalProject['resetDbConnection']();}),process['on']('SIGINT',()=>{LocalProject['resetDbConnection']();}),process['on']('SIGTERM',()=>{LocalProject['resetDbConnection']();});export{LocalProject};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-
|
|
1
|
+
import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-lI6ZR9sW.mjs";
|
|
2
2
|
export { CryptoVault, EncryptionMode, KeyMetadata, SecureAccountStorage, SecureEnvelope };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SQLiteStorage, c as
|
|
2
|
-
export { IAccountStorage, IStorage, KEY_METADATA_TABLE, SQLiteAccountStorage, SQLiteStorage, clearKeyMetadata, defaultAccountStorage, defaultStorage, getAccountDb, resetAllDbConnections, resetAllStorage };
|
|
1
|
+
import { a as SQLiteStorage, c as clearKeyMetadata, d as getAccountDb, f as resetAllDbConnections, i as SQLiteAccountStorage, l as defaultAccountStorage, n as IStorage, o as UserModeRecord, p as resetAllStorage, r as KEY_METADATA_TABLE, s as UserModeStorage, t as IAccountStorage, u as defaultStorage } from "../../storage-B8nW4YTJ.mjs";
|
|
2
|
+
export { IAccountStorage, IStorage, KEY_METADATA_TABLE, SQLiteAccountStorage, SQLiteStorage, UserModeRecord, UserModeStorage, clearKeyMetadata, defaultAccountStorage, defaultStorage, getAccountDb, resetAllDbConnections, resetAllStorage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getWowDir}from'./util.mjs';import{t as a86a}from'../../lock-QdrQzo0u.mjs';import a86b from'libsql';import*as a86c from'path';import*as a86d from'fs';const WOW_DIR=getWowDir(),CACHE_DB_PATH=a86c['join'](WOW_DIR,'cache.db'),ACCOUNT_DB_PATH=a86c['join'](WOW_DIR,'account.db');function ensureWowDirExists(){if(!a86d['existsSync'](WOW_DIR))a86d['mkdirSync'](WOW_DIR,{'recursive':!![]});}ensureWowDirExists();function getCacheDatabase(){ensureWowDirExists();const a=new a86b(CACHE_DB_PATH);
|
|
1
|
+
import{getWowDir}from'./util.mjs';import{t as a86a}from'../../lock-QdrQzo0u.mjs';import a86b from'libsql';import*as a86c from'path';import*as a86d from'fs';const WOW_DIR=getWowDir(),CACHE_DB_PATH=a86c['join'](WOW_DIR,'cache.db'),ACCOUNT_DB_PATH=a86c['join'](WOW_DIR,'account.db');function ensureWowDirExists(){if(!a86d['existsSync'](WOW_DIR))a86d['mkdirSync'](WOW_DIR,{'recursive':!![]});}ensureWowDirExists();function getCacheDatabase(){ensureWowDirExists();const a=new a86b(CACHE_DB_PATH);a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['pragma']('busy_timeout\x20=\x205000');try{a['pragma']('wal_checkpoint(FULL)');}catch{}return a['exec']('\x0a\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20cache\x20(\x0a\x09\x09\x09key\x20TEXT\x20PRIMARY\x20KEY,\x0a\x09\x09\x09value\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09);\x0a\x09'),a;}let cacheDbInstance=null;new a86a();function getCacheDb(){if(cacheDbInstance)return cacheDbInstance;if(!cacheDbInstance)cacheDbInstance=getCacheDatabase();return cacheDbInstance;}function getAccountDatabase(){ensureWowDirExists();const a=new a86b(ACCOUNT_DB_PATH);a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['pragma']('busy_timeout\x20=\x205000');try{a['pragma']('wal_checkpoint(FULL)');}catch{}try{a86d['chmodSync'](ACCOUNT_DB_PATH,0x180);}catch{}return a['exec']('\x0a\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20accounts\x20(\x0a\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09);\x0a\x09'),a;}let accountDbInstance=null;new a86a();function getAccountDb(){if(accountDbInstance)return accountDbInstance;if(!accountDbInstance)accountDbInstance=getAccountDatabase();return accountDbInstance;}const KEY_METADATA_TABLE='key_metadata';var SQLiteStorage=class{constructor(a){this['_dbSource']=a;}get['db'](){if(this['_dbSource'])return this['_dbSource'];if(!this['_db'])this['_db']=getCacheDb();return this['_db'];}async['get'](a){return this['db']['prepare']('SELECT\x20value\x20FROM\x20cache\x20WHERE\x20key\x20=\x20?')['get'](a)?.['value'];}async['getMany'](a){const b=a['map'](()=>'?')['join'](','),c=this['db']['prepare']('SELECT\x20key,\x20value\x20FROM\x20cache\x20WHERE\x20key\x20IN\x20('+b+')')['all'](...a),d=new Map(c['map'](e=>[e['key'],e['value']]));return a['map'](e=>d['get'](e));}async['put'](a,b){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20cache\x20(key,\x20value,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(key)\x20DO\x20UPDATE\x20SET\x20value\x20=\x20excluded.value,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a,b);}async['putMany'](a){const b=this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20cache\x20(key,\x20value,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(key)\x20DO\x20UPDATE\x20SET\x20value\x20=\x20excluded.value,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09');this['db']['transaction'](c=>{for(const d of c)b['run'](d['key'],d['value']);})(a);}async['del'](a){this['db']['prepare']('DELETE\x20FROM\x20cache\x20WHERE\x20key\x20=\x20?')['run'](a);}async['clear'](){this['db']['exec']('DELETE\x20FROM\x20cache');}},UserModeStorage=class{constructor(a){this['_tableInitialized']=![],this['_dbSource']=a;}get['db'](){const a=this['_dbSource']??(this['_db']??=getCacheDb());return!this['_tableInitialized']&&(a['exec']('\x0a\x09\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20user_modes\x20(\x0a\x09\x09\x09\x09\x09owner\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09\x09name\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27)),\x0a\x09\x09\x09\x09\x09PRIMARY\x20KEY\x20(owner,\x20name)\x0a\x09\x09\x09\x09);\x0a\x09\x09\x09'),this['_tableInitialized']=!![]),a;}async['save'](a,b,c){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20user_modes\x20(owner,\x20name,\x20data,\x20updated_at)\x0a\x09\x09\x09VALUES\x20(?,\x20?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(owner,\x20name)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a,b,c);}async['get'](a,b){return this['db']['prepare']('SELECT\x20data\x20FROM\x20user_modes\x20WHERE\x20owner\x20=\x20?\x20AND\x20name\x20=\x20?')['get'](a,b)?.['data'];}async['list'](a){if(a!==void 0x0)return this['db']['prepare']('SELECT\x20owner,\x20name,\x20data,\x20updated_at\x20FROM\x20user_modes\x20WHERE\x20owner\x20=\x20?\x20ORDER\x20BY\x20name')['all'](a);return this['db']['prepare']('SELECT\x20owner,\x20name,\x20data,\x20updated_at\x20FROM\x20user_modes\x20ORDER\x20BY\x20owner,\x20name')['all']();}async['delete'](a,b){return this['db']['prepare']('DELETE\x20FROM\x20user_modes\x20WHERE\x20owner\x20=\x20?\x20AND\x20name\x20=\x20?')['run'](a,b)['changes']>0x0;}},SQLiteAccountStorage=class{constructor(a,b='accounts'){this['_tableName']=b,this['_tableInitialized']=![],this['_dbSource']=a;}get['db'](){if(this['_dbSource'])return this['_dbSource'];if(!this['_db'])this['_db']=getAccountDb();return!this['_tableInitialized']&&this['_tableName']!=='accounts'&&(this['_db']['exec']('\x0a\x09\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+this['_tableName']+'\x20(\x0a\x09\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09);\x0a\x09\x09\x09'),this['_tableInitialized']=!![]),this['_db'];}async['get'](){return this['db']['prepare']('SELECT\x20data\x20FROM\x20'+this['_tableName']+'\x20WHERE\x20id\x20=\x201')['get']()?.['data'];}async['put'](a){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+this['_tableName']+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a);try{this['db']['pragma']('wal_checkpoint(FULL)');}catch{}}async['clear'](){this['db']['exec']('DELETE\x20FROM\x20'+this['_tableName']);}};function resetAllDbConnections(){if(cacheDbInstance){try{cacheDbInstance['close']();}catch(a){}cacheDbInstance=null;}if(accountDbInstance){try{accountDbInstance['close']();}catch(b){}accountDbInstance=null;}}process['on']('exit',()=>{resetAllDbConnections();}),process['on']('SIGINT',()=>{resetAllDbConnections();}),process['on']('SIGTERM',()=>{resetAllDbConnections();});function clearKeyMetadata(){try{getAccountDb()['exec']('DELETE\x20FROM\x20'+KEY_METADATA_TABLE);}catch{}}function resetAllStorage(){clearKeyMetadata(),resetAllDbConnections();}const defaultStorage=new SQLiteStorage(),defaultAccountStorage=new SQLiteAccountStorage();export{KEY_METADATA_TABLE,SQLiteAccountStorage,SQLiteStorage,UserModeStorage,clearKeyMetadata,defaultAccountStorage,defaultStorage,getAccountDb,resetAllDbConnections,resetAllStorage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Iy as TokenDataFilter, Ly as TokenInfo, Ry as TokenTypeInfo } from "../../index-BHXc1_-d.mjs";
|
|
2
2
|
export { TokenDataFilter, TokenInfo, TokenTypeInfo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as a87a}from'../../client-
|
|
1
|
+
import{t as a87a}from'../../client-C8we1Qaf.mjs';import{n as a87b}from'../../network-CeDd07Hg.mjs';import'../../common-uweycQjC.mjs';import{o as a87c}from'../../exception-C6IYkBi6.mjs';import{t as a87d}from'../../lock-QdrQzo0u.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';var TokenInfo=class TokenInfo{constructor(){this['cacheKey']=['token'];}static{this['_instanceLock']=new a87d();}static['Instance'](){if(TokenInfo['_instance'])return TokenInfo['_instance'];if(!TokenInfo['_instance'])TokenInfo['_instance']=new TokenInfo();return TokenInfo['_instance'];}async['fetch_imp'](a,b,c){const d=await new a87a({'url':a87b(a),'network':a})['getCoinMetadata']({'coinType':b});if(d)return{'alias':c,'type':b,...d};}async['fetch'](a,b,c){a=a??'0x2::wow::WOW';const d=await Config['Instance']()['network_get'](c),e=await Cache['read']([...this['cacheKey'],d],async g=>{return{'expire':'INFINITE','data':[]};});let f=e?.['data']?.['find'](g=>g['type']===a);if(!f){f=await this['fetch_imp'](d,a,b);if(!f){a87c('token\x20not\x20found','token\x20type:\x20'+a);return;}const g=[...e?.['data']||[],f];await Cache['read']([...this['cacheKey'],d],async h=>({'expire':'INFINITE','data':g}),!![]);}else{if(b&&f['alias']!==b){f['alias']=b;const h=e?.['data']?.['map'](i=>i['type']===a?f:i)||[];await Cache['read']([...this['cacheKey'],d],async i=>({'expire':'INFINITE','data':h}),!![]);}}return f;}async['list'](a,b){const c=await Config['Instance']()['network_get'](b);let d=await Cache['read']([...this['cacheKey'],c],async h=>{return{'expire':'INFINITE','data':[]};}),e=d?.['data']||[];const f=a?.['type']??'0x2::wow::WOW',g=a?.['type']?a?.['alias_or_name']:void 0x0;if(!e['find'](h=>h['type']===f)){const h=await this['fetch_imp'](c,f,g);if(h){const i=[...e,h];await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i}),!![]),d=await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i})),e=d?.['data']||[];}}if(a){e=e['filter'](j=>{let k=!![];if(a['symbol']&&k)k=j['symbol']===a['symbol'];if(a['type']&&k)k=j['type']===f;return k;});if(a['alias_or_name']){const j=a['alias_or_name']['toLowerCase']();e=e['map'](k=>{let l=0x0;const m=k['alias']?.['toLowerCase']()||'',n=k['name']?.['toLowerCase']()||'';if(m===j||n===j)l=0x3;else{if(m['startsWith'](j)||n['startsWith'](j))l=0x2;else{if(m['includes'](j)||n['includes'](j))l=0x1;}}return{...k,'_score':l};}),e=e['filter'](k=>k['_score']>0x0)['sort']((k,l)=>{const m=l['_score']-k['_score'];if(m!==0x0)return m;return(k['alias']?.['length']||0x0)+(k['name']?.['length']||0x0)-((l['alias']?.['length']||0x0)+(l['name']?.['length']||0x0));}),e=e['map'](k=>{const {_score:l,...m}=k;return m;});}}return e;}};export{TokenInfo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Br as MessageType, Ci as WTS_MAX_MESSAGE_COUNT, Di as WtsGenerationParams, Dn as BlacklistResponse, Ei as WtsFileResult, En as BlacklistRequest, Fn as blacklist, Fr as MessageFilter, Gn as pull_messages, Hn as mark_conversation_as_viewed, Hr as MessengerError, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Lr as MessageListResult, Mn as GuardlistResponse, Mr as Message, Nn as SettingsRequest, Nr as MessageContentType, On as FriendslistRequest, Pn as SettingsResponse, Pr as MessageDirection, Qn as watch_messages, Rn as friendslist, Rr as MessageStatus, Si as WTS_FILE_BYTES_LIMIT, Un as mark_messages_as_viewed, Ur as MessengerErrorCode, Vn as guardlist, Vr as MessengerConfig, Wn as proof_message, Wr as NORMAL_MESSAGE_BYTES_LIMIT, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, _r as DEFAULT_QUERY_LIMIT, er as MessengerManager, gr as DEFAULT_MESSENGER_CONFIG, jn as GuardlistRequest, kn as FriendslistResponse, kr as MAX_QUERY_LIMIT, mr as ConversationsFilter, ni as SendMessageResult, pr as ConversationInfo, qn as send_message, tr as Messenger, vr as DecryptedMessage, zn as generate_wts } from "../../index-
|
|
1
|
+
import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Br as MessageType, Ci as WTS_MAX_MESSAGE_COUNT, Di as WtsGenerationParams, Dn as BlacklistResponse, Ei as WtsFileResult, En as BlacklistRequest, Fn as blacklist, Fr as MessageFilter, Gn as pull_messages, Hn as mark_conversation_as_viewed, Hr as MessengerError, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Lr as MessageListResult, Mn as GuardlistResponse, Mr as Message, Nn as SettingsRequest, Nr as MessageContentType, On as FriendslistRequest, Pn as SettingsResponse, Pr as MessageDirection, Qn as watch_messages, Rn as friendslist, Rr as MessageStatus, Si as WTS_FILE_BYTES_LIMIT, Un as mark_messages_as_viewed, Ur as MessengerErrorCode, Vn as guardlist, Vr as MessengerConfig, Wn as proof_message, Wr as NORMAL_MESSAGE_BYTES_LIMIT, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, _r as DEFAULT_QUERY_LIMIT, er as MessengerManager, gr as DEFAULT_MESSENGER_CONFIG, jn as GuardlistRequest, kn as FriendslistResponse, kr as MAX_QUERY_LIMIT, mr as ConversationsFilter, ni as SendMessageResult, pr as ConversationInfo, qn as send_message, tr as Messenger, vr as DecryptedMessage, zn as generate_wts } from "../../index-BHXc1_-d.mjs";
|
|
2
2
|
export { BlacklistRequest, BlacklistResponse, type ConversationInfo, type ConversationsFilter, DEFAULT_MESSENGER_CONFIG, DEFAULT_QUERY_LIMIT, type DecryptedMessage, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, MAX_QUERY_LIMIT, type Message, type MessageContentType, MessageDirection, type MessageFilter, type MessageListResult, MessageStatus, MessageType, Messenger, type MessengerConfig, MessengerError, MessengerErrorCode, MessengerManager, NORMAL_MESSAGE_BYTES_LIMIT, type SendMessageResult, SettingsRequest, SettingsResponse, WTS_FILE_BYTES_LIMIT, WTS_MAX_MESSAGE_COUNT, type WtsFileResult, type WtsGenerationParams, blacklist, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, proof_message, pull_messages, send_file, send_message, settings, sign_wts, verify_wts, watch_conversations, watch_messages, wts2html };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./types.mjs';import{t as a91a}from'../../messenger-
|
|
1
|
+
import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./types.mjs';import{t as a91a}from'../../messenger-D-v41MtN.mjs';import{_ as a91b,a as a91c,b as a91d,c as a91e,d as a91f,f as a91g,g as a91h,h as a91i,i as a91j,l as a91k,m as a91l,n as a91m,o as a91n,p as a91o,r as a91p,s as a91q,t as a91r,u as a91s,v as a91t,y as a91u}from'../../messenger-api-D1pnUr3S.mjs';export{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,a91a as Messenger,MessengerError,MessengerErrorCode,a91d as MessengerManager,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,a91r as blacklist,a91m as extractZipFromPlaintext,a91p as extract_zip_messages,a91j as friendslist,a91c as generate_wts,a91n as getMessengerManager,a91q as guardlist,a91e as mark_conversation_as_viewed,a91k as mark_messages_as_viewed,a91s as proof_message,a91f as pull_messages,a91g as send_file,a91o as send_message,a91l as settings,a91i as sign_wts,a91h as verify_wts,a91b as watch_conversations,a91t as watch_messages,a91u as wts2html};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Dn as BlacklistResponse, En as BlacklistRequest, Fn as blacklist, Gn as pull_messages, Hn as mark_conversation_as_viewed, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Mn as GuardlistResponse, Nn as SettingsRequest, On as FriendslistRequest, Pn as SettingsResponse, Qn as watch_messages, Rn as friendslist, Un as mark_messages_as_viewed, Vn as guardlist, Wn as proof_message, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, jn as GuardlistRequest, kn as FriendslistResponse, qn as send_message, zn as generate_wts } from "../../index-
|
|
1
|
+
import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Dn as BlacklistResponse, En as BlacklistRequest, Fn as blacklist, Gn as pull_messages, Hn as mark_conversation_as_viewed, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Mn as GuardlistResponse, Nn as SettingsRequest, On as FriendslistRequest, Pn as SettingsResponse, Qn as watch_messages, Rn as friendslist, Un as mark_messages_as_viewed, Vn as guardlist, Wn as proof_message, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, jn as GuardlistRequest, kn as FriendslistResponse, qn as send_message, zn as generate_wts } from "../../index-BHXc1_-d.mjs";
|
|
2
2
|
export { BlacklistRequest, BlacklistResponse, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, SettingsRequest, SettingsResponse, blacklist, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, proof_message, pull_messages, send_file, send_message, settings, sign_wts, verify_wts, watch_conversations, watch_messages, wts2html };
|