@gkd-kit/inspect 0.0.1756717177622 → 0.0.1758081556944
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.
- package/dist/404.html +3 -3
- package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-C6v5UzI9.js +17 -0
- package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-C6v5UzI9.js.map +1 -0
- package/dist/assets/{DevicePage-2eLd65ot.js → DevicePage-BFnJKico.js} +3 -3
- package/dist/assets/{DevicePage-2eLd65ot.js.map → DevicePage-BFnJKico.js.map} +1 -1
- package/dist/assets/{HomePage-47_TAQ9h.js → HomePage-DW24KLDn.js} +7 -7
- package/dist/assets/{HomePage-47_TAQ9h.js.map → HomePage-DW24KLDn.js.map} +1 -1
- package/dist/assets/{ImportPage-DmYJkTpm.js → ImportPage-6z7fBRPl.js} +2 -2
- package/dist/assets/{ImportPage-DmYJkTpm.js.map → ImportPage-6z7fBRPl.js.map} +1 -1
- package/dist/assets/Input-BiQ2YQPd.js +260 -0
- package/dist/assets/Input-BiQ2YQPd.js.map +1 -0
- package/dist/assets/{SelectorPage-o9LIj-I1.js → SelectorPage-B1FVARmT.js} +2 -2
- package/dist/assets/SelectorPage-B1FVARmT.js.map +1 -0
- package/dist/assets/SnapshotPage--iNpyIbS.js +278 -0
- package/dist/assets/SnapshotPage--iNpyIbS.js.map +1 -0
- package/dist/assets/{SvgPage-BagXHNio.js → SvgPage-Dltl_R3H.js} +2 -2
- package/dist/assets/{SvgPage-BagXHNio.js.map → SvgPage-Dltl_R3H.js.map} +1 -1
- package/dist/assets/{TrackGraph-30Lwxufc.js → TrackGraph-De07fYKN.js} +3 -3
- package/dist/assets/{TrackGraph-30Lwxufc.js.map → TrackGraph-De07fYKN.js.map} +1 -1
- package/dist/assets/_404Page-BjQuTr-4.js +2 -0
- package/dist/assets/{_404Page-EBmWBN0j.js.map → _404Page-BjQuTr-4.js.map} +1 -1
- package/dist/assets/chunk-BcM-31Xg.js +3 -0
- package/dist/assets/{chunk-FQ5_3Fvt.js.map → chunk-BcM-31Xg.js.map} +1 -1
- package/dist/assets/{dayjs.min-DuZZSErs.js → dayjs.min-CIGJGAmK.js} +2 -2
- package/dist/assets/{dayjs.min-DuZZSErs.js.map → dayjs.min-CIGJGAmK.js.map} +1 -1
- package/dist/assets/{error-CWzaCaGi.js → error-Dx-Q4QA4.js} +2 -2
- package/dist/assets/{error-CWzaCaGi.js.map → error-Dx-Q4QA4.js.map} +1 -1
- package/dist/assets/{import-D46jGS_0.js → import-CrFFEti7.js} +2 -2
- package/dist/assets/{import-D46jGS_0.js.map → import-CrFFEti7.js.map} +1 -1
- package/dist/assets/{index-BOn7cIqR.css → index-BowVL0Z1.css} +1 -1
- package/dist/assets/index-D17uyErR.js +980 -0
- package/dist/assets/index-D17uyErR.js.map +1 -0
- package/dist/assets/{index-GTBK_16Z.js → index-DxOIes5N.js} +3 -3
- package/dist/assets/{index-GTBK_16Z.js.map → index-DxOIes5N.js.map} +1 -1
- package/dist/assets/{jszip.min-C6z3zxPP.js → jszip.min-DP9jnM1V.js} +2 -2
- package/dist/assets/{jszip.min-C6z3zxPP.js.map → jszip.min-DP9jnM1V.js.map} +1 -1
- package/dist/assets/node-DTu3PkoD.js +126 -0
- package/dist/assets/node-DTu3PkoD.js.map +1 -0
- package/dist/assets/polyfills-DPQP8bt_.js +2 -0
- package/dist/assets/polyfills-DPQP8bt_.js.map +1 -0
- package/dist/assets/snapshot-DhE3UxkB.js +3 -0
- package/dist/assets/snapshot-DhE3UxkB.js.map +1 -0
- package/dist/assets/{table-x678kzFG.js → table-Gdhks37q.js} +51 -51
- package/dist/assets/table-Gdhks37q.js.map +1 -0
- package/dist/index.html +3 -3
- package/package.json +32 -32
- package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-BY98wOL2.js +0 -17
- package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-BY98wOL2.js.map +0 -1
- package/dist/assets/Input-Br-unvKw.js +0 -260
- package/dist/assets/Input-Br-unvKw.js.map +0 -1
- package/dist/assets/SelectorPage-o9LIj-I1.js.map +0 -1
- package/dist/assets/SnapshotPage-055LCAoq.js +0 -272
- package/dist/assets/SnapshotPage-055LCAoq.js.map +0 -1
- package/dist/assets/_404Page-EBmWBN0j.js +0 -2
- package/dist/assets/chunk-FQ5_3Fvt.js +0 -3
- package/dist/assets/index-BDgd4jKy.js +0 -979
- package/dist/assets/index-BDgd4jKy.js.map +0 -1
- package/dist/assets/node-Dqax9l0e.js +0 -126
- package/dist/assets/node-Dqax9l0e.js.map +0 -1
- package/dist/assets/polyfills-DHsnwdd7.js +0 -2
- package/dist/assets/polyfills-DHsnwdd7.js.map +0 -1
- package/dist/assets/snapshot-B7-fb-hQ.js +0 -3
- package/dist/assets/snapshot-B7-fb-hQ.js.map +0 -1
- package/dist/assets/table-x678kzFG.js.map +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{bN as T,a_ as p,bO as k,bP as U,b7 as G,bQ as E,aO as x,aN as q,aM as S,bE as y}from"./index-BDgd4jKy.js";class O{value;next;constructor(t){this.value=t}}class D{#e;#t;#s;constructor(){this.clear()}enqueue(t){const o=new O(t);this.#e?(this.#t.next=o,this.#t=o):(this.#e=o,this.#t=o),this.#s++}dequeue(){const t=this.#e;if(t)return this.#e=this.#e.next,this.#s--,t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#s=0}get size(){return this.#s}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}}function X(e){P(e);const t=new D;let o=0;const s=()=>{o<e&&t.size>0&&(t.dequeue()(),o++)},n=()=>{o--,s()},u=async(r,i,c)=>{const d=(async()=>r(...c))();i(d);try{await d}catch{}n()},a=(r,i,c)=>{new Promise(d=>{t.enqueue(d)}).then(u.bind(void 0,r,i,c)),(async()=>(await Promise.resolve(),o<e&&s()))()},m=(r,...i)=>new Promise(c=>{a(r,c,i)});return Object.defineProperties(m,{activeCount:{get:()=>o},pendingCount:{get:()=>t.size},clearQueue:{value(){t.clear()}},concurrency:{get:()=>e,set(r){P(r),e=r,queueMicrotask(()=>{for(;o<e&&t.size>0;)s()})}}}),m}function P(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}const H=e=>(...t)=>e()(...t),M=H(()=>{var e;return(e=window.__NetworkExtension__)==null?void 0:e.GM_xmlhttpRequest}),A=()=>{var e;return!!((e=window.__NetworkExtension__)!=null&&e.GM_xmlhttpRequest)},C=(e="")=>{const t=new Headers;return e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(s){return s.startsWith(`
|
|
2
|
-
`)?s.substring(1):s}).forEach(function(s){var a;let n=s.split(":"),u=(a=n.shift())==null?void 0:a.trim();if(u){let m=n.join(":").trim();try{t.append(u,m)}catch{}}}),t},z=(e="")=>{try{return e===""&&location.href?location.href:e}catch{return e}},L=async(e,t={},o)=>{var i;const s=new Request(e,t).clone();if((i=s.signal)!=null&&i.aborted)throw new DOMException("Aborted","AbortError");const n=s.method.toUpperCase(),u=z(s.url),a=new Headers(s.headers);new Headers(t.headers).forEach((c,d)=>{a.set(d,c)});let m=!1,r;return n!=="GET"&&t.body&&(typeof t.body=="string"||t.body instanceof URLSearchParams?r=t.body:t.body instanceof FormData?(r=t.body,a.delete("content-type")):(m=!0,r=await s.blob())),new Promise((c,d)=>{var g;let w={method:n,url:u,headers:T(a),data:r,binary:m,responseType:n==="GET"?"blob":void 0,async onload(l){await p();let h=!1;l.response instanceof Blob&&(h=l.response.size===0);const v=new Response((h?null:l.response)||null,{status:l.status,statusText:l.statusText,headers:C(l.responseHeaders)});Object.defineProperty(v,"url",{value:l.finalUrl}),c(v)},async onerror(l){await p(),d(new TypeError("Network request onerror failed",{cause:l}))},async ontimeout(){await p(),d(new TypeError("Network request ontimeout failed"))},async onabort(){await p(),d(new DOMException("Aborted","AbortError"))},async onreadystatechange(l){var h;l.readyState===4&&((h=s.signal)==null||h.removeEventListener("abort",I))}};typeof o=="function"&&(w=o(w));const R=M(w);function I(){R.abort()}(g=s.signal)==null||g.addEventListener("abort",I)})},F=(e,t)=>((t==null?void 0:t.method)||e.method).toUpperCase()==="GET",B=async(e,t,o)=>{const s=new Request(e),n=new URL(s.url);if(k(n))return fetch(e,t);if(A())return L(e,t,o);if(F(s,t)&&U(n.href)){const u=new URL("https://proxy.gkd.li");u.searchParams.set("proxyUrl",n.href);const a=new Request(e,t);return fetch(u,{method:a.method,headers:a.headers,body:a.body})}else throw G().networkErrorDlgVisible=!0,new Error("gm is not supported")},b=(e={})=>{e.driver??=E.INDEXEDDB;const t=E.createInstance(e);return{keys:async()=>t.keys(),hasItem:async r=>{const i=r.toString();return t.keys().then(c=>c.includes(i))},getItem:async r=>t.getItem(r.toString()),setItem:async(r,i)=>t.setItem(r.toString(),i),removeItem:async r=>t.removeItem(r.toString()),getAllItems:async()=>Promise.all((await t.keys()).map(r=>t.getItem(r)))}},f=b({name:"snapshot",version:1}),j=f.setItem;f.setItem=async(e,t)=>{const o={...t,nodes:[]};return await N.setItem(e,o),j(e,t)};const Q=f.removeItem;f.removeItem=async e=>{await Promise.all([Q(e),N.removeItem(e),_.removeItem(e),y[e]&&delete y[e]])};const N=b({name:"shallowSnapshot",version:1}),_=b({name:"screenshot",version:1}),W=async(e,t)=>{Object.entries(x).forEach(([o,s])=>{s==e.id&&delete x[o]}),q[e.id]&&delete q[e.id],S[e.id]&&delete S[e.id],y[e.id]=Date.now(),await Promise.all([f.setItem(e.id,e),_.setItem(e.id,t)])};export{f as a,_ as b,W as c,B as e,A as g,X as p,N as s};
|
|
3
|
-
//# sourceMappingURL=snapshot-B7-fb-hQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-B7-fb-hQ.js","sources":["../../node_modules/.pnpm/yocto-queue@1.1.1/node_modules/yocto-queue/index.js","../../node_modules/.pnpm/p-limit@6.2.0/node_modules/p-limit/index.js","../../src/utils/gm.ts","../../src/utils/fetch.ts","../../src/utils/snapshot.ts"],"sourcesContent":["/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t\t// Since `pendingCount` has been decreased by one, increase `activeCount` by one.\n\t\t\tactiveCount++;\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue `internalResolve` instead of the `run` function\n\t\t// to preserve asynchronous context.\n\t\tnew Promise(internalResolve => {\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(\n\t\t\trun.bind(undefined, function_, resolve, arguments_),\n\t\t);\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// after the `internalResolve` function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency) {\n\t\t\t\tresumeNext();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, option) {\n\tconst {concurrency} = option;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n","import { delay } from './others';\nimport { headers2obj } from './others';\n\nexport type GmXhrOptions =\n import('vite-plugin-monkey/dist/client').GmXmlhttpRequestOption<\n 'blob' | 'arraybuffer',\n undefined\n >;\nconst proxyFc = <T extends (...args: any[]) => any>(getFc: () => T) => {\n return ((...args: any[]) => getFc()(...args)) as T;\n};\n\nexport const GM_xmlhttpRequest = proxyFc(\n () => window.__NetworkExtension__?.GM_xmlhttpRequest,\n);\n\nexport const gmOk = () => {\n return !!window.__NetworkExtension__?.GM_xmlhttpRequest;\n};\n\n/**\n * https://github.com/github/fetch/blob/fb5b0cf42b470faf8c5448ab461d561f34380a30/fetch.js#L422\n */\nexport const parseHeaders = (rawHeaders = '') => {\n const headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n const preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function (header) {\n return header.startsWith(`\\n`) ? header.substring(1) : header;\n })\n .forEach(function (line) {\n let parts = line.split(':');\n let key = parts.shift()?.trim();\n if (key) {\n let value = parts.join(':').trim();\n try {\n // https://github.com/gkd-kit/subscription/pull/762#discussion_r1349695154\n headers.append(key, value);\n } catch {}\n }\n });\n return headers;\n};\n\n/**\n * https://github.com/github/fetch/blob/9a6d748b394a2c16b250262fcaf46afd5364b415/fetch.js#L555\n */\nconst fixUrl = (url = '') => {\n try {\n return url === '' && location.href ? location.href : url;\n } catch {\n return url;\n }\n};\n\n/**\n * simulate window.fetch with GM_xmlhttpRequest\n *\n * because [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) will delete [Forbidden_header_name](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name)\n *\n * so you must manually modify these headers by set the second parameter of GM_fetch\n * @example\n * GM_fetch(\n * new Request('https://www.pixiv.net/', {\n * headers: { referer: 'https://www.pixiv.net/' }, // it will not work !!!\n * }),\n * );\n * GM_fetch(new Request('https://www.pixiv.net/'), {\n * headers: { referer: 'https://www.pixiv.net/' }, // it will work\n * headers: new Headers({ referer: 'https://www.pixiv.net/' }), // it will also work\n * });\n */\nexport const GM_fetch = async (\n input: RequestInfo | URL,\n init: RequestInit = {},\n xhrDetails?: (arg: GmXhrOptions) => GmXhrOptions,\n): Promise<Response> => {\n const request = new Request(input, init).clone();\n if (request.signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const method = request.method.toUpperCase();\n const url = fixUrl(request.url);\n\n // headers\n const sendHeaders = new Headers(request.headers);\n new Headers(init.headers).forEach((value, key) => {\n sendHeaders.set(key, value);\n });\n\n let binary = false;\n let data: URLSearchParams | FormData | Blob | string | undefined = undefined;\n\n if (method !== 'GET') {\n if (init.body) {\n if (\n typeof init.body == 'string' ||\n init.body instanceof URLSearchParams\n ) {\n data = init.body;\n } else if (init.body instanceof FormData) {\n data = init.body;\n sendHeaders.delete(`content-type`);\n } else {\n binary = true;\n data = await request.blob();\n }\n }\n }\n return new Promise<Response>((resolve, reject) => {\n let initXhrDetails: GmXhrOptions = {\n method,\n url,\n headers: headers2obj(sendHeaders),\n data,\n binary,\n // temporarily fix tampermonkey bug when post github api\n responseType: method === 'GET' ? 'blob' : undefined,\n async onload(e) {\n await delay();\n let useNull = false;\n if (e.response instanceof Blob) {\n useNull = e.response.size === 0;\n }\n // 返回数据为二进制时,必须指定 responseType 为 'blob' 或 'arraybuffer',否则编码错误\n const resp = new Response((useNull ? null : e.response) || null, {\n status: e.status,\n statusText: e.statusText,\n headers: parseHeaders(e.responseHeaders),\n });\n Object.defineProperty(resp, 'url', { value: e.finalUrl });\n resolve(resp);\n },\n async onerror(e) {\n await delay();\n reject(new TypeError('Network request onerror failed', { cause: e }));\n },\n async ontimeout() {\n await delay();\n reject(new TypeError('Network request ontimeout failed'));\n },\n async onabort() {\n await delay();\n reject(new DOMException('Aborted', 'AbortError'));\n },\n async onreadystatechange(response) {\n if (response.readyState === 4) {\n request.signal?.removeEventListener('abort', abortXhr);\n }\n },\n };\n if (typeof xhrDetails == 'function') {\n initXhrDetails = xhrDetails(initXhrDetails);\n }\n const handle = GM_xmlhttpRequest(initXhrDetails);\n function abortXhr() {\n handle.abort();\n }\n request.signal?.addEventListener('abort', abortXhr);\n });\n};\n","import { GM_fetch, gmOk, type GmXhrOptions } from './gm';\nimport { isCanProxyImportFileUrl, isAllowCorsUrl } from './url';\n\nconst isGetReq = (req: Request, init?: RequestInit) => {\n return (init?.method || req.method).toUpperCase() === 'GET';\n};\n\nexport const enhanceFetch = async (\n input: RequestInfo | URL,\n init?: RequestInit,\n xhrDetails?: (arg: GmXhrOptions) => GmXhrOptions,\n): Promise<Response> => {\n const req = new Request(input);\n const u = new URL(req.url);\n if (import.meta.env.PROD && isAllowCorsUrl(u)) return fetch(input, init);\n if (gmOk()) {\n // with cookie\n // export snapshot need\n return GM_fetch(input, init, xhrDetails);\n } else if (isGetReq(req, init) && isCanProxyImportFileUrl(u.href)) {\n const proxyUrl = new URL(`https://proxy.gkd.li`);\n proxyUrl.searchParams.set(`proxyUrl`, u.href);\n const request = new Request(input, init);\n return fetch(proxyUrl, {\n method: request.method,\n headers: request.headers,\n body: request.body,\n });\n } else {\n useGlobalStore().networkErrorDlgVisible = true;\n throw new Error(`gm is not supported`);\n }\n};\n","import localforage from 'localforage';\n\nconst useStorage = <T>(options: LocalForageOptions = {}) => {\n options.driver ??= localforage.INDEXEDDB;\n const storage = localforage.createInstance(options);\n const setItem = async (key: string | number, value: T) => {\n return storage.setItem(key.toString(), value);\n };\n const getItem = async (key: string | number) => {\n return storage.getItem<T>(key.toString());\n };\n const getAllItems = async (): Promise<T[]> => {\n return Promise.all(\n (await storage.keys()).map((k) => storage.getItem(k) as Promise<T>),\n );\n };\n const removeItem = async (key: string | number) => {\n return storage.removeItem(key.toString());\n };\n\n const hasItem = async (key: string | number) => {\n const keyStr = key.toString();\n return storage.keys().then((r) => r.includes(keyStr));\n };\n const keys = async () => {\n return storage.keys();\n };\n\n return {\n keys,\n hasItem,\n getItem,\n setItem,\n removeItem,\n getAllItems,\n };\n};\n\nexport const snapshotStorage = useStorage<Snapshot>({\n name: `snapshot`,\n version: 1,\n});\n\nconst snapshotSetItem = snapshotStorage.setItem;\nsnapshotStorage.setItem = async (key, value) => {\n const shallowValue = { ...value, nodes: [] };\n await shallowSnapshotStorage.setItem(key, shallowValue);\n return snapshotSetItem(key, value);\n};\n\nconst snapshotRemoveItem = snapshotStorage.removeItem;\nsnapshotStorage.removeItem = async (key) => {\n await Promise.all([\n snapshotRemoveItem(key),\n shallowSnapshotStorage.removeItem(key),\n screenshotStorage.removeItem(key),\n snapshotImportTime[key] && delete snapshotImportTime[key],\n ]);\n};\n\nexport const shallowSnapshotStorage = useStorage<Snapshot>({\n name: `shallowSnapshot`,\n version: 1,\n});\n\nexport const screenshotStorage = useStorage<ArrayBuffer>({\n name: `screenshot`,\n version: 1,\n});\n\nexport const setSnapshot = async (snapshot: Snapshot, bf: ArrayBuffer) => {\n Object.entries(importSnapshotId).forEach(([k, v]) => {\n if (v == snapshot.id) {\n delete importSnapshotId[k];\n }\n });\n if (snapshotImageId[snapshot.id]) {\n delete snapshotImageId[snapshot.id];\n }\n if (snapshotImportId[snapshot.id]) {\n delete snapshotImportId[snapshot.id];\n }\n snapshotImportTime[snapshot.id] = Date.now();\n await Promise.all([\n snapshotStorage.setItem(snapshot.id, snapshot),\n screenshotStorage.setItem(snapshot.id, bf),\n ]);\n};\n"],"names":["Node","value","Queue","#head","#tail","#size","node","current","pLimit","concurrency","validateConcurrency","queue","activeCount","resumeNext","next","run","function_","resolve","arguments_","result","enqueue","internalResolve","generator","newConcurrency","proxyFc","getFc","args","GM_xmlhttpRequest","_a","gmOk","parseHeaders","rawHeaders","headers","header","line","parts","key","fixUrl","url","GM_fetch","input","init","xhrDetails","request","method","sendHeaders","binary","data","reject","initXhrDetails","headers2obj","e","delay","useNull","resp","response","abortXhr","handle","isGetReq","req","enhanceFetch","u","isAllowCorsUrl","isCanProxyImportFileUrl","proxyUrl","useGlobalStore","useStorage","options","localforage","storage","keyStr","r","k","snapshotStorage","snapshotSetItem","shallowValue","shallowSnapshotStorage","snapshotRemoveItem","screenshotStorage","snapshotImportTime","setSnapshot","snapshot","bf","importSnapshotId","v","snapshotImageId","snapshotImportId"],"mappings":"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","x_google_ignoreList":[0,1]}
|