@gkd-kit/inspect 0.0.1756715340160 → 0.0.1756717177622

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 (49) hide show
  1. package/dist/404.html +3 -3
  2. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-D9C2Puxf.js → ActionCard.vue_vue_type_script_setup_true_lang-BY98wOL2.js} +2 -2
  3. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-D9C2Puxf.js.map → ActionCard.vue_vue_type_script_setup_true_lang-BY98wOL2.js.map} +1 -1
  4. package/dist/assets/DevicePage-2eLd65ot.js +49 -0
  5. package/dist/assets/DevicePage-2eLd65ot.js.map +1 -0
  6. package/dist/assets/{HomePage-Ckec0Lnr.js → HomePage-47_TAQ9h.js} +2 -2
  7. package/dist/assets/{HomePage-Ckec0Lnr.js.map → HomePage-47_TAQ9h.js.map} +1 -1
  8. package/dist/assets/{ImportPage-CY2laQkD.js → ImportPage-DmYJkTpm.js} +2 -2
  9. package/dist/assets/{ImportPage-CY2laQkD.js.map → ImportPage-DmYJkTpm.js.map} +1 -1
  10. package/dist/assets/{Input-0Oeqy0g_.js → Input-Br-unvKw.js} +2 -2
  11. package/dist/assets/{Input-0Oeqy0g_.js.map → Input-Br-unvKw.js.map} +1 -1
  12. package/dist/assets/{SelectorPage-Dfsz__tN.js → SelectorPage-o9LIj-I1.js} +2 -2
  13. package/dist/assets/{SelectorPage-Dfsz__tN.js.map → SelectorPage-o9LIj-I1.js.map} +1 -1
  14. package/dist/assets/{SnapshotPage-D74GPDdI.js → SnapshotPage-055LCAoq.js} +4 -4
  15. package/dist/assets/{SnapshotPage-D74GPDdI.js.map → SnapshotPage-055LCAoq.js.map} +1 -1
  16. package/dist/assets/{SvgPage-C1zjQVfl.js → SvgPage-BagXHNio.js} +2 -2
  17. package/dist/assets/{SvgPage-C1zjQVfl.js.map → SvgPage-BagXHNio.js.map} +1 -1
  18. package/dist/assets/{TrackGraph-9kJxOprr.js → TrackGraph-30Lwxufc.js} +3 -3
  19. package/dist/assets/{TrackGraph-9kJxOprr.js.map → TrackGraph-30Lwxufc.js.map} +1 -1
  20. package/dist/assets/{_404Page-Bn8vlGnA.js → _404Page-EBmWBN0j.js} +2 -2
  21. package/dist/assets/{_404Page-Bn8vlGnA.js.map → _404Page-EBmWBN0j.js.map} +1 -1
  22. package/dist/assets/chunk-FQ5_3Fvt.js +3 -0
  23. package/dist/assets/{chunk-DI5b2YDy.js.map → chunk-FQ5_3Fvt.js.map} +1 -1
  24. package/dist/assets/{dayjs.min-DBvJpvjN.js → dayjs.min-DuZZSErs.js} +3 -3
  25. package/dist/assets/{dayjs.min-DBvJpvjN.js.map → dayjs.min-DuZZSErs.js.map} +1 -1
  26. package/dist/assets/{error-BeYrEikB.js → error-CWzaCaGi.js} +2 -2
  27. package/dist/assets/{error-BeYrEikB.js.map → error-CWzaCaGi.js.map} +1 -1
  28. package/dist/assets/{import-CAlhG5XC.js → import-D46jGS_0.js} +2 -2
  29. package/dist/assets/{import-CAlhG5XC.js.map → import-D46jGS_0.js.map} +1 -1
  30. package/dist/assets/{index-DQpmpBAn.js → index-BDgd4jKy.js} +8 -6
  31. package/dist/assets/index-BDgd4jKy.js.map +1 -0
  32. package/dist/assets/{index-D0bRFMVs.js → index-GTBK_16Z.js} +3 -3
  33. package/dist/assets/{index-D0bRFMVs.js.map → index-GTBK_16Z.js.map} +1 -1
  34. package/dist/assets/{jszip.min-_1impF28.js → jszip.min-C6z3zxPP.js} +2 -2
  35. package/dist/assets/{jszip.min-_1impF28.js.map → jszip.min-C6z3zxPP.js.map} +1 -1
  36. package/dist/assets/{node-TE3TnSn0.js → node-Dqax9l0e.js} +2 -2
  37. package/dist/assets/{node-TE3TnSn0.js.map → node-Dqax9l0e.js.map} +1 -1
  38. package/dist/assets/snapshot-B7-fb-hQ.js +3 -0
  39. package/dist/assets/snapshot-B7-fb-hQ.js.map +1 -0
  40. package/dist/assets/{table-Bd0KeboP.js → table-x678kzFG.js} +2 -2
  41. package/dist/assets/{table-Bd0KeboP.js.map → table-x678kzFG.js.map} +1 -1
  42. package/dist/index.html +3 -3
  43. package/package.json +1 -1
  44. package/dist/assets/DevicePage-D2bRCKLk.js +0 -49
  45. package/dist/assets/DevicePage-D2bRCKLk.js.map +0 -1
  46. package/dist/assets/chunk-DI5b2YDy.js +0 -3
  47. package/dist/assets/index-DQpmpBAn.js.map +0 -1
  48. package/dist/assets/snapshot-BCm8BOZh.js +0 -3
  49. package/dist/assets/snapshot-BCm8BOZh.js.map +0 -1
