@gkd-kit/inspect 0.0.1749439290226 → 0.0.1749439290228

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 (59) hide show
  1. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-DU4pt--9.js → ActionCard.vue_vue_type_script_setup_true_lang-Ddm4FDEW.js} +3 -3
  2. package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-DU4pt--9.js.map → ActionCard.vue_vue_type_script_setup_true_lang-Ddm4FDEW.js.map} +1 -1
  3. package/dist/assets/{DevicePage-CBSvm_vv.js → DevicePage-8odSV3Hq.js} +3 -3
  4. package/dist/assets/{DevicePage-CBSvm_vv.js.map → DevicePage-8odSV3Hq.js.map} +1 -1
  5. package/dist/assets/HomePage-PzBg6JK7.js +112 -0
  6. package/dist/assets/HomePage-PzBg6JK7.js.map +1 -0
  7. package/dist/assets/ImportPage-BjIx-_N1.js +2 -0
  8. package/dist/assets/ImportPage-BjIx-_N1.js.map +1 -0
  9. package/dist/assets/{Input-D4KWqeWH.js → Input-DgyUdul6.js} +2 -2
  10. package/dist/assets/{Input-D4KWqeWH.js.map → Input-DgyUdul6.js.map} +1 -1
  11. package/dist/assets/{SelectorPage-BcxetUIX.js → SelectorPage-Dq0IIsjv.js} +2 -2
  12. package/dist/assets/{SelectorPage-BcxetUIX.js.map → SelectorPage-Dq0IIsjv.js.map} +1 -1
  13. package/dist/assets/SnapshotPage-BKYM296L.js +273 -0
  14. package/dist/assets/SnapshotPage-BKYM296L.js.map +1 -0
  15. package/dist/assets/SvgPage-Ub-pRGhU.js +2 -0
  16. package/dist/assets/{SvgPage-BZU0H3vr.js.map → SvgPage-Ub-pRGhU.js.map} +1 -1
  17. package/dist/assets/{TrackGraph-DdCOvVKa.js → TrackGraph-lKQE5cUJ.js} +3 -3
  18. package/dist/assets/TrackGraph-lKQE5cUJ.js.map +1 -0
  19. package/dist/assets/{_404Page-403o9W_M.js → _404Page-DRLShDBE.js} +2 -2
  20. package/dist/assets/{_404Page-403o9W_M.js.map → _404Page-DRLShDBE.js.map} +1 -1
  21. package/dist/assets/chunk-CPNWa47E.js +3 -0
  22. package/dist/assets/{chunk-BJS9npRX.js.map → chunk-CPNWa47E.js.map} +1 -1
  23. package/dist/assets/{dayjs.min-BtRfTVBh.js → dayjs.min-CMwzZYWK.js} +7 -7
  24. package/dist/assets/{dayjs.min-BtRfTVBh.js.map → dayjs.min-CMwzZYWK.js.map} +1 -1
  25. package/dist/assets/{error-xNFSYohO.js → error-DLcDz2op.js} +8 -8
  26. package/dist/assets/{error-xNFSYohO.js.map → error-DLcDz2op.js.map} +1 -1
  27. package/dist/assets/import-Ck1vFpon.js +2 -0
  28. package/dist/assets/import-Ck1vFpon.js.map +1 -0
  29. package/dist/assets/{index-BoCjhXH7.css → index-CHaIZrD6.css} +1 -1
  30. package/dist/assets/{index-EsA5VFY-.js → index-DJ3BflFD.js} +37 -37
  31. package/dist/assets/index-DJ3BflFD.js.map +1 -0
  32. package/dist/assets/{index-BDvOwdMH.js → index-nrmjhBDW.js} +3 -3
  33. package/dist/assets/{index-BDvOwdMH.js.map → index-nrmjhBDW.js.map} +1 -1
  34. package/dist/assets/{jszip.min-DWn1nr2b.js → jszip.min-Dn-oymRr.js} +3 -3
  35. package/dist/assets/{jszip.min-DWn1nr2b.js.map → jszip.min-Dn-oymRr.js.map} +1 -1
  36. package/dist/assets/{node-BuNKmMiV.js → node-BU-u7VcN.js} +2 -2
  37. package/dist/assets/{node-BuNKmMiV.js.map → node-BU-u7VcN.js.map} +1 -1
  38. package/dist/assets/{snapshot-CuDNuSe-.js → snapshot-LXrnvSmm.js} +3 -3
  39. package/dist/assets/{snapshot-CuDNuSe-.js.map → snapshot-LXrnvSmm.js.map} +1 -1
  40. package/dist/assets/{table-CaNPLMrp.js → table-JTn0xZC1.js} +2 -2
  41. package/dist/assets/{table-CaNPLMrp.js.map → table-JTn0xZC1.js.map} +1 -1
  42. package/dist/assets/worker-lNTWuAmw.js.map +1 -1
  43. package/dist/index.html +2 -4
  44. package/dist/test.xml +26 -0
  45. package/package.json +1 -1
  46. package/dist/assets/HomePage-N14oZR_I.js +0 -112
  47. package/dist/assets/HomePage-N14oZR_I.js.map +0 -1
  48. package/dist/assets/ImportPage-flY1gTRb.js +0 -2
  49. package/dist/assets/ImportPage-flY1gTRb.js.map +0 -1
  50. package/dist/assets/SnapshotPage-CwOAZlmE.js +0 -273
  51. package/dist/assets/SnapshotPage-CwOAZlmE.js.map +0 -1
  52. package/dist/assets/SvgPage-BZU0H3vr.js +0 -2
  53. package/dist/assets/TrackGraph-DdCOvVKa.js.map +0 -1
  54. package/dist/assets/chunk-BJS9npRX.js +0 -3
  55. package/dist/assets/import-Dusv6BQN.js +0 -2
  56. package/dist/assets/import-Dusv6BQN.js.map +0 -1
  57. package/dist/assets/index-EsA5VFY-.js.map +0 -1
  58. package/dist/assets/polyfills-BI7TBZoP.js +0 -2
  59. package/dist/assets/polyfills-BI7TBZoP.js.map +0 -1
