@gkd-kit/inspect 0.0.1756704874514 → 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-BpoVPdXQ.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-BpoVPdXQ.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-uALQkxxX.js → HomePage-47_TAQ9h.js} +2 -2
  7. package/dist/assets/{HomePage-uALQkxxX.js.map → HomePage-47_TAQ9h.js.map} +1 -1
  8. package/dist/assets/{ImportPage-oFwqKPWx.js → ImportPage-DmYJkTpm.js} +2 -2
  9. package/dist/assets/{ImportPage-oFwqKPWx.js.map → ImportPage-DmYJkTpm.js.map} +1 -1
  10. package/dist/assets/{Input-MLbYIrBf.js → Input-Br-unvKw.js} +2 -2
  11. package/dist/assets/{Input-MLbYIrBf.js.map → Input-Br-unvKw.js.map} +1 -1
  12. package/dist/assets/{SelectorPage-DTlkLP7T.js → SelectorPage-o9LIj-I1.js} +2 -2
  13. package/dist/assets/{SelectorPage-DTlkLP7T.js.map → SelectorPage-o9LIj-I1.js.map} +1 -1
  14. package/dist/assets/{SnapshotPage-DCWlk9Cq.js → SnapshotPage-055LCAoq.js} +4 -4
  15. package/dist/assets/{SnapshotPage-DCWlk9Cq.js.map → SnapshotPage-055LCAoq.js.map} +1 -1
  16. package/dist/assets/{SvgPage-DcENeOza.js → SvgPage-BagXHNio.js} +2 -2
  17. package/dist/assets/{SvgPage-DcENeOza.js.map → SvgPage-BagXHNio.js.map} +1 -1
  18. package/dist/assets/{TrackGraph-BIzGD2Km.js → TrackGraph-30Lwxufc.js} +3 -3
  19. package/dist/assets/{TrackGraph-BIzGD2Km.js.map → TrackGraph-30Lwxufc.js.map} +1 -1
  20. package/dist/assets/{_404Page-CLdSmX_l.js → _404Page-EBmWBN0j.js} +2 -2
  21. package/dist/assets/{_404Page-CLdSmX_l.js.map → _404Page-EBmWBN0j.js.map} +1 -1
  22. package/dist/assets/chunk-FQ5_3Fvt.js +3 -0
  23. package/dist/assets/{chunk-HzS8rQ9E.js.map → chunk-FQ5_3Fvt.js.map} +1 -1
  24. package/dist/assets/{dayjs.min-CXaUKNLP.js → dayjs.min-DuZZSErs.js} +3 -3
  25. package/dist/assets/{dayjs.min-CXaUKNLP.js.map → dayjs.min-DuZZSErs.js.map} +1 -1
  26. package/dist/assets/{error-pxbRXgz7.js → error-CWzaCaGi.js} +2 -2
  27. package/dist/assets/{error-pxbRXgz7.js.map → error-CWzaCaGi.js.map} +1 -1
  28. package/dist/assets/{import-BWnimFid.js → import-D46jGS_0.js} +2 -2
  29. package/dist/assets/{import-BWnimFid.js.map → import-D46jGS_0.js.map} +1 -1
  30. package/dist/assets/{index-5LByPYNs.js → index-BDgd4jKy.js} +8 -6
  31. package/dist/assets/index-BDgd4jKy.js.map +1 -0
  32. package/dist/assets/{index-3FtFpAIz.js → index-GTBK_16Z.js} +3 -3
  33. package/dist/assets/{index-3FtFpAIz.js.map → index-GTBK_16Z.js.map} +1 -1
  34. package/dist/assets/{jszip.min-9EOOQ8XY.js → jszip.min-C6z3zxPP.js} +2 -2
  35. package/dist/assets/{jszip.min-9EOOQ8XY.js.map → jszip.min-C6z3zxPP.js.map} +1 -1
  36. package/dist/assets/{node-uOSHfhaQ.js → node-Dqax9l0e.js} +2 -2
  37. package/dist/assets/{node-uOSHfhaQ.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-BE5Sn4LN.js → table-x678kzFG.js} +2 -2
  41. package/dist/assets/{table-BE5Sn4LN.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-BvODR-Zv.js +0 -49
  45. package/dist/assets/DevicePage-BvODR-Zv.js.map +0 -1
  46. package/dist/assets/chunk-HzS8rQ9E.js +0 -3
  47. package/dist/assets/index-5LByPYNs.js.map +0 -1
  48. package/dist/assets/snapshot-CuHTnIhe.js +0 -3
  49. package/dist/assets/snapshot-CuHTnIhe.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.1756704874514/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.1756704874514/files/dist/assets/index-5LByPYNs.js"></script>
16
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756704874514/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.1756704874514",
3
+ "version": "0.0.1756717177622",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,49 +0,0 @@
1
- import{z as y,aY as g,h as ue,aK as ce,a$ as de,q as ge,A as me,a_ as M,$ as fe,E as ve,B as O,H as ke,I as J,J as j,K as F,G as s,L as _,M as d,P as o,V,_ as _e,W as we,T as w,O as W,R as Q,Q as he,U as Se,S as H}from"./index-5LByPYNs.js";import{e as ye,a as $,b as P,p as xe}from"./snapshot-CuHTnIhe.js";import{a as X,l as Ce}from"./error-pxbRXgz7.js";import{u as be,a as Ie,_ as Ne}from"./table-BE5Sn4LN.js";import{u as B,k as Re,a as Y,_ as Pe}from"./dayjs.min-CXaUKNLP.js";import{_ as Be}from"./Input-MLbYIrBf.js";import"./node-uOSHfhaQ.js";const Ue=D=>{const x=y(D),a=y(),C=async(n,i)=>{var U;if(!x.value)throw new Error("origin must exist");const f=new URL("/api/"+n,x.value);console.log("RPC:",n,i);const p=await ye(f,i).catch(h=>{throw g.error("网络错误:"+n),h});if(console.log("RPC Response:",n,p),!p.ok)throw g.error("接口错误:"+n+":"+p.status),p;if((U=p.headers.get("Content-Type"))!=null&&U.includes("application/json")){const h=await p.clone().json();if(h.__error)throw g.error(h.message),p}return p},m=async(n,i={})=>C(n,{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}),r=async(n,i={})=>m(n,i).then(f=>f.json());return{origin:x,api:{getServerInfo:async()=>r("getServerInfo"),getSnapshot:async n=>{var i,f;return((f=(i=a.value)==null?void 0:i.gkdAppInfo)==null?void 0:f.versionName)==="1.10.4"?C("snapshot?id="+n.id).then(p=>p.json()):r("getSnapshot",n)},getScreenshot:async n=>m("getScreenshot",n).then(i=>i.arrayBuffer()),captureSnapshot:async()=>r("captureSnapshot"),getSnapshots:async()=>r("getSnapshots"),updateSubscription:async n=>r("updateSubscription",{...n,id:-1,name:"内存订阅",version:0}),execSelector:async n=>(n=structuredClone(n),n.action||=void 0,r("execSelector",n))},serverInfo:a}},ze={flex:"","gap-10px":"","flex-items-center":""},Ae={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},Te={flex:"","items-center":"","gap-24px":""},Ve={key:0,gkd_code:"","pl-16px":"","whitespace-nowrap":"",flex:"","items-center":""},De=ue({__name:"DevicePage",setup(D){const x=ce(),{api:a,origin:C,serverInfo:m}=Ue(),r=de("device_link",""),b=B(async()=>{r.value&&(C.value=X(()=>new URL(r.value.trim()),()=>"非法设备地址").origin,r.value=C.value,m.value=await a.getServerInfo())}),n=ge(()=>{if(!m.value)return"未连接设备";const e=m.value.device,t=m.value.gkdAppInfo;return`${e.manufacturer} Android${e.release} - GKD${t.versionName}`});me(async()=>{await M(500),fe(r.value)&&b.invoke()});const i=y([]);ve(async()=>{if(!m.value)return;document.title=n.value;const e=await a.getSnapshots();e.sort((t,u)=>u.id-t.id),i.value=e,N.value=""});const f=B(async()=>{const e=await a.captureSnapshot(),t=await a.getScreenshot({id:e.id});await $.setItem(e.id,e),await P.setItem(e.id,t),g.success("捕获并保存快照成功");const u=await a.getSnapshots();u.sort((k,R)=>R.id-k.id),i.value=u}),p=B(async()=>{const e=(await a.getSnapshots()).map(c=>c.id),t=new Set((await P.keys()).map(c=>parseInt(c))),u=e.filter(c=>!t.has(c));if(u.length==0){g.success("没有新记录可导入");return}let k=0;const R=xe(3);await Promise.all(u.map(c=>R(async()=>{const[T,L]=await Promise.all([a.getSnapshot({id:c}),a.getScreenshot({id:c})]);T.nodes&&(await Promise.all([$.setItem(c,T),P.setItem(c,L)]),k++)}))),g.success(`导入${k}条新记录`)}),{activityIdCol:U,appIdCol:h,appNameCol:Z,ctimeCol:q,appVersionCodeCol:ee,appVersionNameCol:te,resetColWidth:oe}=be(),ne=e=>{e.columnKey==q.key&&(q.sortOrder=e.order)},E=Re(async e=>{let t=!1;if(await $.hasItem(e.id)||(await $.setItem(e.id,await a.getSnapshot({id:e.id})),t=!0),!await P.hasItem(e.id)){const u=await a.getScreenshot({id:e.id});await P.setItem(e.id,u),t=!0}t&&await M(1e3),window.open(x.resolve({name:"snapshot",params:{snapshotId:e.id}}).href)},e=>e.id),se=[q,Z,h,ee,te,U,{key:"actions",title:"操作",fixed:"right",width:"120px",render(e){return s(Y,{size:"small"},{default:()=>[s(Q,{size:"small",loading:E.loading[e.id],onClick:()=>E.invoke(e)},{default:()=>[w("查看")]})]})}}],I=O({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:e=>{I.page=e},onUpdatePageSize:e=>{I.pageSize=e,I.page=1}});ke(I,oe);const z=y(!1),N=y(""),G=B(async()=>{const e=X(()=>Ce.parse(N.value.trim()));if(e){if(e.categories||e.globalGroups||e.apps)await a.updateSubscription(e);else if(typeof e.id=="string")await a.updateSubscription({apps:[e]});else if(Array.isArray(e)&&typeof e[0].id=="string")await a.updateSubscription({apps:e});else if(typeof e.key=="number")await a.updateSubscription({globalGroups:[e]});else if(Array.isArray(e)&&typeof e[0].key=="number")await a.updateSubscription({globalGroups:e});else{g.error("无法识别的订阅文本");return}g.success("修改成功")}}),A=y(!1),ae=[{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"}],v=O({selector:"",action:"click",quickFind:!1}),K=B(async()=>{const e=await a.execSelector({...v,fastQuery:v.quickFind});if(e.message){g.success("操作成功:"+e.message);return}e.action?g.success((e.result?"操作成功:":"操作失败")+e.action):!e.action&&e.result&&g.success("查询成功")}),ie=`
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 u=Be,k=_e,R=we,c=Y,T=Ie,L=J("SvgIcon"),S=Q,le=J("RouterLink"),re=Pe,pe=Ne;return F(),j(H,null,[s(k,{show:o(z),"onUpdate:show":t[1]||(t[1]=l=>V(z)?z.value=l:null),preset:"dialog",style:{width:"800px"},title:"修改内存订阅",positiveText:"确认",positiveButtonProps:{loading:o(G).loading,onClick(){o(G).invoke()}}},{default:d(()=>[s(u,{value:o(N),"onUpdate:value":t[0]||(t[0]=l=>V(N)?N.value=l:null),disabled:o(G).loading,type:"textarea",class:"gkd_code",autosize:{minRows:20,maxRows:25},placeholder:o(ie)},null,8,["value","disabled","placeholder"])]),_:1},8,["show","positiveButtonProps"]),s(k,{show:o(A),"onUpdate:show":t[5]||(t[5]=l=>V(A)?A.value=l:null),preset:"dialog",style:{width:"800px"},title:"执行选择器",positiveText:"确认",positiveButtonProps:{loading:o(K).loading,onClick(){o(K).invoke()}}},{default:d(()=>[s(u,{value:o(v).selector,"onUpdate:value":t[2]||(t[2]=l=>o(v).selector=l),disabled:o(K).loading,type:"textarea",class:"gkd_code",autosize:{minRows:4,maxRows:10},placeholder:"请输入合法的选择器"},null,8,["value","disabled"]),t[12]||(t[12]=_("div",{"h-15px":""},null,-1)),s(c,null,{default:d(()=>[s(R,{checked:o(v).quickFind,"onUpdate:checked":t[3]||(t[3]=l=>o(v).quickFind=l)},{default:d(()=>t[9]||(t[9]=[w(" 快速查找 ")])),_:1,__:[9]},8,["checked"]),t[10]||(t[10]=_("a",{href:"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind",target:"_blank",rel:"noopener noreferrer"}," 查找说明 ",-1))]),_:1,__:[10]}),t[13]||(t[13]=_("div",{"h-10px":""},null,-1)),_("div",ze,[s(T,{value:o(v).action,"onUpdate:value":t[4]||(t[4]=l=>o(v).action=l),options:ae,class:"w-150px"},null,8,["value"]),t[11]||(t[11]=_("a",{href:"https://gkd.li/api/interfaces/RawRuleProps#action",target:"_blank",rel:"noopener noreferrer"}," 操作说明 ",-1))])]),_:1,__:[12,13]},8,["show","positiveButtonProps"]),_("div",Ae,[_("div",Te,[s(le,{to:"/",class:"flex ml-12px",title:"首页"},{default:d(()=>[s(S,{text:"",style:{"--n-icon-size":"24px"}},{icon:d(()=>[s(L,{name:"home"})]),_:1})]),_:1}),s(re,null,{default:d(()=>[s(u,{value:o(r),"onUpdate:value":t[6]||(t[6]=l=>V(r)?r.value=l:null),placeholder:"请输入设备地址",class:"gkd_code",style:{width:"240px"},onKeyup:he(o(b).invoke,["enter"])},null,8,["value","onKeyup"]),s(S,{loading:o(b).loading,onClick:o(b).invoke},{default:d(()=>t[14]||(t[14]=[w(" 刷新连接 ")])),_:1,__:[14]},8,["loading","onClick"]),o(m)?(F(),j("div",Ve,Se(o(n)),1)):W("",!0)]),_:1}),o(m)?(F(),j(H,{key:0},[s(S,{loading:o(f).loading,onClick:o(f).invoke},{default:d(()=>t[15]||(t[15]=[w(" 捕获快照 ")])),_:1,__:[15]},8,["loading","onClick"]),s(S,{loading:o(p).loading,onClick:o(p).invoke},{default:d(()=>t[16]||(t[16]=[w(" 下载所有快照 ")])),_:1,__:[16]},8,["loading","onClick"]),s(S,{onClick:t[7]||(t[7]=l=>z.value=!0)},{default:d(()=>t[17]||(t[17]=[w(" 修改内存订阅 ")])),_:1,__:[17]}),s(S,{onClick:t[8]||(t[8]=l=>A.value=!0)},{default:d(()=>t[18]||(t[18]=[w(" 执行选择器 ")])),_:1,__:[18]})],64)):W("",!0)]),s(pe,{striped:"","flex-height":"",data:o(i),columns:se,pagination:o(I),size:"small",class:"flex-1",scrollX:1200,"onUpdate:sorter":ne},null,8,["data","pagination"])])],64)}}});export{De as default};
49
- //# sourceMappingURL=DevicePage-BvODR-Zv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DevicePage-BvODR-Zv.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 await snapshotStorage.setItem(\n row.id,\n await api.getSnapshot({ id: row.id }),\n );\n wait = true;\n }\n if (!(await screenshotStorage.hasItem(row.id))) {\n const bf = await api.getScreenshot({ id: row.id });\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","router","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","bf","window","open","resolve","params","href","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","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.1756704874514/files/dist/assets/jszip.min-9EOOQ8XY.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756704874514/files/dist/assets/index-5LByPYNs.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1756704874514/files/dist/assets/index-BOn7cIqR.css"])))=>i.map(i=>d[i]);
2
- import{aB as r}from"./index-5LByPYNs.js";const a=r(()=>import("./jszip.min-9EOOQ8XY.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-9EOOQ8XY.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-HzS8rQ9E.js.map