mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-22 03:10:43 +08:00
81 lines
2.6 KiB
TypeScript
81 lines
2.6 KiB
TypeScript
import type { CapabilityScope } from '@/types/models';
|
|
|
|
export const BRIDGE_CAPABILITIES = [
|
|
'system.ping',
|
|
'browser.tabs',
|
|
'browser.frames',
|
|
'browser.context',
|
|
'browser.node.inspect',
|
|
'browser.node.action',
|
|
'browser.cookies',
|
|
'browser.takeover',
|
|
'browser.handoff.request',
|
|
'browser.handoff.status',
|
|
'browser.network.start',
|
|
'browser.network.status',
|
|
'browser.network.list',
|
|
'browser.network.clear',
|
|
'browser.network.stop',
|
|
'browser.network.export',
|
|
'browser.network.poc',
|
|
'browser.network.analysis',
|
|
'browser.observe.start',
|
|
'browser.observe.status',
|
|
'browser.observe.list',
|
|
'browser.observe.clear',
|
|
'browser.observe.stop',
|
|
...(!(import.meta.env.FIREFOX && import.meta.env.MODE === 'store') ? ['browser.invoke', 'browser.eval'] : []),
|
|
'proxy.list',
|
|
'proxy.switch',
|
|
] as const;
|
|
|
|
export const READ_CAPABILITY_SCOPES: CapabilityScope[] = [
|
|
'browser.tabs.read',
|
|
'browser.dom.read',
|
|
'browser.storage.read',
|
|
'browser.cookies.read',
|
|
'browser.network.read',
|
|
'browser.observation.read',
|
|
];
|
|
|
|
export const CONTROL_CAPABILITY_SCOPES: CapabilityScope[] = [
|
|
...READ_CAPABILITY_SCOPES,
|
|
'browser.dom.write',
|
|
'browser.tab.activate',
|
|
...(!(import.meta.env.FIREFOX && import.meta.env.MODE === 'store')
|
|
? ['browser.page.invoke' as const, 'browser.page.eval.expression' as const]
|
|
: []),
|
|
'browser.human.takeover',
|
|
'browser.network.capture',
|
|
'browser.network.sensitive.read',
|
|
'browser.observation.control',
|
|
'browser.observation.sensitive.read',
|
|
'browser.proxy.read',
|
|
'browser.proxy.write',
|
|
];
|
|
|
|
export const CAPABILITY_LABELS: Record<CapabilityScope, string> = {
|
|
'browser.tabs.read': '标签页列表',
|
|
'browser.dom.read': '页面 DOM',
|
|
'browser.dom.write': '操作页面元素',
|
|
'browser.storage.read': '页面 Storage',
|
|
'browser.cookies.read': 'Cookie',
|
|
'browser.tab.activate': '切到前台',
|
|
'browser.page.invoke': '调用页面函数',
|
|
'browser.page.eval.expression': '执行页面表达式',
|
|
'browser.page.eval.program': '执行页面程序',
|
|
'browser.human.takeover': '人工接管',
|
|
'browser.network.read': '读取网络摘要',
|
|
'browser.network.capture': '控制网络捕获',
|
|
'browser.network.sensitive.read': '读取请求头与请求体',
|
|
'browser.observation.read': '读取页面行为观测',
|
|
'browser.observation.control': '控制页面行为观测',
|
|
'browser.observation.sensitive.read': '读取观测值预览',
|
|
'browser.proxy.read': '读取代理',
|
|
'browser.proxy.write': '切换代理',
|
|
};
|
|
|
|
export function isControlScopeSet(scopes: readonly CapabilityScope[]): boolean {
|
|
return scopes.some((scope) => !READ_CAPABILITY_SCOPES.includes(scope));
|
|
}
|