@tatchi-xyz/sdk 0.31.0 → 0.31.1

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.
Files changed (173) hide show
  1. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js +2 -2
  2. package/dist/cjs/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  3. package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js +9 -8
  4. package/dist/cjs/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  5. package/dist/cjs/core/TatchiPasskey/login.js +1 -1
  6. package/dist/cjs/core/TatchiPasskey/login.js.map +1 -1
  7. package/dist/cjs/core/TatchiPasskey/registration.js +67 -56
  8. package/dist/cjs/core/TatchiPasskey/registration.js.map +1 -1
  9. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -10
  10. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  11. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +58 -67
  12. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  13. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +74 -75
  14. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  15. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +17 -7
  16. package/dist/cjs/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  17. package/dist/cjs/core/WebAuthnManager/index.js +3 -3
  18. package/dist/cjs/core/WebAuthnManager/index.js.map +1 -1
  19. package/dist/cjs/core/defaultConfigs.js +3 -1
  20. package/dist/cjs/core/defaultConfigs.js.map +1 -1
  21. package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js +3 -3
  22. package/dist/cjs/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
  23. package/dist/cjs/react/components/PasskeyAuthMenu/{PasskeyAuthMenu-CRlobBrN.css → PasskeyAuthMenu-D2eRb2-S.css} +3 -1
  24. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2eRb2-S.css.map +1 -0
  25. package/dist/cjs/react/components/PasskeyAuthMenu/preload.js +1 -1
  26. package/dist/cjs/react/components/PasskeyAuthMenu/preload.js.map +1 -1
  27. package/dist/cjs/react/components/PasskeyAuthMenu/shell.js +52 -13
  28. package/dist/cjs/react/components/PasskeyAuthMenu/shell.js.map +1 -1
  29. package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js +4 -2
  30. package/dist/cjs/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
  31. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +5 -1
  32. package/dist/cjs/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  33. package/dist/cjs/react/index.js +1 -1
  34. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js +2 -2
  35. package/dist/cjs/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  36. package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +9 -8
  37. package/dist/cjs/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  38. package/dist/cjs/react/src/core/TatchiPasskey/login.js +1 -1
  39. package/dist/cjs/react/src/core/TatchiPasskey/login.js.map +1 -1
  40. package/dist/cjs/react/src/core/TatchiPasskey/registration.js +67 -56
  41. package/dist/cjs/react/src/core/TatchiPasskey/registration.js.map +1 -1
  42. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -10
  43. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  44. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +58 -67
  45. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  46. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +74 -75
  47. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  48. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +17 -7
  49. package/dist/cjs/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  50. package/dist/cjs/react/src/core/WebAuthnManager/index.js +3 -3
  51. package/dist/cjs/react/src/core/WebAuthnManager/index.js.map +1 -1
  52. package/dist/cjs/react/src/core/defaultConfigs.js +3 -1
  53. package/dist/cjs/react/src/core/defaultConfigs.js.map +1 -1
  54. package/dist/cjs/server/core/AuthService.js +49 -6
  55. package/dist/cjs/server/core/AuthService.js.map +1 -1
  56. package/dist/cjs/server/sdk/src/core/defaultConfigs.js.map +1 -1
  57. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js +2 -2
  58. package/dist/esm/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  59. package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js +9 -8
  60. package/dist/esm/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  61. package/dist/esm/core/TatchiPasskey/login.js +1 -1
  62. package/dist/esm/core/TatchiPasskey/login.js.map +1 -1
  63. package/dist/esm/core/TatchiPasskey/registration.js +67 -56
  64. package/dist/esm/core/TatchiPasskey/registration.js.map +1 -1
  65. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -10
  66. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  67. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +58 -67
  68. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  69. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +74 -75
  70. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  71. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +17 -7
  72. package/dist/esm/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  73. package/dist/esm/core/WebAuthnManager/index.js +3 -3
  74. package/dist/esm/core/WebAuthnManager/index.js.map +1 -1
  75. package/dist/esm/core/defaultConfigs.js +3 -1
  76. package/dist/esm/core/defaultConfigs.js.map +1 -1
  77. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +3 -3
  78. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js.map +1 -1
  79. package/dist/esm/react/components/PasskeyAuthMenu/{PasskeyAuthMenu-D2VHZ04W.css → PasskeyAuthMenu-qTHAv58Z.css} +3 -1
  80. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-qTHAv58Z.css.map +1 -0
  81. package/dist/esm/react/components/PasskeyAuthMenu/preload.js +1 -1
  82. package/dist/esm/react/components/PasskeyAuthMenu/preload.js.map +1 -1
  83. package/dist/esm/react/components/PasskeyAuthMenu/shell.js +52 -13
  84. package/dist/esm/react/components/PasskeyAuthMenu/shell.js.map +1 -1
  85. package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js +4 -2
  86. package/dist/esm/react/components/PasskeyAuthMenu/skeleton.js.map +1 -1
  87. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js +5 -1
  88. package/dist/esm/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.js.map +1 -1
  89. package/dist/esm/react/index.js +1 -1
  90. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js +2 -2
  91. package/dist/esm/react/src/core/IndexedDBManager/passkeyClientDB.js.map +1 -1
  92. package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js +9 -8
  93. package/dist/esm/react/src/core/TatchiPasskey/faucets/createAccountRelayServer.js.map +1 -1
  94. package/dist/esm/react/src/core/TatchiPasskey/login.js +1 -1
  95. package/dist/esm/react/src/core/TatchiPasskey/login.js.map +1 -1
  96. package/dist/esm/react/src/core/TatchiPasskey/registration.js +67 -56
  97. package/dist/esm/react/src/core/TatchiPasskey/registration.js.map +1 -1
  98. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js +1 -10
  99. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.js.map +1 -1
  100. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js +58 -67
  101. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.js.map +1 -1
  102. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js +74 -75
  103. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.js.map +1 -1
  104. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js +17 -7
  105. package/dist/esm/react/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.js.map +1 -1
  106. package/dist/esm/react/src/core/WebAuthnManager/index.js +3 -3
  107. package/dist/esm/react/src/core/WebAuthnManager/index.js.map +1 -1
  108. package/dist/esm/react/src/core/defaultConfigs.js +3 -1
  109. package/dist/esm/react/src/core/defaultConfigs.js.map +1 -1
  110. package/dist/esm/react/styles/styles.css +2 -0
  111. package/dist/esm/sdk/{EmailRecovery-Dl8b4ONg.js → EmailRecovery-Y7rurd4B.js} +3 -3
  112. package/dist/esm/sdk/{EmailRecovery-v9oNO2Tc.js → EmailRecovery-lsjLWApQ.js} +1 -1
  113. package/dist/esm/sdk/{IndexedDBManager-B1cUvdyY.js → IndexedDBManager-CmdN7smS.js} +3 -3
  114. package/dist/esm/sdk/{createAdapters-Dv7ZJPf1.js → createAdapters-4c8mBiD5.js} +2 -11
  115. package/dist/esm/sdk/{createAdapters-Dv7ZJPf1.js.map → createAdapters-4c8mBiD5.js.map} +1 -1
  116. package/dist/esm/sdk/{createAdapters-1Hmc1vVC.js → createAdapters-DF32SIZa.js} +1 -10
  117. package/dist/esm/sdk/{defaultConfigs-BmCU1_qI.js → defaultConfigs-BQqiXif-.js} +3 -1
  118. package/dist/esm/sdk/{emailRecovery-4J-g9tlY.js → emailRecovery-C0LSDleV.js} +5 -5
  119. package/dist/esm/sdk/{getDeviceNumber-f8bfPB9U.js → getDeviceNumber-WiNzKx1x.js} +4 -2
  120. package/dist/esm/sdk/{getDeviceNumber-f8bfPB9U.js.map → getDeviceNumber-WiNzKx1x.js.map} +1 -1
  121. package/dist/esm/sdk/{linkDevice-C98klpcE.js → linkDevice-Ds1GNIDk.js} +4 -4
  122. package/dist/esm/sdk/{localOnly-40zxrBMm.js → localOnly-COpDBMkm.js} +2 -2
  123. package/dist/esm/sdk/{localOnly-40zxrBMm.js.map → localOnly-COpDBMkm.js.map} +1 -1
  124. package/dist/esm/sdk/{localOnly-BZPBj14l.js → localOnly-DQQuqgjJ.js} +1 -1
  125. package/dist/esm/sdk/{login-DnROv3eA.js → login-BKhTuGcy.js} +3 -3
  126. package/dist/esm/sdk/offline-export-app.js +29 -19
  127. package/dist/esm/sdk/offline-export-app.js.map +1 -1
  128. package/dist/esm/sdk/{registration-BP9M3tE1.js → registration-BR2G9tz_.js} +59 -68
  129. package/dist/esm/sdk/{registration-MrAOC8Ub.js → registration-R70lvG_o.js} +60 -69
  130. package/dist/esm/sdk/registration-R70lvG_o.js.map +1 -0
  131. package/dist/esm/sdk/{router-BEGGuWaB.js → router-2aGn-CTp.js} +1 -1
  132. package/dist/esm/sdk/{rpcCalls-CMzj_Va_.js → rpcCalls-BPI0icZG.js} +2 -2
  133. package/dist/esm/sdk/{rpcCalls-B44MZora.js → rpcCalls-BW3M_q3-.js} +1 -1
  134. package/dist/esm/sdk/{scanDevice-Cp-r-Z2T.js → scanDevice-BBSehlMx.js} +4 -4
  135. package/dist/esm/sdk/{syncAccount-CqWCmBVb.js → syncAccount-DEZHBiRa.js} +4 -4
  136. package/dist/esm/sdk/{syncAccount-Dt5jJbEB.js → syncAccount-DHKtl-xh.js} +2 -2
  137. package/dist/esm/sdk/{transactions-DAZrPW-6.js → transactions-Cg1TIUyK.js} +76 -77
  138. package/dist/esm/sdk/{transactions-CrjP8yPD.js → transactions-CxsklyCK.js} +77 -78
  139. package/dist/esm/sdk/transactions-CxsklyCK.js.map +1 -0
  140. package/dist/esm/sdk/wallet-iframe-host.js +116 -94
  141. package/dist/esm/server/core/AuthService.js +49 -6
  142. package/dist/esm/server/core/AuthService.js.map +1 -1
  143. package/dist/esm/server/sdk/src/core/defaultConfigs.js.map +1 -1
  144. package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker_bg.wasm +0 -0
  145. package/dist/types/src/__tests__/setup/bootstrap.d.ts.map +1 -1
  146. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts +1 -1
  147. package/dist/types/src/core/IndexedDBManager/passkeyClientDB.d.ts.map +1 -1
  148. package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts +6 -6
  149. package/dist/types/src/core/TatchiPasskey/faucets/createAccountRelayServer.d.ts.map +1 -1
  150. package/dist/types/src/core/TatchiPasskey/registration.d.ts.map +1 -1
  151. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts +0 -5
  152. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/adapters/session.d.ts.map +1 -1
  153. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/registration.d.ts.map +1 -1
  154. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/flows/transactions.d.ts.map +1 -1
  155. package/dist/types/src/core/WebAuthnManager/VrfWorkerManager/confirmTxFlow/handleSecureConfirmRequest.d.ts.map +1 -1
  156. package/dist/types/src/core/WebAuthnManager/index.d.ts +1 -1
  157. package/dist/types/src/core/WebAuthnManager/index.d.ts.map +1 -1
  158. package/dist/types/src/core/defaultConfigs.d.ts.map +1 -1
  159. package/dist/types/src/react/components/PasskeyAuthMenu/preload.d.ts.map +1 -1
  160. package/dist/types/src/react/components/PasskeyAuthMenu/shell.d.ts.map +1 -1
  161. package/dist/types/src/react/components/PasskeyAuthMenu/skeleton.d.ts +1 -1
  162. package/dist/types/src/react/components/PasskeyAuthMenu/skeleton.d.ts.map +1 -1
  163. package/dist/types/src/react/components/PasskeyAuthMenu/ui/EmailRecoverySlide.d.ts.map +1 -1
  164. package/dist/types/src/server/core/AuthService.d.ts.map +1 -1
  165. package/dist/workers/offline-export-sw.js +156 -1
  166. package/dist/workers/wasm_vrf_worker_bg.wasm +0 -0
  167. package/dist/workers/web3authn-signer.worker.js +1360 -2
  168. package/dist/workers/web3authn-vrf.worker.js +2857 -2
  169. package/package.json +1 -1
  170. package/dist/cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-CRlobBrN.css.map +0 -1
  171. package/dist/esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D2VHZ04W.css.map +0 -1
  172. package/dist/esm/sdk/registration-MrAOC8Ub.js.map +0 -1
  173. package/dist/esm/sdk/transactions-CrjP8yPD.js.map +0 -1
