chore: Switch coverage from istanbul to the v8 provider for speed (#2619)
This commit is contained in:
+1
-1
@@ -68,7 +68,7 @@
|
|||||||
"@types/masonry-layout": "^4.2.8",
|
"@types/masonry-layout": "^4.2.8",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.30.1",
|
"@typescript-eslint/eslint-plugin": "^8.30.1",
|
||||||
"@typescript-eslint/parser": "^8.30.1",
|
"@typescript-eslint/parser": "^8.30.1",
|
||||||
"@vitest/coverage-istanbul": "^4.1.10",
|
"@vitest/coverage-v8": "^4.1.10",
|
||||||
"conventional-changelog-conventionalcommits": "^8.0.0",
|
"conventional-changelog-conventionalcommits": "^8.0.0",
|
||||||
"docsify-cli": "^4.4.4",
|
"docsify-cli": "^4.4.4",
|
||||||
"eslint": "^9.24.0",
|
"eslint": "^9.24.0",
|
||||||
|
|||||||
@@ -171,9 +171,14 @@ export const actionHandler = directive(
|
|||||||
return noChange;
|
return noChange;
|
||||||
}
|
}
|
||||||
|
|
||||||
// istanbul ignore next -- @preserve Required by Lit Directive API but never called (update() is used instead)
|
// Required by Lit Directive API but never called (update() is used instead).
|
||||||
|
// The start/stop form of the coverage hint is used because the `next` form
|
||||||
|
// applies to whatever immediately follows the comment, which here is
|
||||||
|
// another comment.
|
||||||
|
/* v8 ignore start -- @preserve */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
render(_options?: AdvancedCameraCardActionHandlerOptions) {}
|
render(_options?: AdvancedCameraCardActionHandlerOptions) {}
|
||||||
|
/* v8 ignore stop -- @preserve */
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,14 @@ export class Camera {
|
|||||||
this._capabilities ??
|
this._capabilities ??
|
||||||
(await this._buildCapabilities(hass, options));
|
(await this._buildCapabilities(hass, options));
|
||||||
|
|
||||||
|
// The else path is tested, but the `v8` coverage provider miscounts it: a
|
||||||
|
// missing `else` is given the count of the `if` statement minus the count
|
||||||
|
// of its body, and the engine only counts code after an `await` for the
|
||||||
|
// calls that actually paused there. Calls that took an earlier `??` value
|
||||||
|
// above skipped the `await`, which makes the first number the smaller one
|
||||||
|
// and the result negative.
|
||||||
|
// See: https://github.com/AriPerkkio/ast-v8-to-istanbul/issues/148
|
||||||
|
/* v8 ignore else -- @preserve */
|
||||||
if (this._capabilities.has('trigger')) {
|
if (this._capabilities.has('trigger')) {
|
||||||
await this._getTriggerEntities(hass, options);
|
await this._getTriggerEntities(hass, options);
|
||||||
this._config.triggers.entities = uniq(this._config.triggers.entities);
|
this._config.triggers.entities = uniq(this._config.triggers.entities);
|
||||||
|
|||||||
@@ -489,7 +489,7 @@ export class FrigateCamera extends Camera {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next -- exercising the matcher is not possible when the
|
/* v8 ignore next -- exercising the matcher is not possible when the
|
||||||
test uses an event watcher -- @preserve */
|
test uses an event watcher -- @preserve */
|
||||||
const request: FrigateWatcherRequest<FrigateEventChange> = {
|
const request: FrigateWatcherRequest<FrigateEventChange> = {
|
||||||
instanceID: config.frigate.client_id,
|
instanceID: config.frigate.client_id,
|
||||||
@@ -573,7 +573,7 @@ export class FrigateCamera extends Camera {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next -- exercising the matcher is not possible when the
|
/* v8 ignore next -- exercising the matcher is not possible when the
|
||||||
test uses a review watcher -- @preserve */
|
test uses a review watcher -- @preserve */
|
||||||
const request: FrigateWatcherRequest<FrigateReviewChange> = {
|
const request: FrigateWatcherRequest<FrigateReviewChange> = {
|
||||||
instanceID: config.frigate.client_id,
|
instanceID: config.frigate.client_id,
|
||||||
|
|||||||
@@ -429,7 +429,7 @@ export class FrigateCameraManagerEngine
|
|||||||
instanceID: string,
|
instanceID: string,
|
||||||
cameraIDs?: Set<string>,
|
cameraIDs?: Set<string>,
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
/* istanbul ignore next: defensive guard, instances.get() always returns
|
/* v8 ignore next: defensive guard, instances.get() always returns
|
||||||
a value when iterating instances.keys() -- @preserve */
|
a value when iterating instances.keys() -- @preserve */
|
||||||
if (!cameraIDs?.size) {
|
if (!cameraIDs?.size) {
|
||||||
return;
|
return;
|
||||||
@@ -508,7 +508,7 @@ export class FrigateCameraManagerEngine
|
|||||||
instanceID: string,
|
instanceID: string,
|
||||||
cameraIDs?: Set<string>,
|
cameraIDs?: Set<string>,
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
/* istanbul ignore next: defensive guard, instances.get() always returns
|
/* v8 ignore next: defensive guard, instances.get() always returns
|
||||||
a value when iterating instances.keys() -- @preserve */
|
a value when iterating instances.keys() -- @preserve */
|
||||||
if (!cameraIDs?.size) {
|
if (!cameraIDs?.size) {
|
||||||
return;
|
return;
|
||||||
@@ -1032,7 +1032,7 @@ export class FrigateCameraManagerEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const result of recordings.values()) {
|
for (const result of recordings.values()) {
|
||||||
/* istanbul ignore next: this engine's getRecordings() always produces
|
/* v8 ignore next: this engine's getRecordings() always produces
|
||||||
FrigateRecordingQueryResults -- @preserve */
|
FrigateRecordingQueryResults -- @preserve */
|
||||||
if (!FrigateQueryResultsClassifier.isFrigateRecordingQueryResults(result)) {
|
if (!FrigateQueryResultsClassifier.isFrigateRecordingQueryResults(result)) {
|
||||||
continue;
|
continue;
|
||||||
@@ -1102,7 +1102,7 @@ export class FrigateCameraManagerEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const [query, result] of results) {
|
for (const [query, result] of results) {
|
||||||
/* istanbul ignore next: this engine's getRecordings() always produces
|
/* v8 ignore next: this engine's getRecordings() always produces
|
||||||
FrigateRecordingQueryResults -- @preserve */
|
FrigateRecordingQueryResults -- @preserve */
|
||||||
if (!FrigateQueryResultsClassifier.isFrigateRecordingQueryResults(result)) {
|
if (!FrigateQueryResultsClassifier.isFrigateRecordingQueryResults(result)) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ export class CameraManager {
|
|||||||
const engines: Map<Engine, CameraManagerEngine> = new Map();
|
const engines: Map<Engine, CameraManagerEngine> = new Map();
|
||||||
const hass = this._api.getHASSManager().getHASS();
|
const hass = this._api.getHASSManager().getHASS();
|
||||||
|
|
||||||
/* istanbul ignore if: the if path cannot be reached -- @preserve */
|
/* v8 ignore if: the if path cannot be reached -- @preserve */
|
||||||
if (!hass) {
|
if (!hass) {
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
@@ -225,7 +225,7 @@ export class CameraManager {
|
|||||||
const initializationStartTime = new Date();
|
const initializationStartTime = new Date();
|
||||||
const hass = this._api.getHASSManager().getHASS();
|
const hass = this._api.getHASSManager().getHASS();
|
||||||
|
|
||||||
/* istanbul ignore if: the if path cannot be reached -- @preserve */
|
/* v8 ignore if: the if path cannot be reached -- @preserve */
|
||||||
if (!hass) {
|
if (!hass) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -366,7 +366,7 @@ export class CameraManager {
|
|||||||
|
|
||||||
for (const [engine, cameraIDs] of engines) {
|
for (const [engine, cameraIDs] of engines) {
|
||||||
let queries: CameraQuery[] | null = null;
|
let queries: CameraQuery[] | null = null;
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
/* v8 ignore else: the else path cannot be reached -- @preserve */
|
||||||
if (CameraQueryClassifier.isEventQuery(partialQuery)) {
|
if (CameraQueryClassifier.isEventQuery(partialQuery)) {
|
||||||
queries = engine.generateDefaultEventQuery(this._store, cameraIDs, partialQuery);
|
queries = engine.generateDefaultEventQuery(this._store, cameraIDs, partialQuery);
|
||||||
} else if (CameraQueryClassifier.isRecordingQuery(partialQuery)) {
|
} else if (CameraQueryClassifier.isRecordingQuery(partialQuery)) {
|
||||||
@@ -540,7 +540,7 @@ export class CameraManager {
|
|||||||
for (const query of queries) {
|
for (const query of queries) {
|
||||||
const newChunkQuery = { ...query };
|
const newChunkQuery = { ...query };
|
||||||
|
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
/* v8 ignore else: the else path cannot be reached -- @preserve */
|
||||||
if (direction === 'later') {
|
if (direction === 'later') {
|
||||||
const latestResult = getTimeFromResults('latest');
|
const latestResult = getTimeFromResults('latest');
|
||||||
if (latestResult) {
|
if (latestResult) {
|
||||||
@@ -728,7 +728,7 @@ export class CameraManager {
|
|||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
let engineResult: Map<QT, QueryReturnType<QT>> | null = null;
|
let engineResult: Map<QT, QueryReturnType<QT>> | null = null;
|
||||||
|
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
/* v8 ignore else: the else path cannot be reached -- @preserve */
|
||||||
if (CameraQueryClassifier.isEventQuery(query)) {
|
if (CameraQueryClassifier.isEventQuery(query)) {
|
||||||
engineResult = (await engine.getEvents(
|
engineResult = (await engine.getEvents(
|
||||||
hass,
|
hass,
|
||||||
@@ -825,7 +825,7 @@ export class CameraManager {
|
|||||||
|
|
||||||
if (engine) {
|
if (engine) {
|
||||||
let media: ViewMedia[] | null = null;
|
let media: ViewMedia[] | null = null;
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
/* v8 ignore else: the else path cannot be reached -- @preserve */
|
||||||
if (
|
if (
|
||||||
CameraQueryClassifier.isEventQuery(query) &&
|
CameraQueryClassifier.isEventQuery(query) &&
|
||||||
QueryResultClassifier.isEventQueryResult(result)
|
QueryResultClassifier.isEventQueryResult(result)
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ export class MotionEyeCameraManagerEngine extends BrowseMediaCameraManagerEngine
|
|||||||
parent?: RichBrowseMedia<BrowseMediaMetadata>,
|
parent?: RichBrowseMedia<BrowseMediaMetadata>,
|
||||||
): BrowseMediaMetadata | null {
|
): BrowseMediaMetadata | null {
|
||||||
let startDate = parent?._metadata?.startDate ?? new Date();
|
let startDate = parent?._metadata?.startDate ?? new Date();
|
||||||
/* istanbul ignore next: dateFormat is always non-null for files because
|
/* v8 ignore next: dateFormat is always non-null for files because
|
||||||
Zod requires file_pattern to contain % -- @preserve */
|
Zod requires file_pattern to contain % -- @preserve */
|
||||||
if (dateFormat) {
|
if (dateFormat) {
|
||||||
const extensionlessTitle = media.title.replace(/\.[^/.]+$/, '');
|
const extensionlessTitle = media.title.replace(/\.[^/.]+$/, '');
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ export class ReolinkCamera extends EntityCamera {
|
|||||||
reolinkPTZCapabilities.presets = ptzPresetsEntityState.attributes.options;
|
reolinkPTZCapabilities.presets = ptzPresetsEntityState.attributes.options;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next: this path cannot be reached as ptzEntities will
|
/* v8 ignore next: this path cannot be reached as ptzEntities will
|
||||||
always have contents when this function is called -- @preserve */
|
always have contents when this function is called -- @preserve */
|
||||||
return Object.keys(reolinkPTZCapabilities).length ? reolinkPTZCapabilities : null;
|
return Object.keys(reolinkPTZCapabilities).length ? reolinkPTZCapabilities : null;
|
||||||
}
|
}
|
||||||
@@ -248,7 +248,7 @@ export class ReolinkCamera extends EntityCamera {
|
|||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entityRegistry: EntityRegistryManager,
|
entityRegistry: EntityRegistryManager,
|
||||||
): Promise<PTZEntities | null> {
|
): Promise<PTZEntities | null> {
|
||||||
/* istanbul ignore next: this path cannot be reached as an exception is
|
/* v8 ignore next: this path cannot be reached as an exception is
|
||||||
thrown in initialize() if this value is not found -- @preserve */
|
thrown in initialize() if this value is not found -- @preserve */
|
||||||
if (!this._reolinkHostID) {
|
if (!this._reolinkHostID) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
|||||||
media: BrowseMedia,
|
media: BrowseMedia,
|
||||||
parent?: RichBrowseMedia<BrowseMediaMetadata>,
|
parent?: RichBrowseMedia<BrowseMediaMetadata>,
|
||||||
): BrowseMediaMetadata | null {
|
): BrowseMediaMetadata | null {
|
||||||
/* istanbul ignore next: This situation cannot happen as the directory would
|
/* v8 ignore next: This situation cannot happen as the directory would
|
||||||
be rejected by _reolinkDirectoryMetadataGenerator if there was no start date
|
be rejected by _reolinkDirectoryMetadataGenerator if there was no start date
|
||||||
-- @preserve */
|
-- @preserve */
|
||||||
if (!parent?._metadata?.startDate || media.media_class !== MEDIA_CLASS_VIDEO) {
|
if (!parent?._metadata?.startDate || media.media_class !== MEDIA_CLASS_VIDEO) {
|
||||||
@@ -375,7 +375,7 @@ export class ReolinkCameraManagerEngine extends BrowseMediaCameraManagerEngine {
|
|||||||
engineOptions,
|
engineOptions,
|
||||||
);
|
);
|
||||||
for (const dayDirectory of directories ?? []) {
|
for (const dayDirectory of directories ?? []) {
|
||||||
/* istanbul ignore next: This situation cannot happen as the directory
|
/* v8 ignore next: This situation cannot happen as the directory
|
||||||
will not match without metadata -- @preserve */
|
will not match without metadata -- @preserve */
|
||||||
if (dayDirectory._metadata?.startDate) {
|
if (dayDirectory._metadata?.startDate) {
|
||||||
days.add(formatDate(dayDirectory._metadata.startDate));
|
days.add(formatDate(dayDirectory._metadata.startDate));
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ export class PTZDigitalAction extends AdvancedCameraCardAction<PTZDigitialAction
|
|||||||
return await this._stepChange(api, targetID);
|
return await this._stepChange(api, targetID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
/* v8 ignore else: the else path cannot be reached -- @preserve */
|
||||||
if (action.ptz_phase === 'start') {
|
if (action.ptz_phase === 'start') {
|
||||||
await stopInProgressForThisTarget(targetID, this._context.ptzDigital);
|
await stopInProgressForThisTarget(targetID, this._context.ptzDigital);
|
||||||
setInProgressForThisTarget(targetID, this._context, 'ptzDigital', this);
|
setInProgressForThisTarget(targetID, this._context, 'ptzDigital', this);
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ export class PTZAction extends AdvancedCameraCardAction<PTZActionConfig> {
|
|||||||
setInProgressForThisTarget(ptzCameraID, this._context, 'ptz', this);
|
setInProgressForThisTarget(ptzCameraID, this._context, 'ptz', this);
|
||||||
|
|
||||||
const singleStep = async (): Promise<void> => {
|
const singleStep = async (): Promise<void> => {
|
||||||
/* istanbul ignore else: the else path cannot be reached as ptz_action
|
/* v8 ignore else: the else path cannot be reached as ptz_action
|
||||||
being present is checked above -- @preserve */
|
being present is checked above -- @preserve */
|
||||||
if (action.ptz_action) {
|
if (action.ptz_action) {
|
||||||
await api.getCameraManager().executePTZAction(ptzCameraID, action.ptz_action, {
|
await api.getCameraManager().executePTZAction(ptzCameraID, action.ptz_action, {
|
||||||
@@ -133,7 +133,7 @@ export class PTZAction extends AdvancedCameraCardAction<PTZActionConfig> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._timer.start(ptzConfiguration.c2r_delay_between_calls_seconds, async () => {
|
this._timer.start(ptzConfiguration.c2r_delay_between_calls_seconds, async () => {
|
||||||
/* istanbul ignore else: the else path cannot be reached as ptz_action
|
/* v8 ignore else: the else path cannot be reached as ptz_action
|
||||||
being present is checked above -- @preserve */
|
being present is checked above -- @preserve */
|
||||||
if (action.ptz_action) {
|
if (action.ptz_action) {
|
||||||
await api.getCameraManager().executePTZAction(ptzCameraID, action.ptz_action, {
|
await api.getCameraManager().executePTZAction(ptzCameraID, action.ptz_action, {
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export abstract class GeneratedTone implements Tone {
|
|||||||
// Current AudioContext time. Subclasses only read this from inside `_play()`
|
// Current AudioContext time. Subclasses only read this from inside `_play()`
|
||||||
// where the context is always set.
|
// where the context is always set.
|
||||||
protected get _currentTime(): number {
|
protected get _currentTime(): number {
|
||||||
/* istanbul ignore next: _currentTime is only read by subclasses from
|
/* v8 ignore next: _currentTime is only read by subclasses from
|
||||||
_play() during an active context -- @preserve */
|
_play() during an active context -- @preserve */
|
||||||
return this._context?.currentTime ?? 0;
|
return this._context?.currentTime ?? 0;
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ export abstract class GeneratedTone implements Tone {
|
|||||||
// of their pattern to loop. No-ops if the context has already been closed so
|
// of their pattern to loop. No-ops if the context has already been closed so
|
||||||
// a stopped tone can never re-arm its loop.
|
// a stopped tone can never re-arm its loop.
|
||||||
protected _scheduleNext(intervalSeconds: number): void {
|
protected _scheduleNext(intervalSeconds: number): void {
|
||||||
/* istanbul ignore next: defensive guard against a subclass calling
|
/* v8 ignore next: defensive guard against a subclass calling
|
||||||
_scheduleNext after stop() -- JS single-threading makes this unreachable
|
_scheduleNext after stop() -- JS single-threading makes this unreachable
|
||||||
from the existing subclasses -- @preserve */
|
from the existing subclasses -- @preserve */
|
||||||
if (!this._context) {
|
if (!this._context) {
|
||||||
@@ -78,7 +78,7 @@ export abstract class GeneratedTone implements Tone {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._timer.start(intervalSeconds, () => {
|
this._timer.start(intervalSeconds, () => {
|
||||||
/* istanbul ignore next: Timer.stop() cancels pending callbacks, so this
|
/* v8 ignore next: Timer.stop() cancels pending callbacks, so this
|
||||||
re-entry guard is unreachable in practice -- @preserve */
|
re-entry guard is unreachable in practice -- @preserve */
|
||||||
if (!this._context) {
|
if (!this._context) {
|
||||||
return;
|
return;
|
||||||
@@ -89,7 +89,7 @@ export abstract class GeneratedTone implements Tone {
|
|||||||
|
|
||||||
// Plays one note: a smooth tone that rises to peak volume and then fades.
|
// Plays one note: a smooth tone that rises to peak volume and then fades.
|
||||||
protected _playNote(freq: number, when: number, envelope: ToneEnvelope): void {
|
protected _playNote(freq: number, when: number, envelope: ToneEnvelope): void {
|
||||||
/* istanbul ignore next: _playNote is only called by subclasses from
|
/* v8 ignore next: _playNote is only called by subclasses from
|
||||||
_play() during an active context -- @preserve */
|
_play() during an active context -- @preserve */
|
||||||
if (!this._context) {
|
if (!this._context) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export class CustomTone implements Tone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _handleEnded = (): void => {
|
private _handleEnded = (): void => {
|
||||||
/* istanbul ignore next: stop() removes this listener before nulling
|
/* v8 ignore next: stop() removes this listener before nulling
|
||||||
_audio, so the handler can't fire with a null _audio -- @preserve */
|
_audio, so the handler can't fire with a null _audio -- @preserve */
|
||||||
if (!this._audio) {
|
if (!this._audio) {
|
||||||
return;
|
return;
|
||||||
@@ -64,7 +64,7 @@ export class CustomTone implements Tone {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private _playAudio(): void {
|
private _playAudio(): void {
|
||||||
/* istanbul ignore next: callers (start, _handleEnded) only invoke
|
/* v8 ignore next: callers (start, _handleEnded) only invoke
|
||||||
_playAudio when _audio is non-null -- @preserve */
|
_playAudio when _audio is non-null -- @preserve */
|
||||||
if (!this._audio) {
|
if (!this._audio) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ export class CameraTriggersManager {
|
|||||||
} else if (ev.fidelity === 'high' && triggerAction === 'media') {
|
} else if (ev.fidelity === 'high' && triggerAction === 'media') {
|
||||||
// Choose the most appropriate media view based on what's available.
|
// Choose the most appropriate media view based on what's available.
|
||||||
// Priority: review > clip > snapshot
|
// Priority: review > clip > snapshot
|
||||||
/* istanbul ignore next: the `null` case is unreachable due to `skipViewAction` above -- @preserve */
|
/* v8 ignore next: the `null` case is unreachable due to `skipViewAction` above -- @preserve */
|
||||||
const view = ev.review
|
const view = ev.review
|
||||||
? 'review'
|
? 'review'
|
||||||
: ev.clip
|
: ev.clip
|
||||||
@@ -251,7 +251,7 @@ export class CameraTriggersManager {
|
|||||||
? 'snapshot'
|
? 'snapshot'
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
/* istanbul ignore next: unreachable due to `skipViewAction` above -- @preserve */
|
/* v8 ignore next: unreachable due to `skipViewAction` above -- @preserve */
|
||||||
if (view) {
|
if (view) {
|
||||||
await this._api.getViewManager().setViewByParametersWithNewQuery({
|
await this._api.getViewManager().setViewByParametersWithNewQuery({
|
||||||
params: {
|
params: {
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ export class ConfigManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _processOverrideConfig(): void {
|
private _processOverrideConfig(): void {
|
||||||
/* istanbul ignore if: No (current) way to reach this code -- @preserve */
|
/* v8 ignore if: No (current) way to reach this code -- @preserve */
|
||||||
if (!this._config) {
|
if (!this._config) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export class ViewItemManager {
|
|||||||
try {
|
try {
|
||||||
await this._download(item);
|
await this._download(item);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
/* istanbul ignore if: catch always provides a non-null error -- @preserve */
|
/* v8 ignore if: catch always provides a non-null error -- @preserve */
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ export class ViewItemManager {
|
|||||||
if (source === ViewMediaSource.Camera && ViewItemClassifier.isMedia(item)) {
|
if (source === ViewMediaSource.Camera && ViewItemClassifier.isMedia(item)) {
|
||||||
return await this._api.getCameraManager().favoriteMedia(item, favorite);
|
return await this._api.getCameraManager().favoriteMedia(item, favorite);
|
||||||
}
|
}
|
||||||
/* istanbul ignore else: this path cannot be reached -- @preserve */
|
/* v8 ignore else: this path cannot be reached -- @preserve */
|
||||||
if (source === ViewMediaSource.Folder) {
|
if (source === ViewMediaSource.Folder) {
|
||||||
return this._api.getFoldersManager().favorite(item, favorite);
|
return this._api.getFoldersManager().favorite(item, favorite);
|
||||||
}
|
}
|
||||||
@@ -78,7 +78,6 @@ export class ViewItemManager {
|
|||||||
return ViewMediaSource.Folder;
|
return ViewMediaSource.Folder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next: this path cannot be reached -- @preserve */
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,12 +132,12 @@ export class ViewItemManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore else: this path cannot be reached -- @preserve */
|
/* v8 ignore else: this path cannot be reached -- @preserve */
|
||||||
if (ViewItemClassifier.isFolder(item)) {
|
if (ViewItemClassifier.isFolder(item)) {
|
||||||
return toFilename(item.getTitle() ?? 'media');
|
return toFilename(item.getTitle() ?? 'media');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next: this path cannot be reached -- @preserve */
|
/* v8 ignore next: this path cannot be reached -- @preserve */
|
||||||
return 'download';
|
return 'download';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ export class ViewManager implements ViewManagerInterface {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore if: the if path cannot be reached as the view is set
|
/* v8 ignore if: the if path cannot be reached as the view is set
|
||||||
above -- @preserve */
|
above -- @preserve */
|
||||||
if (!this._view) {
|
if (!this._view) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ export class ViewQueryExecutor {
|
|||||||
const now = new Date();
|
const now = new Date();
|
||||||
const liveConfig = this._api.getConfigManager().getConfig()?.live;
|
const liveConfig = this._api.getConfigManager().getConfig()?.live;
|
||||||
|
|
||||||
/* istanbul ignore if: this if branch cannot be reached as if the config is
|
/* v8 ignore if: this if branch cannot be reached as if the config is
|
||||||
empty this function is never called -- @preserve */
|
empty this function is never called -- @preserve */
|
||||||
if (!liveConfig) {
|
if (!liveConfig) {
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export class MJPEGStreamSource extends ImageFrameStreamSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected _handleFrame(data: ArrayBuffer): void {
|
protected _handleFrame(data: ArrayBuffer): void {
|
||||||
/* istanbul ignore next: This never rejects; the catch satisfies the no-floating-promises -- @preserve */
|
/* v8 ignore next: This never rejects; the catch satisfies the no-floating-promises -- @preserve */
|
||||||
this._showFrame(new Blob([data], { type: 'image/jpeg' })).catch(() => {});
|
this._showFrame(new Blob([data], { type: 'image/jpeg' })).catch(() => {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export class MP4StreamSource extends ImageFrameStreamSource {
|
|||||||
context.drawImage(decoder, 0, 0, canvas.width, canvas.height);
|
context.drawImage(decoder, 0, 0, canvas.width, canvas.height);
|
||||||
canvas.toBlob((frame) => {
|
canvas.toBlob((frame) => {
|
||||||
if (frame) {
|
if (frame) {
|
||||||
/* istanbul ignore next: This never rejects; the catch satisfies the no-floating-promises -- @preserve */
|
/* v8 ignore next: This never rejects; the catch satisfies the no-floating-promises -- @preserve */
|
||||||
this._showFrame(frame).catch(() => {});
|
this._showFrame(frame).catch(() => {});
|
||||||
}
|
}
|
||||||
}, 'image/jpeg');
|
}, 'image/jpeg');
|
||||||
|
|||||||
@@ -353,7 +353,6 @@ export class MediaGridController {
|
|||||||
const eventPath = ev.composedPath();
|
const eventPath = ev.composedPath();
|
||||||
|
|
||||||
for (const [id, element] of this._gridContents.entries()) {
|
for (const [id, element] of this._gridContents.entries()) {
|
||||||
/* istanbul ignore else: the else path cannot be reached -- @preserve */
|
|
||||||
if (eventPath.includes(element)) {
|
if (eventPath.includes(element)) {
|
||||||
if (this._selected !== id) {
|
if (this._selected !== id) {
|
||||||
// Fire the request but do not mutate local state. The authoritative
|
// Fire the request but do not mutate local state. The authoritative
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export class MediaHeightController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _initializeRoot(): void {
|
private _initializeRoot(): void {
|
||||||
/* istanbul ignore next: the absent-root path cannot be reached as root will
|
/* v8 ignore next: the absent-root path cannot be reached as root will
|
||||||
always exist by the time the mutation observer is observing -- @preserve */
|
always exist by the time the mutation observer is observing -- @preserve */
|
||||||
const children = [
|
const children = [
|
||||||
...(this._root?.querySelectorAll<HTMLElement>(this._selector) ?? []),
|
...(this._root?.querySelectorAll<HTMLElement>(this._selector) ?? []),
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ export class PTZDragController implements ReactiveController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _restoreGestureStyles(): void {
|
private _restoreGestureStyles(): void {
|
||||||
/* istanbul ignore next: only called when gesture is active -- @preserve */
|
/* v8 ignore next: only called when gesture is active -- @preserve */
|
||||||
if (this._gestureElement) {
|
if (this._gestureElement) {
|
||||||
this._gestureElement.style.cursor = this._savedCursor;
|
this._gestureElement.style.cursor = this._savedCursor;
|
||||||
this._gestureElement.style.touchAction = this._savedTouchAction;
|
this._gestureElement.style.touchAction = this._savedTouchAction;
|
||||||
@@ -138,7 +138,7 @@ export class PTZDragController implements ReactiveController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _setCursor(grabbing: boolean): void {
|
private _setCursor(grabbing: boolean): void {
|
||||||
/* istanbul ignore next: only called when gesture is active -- @preserve */
|
/* v8 ignore next: only called when gesture is active -- @preserve */
|
||||||
if (this._gestureElement) {
|
if (this._gestureElement) {
|
||||||
this._gestureElement.style.cursor = grabbing ? CURSOR_GRABBING : CURSOR_GRAB;
|
this._gestureElement.style.cursor = grabbing ? CURSOR_GRABBING : CURSOR_GRAB;
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ export class PTZDragController implements ReactiveController {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private _dispatch(action: PTZAction | null, phase?: PTZActionPhase): void {
|
private _dispatch(action: PTZAction | null, phase?: PTZActionPhase): void {
|
||||||
/* istanbul ignore next: all call sites guard against this -- @preserve */
|
/* v8 ignore next: all call sites guard against this -- @preserve */
|
||||||
if (!action) {
|
if (!action) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ export class StatusBarController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _getSufficientValue(item: StatusBarItem): string | null {
|
private _getSufficientValue(item: StatusBarItem): string | null {
|
||||||
/* istanbul ignore else: cannot happen -- @preserve */
|
/* v8 ignore else: cannot happen -- @preserve */
|
||||||
if (item.type === 'custom:advanced-camera-card-status-bar-icon') {
|
if (item.type === 'custom:advanced-camera-card-status-bar-icon') {
|
||||||
return item.icon;
|
return item.icon;
|
||||||
} else if (item.type === 'custom:advanced-camera-card-status-bar-string') {
|
} else if (item.type === 'custom:advanced-camera-card-status-bar-string') {
|
||||||
|
|||||||
@@ -123,10 +123,6 @@ export class ZoomController {
|
|||||||
config?.zoom ?? ZOOM_DEFAULT_SCALE,
|
config?.zoom ?? ZOOM_DEFAULT_SCALE,
|
||||||
);
|
);
|
||||||
|
|
||||||
// The ZOOM_DEFAULT_SCALE fallback is not reachable: without a zoom value a
|
|
||||||
// default of 1 is assumed in _convertPercentToXYPan, which returns null at
|
|
||||||
// the default zoom, leaving `converted` unset.
|
|
||||||
/* istanbul ignore next @preserve */
|
|
||||||
const startScale = config?.zoom ?? ZOOM_DEFAULT_SCALE;
|
const startScale = config?.zoom ?? ZOOM_DEFAULT_SCALE;
|
||||||
|
|
||||||
this._panzoom = Panzoom(this._element, {
|
this._panzoom = Panzoom(this._element, {
|
||||||
@@ -243,23 +239,19 @@ export class ZoomController {
|
|||||||
// used fully specified by this object. It's kept as-is for completeness.
|
// used fully specified by this object. It's kept as-is for completeness.
|
||||||
return (
|
return (
|
||||||
arefloatsApproximatelyEqual(
|
arefloatsApproximatelyEqual(
|
||||||
/* istanbul ignore next @preserve */
|
|
||||||
a.zoom ?? ZOOM_DEFAULT_SCALE,
|
a.zoom ?? ZOOM_DEFAULT_SCALE,
|
||||||
/* istanbul ignore next @preserve */
|
|
||||||
b.zoom ?? ZOOM_DEFAULT_SCALE,
|
b.zoom ?? ZOOM_DEFAULT_SCALE,
|
||||||
ZOOM_PRECISION,
|
ZOOM_PRECISION,
|
||||||
) &&
|
) &&
|
||||||
arefloatsApproximatelyEqual(
|
arefloatsApproximatelyEqual(
|
||||||
/* istanbul ignore next @preserve */
|
|
||||||
a.pan?.x ?? ZOOM_DEFAULT_PAN_X,
|
a.pan?.x ?? ZOOM_DEFAULT_PAN_X,
|
||||||
/* istanbul ignore next @preserve */
|
|
||||||
b.pan?.x ?? ZOOM_DEFAULT_PAN_X,
|
b.pan?.x ?? ZOOM_DEFAULT_PAN_X,
|
||||||
ZOOM_PRECISION,
|
ZOOM_PRECISION,
|
||||||
) &&
|
) &&
|
||||||
arefloatsApproximatelyEqual(
|
arefloatsApproximatelyEqual(
|
||||||
/* istanbul ignore next @preserve */
|
/* v8 ignore next @preserve */
|
||||||
a.pan?.y ?? ZOOM_DEFAULT_PAN_Y,
|
a.pan?.y ?? ZOOM_DEFAULT_PAN_Y,
|
||||||
/* istanbul ignore next @preserve */
|
/* v8 ignore next @preserve */
|
||||||
b.pan?.y ?? ZOOM_DEFAULT_PAN_Y,
|
b.pan?.y ?? ZOOM_DEFAULT_PAN_Y,
|
||||||
ZOOM_PRECISION,
|
ZOOM_PRECISION,
|
||||||
)
|
)
|
||||||
@@ -436,7 +428,7 @@ export class ZoomController {
|
|||||||
// The ZOOM_DEFAULT_SCALE fallback cannot be reached: when
|
// The ZOOM_DEFAULT_SCALE fallback cannot be reached: when
|
||||||
// this._defaultSettings.zoom is undefined, convertedDefault ends up null
|
// this._defaultSettings.zoom is undefined, convertedDefault ends up null
|
||||||
// above and this function has already returned.
|
// above and this function has already returned.
|
||||||
/* istanbul ignore next @preserve */
|
/* v8 ignore next @preserve */
|
||||||
const defaultScale = this._defaultSettings.zoom ?? ZOOM_DEFAULT_SCALE;
|
const defaultScale = this._defaultSettings.zoom ?? ZOOM_DEFAULT_SCALE;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ export class HASSConnectionSubscriptionManager<K, R> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _listenToHASS(): void {
|
private _listenToHASS(): void {
|
||||||
/* istanbul ignore if: only called when transitioning from zero to one
|
/* v8 ignore if: only called when transitioning from zero to one
|
||||||
request, so `_unlistenCallback` is always null here -- @preserve */
|
request, so `_unlistenCallback` is always null here -- @preserve */
|
||||||
if (this._unlistenCallback) {
|
if (this._unlistenCallback) {
|
||||||
return;
|
return;
|
||||||
@@ -296,14 +296,14 @@ export class HASSConnectionSubscriptionManager<K, R> {
|
|||||||
private _runScheduledRetry(request: R): void {
|
private _runScheduledRetry(request: R): void {
|
||||||
const registration = this._requests.get(request);
|
const registration = this._requests.get(request);
|
||||||
|
|
||||||
/* istanbul ignore if: unsubscribe() and `_endEra()` both stop the timer
|
/* v8 ignore if: unsubscribe() and `_endEra()` both stop the timer
|
||||||
before tearing down state, so by the time we get here the request is
|
before tearing down state, so by the time we get here the request is
|
||||||
still alive and the era is still ready -- @preserve */
|
still alive and the era is still ready -- @preserve */
|
||||||
if (!registration || !this._connection) {
|
if (!registration || !this._connection) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore if: the timer can only fire while its token is null (set
|
/* v8 ignore if: the timer can only fire while its token is null (set
|
||||||
null by the catch that scheduled this timer) -- @preserve */
|
null by the catch that scheduled this timer) -- @preserve */
|
||||||
if (registration.token != null) {
|
if (registration.token != null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export class LatestValueRunner<T> {
|
|||||||
this._running = true;
|
this._running = true;
|
||||||
// The drain loop cannot reject (the operation's errors are caught within
|
// The drain loop cannot reject (the operation's errors are caught within
|
||||||
// it); the catch only satisfies the no-floating-promises rule.
|
// it); the catch only satisfies the no-floating-promises rule.
|
||||||
/* istanbul ignore next -- @preserve */
|
/* v8 ignore next -- @preserve */
|
||||||
this._drain().catch(() => {});
|
this._drain().catch(() => {});
|
||||||
}
|
}
|
||||||
return ran;
|
return ran;
|
||||||
|
|||||||
@@ -24,12 +24,12 @@ interface IntegrationDiagnostics {
|
|||||||
export const getReleaseVersion = (): string => {
|
export const getReleaseVersion = (): string => {
|
||||||
const releaseVersion: string = '__ADVANCED_CAMERA_CARD_RELEASE_VERSION__';
|
const releaseVersion: string = '__ADVANCED_CAMERA_CARD_RELEASE_VERSION__';
|
||||||
|
|
||||||
/* istanbul ignore if: depends on rollup substitution -- @preserve */
|
/* v8 ignore if: depends on rollup substitution -- @preserve */
|
||||||
if (releaseVersion === 'pkg') {
|
if (releaseVersion === 'pkg') {
|
||||||
return pkg.version;
|
return pkg.version;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore if: depends on rollup substitution -- @preserve */
|
/* v8 ignore if: depends on rollup substitution -- @preserve */
|
||||||
if (releaseVersion === 'dev') {
|
if (releaseVersion === 'dev') {
|
||||||
return `dev+${pkg['gitAbbrevHash']}`;
|
return `dev+${pkg['gitAbbrevHash']}`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export const MediaTypeSpec = {
|
|||||||
* Note on code coverage: Throughout this class, _buildBaseQueryNode and similar
|
* Note on code coverage: Throughout this class, _buildBaseQueryNode and similar
|
||||||
* methods return null only when cameraIDs is empty. Public methods guard
|
* methods return null only when cameraIDs is empty. Public methods guard
|
||||||
* against empty cameraIDs before calling these internal methods, making the
|
* against empty cameraIDs before calling these internal methods, making the
|
||||||
* null branches unreachable. Istanbul ignore comments reference this note.
|
* null branches unreachable. Coverage ignore comments reference this note.
|
||||||
*/
|
*/
|
||||||
export class UnifiedQueryBuilder {
|
export class UnifiedQueryBuilder {
|
||||||
private _cameraManager: CameraManager;
|
private _cameraManager: CameraManager;
|
||||||
@@ -132,7 +132,7 @@ export class UnifiedQueryBuilder {
|
|||||||
new UnifiedQuery(),
|
new UnifiedQuery(),
|
||||||
this._buildRecordingsQueryNode(cameraIDs, options),
|
this._buildRecordingsQueryNode(cameraIDs, options),
|
||||||
);
|
);
|
||||||
/* istanbul ignore next: see class note on code coverage -- @preserve */
|
/* v8 ignore next: see class note on code coverage -- @preserve */
|
||||||
return query.hasNodes() ? query : null;
|
return query.hasNodes() ? query : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,14 +229,13 @@ export class UnifiedQueryBuilder {
|
|||||||
if (effectiveCameraIDs.size) {
|
if (effectiveCameraIDs.size) {
|
||||||
for (const mediaType of effectiveMediaTypes) {
|
for (const mediaType of effectiveMediaTypes) {
|
||||||
const node = this._buildFilterQueryNode(mediaType, effectiveCameraIDs, options);
|
const node = this._buildFilterQueryNode(mediaType, effectiveCameraIDs, options);
|
||||||
/* istanbul ignore next: see class note on code coverage -- @preserve */
|
/* v8 ignore next: see class note on code coverage -- @preserve */
|
||||||
if (node) {
|
if (node) {
|
||||||
query.addNode(node);
|
query.addNode(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* istanbul ignore next: see class note on code coverage -- @preserve */
|
|
||||||
return query.hasNodes() ? query : null;
|
return query.hasNodes() ? query : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export const getCameraIDsWithCapabilityForView = (
|
|||||||
};
|
};
|
||||||
const capability = requirements.mediaCapabilities;
|
const capability = requirements.mediaCapabilities;
|
||||||
|
|
||||||
/* istanbul ignore next: this path is currently unreachable given the mapping
|
/* v8 ignore next: this path is currently unreachable given the mapping
|
||||||
in VIEW_REQUIREMENTS includes mediaCapabilities for all camera or 'any'
|
in VIEW_REQUIREMENTS includes mediaCapabilities for all camera or 'any'
|
||||||
related views -- @preserve */
|
related views -- @preserve */
|
||||||
if (!capability) {
|
if (!capability) {
|
||||||
|
|||||||
+6
-2
@@ -128,8 +128,12 @@ export default defineConfig({
|
|||||||
coverage: {
|
coverage: {
|
||||||
exclude: EXCLUSIONS,
|
exclude: EXCLUSIONS,
|
||||||
|
|
||||||
// Favor istanbul for coverage over v8 due to better accuracy.
|
// 'v8' reads coverage from the JavaScript engine, so it runs about twice
|
||||||
provider: 'istanbul',
|
// as fast as 'istanbul', which has to rewrite every source file first.
|
||||||
|
// Known gap: 'istanbul' will flag a default parameter value that no test
|
||||||
|
// ever falls back on -- 'v8' will not, but it is not worth the
|
||||||
|
// significant performance slowdown to cover this rare case.
|
||||||
|
provider: 'v8',
|
||||||
thresholds: {
|
thresholds: {
|
||||||
perFile: true,
|
perFile: true,
|
||||||
'src/**/*.ts': {
|
'src/**/*.ts': {
|
||||||
|
|||||||
@@ -70,36 +70,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/compat-data@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/compat-data@npm:7.29.7"
|
|
||||||
checksum: 10c0/47913f05e08a45a1c9df38c02b4b49e391005085b489432647a1abe112e5d9c75e3be8ea5972b7f6da4ec5d1339922ceb9ea02b8a25d4ed1cb8636e5261f344e
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/core@npm:^7.29.0":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/core@npm:7.29.7"
|
|
||||||
dependencies:
|
|
||||||
"@babel/code-frame": "npm:^7.29.7"
|
|
||||||
"@babel/generator": "npm:^7.29.7"
|
|
||||||
"@babel/helper-compilation-targets": "npm:^7.29.7"
|
|
||||||
"@babel/helper-module-transforms": "npm:^7.29.7"
|
|
||||||
"@babel/helpers": "npm:^7.29.7"
|
|
||||||
"@babel/parser": "npm:^7.29.7"
|
|
||||||
"@babel/template": "npm:^7.29.7"
|
|
||||||
"@babel/traverse": "npm:^7.29.7"
|
|
||||||
"@babel/types": "npm:^7.29.7"
|
|
||||||
"@jridgewell/remapping": "npm:^2.3.5"
|
|
||||||
convert-source-map: "npm:^2.0.0"
|
|
||||||
debug: "npm:^4.1.0"
|
|
||||||
gensync: "npm:^1.0.0-beta.2"
|
|
||||||
json5: "npm:^2.2.3"
|
|
||||||
semver: "npm:^6.3.1"
|
|
||||||
checksum: 10c0/112fb09c24de7a1de64d1de2c31fe65c4e6af4cb2fb6e6d99ea5373e6fc51e75b88581c0efae4c4c68f119a02a988c7106e95011a41530a2fb8ed793c7eaa07b
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/generator@npm:^7.26.2, @babel/generator@npm:^7.29.7":
|
"@babel/generator@npm:^7.26.2, @babel/generator@npm:^7.29.7":
|
||||||
version: 7.29.7
|
version: 7.29.7
|
||||||
resolution: "@babel/generator@npm:7.29.7"
|
resolution: "@babel/generator@npm:7.29.7"
|
||||||
@@ -113,19 +83,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/helper-compilation-targets@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/helper-compilation-targets@npm:7.29.7"
|
|
||||||
dependencies:
|
|
||||||
"@babel/compat-data": "npm:^7.29.7"
|
|
||||||
"@babel/helper-validator-option": "npm:^7.29.7"
|
|
||||||
browserslist: "npm:^4.24.0"
|
|
||||||
lru-cache: "npm:^5.1.1"
|
|
||||||
semver: "npm:^6.3.1"
|
|
||||||
checksum: 10c0/4c15fd4c69a0a7047799a28a88460c19cede0a0ee8af994ea169114986f4af48b92c7393a4a3fee0456c11a656eece3448a6ed06354453d6c27cccf17195453b
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/helper-globals@npm:^7.29.7":
|
"@babel/helper-globals@npm:^7.29.7":
|
||||||
version: 7.29.7
|
version: 7.29.7
|
||||||
resolution: "@babel/helper-globals@npm:7.29.7"
|
resolution: "@babel/helper-globals@npm:7.29.7"
|
||||||
@@ -133,29 +90,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/helper-module-imports@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/helper-module-imports@npm:7.29.7"
|
|
||||||
dependencies:
|
|
||||||
"@babel/traverse": "npm:^7.29.7"
|
|
||||||
"@babel/types": "npm:^7.29.7"
|
|
||||||
checksum: 10c0/6adf60d97356027413342a092f818d9678c4f5caff716a33e3284b5ae14e47a9e88059d421dde4ee4894691260039a12602c0e7becadc175602194b40dfa345d
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/helper-module-transforms@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/helper-module-transforms@npm:7.29.7"
|
|
||||||
dependencies:
|
|
||||||
"@babel/helper-module-imports": "npm:^7.29.7"
|
|
||||||
"@babel/helper-validator-identifier": "npm:^7.29.7"
|
|
||||||
"@babel/traverse": "npm:^7.29.7"
|
|
||||||
peerDependencies:
|
|
||||||
"@babel/core": ^7.0.0
|
|
||||||
checksum: 10c0/ee5a2172c24a42be696836f4b0d947489c9729d8adf5821885cf77d1ad5333e3c447368e9a71f67df1099570490553dccf9f888ef0a92a48aa63cb086bd8c7e1
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/helper-string-parser@npm:^7.29.7":
|
"@babel/helper-string-parser@npm:^7.29.7":
|
||||||
version: 7.29.7
|
version: 7.29.7
|
||||||
resolution: "@babel/helper-string-parser@npm:7.29.7"
|
resolution: "@babel/helper-string-parser@npm:7.29.7"
|
||||||
@@ -184,23 +118,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/helper-validator-option@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/helper-validator-option@npm:7.29.7"
|
|
||||||
checksum: 10c0/d2a06c6d0ac40ba4a2f219fc2cab249c7a94bacdb2686273b7f9598571c908809b48468ff588915a346e6cc7296f60b581023d1d498b747fed06f779d335c2cc
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/helpers@npm:^7.29.7":
|
|
||||||
version: 7.29.7
|
|
||||||
resolution: "@babel/helpers@npm:7.29.7"
|
|
||||||
dependencies:
|
|
||||||
"@babel/template": "npm:^7.29.7"
|
|
||||||
"@babel/types": "npm:^7.29.7"
|
|
||||||
checksum: 10c0/218e8d10953647c9f44775f5a022b227a182674853b5ea8631889deb7e1a3e4bc870388aaecf59bb8bd92a87f9a96220ed3f70a35bffec6bcf9169ecb67891ac
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@babel/highlight@npm:^7.23.4":
|
"@babel/highlight@npm:^7.23.4":
|
||||||
version: 7.23.4
|
version: 7.23.4
|
||||||
resolution: "@babel/highlight@npm:7.23.4"
|
resolution: "@babel/highlight@npm:7.23.4"
|
||||||
@@ -246,7 +163,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.29.7":
|
"@babel/traverse@npm:^7.25.9":
|
||||||
version: 7.29.7
|
version: 7.29.7
|
||||||
resolution: "@babel/traverse@npm:7.29.7"
|
resolution: "@babel/traverse@npm:7.29.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -271,6 +188,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@bcoe/v8-coverage@npm:^1.0.2":
|
||||||
|
version: 1.0.2
|
||||||
|
resolution: "@bcoe/v8-coverage@npm:1.0.2"
|
||||||
|
checksum: 10c0/1eb1dc93cc17fb7abdcef21a6e7b867d6aa99a7ec88ec8207402b23d9083ab22a8011213f04b2cf26d535f1d22dc26139b7929e6c2134c254bd1e14ba5e678c3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@colors/colors@npm:1.5.0":
|
"@colors/colors@npm:1.5.0":
|
||||||
version: 1.5.0
|
version: 1.5.0
|
||||||
resolution: "@colors/colors@npm:1.5.0"
|
resolution: "@colors/colors@npm:1.5.0"
|
||||||
@@ -588,14 +512,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@istanbuljs/schema@npm:^0.1.3":
|
"@jridgewell/gen-mapping@npm:^0.3.0":
|
||||||
version: 0.1.3
|
|
||||||
resolution: "@istanbuljs/schema@npm:0.1.3"
|
|
||||||
checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5":
|
|
||||||
version: 0.3.5
|
version: 0.3.5
|
||||||
resolution: "@jridgewell/gen-mapping@npm:0.3.5"
|
resolution: "@jridgewell/gen-mapping@npm:0.3.5"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -606,7 +523,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.13":
|
"@jridgewell/gen-mapping@npm:^0.3.12":
|
||||||
version: 0.3.13
|
version: 0.3.13
|
||||||
resolution: "@jridgewell/gen-mapping@npm:0.3.13"
|
resolution: "@jridgewell/gen-mapping@npm:0.3.13"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -616,16 +533,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@jridgewell/remapping@npm:^2.3.5":
|
|
||||||
version: 2.3.5
|
|
||||||
resolution: "@jridgewell/remapping@npm:2.3.5"
|
|
||||||
dependencies:
|
|
||||||
"@jridgewell/gen-mapping": "npm:^0.3.5"
|
|
||||||
"@jridgewell/trace-mapping": "npm:^0.3.24"
|
|
||||||
checksum: 10c0/3de494219ffeb2c5c38711d0d7bb128097edf91893090a2dbc8ee0b55d092bb7347b1fd0f478486c5eab010e855c73927b1666f2107516d472d24a73017d1194
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@jridgewell/resolve-uri@npm:^3.1.0":
|
"@jridgewell/resolve-uri@npm:^3.1.0":
|
||||||
version: 3.1.2
|
version: 3.1.2
|
||||||
resolution: "@jridgewell/resolve-uri@npm:3.1.2"
|
resolution: "@jridgewell/resolve-uri@npm:3.1.2"
|
||||||
@@ -664,16 +571,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@jridgewell/trace-mapping@npm:0.3.31, @jridgewell/trace-mapping@npm:^0.3.28":
|
|
||||||
version: 0.3.31
|
|
||||||
resolution: "@jridgewell/trace-mapping@npm:0.3.31"
|
|
||||||
dependencies:
|
|
||||||
"@jridgewell/resolve-uri": "npm:^3.1.0"
|
|
||||||
"@jridgewell/sourcemap-codec": "npm:^1.4.14"
|
|
||||||
checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.9":
|
"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.9":
|
||||||
version: 0.3.24
|
version: 0.3.24
|
||||||
resolution: "@jridgewell/trace-mapping@npm:0.3.24"
|
resolution: "@jridgewell/trace-mapping@npm:0.3.24"
|
||||||
@@ -684,6 +581,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@jridgewell/trace-mapping@npm:^0.3.28, @jridgewell/trace-mapping@npm:^0.3.31":
|
||||||
|
version: 0.3.31
|
||||||
|
resolution: "@jridgewell/trace-mapping@npm:0.3.31"
|
||||||
|
dependencies:
|
||||||
|
"@jridgewell/resolve-uri": "npm:^3.1.0"
|
||||||
|
"@jridgewell/sourcemap-codec": "npm:^1.4.14"
|
||||||
|
checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@lit-labs/scoped-registry-mixin@npm:^1.0.3":
|
"@lit-labs/scoped-registry-mixin@npm:^1.0.3":
|
||||||
version: 1.0.3
|
version: 1.0.3
|
||||||
resolution: "@lit-labs/scoped-registry-mixin@npm:1.0.3"
|
resolution: "@lit-labs/scoped-registry-mixin@npm:1.0.3"
|
||||||
@@ -2241,23 +2148,27 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@vitest/coverage-istanbul@npm:^4.1.10":
|
"@vitest/coverage-v8@npm:^4.1.10":
|
||||||
version: 4.1.10
|
version: 4.1.10
|
||||||
resolution: "@vitest/coverage-istanbul@npm:4.1.10"
|
resolution: "@vitest/coverage-v8@npm:4.1.10"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/core": "npm:^7.29.0"
|
"@bcoe/v8-coverage": "npm:^1.0.2"
|
||||||
"@istanbuljs/schema": "npm:^0.1.3"
|
"@vitest/utils": "npm:4.1.10"
|
||||||
"@jridgewell/gen-mapping": "npm:^0.3.13"
|
ast-v8-to-istanbul: "npm:^1.0.0"
|
||||||
"@jridgewell/trace-mapping": "npm:0.3.31"
|
|
||||||
istanbul-lib-coverage: "npm:^3.2.2"
|
istanbul-lib-coverage: "npm:^3.2.2"
|
||||||
istanbul-lib-report: "npm:^3.0.1"
|
istanbul-lib-report: "npm:^3.0.1"
|
||||||
istanbul-reports: "npm:^3.2.0"
|
istanbul-reports: "npm:^3.2.0"
|
||||||
magicast: "npm:^0.5.2"
|
magicast: "npm:^0.5.2"
|
||||||
obug: "npm:^2.1.1"
|
obug: "npm:^2.1.1"
|
||||||
|
std-env: "npm:^4.0.0-rc.1"
|
||||||
tinyrainbow: "npm:^3.1.0"
|
tinyrainbow: "npm:^3.1.0"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
"@vitest/browser": 4.1.10
|
||||||
vitest: 4.1.10
|
vitest: 4.1.10
|
||||||
checksum: 10c0/a426b0aff94482587a100db7e8db4e238fabf9e5bc4d33a319bd9cd4261b8972a7b3d78f2bc7cbc3d11b0b58b5d7cc487f96ab35a96c1c766c54f9b6d5eb4f78
|
peerDependenciesMeta:
|
||||||
|
"@vitest/browser":
|
||||||
|
optional: true
|
||||||
|
checksum: 10c0/f607ab5610ba93ff586d1680bc6d574ee42606ddafd33d5dca14d568e1ff110bf7aea0c82d87b69003b10604d78ccdb535948704e26bbdbfdda6b27edf524486
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2435,7 +2346,7 @@ __metadata:
|
|||||||
"@typescript-eslint/eslint-plugin": "npm:^8.30.1"
|
"@typescript-eslint/eslint-plugin": "npm:^8.30.1"
|
||||||
"@typescript-eslint/parser": "npm:^8.30.1"
|
"@typescript-eslint/parser": "npm:^8.30.1"
|
||||||
"@use-gesture/vanilla": "npm:^10.3.1"
|
"@use-gesture/vanilla": "npm:^10.3.1"
|
||||||
"@vitest/coverage-istanbul": "npm:^4.1.10"
|
"@vitest/coverage-v8": "npm:^4.1.10"
|
||||||
any-date-parser: "npm:^2.2.0"
|
any-date-parser: "npm:^2.2.0"
|
||||||
component-emitter: "npm:^1.3.1"
|
component-emitter: "npm:^1.3.1"
|
||||||
compute-scroll-into-view: "npm:^3.1.1"
|
compute-scroll-into-view: "npm:^3.1.1"
|
||||||
@@ -2697,6 +2608,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"ast-v8-to-istanbul@npm:^1.0.0":
|
||||||
|
version: 1.0.5
|
||||||
|
resolution: "ast-v8-to-istanbul@npm:1.0.5"
|
||||||
|
dependencies:
|
||||||
|
"@jridgewell/trace-mapping": "npm:^0.3.31"
|
||||||
|
estree-walker: "npm:^3.0.3"
|
||||||
|
js-tokens: "npm:^10.0.0"
|
||||||
|
checksum: 10c0/546db141f60913846ea2e74fc163ec5b9b1b5aa4863a564ccb15fefe12988191fe029b1d91541aa2f236900c1447de53876460c179efc3dd15b1b9281d6205a6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"asynckit@npm:^0.4.0":
|
"asynckit@npm:^0.4.0":
|
||||||
version: 0.4.0
|
version: 0.4.0
|
||||||
resolution: "asynckit@npm:0.4.0"
|
resolution: "asynckit@npm:0.4.0"
|
||||||
@@ -2711,15 +2633,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"baseline-browser-mapping@npm:^2.10.44":
|
|
||||||
version: 2.11.3
|
|
||||||
resolution: "baseline-browser-mapping@npm:2.11.3"
|
|
||||||
bin:
|
|
||||||
baseline-browser-mapping: dist/cli.cjs
|
|
||||||
checksum: 10c0/163c8fd7161133afdd660d21f87b7ec4eb31ae0070dfaffa2f8b8c49929263a205b0667052814b48325fdd940b93bcaa0ce2dff3446413d2ef4ebce452b8edce
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"before-after-hook@npm:^3.0.2":
|
"before-after-hook@npm:^3.0.2":
|
||||||
version: 3.0.2
|
version: 3.0.2
|
||||||
resolution: "before-after-hook@npm:3.0.2"
|
resolution: "before-after-hook@npm:3.0.2"
|
||||||
@@ -2848,21 +2761,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"browserslist@npm:^4.24.0":
|
|
||||||
version: 4.28.7
|
|
||||||
resolution: "browserslist@npm:4.28.7"
|
|
||||||
dependencies:
|
|
||||||
baseline-browser-mapping: "npm:^2.10.44"
|
|
||||||
caniuse-lite: "npm:^1.0.30001806"
|
|
||||||
electron-to-chromium: "npm:^1.5.393"
|
|
||||||
node-releases: "npm:^2.0.51"
|
|
||||||
update-browserslist-db: "npm:^1.2.3"
|
|
||||||
bin:
|
|
||||||
browserslist: cli.js
|
|
||||||
checksum: 10c0/dc41922a9ff0d81e5492498bdab2d932e3a3222f4277814ba38ee64f4e51f26e5244a7cce0777b4cac3ceff6eb196f5cadbb2a832620973a7f9c39611f6bc78e
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"buffer-from@npm:^1.0.0":
|
"buffer-from@npm:^1.0.0":
|
||||||
version: 1.1.2
|
version: 1.1.2
|
||||||
resolution: "buffer-from@npm:1.1.2"
|
resolution: "buffer-from@npm:1.1.2"
|
||||||
@@ -2972,13 +2870,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"caniuse-lite@npm:^1.0.30001806":
|
|
||||||
version: 1.0.30001806
|
|
||||||
resolution: "caniuse-lite@npm:1.0.30001806"
|
|
||||||
checksum: 10c0/9442c8afff0968e9b2ce0104a7340c1ce4a5c09f469ccb9eef10d25712ea0afe542486e5318c697c70dd502f988cfc04eaa1c9438c92ac3bcf4d708a2a17bee1
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"chai@npm:^6.2.2":
|
"chai@npm:^6.2.2":
|
||||||
version: 6.2.2
|
version: 6.2.2
|
||||||
resolution: "chai@npm:6.2.2"
|
resolution: "chai@npm:6.2.2"
|
||||||
@@ -3722,7 +3613,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
|
"debug@npm:4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
|
||||||
version: 4.3.4
|
version: 4.3.4
|
||||||
resolution: "debug@npm:4.3.4"
|
resolution: "debug@npm:4.3.4"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4016,13 +3907,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"electron-to-chromium@npm:^1.5.393":
|
|
||||||
version: 1.5.396
|
|
||||||
resolution: "electron-to-chromium@npm:1.5.396"
|
|
||||||
checksum: 10c0/2ac1d007acae6466649c2ada1f147fa205d980fc01bc602da00823b64a88b4286138a71c7b145f67dfa9103f69fd884bf706395a72886358d8f231a7011a39e5
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"embla-carousel-wheel-gestures@npm:^8.0.1":
|
"embla-carousel-wheel-gestures@npm:^8.0.1":
|
||||||
version: 8.0.1
|
version: 8.0.1
|
||||||
resolution: "embla-carousel-wheel-gestures@npm:8.0.1"
|
resolution: "embla-carousel-wheel-gestures@npm:8.0.1"
|
||||||
@@ -4158,13 +4042,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"escalade@npm:^3.2.0":
|
|
||||||
version: 3.2.0
|
|
||||||
resolution: "escalade@npm:3.2.0"
|
|
||||||
checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"escape-goat@npm:^2.0.0":
|
"escape-goat@npm:^2.0.0":
|
||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
resolution: "escape-goat@npm:2.1.1"
|
resolution: "escape-goat@npm:2.1.1"
|
||||||
@@ -4792,13 +4669,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"gensync@npm:^1.0.0-beta.2":
|
|
||||||
version: 1.0.0-beta.2
|
|
||||||
resolution: "gensync@npm:1.0.0-beta.2"
|
|
||||||
checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5":
|
"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5":
|
||||||
version: 2.0.5
|
version: 2.0.5
|
||||||
resolution: "get-caller-file@npm:2.0.5"
|
resolution: "get-caller-file@npm:2.0.5"
|
||||||
@@ -5738,6 +5608,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"js-tokens@npm:^10.0.0":
|
||||||
|
version: 10.0.0
|
||||||
|
resolution: "js-tokens@npm:10.0.0"
|
||||||
|
checksum: 10c0/a93498747812ba3e0c8626f95f75ab29319f2a13613a0de9e610700405760931624433a0de59eb7c27ff8836e526768fb20783861b86ef89be96676f2c996b64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"js-tokens@npm:^4.0.0":
|
"js-tokens@npm:^4.0.0":
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
resolution: "js-tokens@npm:4.0.0"
|
resolution: "js-tokens@npm:4.0.0"
|
||||||
@@ -5878,15 +5755,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"json5@npm:^2.2.3":
|
|
||||||
version: 2.2.3
|
|
||||||
resolution: "json5@npm:2.2.3"
|
|
||||||
bin:
|
|
||||||
json5: lib/cli.js
|
|
||||||
checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"jsonfile@npm:^4.0.0":
|
"jsonfile@npm:^4.0.0":
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
resolution: "jsonfile@npm:4.0.0"
|
resolution: "jsonfile@npm:4.0.0"
|
||||||
@@ -7076,13 +6944,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"node-releases@npm:^2.0.51":
|
|
||||||
version: 2.0.51
|
|
||||||
resolution: "node-releases@npm:2.0.51"
|
|
||||||
checksum: 10c0/6cf3fe1f9eabe02ce6de67e9db77b73edc9f5625003791e1f8f239f8e2a851450a5aeb1eff2cc43cfb26312e19b26bfe07626bf428479e6a76f56553fc6148da
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"nopt@npm:^7.0.0":
|
"nopt@npm:^7.0.0":
|
||||||
version: 7.2.0
|
version: 7.2.0
|
||||||
resolution: "nopt@npm:7.2.0"
|
resolution: "nopt@npm:7.2.0"
|
||||||
@@ -9205,7 +9066,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
|
"semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0":
|
||||||
version: 6.3.1
|
version: 6.3.1
|
||||||
resolution: "semver@npm:6.3.1"
|
resolution: "semver@npm:6.3.1"
|
||||||
bin:
|
bin:
|
||||||
@@ -10321,20 +10182,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"update-browserslist-db@npm:^1.2.3":
|
|
||||||
version: 1.2.3
|
|
||||||
resolution: "update-browserslist-db@npm:1.2.3"
|
|
||||||
dependencies:
|
|
||||||
escalade: "npm:^3.2.0"
|
|
||||||
picocolors: "npm:^1.1.1"
|
|
||||||
peerDependencies:
|
|
||||||
browserslist: ">= 4.21.0"
|
|
||||||
bin:
|
|
||||||
update-browserslist-db: cli.js
|
|
||||||
checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"update-notifier@npm:^4.1.0":
|
"update-notifier@npm:^4.1.0":
|
||||||
version: 4.1.3
|
version: 4.1.3
|
||||||
resolution: "update-notifier@npm:4.1.3"
|
resolution: "update-notifier@npm:4.1.3"
|
||||||
|
|||||||
Reference in New Issue
Block a user