@wowok/wowok 3.1.0 → 3.1.3
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/{Transaction-CrzrFqPW.mjs → Transaction-MUfKhsCF.mjs} +1 -1
- package/dist/esm/{arb-DfwGgOuj.mjs → arb-DznGhYNq.mjs} +1 -1
- package/dist/esm/bcs/index.d.mts +1 -1
- package/dist/esm/{call-Bi3kQ2dz.mjs → call-BU2Fl-xY.mjs} +1 -1
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client-BTNiaang.mjs +1 -0
- package/dist/esm/{common-DC9BAaSg.mjs → common-Xdn-Z6c9.mjs} +1 -1
- package/dist/esm/{constants-BGKNJZYa.mjs → constants-DR8H5zhY.mjs} +1 -1
- package/dist/esm/cryptography/index.d.mts +1 -1
- package/dist/esm/{evm-account-DiQ0dl_e.d.mts → evm-account-C6LC6C4v.d.mts} +2 -2
- package/dist/esm/exception-CUK4T4UJ.mjs +1 -0
- package/dist/esm/{fund-approval-D9vwQz49.mjs → fund-approval-BeJzE3D_.mjs} +1 -1
- package/dist/esm/graphql/index.d.mts +1 -1
- package/dist/esm/graphql/index.mjs +1 -1
- package/dist/esm/{graphql-6uRIEz97.mjs → graphql-DuKbqfWz.mjs} +1 -1
- package/dist/esm/grpc/index.d.mts +1 -1
- package/dist/esm/grpc/index.mjs +1 -1
- package/dist/esm/{grpc-CuD3bO9t.mjs → grpc-zOhtAWkI.mjs} +1 -1
- package/dist/esm/{index-Bs4A3nTL.d.mts → index-DGfn17Bq.d.mts} +12 -1
- package/dist/esm/{index-DKne9Aij.d.mts → index-DZz_hx8l.d.mts} +32 -6
- package/dist/esm/{index-B-cxGU73.d.mts → index-o_aMVwsK.d.mts} +6 -6
- package/dist/esm/index.d.mts +7 -7
- 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-api-DpkUVzX3.mjs → messenger-api-3u9c6Lit.mjs} +1 -1
- package/dist/esm/{messenger-CTktoUW7.mjs → messenger-bXs3igIA.mjs} +1 -1
- package/dist/esm/multisig/index.d.mts +1 -1
- package/dist/esm/{proof-A-gI-Jbd.mjs → proof-DFDO3YXO.mjs} +1 -1
- package/dist/esm/{received-k4hM6HMS.mjs → received-DqdGkEis.mjs} +1 -1
- package/dist/esm/{secure-storage-WrSCAIOu.d.mts → secure-storage-CnXXBqBE.d.mts} +1 -1
- package/dist/esm/{service-D-99KdWk.mjs → service-DS1cO2w0.mjs} +1 -1
- package/dist/esm/storage-0-olOTTC.mjs +1 -0
- package/dist/esm/{storage-C_8llI0r.d.mts → storage-CEDkwpbs.d.mts} +14 -1
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/{transactions-HEsbZ5tl.mjs → transactions-CklK5guM.mjs} +1 -1
- package/dist/esm/util-DMprYkJf.mjs +1 -0
- package/dist/esm/util-H--aa378.mjs +1 -0
- package/dist/esm/utils/index.d.mts +2 -2
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/{utils-CFfdvJ-L.mjs → utils-C91AIzNd.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 +1 -1
- 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 +1 -1
- 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/cache.mjs +1 -1
- package/dist/esm/w/local/config.mjs +1 -1
- package/dist/esm/w/local/evm/networks.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/fund-approval.mjs +1 -1
- package/dist/esm/w/local/index.d.mts +4 -4
- package/dist/esm/w/local/index.mjs +1 -1
- package/dist/esm/w/local/local.mjs +1 -1
- package/dist/esm/w/local/secure-storage.d.mts +1 -1
- package/dist/esm/w/local/secure-storage.mjs +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/local/wip.mjs +1 -1
- package/dist/esm/w/messenger/attachment.d.mts +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/reply.d.mts +1 -1
- package/dist/esm/w/messenger/storage.d.mts +1 -1
- package/dist/esm/w/messenger/types.d.mts +1 -1
- package/dist/esm/w/messenger/utils.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-DBP-lq8H.mjs → w-DZU7c6qK.mjs} +1 -1
- package/package.json +1 -1
- package/dist/esm/client-BMMGbUOY.mjs +0 -1
- package/dist/esm/exception-D2n4LV8F.mjs +0 -1
- package/dist/esm/storage-D1bEi2b7.mjs +0 -1
- package/dist/esm/util-BKGG0lou.mjs +0 -1
- package/dist/esm/util-CCMJ8QaZ.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a84a,d as a84b}from'../../storage-D1bEi2b7.mjs';import{sha256}from'@noble/hashes/sha2.js';import{randomBytes}from'@noble/hashes/utils.js';import{hkdf}from'@noble/hashes/hkdf.js';const ENVELOPE_VERSION=0x1,KEY_METADATA_TABLE='key_metadata',DEFAULT_MASTER_SECRET=new TextEncoder()['encode']('WowokAccountDefaultEncryptionKey_v1_a7f3e9d2c8b10564'),PBKDF2_ITERATIONS=0x927c0,IV_LENGTH=0xc,KEK_INFO=new TextEncoder()['encode']('wowok-account-kek');function bytesToBase64(a){if(typeof Buffer!=='undefined')return Buffer['from'](a)['toString']('base64');const b=Array['from'](a,c=>String['fromCharCode'](c))['join']('');return btoa(b);}function base64ToBytes(a){if(typeof Buffer!=='undefined')return new Uint8Array(Buffer['from'](a,'base64'));return Uint8Array['from'](atob(a),b=>b['charCodeAt'](0x0));}let subtleCache;async function getSubtle(){if(subtleCache)return subtleCache;if(typeof globalThis!=='undefined'&&globalThis['crypto']&&globalThis['crypto']['subtle'])return subtleCache=globalThis['crypto']['subtle'],subtleCache;return subtleCache=(await import('crypto'))['webcrypto']['subtle'],subtleCache;}function concatBytes(c,d){const e=new Uint8Array(c['length']+d['length']);return e['set'](c,0x0),e['set'](d,c['length']),e;}function toArrayBuffer(a){return a['buffer']['slice'](a['byteOffset'],a['byteOffset']+a['byteLength']);}function splitIvTagCt(a){if(a['length']<0x1c)throw new Error('Invalid\x20encrypted\x20blob:\x20too\x20short');return{'iv':a['slice'](0x0,IV_LENGTH),'ct':a['slice'](IV_LENGTH)};}var CryptoVault=class{constructor(a){this['_dbSource']=a,this['_initLock']=new a84b(),this['_writeLock']=new a84b();}get['db'](){return this['_dbSource']??a84a();}['ensureTable'](){this['db']['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+KEY_METADATA_TABLE+'\x20(\x0a\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09);\x0a\x09\x09');}['loadMetadata'](){this['ensureTable']();const a=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(!a)return void 0x0;return JSON['parse'](a['data']);}['saveMetadata'](a){this['ensureTable'](),this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\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\x09')['run'](JSON['stringify'](a));}get['initialized'](){if(this['_metadata'])return!![];return this['loadMetadata']()!==void 0x0;}async['ensureInitialized'](){if(this['_metadata'])return this['_metadata'];return this['_initLock']['run'](async()=>{if(this['_metadata'])return this['_metadata'];const a=this['loadMetadata']();if(a)return this['_metadata']=a,a;return await this['_initializeDefaultLocked'](),this['_metadata'];});}async['initializeDefault'](){if(this['_metadata'])return;await this['_initLock']['run'](async()=>{if(this['_metadata'])return;await this['_initializeDefaultLocked']();});}async['_initializeDefaultLocked'](){const a=this['loadMetadata']();if(a){this['_metadata']=a;return;}const b=randomBytes(0x10),c=randomBytes(0x20),d=this['deriveDefaultKek'](b),e=await this['wrapDek'](d,c),f={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(b),'wrappedKey':bytesToBase64(e)};try{this['db']['transaction'](()=>{const g=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(g){this['_metadata']=JSON['parse'](g['data']);return;}this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09')['run'](JSON['stringify'](f)),this['_metadata']=f;})();}catch{const g=this['loadMetadata']();if(g)this['_metadata']=g;}if(!this['_metadata']){const h=this['loadMetadata']();if(h)this['_metadata']=h;}}['deriveDefaultKek'](a){return hkdf(sha256,DEFAULT_MASTER_SECRET,a,KEK_INFO,0x20);}async['derivePasswordKek'](a,b){const c=await getSubtle(),d=await c['importKey']('raw',new TextEncoder()['encode'](a),{'name':'PBKDF2'},![],['deriveBits']),e=await c['deriveBits']({'name':'PBKDF2','salt':toArrayBuffer(b),'iterations':PBKDF2_ITERATIONS,'hash':'SHA-256'},d,0x100);return new Uint8Array(e);}async['wrapDek'](a,b){const c=await getSubtle(),d=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),e=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['encrypt']);return concatBytes(d,new Uint8Array(await c['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},e,toArrayBuffer(b))));}async['unwrapDek'](a,b){const c=await getSubtle(),{iv:d,ct:e}=splitIvTagCt(b),f=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['decrypt']),g=await c['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},f,toArrayBuffer(e));return new Uint8Array(g);}async['getDek'](a){if(this['_dek'])return this['_dek'];const b=await this['ensureInitialized'](),c=base64ToBytes(b['salt']);let d,e;if(b['mode']==='password'){if(a)d=await this['derivePasswordKek'](a,c),e=base64ToBytes(b['wrappedKey']);else{if(b['mcpWrappedKey'])d=this['deriveDefaultKek'](c),e=base64ToBytes(b['mcpWrappedKey']);else throw new Error('Account\x20access\x20is\x20disabled\x20for\x20MCP.\x20Please\x20open\x20the\x20WoWok\x20Client\x20and\x20enable\x20MCP\x20account\x20access\x20in\x20Settings\x20to\x20proceed.');}}else{if(a)d=await this['derivePasswordKek'](a,c);else d=this['deriveDefaultKek'](c);e=base64ToBytes(b['wrappedKey']);}const f=await this['unwrapDek'](d,e),g=await getSubtle();return this['_dek']=await g['importKey']('raw',toArrayBuffer(f),{'name':'AES-GCM'},![],['encrypt','decrypt']),this['_dek'];}['clearDekCache'](){this['_dek']=void 0x0;}async['encrypt'](a,b){const c=await this['ensureInitialized'](),d=await this['getDek'](b),e=await getSubtle(),f=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),g=new Uint8Array(await e['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(f)},d,toArrayBuffer(new TextEncoder()['encode'](a))));return{'v':ENVELOPE_VERSION,'mode':c['mode'],'kdf':c['kdf'],'salt':c['salt'],'iterations':c['iterations'],'wrappedKey':c['wrappedKey'],'iv':bytesToBase64(f),'ct':bytesToBase64(g)};}async['decrypt'](a,b){const c=await this['getDek'](b),d=await getSubtle(),e=base64ToBytes(a['iv']),f=base64ToBytes(a['ct']),g=await d['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(e)},c,toArrayBuffer(f));return new TextDecoder()['decode'](g);}['getMode'](){if(this['_metadata'])return this['_metadata']['mode'];return this['loadMetadata']()?.['mode'];}async['setPassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized'](),c=await this['unwrapDek'](this['deriveDefaultKek'](base64ToBytes(b['salt'])),base64ToBytes(b['wrappedKey'])),d=randomBytes(0x10),e=await this['derivePasswordKek'](a,d),f=await this['wrapDek'](e,c),g=await this['wrapDek'](this['deriveDefaultKek'](d),c),h={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(d),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(f),'mcpWrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}async['changePassword'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('Account\x20data\x20is\x20not\x20protected\x20by\x20a\x20password.\x20Call\x20setPassword\x20first.');const d=await this['derivePasswordKek'](a,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f=randomBytes(0x10),g=await this['derivePasswordKek'](b,f),h=await this['wrapDek'](g,e),i={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(f),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(h)};if(c['mcpWrappedKey'])i['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](f),e));this['saveMetadata'](i),this['_metadata']=i,this['clearDekCache']();});}async['removePassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized']();if(b['mode']!=='password')throw new Error('Account\x20data\x20is\x20already\x20in\x20default\x20encryption\x20mode.');const c=await this['derivePasswordKek'](a,base64ToBytes(b['salt'])),d=await this['unwrapDek'](c,base64ToBytes(b['wrappedKey'])),e=randomBytes(0x10),f=this['deriveDefaultKek'](e),g=await this['wrapDek'](f,d),h={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(e),'wrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}['getMcpAccess'](){const a=this['_metadata']??this['loadMetadata']();if(!a)return'allowed';if(a['mode']==='default')return'allowed';return a['mcpWrappedKey']?'allowed':'blocked';}async['setMcpAccess'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('MCP\x20access\x20control\x20is\x20only\x20available\x20when\x20a\x20password\x20is\x20set.');const d=await this['derivePasswordKek'](b,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f={...c};if(a)f['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](base64ToBytes(c['salt'])),e));else delete f['mcpWrappedKey'];this['saveMetadata'](f),this['_metadata']=f,this['clearDekCache']();});}},SecureAccountStorage=class{constructor(a,b){this['_backend']=a,this['_vault']=b??new CryptoVault();}['setSessionPassword'](a){this['_sessionPassword']=a,this['_vault']['clearDekCache']();}['getSessionPassword'](){return this['_sessionPassword'];}['isSecureEnvelope'](a){return a&&typeof a==='object'&&a['v']===ENVELOPE_VERSION&&typeof a['ct']==='string'&&typeof a['wrappedKey']==='string'&&(a['kdf']==='hkdf-sha256'||a['kdf']==='pbkdf2-sha256');}async['get'](){const a=await this['_backend']['get']();if(!a)return void 0x0;let b;try{b=JSON['parse'](a);}catch{return a;}if(this['isSecureEnvelope'](b))return this['_vault']['decrypt'](b,this['_sessionPassword']);return a;}async['put'](a){const b=await this['_vault']['encrypt'](a,this['_sessionPassword']);await this['_backend']['put'](JSON['stringify'](b));}async['clear'](){await this['_backend']['clear']();}['getMode'](){return this['_vault']['getMode']();}async['setPassword'](a){await this['_vault']['setPassword'](a),this['_sessionPassword']=a;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}async['changePassword'](a,b){await this['_vault']['changePassword'](a,b),this['_sessionPassword']=b;if(await this['_backend']['get']()){const c=await this['get']();if(c!==void 0x0)await this['put'](c);}}async['removePassword'](a){await this['_vault']['removePassword'](a),this['_sessionPassword']=void 0x0;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}['getMcpAccess'](){return this['_vault']['getMcpAccess']();}async['setMcpAccess'](a,b){await this['_vault']['setMcpAccess'](a,b);}};export{CryptoVault,SecureAccountStorage};
|
|
1
|
+
import{p as a84a,u as a84b}from'../../storage-0-olOTTC.mjs';import{sha256}from'@noble/hashes/sha2.js';import{randomBytes}from'@noble/hashes/utils.js';import{hkdf}from'@noble/hashes/hkdf.js';const ENVELOPE_VERSION=0x1,KEY_METADATA_TABLE='key_metadata',DEFAULT_MASTER_SECRET=new TextEncoder()['encode']('WowokAccountDefaultEncryptionKey_v1_a7f3e9d2c8b10564'),PBKDF2_ITERATIONS=0x927c0,IV_LENGTH=0xc,KEK_INFO=new TextEncoder()['encode']('wowok-account-kek');function bytesToBase64(a){if(typeof Buffer!=='undefined')return Buffer['from'](a)['toString']('base64');const b=Array['from'](a,c=>String['fromCharCode'](c))['join']('');return btoa(b);}function base64ToBytes(a){if(typeof Buffer!=='undefined')return new Uint8Array(Buffer['from'](a,'base64'));return Uint8Array['from'](atob(a),b=>b['charCodeAt'](0x0));}let subtleCache;async function getSubtle(){if(subtleCache)return subtleCache;if(typeof globalThis!=='undefined'&&globalThis['crypto']&&globalThis['crypto']['subtle'])return subtleCache=globalThis['crypto']['subtle'],subtleCache;return subtleCache=(await import('crypto'))['webcrypto']['subtle'],subtleCache;}function concatBytes(c,d){const e=new Uint8Array(c['length']+d['length']);return e['set'](c,0x0),e['set'](d,c['length']),e;}function toArrayBuffer(a){return a['buffer']['slice'](a['byteOffset'],a['byteOffset']+a['byteLength']);}function splitIvTagCt(a){if(a['length']<0x1c)throw new Error('Invalid\x20encrypted\x20blob:\x20too\x20short');return{'iv':a['slice'](0x0,IV_LENGTH),'ct':a['slice'](IV_LENGTH)};}var CryptoVault=class{constructor(a){this['_dbSource']=a,this['_initLock']=new a84a(),this['_writeLock']=new a84a();}get['db'](){return this['_dbSource']??a84b();}['ensureTable'](){this['db']['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+KEY_METADATA_TABLE+'\x20(\x0a\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09);\x0a\x09\x09');}['loadMetadata'](){this['ensureTable']();const a=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(!a)return void 0x0;return JSON['parse'](a['data']);}['saveMetadata'](a){this['ensureTable'](),this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\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\x09')['run'](JSON['stringify'](a));}get['initialized'](){if(this['_metadata'])return!![];return this['loadMetadata']()!==void 0x0;}async['ensureInitialized'](){if(this['_metadata'])return this['_metadata'];return this['_initLock']['run'](async()=>{if(this['_metadata'])return this['_metadata'];const a=this['loadMetadata']();if(a)return this['_metadata']=a,a;return await this['_initializeDefaultLocked'](),this['_metadata'];});}async['initializeDefault'](){if(this['_metadata'])return;await this['_initLock']['run'](async()=>{if(this['_metadata'])return;await this['_initializeDefaultLocked']();});}async['_initializeDefaultLocked'](){const a=this['loadMetadata']();if(a){this['_metadata']=a;return;}const b=randomBytes(0x10),c=randomBytes(0x20),d=this['deriveDefaultKek'](b),e=await this['wrapDek'](d,c),f={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(b),'wrappedKey':bytesToBase64(e)};try{this['db']['transaction'](()=>{const g=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(g){this['_metadata']=JSON['parse'](g['data']);return;}this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09')['run'](JSON['stringify'](f)),this['_metadata']=f;})();}catch{const g=this['loadMetadata']();if(g)this['_metadata']=g;}if(!this['_metadata']){const h=this['loadMetadata']();if(h)this['_metadata']=h;}}['deriveDefaultKek'](a){return hkdf(sha256,DEFAULT_MASTER_SECRET,a,KEK_INFO,0x20);}async['derivePasswordKek'](a,b){const c=await getSubtle(),d=await c['importKey']('raw',new TextEncoder()['encode'](a),{'name':'PBKDF2'},![],['deriveBits']),e=await c['deriveBits']({'name':'PBKDF2','salt':toArrayBuffer(b),'iterations':PBKDF2_ITERATIONS,'hash':'SHA-256'},d,0x100);return new Uint8Array(e);}async['wrapDek'](a,b){const c=await getSubtle(),d=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),e=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['encrypt']);return concatBytes(d,new Uint8Array(await c['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},e,toArrayBuffer(b))));}async['unwrapDek'](a,b){const c=await getSubtle(),{iv:d,ct:e}=splitIvTagCt(b),f=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['decrypt']),g=await c['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},f,toArrayBuffer(e));return new Uint8Array(g);}async['getDek'](a){if(this['_dek'])return this['_dek'];const b=await this['ensureInitialized'](),c=base64ToBytes(b['salt']);let d,e;if(b['mode']==='password'){if(a)d=await this['derivePasswordKek'](a,c),e=base64ToBytes(b['wrappedKey']);else{if(b['mcpWrappedKey'])d=this['deriveDefaultKek'](c),e=base64ToBytes(b['mcpWrappedKey']);else throw new Error('Account\x20access\x20is\x20disabled\x20for\x20MCP.\x20Please\x20open\x20the\x20WoWok\x20Client\x20and\x20enable\x20MCP\x20account\x20access\x20in\x20Settings\x20to\x20proceed.');}}else{if(a)d=await this['derivePasswordKek'](a,c);else d=this['deriveDefaultKek'](c);e=base64ToBytes(b['wrappedKey']);}const f=await this['unwrapDek'](d,e),g=await getSubtle();return this['_dek']=await g['importKey']('raw',toArrayBuffer(f),{'name':'AES-GCM'},![],['encrypt','decrypt']),this['_dek'];}['clearDekCache'](){this['_dek']=void 0x0;}async['encrypt'](a,b){const c=await this['ensureInitialized'](),d=await this['getDek'](b),e=await getSubtle(),f=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),g=new Uint8Array(await e['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(f)},d,toArrayBuffer(new TextEncoder()['encode'](a))));return{'v':ENVELOPE_VERSION,'mode':c['mode'],'kdf':c['kdf'],'salt':c['salt'],'iterations':c['iterations'],'wrappedKey':c['wrappedKey'],'iv':bytesToBase64(f),'ct':bytesToBase64(g)};}async['decrypt'](a,b){const c=await this['getDek'](b),d=await getSubtle(),e=base64ToBytes(a['iv']),f=base64ToBytes(a['ct']),g=await d['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(e)},c,toArrayBuffer(f));return new TextDecoder()['decode'](g);}['getMode'](){if(this['_metadata'])return this['_metadata']['mode'];return this['loadMetadata']()?.['mode'];}async['setPassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized'](),c=await this['unwrapDek'](this['deriveDefaultKek'](base64ToBytes(b['salt'])),base64ToBytes(b['wrappedKey'])),d=randomBytes(0x10),e=await this['derivePasswordKek'](a,d),f=await this['wrapDek'](e,c),g=await this['wrapDek'](this['deriveDefaultKek'](d),c),h={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(d),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(f),'mcpWrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}async['changePassword'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('Account\x20data\x20is\x20not\x20protected\x20by\x20a\x20password.\x20Call\x20setPassword\x20first.');const d=await this['derivePasswordKek'](a,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f=randomBytes(0x10),g=await this['derivePasswordKek'](b,f),h=await this['wrapDek'](g,e),i={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(f),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(h)};if(c['mcpWrappedKey'])i['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](f),e));this['saveMetadata'](i),this['_metadata']=i,this['clearDekCache']();});}async['removePassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized']();if(b['mode']!=='password')throw new Error('Account\x20data\x20is\x20already\x20in\x20default\x20encryption\x20mode.');const c=await this['derivePasswordKek'](a,base64ToBytes(b['salt'])),d=await this['unwrapDek'](c,base64ToBytes(b['wrappedKey'])),e=randomBytes(0x10),f=this['deriveDefaultKek'](e),g=await this['wrapDek'](f,d),h={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(e),'wrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}['getMcpAccess'](){const a=this['_metadata']??this['loadMetadata']();if(!a)return'allowed';if(a['mode']==='default')return'allowed';return a['mcpWrappedKey']?'allowed':'blocked';}async['setMcpAccess'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('MCP\x20access\x20control\x20is\x20only\x20available\x20when\x20a\x20password\x20is\x20set.');const d=await this['derivePasswordKek'](b,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f={...c};if(a)f['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](base64ToBytes(c['salt'])),e));else delete f['mcpWrappedKey'];this['saveMetadata'](f),this['_metadata']=f,this['clearDekCache']();});}},SecureAccountStorage=class{constructor(a,b){this['_backend']=a,this['_vault']=b??new CryptoVault();}['setSessionPassword'](a){this['_sessionPassword']=a,this['_vault']['clearDekCache']();}['getSessionPassword'](){return this['_sessionPassword'];}['isSecureEnvelope'](a){return a&&typeof a==='object'&&a['v']===ENVELOPE_VERSION&&typeof a['ct']==='string'&&typeof a['wrappedKey']==='string'&&(a['kdf']==='hkdf-sha256'||a['kdf']==='pbkdf2-sha256');}async['get'](){const a=await this['_backend']['get']();if(!a)return void 0x0;let b;try{b=JSON['parse'](a);}catch{return a;}if(this['isSecureEnvelope'](b))return this['_vault']['decrypt'](b,this['_sessionPassword']);return a;}async['put'](a){const b=await this['_vault']['encrypt'](a,this['_sessionPassword']);await this['_backend']['put'](JSON['stringify'](b));}async['clear'](){await this['_backend']['clear']();}['getMode'](){return this['_vault']['getMode']();}async['setPassword'](a){await this['_vault']['setPassword'](a),this['_sessionPassword']=a;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}async['changePassword'](a,b){await this['_vault']['changePassword'](a,b),this['_sessionPassword']=b;if(await this['_backend']['get']()){const c=await this['get']();if(c!==void 0x0)await this['put'](c);}}async['removePassword'](a){await this['_vault']['removePassword'](a),this['_sessionPassword']=void 0x0;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}['getMcpAccess'](){return this['_vault']['getMcpAccess']();}async['setMcpAccess'](a,b){await this['_vault']['setMcpAccess'](a,b);}};export{CryptoVault,SecureAccountStorage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as OwnedRecordStorage, c as
|
|
2
|
-
export { IAccountStorage, IStorage, KEY_METADATA_TABLE, OwnedRecord, OwnedRecordStorage, SQLiteAccountStorage, SQLiteStorage, clearKeyMetadata, defaultAccountStorage, defaultStorage, getAccountDb, resetAllDbConnections, resetAllStorage };
|
|
1
|
+
import { a as OwnedRecordStorage, c as cacheKvGetSync, d as defaultAccountStorage, f as defaultStorage, h as resetAllStorage, i as OwnedRecord, l as cacheKvSetSync, m as resetAllDbConnections, n as IStorage, o as SQLiteAccountStorage, p as getAccountDb, r as KEY_METADATA_TABLE, s as SQLiteStorage, t as IAccountStorage, u as clearKeyMetadata } from "../../storage-CEDkwpbs.mjs";
|
|
2
|
+
export { IAccountStorage, IStorage, KEY_METADATA_TABLE, OwnedRecord, OwnedRecordStorage, SQLiteAccountStorage, SQLiteStorage, cacheKvGetSync, cacheKvSetSync, clearKeyMetadata, defaultAccountStorage, defaultStorage, getAccountDb, resetAllDbConnections, resetAllStorage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a85a,c as a85b,
|
|
1
|
+
import{a as a85a,c as a85b,d as a85c,f as a85d,i as a85e,l as a85f,n as a85g,o as a85h,r as a85i,s as a85j,t as a85k,u as a85l}from'../../storage-0-olOTTC.mjs';export{a85k as KEY_METADATA_TABLE,a85g as OwnedRecordStorage,a85i as SQLiteAccountStorage,a85e as SQLiteStorage,a85a as cacheKvGetSync,a85h as cacheKvSetSync,a85j as clearKeyMetadata,a85b as defaultAccountStorage,a85f as defaultStorage,a85l as getAccountDb,a85c as resetAllDbConnections,a85d as resetAllStorage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ag as TokenInfo, ig as TokenDataFilter, og as TokenTypeInfo } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { TokenDataFilter, TokenInfo, TokenTypeInfo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as a86a}from'../../client-
|
|
1
|
+
import{t as a86a}from'../../client-BTNiaang.mjs';import{o as a86b}from'../../exception-CUK4T4UJ.mjs';import{a as a86c}from'../../network-UpRYD8EM.mjs';import'../../common-Xdn-Z6c9.mjs';import{p as a86d}from'../../storage-0-olOTTC.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';var TokenInfo=class TokenInfo{constructor(){this['cacheKey']=['token'];}static{this['_instanceLock']=new a86d();}static['Instance'](){if(TokenInfo['_instance'])return TokenInfo['_instance'];if(!TokenInfo['_instance'])TokenInfo['_instance']=new TokenInfo();return TokenInfo['_instance'];}static['isValidMetadata'](a){if(!a)return![];const b=a['decimals'];return typeof b==='number'&&Number['isInteger'](b)&&b>=0x0&&b<=0xff;}async['fetch_imp'](a,b,c){const d=await new a86a({'url':a86c(a),'network':a})['getCoinMetadata']({'coinType':b});if(TokenInfo['isValidMetadata'](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){a86b('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']?.['toLowerCase']()===a['symbol']['toLowerCase']();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};
|
package/dist/esm/w/local/wip.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getWowokWorkspaceDir}from'./util.mjs';import{r as a88a}from'../../logger-Da7dKX2V.mjs';import{sha256}from'@noble/hashes/sha2.js';import{bytesToHex}from'@noble/hashes/utils.js';import*as a88b from'path';import*as a88c from'fs';import*as a88d from'https';import*as a88e from'http';const logger=a88a('wip'),WIP_SCHEMA_URL='https://github.com/wowok-ai/docs/blob/main/WIP.md',WIP_VERSION='1.0.0',DEFAULT_LIMITS={'maxImageSize':0x2*0x400*0x400,'maxTotalSize':0xa*0x400*0x400,'maxImageCount':0xa,'maxTextLength':0x2710};var WipError=class extends Error{constructor(a){super(a),this['name']='WipError';}},WipValidationError=class extends WipError{constructor(a){super(a),this['name']='WipValidationError';}},WipSizeError=class extends WipError{constructor(a){super(a),this['name']='WipSizeError';}};function detectMimeType(a){if(a['length']>=0x4&&a[0x0]===0x89&&a[0x1]===0x50&&a[0x2]===0x4e&&a[0x3]===0x47)return'image/png';if(a['length']>=0x3&&a[0x0]===0xff&&a[0x1]===0xd8&&a[0x2]===0xff)return'image/jpeg';if(a['length']>=0x6&&a[0x0]===0x47&&a[0x1]===0x49&&a[0x2]===0x46)return'image/gif';if(a['length']>=0xc&&a[0x0]===0x52&&a[0x1]===0x49&&a[0x2]===0x46&&a[0x3]===0x46&&a[0x8]===0x57&&a[0x9]===0x45&&a[0xa]===0x42&&a[0xb]===0x50)return'image/webp';return null;}function uint8ArrayToBase64(a){let b='';const c=a['length'];for(let d=0x0;d<c;d++)b+=String['fromCharCode'](a[d]);return btoa(b);}function base64ToUint8Array(a){const b=atob(a),c=b['length'],d=new Uint8Array(c);for(let e=0x0;e<c;e++)d[e]=b['charCodeAt'](e);return d;}function canonicalizeJson(a){if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a;return'{'+Object['keys'](b)['sort']()['map'](c=>'\x22'+c+'\x22:'+canonicalizeJson(b[c]))['join'](',')+'}';}function computeHash(a){return bytesToHex(sha256(new TextEncoder()['encode'](a)));}function generateId(a){return a+'-'+Date['now']()['toString'](0x24)+'-'+Math['random']()['toString'](0x24)['substring'](0x2,0x8);}function getExtensionFromMimeType(a){return{'image/png':'png','image/jpeg':'jpg','image/gif':'gif','image/webp':'webp'}[a]||'bin';}var ResourceLoader=class{constructor(a){this['maxSize']=a;}async['load'](a){if(!a||a['trim']()==='')throw new WipError('WIP\x20file\x20path\x20cannot\x20be\x20empty');if(a['startsWith']('data:'))return this['loadFromDataUrl'](a);if(a['startsWith']('http://')||a['startsWith']('https://'))return this['loadFromNetwork'](a);return this['loadFromFile'](a);}['loadFromDataUrl'](a){const b=a['match'](/^data:image\/(\w+);base64,(.+)$/);if(!b)throw new WipValidationError('Invalid\x20data\x20URL\x20format:\x20'+a['substring'](0x0,0x32)+'...');const c=b[0x2];try{return base64ToUint8Array(c);}catch(d){throw new WipError('Failed\x20to\x20decode\x20data\x20URL:\x20'+d);}}async['loadFromNetwork'](a){return new Promise((b,c)=>{const d=setTimeout(()=>{c(new WipError('Network\x20timeout\x20while\x20fetching:\x20'+a));},0x7530),e=a['startsWith']('https:'),f=e?a88d:a88e,g={'headers':{'Accept':'application/json,*/*'}};if(e)g['rejectUnauthorized']=![];f['get'](a,g,h=>{clearTimeout(d);if(h['statusCode']!==0xc8){c(new WipError('Failed\x20to\x20fetch:\x20'+h['statusCode']+'\x20'+h['statusMessage']));return;}const i=h['headers']['content-length'];if(i&&parseInt(i)>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+i+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}const j=[];h['on']('data',k=>{j['push'](k);}),h['on']('end',()=>{const k=Buffer['concat'](j);if(k['length']>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+k['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}b(new Uint8Array(k));}),h['on']('error',k=>{c(new WipError('Network\x20error:\x20'+k['message']));});})['on']('error',h=>{clearTimeout(d),c(new WipError('Network\x20error:\x20'+h['message']));});});}['loadFromFile'](a){const b=a88b['resolve'](a);if(!a88c['existsSync'](b))throw new WipError('File\x20not\x20found:\x20'+b);const c=a88c['statSync'](b);if(!c['isFile']())throw new WipError('Path\x20is\x20not\x20a\x20file:\x20'+b);if(c['size']>this['maxSize'])throw new WipSizeError('File\x20'+b+'\x20size\x20('+c['size']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)');const d=a88c['readFileSync'](b);return new Uint8Array(d);}},WIP=class{constructor(a={}){this['limits']={...DEFAULT_LIMITS,...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}async['create'](a){if(a['text']['length']>this['limits']['maxTextLength'])throw new WipSizeError('Text\x20length\x20('+a['text']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxTextLength']+')');const b=[];if(a['images']&&a['images']['length']>0x0){if(a['images']['length']>this['limits']['maxImageCount'])throw new WipSizeError('Image\x20count\x20('+a['images']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxImageCount']+')');for(let h=0x0;h<a['images']['length'];h++){const j=await this['processImage'](a['images'][h],h);b['push'](j);}}const c={'content':{'text':a['text'],'format':a['textFormat']||'plain'},'media':b},d=computeHash(canonicalizeJson({'wip':WIP_SCHEMA_URL,'payload':c})),e={'type':'wip','version':WIP_VERSION,'created':new Date()['toISOString'](),'hash':d,'algorithm':'sha256'};if(a['signKeyPair']){const {signature:k,...l}=e,m=computeHash(canonicalizeJson(l));e['signature']={'value':await this['sign'](m,a['signKeyPair']['privateKey'],a['signAlgorithm']||'Falcon512'),'publicKey':a['signKeyPair']['publicKey'],'algorithm':a['signAlgorithm']||'Falcon512'};}const f={'wip':WIP_SCHEMA_URL,'payload':c,'meta':e},g=JSON['stringify'](f);if(g['length']>this['limits']['maxTotalSize'])throw new WipSizeError('Total\x20WIP\x20file\x20size\x20('+g['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['limits']['maxTotalSize']+'\x20bytes)');return f;}async['processImage'](a,b){const c=await this['resourceLoader']['load'](a['source']),d=detectMimeType(c);if(!d)throw new WipValidationError('Unsupported\x20image\x20format:\x20'+a['source']);let e=a['filename'];if(!e){if(a['source']['startsWith']('http')){const f=new URL(a['source'])['pathname'];e=f['substring'](f['lastIndexOf']('/')+0x1)||'image-'+b;}else e=a['source']['substring'](a['source']['lastIndexOf']('/')+0x1)||'image-'+b;}return{'id':a['id']||generateId('img'),'type':d,'data':uint8ArrayToBase64(c),'filename':e};}async['sign'](a,b,c){if(c!=='Falcon512')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+c);const {Falcon512Keypair:d}=await import('../../keypairs/falcon512/index.mjs');return uint8ArrayToBase64(await d['fromSecretKey'](b)['sign'](new TextEncoder()['encode'](a)));}async['verify'](a){try{if(!a['wip']||!a['payload']||!a['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure'};if(a['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+a['meta']['type']};if(computeHash(canonicalizeJson({'wip':a['wip'],'payload':a['payload']}))!==a['meta']['hash'])return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered'};const b=[];if(a['meta']['signature']){const {signature:c,...d}=a['meta'],e=computeHash(canonicalizeJson(d)),f=Array['isArray'](a['meta']['signature'])?a['meta']['signature']:[a['meta']['signature']];for(const g of f){const h=await this['verifySignature'](e,g['value'],g['publicKey'],g['algorithm']);b['push']({'address':g['address'],'valid':h});if(!h)return{'valid':![],'error':'Invalid\x20signature','signatures':b};}}return{'valid':!![],'signatures':b};}catch(i){return{'valid':![],'error':'Verification\x20error:\x20'+i};}}async['verifySignature'](a,b,c,d){if(d!=='Falcon512')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+d);try{const {Falcon512PublicKey:e}=await import('../../publickey-CvXcTL6j.mjs')['then'](i=>i['n']);let f;if(c['startsWith']('0x')){const i=Buffer['from'](c['slice'](0x2),'hex');if(i['length']===0x382)f=i['slice'](0x1);else{if(i['length']===0x381)f=i;else f=i;}}else try{const j=Buffer['from'](c,'base64');if(j['length']===0x382)f=j['slice'](0x1);else f=j;}catch{f=Buffer['from'](c,'base64');}const g=new e(f),h=Uint8Array['from'](Buffer['from'](b,'base64'));return await g['verify'](new TextEncoder()['encode'](a),h);}catch(k){return logger['error']('Signature\x20verification\x20error:',k),![];}}async['toHtml'](a,b={}){const {title:title='WIP\x20Document',theme:theme='light'}=b,{payload:c,meta:d}=a,e=o=>{return o['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');},f=(o,p)=>{switch(p){case'html':return o;case'markdown':return o['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>')['replace'](/\*(.+?)\*/g,'<em>$1</em>')['replace'](/\n/g,'<br>');default:return e(o)['replace'](/\n/g,'<br>');}},g=theme==='dark'?'#1a1a1a':'#ffffff',h=theme==='dark'?'#e0e0e0':'#333333',i=theme==='dark'?'#444444':'#e0e0e0',j='#4caf50',k='#ff9800',l=await this['verify'](a),m=l['valid']?'<span\x20style=\x22background:\x20'+j+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>✓\x20Verified</span>':'<span\x20style=\x22background:\x20'+k+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>⚠\x20Tampered</span>',n=c['media']['map'](o=>'\x0a\x09\x09\x09\x09<div\x20style=\x22margin:\x2016px\x200;\x20border:\x201px\x20solid\x20'+i+';\x20border-radius:\x208px;\x20overflow:\x20hidden;\x22>\x0a\x09\x09\x09\x09\x09<img\x20src=\x22data:'+o['type']+';base64,'+o['data']+'\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20style=\x22max-width:\x20100%;\x20height:\x20auto;\x20display:\x20block;\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20alt=\x22'+e(o['filename']||o['id'])+'\x22\x20/>\x0a\x09\x09\x09\x09\x09'+(o['filename']?'<div\x20style=\x22padding:\x208px;\x20font-size:\x2012px;\x20color:\x20#666;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-top:\x201px\x20solid\x20'+i+';\x22>'+e(o['filename'])+'</div>':'')+'\x0a\x09\x09\x09\x09</div>\x0a\x09\x09\x09')['join']('');return'<!DOCTYPE\x20html>\x0a<html\x20lang=\x22en\x22>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20\x20\x20<title>'+e(title)+'</title>\x0a</head>\x0a<body\x20style=\x22margin:\x200;\x20padding:\x2020px;\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x20background:\x20'+g+';\x20color:\x20'+h+';\x20line-height:\x201.6;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22max-width:\x20800px;\x20margin:\x200\x20auto;\x20background:\x20'+(theme==='dark'?'#252525':'#ffffff')+';\x20border-radius:\x2012px;\x20box-shadow:\x200\x202px\x208px\x20rgba(0,0,0,0.1);\x20overflow:\x20hidden;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2020px\x2024px;\x20border-bottom:\x201px\x20solid\x20'+i+';\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h1\x20style=\x22margin:\x200;\x20font-size:\x2020px;\x20font-weight:\x20600;\x22>'+e(title)+'</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2012px;\x20color:\x20#666;\x20margin-top:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WIP\x20v'+d['version']+'\x20•\x20'+new Date(d['created'])['toLocaleString']()+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+m+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20#999;\x20margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-radius:\x204px;\x20font-style:\x20italic;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Important\x20Note:\x20This\x20page\x20is\x20for\x20document\x20browsing\x20and\x20verification\x20reference\x20only.\x20Please\x20verify\x20the\x20document\x20integrity\x20through\x20the\x20API\x20using\x20the\x20WIP\x20file.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['signatures']&&l['signatures']['length']>0x0?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a3f2a':'#e8f5e9')+';\x20border-radius:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20'+(theme==='dark'?'#81c784':'#2e7d32')+';\x20margin-bottom:\x204px;\x22>✓\x20Signature\x20Verification\x20('+l['signatures']['length']+'\x20signature'+(l['signatures']['length']>0x1?'s':'')+')</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+l['signatures']['map']((o,p)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2010px;\x20color:\x20'+h+';\x20margin-left:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(p+0x1)+'.\x20'+(o['address']?e(o['address']['slice'](0x0,0x14))+'...':'Unknown')+':\x20'+(o['valid']?'<span\x20style=\x22color:\x20#4caf50;\x22>✓\x20Valid</span>':'<span\x20style=\x22color:\x20#f44336;\x22>✗\x20Invalid</span>')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2016px;\x20line-height:\x201.8;\x20margin-bottom:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+f(c['content']['text'],c['content']['format'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+n+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2016px\x2024px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f8f9fa')+';\x20border-top:\x201px\x20solid\x20'+i+';\x20font-size:\x2011px;\x20color:\x20#666;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x20flex-wrap:\x20wrap;\x20gap:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>Hash:</strong>\x20<code\x20style=\x22background:\x20'+(theme==='dark'?'#333':'#e9ecef')+';\x20padding:\x202px\x206px;\x20border-radius:\x203px;\x22>'+e(d['hash'])+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['valid']?'Content\x20integrity\x20verified':'Verification\x20failed:\x20'+e(l['error']||'Unknown\x20error'))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a</body>\x0a</html>';}['stringify'](a,b=!![]){return b?JSON['stringify'](a,null,0x2):JSON['stringify'](a);}['parse'](a){try{const b=JSON['parse'](a);if(!b['wip']||!b['payload']||!b['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');return b;}catch(c){if(c instanceof WipError)throw c;throw new WipValidationError('Failed\x20to\x20parse\x20WIP\x20file:\x20'+c);}}async['load'](a){const b=await this['resourceLoader']['load'](a),c=new TextDecoder()['decode'](b);return this['parse'](c);}['getHash'](a){const b=a['meta']['hash'];if(b['includes'](':'))return b['split'](':')[0x1];return b;}['extractImages'](a,b){if(!a88c['existsSync'](b))a88c['mkdirSync'](b,{'recursive':!![]});const c=[];for(const d of a['payload']['media']){const e=getExtensionFromMimeType(d['type']),f=d['filename']||d['id']+'.'+e,g=a88b['join'](b,f),h=Buffer['from'](base64ToUint8Array(d['data']));a88c['writeFileSync'](g,h),c['push'](g);}return c;}['save'](a,b,c=!![]){const d=a88b['dirname'](b);if(!a88c['existsSync'](d))a88c['mkdirSync'](d,{'recursive':!![]});a88c['writeFileSync'](b,this['stringify'](a,c),'utf-8');}['getLimits'](){return{...this['limits']};}['setLimits'](a){this['limits']={...this['limits'],...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}};async function createWip(a,b){return new WIP(b)['create'](a);}async function verifyWip(a,b){if(b!==void 0x0){if(a['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,'')!==b['toLowerCase']()['replace'](/^sha256:/,''))return{'valid':![],'error':'Hash\x20mismatch'};}const c=await new WIP()['verify'](a);return{'valid':c['valid'],'error':c['error']};}async function wipToHtml(a,b){return new WIP()['toHtml'](a,b);}async function loadWip(a,b){return new WIP(b)['load'](a);}async function generate_wip(a,b){const c=new WIP(DEFAULT_LIMITS);let d=await c['create']({'text':a['markdown_text'],'textFormat':'markdown','images':a['images']});if(a['account']){const {Account:f}=await import('./account.mjs'),g=await f['Instance']()['get_address'](a['account']);if(!g)throw new WipValidationError('Account\x20not\x20found:\x20'+a['account']);const {signature:h,...i}=d['meta'],j=computeHash(canonicalizeJson(i)),k=await f['Instance']()['sign'](g,j),l=await f['Instance']()['get'](g,![],!![]);if(!l||!l['pubkey'])throw new WipValidationError('Cannot\x20get\x20public\x20key\x20for\x20account:\x20'+g);let m;if(l['pubkey']['startsWith']('0x')){const p=Buffer['from'](l['pubkey']['slice'](0x2),'hex');if(p['length']===0x382)m=p['slice'](0x1)['toString']('base64');else{if(p['length']===0x381)m=p['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+p['length']+',\x20expected\x20897\x20or\x20898\x20bytes');}}else m=l['pubkey'];const n={'value':Buffer['from'](k['slice'](0x2),'hex')['toString']('base64'),'publicKey':m,'algorithm':'Falcon512','address':g};let o;if(d['meta']['signature'])o=Array['isArray'](d['meta']['signature'])?[...d['meta']['signature'],n]:[d['meta']['signature'],n];else o=[n];d={...d,'meta':{...d['meta'],'signature':o}};}const e=b??a88b['join'](getWowokWorkspaceDir(),'wip_'+Date['now']()+'.wip');return c['save'](d,e,!![]),e;}async function verify_wip(a,b,c){const d=new WIP();let e;try{e=await d['load'](a);}catch(h){return{'valid':![],'error':'Failed\x20to\x20load\x20WIP\x20file:\x20'+h,'hashValid':![],'hasSignature':![]};}if(!e['wip']||!e['payload']||!e['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure','hashValid':![],'hasSignature':![]};if(e['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+e['meta']['type'],'hashValid':![],'hasSignature':!!e['meta']['signature']};if(b!==void 0x0){if(e['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,'')!==b['toLowerCase']()['replace'](/^sha256:/,''))return{'valid':![],'error':'Hash\x20mismatch','hashValid':![],'hasSignature':!!e['meta']['signature']};}if(c&&!e['meta']['signature'])return{'valid':![],'error':'Signature\x20required\x20but\x20WIP\x20file\x20has\x20no\x20signature','hashValid':!![],'hasSignature':![]};if(!(computeHash(canonicalizeJson({'wip':e['wip'],'payload':e['payload']}))===e['meta']['hash']))return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered','hashValid':![],'hasSignature':!!e['meta']['signature']};let f;const g=[];if(e['meta']['signature']){const {signature:i,...j}=e['meta'],k=computeHash(canonicalizeJson(j)),l=Array['isArray'](e['meta']['signature'])?e['meta']['signature']:[e['meta']['signature']];let m=!![];for(const n of l){const o=await d['verifySignature'](k,n['value'],n['publicKey'],n['algorithm']);let p;try{const {Falcon512PublicKey:q}=await import('../../publickey-CvXcTL6j.mjs')['then'](r=>r['n']);p=new q(n['publicKey'])['toWowAddress']();}catch{}g['push']({'publicKey':n['publicKey'],'address':p,'valid':o});if(!o)m=![];}f=m;if(!f)return{'valid':![],'error':'Signatures\x20from\x20the\x20following\x20addresses\x20are\x20invalid:\x20'+g['filter'](r=>!r['valid']&&r['address'])['map'](r=>r['address'])['join'](',\x20'),'hashValid':!![],'signatureValid':![],'hasSignature':!![],'signatures':g};}return{'valid':!![],'hashValid':!![],'signatureValid':f,'hasSignature':!!e['meta']['signature'],'signatures':g['length']>0x0?g:void 0x0};}async function sign_wip(a,b,c){const d=new WIP(),e=await d['load'](a);if(!e['wip']||!e['payload']||!e['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');if(e['meta']['type']!=='wip')throw new WipValidationError('Invalid\x20meta.type:\x20'+e['meta']['type']);const {Account:f}=await import('./account.mjs'),g=await f['Instance']()['get_address'](b);if(!g)throw new WipValidationError('Account\x20not\x20found:\x20'+b);const {signature:h,...i}=e['meta'],j=computeHash(canonicalizeJson(i)),k=await f['Instance']()['signData'](g,j);let l;const m=k['publicKey'];if(m['startsWith']('0x')){const r=Buffer['from'](m['slice'](0x2),'hex');if(r['length']===0x382)l=r['slice'](0x1)['toString']('base64');else{if(r['length']===0x381)l=r['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+r['length']+',\x20expected\x20897\x20or\x20898\x20bytes');}}else l=m;const n={'value':Buffer['from'](k['signature']['slice'](0x2),'hex')['toString']('base64'),'publicKey':l,'algorithm':'Falcon512','address':k['address']};let o;if(e['meta']['signature']){const s=Array['isArray'](e['meta']['signature'])?[...e['meta']['signature']]:[e['meta']['signature']],t=s['findIndex'](u=>u['publicKey']===l);if(t>=0x0)s[t]=n,o=s;else o=[...s,n];}else o=[n];const p={...e,'meta':{...e['meta'],'signature':o}};let q;if(c)q=c;else{const u=a88b['extname'](a),v=a88b['basename'](a,u);q=a88b['join'](getWowokWorkspaceDir(),'signed_'+v+u);}return d['save'](p,q,!![]),q;}async function wip2html(a,b={}){const c=await import('fs'),d=await import('path'),e=c['statSync'](a);if(e['isFile']()){const f=new WIP(),g=await f['load'](a),h=await f['toHtml'](g,b),i=d['extname'](a),j=d['basename'](a,i),k=b['outputPath']??d['join'](getWowokWorkspaceDir(),j+'.html'),l=d['dirname'](k);if(!c['existsSync'](l))c['mkdirSync'](l,{'recursive':!![]});return c['writeFileSync'](k,h),k;}else{if(e['isDirectory']()){const m=c['readdirSync'](a)['filter'](p=>p['endsWith']('.wip'));if(m['length']===0x0)throw new WipValidationError('No\x20.wip\x20files\x20found\x20in\x20directory:\x20'+a);const n=[],o=new WIP();for(const p of m){const q=d['join'](a,p),r=await o['load'](q),s=await o['toHtml'](r,b),t=p['replace']('.wip','.html'),u=b['outputPath']?d['join'](b['outputPath'],t):d['join'](getWowokWorkspaceDir(),t),v=d['dirname'](u);if(!c['existsSync'](v))c['mkdirSync'](v,{'recursive':!![]});c['writeFileSync'](u,s),n['push'](u);}return n;}else throw new WipValidationError('Invalid\x20path:\x20'+a);}}export{DEFAULT_LIMITS,WIP,WIP as default,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml};
|
|
1
|
+
import{getWowokWorkspaceDir}from'./util.mjs';import{r as a88a}from'../../logger-Da7dKX2V.mjs';import{sha256}from'@noble/hashes/sha2.js';import{bytesToHex}from'@noble/hashes/utils.js';import*as a88b from'path';import*as a88c from'fs';import*as a88d from'https';import*as a88e from'http';const logger=a88a('wip'),WIP_SCHEMA_URL='https://github.com/wowok-ai/docs/blob/main/WIP.md',WIP_VERSION='1.0.0',DEFAULT_LIMITS={'maxImageSize':0x2*0x400*0x400,'maxTotalSize':0xa*0x400*0x400,'maxImageCount':0xa,'maxTextLength':0x2710};var WipError=class extends Error{constructor(a){super(a),this['name']='WipError';}},WipValidationError=class extends WipError{constructor(a){super(a),this['name']='WipValidationError';}},WipSizeError=class extends WipError{constructor(a){super(a),this['name']='WipSizeError';}};function detectMimeType(a){if(a['length']>=0x4&&a[0x0]===0x89&&a[0x1]===0x50&&a[0x2]===0x4e&&a[0x3]===0x47)return'image/png';if(a['length']>=0x3&&a[0x0]===0xff&&a[0x1]===0xd8&&a[0x2]===0xff)return'image/jpeg';if(a['length']>=0x6&&a[0x0]===0x47&&a[0x1]===0x49&&a[0x2]===0x46)return'image/gif';if(a['length']>=0xc&&a[0x0]===0x52&&a[0x1]===0x49&&a[0x2]===0x46&&a[0x3]===0x46&&a[0x8]===0x57&&a[0x9]===0x45&&a[0xa]===0x42&&a[0xb]===0x50)return'image/webp';return null;}function uint8ArrayToBase64(a){let b='';const c=a['length'];for(let d=0x0;d<c;d++)b+=String['fromCharCode'](a[d]);return btoa(b);}function base64ToUint8Array(a){const b=atob(a),c=b['length'],d=new Uint8Array(c);for(let e=0x0;e<c;e++)d[e]=b['charCodeAt'](e);return d;}function canonicalizeJson(a){if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a;return'{'+Object['keys'](b)['sort']()['map'](c=>'\x22'+c+'\x22:'+canonicalizeJson(b[c]))['join'](',')+'}';}function computeHash(a){return bytesToHex(sha256(new TextEncoder()['encode'](a)));}function generateId(a){return a+'-'+Date['now']()['toString'](0x24)+'-'+Math['random']()['toString'](0x24)['substring'](0x2,0x8);}function getExtensionFromMimeType(a){return{'image/png':'png','image/jpeg':'jpg','image/gif':'gif','image/webp':'webp'}[a]||'bin';}var ResourceLoader=class{constructor(a){this['maxSize']=a;}async['load'](a){if(!a||a['trim']()==='')throw new WipError('WIP\x20file\x20path\x20cannot\x20be\x20empty');if(a['startsWith']('data:'))return this['loadFromDataUrl'](a);if(a['startsWith']('http://')||a['startsWith']('https://'))return this['loadFromNetwork'](a);return this['loadFromFile'](a);}['loadFromDataUrl'](a){const b=a['match'](/^data:image\/(\w+);base64,(.+)$/);if(!b)throw new WipValidationError('Invalid\x20data\x20URL\x20format:\x20'+a['substring'](0x0,0x32)+'...');const c=b[0x2];try{return base64ToUint8Array(c);}catch(d){throw new WipError('Failed\x20to\x20decode\x20data\x20URL:\x20'+d);}}async['loadFromNetwork'](a){return new Promise((b,c)=>{const d=setTimeout(()=>{c(new WipError('Network\x20timeout\x20while\x20fetching:\x20'+a));},0x7530),e=a['startsWith']('https:'),f=e?a88d:a88e,g={'headers':{'Accept':'application/json,*/*'}};if(e)g['rejectUnauthorized']=![];f['get'](a,g,h=>{clearTimeout(d);if(h['statusCode']!==0xc8){c(new WipError('Failed\x20to\x20fetch:\x20'+h['statusCode']+'\x20'+h['statusMessage']));return;}const i=h['headers']['content-length'];if(i&&parseInt(i)>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+i+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}const j=[];h['on']('data',k=>{j['push'](k);}),h['on']('end',()=>{const k=Buffer['concat'](j);if(k['length']>this['maxSize']){c(new WipSizeError('Resource\x20from\x20'+a+'\x20size\x20('+k['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)'));return;}b(new Uint8Array(k));}),h['on']('error',k=>{c(new WipError('Network\x20error:\x20'+k['message']));});})['on']('error',h=>{clearTimeout(d),c(new WipError('Network\x20error:\x20'+h['message']));});});}['loadFromFile'](a){const b=a88b['resolve'](a);if(!a88c['existsSync'](b))throw new WipError('File\x20not\x20found:\x20'+b);const c=a88c['statSync'](b);if(!c['isFile']())throw new WipError('Path\x20is\x20not\x20a\x20file:\x20'+b);if(c['size']>this['maxSize'])throw new WipSizeError('File\x20'+b+'\x20size\x20('+c['size']+'\x20bytes)\x20exceeds\x20limit\x20('+this['maxSize']+'\x20bytes)');const d=a88c['readFileSync'](b);return new Uint8Array(d);}},WIP=class{constructor(a={}){this['limits']={...DEFAULT_LIMITS,...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}async['create'](a){if(a['text']['length']>this['limits']['maxTextLength'])throw new WipSizeError('Text\x20length\x20('+a['text']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxTextLength']+')');const b=[];if(a['images']&&a['images']['length']>0x0){if(a['images']['length']>this['limits']['maxImageCount'])throw new WipSizeError('Image\x20count\x20('+a['images']['length']+')\x20exceeds\x20limit\x20('+this['limits']['maxImageCount']+')');for(let h=0x0;h<a['images']['length'];h++){const j=await this['processImage'](a['images'][h],h);b['push'](j);}}const c={'content':{'text':a['text'],'format':a['textFormat']||'plain'},'media':b},d=computeHash(canonicalizeJson({'wip':WIP_SCHEMA_URL,'payload':c})),e={'type':'wip','version':WIP_VERSION,'created':new Date()['toISOString'](),'hash':d,'algorithm':'sha256'};if(a['signKeyPair']){const {signature:k,...l}=e,m=computeHash(canonicalizeJson(l));e['signature']={'value':await this['sign'](m,a['signKeyPair']['privateKey'],a['signAlgorithm']||'Falcon512'),'publicKey':a['signKeyPair']['publicKey'],'algorithm':a['signAlgorithm']||'Falcon512'};}const f={'wip':WIP_SCHEMA_URL,'payload':c,'meta':e},g=JSON['stringify'](f);if(g['length']>this['limits']['maxTotalSize'])throw new WipSizeError('Total\x20WIP\x20file\x20size\x20('+g['length']+'\x20bytes)\x20exceeds\x20limit\x20('+this['limits']['maxTotalSize']+'\x20bytes)');return f;}async['processImage'](a,b){const c=await this['resourceLoader']['load'](a['source']),d=detectMimeType(c);if(!d)throw new WipValidationError('Unsupported\x20image\x20format:\x20'+a['source']);let e=a['filename'];if(!e){if(a['source']['startsWith']('http')){const f=new URL(a['source'])['pathname'];e=f['substring'](f['lastIndexOf']('/')+0x1)||'image-'+b;}else e=a['source']['substring'](a['source']['lastIndexOf']('/')+0x1)||'image-'+b;}return{'id':a['id']||generateId('img'),'type':d,'data':uint8ArrayToBase64(c),'filename':e};}async['sign'](a,b,c){if(c!=='Falcon512')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+c);const {Falcon512Keypair:d}=await import('../../keypairs/falcon512/index.mjs');return uint8ArrayToBase64(await d['fromSecretKey'](b)['sign'](new TextEncoder()['encode'](a)));}async['verify'](a){try{if(!a['wip']||!a['payload']||!a['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure'};if(a['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+a['meta']['type']};if(computeHash(canonicalizeJson({'wip':a['wip'],'payload':a['payload']}))!==a['meta']['hash'])return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered'};const b=[];if(a['meta']['signature']){const {signature:c,...d}=a['meta'],e=computeHash(canonicalizeJson(d)),f=Array['isArray'](a['meta']['signature'])?a['meta']['signature']:[a['meta']['signature']];for(const g of f){const h=await this['verifySignature'](e,g['value'],g['publicKey'],g['algorithm']);b['push']({'address':g['address'],'valid':h});if(!h)return{'valid':![],'error':'Invalid\x20signature','signatures':b};}}return{'valid':!![],'signatures':b};}catch(i){return{'valid':![],'error':'Verification\x20error:\x20'+i};}}async['verifySignature'](a,b,c,d){if(d!=='Falcon512')throw new WipError('Unsupported\x20signature\x20algorithm:\x20'+d);try{const {Falcon512PublicKey:e}=await import('../../publickey-CvXcTL6j.mjs')['then'](i=>i['n']);let f;if(c['startsWith']('0x')){const i=Buffer['from'](c['slice'](0x2),'hex');if(i['length']===0x382)f=i['slice'](0x1);else{if(i['length']===0x381)f=i;else f=i;}}else try{const j=Buffer['from'](c,'base64');if(j['length']===0x382)f=j['slice'](0x1);else f=j;}catch{f=Buffer['from'](c,'base64');}const g=new e(f),h=Uint8Array['from'](Buffer['from'](b,'base64'));return await g['verify'](new TextEncoder()['encode'](a),h);}catch(k){return logger['error']('Signature\x20verification\x20error:',k),![];}}async['toHtml'](a,b={}){const {title:title='WIP\x20Document',theme:theme='light'}=b,{payload:c,meta:d}=a,e=o=>{return o['replace'](/&/g,'&')['replace'](/</g,'<')['replace'](/>/g,'>')['replace'](/"/g,'"')['replace'](/'/g,''');},f=(o,p)=>{switch(p){case'html':return o;case'markdown':return o['replace'](/\*\*(.+?)\*\*/g,'<strong>$1</strong>')['replace'](/\*(.+?)\*/g,'<em>$1</em>')['replace'](/\n/g,'<br>');default:return e(o)['replace'](/\n/g,'<br>');}},g=theme==='dark'?'#1a1a1a':'#ffffff',h=theme==='dark'?'#e0e0e0':'#333333',i=theme==='dark'?'#444444':'#e0e0e0',j='#4caf50',k='#ff9800',l=await this['verify'](a),m=l['valid']?'<span\x20style=\x22background:\x20'+j+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>✓\x20Verified</span>':'<span\x20style=\x22background:\x20'+k+';\x20color:\x20white;\x20padding:\x204px\x208px;\x20border-radius:\x204px;\x20font-size:\x2012px;\x22>⚠\x20Tampered</span>',n=c['media']['map'](o=>'\x0a\x09\x09\x09\x09<div\x20style=\x22margin:\x2016px\x200;\x20border:\x201px\x20solid\x20'+i+';\x20border-radius:\x208px;\x20overflow:\x20hidden;\x22>\x0a\x09\x09\x09\x09\x09<img\x20src=\x22data:'+o['type']+';base64,'+o['data']+'\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20style=\x22max-width:\x20100%;\x20height:\x20auto;\x20display:\x20block;\x22\x20\x0a\x09\x09\x09\x09\x09\x20\x20\x20\x20\x20alt=\x22'+e(o['filename']||o['id'])+'\x22\x20/>\x0a\x09\x09\x09\x09\x09'+(o['filename']?'<div\x20style=\x22padding:\x208px;\x20font-size:\x2012px;\x20color:\x20#666;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-top:\x201px\x20solid\x20'+i+';\x22>'+e(o['filename'])+'</div>':'')+'\x0a\x09\x09\x09\x09</div>\x0a\x09\x09\x09')['join']('');return'<!DOCTYPE\x20html>\x0a<html\x20lang=\x22en\x22>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20\x20\x20<title>'+e(title)+'</title>\x0a</head>\x0a<body\x20style=\x22margin:\x200;\x20padding:\x2020px;\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x20background:\x20'+g+';\x20color:\x20'+h+';\x20line-height:\x201.6;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22max-width:\x20800px;\x20margin:\x200\x20auto;\x20background:\x20'+(theme==='dark'?'#252525':'#ffffff')+';\x20border-radius:\x2012px;\x20box-shadow:\x200\x202px\x208px\x20rgba(0,0,0,0.1);\x20overflow:\x20hidden;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2020px\x2024px;\x20border-bottom:\x201px\x20solid\x20'+i+';\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h1\x20style=\x22margin:\x200;\x20font-size:\x2020px;\x20font-weight:\x20600;\x22>'+e(title)+'</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2012px;\x20color:\x20#666;\x20margin-top:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WIP\x20v'+d['version']+'\x20•\x20'+new Date(d['created'])['toLocaleString']()+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+m+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20#999;\x20margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f5f5f5')+';\x20border-radius:\x204px;\x20font-style:\x20italic;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Important\x20Note:\x20This\x20page\x20is\x20for\x20document\x20browsing\x20and\x20verification\x20reference\x20only.\x20Please\x20verify\x20the\x20document\x20integrity\x20through\x20the\x20API\x20using\x20the\x20WIP\x20file.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['signatures']&&l['signatures']['length']>0x0?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:\x2012px;\x20padding:\x208px;\x20background:\x20'+(theme==='dark'?'#2a3f2a':'#e8f5e9')+';\x20border-radius:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2011px;\x20color:\x20'+(theme==='dark'?'#81c784':'#2e7d32')+';\x20margin-bottom:\x204px;\x22>✓\x20Signature\x20Verification\x20('+l['signatures']['length']+'\x20signature'+(l['signatures']['length']>0x1?'s':'')+')</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+l['signatures']['map']((o,p)=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2010px;\x20color:\x20'+h+';\x20margin-left:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(p+0x1)+'.\x20'+(o['address']?e(o['address']['slice'](0x0,0x14))+'...':'Unknown')+':\x20'+(o['valid']?'<span\x20style=\x22color:\x20#4caf50;\x22>✓\x20Valid</span>':'<span\x20style=\x22color:\x20#f44336;\x22>✗\x20Invalid</span>')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2016px;\x20line-height:\x201.8;\x20margin-bottom:\x2024px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+f(c['content']['text'],c['content']['format'])+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+n+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:\x2016px\x2024px;\x20background:\x20'+(theme==='dark'?'#2a2a2a':'#f8f9fa')+';\x20border-top:\x201px\x20solid\x20'+i+';\x20font-size:\x2011px;\x20color:\x20#666;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x20flex-wrap:\x20wrap;\x20gap:\x208px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>Hash:</strong>\x20<code\x20style=\x22background:\x20'+(theme==='dark'?'#333':'#e9ecef')+';\x20padding:\x202px\x206px;\x20border-radius:\x203px;\x22>'+e(d['hash'])+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(l['valid']?'Content\x20integrity\x20verified':'Verification\x20failed:\x20'+e(l['error']||'Unknown\x20error'))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a</body>\x0a</html>';}['stringify'](a,b=!![]){return b?JSON['stringify'](a,null,0x2):JSON['stringify'](a);}['parse'](a){try{const b=JSON['parse'](a);if(!b['wip']||!b['payload']||!b['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');return b;}catch(c){if(c instanceof WipError)throw c;throw new WipValidationError('Failed\x20to\x20parse\x20WIP\x20file:\x20'+c);}}async['load'](a){const b=await this['resourceLoader']['load'](a),c=new TextDecoder()['decode'](b),d=c['slice'](0x0,0x40)['trimStart']()[0x0];if(d!=='{')throw new WipValidationError('The\x20resource\x20at\x20\x22'+a+'\x22\x20is\x20not\x20a\x20WIP\x20JSON\x20file\x20(starts\x20with\x20\x27'+(d??'<empty>')+'\x27).\x20If\x20this\x20is\x20a\x20URL,\x20the\x20server\x20may\x20have\x20returned\x20an\x20HTML\x20page\x20(e.g.\x20a\x20404/error\x20page)\x20—\x20verify\x20the\x20link\x20serves\x20the\x20raw\x20.wip\x20file.');return this['parse'](c);}['getHash'](a){const b=a['meta']['hash'];if(b['includes'](':'))return b['split'](':')[0x1];return b;}['extractImages'](a,b){if(!a88c['existsSync'](b))a88c['mkdirSync'](b,{'recursive':!![]});const c=[];for(const d of a['payload']['media']){const e=getExtensionFromMimeType(d['type']),f=d['filename']||d['id']+'.'+e,g=a88b['join'](b,f),h=Buffer['from'](base64ToUint8Array(d['data']));a88c['writeFileSync'](g,h),c['push'](g);}return c;}['save'](a,b,c=!![]){const d=a88b['dirname'](b);if(!a88c['existsSync'](d))a88c['mkdirSync'](d,{'recursive':!![]});a88c['writeFileSync'](b,this['stringify'](a,c),'utf-8');}['getLimits'](){return{...this['limits']};}['setLimits'](a){this['limits']={...this['limits'],...a},this['resourceLoader']=new ResourceLoader(this['limits']['maxImageSize']);}};async function createWip(a,b){return new WIP(b)['create'](a);}async function verifyWip(a,b){if(b!==void 0x0){if(a['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,'')!==b['toLowerCase']()['replace'](/^sha256:/,''))return{'valid':![],'error':'Hash\x20mismatch'};}const c=await new WIP()['verify'](a);return{'valid':c['valid'],'error':c['error']};}async function wipToHtml(a,b){return new WIP()['toHtml'](a,b);}async function loadWip(a,b){return new WIP(b)['load'](a);}async function generate_wip(a,b){const c=new WIP(DEFAULT_LIMITS);let d=await c['create']({'text':a['markdown_text'],'textFormat':'markdown','images':a['images']});if(a['account']){const {Account:f}=await import('./account.mjs'),g=await f['Instance']()['get_address'](a['account']);if(!g)throw new WipValidationError('Account\x20not\x20found:\x20'+a['account']);const {signature:h,...i}=d['meta'],j=computeHash(canonicalizeJson(i)),k=await f['Instance']()['sign'](g,j),l=await f['Instance']()['get'](g,![],!![]);if(!l||!l['pubkey'])throw new WipValidationError('Cannot\x20get\x20public\x20key\x20for\x20account:\x20'+g);let m;if(l['pubkey']['startsWith']('0x')){const p=Buffer['from'](l['pubkey']['slice'](0x2),'hex');if(p['length']===0x382)m=p['slice'](0x1)['toString']('base64');else{if(p['length']===0x381)m=p['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+p['length']+',\x20expected\x20897\x20or\x20898\x20bytes');}}else m=l['pubkey'];const n={'value':Buffer['from'](k['slice'](0x2),'hex')['toString']('base64'),'publicKey':m,'algorithm':'Falcon512','address':g};let o;if(d['meta']['signature'])o=Array['isArray'](d['meta']['signature'])?[...d['meta']['signature'],n]:[d['meta']['signature'],n];else o=[n];d={...d,'meta':{...d['meta'],'signature':o}};}const e=b??a88b['join'](getWowokWorkspaceDir(),'wip_'+Date['now']()+'.wip');return c['save'](d,e,!![]),e;}async function verify_wip(a,b,c){const d=new WIP();let e;try{e=await d['load'](a);}catch(h){return{'valid':![],'error':'Failed\x20to\x20load\x20WIP\x20file:\x20'+h,'hashValid':![],'hasSignature':![]};}if(!e['wip']||!e['payload']||!e['meta'])return{'valid':![],'error':'Invalid\x20WIP\x20file\x20structure','hashValid':![],'hasSignature':![]};if(e['meta']['type']!=='wip')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+e['meta']['type'],'hashValid':![],'hasSignature':!!e['meta']['signature']};if(b!==void 0x0){if(e['meta']['hash']['toLowerCase']()['replace'](/^sha256:/,'')!==b['toLowerCase']()['replace'](/^sha256:/,''))return{'valid':![],'error':'Hash\x20mismatch','hashValid':![],'hasSignature':!!e['meta']['signature']};}if(c&&!e['meta']['signature'])return{'valid':![],'error':'Signature\x20required\x20but\x20WIP\x20file\x20has\x20no\x20signature','hashValid':!![],'hasSignature':![]};if(!(computeHash(canonicalizeJson({'wip':e['wip'],'payload':e['payload']}))===e['meta']['hash']))return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered','hashValid':![],'hasSignature':!!e['meta']['signature']};let f;const g=[];if(e['meta']['signature']){const {signature:i,...j}=e['meta'],k=computeHash(canonicalizeJson(j)),l=Array['isArray'](e['meta']['signature'])?e['meta']['signature']:[e['meta']['signature']];let m=!![];for(const n of l){const o=await d['verifySignature'](k,n['value'],n['publicKey'],n['algorithm']);let p;try{const {Falcon512PublicKey:q}=await import('../../publickey-CvXcTL6j.mjs')['then'](r=>r['n']);p=new q(n['publicKey'])['toWowAddress']();}catch{}g['push']({'publicKey':n['publicKey'],'address':p,'valid':o});if(!o)m=![];}f=m;if(!f)return{'valid':![],'error':'Signatures\x20from\x20the\x20following\x20addresses\x20are\x20invalid:\x20'+g['filter'](r=>!r['valid']&&r['address'])['map'](r=>r['address'])['join'](',\x20'),'hashValid':!![],'signatureValid':![],'hasSignature':!![],'signatures':g};}return{'valid':!![],'hashValid':!![],'signatureValid':f,'hasSignature':!!e['meta']['signature'],'signatures':g['length']>0x0?g:void 0x0};}async function sign_wip(a,b,c){const d=new WIP(),e=await d['load'](a);if(!e['wip']||!e['payload']||!e['meta'])throw new WipValidationError('Invalid\x20WIP\x20file\x20structure');if(e['meta']['type']!=='wip')throw new WipValidationError('Invalid\x20meta.type:\x20'+e['meta']['type']);const {Account:f}=await import('./account.mjs'),g=await f['Instance']()['get_address'](b);if(!g)throw new WipValidationError('Account\x20not\x20found:\x20'+b);const {signature:h,...i}=e['meta'],j=computeHash(canonicalizeJson(i)),k=await f['Instance']()['signData'](g,j);let l;const m=k['publicKey'];if(m['startsWith']('0x')){const r=Buffer['from'](m['slice'](0x2),'hex');if(r['length']===0x382)l=r['slice'](0x1)['toString']('base64');else{if(r['length']===0x381)l=r['toString']('base64');else throw new WipValidationError('Invalid\x20public\x20key\x20length:\x20'+r['length']+',\x20expected\x20897\x20or\x20898\x20bytes');}}else l=m;const n={'value':Buffer['from'](k['signature']['slice'](0x2),'hex')['toString']('base64'),'publicKey':l,'algorithm':'Falcon512','address':k['address']};let o;if(e['meta']['signature']){const s=Array['isArray'](e['meta']['signature'])?[...e['meta']['signature']]:[e['meta']['signature']],t=s['findIndex'](u=>u['publicKey']===l);if(t>=0x0)s[t]=n,o=s;else o=[...s,n];}else o=[n];const p={...e,'meta':{...e['meta'],'signature':o}};let q;if(c)q=c;else{const u=a88b['extname'](a),v=a88b['basename'](a,u);q=a88b['join'](getWowokWorkspaceDir(),'signed_'+v+u);}return d['save'](p,q,!![]),q;}async function wip2html(a,b={}){const c=await import('fs'),d=await import('path'),e=c['statSync'](a);if(e['isFile']()){const f=new WIP(),g=await f['load'](a),h=await f['toHtml'](g,b),i=d['extname'](a),j=d['basename'](a,i),k=b['outputPath']??d['join'](getWowokWorkspaceDir(),j+'.html'),l=d['dirname'](k);if(!c['existsSync'](l))c['mkdirSync'](l,{'recursive':!![]});return c['writeFileSync'](k,h),k;}else{if(e['isDirectory']()){const m=c['readdirSync'](a)['filter'](p=>p['endsWith']('.wip'));if(m['length']===0x0)throw new WipValidationError('No\x20.wip\x20files\x20found\x20in\x20directory:\x20'+a);const n=[],o=new WIP();for(const p of m){const q=d['join'](a,p),r=await o['load'](q),s=await o['toHtml'](r,b),t=p['replace']('.wip','.html'),u=b['outputPath']?d['join'](b['outputPath'],t):d['join'](getWowokWorkspaceDir(),t),v=d['dirname'](u);if(!c['existsSync'](v))c['mkdirSync'](v,{'recursive':!![]});c['writeFileSync'](u,s),n['push'](u);}return n;}else throw new WipValidationError('Invalid\x20path:\x20'+a);}}export{DEFAULT_LIMITS,WIP,WIP as default,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { An as BuiltAttachmentEnvelope, Bn as extOf, Fn as ReadPresentationOptions, Gn as sniffKindAndMime, Hn as presentMessageForRead, In as SniffOptions, Ln as assertZipMagic, Mn as ENVELOPE_MAX_TOTAL_BYTES, Nn as MANIFEST_ENTRY, Pn as PAYLOAD_PREFIX, Rn as buildAttachmentEnvelope, Un as presentMessagesForRead, Vn as parseAttachmentEnvelope, Wn as sanitizeFileName, jn as ENVELOPE_MAX_ENTRIES, kn as BuildAttachmentEnvelopeInput, zn as describeAttachmentFromMetadata } from "../../index-
|
|
1
|
+
import { An as BuiltAttachmentEnvelope, Bn as extOf, Fn as ReadPresentationOptions, Gn as sniffKindAndMime, Hn as presentMessageForRead, In as SniffOptions, Ln as assertZipMagic, Mn as ENVELOPE_MAX_TOTAL_BYTES, Nn as MANIFEST_ENTRY, Pn as PAYLOAD_PREFIX, Rn as buildAttachmentEnvelope, Un as presentMessagesForRead, Vn as parseAttachmentEnvelope, Wn as sanitizeFileName, jn as ENVELOPE_MAX_ENTRIES, kn as BuildAttachmentEnvelopeInput, zn as describeAttachmentFromMetadata } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { BuildAttachmentEnvelopeInput, BuiltAttachmentEnvelope, ENVELOPE_MAX_ENTRIES, ENVELOPE_MAX_TOTAL_BYTES, MANIFEST_ENTRY, PAYLOAD_PREFIX, ReadPresentationOptions, SniffOptions, assertZipMagic, buildAttachmentEnvelope, describeAttachmentFromMetadata, extOf, parseAttachmentEnvelope, presentMessageForRead, presentMessagesForRead, sanitizeFileName, sniffKindAndMime };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $n as SettingsRequest, An as BuiltAttachmentEnvelope, Ar as Attachment, Bn as extOf, Cr as watch_messages, Ei as PullAccountResult, Er as Messenger, Fn as ReadPresentationOptions, Gn as sniffKindAndMime, Gr as DEFAULT_MESSENGER_CONFIG, Hn as presentMessageForRead, Hr as ConversationInfo, Ii as SendMessageResult, In as SniffOptions, Jn as FriendslistRequest, Kn as BlacklistRequest, Kr as DEFAULT_QUERY_LIMIT, Ln as assertZipMagic, Mn as ENVELOPE_MAX_TOTAL_BYTES, Mr as AttachmentKind, Ni as SendAttachmentOptions, Nn as MANIFEST_ENTRY, Nr as AttachmentManifest, Pn as PAYLOAD_PREFIX, Qn as GuardlistResponse, Rn as buildAttachmentEnvelope, Sr as watch_conversations, Tr as MessengerManager, Un as presentMessagesForRead, Ur as ConversationsFilter, Vn as parseAttachmentEnvelope, Wn as sanitizeFileName, Xn as GuardParam, Yn as FriendslistResponse, Zn as GuardlistRequest, _i as MessageType, _r as send_file, ai as MAX_QUERY_LIMIT, ar as extract_zip_messages, bi as MessengerErrorCode, br as sign_wts, ci as Message, cr as getMessengerManager, di as MessageFilter, dr as mark_conversation_as_viewed, er as SettingsResponse, fr as mark_messages_as_viewed, gr as search_messages, hi as MessageStatus, hr as pull_messages, ir as extractZipFromPlaintext, jn as ENVELOPE_MAX_ENTRIES, jr as AttachmentDescriptor, kn as BuildAttachmentEnvelopeInput, li as MessageContentType, lr as get_attachment, mr as proof_message, na as WTS_FILE_BYTES_LIMIT, nr as emergency_pull, oa as WtsFileResult, or as friendslist, pi as MessageListResult, pr as peer_registered, qn as BlacklistResponse, qr as DecryptedMessage, ra as WTS_MAX_MESSAGE_COUNT, rr as export_attachment, sa as WtsGenerationParams, sr as generate_wts, tr as blacklist, ui as MessageDirection, ur as guardlist, va as ZipContentType, vi as MessengerConfig, vr as send_message, wr as wts2html, xi as NORMAL_MESSAGE_BYTES_LIMIT, xr as verify_wts, ya as ZipMetadata, yi as MessengerError, yr as settings, zn as describeAttachmentFromMetadata } from "../../index-
|
|
1
|
+
import { $n as SettingsRequest, An as BuiltAttachmentEnvelope, Ar as Attachment, Bn as extOf, Cr as watch_messages, Ei as PullAccountResult, Er as Messenger, Fn as ReadPresentationOptions, Gn as sniffKindAndMime, Gr as DEFAULT_MESSENGER_CONFIG, Hn as presentMessageForRead, Hr as ConversationInfo, Ii as SendMessageResult, In as SniffOptions, Jn as FriendslistRequest, Kn as BlacklistRequest, Kr as DEFAULT_QUERY_LIMIT, Ln as assertZipMagic, Mn as ENVELOPE_MAX_TOTAL_BYTES, Mr as AttachmentKind, Ni as SendAttachmentOptions, Nn as MANIFEST_ENTRY, Nr as AttachmentManifest, Pn as PAYLOAD_PREFIX, Qn as GuardlistResponse, Rn as buildAttachmentEnvelope, Sr as watch_conversations, Tr as MessengerManager, Un as presentMessagesForRead, Ur as ConversationsFilter, Vn as parseAttachmentEnvelope, Wn as sanitizeFileName, Xn as GuardParam, Yn as FriendslistResponse, Zn as GuardlistRequest, _i as MessageType, _r as send_file, ai as MAX_QUERY_LIMIT, ar as extract_zip_messages, bi as MessengerErrorCode, br as sign_wts, ci as Message, cr as getMessengerManager, di as MessageFilter, dr as mark_conversation_as_viewed, er as SettingsResponse, fr as mark_messages_as_viewed, gr as search_messages, hi as MessageStatus, hr as pull_messages, ir as extractZipFromPlaintext, jn as ENVELOPE_MAX_ENTRIES, jr as AttachmentDescriptor, kn as BuildAttachmentEnvelopeInput, li as MessageContentType, lr as get_attachment, mr as proof_message, na as WTS_FILE_BYTES_LIMIT, nr as emergency_pull, oa as WtsFileResult, or as friendslist, pi as MessageListResult, pr as peer_registered, qn as BlacklistResponse, qr as DecryptedMessage, ra as WTS_MAX_MESSAGE_COUNT, rr as export_attachment, sa as WtsGenerationParams, sr as generate_wts, tr as blacklist, ui as MessageDirection, ur as guardlist, va as ZipContentType, vi as MessengerConfig, vr as send_message, wr as wts2html, xi as NORMAL_MESSAGE_BYTES_LIMIT, xr as verify_wts, ya as ZipMetadata, yi as MessengerError, yr as settings, zn as describeAttachmentFromMetadata } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { type Attachment, type AttachmentDescriptor, type AttachmentKind, type AttachmentManifest, BlacklistRequest, BlacklistResponse, BuildAttachmentEnvelopeInput, BuiltAttachmentEnvelope, type ConversationInfo, type ConversationsFilter, DEFAULT_MESSENGER_CONFIG, DEFAULT_QUERY_LIMIT, type DecryptedMessage, ENVELOPE_MAX_ENTRIES, ENVELOPE_MAX_TOTAL_BYTES, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, MANIFEST_ENTRY, MAX_QUERY_LIMIT, type Message, type MessageContentType, MessageDirection, type MessageFilter, type MessageListResult, MessageStatus, MessageType, Messenger, type MessengerConfig, MessengerError, MessengerErrorCode, MessengerManager, NORMAL_MESSAGE_BYTES_LIMIT, PAYLOAD_PREFIX, type PullAccountResult, ReadPresentationOptions, type SendAttachmentOptions, type SendMessageResult, SettingsRequest, SettingsResponse, SniffOptions, WTS_FILE_BYTES_LIMIT, WTS_MAX_MESSAGE_COUNT, type WtsFileResult, type WtsGenerationParams, type ZipContentType, type ZipMetadata, assertZipMagic, blacklist, buildAttachmentEnvelope, describeAttachmentFromMetadata, emergency_pull, export_attachment, extOf, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, get_attachment, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, parseAttachmentEnvelope, peer_registered, presentMessageForRead, presentMessagesForRead, proof_message, pull_messages, sanitizeFileName, search_messages, send_file, send_message, settings, sign_wts, sniffKindAndMime, 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-bXs3igIA.mjs';import{ENVELOPE_MAX_ENTRIES,ENVELOPE_MAX_TOTAL_BYTES,MANIFEST_ENTRY,PAYLOAD_PREFIX,assertZipMagic,buildAttachmentEnvelope,describeAttachmentFromMetadata,extOf,parseAttachmentEnvelope,presentMessageForRead,presentMessagesForRead,sanitizeFileName,sniffKindAndMime}from'./attachment.mjs';import{C as a91b,S as a91c,T as a91d,_ as a91e,a as a91f,b as a91g,c as a91h,d as a91i,f as a91j,g as a91k,h as a91l,i as a91m,l as a91n,m as a91o,n as a91p,o as a91q,p as a91r,r as a91s,s as a91t,t as a91u,u as a91v,v as a91w,w as a91x,x as a91y,y as a91z}from'../../messenger-api-3u9c6Lit.mjs';export{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,ENVELOPE_MAX_ENTRIES,ENVELOPE_MAX_TOTAL_BYTES,MANIFEST_ENTRY,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,a91a as Messenger,MessengerError,MessengerErrorCode,a91d as MessengerManager,NORMAL_MESSAGE_BYTES_LIMIT,PAYLOAD_PREFIX,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,assertZipMagic,a91u as blacklist,buildAttachmentEnvelope,describeAttachmentFromMetadata,a91p as emergency_pull,a91s as export_attachment,extOf,a91m as extractZipFromPlaintext,a91f as extract_zip_messages,a91q as friendslist,a91t as generate_wts,a91h as getMessengerManager,a91n as get_attachment,a91v as guardlist,a91i as mark_conversation_as_viewed,a91j as mark_messages_as_viewed,parseAttachmentEnvelope,a91r as peer_registered,presentMessageForRead,presentMessagesForRead,a91o as proof_message,a91l as pull_messages,sanitizeFileName,a91k as search_messages,a91e as send_file,a91w as send_message,a91z as settings,a91g as sign_wts,sniffKindAndMime,a91y as verify_wts,a91c as watch_conversations,a91b as watch_messages,a91x as wts2html};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $n as SettingsRequest, Cr as watch_messages, Jn as FriendslistRequest, Kn as BlacklistRequest, Qn as GuardlistResponse, Sr as watch_conversations, Xn as GuardParam, Yn as FriendslistResponse, Zn as GuardlistRequest, _r as send_file, ar as extract_zip_messages, br as sign_wts, cr as getMessengerManager, dr as mark_conversation_as_viewed, er as SettingsResponse, fr as mark_messages_as_viewed, gr as search_messages, hr as pull_messages, ir as extractZipFromPlaintext, lr as get_attachment, mr as proof_message, nr as emergency_pull, or as friendslist, pr as peer_registered, qn as BlacklistResponse, rr as export_attachment, sr as generate_wts, tr as blacklist, ur as guardlist, vr as send_message, wr as wts2html, xr as verify_wts, yr as settings } from "../../index-
|
|
1
|
+
import { $n as SettingsRequest, Cr as watch_messages, Jn as FriendslistRequest, Kn as BlacklistRequest, Qn as GuardlistResponse, Sr as watch_conversations, Xn as GuardParam, Yn as FriendslistResponse, Zn as GuardlistRequest, _r as send_file, ar as extract_zip_messages, br as sign_wts, cr as getMessengerManager, dr as mark_conversation_as_viewed, er as SettingsResponse, fr as mark_messages_as_viewed, gr as search_messages, hr as pull_messages, ir as extractZipFromPlaintext, lr as get_attachment, mr as proof_message, nr as emergency_pull, or as friendslist, pr as peer_registered, qn as BlacklistResponse, rr as export_attachment, sr as generate_wts, tr as blacklist, ur as guardlist, vr as send_message, wr as wts2html, xr as verify_wts, yr as settings } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { BlacklistRequest, BlacklistResponse, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, SettingsRequest, SettingsResponse, blacklist, emergency_pull, export_attachment, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, get_attachment, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, peer_registered, proof_message, pull_messages, search_messages, send_file, send_message, settings, sign_wts, verify_wts, watch_conversations, watch_messages, wts2html };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as a92a,S as a92b,_ as a92c,a as a92d,b as a92e,c as a92f,d as a92g,f as a92h,g as a92i,h as a92j,i as a92k,l as a92l,m as a92m,n as a92n,o as a92o,p as a92p,r as a92q,s as a92r,t as a92s,u as a92t,v as a92u,w as a92v,x as a92w,y as a92x}from'../../messenger-api-
|
|
1
|
+
import{C as a92a,S as a92b,_ as a92c,a as a92d,b as a92e,c as a92f,d as a92g,f as a92h,g as a92i,h as a92j,i as a92k,l as a92l,m as a92m,n as a92n,o as a92o,p as a92p,r as a92q,s as a92r,t as a92s,u as a92t,v as a92u,w as a92v,x as a92w,y as a92x}from'../../messenger-api-3u9c6Lit.mjs';export{a92s as blacklist,a92n as emergency_pull,a92q as export_attachment,a92k as extractZipFromPlaintext,a92d as extract_zip_messages,a92o as friendslist,a92r as generate_wts,a92f as getMessengerManager,a92l as get_attachment,a92t as guardlist,a92g as mark_conversation_as_viewed,a92h as mark_messages_as_viewed,a92p as peer_registered,a92m as proof_message,a92j as pull_messages,a92i as search_messages,a92c as send_file,a92u as send_message,a92x as settings,a92e as sign_wts,a92w as verify_wts,a92b as watch_conversations,a92a as watch_messages,a92v as wts2html};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Er as Messenger } from "../../index-
|
|
1
|
+
import { Er as Messenger } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { Messenger };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as a93a}from'../../messenger-
|
|
1
|
+
import{t as a93a}from'../../messenger-bXs3igIA.mjs';export{a93a as Messenger};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Vi as SessionState, ci as Message, mi as MessageProofRecord, vi as MessengerConfig } from "../../index-
|
|
1
|
+
import { Vi as SessionState, ci as Message, mi as MessageProofRecord, vi as MessengerConfig } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
import Database from "libsql";
|
|
3
3
|
|
|
4
4
|
//#region src/w/messenger/storage.d.ts
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $i as UpdateSettingsRequest, $r as GetBundleParams, Ai as RemoveListRequest, Ar as Attachment, Bi as ServerRegisterResponse, Br as ContactLists, Ci as PlaintextMessage, Di as PullMessagesResponse, Dr as AddGuardListRequest, Ei as PullAccountResult, Fi as SendMessageResponse, Fr as CHAIN_PROOF_TYPE, Gi as SseCustomEvent, Gr as DEFAULT_MESSENGER_CONFIG, Hi as SignedRequest, Hr as ConversationInfo, Ii as SendMessageResult, Ir as CURRENT_NETWORK, Ji as SseGuardConfirmedEvent, Jr as Empty, Ki as SseEvent, Kr as DEFAULT_QUERY_LIMIT, Li as SeqIndexRange, Lr as ChainProofRequest, Mi as SERVER_URL, Mr as AttachmentKind, Ni as SendAttachmentOptions, Nr as AttachmentManifest, Oi as RangeType, Or as AddListRequest, Pi as SendMessageRequest, Pr as BaseRange, Qi as TimeRange, Qr as FetchMessagesRequest, Ri as ServerMessage, Rr as ChainProofResponse, Si as PQPreKeyPublic, Ti as PreKeyStatus, Ui as SignedRequestBase, Ur as ConversationsFilter, Vi as SessionState, Vr as ContactListsSyncResult, Wi as SseArkConfirmedEvent, Wr as DEFAULT_DEVICE_ID, Xi as SseNewMessageEvent, Xr as ExistListRequest, Yi as SseGuardRejectedEvent, Yr as EventStreamParams, Zi as SsePreKeyLowEvent, Zr as FailedPrekeyInfo, _a as WtsVerificationResult, _i as MessageType, aa as WtsFile, ai as MAX_QUERY_LIMIT, bi as MessengerErrorCode, ca as WtsMessage, ci as Message, da as WtsRange, di as MessageFilter, ea as UploadPreKeysRequest, ei as GetSettingsRequest, fa as WtsServerPublicKey, fi as MessageIdRange, ga as WtsToHtmlOptions, gi as MessageTimeField, ha as WtsSignatureVerification, hi as MessageStatus, ia as WTS_SCHEMA_URL, ii as ListOperationResponse, ji as ReplyTo, jr as AttachmentDescriptor, ki as RemoteBundle, kr as AddressExistence, la as WtsMeta, li as MessageContentType, ma as WtsSignature, mi as MessageProofRecord, na as WTS_FILE_BYTES_LIMIT, ni as GuardAuthRequiredResult, oa as WtsFileResult, oi as MerkleMetadata, pa as WtsSession, pi as MessageListResult, qi as SseEventType, qr as DecryptedMessage, ra as WTS_MAX_MESSAGE_COUNT, ri as GuardListItem, sa as WtsGenerationParams, si as MerkleProof, ta as UploadPreKeysResponse, ti as GetSettingsResponse, ua as WtsPayload, ui as MessageDirection, va as ZipContentType, vi as MessengerConfig, wi as PreKeyPublic, xi as NORMAL_MESSAGE_BYTES_LIMIT, ya as ZipMetadata, yi as MessengerError, zi as ServerRegisterRequest, zr as ClearListRequest } from "../../index-
|
|
1
|
+
import { $i as UpdateSettingsRequest, $r as GetBundleParams, Ai as RemoveListRequest, Ar as Attachment, Bi as ServerRegisterResponse, Br as ContactLists, Ci as PlaintextMessage, Di as PullMessagesResponse, Dr as AddGuardListRequest, Ei as PullAccountResult, Fi as SendMessageResponse, Fr as CHAIN_PROOF_TYPE, Gi as SseCustomEvent, Gr as DEFAULT_MESSENGER_CONFIG, Hi as SignedRequest, Hr as ConversationInfo, Ii as SendMessageResult, Ir as CURRENT_NETWORK, Ji as SseGuardConfirmedEvent, Jr as Empty, Ki as SseEvent, Kr as DEFAULT_QUERY_LIMIT, Li as SeqIndexRange, Lr as ChainProofRequest, Mi as SERVER_URL, Mr as AttachmentKind, Ni as SendAttachmentOptions, Nr as AttachmentManifest, Oi as RangeType, Or as AddListRequest, Pi as SendMessageRequest, Pr as BaseRange, Qi as TimeRange, Qr as FetchMessagesRequest, Ri as ServerMessage, Rr as ChainProofResponse, Si as PQPreKeyPublic, Ti as PreKeyStatus, Ui as SignedRequestBase, Ur as ConversationsFilter, Vi as SessionState, Vr as ContactListsSyncResult, Wi as SseArkConfirmedEvent, Wr as DEFAULT_DEVICE_ID, Xi as SseNewMessageEvent, Xr as ExistListRequest, Yi as SseGuardRejectedEvent, Yr as EventStreamParams, Zi as SsePreKeyLowEvent, Zr as FailedPrekeyInfo, _a as WtsVerificationResult, _i as MessageType, aa as WtsFile, ai as MAX_QUERY_LIMIT, bi as MessengerErrorCode, ca as WtsMessage, ci as Message, da as WtsRange, di as MessageFilter, ea as UploadPreKeysRequest, ei as GetSettingsRequest, fa as WtsServerPublicKey, fi as MessageIdRange, ga as WtsToHtmlOptions, gi as MessageTimeField, ha as WtsSignatureVerification, hi as MessageStatus, ia as WTS_SCHEMA_URL, ii as ListOperationResponse, ji as ReplyTo, jr as AttachmentDescriptor, ki as RemoteBundle, kr as AddressExistence, la as WtsMeta, li as MessageContentType, ma as WtsSignature, mi as MessageProofRecord, na as WTS_FILE_BYTES_LIMIT, ni as GuardAuthRequiredResult, oa as WtsFileResult, oi as MerkleMetadata, pa as WtsSession, pi as MessageListResult, qi as SseEventType, qr as DecryptedMessage, ra as WTS_MAX_MESSAGE_COUNT, ri as GuardListItem, sa as WtsGenerationParams, si as MerkleProof, ta as UploadPreKeysResponse, ti as GetSettingsResponse, ua as WtsPayload, ui as MessageDirection, va as ZipContentType, vi as MessengerConfig, wi as PreKeyPublic, xi as NORMAL_MESSAGE_BYTES_LIMIT, ya as ZipMetadata, yi as MessengerError, zi as ServerRegisterRequest, zr as ClearListRequest } from "../../index-DZz_hx8l.mjs";
|
|
2
2
|
export { AddGuardListRequest, AddListRequest, AddressExistence, Attachment, AttachmentDescriptor, AttachmentKind, AttachmentManifest, BaseRange, CHAIN_PROOF_TYPE, CURRENT_NETWORK, ChainProofRequest, ChainProofResponse, ClearListRequest, ContactLists, ContactListsSyncResult, ConversationInfo, ConversationsFilter, DEFAULT_DEVICE_ID, DEFAULT_MESSENGER_CONFIG, DEFAULT_QUERY_LIMIT, DecryptedMessage, Empty, EventStreamParams, ExistListRequest, FailedPrekeyInfo, FetchMessagesRequest, GetBundleParams, GetSettingsRequest, GetSettingsResponse, GuardAuthRequiredResult, GuardListItem, ListOperationResponse, MAX_QUERY_LIMIT, MerkleMetadata, MerkleProof, Message, MessageContentType, MessageDirection, MessageFilter, MessageIdRange, MessageListResult, MessageProofRecord, MessageStatus, MessageTimeField, MessageType, MessengerConfig, MessengerError, MessengerErrorCode, NORMAL_MESSAGE_BYTES_LIMIT, PQPreKeyPublic, PlaintextMessage, PreKeyPublic, PreKeyStatus, PullAccountResult, PullMessagesResponse, RangeType, RemoteBundle, RemoveListRequest, ReplyTo, SERVER_URL, SendAttachmentOptions, SendMessageRequest, SendMessageResponse, SendMessageResult, SeqIndexRange, ServerMessage, ServerRegisterRequest, ServerRegisterResponse, SessionState, SignedRequest, SignedRequestBase, SseArkConfirmedEvent, SseCustomEvent, SseEvent, SseEventType, SseGuardConfirmedEvent, SseGuardRejectedEvent, SseNewMessageEvent, SsePreKeyLowEvent, TimeRange, UpdateSettingsRequest, UploadPreKeysRequest, UploadPreKeysResponse, WTS_FILE_BYTES_LIMIT, WTS_MAX_MESSAGE_COUNT, WTS_SCHEMA_URL, WtsFile, WtsFileResult, WtsGenerationParams, WtsMessage, WtsMeta, WtsPayload, WtsRange, WtsServerPublicKey, WtsSession, WtsSignature, WtsSignatureVerification, WtsToHtmlOptions, WtsVerificationResult, ZipContentType, ZipMetadata };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $_ as
|
|
2
|
-
export { AFFILIATION_TABLES_BY_TYPE, AFFILIATION_TABLE_META, AddressActivity, AddressActivityQuery, AddressProfile, AffiliationAnswer, AffiliationEntry, AffiliationTableKind, AllocationEvent, AllocationMode, AllocationSharing, Allocator, Allocators, Amount, AmountFromDepositGuard, AmountFromWithdrawGuard, AmountType, ArbEvent, ArbIndemnity, ArbProposition, ArbStatus, ArbVoted, ArbitrationEvent, ArbsAnswer, ArbsQuery, COMMON_MISTAKES, CheckpointQuery, CommonMistakeFilter, CommonMistakeInfo, CoreLinkView, DemandChangedEvent, DemandFeedbackEvent, DemandPresentEvent, DemandsAnswer, DemandsQuery, DiscountType, ENTITY_ORDER_ROLE_AGENT, ENTITY_ORDER_ROLE_OWNER, EntityContactItemView, EntityOrderItemView, EntityPermissionItemView, EventAnswer, EventBase, EventCursor, EventQuery, EventType, FUNDING_GUIDANCE, FeedbackEvent, FundingGuidance, GuardInPassport, GuardSubmission, INFO_CONSTANT, IdFrom, IdFromInput, Im, MAX_OBJECTS_PER_QUERY, MachineForward, MachineForwardGuard, MachineNode, MachineNodePair, NamedOperator, NewEntityEvent, NewOrderEvent, NewPaymentEvent, OBJECT_TYPE_DEFINITIONS, ObjectAllocation, ObjectArb, ObjectArbitration, ObjectBase, ObjectContact, ObjectDemand, ObjectDiscount, ObjectEntity, ObjectEntityLinker, ObjectEntityRegistrar, ObjectGuard, ObjectHistoryQuery, ObjectLastUpdated, ObjectLastUpdatedQuery, ObjectMachine, ObjectOrder, ObjectPassport, ObjectPayment, ObjectPermission, ObjectPersonal, ObjectProgress, ObjectProof, ObjectRepository, ObjectResource, ObjectReward, ObjectService, ObjectTokenTypeInfo, ObjectTokenTypeQuery, ObjectTreasury, ObjectType, ObjectTypeDefinition, ObjectsAnswer, ObjectsQuery, PaymentInfo, PaymentRevenue, PersonalQuery, PolicyRule, PolicyWriteGuard, ProgressEvent, ProgressSession, ProgressSessionHolder, ProtocolInfoQuery, ProtocolInfoResult, PurchasedItem, QueryAddressProfile, QueryAddressProfiles, QueryAffiliations, QueryOrdersByUser, QueryReceived, QueryTableItem_Entity, QueryTableItem_byAddress, QueryTableItem_byNameAddress, QueryTableItem_byString, QueryTableItem_byU64, ReceivedBalance, ReceivedBalanceObject, ReceivedBalanceOrRecently, ReceivedNormal, ReceivedObjects, ReceivedObjectsOrRecently, RewardClaimEvent, RewardFundEvent, RewardGuard, RoleEvidence, ServiceContextQuery, ServiceContextResult, ServiceEvent, ServiceGuard, ServiceSale, ServiceSummary, ServicesAnswer, ServicesQuery, SharedObjectsAnswer, SharedObjectsAnswerItem, SharedObjectsQuery, TableAnswer, TableAnswerItem, TableItemQuery, TableItem_AddressMark, TableItem_DemandPresenter, TableItem_EntityContact, TableItem_EntityLinker, TableItem_EntityOrder, TableItem_EntityPermission, TableItem_EntityRegistrar, TableItem_MachineNode, TableItem_ObjectLinkerCore, TableItem_ObjectLinkerTx, TableItem_PermissionPerm, TableItem_ProgressHistory, TableItem_RepositoryData, TableItem_RewardRecord, TableItem_TreasuryHistory, TableQuery, TransactionDetail, TransactionHistoryAnswer, TransactionHistoryItem, TransactionQuery, TreasuryEvent, TreasuryOp, TreasuryRecord, TxBalanceChange, TxEvent, TxLinkView, TxObjectChange, UserOrderView, VoteEvent, VoteWeight, VotingGuard, WReceivedObject, WitnessSourceType, WitnessTargetType, WowAddressKind, data2object, getMoveNameFromNumber, getMoveNameFromObjectType, getNumberFromMoveName, getNumberFromObjectType, getNumbersFromObjectTypes, getObjectTypeDefinition, getObjectTypeDefinitionFromNumber, getObjectTypeFromMoveName, getObjectTypeFromNumber, getObjectTypesFromNumbers, idFromToString, isValidIdFromInput, numberToObjectType, objectTypeFromAddress, objectTypeToNumber, parseIdFrom, parseWowokEventItem, queryObjectWithType, queryObjectsWithType, queryOrdersByUser, queryPermissions, queryProtocolInfo, queryTableItem_AddressMark, queryTableItem_DemandPresenter, queryTableItem_EntityContact, queryTableItem_EntityLinker, queryTableItem_EntityOrder, queryTableItem_EntityPermission, queryTableItem_EntityRegistrar, queryTableItem_MachineNode, queryTableItem_ObjectLinkerCore, queryTableItem_ObjectLinkerTx, queryTableItem_PermissionPerm, queryTableItem_ProgressHistory, queryTableItem_RepositoryData, queryTableItem_RewardRecord, queryTableItem_ServiceOrders, queryTableItem_TreasuryHistory, query_address_activity, query_address_activity_json, query_address_profile, query_address_profiles, query_affiliations, query_arbs, query_checkpoint, query_checkpoint_json, query_common_mistakes, query_demands, query_events, query_events_json, query_object_history, query_object_history_json, query_object_last_updated, query_object_token_type, query_objects, query_objects_json, query_personal, query_received, query_serviceContext, query_services, query_shared_objects, query_shared_objects_json, query_table, query_tableItem, query_table_json, query_transaction, query_transaction_json, raw2type, wowAddressKind, wowObjectTypeNameForAddress };
|
|
1
|
+
import { $_ as TableItem_EntityRegistrar, $a as ProtocolInfoResult, $g as ObjectEntityRegistrar, $o as AffiliationAnswer, $v as query_address_profile, A_ as QueryTableItem_byAddress, Aa as ObjectLastUpdated, Ag as EntityOrderItemView, Ao as EventQuery, Av as idFromToString, B_ as ServicesQuery, Ba as query_address_activity_json, Bb as ReceivedObjects, Bg as MachineNode, Bo as ServiceEvent, Bv as queryTableItem_EntityLinker, C_ as ProgressSession, Ca as setRealTimeWindowMs, Cg as CoreLinkView, Co as ArbitrationEvent, Cv as getNumberFromObjectType, D_ as QueryAddressProfiles, Da as query_checkpoint_json, Dg as ENTITY_ORDER_ROLE_AGENT, Do as EventAnswer, Dv as getObjectTypeFromMoveName, E_ as QueryAddressProfile, Ea as query_checkpoint, Eg as DiscountType, Eo as DemandPresentEvent, Ev as getObjectTypeDefinitionFromNumber, F_ as RoleEvidence, Fa as TransactionQuery, Fb as QueryReceived, Fg as IdFromInput, Fo as NewPaymentEvent, Fv as parseIdFrom, G_ as TableAnswerItem, Ga as query_transaction_json, Gg as ObjectArb, Go as query_events_json, Gv as queryTableItem_ObjectLinkerCore, H_ as SharedObjectsAnswerItem, Ha as query_object_history_json, Hb as query_received, Hg as NamedOperator, Ho as VoteEvent, Hv as queryTableItem_EntityPermission, I_ as ServiceGuard, Ia as TxBalanceChange, Ib as ReceivedBalance, Ig as Im, Io as PaymentRevenue, Iv as queryOrdersByUser, J_ as TableItem_DemandPresenter, Ja as CommonMistakeInfo, Jg as ObjectContact, Jo as ServiceContextQuery, Jv as queryTableItem_ProgressHistory, K_ as TableItemQuery, Ka as COMMON_MISTAKES, Kg as ObjectArbitration, Ko as queryObjectWithType, Kv as queryTableItem_ObjectLinkerTx, L_ as ServiceSale, La as TxEvent, Lb as ReceivedBalanceObject, Lg as MAX_OBJECTS_PER_QUERY, Lo as ProgressEvent, Lp as ObjectType, Lv as queryTableItem_AddressMark, M_ as QueryTableItem_byString, Ma as TransactionDetail, Mg as GuardInPassport, Mo as FeedbackEvent, Mv as numberToObjectType, N_ as QueryTableItem_byU64, Na as TransactionHistoryAnswer, Ng as GuardSubmission, No as NewEntityEvent, Nv as objectTypeFromAddress, O_ as QueryOrdersByUser, Oa as AddressActivityQuery, Og as ENTITY_ORDER_ROLE_OWNER, Oo as EventBase, Ov as getObjectTypeFromNumber, P_ as RewardGuard, Pa as TransactionHistoryItem, Pg as IdFrom, Po as NewOrderEvent, Pv as objectTypeToNumber, Q_ as TableItem_EntityPermission, Qa as ProtocolInfoQuery, Qg as ObjectEntityLinker, Qo as AFFILIATION_TABLE_META, Qv as queryTableItem_TreasuryHistory, R_ as ServiceSummary, Ra as TxObjectChange, Rb as ReceivedBalanceOrRecently, Rg as MachineForward, Ro as RewardClaimEvent, Rv as queryTableItem_DemandPresenter, S_ as PolicyWriteGuard, Sa as lastWriteAtFor, Sg as ArbsQuery, So as ArbEvent, Sv as getNumberFromMoveName, T_ as PurchasedItem, Ta as CheckpointQuery, Tg as DemandsQuery, To as DemandFeedbackEvent, Tv as getObjectTypeDefinition, U_ as SharedObjectsQuery, Ua as query_object_last_updated, Ug as OBJECT_TYPE_DEFINITIONS, Uo as parseWowokEventItem, Uv as queryTableItem_EntityRegistrar, V_ as SharedObjectsAnswer, Va as query_object_history, Vb as ReceivedObjectsOrRecently, Vg as MachineNodePair, Vo as TreasuryEvent, Vv as queryTableItem_EntityOrder, W_ as TableAnswer, Wa as query_transaction, Wg as ObjectAllocation, Wo as query_events, Wv as queryTableItem_MachineNode, X_ as TableItem_EntityLinker, Xa as FundingGuidance, Xg as ObjectDiscount, Xo as query_serviceContext, Xv as queryTableItem_RewardRecord, Y_ as TableItem_EntityContact, Ya as FUNDING_GUIDANCE, Yg as ObjectDemand, Yo as ServiceContextResult, Yv as queryTableItem_RepositoryData, Z_ as TableItem_EntityOrder, Za as INFO_CONSTANT, Zg as ObjectEntity, Zo as AFFILIATION_TABLES_BY_TYPE, Zv as queryTableItem_ServiceOrders, __ as ObjectsAnswer, _g as ArbIndemnity, _v as WitnessTargetType, a_ as ObjectPermission, av as TableItem_RepositoryData, ay as query_objects_json, b_ as PersonalQuery, ba as isRealtimeWindow, bg as ArbVoted, bv as getMoveNameFromNumber, c_ as ObjectProof, cg as AddressProfile, cv as TableQuery, cy as query_shared_objects, d_ as ObjectReward, dg as Allocator, dv as TxLinkView, dy as query_tableItem, e_ as ObjectGuard, eo as queryPermissions, es as AffiliationEntry, ev as TableItem_MachineNode, ey as query_address_profiles, f_ as ObjectService, fg as Allocators, fv as UserOrderView, fy as query_table_json, g_ as ObjectTypeDefinition, gg as AmountType, gv as WitnessSourceType, h_ as ObjectTreasury, hg as AmountFromWithdrawGuard, hv as WReceivedObject, hy as wowObjectTypeNameForAddress, i_ as ObjectPayment, iv as TableItem_ProgressHistory, iy as query_objects, j_ as QueryTableItem_byNameAddress, ja as ObjectLastUpdatedQuery, jg as EntityPermissionItemView, jo as EventType, jv as isValidIdFromInput, k_ as QueryTableItem_Entity, ka as ObjectHistoryQuery, kg as EntityContactItemView, ko as EventCursor, kv as getObjectTypesFromNumbers, l_ as ObjectRepository, lg as AllocationMode, lv as TreasuryOp, ly as query_shared_objects_json, m_ as ObjectTokenTypeQuery, mg as AmountFromDepositGuard, mv as VotingGuard, my as wowAddressKind, n_ as ObjectOrder, no as query_common_mistakes, ns as QueryAffiliations, nv as TableItem_ObjectLinkerTx, ny as query_demands, o_ as ObjectPersonal, ov as TableItem_RewardRecord, oy as query_personal, p_ as ObjectTokenTypeInfo, pg as Amount, pv as VoteWeight, py as raw2type, q_ as TableItem_AddressMark, qa as CommonMistakeFilter, qg as ObjectBase, qo as queryObjectsWithType, qv as queryTableItem_PermissionPerm, r_ as ObjectPassport, rs as query_affiliations, rv as TableItem_PermissionPerm, ry as query_object_token_type, s_ as ObjectProgress, sg as AddressActivity, sv as TableItem_TreasuryHistory, sy as query_services, t_ as ObjectMachine, to as queryProtocolInfo, ts as AffiliationTableKind, tv as TableItem_ObjectLinkerCore, ty as query_arbs, u_ as ObjectResource, ug as AllocationSharing, uv as TreasuryRecord, uy as query_table, v_ as ObjectsQuery, vg as ArbProposition, vv as WowAddressKind, w_ as ProgressSessionHolder, wa as touchWriteClock, wg as DemandsAnswer, wo as DemandChangedEvent, wv as getNumbersFromObjectTypes, x_ as PolicyRule, xa as lastWriteAtAny, xg as ArbsAnswer, xo as AllocationEvent, xv as getMoveNameFromObjectType, y_ as PaymentInfo, yg as ArbStatus, yv as data2object, z_ as ServicesAnswer, za as query_address_activity, zb as ReceivedNormal, zg as MachineForwardGuard, zo as RewardFundEvent, zv as queryTableItem_EntityContact } from "../../index-DZz_hx8l.mjs";
|
|
2
|
+
export { AFFILIATION_TABLES_BY_TYPE, AFFILIATION_TABLE_META, AddressActivity, AddressActivityQuery, AddressProfile, AffiliationAnswer, AffiliationEntry, AffiliationTableKind, AllocationEvent, AllocationMode, AllocationSharing, Allocator, Allocators, Amount, AmountFromDepositGuard, AmountFromWithdrawGuard, AmountType, ArbEvent, ArbIndemnity, ArbProposition, ArbStatus, ArbVoted, ArbitrationEvent, ArbsAnswer, ArbsQuery, COMMON_MISTAKES, CheckpointQuery, CommonMistakeFilter, CommonMistakeInfo, CoreLinkView, DemandChangedEvent, DemandFeedbackEvent, DemandPresentEvent, DemandsAnswer, DemandsQuery, DiscountType, ENTITY_ORDER_ROLE_AGENT, ENTITY_ORDER_ROLE_OWNER, EntityContactItemView, EntityOrderItemView, EntityPermissionItemView, EventAnswer, EventBase, EventCursor, EventQuery, EventType, FUNDING_GUIDANCE, FeedbackEvent, FundingGuidance, GuardInPassport, GuardSubmission, INFO_CONSTANT, IdFrom, IdFromInput, Im, MAX_OBJECTS_PER_QUERY, MachineForward, MachineForwardGuard, MachineNode, MachineNodePair, NamedOperator, NewEntityEvent, NewOrderEvent, NewPaymentEvent, OBJECT_TYPE_DEFINITIONS, ObjectAllocation, ObjectArb, ObjectArbitration, ObjectBase, ObjectContact, ObjectDemand, ObjectDiscount, ObjectEntity, ObjectEntityLinker, ObjectEntityRegistrar, ObjectGuard, ObjectHistoryQuery, ObjectLastUpdated, ObjectLastUpdatedQuery, ObjectMachine, ObjectOrder, ObjectPassport, ObjectPayment, ObjectPermission, ObjectPersonal, ObjectProgress, ObjectProof, ObjectRepository, ObjectResource, ObjectReward, ObjectService, ObjectTokenTypeInfo, ObjectTokenTypeQuery, ObjectTreasury, ObjectType, ObjectTypeDefinition, ObjectsAnswer, ObjectsQuery, PaymentInfo, PaymentRevenue, PersonalQuery, PolicyRule, PolicyWriteGuard, ProgressEvent, ProgressSession, ProgressSessionHolder, ProtocolInfoQuery, ProtocolInfoResult, PurchasedItem, QueryAddressProfile, QueryAddressProfiles, QueryAffiliations, QueryOrdersByUser, QueryReceived, QueryTableItem_Entity, QueryTableItem_byAddress, QueryTableItem_byNameAddress, QueryTableItem_byString, QueryTableItem_byU64, ReceivedBalance, ReceivedBalanceObject, ReceivedBalanceOrRecently, ReceivedNormal, ReceivedObjects, ReceivedObjectsOrRecently, RewardClaimEvent, RewardFundEvent, RewardGuard, RoleEvidence, ServiceContextQuery, ServiceContextResult, ServiceEvent, ServiceGuard, ServiceSale, ServiceSummary, ServicesAnswer, ServicesQuery, SharedObjectsAnswer, SharedObjectsAnswerItem, SharedObjectsQuery, TableAnswer, TableAnswerItem, TableItemQuery, TableItem_AddressMark, TableItem_DemandPresenter, TableItem_EntityContact, TableItem_EntityLinker, TableItem_EntityOrder, TableItem_EntityPermission, TableItem_EntityRegistrar, TableItem_MachineNode, TableItem_ObjectLinkerCore, TableItem_ObjectLinkerTx, TableItem_PermissionPerm, TableItem_ProgressHistory, TableItem_RepositoryData, TableItem_RewardRecord, TableItem_TreasuryHistory, TableQuery, TransactionDetail, TransactionHistoryAnswer, TransactionHistoryItem, TransactionQuery, TreasuryEvent, TreasuryOp, TreasuryRecord, TxBalanceChange, TxEvent, TxLinkView, TxObjectChange, UserOrderView, VoteEvent, VoteWeight, VotingGuard, WReceivedObject, WitnessSourceType, WitnessTargetType, WowAddressKind, data2object, getMoveNameFromNumber, getMoveNameFromObjectType, getNumberFromMoveName, getNumberFromObjectType, getNumbersFromObjectTypes, getObjectTypeDefinition, getObjectTypeDefinitionFromNumber, getObjectTypeFromMoveName, getObjectTypeFromNumber, getObjectTypesFromNumbers, idFromToString, isRealtimeWindow, isValidIdFromInput, lastWriteAtAny, lastWriteAtFor, numberToObjectType, objectTypeFromAddress, objectTypeToNumber, parseIdFrom, parseWowokEventItem, queryObjectWithType, queryObjectsWithType, queryOrdersByUser, queryPermissions, queryProtocolInfo, queryTableItem_AddressMark, queryTableItem_DemandPresenter, queryTableItem_EntityContact, queryTableItem_EntityLinker, queryTableItem_EntityOrder, queryTableItem_EntityPermission, queryTableItem_EntityRegistrar, queryTableItem_MachineNode, queryTableItem_ObjectLinkerCore, queryTableItem_ObjectLinkerTx, queryTableItem_PermissionPerm, queryTableItem_ProgressHistory, queryTableItem_RepositoryData, queryTableItem_RewardRecord, queryTableItem_ServiceOrders, queryTableItem_TreasuryHistory, query_address_activity, query_address_activity_json, query_address_profile, query_address_profiles, query_affiliations, query_arbs, query_checkpoint, query_checkpoint_json, query_common_mistakes, query_demands, query_events, query_events_json, query_object_history, query_object_history_json, query_object_last_updated, query_object_token_type, query_objects, query_objects_json, query_personal, query_received, query_serviceContext, query_services, query_shared_objects, query_shared_objects_json, query_table, query_tableItem, query_table_json, query_transaction, query_transaction_json, raw2type, setRealTimeWindowMs, touchWriteClock, wowAddressKind, wowObjectTypeNameForAddress };
|