Remove App ID exchange functionality (#1079)
* Remove App ID exchange functionality * WIP * Undo wrong changes
This commit is contained in:
Родитель
ef49ac7f60
Коммит
1307dd185d
|
@ -7,9 +7,9 @@ import Util = require("../Library/Util");
|
|||
import RequestResponseHeaders = require("../Library/RequestResponseHeaders");
|
||||
import HttpDependencyParser = require("./HttpDependencyParser");
|
||||
import { CorrelationContextManager, PrivateCustomProperties } from "./CorrelationContextManager";
|
||||
import CorrelationIdManager = require("../Library/CorrelationIdManager");
|
||||
import Traceparent = require("../Library/Traceparent");
|
||||
import * as DiagChannel from "./diagnostic-channel/initialization";
|
||||
import CorrelationIdManager = require("../Library/CorrelationIdManager");
|
||||
|
||||
class AutoCollectHttpDependencies {
|
||||
public static disableCollectionRequestOption = "disableAppInsightsAutoCollection";
|
||||
|
|
|
@ -10,7 +10,7 @@ export const DiagnosticMessageId = {
|
|||
"setupAlreadyCalled": "3003",
|
||||
"prefixFailed": "3004",
|
||||
"aadEnabled": "3005",
|
||||
"unknownError": "3006",
|
||||
"unknownError": "3006"
|
||||
}
|
||||
|
||||
export const enum SeverityLevel {
|
||||
|
|
|
@ -32,7 +32,7 @@ export class AzureVirtualMachine {
|
|||
[AutoCollectHttpDependencies.disableCollectionRequestOption]: true,
|
||||
headers: {
|
||||
"Metadata": "True"
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
const req = Util.makeRequest(config, metadataRequestUrl, requestOptions, (res) => {
|
||||
|
|
|
@ -66,7 +66,6 @@ class Config implements IConfig {
|
|||
public correlationId: string; // TODO: Should be private
|
||||
private _connectionString: string;
|
||||
private _endpointBase: string = Constants.DEFAULT_BREEZE_ENDPOINT;
|
||||
private _setCorrelationId: (v: string) => void;
|
||||
private _profileQueryEndpoint: string;
|
||||
private _instrumentationKey: string;
|
||||
public _webInstrumentationConnectionString: string;
|
||||
|
@ -108,7 +107,6 @@ class Config implements IConfig {
|
|||
"*.core.eaglex.ic.gov"
|
||||
];
|
||||
|
||||
this._setCorrelationId = (correlationId) => this.correlationId = correlationId;
|
||||
this.ignoreLegacyHeaders = this.ignoreLegacyHeaders || false;
|
||||
this.profileQueryEndpoint = csCode.ingestionendpoint || csEnv.ingestionendpoint || process.env[Config.ENV_profileQueryEndpoint] || this._endpointBase;
|
||||
this.quickPulseHost = this.quickPulseHost || csCode.liveendpoint || csEnv.liveendpoint || process.env[Config.ENV_quickPulseHost] || Constants.DEFAULT_LIVEMETRICS_HOST;
|
||||
|
@ -121,10 +119,8 @@ class Config implements IConfig {
|
|||
}
|
||||
|
||||
public set profileQueryEndpoint(endpoint: string) {
|
||||
CorrelationIdManager.cancelCorrelationIdQuery(this, this._setCorrelationId);
|
||||
this._profileQueryEndpoint = endpoint;
|
||||
this.correlationId = CorrelationIdManager.correlationIdPrefix; // Reset the correlationId while we wait for the new query
|
||||
CorrelationIdManager.queryCorrelationId(this, this._setCorrelationId);
|
||||
this.correlationId = CorrelationIdManager.correlationIdPrefix;
|
||||
}
|
||||
|
||||
public get profileQueryEndpoint() {
|
||||
|
|
|
@ -1,123 +1,21 @@
|
|||
import Util = require("./Util");
|
||||
import Config = require("./Config");
|
||||
import Logging = require("./Logging");
|
||||
|
||||
class CorrelationIdManager {
|
||||
private static TAG = "CorrelationIdManager";
|
||||
private static _handle: NodeJS.Timer;
|
||||
public static correlationIdPrefix = "cid-v1:";
|
||||
public static w3cEnabled = true;
|
||||
public static HTTP_TIMEOUT: number = 2500; // 2.5 seconds
|
||||
|
||||
// To avoid extraneous HTTP requests, we maintain a queue of callbacks waiting on a particular appId lookup,
|
||||
// as well as a cache of completed lookups so future requests can be resolved immediately.
|
||||
private static pendingLookups: { [key: string]: Function[] } = {};
|
||||
private static completedLookups: { [key: string]: string } = {};
|
||||
|
||||
private static requestIdMaxLength = 1024;
|
||||
private static currentRootId = Util.randomu32();
|
||||
private static _requestTimedOut: boolean;
|
||||
|
||||
public static queryCorrelationId(config: Config, callback: (correlationId: string) => void) {
|
||||
// GET request to `${this.endpointBase}/api/profiles/${this.instrumentationKey}/appId`
|
||||
// If it 404s, the iKey is bad and we should give up
|
||||
// If it fails otherwise, try again later
|
||||
const appIdUrlString = `${config.profileQueryEndpoint}/api/profiles/${config.instrumentationKey}/appId`;
|
||||
|
||||
if (CorrelationIdManager.completedLookups.hasOwnProperty(appIdUrlString)) {
|
||||
callback(CorrelationIdManager.completedLookups[appIdUrlString]);
|
||||
return;
|
||||
} else if (CorrelationIdManager.pendingLookups[appIdUrlString]) {
|
||||
CorrelationIdManager.pendingLookups[appIdUrlString].push(callback);
|
||||
return;
|
||||
}
|
||||
|
||||
CorrelationIdManager.pendingLookups[appIdUrlString] = [callback];
|
||||
|
||||
const fetchAppId = () => {
|
||||
if (!CorrelationIdManager.pendingLookups[appIdUrlString]) {
|
||||
// This query has been cancelled.
|
||||
return;
|
||||
}
|
||||
|
||||
const requestOptions = {
|
||||
method: "GET",
|
||||
// Ensure this request is not captured by auto-collection.
|
||||
// Note: we don't refer to the property in HttpDependencyParser because that would cause a cyclical dependency
|
||||
disableAppInsightsAutoCollection: true
|
||||
};
|
||||
|
||||
Logging.info(CorrelationIdManager.TAG, requestOptions);
|
||||
const req = Util.makeRequest(config, appIdUrlString, requestOptions, (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
// Success; extract the appId from the body
|
||||
let appId = "";
|
||||
res.setEncoding("utf-8");
|
||||
res.on("data", (data: any) => {
|
||||
appId += data;
|
||||
});
|
||||
res.on("end", () => {
|
||||
Logging.info(CorrelationIdManager.TAG, appId);
|
||||
const result = CorrelationIdManager.correlationIdPrefix + appId;
|
||||
CorrelationIdManager.completedLookups[appIdUrlString] = result;
|
||||
if (CorrelationIdManager.pendingLookups[appIdUrlString]) {
|
||||
CorrelationIdManager.pendingLookups[appIdUrlString].forEach((cb) => cb(result));
|
||||
}
|
||||
delete CorrelationIdManager.pendingLookups[appIdUrlString];
|
||||
});
|
||||
} else if (res.statusCode >= 400 && res.statusCode < 500) {
|
||||
// Not found, probably a bad key. Do not try again.
|
||||
CorrelationIdManager.completedLookups[appIdUrlString] = undefined;
|
||||
delete CorrelationIdManager.pendingLookups[appIdUrlString];
|
||||
}
|
||||
else {
|
||||
// Keep retrying
|
||||
return;
|
||||
}
|
||||
// Do not retry
|
||||
if (CorrelationIdManager._handle) {
|
||||
clearTimeout(CorrelationIdManager._handle);
|
||||
CorrelationIdManager._handle = undefined;
|
||||
}
|
||||
}, true, false);
|
||||
if (req) {
|
||||
req.setTimeout(CorrelationIdManager.HTTP_TIMEOUT, () => {
|
||||
this._requestTimedOut = true;
|
||||
req.abort();
|
||||
});
|
||||
req.on("error", (error: Error) => {
|
||||
// Unable to contact endpoint.
|
||||
// Do nothing for now.
|
||||
if (this._requestTimedOut) {
|
||||
error.name = "telemetry timeout";
|
||||
error.message = "telemetry request timed out";
|
||||
}
|
||||
Logging.warn(CorrelationIdManager.TAG, error);
|
||||
if (this._handle) {
|
||||
clearTimeout(CorrelationIdManager._handle);
|
||||
CorrelationIdManager._handle = undefined;
|
||||
}
|
||||
});
|
||||
req.end();
|
||||
}
|
||||
};
|
||||
if (!CorrelationIdManager._handle) {
|
||||
CorrelationIdManager._handle = <any>setTimeout(fetchAppId, config.correlationIdRetryIntervalMs);
|
||||
CorrelationIdManager._handle.unref(); // Don't block apps from terminating
|
||||
}
|
||||
// Initial fetch
|
||||
setImmediate(fetchAppId);
|
||||
// No Op, App ID Exchange not required in SDK anymore
|
||||
}
|
||||
|
||||
public static cancelCorrelationIdQuery(config: Config, callback: (correlationId: string) => void) {
|
||||
const appIdUrlString = `${config.profileQueryEndpoint}/api/profiles/${config.instrumentationKey}/appId`;
|
||||
const pendingLookups = CorrelationIdManager.pendingLookups[appIdUrlString];
|
||||
if (pendingLookups) {
|
||||
CorrelationIdManager.pendingLookups[appIdUrlString] = pendingLookups.filter((cb) => cb != callback);
|
||||
if (CorrelationIdManager.pendingLookups[appIdUrlString].length == 0) {
|
||||
delete CorrelationIdManager.pendingLookups[appIdUrlString];
|
||||
}
|
||||
}
|
||||
// No Op, App ID Exchange not required in SDK anymore
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -113,7 +113,7 @@ export const insertSnippetByIndex = (index: number, html: string, snippet: strin
|
|||
let newHtml = null;
|
||||
let subStart = html.substring(0, index);
|
||||
let subEnd = html.substring(index);
|
||||
newHtml = subStart + '<script type="text/javascript">' + snippet + "</script>" + subEnd;
|
||||
newHtml = subStart + "<script type=\"text/javascript\">" + snippet + "</script>" + subEnd;
|
||||
return newHtml;
|
||||
}
|
||||
|
||||
|
|
|
@ -481,7 +481,6 @@ describe("EndToEnd", () => {
|
|||
beforeEach(() => {
|
||||
nockScope = interceptor.reply(503, { "errors": [{ "index": 0, "statusCode": 503 }] });
|
||||
AppInsights.defaultClient = undefined;
|
||||
sandbox.stub(CorrelationIdManager, 'queryCorrelationId'); // TODO: Fix method of stubbing requests to allow CID to be part of E2E tests
|
||||
writeFile = sandbox.stub(FileSystemHelper, 'writeFileAsync');
|
||||
writeFileSync = sandbox.stub(fs, 'writeFileSync');
|
||||
existsSync = sandbox.stub(fs, 'existsSync').returns(true);
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
import assert = require("assert");
|
||||
import sinon = require("sinon");
|
||||
import nock = require("nock");
|
||||
import AppInsights = require("../../applicationinsights");
|
||||
import Constants = require("../../Declarations/Constants");
|
||||
import CorrelationIdManager = require("../../Library/CorrelationIdManager");
|
||||
|
||||
describe("Library/CorrelationIdManager", () => {
|
||||
var sandbox: sinon.SinonSandbox;
|
||||
let interceptor: nock.Interceptor;
|
||||
let nockScope: nock.Scope;
|
||||
|
||||
before(() => {
|
||||
interceptor = nock(Constants.DEFAULT_BREEZE_ENDPOINT)
|
||||
.post("/v2.1/track", (body: string) => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
sandbox = sinon.sandbox.create();
|
||||
});
|
||||
|
||||
after(() => {
|
||||
nock.cleanAll();
|
||||
});
|
||||
|
||||
describe("#queryCorrelationId", () => {
|
||||
afterEach(() => {
|
||||
CorrelationIdManager.HTTP_TIMEOUT = 2500;
|
||||
});
|
||||
|
||||
it("should timeout effectively when calling queryCorrelationId", () => {
|
||||
const client = new AppInsights.TelemetryClient("key");
|
||||
nockScope = interceptor.delay(300).reply(200);
|
||||
CorrelationIdManager.HTTP_TIMEOUT = 200;
|
||||
|
||||
let onErrorSpy = sandbox.spy(CorrelationIdManager, "queryCorrelationId");
|
||||
CorrelationIdManager.queryCorrelationId(client.config, () => {
|
||||
assert.ok(onErrorSpy.calledOnce);
|
||||
let error = onErrorSpy.args[0][0] as Error;
|
||||
assert.equal(error.message, "telemetry request timed out");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -476,14 +476,14 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz",
|
||||
"integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz",
|
||||
"integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/type-utils": "5.51.0",
|
||||
"@typescript-eslint/utils": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/type-utils": "5.52.0",
|
||||
"@typescript-eslint/utils": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
|
@ -510,14 +510,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz",
|
||||
"integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz",
|
||||
"integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -537,13 +537,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
|
||||
"integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz",
|
||||
"integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/visitor-keys": "5.51.0"
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/visitor-keys": "5.52.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
|
@ -554,13 +554,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz",
|
||||
"integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz",
|
||||
"integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/utils": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"@typescript-eslint/utils": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
|
@ -581,9 +581,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
|
||||
"integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz",
|
||||
"integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
|
@ -594,13 +594,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
|
||||
"integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz",
|
||||
"integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/visitor-keys": "5.51.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/visitor-keys": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -621,16 +621,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz",
|
||||
"integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz",
|
||||
"integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@types/semver": "^7.3.12",
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0",
|
||||
"semver": "^7.3.7"
|
||||
|
@ -647,12 +647,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
|
||||
"integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz",
|
||||
"integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -1196,9 +1196,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/define-properties": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
|
||||
"integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
|
||||
"integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-property-descriptors": "^1.0.0",
|
||||
|
@ -1858,9 +1858,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/esquery": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
|
||||
"integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz",
|
||||
"integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"estraverse": "^5.1.0"
|
||||
|
@ -2486,12 +2486,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/internal-slot": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
|
||||
"integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
|
||||
"integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.1.3",
|
||||
"get-intrinsic": "^1.2.0",
|
||||
"has": "^1.0.3",
|
||||
"side-channel": "^1.0.4"
|
||||
},
|
||||
|
@ -3018,18 +3018,18 @@
|
|||
}
|
||||
},
|
||||
"node_modules/minimist": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
|
||||
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/minipass": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz",
|
||||
"integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==",
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz",
|
||||
"integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
|
@ -4754,14 +4754,14 @@
|
|||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz",
|
||||
"integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz",
|
||||
"integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/type-utils": "5.51.0",
|
||||
"@typescript-eslint/utils": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/type-utils": "5.52.0",
|
||||
"@typescript-eslint/utils": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
|
@ -4772,53 +4772,53 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz",
|
||||
"integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz",
|
||||
"integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"debug": "^4.3.4"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
|
||||
"integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz",
|
||||
"integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/visitor-keys": "5.51.0"
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/visitor-keys": "5.52.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/type-utils": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz",
|
||||
"integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz",
|
||||
"integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/utils": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"@typescript-eslint/utils": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"tsutils": "^3.21.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
|
||||
"integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz",
|
||||
"integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
|
||||
"integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz",
|
||||
"integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/visitor-keys": "5.51.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/visitor-keys": "5.52.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -4827,28 +4827,28 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/utils": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz",
|
||||
"integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz",
|
||||
"integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@types/semver": "^7.3.12",
|
||||
"@typescript-eslint/scope-manager": "5.51.0",
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/typescript-estree": "5.51.0",
|
||||
"@typescript-eslint/scope-manager": "5.52.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"@typescript-eslint/typescript-estree": "5.52.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0",
|
||||
"semver": "^7.3.7"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "5.51.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
|
||||
"integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
|
||||
"version": "5.52.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz",
|
||||
"integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.51.0",
|
||||
"@typescript-eslint/types": "5.52.0",
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
}
|
||||
},
|
||||
|
@ -5242,9 +5242,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"define-properties": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
|
||||
"integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
|
||||
"integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-property-descriptors": "^1.0.0",
|
||||
|
@ -5736,9 +5736,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"esquery": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
|
||||
"integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz",
|
||||
"integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"estraverse": "^5.1.0"
|
||||
|
@ -6206,12 +6206,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"internal-slot": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
|
||||
"integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
|
||||
"integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.1.3",
|
||||
"get-intrinsic": "^1.2.0",
|
||||
"has": "^1.0.3",
|
||||
"side-channel": "^1.0.4"
|
||||
}
|
||||
|
@ -6584,15 +6584,15 @@
|
|||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
|
||||
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||
"dev": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz",
|
||||
"integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==",
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz",
|
||||
"integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==",
|
||||
"dev": true
|
||||
},
|
||||
"minizlib": {
|
||||
|
|
Загрузка…
Ссылка в новой задаче