@sentry-internal/browser-utils
Advanced tools
Comparing version
@@ -17,3 +17,2 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
exports.addClsInstrumentationHandler = instrument.addClsInstrumentationHandler; | ||
exports.addFidInstrumentationHandler = instrument.addFidInstrumentationHandler; | ||
exports.addInpInstrumentationHandler = instrument.addInpInstrumentationHandler; | ||
@@ -20,0 +19,0 @@ exports.addLcpInstrumentationHandler = instrument.addLcpInstrumentationHandler; |
@@ -38,3 +38,2 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
} | ||
const fidCleanupCallback = _trackFID(); | ||
const lcpCleanupCallback = recordLcpStandaloneSpans ? lcp.trackLcpAsStandaloneSpan(client) : _trackLCP(); | ||
@@ -45,3 +44,2 @@ const ttfbCleanupCallback = _trackTtfb(); | ||
return () => { | ||
fidCleanupCallback(); | ||
lcpCleanupCallback?.(); | ||
@@ -212,17 +210,2 @@ ttfbCleanupCallback(); | ||
/** Starts tracking the First Input Delay on the current page. */ | ||
function _trackFID() { | ||
return instrument.addFidInstrumentationHandler(({ metric }) => { | ||
const entry = metric.entries[metric.entries.length - 1]; | ||
if (!entry) { | ||
return; | ||
} | ||
const timeOrigin = utils.msToSec(core.browserPerformanceTimeOrigin() ); | ||
const startTime = utils.msToSec(entry.startTime); | ||
_measurements['fid'] = { value: metric.value, unit: 'millisecond' }; | ||
_measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' }; | ||
}); | ||
} | ||
function _trackTtfb() { | ||
@@ -315,17 +298,2 @@ return instrument.addTtfbInstrumentationHandler(({ metric }) => { | ||
const fidMark = _measurements['mark.fid']; | ||
if (fidMark && _measurements['fid']) { | ||
// create span for FID | ||
utils.startAndEndSpan(span, fidMark.value, fidMark.value + utils.msToSec(_measurements['fid'].value), { | ||
name: 'first input delay', | ||
op: 'ui.action', | ||
attributes: { | ||
[core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', | ||
}, | ||
}); | ||
// Delete mark.fid as we don't want it to be part of final payload | ||
delete _measurements['mark.fid']; | ||
} | ||
// If CLS standalone spans are enabled, don't record CLS as a measurement | ||
@@ -332,0 +300,0 @@ if (!options.recordClsOnPageloadSpan) { |
@@ -6,3 +6,2 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
const getCLS = require('./web-vitals/getCLS.js'); | ||
const getFID = require('./web-vitals/getFID.js'); | ||
const getINP = require('./web-vitals/getINP.js'); | ||
@@ -17,3 +16,2 @@ const getLCP = require('./web-vitals/getLCP.js'); | ||
let _previousCls; | ||
let _previousFid; | ||
let _previousLcp; | ||
@@ -52,12 +50,4 @@ let _previousTtfb; | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
* Returns a cleanup callback which can be called to remove the instrumentation handler. | ||
* Add a callback that will be triggered when a TTFD metric is available. | ||
*/ | ||
function addFidInstrumentationHandler(callback) { | ||
return addMetricObserver('fid', callback, instrumentFid, _previousFid); | ||
} | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
*/ | ||
function addTtfbInstrumentationHandler(callback) { | ||
@@ -129,11 +119,2 @@ return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb); | ||
function instrumentFid() { | ||
return getFID.onFID(metric => { | ||
triggerHandlers('fid', { | ||
metric, | ||
}); | ||
_previousFid = metric; | ||
}); | ||
} | ||
function instrumentLcp() { | ||
@@ -248,3 +229,2 @@ return getLCP.onLCP( | ||
exports.addClsInstrumentationHandler = addClsInstrumentationHandler; | ||
exports.addFidInstrumentationHandler = addFidInstrumentationHandler; | ||
exports.addInpInstrumentationHandler = addInpInstrumentationHandler; | ||
@@ -251,0 +231,0 @@ exports.addLcpInstrumentationHandler = addLcpInstrumentationHandler; |
@@ -29,3 +29,3 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
// or have known bugs w.r.t the `visibilitychange` event. | ||
// TODO (v10): If we decide to drop support for Safari 14.4, we can use the logic from web-vitals 4.2.4 | ||
// TODO (v11): If we decide to drop support for Safari 14.4, we can use the logic from web-vitals 4.2.4 | ||
// In this case, we also need to update the integration tests that currently trigger the `pagehide` event to | ||
@@ -32,0 +32,0 @@ // simulate the page being hidden. |
@@ -1,2 +0,2 @@ | ||
export { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler } from './metrics/instrument.js'; | ||
export { addClsInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler } from './metrics/instrument.js'; | ||
export { addPerformanceEntries, startTrackingInteractions, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingWebVitals } from './metrics/browserMetrics.js'; | ||
@@ -3,0 +3,0 @@ export { startTrackingElementTiming } from './metrics/elementTiming.js'; |
import { browserPerformanceTimeOrigin, spanToJSON, setMeasurement, getActiveSpan, parseUrl, stringMatchesSomePattern, isPrimitive, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, htmlTreeAsString, getComponentName } from '@sentry/core'; | ||
import { WINDOW } from '../types.js'; | ||
import { trackClsAsStandaloneSpan } from './cls.js'; | ||
import { addPerformanceInstrumentationHandler, addFidInstrumentationHandler, addLcpInstrumentationHandler, addTtfbInstrumentationHandler, addClsInstrumentationHandler } from './instrument.js'; | ||
import { addPerformanceInstrumentationHandler, addLcpInstrumentationHandler, addTtfbInstrumentationHandler, addClsInstrumentationHandler } from './instrument.js'; | ||
import { trackLcpAsStandaloneSpan } from './lcp.js'; | ||
@@ -36,3 +36,2 @@ import { getBrowserPerformanceAPI, msToSec, startAndEndSpan, extractNetworkProtocol, isMeasurementValue } from './utils.js'; | ||
} | ||
const fidCleanupCallback = _trackFID(); | ||
const lcpCleanupCallback = recordLcpStandaloneSpans ? trackLcpAsStandaloneSpan(client) : _trackLCP(); | ||
@@ -43,3 +42,2 @@ const ttfbCleanupCallback = _trackTtfb(); | ||
return () => { | ||
fidCleanupCallback(); | ||
lcpCleanupCallback?.(); | ||
@@ -210,17 +208,2 @@ ttfbCleanupCallback(); | ||
/** Starts tracking the First Input Delay on the current page. */ | ||
function _trackFID() { | ||
return addFidInstrumentationHandler(({ metric }) => { | ||
const entry = metric.entries[metric.entries.length - 1]; | ||
if (!entry) { | ||
return; | ||
} | ||
const timeOrigin = msToSec(browserPerformanceTimeOrigin() ); | ||
const startTime = msToSec(entry.startTime); | ||
_measurements['fid'] = { value: metric.value, unit: 'millisecond' }; | ||
_measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' }; | ||
}); | ||
} | ||
function _trackTtfb() { | ||
@@ -313,17 +296,2 @@ return addTtfbInstrumentationHandler(({ metric }) => { | ||
const fidMark = _measurements['mark.fid']; | ||
if (fidMark && _measurements['fid']) { | ||
// create span for FID | ||
startAndEndSpan(span, fidMark.value, fidMark.value + msToSec(_measurements['fid'].value), { | ||
name: 'first input delay', | ||
op: 'ui.action', | ||
attributes: { | ||
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', | ||
}, | ||
}); | ||
// Delete mark.fid as we don't want it to be part of final payload | ||
delete _measurements['mark.fid']; | ||
} | ||
// If CLS standalone spans are enabled, don't record CLS as a measurement | ||
@@ -330,0 +298,0 @@ if (!options.recordClsOnPageloadSpan) { |
import { debug, getFunctionName } from '@sentry/core'; | ||
import { DEBUG_BUILD } from '../debug-build.js'; | ||
import { onCLS } from './web-vitals/getCLS.js'; | ||
import { onFID } from './web-vitals/getFID.js'; | ||
import { onINP } from './web-vitals/getINP.js'; | ||
@@ -14,3 +13,2 @@ import { onLCP } from './web-vitals/getLCP.js'; | ||
let _previousCls; | ||
let _previousFid; | ||
let _previousLcp; | ||
@@ -49,12 +47,4 @@ let _previousTtfb; | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
* Returns a cleanup callback which can be called to remove the instrumentation handler. | ||
* Add a callback that will be triggered when a TTFD metric is available. | ||
*/ | ||
function addFidInstrumentationHandler(callback) { | ||
return addMetricObserver('fid', callback, instrumentFid, _previousFid); | ||
} | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
*/ | ||
function addTtfbInstrumentationHandler(callback) { | ||
@@ -126,11 +116,2 @@ return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb); | ||
function instrumentFid() { | ||
return onFID(metric => { | ||
triggerHandlers('fid', { | ||
metric, | ||
}); | ||
_previousFid = metric; | ||
}); | ||
} | ||
function instrumentLcp() { | ||
@@ -244,3 +225,3 @@ return onLCP( | ||
export { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming }; | ||
export { addClsInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming }; | ||
//# sourceMappingURL=instrument.js.map |
@@ -27,3 +27,3 @@ import { WINDOW } from '../../../types.js'; | ||
// or have known bugs w.r.t the `visibilitychange` event. | ||
// TODO (v10): If we decide to drop support for Safari 14.4, we can use the logic from web-vitals 4.2.4 | ||
// TODO (v11): If we decide to drop support for Safari 14.4, we can use the logic from web-vitals 4.2.4 | ||
// In this case, we also need to update the integration tests that currently trigger the `pagehide` event to | ||
@@ -30,0 +30,0 @@ // simulate the page being hidden. |
@@ -1,1 +0,1 @@ | ||
{"type":"module","version":"10.0.0-alpha.1","sideEffects":false} | ||
{"type":"module","version":"10.0.0-alpha.2","sideEffects":false} |
@@ -1,2 +0,2 @@ | ||
export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, addTtfbInstrumentationHandler, addLcpInstrumentationHandler, addInpInstrumentationHandler, } from './metrics/instrument'; | ||
export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addTtfbInstrumentationHandler, addLcpInstrumentationHandler, addInpInstrumentationHandler, } from './metrics/instrument'; | ||
export { addPerformanceEntries, startTrackingInteractions, startTrackingLongTasks, startTrackingLongAnimationFrames, startTrackingWebVitals, startTrackingINP, registerInpInteractionListener, } from './metrics/browserMetrics'; | ||
@@ -3,0 +3,0 @@ export { startTrackingElementTiming } from './metrics/elementTiming'; |
@@ -1,2 +0,2 @@ | ||
type InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource' | 'first-input' | 'element'; | ||
type InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource' | 'element' | 'first-input'; | ||
interface PerformanceEntry { | ||
@@ -31,3 +31,3 @@ readonly duration: number; | ||
*/ | ||
name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB'; | ||
name: 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB'; | ||
/** | ||
@@ -94,11 +94,4 @@ * The current value of the metric. | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
* Returns a cleanup callback which can be called to remove the instrumentation handler. | ||
* Add a callback that will be triggered when a TTFD metric is available. | ||
*/ | ||
export declare function addFidInstrumentationHandler(callback: (data: { | ||
metric: Metric; | ||
}) => void): CleanupHandlerCallback; | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
*/ | ||
export declare function addTtfbInstrumentationHandler(callback: (data: { | ||
@@ -105,0 +98,0 @@ metric: Metric; |
import { MetricRatingThresholds, MetricType } from '../types'; | ||
export declare const bindReporter: <MetricName extends "CLS" | "FCP" | "FID" | "INP" | "LCP" | "TTFB">(callback: (metric: Extract<import("../types").CLSMetric, { | ||
export declare const bindReporter: <MetricName extends "CLS" | "FCP" | "INP" | "LCP" | "TTFB">(callback: (metric: Extract<import("../types").CLSMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").FCPMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -18,4 +16,2 @@ name: MetricName; | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -22,0 +18,0 @@ name: MetricName; |
@@ -1,2 +0,2 @@ | ||
export declare const initMetric: <MetricName extends "CLS" | "FCP" | "FID" | "INP" | "LCP" | "TTFB">(name: MetricName, value?: number) => { | ||
export declare const initMetric: <MetricName extends "CLS" | "FCP" | "INP" | "LCP" | "TTFB">(name: MetricName, value?: number) => { | ||
name: MetricName; | ||
@@ -10,4 +10,2 @@ value: number; | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -14,0 +12,0 @@ name: MetricName; |
export * from './types/base'; | ||
export * from './types/polyfills'; | ||
export * from './types/cls'; | ||
export * from './types/fcp'; | ||
export * from './types/fid'; | ||
export * from './types/inp'; | ||
@@ -7,0 +5,0 @@ export * from './types/lcp'; |
import { CLSMetric, CLSMetricWithAttribution } from './cls'; | ||
import { FCPMetric, FCPMetricWithAttribution } from './fcp'; | ||
import { FIDMetric, FIDMetricWithAttribution } from './fid'; | ||
import { INPMetric, INPMetricWithAttribution } from './inp'; | ||
@@ -10,5 +9,4 @@ import { LCPMetric, LCPMetricWithAttribution } from './lcp'; | ||
* The name of the metric (in acronym form). | ||
* // sentry: re-added FID here since we continue supporting it for now | ||
*/ | ||
name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB'; | ||
name: 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB'; | ||
/** | ||
@@ -59,5 +57,5 @@ * The current value of the metric. | ||
/** The union of supported metric types. */ | ||
export type MetricType = CLSMetric | FCPMetric | FIDMetric | INPMetric | LCPMetric | TTFBMetric; | ||
export type MetricType = CLSMetric | FCPMetric | INPMetric | LCPMetric | TTFBMetric; | ||
/** The union of supported metric attribution types. */ | ||
export type MetricWithAttribution = CLSMetricWithAttribution | FCPMetricWithAttribution | FIDMetricWithAttribution | INPMetricWithAttribution | LCPMetricWithAttribution | TTFBMetricWithAttribution; | ||
export type MetricWithAttribution = CLSMetricWithAttribution | FCPMetricWithAttribution | INPMetricWithAttribution | LCPMetricWithAttribution | TTFBMetricWithAttribution; | ||
/** | ||
@@ -64,0 +62,0 @@ * The thresholds of metric's "good", "needs improvement", and "poor" ratings. |
@@ -1,2 +0,2 @@ | ||
export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, addTtfbInstrumentationHandler, addLcpInstrumentationHandler, addInpInstrumentationHandler, } from './metrics/instrument'; | ||
export { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addTtfbInstrumentationHandler, addLcpInstrumentationHandler, addInpInstrumentationHandler, } from './metrics/instrument'; | ||
export { addPerformanceEntries, startTrackingInteractions, startTrackingLongTasks, startTrackingLongAnimationFrames, startTrackingWebVitals, startTrackingINP, registerInpInteractionListener, } from './metrics/browserMetrics'; | ||
@@ -3,0 +3,0 @@ export { startTrackingElementTiming } from './metrics/elementTiming'; |
@@ -1,2 +0,2 @@ | ||
type InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource' | 'first-input' | 'element'; | ||
type InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource' | 'element' | 'first-input'; | ||
interface PerformanceEntry { | ||
@@ -31,3 +31,3 @@ readonly duration: number; | ||
*/ | ||
name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB'; | ||
name: 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB'; | ||
/** | ||
@@ -94,11 +94,4 @@ * The current value of the metric. | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
* Returns a cleanup callback which can be called to remove the instrumentation handler. | ||
* Add a callback that will be triggered when a TTFD metric is available. | ||
*/ | ||
export declare function addFidInstrumentationHandler(callback: (data: { | ||
metric: Metric; | ||
}) => void): CleanupHandlerCallback; | ||
/** | ||
* Add a callback that will be triggered when a FID metric is available. | ||
*/ | ||
export declare function addTtfbInstrumentationHandler(callback: (data: { | ||
@@ -105,0 +98,0 @@ metric: Metric; |
import type { MetricRatingThresholds, MetricType } from '../types'; | ||
export declare const bindReporter: <MetricName extends "CLS" | "FCP" | "FID" | "INP" | "LCP" | "TTFB">(callback: (metric: Extract<import("../types").CLSMetric, { | ||
export declare const bindReporter: <MetricName extends "CLS" | "FCP" | "INP" | "LCP" | "TTFB">(callback: (metric: Extract<import("../types").CLSMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").FCPMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -18,4 +16,2 @@ name: MetricName; | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -22,0 +18,0 @@ name: MetricName; |
@@ -1,2 +0,2 @@ | ||
export declare const initMetric: <MetricName extends "CLS" | "FCP" | "FID" | "INP" | "LCP" | "TTFB">(name: MetricName, value?: number) => { | ||
export declare const initMetric: <MetricName extends "CLS" | "FCP" | "INP" | "LCP" | "TTFB">(name: MetricName, value?: number) => { | ||
name: MetricName; | ||
@@ -10,4 +10,2 @@ value: number; | ||
name: MetricName; | ||
}> | Extract<import("../types").FIDMetric, { | ||
name: MetricName; | ||
}> | Extract<import("../types").INPMetric, { | ||
@@ -14,0 +12,0 @@ name: MetricName; |
export * from './types/base'; | ||
export * from './types/polyfills'; | ||
export * from './types/cls'; | ||
export * from './types/fcp'; | ||
export * from './types/fid'; | ||
export * from './types/inp'; | ||
@@ -7,0 +5,0 @@ export * from './types/lcp'; |
import type { CLSMetric, CLSMetricWithAttribution } from './cls'; | ||
import type { FCPMetric, FCPMetricWithAttribution } from './fcp'; | ||
import type { FIDMetric, FIDMetricWithAttribution } from './fid'; | ||
import type { INPMetric, INPMetricWithAttribution } from './inp'; | ||
@@ -10,5 +9,4 @@ import type { LCPMetric, LCPMetricWithAttribution } from './lcp'; | ||
* The name of the metric (in acronym form). | ||
* // sentry: re-added FID here since we continue supporting it for now | ||
*/ | ||
name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB'; | ||
name: 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB'; | ||
/** | ||
@@ -59,5 +57,5 @@ * The current value of the metric. | ||
/** The union of supported metric types. */ | ||
export type MetricType = CLSMetric | FCPMetric | FIDMetric | INPMetric | LCPMetric | TTFBMetric; | ||
export type MetricType = CLSMetric | FCPMetric | INPMetric | LCPMetric | TTFBMetric; | ||
/** The union of supported metric attribution types. */ | ||
export type MetricWithAttribution = CLSMetricWithAttribution | FCPMetricWithAttribution | FIDMetricWithAttribution | INPMetricWithAttribution | LCPMetricWithAttribution | TTFBMetricWithAttribution; | ||
export type MetricWithAttribution = CLSMetricWithAttribution | FCPMetricWithAttribution | INPMetricWithAttribution | LCPMetricWithAttribution | TTFBMetricWithAttribution; | ||
/** | ||
@@ -64,0 +62,0 @@ * The thresholds of metric's "good", "needs improvement", and "poor" ratings. |
{ | ||
"name": "@sentry-internal/browser-utils", | ||
"version": "10.0.0-alpha.1", | ||
"version": "10.0.0-alpha.2", | ||
"description": "Browser Utilities for all Sentry JavaScript SDKs", | ||
@@ -42,3 +42,3 @@ "repository": "git://github.com/getsentry/sentry-javascript.git", | ||
"dependencies": { | ||
"@sentry/core": "10.0.0-alpha.1" | ||
"@sentry/core": "10.0.0-alpha.2" | ||
}, | ||
@@ -45,0 +45,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 2 instances in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
8
-20%835841
-4.11%277
-5.46%8958
-4.86%+ Added
- Removed
Updated