1import type { MessageType } from "../shared/types";23export type MessageContext =4 | "extension-page-only"5 | "content-script-allowed"6 | "background-internal"7 | "page-relay";891011121314export const MESSAGE_CONTEXT_POLICY = {15 16 GET_SYNC_ALERTS: "extension-page-only",17 GET_PENDING_VOUCHED_DEVICES: "extension-page-only",18 CONFIRM_VOUCHED_DEVICE: "extension-page-only",19 REJECT_VOUCHED_DEVICE: "extension-page-only",20 ROTATE_SYNC_IDENTITY: "extension-page-only",21 UNLOCK: "extension-page-only",22 UNLOCK_WITH_PIN: "extension-page-only",23 LOCK: "extension-page-only",24 IS_UNLOCKED: "extension-page-only",25 HAS_VAULT: "extension-page-only",26 GET_ENTRIES: "extension-page-only",27 BATCH_ADD_ENTRIES: "extension-page-only",28 RESTORE_ENTRIES: "extension-page-only",29 CLEAR_VAULT_ENTRIES: "extension-page-only",30 DELETE_ENTRY: "extension-page-only",31 CREATE_VAULT: "extension-page-only",32 CREATE_VAULT_FROM_ROOT_KEY: "extension-page-only",33 CHECK_ALL_BREACHES: "extension-page-only",34 UPDATE_SETTINGS: "extension-page-only",35 SETUP_PIN: "extension-page-only",36 DISABLE_PIN: "extension-page-only",37 ACTIVATE_LICENSE: "extension-page-only",38 GET_LICENSE: "extension-page-only",39 GET_LICENSE_KEY: "extension-page-only",40 IS_DURESS_ENABLED: "extension-page-only",41 SETUP_DURESS: "extension-page-only",42 DISABLE_DURESS: "extension-page-only",43 VERIFY_MAIN_PASSWORD: "extension-page-only",44 CHANGE_PASSWORD: "extension-page-only",45 GET_LOCAL_IDENTITY: "extension-page-only",46 LIST_PAIRED_DEVICES: "extension-page-only",47 RENAME_PAIRED_DEVICE: "extension-page-only",48 UNPAIR_DEVICE: "extension-page-only",49 RENAME_LOCAL_DEVICE: "extension-page-only",50 START_ADOPTION_SOURCE: "extension-page-only",51 START_ADOPTION_RECEIVER: "extension-page-only",52 CANCEL_ADOPTION_SOURCE: "extension-page-only",53 SOURCE_SAS_DECISION: "extension-page-only",54 TRIGGER_SYNC: "extension-page-only",55 GET_SYNC_STATE: "extension-page-only",56 GET_SYNC_SETTINGS: "extension-page-only",57 SET_SYNC_SETTINGS: "extension-page-only",58 GET_PENDING_PASSKEY: "extension-page-only",59 APPROVE_PASSKEY: "extension-page-only",60 DENY_PASSKEY: "extension-page-only",61 GET_PASSKEY_PROVIDER_STATE: "extension-page-only",62 SET_PASSKEY_PROVIDER_ENABLED: "extension-page-only",63 GET_DELETED_ENTRIES: "extension-page-only",64 RESTORE_ENTRY: "extension-page-only",65 PURGE_ENTRY: "extension-page-only",66 PURGE_EXPIRED_TRASH: "extension-page-only",67 GET_VAULT_HISTORY: "extension-page-only",68 RESTORE_VAULT_SNAPSHOT: "extension-page-only",69 COUNT_DUPLICATES: "extension-page-only",70 DEDUPLICATE_ENTRIES: "extension-page-only",71 GET_VAULT_STATUS: "extension-page-only",72 GET_ADVANCED_HEALTH_REPORT: "extension-page-only",73 DEACTIVATE_LICENSE: "extension-page-only",74 GET_IDENTITIES: "content-script-allowed",75 DESTROY_VAULT: "extension-page-only",76 COMPLETE_FIREFOX_PASSKEY_CREATE: "extension-page-only",77 VALIDATE_RECOVERY_WORDS: "extension-page-only",78 RECOVER_WITH_WORDS: "extension-page-only",79 GET_RECOVERY_WORDS: "extension-page-only",80 GET_RECOVERY_CONFIRM_PENDING: "extension-page-only",81 SET_RECOVERY_CONFIRM_PENDING: "extension-page-only",82 CLEAR_RECOVERY_CONFIRM_PENDING: "extension-page-only",83 GET_IDENTITY_SUGGESTIONS: "extension-page-only",84 SAVE_NOTE: "extension-page-only",85 DELETE_NOTE: "extension-page-only",86 GET_NOTES: "extension-page-only",87 SEARCH_VAULT: "extension-page-only",88 GET_CODEX_VAULT_DATA: "extension-page-only",89 ESTIMATE_CODEX_PAGES: "extension-page-only",90 GENERATE_CODEX: "extension-page-only",91 RESTORE_FROM_CODEX: "extension-page-only",92 OPEN_DETACHED_POPUP: "extension-page-only",9394 95 96 ADD_ENTRY: "content-script-allowed",97 UPDATE_ENTRY: "content-script-allowed",98 ADD_ADDITIONAL_URL: "content-script-allowed",99 AUTOFILL_QUERY: "content-script-allowed",100 COPY: "content-script-allowed",101 FIRE_CANARY_PING: "content-script-allowed",102 GET_ENTRY_FOR_FILL: "content-script-allowed",103 GET_ENTRY_FOR_EDIT: "content-script-allowed",104 GET_SETTINGS: "content-script-allowed",105 GET_SITE_PASSWORD_POLICY: "content-script-allowed",106 RECORD_MANUAL_SUMMON: "content-script-allowed",107 DECLINE_CARD_SAVE: "content-script-allowed",108 IS_CARD_DECLINED: "content-script-allowed",109 PASSKEY_AUTH_RESPONSE: "content-script-allowed",110 ML_INIT: "content-script-allowed",111 ML_PREDICT_BATCH: "content-script-allowed",112 OPEN_PRO_GATE: "content-script-allowed",113 OPEN_POPUP: "content-script-allowed",114 TOUCH_AUTO_LOCK: "content-script-allowed",115116 117 INITIATE_FIREFOX_PASSKEY_CREATE: "page-relay",118 PASSKEY_OFFER_DECLINE: "page-relay",119 GET_PASSKEY_OFFER_DECLINED: "page-relay",120 GET_PASSKEY_FOR_DOMAIN: "page-relay",121 PASSKEY_HAS_CREDENTIALS: "page-relay",122 PASSKEY_CREATE: "page-relay",123 PASSKEY_GET: "page-relay",124125 126 CLEAR_CLIPBOARD: "background-internal",127 VOUCHED_DEVICE_PENDING: "background-internal",128 DEVICE_KEY_ROTATED: "background-internal",129 ADOPTION_SOURCE_SAS: "background-internal",130 ADOPTION_SOURCE_RESULT: "background-internal",131 PING: "background-internal",132 SUMMON_AUTOFILL: "background-internal",133 VAULT_LOCKED: "background-internal",134 VAULT_UNLOCKED: "background-internal",135 PRO_GATE_TRIGGERED: "background-internal",136 PASSKEY_PRO_GATE: "background-internal",137 SHOW_PASSKEY_TOAST: "background-internal",138 DISMISS_PASSKEY_TOAST: "background-internal",139 SHOULD_PLAY_CELEBRATION: "extension-page-only",140 MARK_CELEBRATION_PLAYED: "extension-page-only",141} satisfies Record<MessageType, MessageContext>;142143export function getMessageContext(type: unknown): MessageContext | undefined {144 if (typeof type !== "string") return undefined;145 return Object.hasOwn(MESSAGE_CONTEXT_POLICY, type)146 ? MESSAGE_CONTEXT_POLICY[type as MessageType]147 : undefined;148}