@gctrack/network 0.1.0 → 0.1.1
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/index.cjs +5 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -8,7 +8,9 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
8
8
|
const { ignoreUrls = [], slowThreshold = 3e3 } = options;
|
|
9
9
|
let installed = false;
|
|
10
10
|
const isIgnored = (url) => {
|
|
11
|
-
const
|
|
11
|
+
const getConfig = tracker.getConfig;
|
|
12
|
+
const trackerCfg = getConfig && getConfig();
|
|
13
|
+
const reportUrl = trackerCfg && trackerCfg.reportUrl;
|
|
12
14
|
if (reportUrl && url.includes(reportUrl)) return true;
|
|
13
15
|
return ignoreUrls.some((p) => typeof p === "string" ? url.includes(p) : p.test(url));
|
|
14
16
|
};
|
|
@@ -23,7 +25,7 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
23
25
|
if (typeof fetch === "undefined" || !ORIGINAL_FETCH) return;
|
|
24
26
|
const patched = async (input, init) => {
|
|
25
27
|
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
26
|
-
const method = (init
|
|
28
|
+
const method = (init && init.method || "GET").toUpperCase();
|
|
27
29
|
const start = Date.now();
|
|
28
30
|
try {
|
|
29
31
|
const res = await ORIGINAL_FETCH(input, init);
|
|
@@ -40,7 +42,7 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
40
42
|
method,
|
|
41
43
|
status: 0,
|
|
42
44
|
duration: Date.now() - start,
|
|
43
|
-
reason: err
|
|
45
|
+
reason: err && err.message || "fetch_error"
|
|
44
46
|
});
|
|
45
47
|
throw err;
|
|
46
48
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["EventType"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @gctrack/network —— 接口监控\n *\n * 劫持 fetch 与 XMLHttpRequest,自动产出 api_performance / api_error 事件。\n * flyio 底层走 XHR,会被自动覆盖;启用本包后业务层 request 封装无需重复埋点。\n */\nimport type { Tracker } from '@gctrack/core'\nimport { EventType, type ApiEventData } from '@gctrack/protocol'\n\nexport interface NetworkMonitorOptions {\n /** 忽略的 URL(字符串包含匹配或正则);上报地址自身始终被忽略以防循环 */\n ignoreUrls?: Array<string | RegExp>\n /** 慢接口阈值(ms),超过仅用于 data.slow 标记,不影响事件类型 */\n slowThreshold?: number\n}\n\nexport interface NetworkMonitor {\n start: () => void\n destroy: () => void\n}\n\nconst ORIGINAL_FETCH = typeof fetch !== 'undefined' ? fetch.bind(globalThis) : undefined\nconst ORIGINAL_OPEN =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.open : undefined\nconst ORIGINAL_SEND =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.send : undefined\n\nexport function createNetworkMonitor(\n tracker: Tracker,\n options: NetworkMonitorOptions = {},\n): NetworkMonitor {\n const { ignoreUrls = [], slowThreshold = 3000 } = options\n let installed = false\n\n const isIgnored = (url: string): boolean => {\n const
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["EventType"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @gctrack/network —— 接口监控\n *\n * 劫持 fetch 与 XMLHttpRequest,自动产出 api_performance / api_error 事件。\n * flyio 底层走 XHR,会被自动覆盖;启用本包后业务层 request 封装无需重复埋点。\n */\nimport type { Tracker } from '@gctrack/core'\nimport { EventType, type ApiEventData } from '@gctrack/protocol'\n\nexport interface NetworkMonitorOptions {\n /** 忽略的 URL(字符串包含匹配或正则);上报地址自身始终被忽略以防循环 */\n ignoreUrls?: Array<string | RegExp>\n /** 慢接口阈值(ms),超过仅用于 data.slow 标记,不影响事件类型 */\n slowThreshold?: number\n}\n\nexport interface NetworkMonitor {\n start: () => void\n destroy: () => void\n}\n\nconst ORIGINAL_FETCH = typeof fetch !== 'undefined' ? fetch.bind(globalThis) : undefined\nconst ORIGINAL_OPEN =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.open : undefined\nconst ORIGINAL_SEND =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.send : undefined\n\nexport function createNetworkMonitor(\n tracker: Tracker,\n options: NetworkMonitorOptions = {},\n): NetworkMonitor {\n const { ignoreUrls = [], slowThreshold = 3000 } = options\n let installed = false\n\n const isIgnored = (url: string): boolean => {\n const getConfig = (tracker as any).getConfig\n const trackerCfg = getConfig && getConfig()\n const reportUrl = trackerCfg && trackerCfg.reportUrl\n if (reportUrl && url.includes(reportUrl)) return true\n return ignoreUrls.some((p) =>\n typeof p === 'string' ? url.includes(p) : p.test(url),\n )\n }\n\n const report = (data: ApiEventData): void => {\n const isError = data.status === 0 || data.status >= 400\n tracker.track(isError ? EventType.ApiError : EventType.ApiPerformance, {\n ...data,\n slow: data.duration >= slowThreshold,\n })\n }\n\n const patchFetch = (): void => {\n if (typeof fetch === 'undefined' || !ORIGINAL_FETCH) return\n const patched = async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.href\n : input.url\n const method = ((init && init.method) || 'GET').toUpperCase()\n const start = Date.now()\n try {\n const res = await ORIGINAL_FETCH(input as RequestInfo, init)\n if (!isIgnored(url)) {\n report({ url, method, status: res.status, duration: Date.now() - start })\n }\n return res\n } catch (err) {\n if (!isIgnored(url)) {\n report({\n url,\n method,\n status: 0,\n duration: Date.now() - start,\n reason: ((err as Error) && (err as Error).message) || 'fetch_error',\n })\n }\n throw err\n }\n }\n ;(globalThis as any).fetch = patched\n }\n\n const patchXhr = (): void => {\n if (typeof XMLHttpRequest === 'undefined' || !ORIGINAL_OPEN || !ORIGINAL_SEND) return\n XMLHttpRequest.prototype.open = function (\n this: XMLHttpRequest & Record<string, any>,\n method: string,\n url: string,\n ) {\n this.__gctrack_method = (method || 'GET').toUpperCase()\n this.__gctrack_url = url\n return ORIGINAL_OPEN.apply(this, arguments as any)\n }\n XMLHttpRequest.prototype.send = function (\n this: XMLHttpRequest & Record<string, any>,\n ) {\n this.__gctrack_start = Date.now()\n this.addEventListener('loadend', () => {\n const url = this.__gctrack_url\n if (!url || isIgnored(url)) return\n report({\n url,\n method: this.__gctrack_method || 'GET',\n status: this.status,\n duration: Date.now() - (this.__gctrack_start || Date.now()),\n })\n })\n return ORIGINAL_SEND.apply(this, arguments as any)\n }\n }\n\n return {\n start() {\n if (installed) return\n installed = true\n patchFetch()\n patchXhr()\n },\n destroy() {\n if (!installed) return\n installed = false\n if (ORIGINAL_FETCH) (globalThis as any).fetch = ORIGINAL_FETCH\n if (ORIGINAL_OPEN) XMLHttpRequest.prototype.open = ORIGINAL_OPEN\n if (ORIGINAL_SEND) XMLHttpRequest.prototype.send = ORIGINAL_SEND\n },\n }\n}\n"],"mappings":";;;AAqBA,MAAM,iBAAiB,OAAO,UAAU,cAAc,MAAM,KAAK,WAAW,GAAG,KAAA;AAC/E,MAAM,gBACJ,OAAO,mBAAmB,cAAc,eAAe,UAAU,OAAO,KAAA;AAC1E,MAAM,gBACJ,OAAO,mBAAmB,cAAc,eAAe,UAAU,OAAO,KAAA;AAE1E,SAAgB,qBACd,SACA,UAAiC,EAAE,EACnB;CAChB,MAAM,EAAE,aAAa,EAAE,EAAE,gBAAgB,QAAS;CAClD,IAAI,YAAY;CAEhB,MAAM,aAAa,QAAyB;EAC1C,MAAM,YAAa,QAAgB;EACnC,MAAM,aAAa,aAAa,WAAW;EAC3C,MAAM,YAAY,cAAc,WAAW;EAC3C,IAAI,aAAa,IAAI,SAAS,UAAU,EAAE,OAAO;EACjD,OAAO,WAAW,MAAM,MACtB,OAAO,MAAM,WAAW,IAAI,SAAS,EAAE,GAAG,EAAE,KAAK,IAAI,CACtD;;CAGH,MAAM,UAAU,SAA6B;EAC3C,MAAM,UAAU,KAAK,WAAW,KAAK,KAAK,UAAU;EACpD,QAAQ,MAAM,UAAUA,kBAAAA,UAAU,WAAWA,kBAAAA,UAAU,gBAAgB;GACrE,GAAG;GACH,MAAM,KAAK,YAAY;GACxB,CAAC;;CAGJ,MAAM,mBAAyB;EAC7B,IAAI,OAAO,UAAU,eAAe,CAAC,gBAAgB;EACrD,MAAM,UAAU,OACd,OACA,SACsB;GACtB,MAAM,MACJ,OAAO,UAAU,WACb,QACA,iBAAiB,MACf,MAAM,OACN,MAAM;GACd,MAAM,UAAW,QAAQ,KAAK,UAAW,OAAO,aAAa;GAC7D,MAAM,QAAQ,KAAK,KAAK;GACxB,IAAI;IACF,MAAM,MAAM,MAAM,eAAe,OAAsB,KAAK;IAC5D,IAAI,CAAC,UAAU,IAAI,EACjB,OAAO;KAAE;KAAK;KAAQ,QAAQ,IAAI;KAAQ,UAAU,KAAK,KAAK,GAAG;KAAO,CAAC;IAE3E,OAAO;YACA,KAAK;IACZ,IAAI,CAAC,UAAU,IAAI,EACjB,OAAO;KACL;KACA;KACA,QAAQ;KACR,UAAU,KAAK,KAAK,GAAG;KACvB,QAAU,OAAkB,IAAc,WAAY;KACvD,CAAC;IAEJ,MAAM;;;EAGT,WAAoB,QAAQ;;CAG/B,MAAM,iBAAuB;EAC3B,IAAI,OAAO,mBAAmB,eAAe,CAAC,iBAAiB,CAAC,eAAe;EAC/E,eAAe,UAAU,OAAO,SAE9B,QACA,KACA;GACA,KAAK,oBAAoB,UAAU,OAAO,aAAa;GACvD,KAAK,gBAAgB;GACrB,OAAO,cAAc,MAAM,MAAM,UAAiB;;EAEpD,eAAe,UAAU,OAAO,WAE9B;GACA,KAAK,kBAAkB,KAAK,KAAK;GACjC,KAAK,iBAAiB,iBAAiB;IACrC,MAAM,MAAM,KAAK;IACjB,IAAI,CAAC,OAAO,UAAU,IAAI,EAAE;IAC5B,OAAO;KACL;KACA,QAAQ,KAAK,oBAAoB;KACjC,QAAQ,KAAK;KACb,UAAU,KAAK,KAAK,IAAI,KAAK,mBAAmB,KAAK,KAAK;KAC3D,CAAC;KACF;GACF,OAAO,cAAc,MAAM,MAAM,UAAiB;;;CAItD,OAAO;EACL,QAAQ;GACN,IAAI,WAAW;GACf,YAAY;GACZ,YAAY;GACZ,UAAU;;EAEZ,UAAU;GACR,IAAI,CAAC,WAAW;GAChB,YAAY;GACZ,IAAI,gBAAgB,WAAoB,QAAQ;GAChD,IAAI,eAAe,eAAe,UAAU,OAAO;GACnD,IAAI,eAAe,eAAe,UAAU,OAAO;;EAEtD"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,9 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
8
8
|
const { ignoreUrls = [], slowThreshold = 3e3 } = options;
|
|
9
9
|
let installed = false;
|
|
10
10
|
const isIgnored = (url) => {
|
|
11
|
-
const
|
|
11
|
+
const getConfig = tracker.getConfig;
|
|
12
|
+
const trackerCfg = getConfig && getConfig();
|
|
13
|
+
const reportUrl = trackerCfg && trackerCfg.reportUrl;
|
|
12
14
|
if (reportUrl && url.includes(reportUrl)) return true;
|
|
13
15
|
return ignoreUrls.some((p) => typeof p === "string" ? url.includes(p) : p.test(url));
|
|
14
16
|
};
|
|
@@ -23,7 +25,7 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
23
25
|
if (typeof fetch === "undefined" || !ORIGINAL_FETCH) return;
|
|
24
26
|
const patched = async (input, init) => {
|
|
25
27
|
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
26
|
-
const method = (init
|
|
28
|
+
const method = (init && init.method || "GET").toUpperCase();
|
|
27
29
|
const start = Date.now();
|
|
28
30
|
try {
|
|
29
31
|
const res = await ORIGINAL_FETCH(input, init);
|
|
@@ -40,7 +42,7 @@ function createNetworkMonitor(tracker, options = {}) {
|
|
|
40
42
|
method,
|
|
41
43
|
status: 0,
|
|
42
44
|
duration: Date.now() - start,
|
|
43
|
-
reason: err
|
|
45
|
+
reason: err && err.message || "fetch_error"
|
|
44
46
|
});
|
|
45
47
|
throw err;
|
|
46
48
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @gctrack/network —— 接口监控\n *\n * 劫持 fetch 与 XMLHttpRequest,自动产出 api_performance / api_error 事件。\n * flyio 底层走 XHR,会被自动覆盖;启用本包后业务层 request 封装无需重复埋点。\n */\nimport type { Tracker } from '@gctrack/core'\nimport { EventType, type ApiEventData } from '@gctrack/protocol'\n\nexport interface NetworkMonitorOptions {\n /** 忽略的 URL(字符串包含匹配或正则);上报地址自身始终被忽略以防循环 */\n ignoreUrls?: Array<string | RegExp>\n /** 慢接口阈值(ms),超过仅用于 data.slow 标记,不影响事件类型 */\n slowThreshold?: number\n}\n\nexport interface NetworkMonitor {\n start: () => void\n destroy: () => void\n}\n\nconst ORIGINAL_FETCH = typeof fetch !== 'undefined' ? fetch.bind(globalThis) : undefined\nconst ORIGINAL_OPEN =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.open : undefined\nconst ORIGINAL_SEND =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.send : undefined\n\nexport function createNetworkMonitor(\n tracker: Tracker,\n options: NetworkMonitorOptions = {},\n): NetworkMonitor {\n const { ignoreUrls = [], slowThreshold = 3000 } = options\n let installed = false\n\n const isIgnored = (url: string): boolean => {\n const
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * @gctrack/network —— 接口监控\n *\n * 劫持 fetch 与 XMLHttpRequest,自动产出 api_performance / api_error 事件。\n * flyio 底层走 XHR,会被自动覆盖;启用本包后业务层 request 封装无需重复埋点。\n */\nimport type { Tracker } from '@gctrack/core'\nimport { EventType, type ApiEventData } from '@gctrack/protocol'\n\nexport interface NetworkMonitorOptions {\n /** 忽略的 URL(字符串包含匹配或正则);上报地址自身始终被忽略以防循环 */\n ignoreUrls?: Array<string | RegExp>\n /** 慢接口阈值(ms),超过仅用于 data.slow 标记,不影响事件类型 */\n slowThreshold?: number\n}\n\nexport interface NetworkMonitor {\n start: () => void\n destroy: () => void\n}\n\nconst ORIGINAL_FETCH = typeof fetch !== 'undefined' ? fetch.bind(globalThis) : undefined\nconst ORIGINAL_OPEN =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.open : undefined\nconst ORIGINAL_SEND =\n typeof XMLHttpRequest !== 'undefined' ? XMLHttpRequest.prototype.send : undefined\n\nexport function createNetworkMonitor(\n tracker: Tracker,\n options: NetworkMonitorOptions = {},\n): NetworkMonitor {\n const { ignoreUrls = [], slowThreshold = 3000 } = options\n let installed = false\n\n const isIgnored = (url: string): boolean => {\n const getConfig = (tracker as any).getConfig\n const trackerCfg = getConfig && getConfig()\n const reportUrl = trackerCfg && trackerCfg.reportUrl\n if (reportUrl && url.includes(reportUrl)) return true\n return ignoreUrls.some((p) =>\n typeof p === 'string' ? url.includes(p) : p.test(url),\n )\n }\n\n const report = (data: ApiEventData): void => {\n const isError = data.status === 0 || data.status >= 400\n tracker.track(isError ? EventType.ApiError : EventType.ApiPerformance, {\n ...data,\n slow: data.duration >= slowThreshold,\n })\n }\n\n const patchFetch = (): void => {\n if (typeof fetch === 'undefined' || !ORIGINAL_FETCH) return\n const patched = async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.href\n : input.url\n const method = ((init && init.method) || 'GET').toUpperCase()\n const start = Date.now()\n try {\n const res = await ORIGINAL_FETCH(input as RequestInfo, init)\n if (!isIgnored(url)) {\n report({ url, method, status: res.status, duration: Date.now() - start })\n }\n return res\n } catch (err) {\n if (!isIgnored(url)) {\n report({\n url,\n method,\n status: 0,\n duration: Date.now() - start,\n reason: ((err as Error) && (err as Error).message) || 'fetch_error',\n })\n }\n throw err\n }\n }\n ;(globalThis as any).fetch = patched\n }\n\n const patchXhr = (): void => {\n if (typeof XMLHttpRequest === 'undefined' || !ORIGINAL_OPEN || !ORIGINAL_SEND) return\n XMLHttpRequest.prototype.open = function (\n this: XMLHttpRequest & Record<string, any>,\n method: string,\n url: string,\n ) {\n this.__gctrack_method = (method || 'GET').toUpperCase()\n this.__gctrack_url = url\n return ORIGINAL_OPEN.apply(this, arguments as any)\n }\n XMLHttpRequest.prototype.send = function (\n this: XMLHttpRequest & Record<string, any>,\n ) {\n this.__gctrack_start = Date.now()\n this.addEventListener('loadend', () => {\n const url = this.__gctrack_url\n if (!url || isIgnored(url)) return\n report({\n url,\n method: this.__gctrack_method || 'GET',\n status: this.status,\n duration: Date.now() - (this.__gctrack_start || Date.now()),\n })\n })\n return ORIGINAL_SEND.apply(this, arguments as any)\n }\n }\n\n return {\n start() {\n if (installed) return\n installed = true\n patchFetch()\n patchXhr()\n },\n destroy() {\n if (!installed) return\n installed = false\n if (ORIGINAL_FETCH) (globalThis as any).fetch = ORIGINAL_FETCH\n if (ORIGINAL_OPEN) XMLHttpRequest.prototype.open = ORIGINAL_OPEN\n if (ORIGINAL_SEND) XMLHttpRequest.prototype.send = ORIGINAL_SEND\n },\n }\n}\n"],"mappings":";;;AAqBA,MAAM,iBAAiB,OAAO,UAAU,cAAc,MAAM,KAAK,WAAW,GAAG,KAAA;AAC/E,MAAM,gBACJ,OAAO,mBAAmB,cAAc,eAAe,UAAU,OAAO,KAAA;AAC1E,MAAM,gBACJ,OAAO,mBAAmB,cAAc,eAAe,UAAU,OAAO,KAAA;AAE1E,SAAgB,qBACd,SACA,UAAiC,EAAE,EACnB;CAChB,MAAM,EAAE,aAAa,EAAE,EAAE,gBAAgB,QAAS;CAClD,IAAI,YAAY;CAEhB,MAAM,aAAa,QAAyB;EAC1C,MAAM,YAAa,QAAgB;EACnC,MAAM,aAAa,aAAa,WAAW;EAC3C,MAAM,YAAY,cAAc,WAAW;EAC3C,IAAI,aAAa,IAAI,SAAS,UAAU,EAAE,OAAO;EACjD,OAAO,WAAW,MAAM,MACtB,OAAO,MAAM,WAAW,IAAI,SAAS,EAAE,GAAG,EAAE,KAAK,IAAI,CACtD;;CAGH,MAAM,UAAU,SAA6B;EAC3C,MAAM,UAAU,KAAK,WAAW,KAAK,KAAK,UAAU;EACpD,QAAQ,MAAM,UAAU,UAAU,WAAW,UAAU,gBAAgB;GACrE,GAAG;GACH,MAAM,KAAK,YAAY;GACxB,CAAC;;CAGJ,MAAM,mBAAyB;EAC7B,IAAI,OAAO,UAAU,eAAe,CAAC,gBAAgB;EACrD,MAAM,UAAU,OACd,OACA,SACsB;GACtB,MAAM,MACJ,OAAO,UAAU,WACb,QACA,iBAAiB,MACf,MAAM,OACN,MAAM;GACd,MAAM,UAAW,QAAQ,KAAK,UAAW,OAAO,aAAa;GAC7D,MAAM,QAAQ,KAAK,KAAK;GACxB,IAAI;IACF,MAAM,MAAM,MAAM,eAAe,OAAsB,KAAK;IAC5D,IAAI,CAAC,UAAU,IAAI,EACjB,OAAO;KAAE;KAAK;KAAQ,QAAQ,IAAI;KAAQ,UAAU,KAAK,KAAK,GAAG;KAAO,CAAC;IAE3E,OAAO;YACA,KAAK;IACZ,IAAI,CAAC,UAAU,IAAI,EACjB,OAAO;KACL;KACA;KACA,QAAQ;KACR,UAAU,KAAK,KAAK,GAAG;KACvB,QAAU,OAAkB,IAAc,WAAY;KACvD,CAAC;IAEJ,MAAM;;;EAGT,WAAoB,QAAQ;;CAG/B,MAAM,iBAAuB;EAC3B,IAAI,OAAO,mBAAmB,eAAe,CAAC,iBAAiB,CAAC,eAAe;EAC/E,eAAe,UAAU,OAAO,SAE9B,QACA,KACA;GACA,KAAK,oBAAoB,UAAU,OAAO,aAAa;GACvD,KAAK,gBAAgB;GACrB,OAAO,cAAc,MAAM,MAAM,UAAiB;;EAEpD,eAAe,UAAU,OAAO,WAE9B;GACA,KAAK,kBAAkB,KAAK,KAAK;GACjC,KAAK,iBAAiB,iBAAiB;IACrC,MAAM,MAAM,KAAK;IACjB,IAAI,CAAC,OAAO,UAAU,IAAI,EAAE;IAC5B,OAAO;KACL;KACA,QAAQ,KAAK,oBAAoB;KACjC,QAAQ,KAAK;KACb,UAAU,KAAK,KAAK,IAAI,KAAK,mBAAmB,KAAK,KAAK;KAC3D,CAAC;KACF;GACF,OAAO,cAAc,MAAM,MAAM,UAAiB;;;CAItD,OAAO;EACL,QAAQ;GACN,IAAI,WAAW;GACf,YAAY;GACZ,YAAY;GACZ,UAAU;;EAEZ,UAAU;GACR,IAAI,CAAC,WAAW;GAChB,YAAY;GACZ,IAAI,gBAAgB,WAAoB,QAAQ;GAChD,IAAI,eAAe,eAAe,UAAU,OAAO;GACnD,IAAI,eAAe,eAAe,UAAU,OAAO;;EAEtD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gctrack/network",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "GCTrack 接口监控 —— fetch / XMLHttpRequest 劫持,产出 api_performance / api_error",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@gctrack/protocol": "0.1.
|
|
32
|
+
"@gctrack/protocol": "0.1.1"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@gctrack/core": "0.1.
|
|
35
|
+
"@gctrack/core": "0.1.1"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsdown",
|