@@ -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.1749439290226/files/dist/assets/jszip.min-DWn1nr2b.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1749439290226/files/dist/assets/index-EsA5VFY-.js","https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1749439290226/files/dist/assets/index-BoCjhXH7.css"])))=>i.map(i=>d[i]);
2
- import{aB as r}from"./index-EsA5VFY-.js";const a=r(()=>import("./jszip.min-DWn1nr2b.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-DWn1nr2b.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-BJS9npRX.js.map
@@ -1,2 +0,0 @@
1
- import{p as _,a as I,e as L,c as A}from"./snapshot-CuDNuSe-.js";import{b8 as b,ba as E,aL as P,aW as d}from"./index-EsA5VFY-.js";import{l as v}from"./chunk-BJS9npRX.js";const g=(()=>{if(typeof self>"u")return!1;if("top"in self&&self!==top)try{top.window.document._=0}catch{return!1}return"showOpenFilePicker"in self})(),F=g?Promise.resolve().then(function(){return j}):Promise.resolve().then(function(){return z});async function x(...e){return(await F).default(...e)}g?Promise.resolve().then(function(){return U}):Promise.resolve().then(function(){return D});g?Promise.resolve().then(function(){return W}):Promise.resolve().then(function(){return Z});const T=async e=>{const n=await e.getFile();return n.handle=e,n};var O=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const n=[];e.forEach((i,a)=>{n[a]={description:i.description||"Files",accept:{}},i.mimeTypes?i.mimeTypes.map(s=>{n[a].accept[s]=i.extensions||[]}):n[a].accept["*/*"]=i.extensions||[]});const r=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:n,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),t=await Promise.all(r.map(T));return e[0].multiple?t:t[0]},j={__proto__:null,default:O};function w(e){function n(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var t=r.done;return Promise.resolve(r.value).then(function(i){return{value:i,done:t}})}return w=function(r){this.s=r,this.n=r.next},w.prototype={s:null,n:null,next:function(){return n(this.n.apply(this.s,arguments))},return:function(r){var t=this.s.return;return t===void 0?Promise.resolve({value:r,done:!0}):n(t.apply(this.s,arguments))},throw:function(r){var t=this.s.return;return t===void 0?Promise.reject(r):n(t.apply(this.s,arguments))}},new w(e)}const S=async(e,n,r=e.name,t)=>{const i=[],a=[];var s,o=!1,l=!1;try{for(var c,u=function(p){var f,m,y,h=2;for(typeof Symbol<"u"&&(m=Symbol.asyncIterator,y=Symbol.iterator);h--;){if(m&&(f=p[m])!=null)return f.call(p);if(y&&(f=p[y])!=null)return new w(f.call(p));m="@@asyncIterator",y="@@iterator"}throw new TypeError("Object is not async iterable")}(e.values());o=!(c=await u.next()).done;o=!1){const p=c.value,f=`${r}/${p.name}`;p.kind==="file"?a.push(p.getFile().then(m=>(m.directoryHandle=e,m.handle=p,Object.defineProperty(m,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>f})))):p.kind!=="directory"||!n||t&&t(p)||i.push(S(p,n,f,t))}}catch(p){l=!0,s=p}finally{try{o&&u.return!=null&&await u.return()}finally{if(l)throw s}}return[...(await Promise.all(i)).flat(),...await Promise.all(a)]};var R=async(e={})=>{e.recursive=e.recursive||!1,e.mode=e.mode||"read";const n=await window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return(await(await n.values()).next()).done?[n]:S(n,e.recursive,void 0,e.skipDirectory)},U={__proto__:null,default:R},N=async(e,n=[{}],r=null,t=!1,i=null)=>{Array.isArray(n)||(n=[n]),n[0].fileName=n[0].fileName||"Untitled";const a=[];let s=null;if(e instanceof Blob&&e.type?s=e.type:e.headers&&e.headers.get("content-type")&&(s=e.headers.get("content-type")),n.forEach((c,u)=>{a[u]={description:c.description||"Files",accept:{}},c.mimeTypes?(u===0&&s&&c.mimeTypes.push(s),c.mimeTypes.map(p=>{a[u].accept[p]=c.extensions||[]})):s?a[u].accept[s]=c.extensions||[]:a[u].accept["*/*"]=c.extensions||[]}),r)try{await r.getFile()}catch(c){if(r=null,t)throw c}const o=r||await window.showSaveFilePicker({suggestedName:n[0].fileName,id:n[0].id,startIn:n[0].startIn,types:a,excludeAcceptAllOption:n[0].excludeAcceptAllOption||!1});!r&&i&&i(o);const l=await o.createWritable();return"stream"in e?(await e.stream().pipeTo(l),o):"body"in e?(await e.body.pipeTo(l),o):(await l.write(await e),await l.close(),o)},W={__proto__:null,default:N},$=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((n,r)=>{const t=document.createElement("input");t.type="file";const i=[...e.map(l=>l.mimeTypes||[]),...e.map(l=>l.extensions||[])].join();t.multiple=e[0].multiple||!1,t.accept=i||"",t.style.display="none",document.body.append(t);const a=l=>{typeof s=="function"&&s(),n(l)},s=e[0].legacySetup&&e[0].legacySetup(a,()=>s(r),t),o=()=>{window.removeEventListener("focus",o),t.remove()};t.addEventListener("click",()=>{window.addEventListener("focus",o)}),t.addEventListener("change",()=>{window.removeEventListener("focus",o),t.remove(),a(t.multiple?Array.from(t.files):t.files[0])}),"showPicker"in HTMLInputElement.prototype?t.showPicker():t.click()})),z={__proto__:null,default:$},B=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((n,r)=>{const t=document.createElement("input");t.type="file",t.webkitdirectory=!0;const i=s=>{typeof a=="function"&&a(),n(s)},a=e[0].legacySetup&&e[0].legacySetup(i,()=>a(r),t);t.addEventListener("change",()=>{let s=Array.from(t.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(s=s.filter(o=>o.webkitRelativePath.split("/").every(l=>!e[0].skipDirectory({name:l,kind:"directory"})))):s=s.filter(o=>o.webkitRelativePath.split("/").length===2),i(s)}),"showPicker"in HTMLInputElement.prototype?t.showPicker():t.click()})),D={__proto__:null,default:B},H=async(e,n={})=>{Array.isArray(n)&&(n=n[0]);const r=document.createElement("a");let t=e;"body"in e&&(t=await async function(s,o){const l=s.getReader(),c=new ReadableStream({start:f=>async function m(){return l.read().then(({done:y,value:h})=>{if(!y)return f.enqueue(h),m();f.close()})}()}),u=new Response(c),p=await u.blob();return l.releaseLock(),new Blob([p],{type:o})}(e.body,e.headers.get("content-type"))),r.download=n.fileName||"Untitled",r.href=URL.createObjectURL(await t);const i=()=>{typeof a=="function"&&a()},a=n.legacySetup&&n.legacySetup(i,()=>a(),r);return r.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(r.href),3e4),i()}),r.click(),null},Z={__proto__:null,default:H};const q=(e,n)=>e.length==n.length&&e.every((r,t)=>r==n[t]),J=(e,n)=>q(new Uint8Array(e.slice(0,n.length)),n),M=new Uint8Array([80,75,3,4]),C=e=>J(e,M),k=async e=>{const n=e.filter(a=>a.endsWith(".json"))[0],r=e.filter(a=>a.endsWith(".png"))[0];if(!n||!r)return!1;const t=JSON.parse(await n.async("string")),i=await r.async("arraybuffer");return await A(t,i),!0},X=async e=>{const r=(e!=null?e:await x({multiple:!0,mimeTypes:["application/zip"]})).filter(i=>i.name.endsWith(".zip"));if(r.length==0)return d.warning("没有发现可导入文件"),!1;let t=0;return r.length>0&&await Promise.allSettled(r.map(async i=>{const a=await v(i);await k(a)&&t++;const s=a.filter(o=>o.endsWith(".zip"));s.length>0&&await Promise.allSettled(s.map(async o=>{const l=await v(o.async("blob"));await k(l)&&t++}))})),t>0?d.success(`导入${t}条记录`):d.warning("没有发现可导入记录"),t>0},G=_(2),Y=async(e=[])=>{if(typeof e=="string"&&(e=[e]),e.length==0)return;e=e.map(t=>{const i=b(t);return i?E(i):t}),e=[...new Set(e)];const n=[];await P().waitInit(),await Promise.allSettled(e.map(t=>G(async()=>{const i=P().importSnapshotId[b(t)||""];if(i){const c=await I.getItem(i);if(c)return n.push(c),c}const s=await(await L(t).catch(c=>{throw d.error(`网络异常: ${new URL(t).host} / ${c.message||""}`),console.warn(["download failed",t,c]),c})).arrayBuffer();let o,l;if(C(s)){const c=await v(s),[u]=c.filter(f=>f.endsWith(".json")),[p]=c.filter(f=>f.endsWith(".png"));if(!u||!p)return;l=await p.async("arraybuffer"),o=JSON.parse(await u.async("string"))}else throw new Error("file must be png or zip");return await A(o,l),n.push(o),o})));const r=n.length;if(r==0){d.warning("没有发现可导入记录");return}else r==e.length?d.success(`导入${r}条快照`):r<e.length&&d.success(`导入${r}条快照,失败${e.length-r}`);return n};export{Y as a,X as i};
2
- //# sourceMappingURL=import-Dusv6BQN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-Dusv6BQN.js","sources":["../../node_modules/.pnpm/browser-fs-access@0.35.0/node_modules/browser-fs-access/dist/index.modern.js","../../src/utils/file_type.ts","../../src/utils/import.ts"],"sourcesContent":["const e=(()=>{if(\"undefined\"==typeof self)return!1;if(\"top\"in self&&self!==top)try{top.window.document._=0}catch(e){return!1}return\"showOpenFilePicker\"in self})(),t=e?Promise.resolve().then(function(){return l}):Promise.resolve().then(function(){return v});async function n(...e){return(await t).default(...e)}const r=e?Promise.resolve().then(function(){return y}):Promise.resolve().then(function(){return b});async function i(...e){return(await r).default(...e)}const a=e?Promise.resolve().then(function(){return m}):Promise.resolve().then(function(){return k});async function o(...e){return(await a).default(...e)}const s=async e=>{const t=await e.getFile();return t.handle=e,t};var c=async(e=[{}])=>{Array.isArray(e)||(e=[e]);const t=[];e.forEach((e,n)=>{t[n]={description:e.description||\"Files\",accept:{}},e.mimeTypes?e.mimeTypes.map(r=>{t[n].accept[r]=e.extensions||[]}):t[n].accept[\"*/*\"]=e.extensions||[]});const n=await window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:t,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),r=await Promise.all(n.map(s));return e[0].multiple?r:r[0]},l={__proto__:null,default:c};function u(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+\" is not an object.\"));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return u=function(e){this.s=e,this.n=e.next},u.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new u(e)}const p=async(e,t,n=e.name,r)=>{const i=[],a=[];var o,s=!1,c=!1;try{for(var l,d=function(e){var t,n,r,i=2;for(\"undefined\"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new u(t.call(e));n=\"@@asyncIterator\",r=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}(e.values());s=!(l=await d.next()).done;s=!1){const o=l.value,s=`${n}/${o.name}`;\"file\"===o.kind?a.push(o.getFile().then(t=>(t.directoryHandle=e,t.handle=o,Object.defineProperty(t,\"webkitRelativePath\",{configurable:!0,enumerable:!0,get:()=>s})))):\"directory\"!==o.kind||!t||r&&r(o)||i.push(p(o,t,s,r))}}catch(e){c=!0,o=e}finally{try{s&&null!=d.return&&await d.return()}finally{if(c)throw o}}return[...(await Promise.all(i)).flat(),...await Promise.all(a)]};var d=async(e={})=>{e.recursive=e.recursive||!1,e.mode=e.mode||\"read\";const t=await window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return(await(await t.values()).next()).done?[t]:p(t,e.recursive,void 0,e.skipDirectory)},y={__proto__:null,default:d},f=async(e,t=[{}],n=null,r=!1,i=null)=>{Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||\"Untitled\";const a=[];let o=null;if(e instanceof Blob&&e.type?o=e.type:e.headers&&e.headers.get(\"content-type\")&&(o=e.headers.get(\"content-type\")),t.forEach((e,t)=>{a[t]={description:e.description||\"Files\",accept:{}},e.mimeTypes?(0===t&&o&&e.mimeTypes.push(o),e.mimeTypes.map(n=>{a[t].accept[n]=e.extensions||[]})):o?a[t].accept[o]=e.extensions||[]:a[t].accept[\"*/*\"]=e.extensions||[]}),n)try{await n.getFile()}catch(e){if(n=null,r)throw e}const s=n||await window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1});!n&&i&&i(s);const c=await s.createWritable();if(\"stream\"in e){const t=e.stream();return await t.pipeTo(c),s}return\"body\"in e?(await e.body.pipeTo(c),s):(await c.write(await e),await c.close(),s)},m={__proto__:null,default:f},w=async(e=[{}])=>(Array.isArray(e)||(e=[e]),new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\";const i=[...e.map(e=>e.mimeTypes||[]),...e.map(e=>e.extensions||[])].join();r.multiple=e[0].multiple||!1,r.accept=i||\"\",r.style.display=\"none\",document.body.append(r);const a=e=>{\"function\"==typeof o&&o(),t(e)},o=e[0].legacySetup&&e[0].legacySetup(a,()=>o(n),r),s=()=>{window.removeEventListener(\"focus\",s),r.remove()};r.addEventListener(\"click\",()=>{window.addEventListener(\"focus\",s)}),r.addEventListener(\"change\",()=>{window.removeEventListener(\"focus\",s),r.remove(),a(r.multiple?Array.from(r.files):r.files[0])}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click()})),v={__proto__:null,default:w},h=async(e=[{}])=>(Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise((t,n)=>{const r=document.createElement(\"input\");r.type=\"file\",r.webkitdirectory=!0;const i=e=>{\"function\"==typeof a&&a(),t(e)},a=e[0].legacySetup&&e[0].legacySetup(i,()=>a(n),r);r.addEventListener(\"change\",()=>{let t=Array.from(r.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter(t=>t.webkitRelativePath.split(\"/\").every(t=>!e[0].skipDirectory({name:t,kind:\"directory\"})))):t=t.filter(e=>2===e.webkitRelativePath.split(\"/\").length),i(t)}),\"showPicker\"in HTMLInputElement.prototype?r.showPicker():r.click()})),b={__proto__:null,default:h},P=async(e,t={})=>{Array.isArray(t)&&(t=t[0]);const n=document.createElement(\"a\");let r=e;\"body\"in e&&(r=await async function(e,t){const n=e.getReader(),r=new ReadableStream({start:e=>async function t(){return n.read().then(({done:n,value:r})=>{if(!n)return e.enqueue(r),t();e.close()})}()}),i=new Response(r),a=await i.blob();return n.releaseLock(),new Blob([a],{type:t})}(e.body,e.headers.get(\"content-type\"))),n.download=t.fileName||\"Untitled\",n.href=URL.createObjectURL(await r);const i=()=>{\"function\"==typeof a&&a()},a=t.legacySetup&&t.legacySetup(i,()=>a(),n);return n.addEventListener(\"click\",()=>{setTimeout(()=>URL.revokeObjectURL(n.href),3e4),i()}),n.click(),null},k={__proto__:null,default:P};export{i as directoryOpen,h as directoryOpenLegacy,d as directoryOpenModern,n as fileOpen,w as fileOpenLegacy,c as fileOpenModern,o as fileSave,P as fileSaveLegacy,f as fileSaveModern,e as supported};\n","const eqU8 = (a: Uint8Array, b: Uint8Array) => {\n return a.length == b.length && a.every((v, i) => v == b[i]);\n};\nconst startWith = (a: ArrayBuffer, b: Uint8Array) => {\n return eqU8(new Uint8Array(a.slice(0, b.length)), b);\n};\nconst blobStartWith = async (a: Blob, b: Uint8Array) => {\n const bf = await a.slice(0, b.length).arrayBuffer();\n return eqU8(new Uint8Array(bf), b);\n};\nconst zipHeader = new Uint8Array([0x50, 0x4b, 0x03, 0x04]);\n\nexport const isZipBf = (bf: ArrayBuffer) => startWith(bf, zipHeader);\nexport const isZipBlob = async (blob: Blob) => blobStartWith(blob, zipHeader);\n","import { fileOpen } from 'browser-fs-access';\nimport pLimit from 'p-limit';\nimport { message } from './discrete';\nimport { enhanceFetch } from './fetch';\nimport { isZipBf } from './file_type';\nimport { setSnapshot, snapshotStorage } from './snapshot';\nimport type { Snapshot } from './types';\nimport { getImportFileUrl, getImportId } from './url';\nimport { loadAsync } from './chunk';\nimport type { JSZipType } from './chunk';\n\nconst parseZip = async (zip: JSZipType) => {\n const snapshotFile = zip.filter((s) => s.endsWith(`.json`))[0];\n const screenshotFile = zip.filter((s) => s.endsWith(`.png`))[0];\n if (!snapshotFile || !screenshotFile) {\n return false;\n }\n const snapshot = JSON.parse(await snapshotFile.async('string')) as Snapshot;\n const screenshotBf = await screenshotFile.async('arraybuffer');\n await setSnapshot(snapshot, screenshotBf);\n return true;\n};\n\nexport const importFromLocal = async (\n _files: File[] | undefined,\n): Promise<boolean> => {\n const files =\n _files ??\n (await fileOpen({\n multiple: true,\n mimeTypes: [`application/zip`],\n }));\n const zipfiles = files.filter((f) => f.name.endsWith(`.zip`));\n if (zipfiles.length == 0) {\n message.warning(`没有发现可导入文件`);\n return false;\n }\n let importNum = 0;\n if (zipfiles.length > 0) {\n await Promise.allSettled(\n zipfiles.map(async (file) => {\n const zip = await loadAsync(file);\n if (await parseZip(zip)) {\n importNum++;\n }\n const subZips = zip.filter((s) => s.endsWith('.zip'));\n if (subZips.length > 0) {\n await Promise.allSettled(\n subZips.map(async (subZip) => {\n const subFile = await loadAsync(subZip.async('blob'));\n if (await parseZip(subFile)) {\n importNum++;\n }\n }),\n );\n }\n }),\n );\n }\n if (importNum > 0) {\n message.success(`导入${importNum}条记录`);\n } else {\n message.warning(`没有发现可导入记录`);\n }\n return importNum > 0;\n};\n\nconst limit = pLimit(2);\nexport const importFromNetwork = async (\n urls: string[] | string = [],\n): Promise<Snapshot[] | undefined> => {\n if (typeof urls == 'string') {\n urls = [urls];\n }\n if (urls.length == 0) {\n return;\n }\n urls = urls.map((url) => {\n const importId = getImportId(url);\n if (importId) {\n return getImportFileUrl(importId);\n }\n return url;\n });\n urls = [...new Set(urls)];\n const snapshots: Snapshot[] = [];\n await useStorageStore().waitInit();\n await Promise.allSettled(\n urls.map((url) => {\n return limit(async () => {\n const snapshotId =\n useStorageStore().importSnapshotId[getImportId(url) || ''];\n if (snapshotId) {\n const snapshot = await snapshotStorage.getItem(snapshotId);\n if (snapshot) {\n snapshots.push(snapshot);\n return snapshot;\n }\n }\n const resp = await enhanceFetch(url).catch((e) => {\n message.error(`网络异常: ${new URL(url).host} / ${e.message || ''}`);\n console.warn([`download failed`, url, e]);\n throw e;\n });\n const bf = await resp.arrayBuffer();\n let snapshot: Snapshot;\n let screenshotBf: ArrayBuffer;\n if (isZipBf(bf)) {\n const zip = await loadAsync(bf);\n const [snapshotFile] = zip.filter((p) => p.endsWith(`.json`));\n const [screenshotFile] = zip.filter((p) => p.endsWith(`.png`));\n if (!snapshotFile || !screenshotFile) {\n return;\n }\n screenshotBf = await screenshotFile.async('arraybuffer');\n snapshot = JSON.parse(await snapshotFile.async('string')) as Snapshot;\n } else {\n throw new Error(`file must be png or zip`);\n }\n await setSnapshot(snapshot, screenshotBf);\n snapshots.push(snapshot);\n return snapshot;\n });\n }),\n );\n const num = snapshots.length;\n if (num == 0) {\n message.warning(`没有发现可导入记录`);\n return;\n } else if (num == urls.length) {\n message.success(`导入${num}条快照`);\n } else if (num < urls.length) {\n message.success(`导入${num}条快照,失败${urls.length - num}`);\n }\n return snapshots;\n};\n"],"names":["e","t","l","v","n","y","b","m","k","s","c","r","u","p","o","d","i","f","w","h","P","a","eqU8","startWith","zipHeader","isZipBf","bf","parseZip","zip","snapshotFile","screenshotFile","snapshot","screenshotBf","setSnapshot","importFromLocal","_files","zipfiles","fileOpen","message","importNum","file","loadAsync","subZips","subZip","subFile","limit","pLimit","importFromNetwork","urls","url","importId","getImportId","getImportFileUrl","snapshots","useStorageStore","snapshotId","snapshotStorage","enhanceFetch","num"],"mappings":"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","x_google_ignoreList":[0]}