| 
						
						
							
								
							
						
						
					 | 
					@ -152,7 +152,7 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      <div class="text-blue-500 text-sm font-bold"> | 
					 | 
					 | 
					      <div class="text-blue-500 text-sm font-bold"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        <router-link :to="{ path: '/did/' + encodeURIComponent(activeDid) }"> | 
					 | 
					 | 
					        <router-link :to="{ path: '/did/' + encodeURIComponent(activeDid) }"> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					          Activity | 
					 | 
					 | 
					          Your Activity | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        </router-link> | 
					 | 
					 | 
					        </router-link> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      </div> | 
					 | 
					 | 
					      </div> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    </div> | 
					 | 
					 | 
					    </div> | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -216,7 +216,6 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      <div class="mb-2 font-bold">Location</div> | 
					 | 
					 | 
					      <div class="mb-2 font-bold">Location</div> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      <router-link | 
					 | 
					 | 
					      <router-link | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :to="{ name: 'search-area' }" | 
					 | 
					 | 
					        :to="{ name: 'search-area' }" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        v-if="activeDid" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        class="block w-full text-center text-m bg-gradient-to-b from-slate-400 to-slate-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-1.5 py-2 rounded-md mb-2 mt-6" | 
					 | 
					 | 
					        class="block w-full text-center text-m bg-gradient-to-b from-slate-400 to-slate-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-1.5 py-2 rounded-md mb-2 mt-6" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      > | 
					 | 
					 | 
					      > | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Set Search Area… | 
					 | 
					 | 
					        Set Search Area… | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -622,6 +621,26 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        </button> | 
					 | 
					 | 
					        </button> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      </div> | 
					 | 
					 | 
					      </div> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      <div class="flex justify-between"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        <span> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          <span class="text-slate-500 text-sm font-bold mb-2"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            Passkey Expiration Minutes | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          </span> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          <br /> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          <span class="text-sm ml-2"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            {{ passkeyExpirationDescription }} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          </span> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        </span> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        <div class="relative ml-2"> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          <input | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            type="number" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            class="border border-slate-400 rounded px-2 py-2 text-center w-20" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            v-model="passkeyExpirationMinutes" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            @change="updatePasskeyExpiration" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          /> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        </div> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      </div> | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      <label | 
					 | 
					 | 
					      <label | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        for="toggleShowGeneralAdvanced" | 
					 | 
					 | 
					        for="toggleShowGeneralAdvanced" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        class="flex items-center justify-between cursor-pointer mt-4" | 
					 | 
					 | 
					        class="flex items-center justify-between cursor-pointer mt-4" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -667,7 +686,7 @@ import ImageMethodDialog from "@/components/ImageMethodDialog.vue"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import QuickNav from "@/components/QuickNav.vue"; | 
					 | 
					 | 
					import QuickNav from "@/components/QuickNav.vue"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import TopMessage from "@/components/TopMessage.vue"; | 
					 | 
					 | 
					import TopMessage from "@/components/TopMessage.vue"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { | 
					 | 
					 | 
					import { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					  AppString, | 
					 | 
					 | 
					  AppString, DEFAULT_ENDORSER_API_SERVER, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					  DEFAULT_IMAGE_API_SERVER, | 
					 | 
					 | 
					  DEFAULT_IMAGE_API_SERVER, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  DEFAULT_PUSH_SERVER, | 
					 | 
					 | 
					  DEFAULT_PUSH_SERVER, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  IMAGE_TYPE_PROFILE, | 
					 | 
					 | 
					  IMAGE_TYPE_PROFILE, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -675,14 +694,20 @@ import { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} from "@/constants/app"; | 
					 | 
					 | 
					} from "@/constants/app"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { db, accountsDB } from "@/db/index"; | 
					 | 
					 | 
					import { db, accountsDB } from "@/db/index"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { Account } from "@/db/tables/accounts"; | 
					 | 
					 | 
					import { Account } from "@/db/tables/accounts"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { MASTER_SETTINGS_KEY, Settings } from "@/db/tables/settings"; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { accessToken } from "@/libs/crypto"; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { | 
					 | 
					 | 
					import { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  DEFAULT_PASSKEY_EXPIRATION_MINUTES, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  MASTER_SETTINGS_KEY, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  Settings, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} from "@/db/tables/settings"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  clearPasskeyToken, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  ErrorResponse, | 
					 | 
					 | 
					  ErrorResponse, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  EndorserRateLimits, | 
					 | 
					 | 
					  EndorserRateLimits, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  ImageRateLimits, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  fetchEndorserRateLimits, | 
					 | 
					 | 
					  fetchEndorserRateLimits, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  fetchImageRateLimits, | 
					 | 
					 | 
					  fetchImageRateLimits, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  getHeaders, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  ImageRateLimits, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  tokenExpiryTimeDescription, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} from "@/libs/endorserServer"; | 
					 | 
					 | 
					} from "@/libs/endorserServer"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import { getAccount } from "@/libs/util"; | 
					 | 
					 | 
					import { getAccount } from "@/libs/util"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -713,6 +738,9 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  limitsMessage = ""; | 
					 | 
					 | 
					  limitsMessage = ""; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  loadingLimits = false; | 
					 | 
					 | 
					  loadingLimits = false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  notificationMaybeChanged = false; | 
					 | 
					 | 
					  notificationMaybeChanged = false; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  passkeyExpirationDescription = ""; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  passkeyExpirationMinutes = DEFAULT_PASSKEY_EXPIRATION_MINUTES; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  previousPasskeyExpirationMinutes = DEFAULT_PASSKEY_EXPIRATION_MINUTES; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  profileImageUrl?: string; | 
					 | 
					 | 
					  profileImageUrl?: string; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  publicHex = ""; | 
					 | 
					 | 
					  publicHex = ""; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  publicBase64 = ""; | 
					 | 
					 | 
					  publicBase64 = ""; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -745,12 +773,32 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      await this.initializeState(); | 
					 | 
					 | 
					      await this.initializeState(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      await this.processIdentity(); | 
					 | 
					 | 
					      await this.processIdentity(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      this.passkeyExpirationDescription = tokenExpiryTimeDescription(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       * Beware! I've seen where this "ready" never resolves. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       */ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      const registration = await navigator.serviceWorker.ready; | 
					 | 
					 | 
					      const registration = await navigator.serviceWorker.ready; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.subscription = await registration.pushManager.getSubscription(); | 
					 | 
					 | 
					      this.subscription = await registration.pushManager.getSubscription(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.isSubscribed = !!this.subscription; | 
					 | 
					 | 
					      this.isSubscribed = !!this.subscription; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      console.log("Got to the end of 'mounted' call."); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       * Beware! I've seen where we never get to this point because "ready" never resolves. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					       */ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (error) { | 
					 | 
					 | 
					    } catch (error) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      console.error("Mount error:", error); | 
					 | 
					 | 
					      console.error( | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					      this.handleError(error); | 
					 | 
					 | 
					        "Telling user to clear cache at page create because:", | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        error, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      ); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      this.$notify( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          group: "alert", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          type: "danger", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          title: "Error Loading Account", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					          text: "Clear your cache and start over (after data backup).", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        -1, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      ); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -780,6 +828,10 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.showContactGives = !!settings?.showContactGivesInline; | 
					 | 
					 | 
					    this.showContactGives = !!settings?.showContactGivesInline; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.hideRegisterPromptOnNewContact = | 
					 | 
					 | 
					    this.hideRegisterPromptOnNewContact = | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      !!settings?.hideRegisterPromptOnNewContact; | 
					 | 
					 | 
					      !!settings?.hideRegisterPromptOnNewContact; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    this.passkeyExpirationMinutes = | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      (settings?.passkeyExpirationMinutes as number) ?? | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      DEFAULT_PASSKEY_EXPIRATION_MINUTES; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    this.previousPasskeyExpirationMinutes = this.passkeyExpirationMinutes; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.showGeneralAdvanced = !!settings?.showGeneralAdvanced; | 
					 | 
					 | 
					    this.showGeneralAdvanced = !!settings?.showGeneralAdvanced; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.showShortcutBvc = !!settings?.showShortcutBvc; | 
					 | 
					 | 
					    this.showShortcutBvc = !!settings?.showShortcutBvc; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.warnIfProdServer = !!settings?.warnIfProdServer; | 
					 | 
					 | 
					    this.warnIfProdServer = !!settings?.warnIfProdServer; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -835,11 +887,11 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.publicHex = identity.keys[0].publicKeyHex; | 
					 | 
					 | 
					      this.publicHex = identity.keys[0].publicKeyHex; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); | 
					 | 
					 | 
					      this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.derivationPath = identity.keys[0].meta?.derivationPath as string; | 
					 | 
					 | 
					      this.derivationPath = identity.keys[0].meta?.derivationPath as string; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      this.checkLimitsFor(this.activeDid); | 
					 | 
					 | 
					      await this.checkLimitsFor(this.activeDid); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } else if (account?.publicKeyHex) { | 
					 | 
					 | 
					    } else if (account?.publicKeyHex) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.publicHex = account.publicKeyHex as string; | 
					 | 
					 | 
					      this.publicHex = account.publicKeyHex as string; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); | 
					 | 
					 | 
					      this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      this.checkLimitsFor(this.activeDid); | 
					 | 
					 | 
					      await this.checkLimitsFor(this.activeDid); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -868,75 +920,18 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.notificationMaybeChanged = true; | 
					 | 
					 | 
					    this.notificationMaybeChanged = true; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  /** | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					   * Handles errors and updates the component's state accordingly. | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					   * @param {Error} err - The error object. | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					   */ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  handleError(err: unknown) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if ( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      err instanceof Error && | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      err.message === | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Attempted to load account records with no identifier available." | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    ) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.limitsMessage = "No identifier."; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } else { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error("Telling user to clear cache at page create because:", err); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Loading Account", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "Clear your cache and start over (after data backup).", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async updateShowContactAmounts() { | 
					 | 
					 | 
					  public async updateShowContactAmounts() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      showContactGivesInline: this.showContactGives, | 
					 | 
					 | 
					      showContactGivesInline: this.showContactGives, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (err) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Updating Contact Setting", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "The setting may not have saved. Try again, maybe after restarting the app.", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Telling user to try again after contact-amounts setting update because:", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        err, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async updateShowGeneralAdvanced() { | 
					 | 
					 | 
					  public async updateShowGeneralAdvanced() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      showGeneralAdvanced: this.showGeneralAdvanced, | 
					 | 
					 | 
					      showGeneralAdvanced: this.showGeneralAdvanced, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (err) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Updating Advanced Setting", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "The setting may not have saved. Try again, maybe after restarting the app.", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Telling user to try again after general-advanced setting update because:", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        err, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async updateWarnIfProdServer(newSetting: boolean) { | 
					 | 
					 | 
					  public async updateWarnIfProdServer(newSetting: boolean) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -963,71 +958,35 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async updateWarnIfTestServer(newSetting: boolean) { | 
					 | 
					 | 
					  public async updateWarnIfTestServer(newSetting: boolean) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      warnIfTestServer: newSetting, | 
					 | 
					 | 
					      warnIfTestServer: newSetting, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (err) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Updating Test Warning", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "The setting may not have saved. Try again, maybe after restarting the app.", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Telling user to try again after test-server-warning setting update because:", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        err, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async toggleHideRegisterPromptOnNewContact() { | 
					 | 
					 | 
					  public async toggleHideRegisterPromptOnNewContact() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    const newSetting = !this.hideRegisterPromptOnNewContact; | 
					 | 
					 | 
					    const newSetting = !this.hideRegisterPromptOnNewContact; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      hideRegisterPromptOnNewContact: newSetting, | 
					 | 
					 | 
					      hideRegisterPromptOnNewContact: newSetting, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.hideRegisterPromptOnNewContact = newSetting; | 
					 | 
					 | 
					    this.hideRegisterPromptOnNewContact = newSetting; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (err) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Updating Setting", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "The setting may not have saved. Try again, maybe after restarting the app.", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error("Telling user to try again because:", err); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					  public async updatePasskeyExpiration() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      passkeyExpirationMinutes: this.passkeyExpirationMinutes, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    clearPasskeyToken(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    this.passkeyExpirationDescription = tokenExpiryTimeDescription(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public async updateShowShortcutBvc(newSetting: boolean) { | 
					 | 
					 | 
					  public async updateShowShortcutBvc(newSetting: boolean) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      showShortcutBvc: newSetting, | 
					 | 
					 | 
					      showShortcutBvc: newSetting, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } catch (err) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.$notify( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          group: "alert", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          type: "danger", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          title: "Error Updating BVC Shortcut Setting", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          text: "The setting may not have saved. Try again, maybe after restarting the app.", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        -1, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Telling user to try again after BVC-shortcut setting update because:", | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        err, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  /** | 
					 | 
					 | 
					  /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -1220,7 +1179,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          // the user was not known to be registered, but now they are (because we got no error) so let's record it | 
					 | 
					 | 
					          // the user was not known to be registered, but now they are (because we got no error) so let's record it | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          try { | 
					 | 
					 | 
					          try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            await db.open(); | 
					 | 
					 | 
					            await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					            await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					              isRegistered: true, | 
					 | 
					 | 
					              isRegistered: true, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            }); | 
					 | 
					 | 
					            }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            this.isRegistered = true; | 
					 | 
					 | 
					            this.isRegistered = true; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -1247,7 +1206,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      try { | 
					 | 
					 | 
					      try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        await db.open(); | 
					 | 
					 | 
					        await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					        await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					          isRegistered: false, | 
					 | 
					 | 
					          isRegistered: false, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }); | 
					 | 
					 | 
					        }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        this.isRegistered = false; | 
					 | 
					 | 
					        this.isRegistered = false; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -1272,8 +1231,8 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        (data?.error?.message as string) || "Bad server response."; | 
					 | 
					 | 
					        (data?.error?.message as string) || "Bad server response."; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error( | 
					 | 
					 | 
					      console.error( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        "Got bad response retrieving limits, which usually means user isn't registered.", | 
					 | 
					 | 
					        "Got bad response retrieving limits, which usually means user isn't registered.", | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        error, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					      ); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      //console.error(error); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } else { | 
					 | 
					 | 
					    } else { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      this.limitsMessage = "Got an error retrieving limits."; | 
					 | 
					 | 
					      this.limitsMessage = "Got an error retrieving limits."; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      console.error("Got some error retrieving limits:", error); | 
					 | 
					 | 
					      console.error("Got some error retrieving limits:", error); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -1350,7 +1309,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  async onClickSaveApiServer() { | 
					 | 
					 | 
					  async onClickSaveApiServer() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      apiServer: this.apiServerInput, | 
					 | 
					 | 
					      apiServer: this.apiServerInput, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.apiServer = this.apiServerInput; | 
					 | 
					 | 
					    this.apiServer = this.apiServerInput; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -1358,7 +1317,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  async onClickSavePushServer() { | 
					 | 
					 | 
					  async onClickSavePushServer() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    await db.open(); | 
					 | 
					 | 
					    await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					    await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      webPushServer: this.webPushServerInput, | 
					 | 
					 | 
					      webPushServer: this.webPushServerInput, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    }); | 
					 | 
					 | 
					    }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.webPushServer = this.webPushServerInput; | 
					 | 
					 | 
					    this.webPushServer = this.webPushServerInput; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -1377,7 +1336,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    (this.$refs.imageMethodDialog as ImageMethodDialog).open( | 
					 | 
					 | 
					    (this.$refs.imageMethodDialog as ImageMethodDialog).open( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      async (imgUrl) => { | 
					 | 
					 | 
					      async (imgUrl) => { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        await db.open(); | 
					 | 
					 | 
					        await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					        await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					          profileImageUrl: imgUrl, | 
					 | 
					 | 
					          profileImageUrl: imgUrl, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }); | 
					 | 
					 | 
					        }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        this.profileImageUrl = imgUrl; | 
					 | 
					 | 
					        this.profileImageUrl = imgUrl; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -1407,16 +1366,13 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      return; | 
					 | 
					 | 
					      return; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    try { | 
					 | 
					 | 
					    try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      const token = await accessToken(this.activeDid); | 
					 | 
					 | 
					      const headers = await getHeaders(this.activeDid); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					      this.passkeyExpirationDescription = tokenExpiryTimeDescription(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      const response = await this.axios.delete( | 
					 | 
					 | 
					      const response = await this.axios.delete( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        DEFAULT_IMAGE_API_SERVER + | 
					 | 
					 | 
					        DEFAULT_IMAGE_API_SERVER + | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          "/image/" + | 
					 | 
					 | 
					          "/image/" + | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          encodeURIComponent(this.profileImageUrl), | 
					 | 
					 | 
					          encodeURIComponent(this.profileImageUrl), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        { | 
					 | 
					 | 
					        { headers }, | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					          headers: { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Authorization: `Bearer ${token}`, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					          }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					      ); | 
					 | 
					 | 
					      ); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      if (response.status === 204) { | 
					 | 
					 | 
					      if (response.status === 204) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // don't bother with a notification | 
					 | 
					 | 
					        // don't bother with a notification | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -1436,7 +1392,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      } | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      await db.open(); | 
					 | 
					 | 
					      await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					      db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					      await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        profileImageUrl: undefined, | 
					 | 
					 | 
					        profileImageUrl: undefined, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      }); | 
					 | 
					 | 
					      }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -1448,7 +1404,7 @@ export default class AccountViewView extends Vue { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        console.error("The image was already deleted:", error); | 
					 | 
					 | 
					        console.error("The image was already deleted:", error); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        await db.open(); | 
					 | 
					 | 
					        await db.open(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        db.settings.update(MASTER_SETTINGS_KEY, { | 
					 | 
					 | 
					        await db.settings.update(MASTER_SETTINGS_KEY, { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					          profileImageUrl: undefined, | 
					 | 
					 | 
					          profileImageUrl: undefined, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        }); | 
					 | 
					 | 
					        }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |