sync-lifecycle-kQgcH5o6.js

5.3 KB · raw

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sync-coordinator-BVwn6wHZ.js","assets/preload-helper-D4M6sveU.js","assets/storage-COHREhIV.js","assets/chunk-CilyBKbf.js","assets/dist-C5po-C0e.js","assets/vault-ByqoQOTt.js","assets/index-Dd8_N7xu.js","assets/index-Ci9pf2DC.css","assets/sync-wire-O_oTp2Oy.js"])))=>i.map(i=>d[i]);2import{t as e}from"./dist-C5po-C0e.js";import{t}from"./preload-helper-D4M6sveU.js";import{isProUser as n}from"./license-ZF1DwcYD.js";import{C as r}from"./vault-ByqoQOTt.js";import{a as i,c as a,d as o,f as s,h as c,i as l,l as u,n as d,o as f,p,r as m,s as h,t as g,u as _}from"./sync-kQd3KSmO.js";import{n as v,r as y,t as b}from"./sync-storage-DsbiOwL6.js";import{n as x,t as S}from"./sync-wire-O_oTp2Oy.js";import{i as C,r as w,t as T}from"./pairing-server-state-TxS-duki.js";var E=`peach_device_id`,D=`peach_device_name`,O=!1,k=!1,A=!1,j=!1,M=new Map,N=`peach_last_sync_at`,P=6e4;function F(){j||(j=!0,a(e=>{M.set(e.x25519PublicKey,e),L(e)}),u(e=>{for(let[t,n]of M)if(n.deviceId===e){M.delete(t);break}}))}function I(){return Array.from(M.values())}async function L(i){if(!e.isNativePlatform())try{if(!(await v()).some(e=>e.x25519PublicKey===i.x25519PublicKey)||!r()||!await n())return;let e=await R(N);if(e){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&Date.now()-t<P)return}let{createNativeSyncTransport:a,runBlobSyncSession:o}=await t(async()=>{let{createNativeSyncTransport:e,runBlobSyncSession:t}=await import(`./sync-coordinator-BVwn6wHZ.js`);return{createNativeSyncTransport:e,runBlobSyncSession:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8])),{storageGet:s,storageSet:c}=await t(async()=>{let{storageGet:e,storageSet:t}=await import(`./storage-COHREhIV.js`).then(e=>e.i);return{storageGet:e,storageSet:t}},__vite__mapDeps([2,3,1,4]));await o(`initiator`,await a(await d(i.host,i.port,i.x25519PublicKey)),{isPro:()=>n(),isUnlocked:()=>r(),getVaultBlobs:async()=>({vault_a:await s(`peach_vault_a`)??``,vault_b:await s(`peach_vault_b`)??``})}),await c(N,String(Date.now()))}catch(e){console.warn(`auto-sync failed:`,e)}}async function R(e){try{let t=(await chrome.storage.local.get(e))[e];return typeof t==`string`?t:null}catch{return null}}async function z(){try{let e=(await chrome.storage.local.get(E))[E];if(typeof e==`string`&&e)return e}catch{}let e=crypto.getRandomValues(new Uint8Array(16)),t=``;for(let n of e)t+=String.fromCharCode(n);let n=btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/g,``);try{await chrome.storage.local.set({[E]:n})}catch{}return n}async function B(){try{let e=(await chrome.storage.local.get(D))[D];if(typeof e==`string`&&e.trim())return e.trim()}catch{}return e.getPlatform()===`android`?`Peach Android`:e.getPlatform()===`ios`?`Peach iOS`:`Peach`}async function V(){if(e.isNativePlatform())return;if(!k){O=!1;return}let t=!1;try{let[e,i]=await Promise.all([n(),v()]);t=e&&r()&&i.length>0}catch{t=!1}if(t&&!O)try{let[e,t]=await Promise.all([z(),B()]);await g({deviceId:e,name:t}),O=!0}catch(e){console.warn(`sync advertise failed:`,e)}else if(!t&&O){try{await s()}catch{}O=!1}}function H(){A||(A=!0,h(e=>{U(e)}))}async function U(e){if(e.isPairingOnly){await W(e);return}await K(e.connectionId)}async function W(e){let t=_((n,r)=>{if(n!==e.connectionId)return;t();let i=e.peerPublicKeyHex??``,a=`Unknown device`;try{let t=S(r);if(t.type===`PAIR_REQUEST`)i=t.public_key_hex||i,a=t.device_name||a;else{try{m(e.connectionId)}catch{}return}}catch{try{m(e.connectionId)}catch{}return}G(e.connectionId,i,a)}),n=f(r=>{if(r===void 0||r===e.connectionId){try{t()}catch{}try{n()}catch{}}})}async function G(e,t,n){if(await T()){try{o(e,x({type:`PAIR_ACCEPT`,public_key_hex:await i(),device_name:await B()})),await c(t,n);try{await b({deviceId:t,displayName:n,x25519PublicKey:t,pairedAt:Date.now(),lastSeenAt:Date.now()})}catch{}await C({deviceName:n,pairedAt:Date.now(),side:`showing`}),await w(null);try{p()}catch{}chrome.runtime.sendMessage({type:`PAIRING_COMPLETED`,payload:{deviceName:n}}).catch(()=>{})}catch(e){console.warn(`auto-accept pairing failed:`,e)}finally{try{m(e)}catch{}}return}let r=Date.now();await y({deviceName:n,publicKeyHex:t,receivedAt:r,expiresAt:r+6e4,connectionId:e}),chrome.runtime.sendMessage({type:`INCOMING_PAIRING_REQUEST`,payload:{deviceName:n}}).catch(()=>{})}async function K(e){try{let{createNativeSyncTransport:i,runBlobSyncSession:a}=await t(async()=>{let{createNativeSyncTransport:e,runBlobSyncSession:t}=await import(`./sync-coordinator-BVwn6wHZ.js`);return{createNativeSyncTransport:e,runBlobSyncSession:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8])),{storageGet:o}=await t(async()=>{let{storageGet:e}=await import(`./storage-COHREhIV.js`).then(e=>e.i);return{storageGet:e}},__vite__mapDeps([2,3,1,4]));await a(`responder`,await i(e),{isPro:()=>n(),isUnlocked:()=>r(),getVaultBlobs:async()=>({vault_a:await o(`peach_vault_a`)??``,vault_b:await o(`peach_vault_b`)??``})})}catch(e){console.warn(`responder sync session failed:`,e)}}function q(){k=!0,H(),F();try{l()}catch{}V()}function J(){k=!1,O=!1}async function Y(){await V()}async function X(){try{if(await w(null),k)try{await p()}catch{}}catch{}await V()}async function Z(){await V()}function Q(){O=!1,k=!1,A=!1}export{Q as __resetForTests,I as getDiscoveredPeerCache,q as onNativeHostConnected,J as onNativeHostDisconnected,Z as onProActivated,X as onVaultLocked,Y as onVaultUnlocked,H as setupIncomingPairingSubscriber,V as syncLifecycleTick};