package/dist/index.html CHANGED
@@ -1,7 +1,7 @@
1
1
  <!doctype html>
2
2
  <html lang="zh">
3
3
  <head>
4
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/polyfills-DHsnwdd7.js"></script>
4
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756717177622/files/dist/assets/polyfills-DHsnwdd7.js"></script>
5
5
 
6
6
  <meta charset="UTF-8" />
7
7
  <link
@@ -12,8 +12,8 @@
12
12
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
13
  <meta name="referrer" content="no-referrer" />
14
14
  <title>GKD</title>
15
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/index-DQpmpBAn.js"></script>
16
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/index-BOn7cIqR.css">
15
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756717177622/files/dist/assets/index-BDgd4jKy.js"></script>
16
+ <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756717177622/files/dist/assets/index-BOn7cIqR.css">
17
17
  </head>
18
18
 
19
19
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gkd-kit/inspect",
3
- "version": "0.0.1756715340160",
3
+ "version": "0.0.1756717177622",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,49 +0,0 @@
1
- import{z as x,aY as g,h as pe,aK as ue,a$ as ce,q as de,A as ge,a_ as M,$ as me,E as fe,B as O,H as ve,I as J,J as K,K as L,G as a,L as w,M as c,P as o,V as A,_ as ke,W as _e,T as h,O as W,R as Q,Q as we,U as he,S as H}from"./index-DQpmpBAn.js";import{e as Se,a as F,b as T,p as ye}from"./snapshot-BCm8BOZh.js";import{a as X,l as xe}from"./error-BeYrEikB.js";import{u as Ce,a as be,_ as Ie}from"./table-Bd0KeboP.js";import{u as R,k as Ne,a as Y,_ as Re}from"./dayjs.min-DBvJpvjN.js";import{_ as Pe}from"./Input-0Oeqy0g_.js";import"./node-TE3TnSn0.js";const Be=D=>{const s=x(D),C=x(),m=async(n,r)=>{var P;if(!s.value)throw new Error("origin must exist");const v=new URL("/api/"+n,s.value);console.log("RPC:",n,r);const p=await Se(v,r).catch(S=>{throw g.error("网络错误:"+n),S});if(console.log("RPC Response:",n,p),!p.ok)throw g.error("接口错误:"+n+":"+p.status),p;if((P=p.headers.get("Content-Type"))!=null&&P.includes("application/json")){const S=await p.clone().json();if(S.__error)throw g.error(S.message),p}return p},f=async(n,r={})=>m(n,{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),d=async(n,r={})=>f(n,r).then(v=>v.json());return{origin:s,api:{getServerInfo:async()=>d("getServerInfo"),getSnapshot:async n=>{var r,v;return((v=(r=C.value)==null?void 0:r.gkdAppInfo)==null?void 0:v.versionName)==="1.10.4"?m("snapshot?id="+n.id).then(p=>p.json()):d("getSnapshot",n)},getScreenshot:async n=>f("getScreenshot",n).then(r=>r.arrayBuffer()),captureSnapshot:async()=>d("captureSnapshot"),getSnapshots:async()=>d("getSnapshots"),updateSubscription:async n=>d("updateSubscription",{...n,id:-1,name:"内存订阅",version:0}),execSelector:async n=>(n=structuredClone(n),n.action||=void 0,d("execSelector",n))},serverInfo:C}},Ue={flex:"","gap-10px":"","flex-items-center":""},ze={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},Ae={flex:"","items-center":"","gap-24px":""},Te={key:0,gkd_code:"","pl-16px":"","whitespace-nowrap":"",flex:"","items-center":""},Fe=pe({__name:"DevicePage",setup(D){ue();const{api:s,origin:C,serverInfo:m}=Be(),f=ce("device_link",""),d=R(async()=>{f.value&&(C.value=X(()=>new URL(f.value.trim()),()=>"非法设备地址").origin,f.value=C.value,m.value=await s.getServerInfo())}),V=de(()=>{if(!m.value)return"未连接设备";const e=m.value.device,t=m.value.gkdAppInfo;return`${e.manufacturer} Android${e.release} - GKD${t.versionName}`});ge(async()=>{await M(500),me(f.value)&&d.invoke()});const n=x([]);fe(async()=>{if(!m.value)return;document.title=V.value;const e=await s.getSnapshots();e.sort((t,i)=>i.id-t.id),n.value=e,I.value=""});const r=R(async()=>{const e=await s.captureSnapshot(),t=await s.getScreenshot({id:e.id});await F.setItem(e.id,e),await T.setItem(e.id,t),g.success("捕获并保存快照成功");const i=await s.getSnapshots();i.sort((_,N)=>N.id-_.id),n.value=i}),v=R(async()=>{const e=(await s.getSnapshots()).map(u=>u.id),t=new Set((await T.keys()).map(u=>parseInt(u))),i=e.filter(u=>!t.has(u));if(i.length==0){g.success("没有新记录可导入");return}let _=0;const N=ye(3);await Promise.all(i.map(u=>N(async()=>{const[z,G]=await Promise.all([s.getSnapshot({id:u}),s.getScreenshot({id:u})]);z.nodes&&(await Promise.all([F.setItem(u,z),T.setItem(u,G)]),_++)}))),g.success(`导入${_}条新记录`)}),{activityIdCol:p,appIdCol:P,appNameCol:S,ctimeCol:$,appVersionCodeCol:Z,appVersionNameCol:ee,resetColWidth:te}=Ce(),oe=e=>{e.columnKey==$.key&&($.sortOrder=e.order)},E=Ne(async e=>{let t=!1;if(!await F.hasItem(e.id)){const i=await s.getSnapshot({id:e.id});console.log(i),t=!0}if(!await T.hasItem(e.id)){const i=await s.getScreenshot({id:e.id});console.log(i),t=!0}t&&await M(1e3)},e=>e.id),ne=[$,S,P,Z,ee,p,{key:"actions",title:"操作",fixed:"right",width:"120px",render(e){return a(Y,{size:"small"},{default:()=>[a(Q,{size:"small",loading:E.loading[e.id],onClick:()=>E.invoke(e)},{default:()=>[h("查看")]})]})}}],b=O({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:e=>{b.page=e},onUpdatePageSize:e=>{b.pageSize=e,b.page=1}});ve(b,te);const B=x(!1),I=x(""),j=R(async()=>{const e=X(()=>xe.parse(I.value.trim()));if(e){if(e.categories||e.globalGroups||e.apps)await s.updateSubscription(e);else if(typeof e.id=="string")await s.updateSubscription({apps:[e]});else if(Array.isArray(e)&&typeof e[0].id=="string")await s.updateSubscription({apps:e});else if(typeof e.key=="number")await s.updateSubscription({globalGroups:[e]});else if(Array.isArray(e)&&typeof e[0].key=="number")await s.updateSubscription({globalGroups:e});else{g.error("无法识别的订阅文本");return}g.success("修改成功")}}),U=x(!1),se=[{label:"仅查询",value:""},{value:"click",label:"click"},{value:"clickNode",label:"clickNode"},{value:"clickCenter",label:"clickCenter"},{value:"back",label:"back"},{value:"longClick",label:"longClick"},{value:"longClickNode",label:"longClickNode"},{value:"longClickCenter",label:"longClickCenter"}],k=O({selector:"",action:"click",quickFind:!1}),q=R(async()=>{const e=await s.execSelector({...k,fastQuery:k.quickFind});if(e.message){g.success("操作成功:"+e.message);return}e.action?g.success((e.result?"操作成功:":"操作失败")+e.action):!e.action&&e.result&&g.success("查询成功")}),ae=`
2
- 请输入订阅文本(JSON5语法):
3
- 示例1-更新单个应用的规则:
4
- {
5
- id: 'appId',
6
- groups: []
7
- }
8
-
9
- 示例2-更新多个应用的规则:
10
- [
11
- {
12
- id: 'appId1',
13
- groups: []
14
- },
15
- {
16
- id: 'appId2',
17
- groups: []
18
- }
19
- ]
20
-
21
- 示例3-更新全局规则(1.7.0):
22
- {
23
- name: '全局规则-1',
24
- key: 0,
25
- rules: []
26
- }
27
-
28
- 示例3-更新多个全局规则(1.7.0):
29
- [
30
- {
31
- name: '全局规则-1',
32
- key: 0,
33
- rules: []
34
- },
35
- {
36
- name: '全局规则-2',
37
- key: 1,
38
- rules: []
39
- }
40
- ]
41
-
42
- 示例4-更新整个订阅(1.7.0):
43
- {
44
- apps: [],
45
- globalGroups: [],
46
- categories: [],
47
- }
48
- `.trim();return(e,t)=>{const i=Pe,_=ke,N=_e,u=Y,z=be,G=J("SvgIcon"),y=Q,ie=J("RouterLink"),le=Re,re=Ie;return L(),K(H,null,[a(_,{show:o(B),"onUpdate:show":t[1]||(t[1]=l=>A(B)?B.value=l:null),preset:"dialog",style:{width:"800px"},title:"修改内存订阅",positiveText:"确认",positiveButtonProps:{loading:o(j).loading,onClick(){o(j).invoke()}}},{default:c(()=>[a(i,{value:o(I),"onUpdate:value":t[0]||(t[0]=l=>A(I)?I.value=l:null),disabled:o(j).loading,type:"textarea",class:"gkd_code",autosize:{minRows:20,maxRows:25},placeholder:o(ae)},null,8,["value","disabled","placeholder"])]),_:1},8,["show","positiveButtonProps"]),a(_,{show:o(U),"onUpdate:show":t[5]||(t[5]=l=>A(U)?U.value=l:null),preset:"dialog",style:{width:"800px"},title:"执行选择器",positiveText:"确认",positiveButtonProps:{loading:o(q).loading,onClick(){o(q).invoke()}}},{default:c(()=>[a(i,{value:o(k).selector,"onUpdate:value":t[2]||(t[2]=l=>o(k).selector=l),disabled:o(q).loading,type:"textarea",class:"gkd_code",autosize:{minRows:4,maxRows:10},placeholder:"请输入合法的选择器"},null,8,["value","disabled"]),t[12]||(t[12]=w("div",{"h-15px":""},null,-1)),a(u,null,{default:c(()=>[a(N,{checked:o(k).quickFind,"onUpdate:checked":t[3]||(t[3]=l=>o(k).quickFind=l)},{default:c(()=>t[9]||(t[9]=[h(" 快速查找 ")])),_:1,__:[9]},8,["checked"]),t[10]||(t[10]=w("a",{href:"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind",target:"_blank",rel:"noopener noreferrer"}," 查找说明 ",-1))]),_:1,__:[10]}),t[13]||(t[13]=w("div",{"h-10px":""},null,-1)),w("div",Ue,[a(z,{value:o(k).action,"onUpdate:value":t[4]||(t[4]=l=>o(k).action=l),options:se,class:"w-150px"},null,8,["value"]),t[11]||(t[11]=w("a",{href:"https://gkd.li/api/interfaces/RawRuleProps#action",target:"_blank",rel:"noopener noreferrer"}," 操作说明 ",-1))])]),_:1,__:[12,13]},8,["show","positiveButtonProps"]),w("div",ze,[w("div",Ae,[a(ie,{to:"/",class:"flex ml-12px",title:"首页"},{default:c(()=>[a(y,{text:"",style:{"--n-icon-size":"24px"}},{icon:c(()=>[a(G,{name:"home"})]),_:1})]),_:1}),a(le,null,{default:c(()=>[a(i,{value:o(f),"onUpdate:value":t[6]||(t[6]=l=>A(f)?f.value=l:null),placeholder:"请输入设备地址",class:"gkd_code",style:{width:"240px"},onKeyup:we(o(d).invoke,["enter"])},null,8,["value","onKeyup"]),a(y,{loading:o(d).loading,onClick:o(d).invoke},{default:c(()=>t[14]||(t[14]=[h(" 刷新连接 ")])),_:1,__:[14]},8,["loading","onClick"]),o(m)?(L(),K("div",Te,he(o(V)),1)):W("",!0)]),_:1}),o(m)?(L(),K(H,{key:0},[a(y,{loading:o(r).loading,onClick:o(r).invoke},{default:c(()=>t[15]||(t[15]=[h(" 捕获快照 ")])),_:1,__:[15]},8,["loading","onClick"]),a(y,{loading:o(v).loading,onClick:o(v).invoke},{default:c(()=>t[16]||(t[16]=[h(" 下载所有快照 ")])),_:1,__:[16]},8,["loading","onClick"]),a(y,{onClick:t[7]||(t[7]=l=>B.value=!0)},{default:c(()=>t[17]||(t[17]=[h(" 修改内存订阅 ")])),_:1,__:[17]}),a(y,{onClick:t[8]||(t[8]=l=>U.value=!0)},{default:c(()=>t[18]||(t[18]=[h(" 执行选择器 ")])),_:1,__:[18]})],64)):W("",!0)]),a(re,{striped:"","flex-height":"",data:o(n),columns:ne,pagination:o(b),size:"small",class:"flex-1",scrollX:1200,"onUpdate:sorter":oe},null,8,["data","pagination"])])],64)}}});export{Fe as default};
49
- //# sourceMappingURL=DevicePage-D2bRCKLk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevicePage-D2bRCKLk.js","sources":["../../src/utils/api.ts","../../src/views/DevicePage.vue"],"sourcesContent":["import { message } from './discrete';\nimport { enhanceFetch } from './fetch';\n\ninterface Reqid {\n id: number;\n}\n\nexport const useDeviceApi = (initOrigin?: string) => {\n const origin = shallowRef(initOrigin);\n const serverInfo = shallowRef<ServerInfo>();\n const request = async (name: string, init?: RequestInit) => {\n if (!origin.value) {\n throw new Error(`origin must exist`);\n }\n const u = new URL(`/api/` + name, origin.value);\n console.log(`RPC:`, name, init);\n const response = await enhanceFetch(u, init).catch((e) => {\n message.error(`网络错误:` + name);\n throw e;\n });\n console.log(`RPC Response:`, name, response);\n if (!response.ok) {\n message.error(`接口错误:` + name + `:` + response.status);\n throw response;\n }\n if (response.headers.get(`Content-Type`)?.includes(`application/json`)) {\n const error = (await response.clone().json()) as RpcError;\n if (error.__error) {\n message.error(error.message);\n throw response;\n }\n }\n return response;\n };\n const baseRpc = async (name: string, data: object = {}) => {\n return request(name, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(data),\n });\n };\n const jsonRpc = async <T>(name: string, data: object = {}): Promise<T> => {\n return baseRpc(name, data).then((r) => r.json());\n };\n const api = {\n getServerInfo: async () => jsonRpc<ServerInfo>(`getServerInfo`),\n getSnapshot: async (data: Reqid): Promise<Snapshot> => {\n if (serverInfo.value?.gkdAppInfo?.versionName === '1.10.4') {\n // 兼容旧版本 BUG\n // https://github.com/gkd-kit/gkd/blob/v1.10.4/app/src/main/kotlin/li/songe/gkd/debug/HttpService.kt#L198\n return request('snapshot?id=' + data.id).then((r) => r.json());\n }\n return jsonRpc(`getSnapshot`, data);\n },\n getScreenshot: async (data: Reqid) => {\n return baseRpc(`getScreenshot`, data).then((r) => r.arrayBuffer());\n },\n captureSnapshot: async () => jsonRpc<Snapshot>(`captureSnapshot`),\n getSnapshots: async () => jsonRpc<Snapshot[]>(`getSnapshots`),\n updateSubscription: async (data: any) => {\n return jsonRpc(`updateSubscription`, {\n ...data,\n id: -1,\n name: '内存订阅',\n version: 0,\n });\n },\n execSelector: async (data: {\n selector: string;\n action?: string;\n fastQuery?: boolean;\n }) => {\n data = structuredClone(data);\n data.action ||= undefined;\n return jsonRpc<{ message: string; action: string; result: boolean }>(\n `execSelector`,\n data,\n );\n },\n };\n return { origin, api, serverInfo };\n};\n","<script setup lang=\"tsx\">\nimport { useDeviceApi } from '@/utils/api';\nimport { toValidURL } from '@/utils/check';\nimport { message } from '@/utils/discrete';\nimport { errorWrap } from '@/utils/error';\nimport { delay } from '@/utils/others';\nimport { screenshotStorage, snapshotStorage } from '@/utils/snapshot';\nimport { useSnapshotColumns } from '@/utils/table';\nimport { useBatchTask, useTask } from '@/utils/task';\nimport type { DataTableColumns, PaginationProps } from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\nimport pLimit from 'p-limit';\nimport JSON5 from 'json5';\n\nconst router = useRouter();\nconst { api, origin, serverInfo } = useDeviceApi();\nconst link = useStorage(`device_link`, ``);\nconst connect = useTask(async () => {\n if (!link.value) return;\n origin.value = errorWrap(\n () => new URL(link.value.trim()),\n () => `非法设备地址`,\n ).origin;\n link.value = origin.value;\n serverInfo.value = await api.getServerInfo();\n});\n\nconst serverTitle = computed(() => {\n if (!serverInfo.value) return '未连接设备';\n const d = serverInfo.value.device;\n const g = serverInfo.value.gkdAppInfo;\n return `${d.manufacturer} Android${d.release} - GKD${g.versionName}`;\n});\n\nonMounted(async () => {\n await delay(500);\n if (toValidURL(link.value)) {\n connect.invoke();\n }\n});\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nwatchEffect(async () => {\n if (!serverInfo.value) return;\n document.title = serverTitle.value;\n const result = await api.getSnapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n subsText.value = '';\n});\n\nconst captureSnapshot = useTask(async () => {\n const snapshot = await api.captureSnapshot();\n const screenshot = await api.getScreenshot({ id: snapshot.id });\n await snapshotStorage.setItem(snapshot.id, snapshot);\n await screenshotStorage.setItem(snapshot.id, screenshot);\n message.success(`捕获并保存快照成功`);\n const result = await api.getSnapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n});\nconst downloadAllSnapshot = useTask(async () => {\n const snapshotIds = (await api.getSnapshots()).map((s) => s.id);\n const existSnapshotIds = new Set(\n (await screenshotStorage.keys()).map((s) => parseInt(s)),\n );\n const unimportSnapshotIds = snapshotIds.filter(\n (k) => !existSnapshotIds.has(k),\n );\n if (unimportSnapshotIds.length == 0) {\n message.success(`没有新记录可导入`);\n return;\n }\n let r = 0;\n const limit = pLimit(3);\n await Promise.all(\n unimportSnapshotIds.map((snapshotId) =>\n limit(async () => {\n const [newSnapshot, newScreenshot] = await Promise.all([\n api.getSnapshot({ id: snapshotId }),\n api.getScreenshot({ id: snapshotId }),\n ] as const);\n if (!newSnapshot.nodes) return;\n await Promise.all([\n snapshotStorage.setItem(snapshotId, newSnapshot),\n screenshotStorage.setItem(snapshotId, newScreenshot),\n ]);\n r++;\n }),\n ),\n );\n message.success(`导入${r}条新记录`);\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n appVersionCodeCol,\n appVersionNameCol,\n resetColWidth,\n} = useSnapshotColumns();\nconst handleSorterChange = (sorter: SortState) => {\n if (sorter.columnKey == ctimeCol.key) {\n ctimeCol.sortOrder = sorter.order;\n }\n};\nconst previewSnapshot = useBatchTask(\n async (row: Snapshot) => {\n let wait = false;\n if (!(await snapshotStorage.hasItem(row.id))) {\n const obj = await api.getSnapshot({ id: row.id });\n console.log(obj);\n // await snapshotStorage.setItem(row.id, obj);\n wait = true;\n }\n if (!(await screenshotStorage.hasItem(row.id))) {\n const bf = await api.getScreenshot({ id: row.id });\n console.log(bf);\n // await screenshotStorage.setItem(row.id, bf);\n wait = true;\n }\n if (wait) {\n await delay(1000);\n }\n // window.open(\n // router.resolve({\n // name: 'snapshot',\n // params: { snapshotId: row.id },\n // }).href,\n // );\n },\n (r) => r.id,\n);\n\nconst columns: DataTableColumns<Snapshot> = [\n ctimeCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `120px`,\n render(row) {\n return (\n <NSpace size=\"small\">\n <NButton\n size=\"small\"\n loading={previewSnapshot.loading[row.id]}\n onClick={() => previewSnapshot.invoke(row)}\n >\n 查看\n </NButton>\n </NSpace>\n );\n },\n },\n];\n\nconst pagination = shallowReactive<PaginationProps>({\n page: 1,\n pageSize: 50,\n showSizePicker: true,\n pageSizes: [50, 100],\n onChange: (page: number) => {\n pagination.page = page;\n },\n onUpdatePageSize: (pageSize: number) => {\n pagination.pageSize = pageSize;\n pagination.page = 1;\n },\n});\nwatch(pagination, resetColWidth);\n\nconst showSubsModel = shallowRef(false);\nconst subsText = shallowRef(``);\nconst updateSubs = useTask(async () => {\n const data = errorWrap(() => JSON5.parse(subsText.value.trim()));\n if (!data) return;\n if (data.categories || data.globalGroups || data.apps) {\n await api.updateSubscription(data);\n } else if (typeof data.id == 'string') {\n await api.updateSubscription({\n apps: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].id == 'string') {\n await api.updateSubscription({\n apps: data,\n });\n } else if (typeof data.key == 'number') {\n await api.updateSubscription({\n globalGroups: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].key == 'number') {\n await api.updateSubscription({\n globalGroups: data,\n });\n } else {\n message.error(`无法识别的订阅文本`);\n return;\n }\n message.success(`修改成功`);\n});\n\nconst showSelectorModel = shallowRef(false);\n\nconst actionOptions: {\n value?: string;\n label: string;\n}[] = [\n {\n label: '仅查询',\n value: ``,\n },\n {\n value: 'click',\n label: 'click',\n },\n {\n value: 'clickNode',\n label: 'clickNode',\n },\n {\n value: 'clickCenter',\n label: 'clickCenter',\n },\n {\n value: 'back',\n label: 'back',\n },\n {\n value: 'longClick',\n label: 'longClick',\n },\n {\n value: 'longClickNode',\n label: 'longClickNode',\n },\n {\n value: 'longClickCenter',\n label: 'longClickCenter',\n },\n];\nconst clickAction = shallowReactive({\n selector: ``,\n action: 'click',\n quickFind: false,\n});\nconst execSelector = useTask(async () => {\n const result = await api.execSelector({\n ...clickAction,\n fastQuery: clickAction.quickFind,\n });\n if (result.message) {\n message.success(`操作成功:` + result.message);\n return;\n }\n if (result.action) {\n message.success((result.result ? `操作成功:` : `操作失败`) + result.action);\n } else if (!result.action && result.result) {\n message.success(`查询成功`);\n }\n});\n\nconst placeholder = `\n请输入订阅文本(JSON5语法):\n示例1-更新单个应用的规则:\n{\n id: 'appId',\n groups: []\n}\n\n示例2-更新多个应用的规则:\n[\n {\n id: 'appId1',\n groups: []\n },\n {\n id: 'appId2',\n groups: []\n }\n]\n\n示例3-更新全局规则(1.7.0):\n{\n name: '全局规则-1',\n key: 0,\n rules: []\n}\n\n示例3-更新多个全局规则(1.7.0):\n[\n {\n name: '全局规则-1',\n key: 0,\n rules: []\n },\n {\n name: '全局规则-2',\n key: 1,\n rules: []\n }\n]\n\n示例4-更新整个订阅(1.7.0):\n{\n apps: [],\n globalGroups: [],\n categories: [],\n}\n`.trim();\n</script>\n<template>\n <NModal\n v-model:show=\"showSubsModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"修改内存订阅\"\n positiveText=\"确认\"\n :positiveButtonProps=\"{\n loading: updateSubs.loading,\n onClick() {\n updateSubs.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"subsText\"\n :disabled=\"updateSubs.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 20,\n maxRows: 25,\n }\"\n :placeholder=\"placeholder\"\n />\n </NModal>\n <NModal\n v-model:show=\"showSelectorModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"执行选择器\"\n positiveText=\"确认\"\n :positiveButtonProps=\"{\n loading: execSelector.loading,\n onClick() {\n execSelector.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"clickAction.selector\"\n :disabled=\"execSelector.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 4,\n maxRows: 10,\n }\"\n placeholder=\"请输入合法的选择器\"\n />\n <div h-15px />\n <NSpace>\n <NCheckbox v-model:checked=\"clickAction.quickFind\"> 快速查找 </NCheckbox>\n <a\n href=\"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 查找说明\n </a>\n </NSpace>\n <div h-10px />\n <div flex gap-10px flex-items-center>\n <NSelect\n v-model:value=\"clickAction.action\"\n :options=\"actionOptions\"\n class=\"w-150px\"\n />\n <a\n href=\"https://gkd.li/api/interfaces/RawRuleProps#action\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 操作说明\n </a>\n </div>\n </NModal>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex items-center gap-24px>\n <RouterLink to=\"/\" class=\"flex ml-12px\" title=\"首页\">\n <NButton text style=\"--n-icon-size: 24px\">\n <template #icon>\n <SvgIcon name=\"home\" />\n </template>\n </NButton>\n </RouterLink>\n <NInputGroup>\n <NInput\n v-model:value=\"link\"\n placeholder=\"请输入设备地址\"\n class=\"gkd_code\"\n :style=\"{ width: `240px` }\"\n @keyup.enter=\"connect.invoke\"\n />\n <NButton :loading=\"connect.loading\" @click=\"connect.invoke\">\n 刷新连接\n </NButton>\n <div\n v-if=\"serverInfo\"\n gkd_code\n pl-16px\n whitespace-nowrap\n flex\n items-center\n >\n {{ serverTitle }}\n </div>\n </NInputGroup>\n <template v-if=\"serverInfo\">\n <NButton\n :loading=\"captureSnapshot.loading\"\n @click=\"captureSnapshot.invoke\"\n >\n 捕获快照\n </NButton>\n <NButton\n :loading=\"downloadAllSnapshot.loading\"\n @click=\"downloadAllSnapshot.invoke\"\n >\n 下载所有快照\n </NButton>\n <NButton @click=\"showSubsModel = true\"> 修改内存订阅 </NButton>\n <NButton @click=\"showSelectorModel = true\"> 执行选择器 </NButton>\n </template>\n </div>\n <NDataTable\n striped\n flex-height\n :data=\"snapshots\"\n :columns=\"columns\"\n :pagination=\"pagination\"\n size=\"small\"\n class=\"flex-1\"\n :scrollX=\"1200\"\n @update:sorter=\"handleSorterChange\"\n />\n </div>\n</template>\n"],"names":["useDeviceApi","initOrigin","origin","shallowRef","serverInfo","request","name","init","u","response","enhanceFetch","e","message","_a","error","baseRpc","data","jsonRpc","r","_b","useRouter","api","link","useStorage","connect","useTask","value","errorWrap","URL","trim","getServerInfo","serverTitle","computed","d","device","g","gkdAppInfo","manufacturer","release","versionName","onMounted","delay","toValidURL","invoke","snapshots","watchEffect","document","title","result","getSnapshots","sort","a","b","id","subsText","captureSnapshot","snapshot","screenshot","getScreenshot","snapshotStorage","setItem","screenshotStorage","success","downloadAllSnapshot","snapshotIds","map","s","existSnapshotIds","Set","keys","parseInt","unimportSnapshotIds","filter","k","has","length","limit","pLimit","Promise","all","snapshotId","newSnapshot","newScreenshot","getSnapshot","nodes","activityIdCol","appIdCol","appNameCol","ctimeCol","appVersionCodeCol","appVersionNameCol","resetColWidth","useSnapshotColumns","handleSorterChange","sorter","columnKey","key","sortOrder","order","previewSnapshot","useBatchTask","row","wait","hasItem","obj","console","log","bf","columns","fixed","width","render","_createVNode2","_resolveComponent2","default","loading","onClick","_createTextVNode2","pagination","shallowReactive","page","pageSize","showSizePicker","pageSizes","onChange","onUpdatePageSize","watch","showSubsModel","updateSubs","JSON5","parse","categories","globalGroups","apps","updateSubscription","Array","isArray","showSelectorModel","actionOptions","label","clickAction","selector","action","quickFind","execSelector","fastQuery","placeholder","_createVNode","_component_NModal","show","_unref","$event","preset","style","positiveText","positiveButtonProps","_component_NInput","disabled","type","class","autosize","_cache","_createElementVNode","_component_NSpace","_component_NCheckbox","checked","href","target","rel","_hoisted_1","_component_NSelect","options","_hoisted_2","_hoisted_3","_component_RouterLink","to","_component_NButton","text","icon","_component_SvgIcon","_component_NInputGroup","onKeyup","_withKeys","_createElementBlock","_hoisted_4","_toDisplayString","_Fragment","_component_NDataTable","striped","size","scrollX"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/jszip.min-_1impF28.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/index-DQpmpBAn.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756715340160/files/dist/assets/index-BOn7cIqR.css"])))=>i.map(i=>d[i]);
2
- import{aB as r}from"./index-DQpmpBAn.js";const a=r(()=>import("./jszip.min-_1impF28.js").then(t=>t.j),__vite__mapDeps([0,1,2]),import.meta.url).then(t=>t.default),n=async(t,e)=>r(()=>import("./jszip.min-_1impF28.js").then(o=>o.j),__vite__mapDeps([0,1,2]),import.meta.url).then(o=>o.loadAsync(t,e));export{a as J,n as l};
3
- //# sourceMappingURL=chunk-DI5b2YDy.js.map