@@ -1 +1,156 @@
1
- var F=(()=>{let z=self.registration?.scope;if(z){let w=new URL(z).pathname;return w.endsWith("/")?w:w+"/"}return"/offline-export/"})(),V=[`${F}`,`${F}index.html`,`${F}manifest.webmanifest`,`${F}precache.manifest.json`,`${F}offline-export-app.js`,`${F}workers/web3authn-signer.worker.js`,`${F}workers/web3authn-vrf.worker.js`,`${F}workers/wasm_signer_worker_bg.wasm`,`${F}workers/wasm_vrf_worker_bg.wasm`,"/sdk/wallet-service.css","/sdk/w3a-components.css","/sdk/drawer.css","/sdk/tx-tree.css","/sdk/tx-confirmer.css","/sdk/export-viewer.css","/sdk/export-iframe.css","/sdk/wallet-shims.js","/sdk/offline-export-app.js","/sdk/export-private-key-viewer.js","/sdk/iframe-export-bootstrap.js","/sdk/workers/web3authn-signer.worker.js","/sdk/workers/web3authn-vrf.worker.js","/sdk/workers/wasm_signer_worker_bg.wasm","/sdk/workers/wasm_vrf_worker_bg.wasm"];async function Q(z){let w=async(j)=>{try{await z.add(new Request(j,{cache:"reload"}));return}catch{}try{await z.add(j)}catch{}};for(let j of V)await w(j);try{let j=await z.match(`${F}precache.manifest.json`,{ignoreSearch:!0});if(j&&j.ok){let G=await j.clone().json();if(Array.isArray(G)){let K=G.filter((I)=>typeof I==="string"&&(I.startsWith(F)||I.startsWith("/sdk/"))).map((I)=>I);if(K.length)await Promise.allSettled(K.map((I)=>w(I)))}}}catch{}}self.addEventListener("install",(z)=>{z.waitUntil((async()=>{let w=await caches.open("OFFLINE_EXPORT::OFFLINE_EXPORT_v6");await Q(w),self.skipWaiting?.()})())});self.addEventListener("activate",(z)=>{z.waitUntil((async()=>{let w=await caches.keys();await Promise.all(w.filter((j)=>j.startsWith("OFFLINE_EXPORT::")&&j!=="OFFLINE_EXPORT::OFFLINE_EXPORT_v6").map((j)=>caches.delete(j))),self.clients?.claim?.()})())});self.addEventListener("fetch",(z)=>{let w=z.request;if(w.method!=="GET")return;let j=new URL(w.url),G=j.pathname.startsWith(F),K=j.pathname.startsWith("/sdk/");if(!G&&!K)return;z.respondWith((async()=>{let I=await caches.match(w,{ignoreSearch:!0});if(I)return I;if(G&&j.pathname===`${F}offline-export-app.js`){let J=await caches.match("/sdk/offline-export-app.js",{ignoreSearch:!0});if(J)return J}if(G&&j.pathname.startsWith(`${F}workers/`)){let M=`/sdk/workers/${j.pathname.slice(`${F}workers/`.length)}`,N=await caches.match(M,{ignoreSearch:!0});if(N)return N}if(G&&!j.pathname.startsWith(`${F}workers/`)){if(/\.(?:js|css)(?:$|\?)/.test(j.pathname)){let M=j.pathname.split("/").pop()||"";if(M){let N=await caches.match(`/sdk/${M}`,{ignoreSearch:!0});if(N)return N}}}if(K)try{let J=await fetch(w);if(J&&J.ok)return await(await caches.open("OFFLINE_EXPORT::OFFLINE_EXPORT_v6")).put(w,J.clone()),J}catch{}return new Response("Not cached",{status:504,statusText:"Offline asset not pre-cached"})})())});self.addEventListener("message",(z)=>{let w=z?.data;if(!w||typeof w!=="object")return;switch(w.type||""){case"OFFLINE_EXPORT_PING":z.source?.postMessage?.({type:"OFFLINE_EXPORT_PONG",version:"OFFLINE_EXPORT_v6",scope:F,cacheName:"OFFLINE_EXPORT::OFFLINE_EXPORT_v6"});break;case"OFFLINE_EXPORT_PRIME":{z.waitUntil((async()=>{try{let G=await caches.open("OFFLINE_EXPORT::OFFLINE_EXPORT_v6");await Q(G),z.source?.postMessage?.({type:"OFFLINE_EXPORT_PRIMED",ok:!0,version:"OFFLINE_EXPORT_v6"})}catch(G){z.source?.postMessage?.({type:"OFFLINE_EXPORT_PRIMED",ok:!1,version:"OFFLINE_EXPORT_v6",error:String(G?.message||G||"failed")})}})());break}default:break}});
1
+ // src/core/OfflineExport/offline-export-sw.ts
2
+ var VERSION = "OFFLINE_EXPORT_v6";
3
+ var CACHE_NAME = `OFFLINE_EXPORT::${VERSION}`;
4
+ var SCOPE_PATH = (() => {
5
+ const scope = self.registration?.scope;
6
+ if (scope) {
7
+ const p = new URL(scope).pathname;
8
+ return p.endsWith("/") ? p : p + "/";
9
+ }
10
+ return "/offline-export/";
11
+ })();
12
+ var STABLE_PRECACHE = [
13
+ `${SCOPE_PATH}`,
14
+ `${SCOPE_PATH}index.html`,
15
+ `${SCOPE_PATH}manifest.webmanifest`,
16
+ `${SCOPE_PATH}precache.manifest.json`,
17
+ `${SCOPE_PATH}offline-export-app.js`,
18
+ `${SCOPE_PATH}workers/web3authn-signer.worker.js`,
19
+ `${SCOPE_PATH}workers/web3authn-vrf.worker.js`,
20
+ `${SCOPE_PATH}workers/wasm_signer_worker_bg.wasm`,
21
+ `${SCOPE_PATH}workers/wasm_vrf_worker_bg.wasm`,
22
+ `/sdk/wallet-service.css`,
23
+ `/sdk/w3a-components.css`,
24
+ `/sdk/drawer.css`,
25
+ `/sdk/tx-tree.css`,
26
+ `/sdk/tx-confirmer.css`,
27
+ `/sdk/export-viewer.css`,
28
+ `/sdk/export-iframe.css`,
29
+ `/sdk/wallet-shims.js`,
30
+ `/sdk/offline-export-app.js`,
31
+ `/sdk/export-private-key-viewer.js`,
32
+ `/sdk/iframe-export-bootstrap.js`,
33
+ `/sdk/workers/web3authn-signer.worker.js`,
34
+ `/sdk/workers/web3authn-vrf.worker.js`,
35
+ `/sdk/workers/wasm_signer_worker_bg.wasm`,
36
+ `/sdk/workers/wasm_vrf_worker_bg.wasm`
37
+ ];
38
+ async function precacheAll(cache) {
39
+ const cacheAdd = async (url) => {
40
+ try {
41
+ await cache.add(new Request(url, { cache: "reload" }));
42
+ return;
43
+ } catch {}
44
+ try {
45
+ await cache.add(url);
46
+ } catch {}
47
+ };
48
+ for (const url of STABLE_PRECACHE) {
49
+ await cacheAdd(url);
50
+ }
51
+ try {
52
+ const res = await cache.match(`${SCOPE_PATH}precache.manifest.json`, { ignoreSearch: true });
53
+ if (res && res.ok) {
54
+ const list = await res.clone().json();
55
+ if (Array.isArray(list)) {
56
+ const urls = list.filter((x) => typeof x === "string" && (x.startsWith(SCOPE_PATH) || x.startsWith("/sdk/"))).map((x) => x);
57
+ if (urls.length) {
58
+ await Promise.allSettled(urls.map((u) => cacheAdd(u)));
59
+ }
60
+ }
61
+ }
62
+ } catch {}
63
+ }
64
+ self.addEventListener("install", (event) => {
65
+ event.waitUntil((async () => {
66
+ const cache = await caches.open(CACHE_NAME);
67
+ await precacheAll(cache);
68
+ self.skipWaiting?.();
69
+ })());
70
+ });
71
+ self.addEventListener("activate", (event) => {
72
+ event.waitUntil((async () => {
73
+ const keys = await caches.keys();
74
+ await Promise.all(keys.filter((k) => k.startsWith("OFFLINE_EXPORT::") && k !== CACHE_NAME).map((k) => caches.delete(k)));
75
+ self.clients?.claim?.();
76
+ })());
77
+ });
78
+ self.addEventListener("fetch", (event) => {
79
+ const req = event.request;
80
+ if (req.method !== "GET")
81
+ return;
82
+ const url = new URL(req.url);
83
+ const isOfflineScope = url.pathname.startsWith(SCOPE_PATH);
84
+ const isSdkAsset = url.pathname.startsWith("/sdk/");
85
+ if (!isOfflineScope && !isSdkAsset)
86
+ return;
87
+ event.respondWith((async () => {
88
+ const match = await caches.match(req, { ignoreSearch: true });
89
+ if (match)
90
+ return match;
91
+ if (isOfflineScope && url.pathname === `${SCOPE_PATH}offline-export-app.js`) {
92
+ const alt = await caches.match(`/sdk/offline-export-app.js`, { ignoreSearch: true });
93
+ if (alt)
94
+ return alt;
95
+ }
96
+ if (isOfflineScope && url.pathname.startsWith(`${SCOPE_PATH}workers/`)) {
97
+ const rest = url.pathname.slice(`${SCOPE_PATH}workers/`.length);
98
+ const altUrl = `/sdk/workers/${rest}`;
99
+ const alt = await caches.match(altUrl, { ignoreSearch: true });
100
+ if (alt)
101
+ return alt;
102
+ }
103
+ if (isOfflineScope && !url.pathname.startsWith(`${SCOPE_PATH}workers/`)) {
104
+ const isStaticAsset = /\.(?:js|css)(?:$|\?)/.test(url.pathname);
105
+ if (isStaticAsset) {
106
+ const base = url.pathname.split("/").pop() || "";
107
+ if (base) {
108
+ const alt = await caches.match(`/sdk/${base}`, { ignoreSearch: true });
109
+ if (alt)
110
+ return alt;
111
+ }
112
+ }
113
+ }
114
+ if (isSdkAsset) {
115
+ try {
116
+ const res = await fetch(req);
117
+ if (res && res.ok) {
118
+ const cache = await caches.open(CACHE_NAME);
119
+ await cache.put(req, res.clone());
120
+ return res;
121
+ }
122
+ } catch {}
123
+ }
124
+ return new Response("Not cached", { status: 504, statusText: "Offline asset not pre-cached" });
125
+ })());
126
+ });
127
+ self.addEventListener("message", (event) => {
128
+ const data = event?.data;
129
+ if (!data || typeof data !== "object")
130
+ return;
131
+ const type = data.type || "";
132
+ switch (type) {
133
+ case "OFFLINE_EXPORT_PING":
134
+ event.source?.postMessage?.({ type: "OFFLINE_EXPORT_PONG", version: VERSION, scope: SCOPE_PATH, cacheName: CACHE_NAME });
135
+ break;
136
+ case "OFFLINE_EXPORT_PRIME": {
137
+ event.waitUntil((async () => {
138
+ try {
139
+ const cache = await caches.open(CACHE_NAME);
140
+ await precacheAll(cache);
141
+ event.source?.postMessage?.({ type: "OFFLINE_EXPORT_PRIMED", ok: true, version: VERSION });
142
+ } catch (e) {
143
+ event.source?.postMessage?.({
144
+ type: "OFFLINE_EXPORT_PRIMED",
145
+ ok: false,
146
+ version: VERSION,
147
+ error: String(e?.message || e || "failed")
148
+ });
149
+ }
150
+ })());
151
+ break;
152
+ }
153
+ default:
154
+ break;
155
+ }
156
+ });