mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: MEGA - Make Eslint Great Again 💅 (#26094)
* Fix lint error in types.ts * Bump eslint and its deps to latest * Add eslintignore and remove not needed eslintrcs * Change webpack configs eslint config * Update package.jsons and removed unused eslintrc files * Chore yarn lint --fix 💅 * Add devenv to eslintignore * Remove eslint disable comments for rules that are not used * Remaining eslint fixes 💅 * Bump grafana/eslint-config 💥 * Modify package.json No need for duplicate checks. * Modify eslintignore to ignore data and dist folders * Revert removing .eslintrc to make sure not to use certain packages * Modify package.json to remove not needed command * Use gitignore for ignoring paths
This commit is contained in:
parent
e4da0fcb5e
commit
ae30482465
11
.eslintrc
11
.eslintrc
@ -1,4 +1,13 @@
|
|||||||
{
|
{
|
||||||
"extends": ["@grafana/eslint-config"],
|
"extends": ["@grafana/eslint-config"],
|
||||||
"root": true
|
"root": true,
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["packages/**/*.{ts,tsx}", "public/app/**/*.{ts,tsx}"],
|
||||||
|
"rules": {
|
||||||
|
"react-hooks/rules-of-hooks": "off",
|
||||||
|
"react-hooks/exhaustive-deps": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,7 +15,6 @@ awsconfig
|
|||||||
.yarnrc
|
.yarnrc
|
||||||
.yarn/
|
.yarn/
|
||||||
vendor/
|
vendor/
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Enterprise emails
|
# Enterprise emails
|
||||||
/emails/templates/enterprise_*
|
/emails/templates/enterprise_*
|
||||||
|
18
Gruntfile.js
18
Gruntfile.js
@ -1,5 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
module.exports = function (grunt) {
|
module.exports = function(grunt) {
|
||||||
var os = require('os');
|
var os = require('os');
|
||||||
var config = {
|
var config = {
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
@ -47,18 +47,20 @@ module.exports = function (grunt) {
|
|||||||
|
|
||||||
// Utility function to load plugin settings into config
|
// Utility function to load plugin settings into config
|
||||||
function loadConfig(config, path) {
|
function loadConfig(config, path) {
|
||||||
require('glob').sync('*', {cwd: path}).forEach(function(option) {
|
require('glob')
|
||||||
var key = option.replace(/\.js$/,'');
|
.sync('*', { cwd: path })
|
||||||
// If key already exists, extend it. It is your responsibility to avoid naming collisions
|
.forEach(function(option) {
|
||||||
config[key] = config[key] || {};
|
var key = option.replace(/\.js$/, '');
|
||||||
grunt.util._.extend(config[key], require(path + option)(config,grunt));
|
// If key already exists, extend it. It is your responsibility to avoid naming collisions
|
||||||
});
|
config[key] = config[key] || {};
|
||||||
|
grunt.util._.extend(config[key], require(path + option)(config, grunt));
|
||||||
|
});
|
||||||
// technically not required
|
// technically not required
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge that object with what with whatever we have here
|
// Merge that object with what with whatever we have here
|
||||||
loadConfig(config,'./scripts/grunt/options/');
|
loadConfig(config, './scripts/grunt/options/');
|
||||||
// pass the config to grunt
|
// pass the config to grunt
|
||||||
grunt.initConfig(config);
|
grunt.initConfig(config);
|
||||||
};
|
};
|
||||||
|
@ -3,7 +3,7 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
|
|||||||
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
||||||
|
|
||||||
export let options = {
|
export let options = {
|
||||||
noCookiesReset: true
|
noCookiesReset: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let endpoint = __ENV.URL || 'http://localhost:3000';
|
let endpoint = __ENV.URL || 'http://localhost:3000';
|
||||||
@ -18,35 +18,38 @@ export const setup = () => {
|
|||||||
orgId: orgId,
|
orgId: orgId,
|
||||||
datasourceId: datasourceId,
|
datasourceId: datasourceId,
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
export default (data) => {
|
export default data => {
|
||||||
group("annotation by tag test", () => {
|
group('annotation by tag test', () => {
|
||||||
if (__ITER === 0) {
|
if (__ITER === 0) {
|
||||||
group("user authenticates thru ui with username and password", () => {
|
group('user authenticates thru ui with username and password', () => {
|
||||||
let res = client.ui.login('admin', 'admin');
|
let res = client.ui.login('admin', 'admin');
|
||||||
|
|
||||||
check(res, {
|
check(res, {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
|
"response has cookie 'grafana_session' with 32 characters": r =>
|
||||||
|
r.cookies.grafana_session[0].value.length === 32,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (__ITER !== 0) {
|
if (__ITER !== 0) {
|
||||||
group("batch tsdb requests with annotations by tag", () => {
|
group('batch tsdb requests with annotations by tag', () => {
|
||||||
const batchCount = 20;
|
const batchCount = 20;
|
||||||
const requests = [];
|
const requests = [];
|
||||||
const payload = {
|
const payload = {
|
||||||
from: '1547765247624',
|
from: '1547765247624',
|
||||||
to: '1547768847624',
|
to: '1547768847624',
|
||||||
queries: [{
|
queries: [
|
||||||
refId: 'A',
|
{
|
||||||
scenarioId: 'random_walk',
|
refId: 'A',
|
||||||
intervalMs: 10000,
|
scenarioId: 'random_walk',
|
||||||
maxDataPoints: 433,
|
intervalMs: 10000,
|
||||||
datasourceId: data.datasourceId,
|
maxDataPoints: 433,
|
||||||
}]
|
datasourceId: data.datasourceId,
|
||||||
|
},
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
requests.push({ method: 'GET', url: '/api/annotations?from=1580825186534&to=1580846786535' });
|
requests.push({ method: 'GET', url: '/api/annotations?from=1580825186534&to=1580846786535' });
|
||||||
@ -58,14 +61,14 @@ export default (data) => {
|
|||||||
let responses = client.batch(requests);
|
let responses = client.batch(requests);
|
||||||
for (let n = 0; n < batchCount; n++) {
|
for (let n = 0; n < batchCount; n++) {
|
||||||
check(responses[n], {
|
check(responses[n], {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
sleep(5)
|
sleep(5);
|
||||||
}
|
};
|
||||||
|
|
||||||
export const teardown = (data) => {}
|
export const teardown = data => {};
|
||||||
|
@ -2,7 +2,7 @@ import { sleep, check, group } from 'k6';
|
|||||||
import { createBasicAuthClient } from './modules/client.js';
|
import { createBasicAuthClient } from './modules/client.js';
|
||||||
|
|
||||||
export let options = {
|
export let options = {
|
||||||
noCookiesReset: true
|
noCookiesReset: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let endpoint = __ENV.URL || 'http://localhost:10080/grafana';
|
let endpoint = __ENV.URL || 'http://localhost:10080/grafana';
|
||||||
@ -19,17 +19,17 @@ export const setup = () => {
|
|||||||
return {
|
return {
|
||||||
datasourceId: res.json().id,
|
datasourceId: res.json().id,
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
export default (data) => {
|
export default data => {
|
||||||
group("auth proxy test", () => {
|
group('auth proxy test', () => {
|
||||||
group("batch proxy requests", () => {
|
group('batch proxy requests', () => {
|
||||||
const d = new Date();
|
const d = new Date();
|
||||||
const batchCount = 300;
|
const batchCount = 300;
|
||||||
const requests = [];
|
const requests = [];
|
||||||
const query = encodeURI('topk(5, max(scrape_duration_seconds) by (job))');
|
const query = encodeURI('topk(5, max(scrape_duration_seconds) by (job))');
|
||||||
const start = (d.getTime() / 1000) - 3600;
|
const start = d.getTime() / 1000 - 3600;
|
||||||
const end = (d.getTime() / 1000);
|
const end = d.getTime() / 1000;
|
||||||
const step = 20;
|
const step = 20;
|
||||||
|
|
||||||
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=8&from=1558670300607&to=1558691900607' });
|
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=8&from=1558670300607&to=1558691900607' });
|
||||||
@ -44,13 +44,13 @@ export default (data) => {
|
|||||||
let responses = client.batch(requests);
|
let responses = client.batch(requests);
|
||||||
for (let n = 0; n < batchCount; n++) {
|
for (let n = 0; n < batchCount; n++) {
|
||||||
check(responses[n], {
|
check(responses[n], {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
sleep(5)
|
sleep(5);
|
||||||
}
|
};
|
||||||
|
|
||||||
export const teardown = (data) => {}
|
export const teardown = data => {};
|
||||||
|
@ -3,11 +3,11 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
|
|||||||
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
||||||
|
|
||||||
export let options = {
|
export let options = {
|
||||||
noCookiesReset: true
|
noCookiesReset: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let endpoint = __ENV.URL || 'http://localhost:3000';
|
let endpoint = __ENV.URL || 'http://localhost:3000';
|
||||||
const slowQuery = (__ENV.SLOW_QUERY && __ENV.SLOW_QUERY.length > 0) ? parseInt(__ENV.SLOW_QUERY, 10) : 5;
|
const slowQuery = __ENV.SLOW_QUERY && __ENV.SLOW_QUERY.length > 0 ? parseInt(__ENV.SLOW_QUERY, 10) : 5;
|
||||||
const client = createClient(endpoint);
|
const client = createClient(endpoint);
|
||||||
|
|
||||||
export const setup = () => {
|
export const setup = () => {
|
||||||
@ -19,17 +19,18 @@ export const setup = () => {
|
|||||||
orgId: orgId,
|
orgId: orgId,
|
||||||
datasourceId: datasourceId,
|
datasourceId: datasourceId,
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
export default (data) => {
|
export default data => {
|
||||||
group(`user auth token slow test (queries between 1 and ${slowQuery} seconds)`, () => {
|
group(`user auth token slow test (queries between 1 and ${slowQuery} seconds)`, () => {
|
||||||
if (__ITER === 0) {
|
if (__ITER === 0) {
|
||||||
group("user authenticates thru ui with username and password", () => {
|
group('user authenticates thru ui with username and password', () => {
|
||||||
let res = client.ui.login('admin', 'admin');
|
let res = client.ui.login('admin', 'admin');
|
||||||
|
|
||||||
check(res, {
|
check(res, {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
|
"response has cookie 'grafana_session' with 32 characters": r =>
|
||||||
|
r.cookies.grafana_session[0].value.length === 32,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -41,14 +42,16 @@ export default (data) => {
|
|||||||
const payload = {
|
const payload = {
|
||||||
from: '1547765247624',
|
from: '1547765247624',
|
||||||
to: '1547768847624',
|
to: '1547768847624',
|
||||||
queries: [{
|
queries: [
|
||||||
refId: 'A',
|
{
|
||||||
scenarioId: 'slow_query',
|
refId: 'A',
|
||||||
stringInput: `${Math.floor(Math.random() * slowQuery) + 1}s`,
|
scenarioId: 'slow_query',
|
||||||
intervalMs: 10000,
|
stringInput: `${Math.floor(Math.random() * slowQuery) + 1}s`,
|
||||||
maxDataPoints: 433,
|
intervalMs: 10000,
|
||||||
datasourceId: data.datasourceId,
|
maxDataPoints: 433,
|
||||||
}]
|
datasourceId: data.datasourceId,
|
||||||
|
},
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
|
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
|
||||||
@ -60,14 +63,14 @@ export default (data) => {
|
|||||||
let responses = client.batch(requests);
|
let responses = client.batch(requests);
|
||||||
for (let n = 0; n < batchCount; n++) {
|
for (let n = 0; n < batchCount; n++) {
|
||||||
check(responses[n], {
|
check(responses[n], {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
sleep(5)
|
sleep(5);
|
||||||
}
|
};
|
||||||
|
|
||||||
export const teardown = (data) => {}
|
export const teardown = data => {};
|
||||||
|
@ -3,7 +3,7 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
|
|||||||
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
|
||||||
|
|
||||||
export let options = {
|
export let options = {
|
||||||
noCookiesReset: true
|
noCookiesReset: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let endpoint = __ENV.URL || 'http://localhost:3000';
|
let endpoint = __ENV.URL || 'http://localhost:3000';
|
||||||
@ -18,35 +18,38 @@ export const setup = () => {
|
|||||||
orgId: orgId,
|
orgId: orgId,
|
||||||
datasourceId: datasourceId,
|
datasourceId: datasourceId,
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
export default (data) => {
|
export default data => {
|
||||||
group("user auth token test", () => {
|
group('user auth token test', () => {
|
||||||
if (__ITER === 0) {
|
if (__ITER === 0) {
|
||||||
group("user authenticates thru ui with username and password", () => {
|
group('user authenticates thru ui with username and password', () => {
|
||||||
let res = client.ui.login('admin', 'admin');
|
let res = client.ui.login('admin', 'admin');
|
||||||
|
|
||||||
check(res, {
|
check(res, {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
|
"response has cookie 'grafana_session' with 32 characters": r =>
|
||||||
|
r.cookies.grafana_session[0].value.length === 32,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (__ITER !== 0) {
|
if (__ITER !== 0) {
|
||||||
group("batch tsdb requests", () => {
|
group('batch tsdb requests', () => {
|
||||||
const batchCount = 20;
|
const batchCount = 20;
|
||||||
const requests = [];
|
const requests = [];
|
||||||
const payload = {
|
const payload = {
|
||||||
from: '1547765247624',
|
from: '1547765247624',
|
||||||
to: '1547768847624',
|
to: '1547768847624',
|
||||||
queries: [{
|
queries: [
|
||||||
refId: 'A',
|
{
|
||||||
scenarioId: 'random_walk',
|
refId: 'A',
|
||||||
intervalMs: 10000,
|
scenarioId: 'random_walk',
|
||||||
maxDataPoints: 433,
|
intervalMs: 10000,
|
||||||
datasourceId: data.datasourceId,
|
maxDataPoints: 433,
|
||||||
}]
|
datasourceId: data.datasourceId,
|
||||||
|
},
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
|
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
|
||||||
@ -58,14 +61,14 @@ export default (data) => {
|
|||||||
let responses = client.batch(requests);
|
let responses = client.batch(requests);
|
||||||
for (let n = 0; n < batchCount; n++) {
|
for (let n = 0; n < batchCount; n++) {
|
||||||
check(responses[n], {
|
check(responses[n], {
|
||||||
'response status is 200': (r) => r.status === 200,
|
'response status is 200': r => r.status === 200,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
sleep(5)
|
sleep(5);
|
||||||
}
|
};
|
||||||
|
|
||||||
export const teardown = (data) => {}
|
export const teardown = data => {};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import http from "k6/http";
|
import http from 'k6/http';
|
||||||
import encoding from 'k6/encoding';
|
import encoding from 'k6/encoding';
|
||||||
|
|
||||||
export const UIEndpoint = class UIEndpoint {
|
export const UIEndpoint = class UIEndpoint {
|
||||||
@ -10,7 +10,7 @@ export const UIEndpoint = class UIEndpoint {
|
|||||||
const payload = { user: username, password: pwd };
|
const payload = { user: username, password: pwd };
|
||||||
return this.httpClient.formPost('/login', payload);
|
return this.httpClient.formPost('/login', payload);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const DatasourcesEndpoint = class DatasourcesEndpoint {
|
export const DatasourcesEndpoint = class DatasourcesEndpoint {
|
||||||
constructor(httpClient) {
|
constructor(httpClient) {
|
||||||
@ -32,7 +32,7 @@ export const DatasourcesEndpoint = class DatasourcesEndpoint {
|
|||||||
delete(id) {
|
delete(id) {
|
||||||
return this.httpClient.delete(`/datasources/${id}`);
|
return this.httpClient.delete(`/datasources/${id}`);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const OrganizationsEndpoint = class OrganizationsEndpoint {
|
export const OrganizationsEndpoint = class OrganizationsEndpoint {
|
||||||
constructor(httpClient) {
|
constructor(httpClient) {
|
||||||
@ -57,7 +57,7 @@ export const OrganizationsEndpoint = class OrganizationsEndpoint {
|
|||||||
delete(id) {
|
delete(id) {
|
||||||
return this.httpClient.delete(`/orgs/${id}`);
|
return this.httpClient.delete(`/orgs/${id}`);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const GrafanaClient = class GrafanaClient {
|
export const GrafanaClient = class GrafanaClient {
|
||||||
constructor(httpClient) {
|
constructor(httpClient) {
|
||||||
@ -79,10 +79,10 @@ export const GrafanaClient = class GrafanaClient {
|
|||||||
onBeforeRequest(params) {
|
onBeforeRequest(params) {
|
||||||
if (this.orgId && this.orgId > 0) {
|
if (this.orgId && this.orgId > 0) {
|
||||||
params = params.headers || {};
|
params = params.headers || {};
|
||||||
params.headers["X-Grafana-Org-Id"] = this.orgId;
|
params.headers['X-Grafana-Org-Id'] = this.orgId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const BaseClient = class BaseClient {
|
export const BaseClient = class BaseClient {
|
||||||
constructor(url, subUrl) {
|
constructor(url, subUrl) {
|
||||||
@ -99,14 +99,12 @@ export const BaseClient = class BaseClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
withUrl(subUrl) {
|
withUrl(subUrl) {
|
||||||
let c = new BaseClient(this.url, subUrl);
|
let c = new BaseClient(this.url, subUrl);
|
||||||
c.onBeforeRequest = this.onBeforeRequest;
|
c.onBeforeRequest = this.onBeforeRequest;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
beforeRequest(params) {
|
beforeRequest(params) {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
get(url, params) {
|
get(url, params) {
|
||||||
params = params || {};
|
params = params || {};
|
||||||
@ -156,7 +154,7 @@ export const BaseClient = class BaseClient {
|
|||||||
|
|
||||||
return http.batch(requests);
|
return http.batch(requests);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export class BasicAuthClient extends BaseClient {
|
export class BasicAuthClient extends BaseClient {
|
||||||
constructor(url, subUrl, username, password) {
|
constructor(url, subUrl, username, password) {
|
||||||
@ -166,7 +164,7 @@ export class BasicAuthClient extends BaseClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
withUrl(subUrl) {
|
withUrl(subUrl) {
|
||||||
let c = new BasicAuthClient(this.url, subUrl, this.username, this.password);
|
let c = new BasicAuthClient(this.url, subUrl, this.username, this.password);
|
||||||
c.onBeforeRequest = this.onBeforeRequest;
|
c.onBeforeRequest = this.onBeforeRequest;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
@ -179,10 +177,10 @@ export class BasicAuthClient extends BaseClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const createClient = (url) => {
|
export const createClient = url => {
|
||||||
return new GrafanaClient(new BaseClient(url, ''));
|
return new GrafanaClient(new BaseClient(url, ''));
|
||||||
}
|
};
|
||||||
|
|
||||||
export const createBasicAuthClient = (url, username, password) => {
|
export const createBasicAuthClient = (url, username, password) => {
|
||||||
return new GrafanaClient(new BasicAuthClient(url, '', username, password));
|
return new GrafanaClient(new BasicAuthClient(url, '', username, password));
|
||||||
}
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export const createTestOrgIfNotExists = (client) => {
|
export const createTestOrgIfNotExists = client => {
|
||||||
let orgId = 0;
|
let orgId = 0;
|
||||||
let res = client.orgs.getByName('k6');
|
let res = client.orgs.getByName('k6');
|
||||||
if (res.status === 404) {
|
if (res.status === 404) {
|
||||||
@ -13,9 +13,9 @@ export const createTestOrgIfNotExists = (client) => {
|
|||||||
|
|
||||||
client.withOrgId(orgId);
|
client.withOrgId(orgId);
|
||||||
return orgId;
|
return orgId;
|
||||||
}
|
};
|
||||||
|
|
||||||
export const createTestdataDatasourceIfNotExists = (client) => {
|
export const createTestdataDatasourceIfNotExists = client => {
|
||||||
const payload = {
|
const payload = {
|
||||||
access: 'proxy',
|
access: 'proxy',
|
||||||
isDefault: false,
|
isDefault: false,
|
||||||
@ -32,4 +32,4 @@ export const createTestdataDatasourceIfNotExists = (client) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return res.json().id;
|
return res.json().id;
|
||||||
}
|
};
|
||||||
|
@ -1,19 +1,15 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
verbose: true,
|
verbose: true,
|
||||||
"globals": {
|
globals: {
|
||||||
"ts-jest": {
|
'ts-jest': {
|
||||||
"tsConfigFile": "tsconfig.json"
|
tsConfigFile: 'tsconfig.json',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"transform": {
|
transform: {
|
||||||
"^.+\\.tsx?$": "<rootDir>/../../node_modules/ts-jest/preprocessor.js"
|
'^.+\\.tsx?$': '<rootDir>/../../node_modules/ts-jest/preprocessor.js',
|
||||||
},
|
},
|
||||||
"moduleDirectories": ["node_modules"],
|
moduleDirectories: ['node_modules'],
|
||||||
"testRegex": "(\\.|/)(test)\\.ts$",
|
testRegex: '(\\.|/)(test)\\.ts$',
|
||||||
"testEnvironment": "node",
|
testEnvironment: 'node',
|
||||||
"moduleFileExtensions": [
|
moduleFileExtensions: ['ts', 'js', 'json'],
|
||||||
"ts",
|
|
||||||
"js",
|
|
||||||
"json"
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
module.exports = function() {
|
module.exports = function() {
|
||||||
'use strict';
|
'use strict';
|
||||||
return {
|
return {
|
||||||
options: {
|
options: {
|
||||||
layout: 'templates/layouts/default.html',
|
layout: 'templates/layouts/default.html',
|
||||||
partials: ['templates/partials/*.hbs'],
|
partials: ['templates/partials/*.hbs'],
|
||||||
helpers: ['templates/helpers/**/*.js'],
|
helpers: ['templates/helpers/**/*.js'],
|
||||||
data: [],
|
data: [],
|
||||||
flatten: true
|
flatten: true,
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
src: ['templates/*.html'],
|
src: ['templates/*.html'],
|
||||||
dest: 'dist/'
|
dest: 'dist/',
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
main: {
|
main: {
|
||||||
options: {
|
options: {
|
||||||
verbose: true,
|
verbose: true,
|
||||||
removeComments: true
|
removeComments: true,
|
||||||
},
|
},
|
||||||
files: [{
|
files: [
|
||||||
expand: true, // Enable dynamic expansion.
|
{
|
||||||
cwd: 'dist', // Src matches are relative to this path.
|
expand: true, // Enable dynamic expansion.
|
||||||
|
cwd: 'dist', // Src matches are relative to this path.
|
||||||
src: ['*.html'], // Actual pattern(s) to match.
|
src: ['*.html'], // Actual pattern(s) to match.
|
||||||
dest: '../public/emails/', // Destination path prefix.
|
dest: '../public/emails/', // Destination path prefix.
|
||||||
}],
|
},
|
||||||
}
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
dist: {
|
dist: {
|
||||||
files: [{
|
files: [
|
||||||
expand: true, // Enable dynamic expansion.
|
{
|
||||||
cwd: 'dist', // Src matches are relative to this path.
|
expand: true, // Enable dynamic expansion.
|
||||||
src: ['*.html'], // Actual pattern(s) to match.
|
cwd: 'dist', // Src matches are relative to this path.
|
||||||
dest: 'dist/', // Destination path prefix.
|
src: ['*.html'], // Actual pattern(s) to match.
|
||||||
}],
|
dest: 'dist/', // Destination path prefix.
|
||||||
}
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
dist: {
|
dist: {
|
||||||
overwrite: true,
|
overwrite: true,
|
||||||
src: ['dist/*.html'],
|
src: ['dist/*.html'],
|
||||||
replacements: [{
|
replacements: [
|
||||||
from: '[[',
|
{
|
||||||
to: '{{'
|
from: '[[',
|
||||||
}, {
|
to: '{{',
|
||||||
from: ']]',
|
},
|
||||||
to: '}}'
|
{
|
||||||
}]
|
from: ']]',
|
||||||
}
|
to: '}}',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
dist: {
|
dist: {
|
||||||
src: ['dist/*.html'],
|
src: ['dist/*.html'],
|
||||||
dest: 'dist/css/tidy.css',
|
dest: 'dist/css/tidy.css',
|
||||||
options: {
|
options: {
|
||||||
report: 'min' // optional: include to report savings
|
report: 'min', // optional: include to report savings
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
src: {
|
src: {
|
||||||
files: [
|
files: [
|
||||||
//what are the files that we want to watch
|
//what are the files that we want to watch
|
||||||
'assets/css/*.css',
|
'assets/css/*.css',
|
||||||
'templates/**/*.html',
|
'templates/**/*.html',
|
||||||
'grunt/*.js',
|
'grunt/*.js',
|
||||||
],
|
],
|
||||||
tasks: ['default'],
|
tasks: ['default'],
|
||||||
options: {
|
options: {
|
||||||
nospawn: true,
|
nospawn: true,
|
||||||
livereload: false,
|
livereload: false,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
|
|
||||||
// load grunt config
|
// load grunt config
|
||||||
require('load-grunt-config')(grunt);
|
require('load-grunt-config')(grunt);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
23
package.json
23
package.json
@ -13,13 +13,12 @@
|
|||||||
"e2e:debug": "./e2e/start-and-run-suite debug",
|
"e2e:debug": "./e2e/start-and-run-suite debug",
|
||||||
"e2e:dev": "./e2e/start-and-run-suite dev",
|
"e2e:dev": "./e2e/start-and-run-suite dev",
|
||||||
"jest": "jest --notify --watch",
|
"jest": "jest --notify --watch",
|
||||||
|
"lint": "eslint . --ext .js,.tsx,.ts --cache --ignore-path .gitignore --ignore-pattern devenv",
|
||||||
"jest-ci": "mkdir -p reports/junit && export JEST_JUNIT_OUTPUT_DIR=reports/junit && jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}",
|
"jest-ci": "mkdir -p reports/junit && export JEST_JUNIT_OUTPUT_DIR=reports/junit && jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}",
|
||||||
"lint": "eslint public/app e2e/suite1 public/test --ext=.js,.ts,.tsx",
|
|
||||||
"lint:fix": "yarn lint --fix",
|
"lint:fix": "yarn lint --fix",
|
||||||
"packages:build": "lerna run clean && lerna run build --ignore @grafana-plugins/input-datasource",
|
"packages:build": "lerna run clean && lerna run build --ignore @grafana-plugins/input-datasource",
|
||||||
"packages:docsExtract": "rm -rf ./reports/docs && lerna run docsExtract",
|
"packages:docsExtract": "rm -rf ./reports/docs && lerna run docsExtract",
|
||||||
"packages:docsToMarkdown": "api-documenter markdown --input-folder ./reports/docs/ --output-folder ./docs/sources/packages_api/ --hugo",
|
"packages:docsToMarkdown": "api-documenter markdown --input-folder ./reports/docs/ --output-folder ./docs/sources/packages_api/ --hugo",
|
||||||
"packages:lint": "lerna run lint",
|
|
||||||
"packages:prepare": "lerna version --no-push --no-git-tag-version --force-publish --exact",
|
"packages:prepare": "lerna version --no-push --no-git-tag-version --force-publish --exact",
|
||||||
"packages:publish": "lerna publish from-package --contents dist",
|
"packages:publish": "lerna publish from-package --contents dist",
|
||||||
"packages:publishCanary": "lerna publish from-package --contents dist --dist-tag canary --yes",
|
"packages:publishCanary": "lerna publish from-package --contents dist --dist-tag canary --yes",
|
||||||
@ -53,7 +52,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.{ts,tsx,json,scss}": [
|
"*.{js,ts,tsx}": [
|
||||||
|
"eslint --ext .js,.tsx,.ts --cache --fix"
|
||||||
|
],
|
||||||
|
"*.{json,scss}": [
|
||||||
"prettier --write"
|
"prettier --write"
|
||||||
],
|
],
|
||||||
"*pkg/**/*.go": [
|
"*pkg/**/*.go": [
|
||||||
@ -70,6 +72,7 @@
|
|||||||
"@babel/preset-typescript": "7.8.3",
|
"@babel/preset-typescript": "7.8.3",
|
||||||
"@emotion/core": "10.0.27",
|
"@emotion/core": "10.0.27",
|
||||||
"@grafana/api-documenter": "0.9.3",
|
"@grafana/api-documenter": "0.9.3",
|
||||||
|
"@grafana/eslint-config": "2.0.0",
|
||||||
"@microsoft/api-extractor": "7.8.2-pr1796.0",
|
"@microsoft/api-extractor": "7.8.2-pr1796.0",
|
||||||
"@rtsao/plugin-proposal-class-properties": "7.0.1-patch.1",
|
"@rtsao/plugin-proposal-class-properties": "7.0.1-patch.1",
|
||||||
"@testing-library/react-hooks": "^3.2.1",
|
"@testing-library/react-hooks": "^3.2.1",
|
||||||
@ -111,8 +114,8 @@
|
|||||||
"@types/slate-react": "0.22.5",
|
"@types/slate-react": "0.22.5",
|
||||||
"@types/testing-library__react-hooks": "^3.2.0",
|
"@types/testing-library__react-hooks": "^3.2.0",
|
||||||
"@types/tinycolor2": "1.4.2",
|
"@types/tinycolor2": "1.4.2",
|
||||||
"@typescript-eslint/eslint-plugin": "2.19.0",
|
"@typescript-eslint/eslint-plugin": "3.6.0",
|
||||||
"@typescript-eslint/parser": "2.19.0",
|
"@typescript-eslint/parser": "3.6.0",
|
||||||
"angular-mocks": "1.6.6",
|
"angular-mocks": "1.6.6",
|
||||||
"autoprefixer": "9.7.4",
|
"autoprefixer": "9.7.4",
|
||||||
"axios": "0.19.2",
|
"axios": "0.19.2",
|
||||||
@ -127,11 +130,11 @@
|
|||||||
"enzyme-to-json": "3.4.4",
|
"enzyme-to-json": "3.4.4",
|
||||||
"es6-promise": "4.2.8",
|
"es6-promise": "4.2.8",
|
||||||
"es6-shim": "0.35.5",
|
"es6-shim": "0.35.5",
|
||||||
"eslint": "6.8.0",
|
"eslint": "7.4.0",
|
||||||
"eslint-config-prettier": "6.10.0",
|
"eslint-config-prettier": "6.11.0",
|
||||||
"eslint-plugin-jsdoc": "22.1.0",
|
"eslint-plugin-jsdoc": "28.6.1",
|
||||||
"eslint-plugin-prettier": "3.1.2",
|
"eslint-plugin-prettier": "3.1.4",
|
||||||
"eslint-plugin-react": "7.18.3",
|
"eslint-plugin-react-hooks": "4.0.5",
|
||||||
"expect.js": "0.3.1",
|
"expect.js": "0.3.1",
|
||||||
"expose-loader": "0.7.5",
|
"expose-loader": "0.7.5",
|
||||||
"file-loader": "5.0.2",
|
"file-loader": "5.0.2",
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
{
|
{
|
||||||
"extends": ["@grafana/eslint-config"],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-restricted-imports": [2, "^@grafana/data.*", "^@grafana/runtime.*", "^@grafana/ui.*"]
|
"no-restricted-imports": ["error", { "patterns": ["@grafana/runtime", "@grafana/ui", "@grafana/data"] }]
|
||||||
}
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["**/*.test.{ts,tsx}"],
|
||||||
|
"rules": {
|
||||||
|
"no-restricted-imports": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
'use strict'
|
'use strict';
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
module.exports = require('./index.production.js');
|
module.exports = require('./index.production.js');
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
"bundle": "rollup -c rollup.config.ts",
|
"bundle": "rollup -c rollup.config.ts",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
||||||
"lint": "eslint src/ --ext=.js,.ts,.tsx",
|
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -30,7 +29,6 @@
|
|||||||
"xss": "1.0.6"
|
"xss": "1.0.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@grafana/eslint-config": "^1.0.0-rc1",
|
|
||||||
"@grafana/tsconfig": "^1.0.0-rc1",
|
"@grafana/tsconfig": "^1.0.0-rc1",
|
||||||
"@rollup/plugin-commonjs": "11.0.2",
|
"@rollup/plugin-commonjs": "11.0.2",
|
||||||
"@rollup/plugin-json": "4.0.3",
|
"@rollup/plugin-json": "4.0.3",
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
"bundle": "rollup -c rollup.config.ts",
|
"bundle": "rollup -c rollup.config.ts",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
||||||
"lint": "eslint src/ --ext=.js,.ts,.tsx",
|
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
"bundle": "rollup -c rollup.config.ts",
|
"bundle": "rollup -c rollup.config.ts",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
||||||
"lint": "eslint cypress/ src/ --ext=.js,.ts,.tsx",
|
|
||||||
"open": "cypress open",
|
"open": "cypress open",
|
||||||
"start": "cypress run --headless --browser chrome",
|
"start": "cypress run --headless --browser chrome",
|
||||||
"test": "pushd test && node ../dist/bin/grafana-e2e.js run",
|
"test": "pushd test && node ../dist/bin/grafana-e2e.js run",
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"extends": ["@grafana/eslint-config"],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-restricted-imports": [2, "^@grafana/runtime.*"]
|
"no-restricted-imports": ["error", { "patterns": ["@grafana/runtime"] }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
'use strict'
|
'use strict';
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
module.exports = require('./index.production.js');
|
module.exports = require('./index.production.js');
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
"bundle": "rollup -c rollup.config.ts",
|
"bundle": "rollup -c rollup.config.ts",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
||||||
"lint": "eslint src/ --ext=.js,.ts,.tsx",
|
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"extends": ["@grafana/eslint-config"],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-restricted-imports": [2, "^@grafana/runtime.*"]
|
"no-restricted-imports": ["error", { "patterns": ["@grafana/runtime"] }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,121 +1,153 @@
|
|||||||
"use strict";
|
'use strict';
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
var tslib_1 = require("tslib");
|
var tslib_1 = require('tslib');
|
||||||
var getPluginId_1 = require("../../config/utils/getPluginId");
|
var getPluginId_1 = require('../../config/utils/getPluginId');
|
||||||
var pluginValidation_1 = require("../../config/utils/pluginValidation");
|
var pluginValidation_1 = require('../../config/utils/pluginValidation');
|
||||||
var env_1 = require("../../plugins/env");
|
var env_1 = require('../../plugins/env');
|
||||||
var path = require("path");
|
var path = require('path');
|
||||||
var fs = require("fs");
|
var fs = require('fs');
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// import execa = require('execa');
|
// import execa = require('execa');
|
||||||
var githubClient_1 = tslib_1.__importDefault(require("./githubClient"));
|
var githubClient_1 = tslib_1.__importDefault(require('./githubClient'));
|
||||||
var resolveContentType = function (extension) {
|
var resolveContentType = function(extension) {
|
||||||
if (extension.startsWith('.')) {
|
if (extension.startsWith('.')) {
|
||||||
extension = extension.substr(1);
|
extension = extension.substr(1);
|
||||||
}
|
}
|
||||||
switch (extension) {
|
switch (extension) {
|
||||||
case 'zip':
|
case 'zip':
|
||||||
return 'application/zip';
|
return 'application/zip';
|
||||||
case 'json':
|
case 'json':
|
||||||
return 'application/json';
|
return 'application/json';
|
||||||
case 'sha1':
|
case 'sha1':
|
||||||
return 'text/plain';
|
return 'text/plain';
|
||||||
default:
|
default:
|
||||||
return 'application/octet-stream';
|
return 'application/octet-stream';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var GitHubRelease = /** @class */ (function () {
|
var GitHubRelease = /** @class */ (function() {
|
||||||
function GitHubRelease(token, username, repository, releaseNotes, commitHash) {
|
function GitHubRelease(token, username, repository, releaseNotes, commitHash) {
|
||||||
this.token = token;
|
this.token = token;
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.repository = repository;
|
this.repository = repository;
|
||||||
this.releaseNotes = releaseNotes;
|
this.releaseNotes = releaseNotes;
|
||||||
this.commitHash = commitHash;
|
this.commitHash = commitHash;
|
||||||
this.git = new githubClient_1.default({
|
this.git = new githubClient_1.default({
|
||||||
required: true,
|
required: true,
|
||||||
repo: repository,
|
repo: repository,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
GitHubRelease.prototype.publishAssets = function(srcLocation, destUrl) {
|
||||||
|
var _this = this;
|
||||||
|
// Add the assets. Loop through files in the ci/dist folder and upload each asset.
|
||||||
|
var files = fs.readdirSync(srcLocation);
|
||||||
|
return files.map(function(file) {
|
||||||
|
return tslib_1.__awaiter(_this, void 0, void 0, function() {
|
||||||
|
var fileStat, fileData;
|
||||||
|
return tslib_1.__generator(this, function(_a) {
|
||||||
|
fileStat = fs.statSync(srcLocation + '/' + file);
|
||||||
|
fileData = fs.readFileSync(srcLocation + '/' + file);
|
||||||
|
return [
|
||||||
|
2 /*return*/,
|
||||||
|
this.git.client.post(destUrl + '?name=' + file, fileData, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': resolveContentType(path.extname(file)),
|
||||||
|
'Content-Length': fileStat.size,
|
||||||
|
},
|
||||||
|
maxContentLength: fileStat.size * 2 * 1024 * 1024,
|
||||||
|
}),
|
||||||
|
];
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
GitHubRelease.prototype.publishAssets = function (srcLocation, destUrl) {
|
});
|
||||||
var _this = this;
|
};
|
||||||
// Add the assets. Loop through files in the ci/dist folder and upload each asset.
|
GitHubRelease.prototype.release = function() {
|
||||||
var files = fs.readdirSync(srcLocation);
|
var _a, _b, _c, _d;
|
||||||
return files.map(function (file) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
return tslib_1.__awaiter(this, void 0, void 0, function() {
|
||||||
var fileStat, fileData;
|
var ciDir,
|
||||||
return tslib_1.__generator(this, function (_a) {
|
distDir,
|
||||||
fileStat = fs.statSync(srcLocation + "/" + file);
|
distContentDir,
|
||||||
fileData = fs.readFileSync(srcLocation + "/" + file);
|
pluginJsonFile,
|
||||||
return [2 /*return*/, this.git.client.post(destUrl + "?name=" + file, fileData, {
|
pluginInfo,
|
||||||
headers: {
|
PUBLISH_DIR,
|
||||||
'Content-Type': resolveContentType(path.extname(file)),
|
commitHash,
|
||||||
'Content-Length': fileStat.size,
|
latestRelease,
|
||||||
},
|
reason_1,
|
||||||
maxContentLength: fileStat.size * 2 * 1024 * 1024,
|
newReleaseResponse,
|
||||||
})];
|
publishPromises,
|
||||||
});
|
reason_2;
|
||||||
}); });
|
return tslib_1.__generator(this, function(_e) {
|
||||||
};
|
switch (_e.label) {
|
||||||
GitHubRelease.prototype.release = function () {
|
case 0:
|
||||||
var _a, _b, _c, _d;
|
ciDir = env_1.getCiFolder();
|
||||||
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
distDir = path.resolve(ciDir, 'dist');
|
||||||
var ciDir, distDir, distContentDir, pluginJsonFile, pluginInfo, PUBLISH_DIR, commitHash, latestRelease, reason_1, newReleaseResponse, publishPromises, reason_2;
|
distContentDir = path.resolve(distDir, getPluginId_1.getPluginId());
|
||||||
return tslib_1.__generator(this, function (_e) {
|
pluginJsonFile = path.resolve(distContentDir, 'plugin.json');
|
||||||
switch (_e.label) {
|
pluginInfo = pluginValidation_1.getPluginJson(pluginJsonFile).info;
|
||||||
case 0:
|
PUBLISH_DIR = path.resolve(env_1.getCiFolder(), 'packages');
|
||||||
ciDir = env_1.getCiFolder();
|
commitHash = this.commitHash || ((_a = pluginInfo.build) === null || _a === void 0 ? void 0 : _a.hash);
|
||||||
distDir = path.resolve(ciDir, 'dist');
|
_e.label = 1;
|
||||||
distContentDir = path.resolve(distDir, getPluginId_1.getPluginId());
|
case 1:
|
||||||
pluginJsonFile = path.resolve(distContentDir, 'plugin.json');
|
_e.trys.push([1, 5, , 6]);
|
||||||
pluginInfo = pluginValidation_1.getPluginJson(pluginJsonFile).info;
|
return [4 /*yield*/, this.git.client.get('releases/tags/v' + pluginInfo.version)];
|
||||||
PUBLISH_DIR = path.resolve(env_1.getCiFolder(), 'packages');
|
case 2:
|
||||||
commitHash = this.commitHash || ((_a = pluginInfo.build) === null || _a === void 0 ? void 0 : _a.hash);
|
latestRelease = _e.sent();
|
||||||
_e.label = 1;
|
if (!(latestRelease.data.tag_name === 'v' + pluginInfo.version)) {
|
||||||
case 1:
|
return [3 /*break*/, 4];
|
||||||
_e.trys.push([1, 5, , 6]);
|
}
|
||||||
return [4 /*yield*/, this.git.client.get("releases/tags/v" + pluginInfo.version)];
|
return [4 /*yield*/, this.git.client.delete('releases/' + latestRelease.data.id)];
|
||||||
case 2:
|
case 3:
|
||||||
latestRelease = _e.sent();
|
_e.sent();
|
||||||
if (!(latestRelease.data.tag_name === "v" + pluginInfo.version)) return [3 /*break*/, 4];
|
_e.label = 4;
|
||||||
return [4 /*yield*/, this.git.client.delete("releases/" + latestRelease.data.id)];
|
case 4:
|
||||||
case 3:
|
return [3 /*break*/, 6];
|
||||||
_e.sent();
|
case 5:
|
||||||
_e.label = 4;
|
reason_1 = _e.sent();
|
||||||
case 4: return [3 /*break*/, 6];
|
if (reason_1.response.status !== 404) {
|
||||||
case 5:
|
// 404 just means no release found. Not an error. Anything else though, re throw the error
|
||||||
reason_1 = _e.sent();
|
throw reason_1;
|
||||||
if (reason_1.response.status !== 404) {
|
}
|
||||||
// 404 just means no release found. Not an error. Anything else though, re throw the error
|
return [3 /*break*/, 6];
|
||||||
throw reason_1;
|
case 6:
|
||||||
}
|
_e.trys.push([6, 9, , 10]);
|
||||||
return [3 /*break*/, 6];
|
return [
|
||||||
case 6:
|
4 /*yield*/,
|
||||||
_e.trys.push([6, 9, , 10]);
|
this.git.client.post('releases', {
|
||||||
return [4 /*yield*/, this.git.client.post('releases', {
|
tag_name: 'v' + pluginInfo.version,
|
||||||
tag_name: "v" + pluginInfo.version,
|
target_commitish: commitHash,
|
||||||
target_commitish: commitHash,
|
name: 'v' + pluginInfo.version,
|
||||||
name: "v" + pluginInfo.version,
|
body: this.releaseNotes,
|
||||||
body: this.releaseNotes,
|
draft: false,
|
||||||
draft: false,
|
prerelease: false,
|
||||||
prerelease: false,
|
}),
|
||||||
})];
|
];
|
||||||
case 7:
|
case 7:
|
||||||
newReleaseResponse = _e.sent();
|
newReleaseResponse = _e.sent();
|
||||||
publishPromises = this.publishAssets(PUBLISH_DIR, "https://uploads.github.com/repos/" + this.username + "/" + this.repository + "/releases/" + newReleaseResponse.data.id + "/assets");
|
publishPromises = this.publishAssets(
|
||||||
return [4 /*yield*/, Promise.all(publishPromises)];
|
PUBLISH_DIR,
|
||||||
case 8:
|
'https://uploads.github.com/repos/' +
|
||||||
_e.sent();
|
this.username +
|
||||||
return [3 /*break*/, 10];
|
'/' +
|
||||||
case 9:
|
this.repository +
|
||||||
reason_2 = _e.sent();
|
'/releases/' +
|
||||||
console.log(reason_2);
|
newReleaseResponse.data.id +
|
||||||
// Rethrow the error so that we can trigger a non-zero exit code to circle-ci
|
'/assets'
|
||||||
throw reason_2;
|
);
|
||||||
case 10: return [2 /*return*/];
|
return [4 /*yield*/, Promise.all(publishPromises)];
|
||||||
}
|
case 8:
|
||||||
});
|
_e.sent();
|
||||||
});
|
return [3 /*break*/, 10];
|
||||||
};
|
case 9:
|
||||||
return GitHubRelease;
|
reason_2 = _e.sent();
|
||||||
}());
|
console.log(reason_2);
|
||||||
|
// Rethrow the error so that we can trigger a non-zero exit code to circle-ci
|
||||||
|
throw reason_2;
|
||||||
|
case 10:
|
||||||
|
return [2 /*return*/];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return GitHubRelease;
|
||||||
|
})();
|
||||||
exports.GitHubRelease = GitHubRelease;
|
exports.GitHubRelease = GitHubRelease;
|
||||||
//# sourceMappingURL=githubRelease.js.map7027e10521e9
|
//# sourceMappingURL=githubRelease.js.map7027e10521e9
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "grafana-toolkit toolkit:build",
|
"build": "grafana-toolkit toolkit:build",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"lint": "eslint src/ --ext=.js,.ts,.tsx",
|
|
||||||
"precommit": "npm run lint & npm run typecheck",
|
"precommit": "npm run lint & npm run typecheck",
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
@ -30,7 +29,7 @@
|
|||||||
"@babel/core": "7.9.0",
|
"@babel/core": "7.9.0",
|
||||||
"@babel/preset-env": "7.9.0",
|
"@babel/preset-env": "7.9.0",
|
||||||
"@grafana/data": "next",
|
"@grafana/data": "next",
|
||||||
"@grafana/eslint-config": "^1.0.0-rc1",
|
"@grafana/eslint-config": "2.0.0",
|
||||||
"@grafana/tsconfig": "^1.0.0-rc1",
|
"@grafana/tsconfig": "^1.0.0-rc1",
|
||||||
"@grafana/ui": "next",
|
"@grafana/ui": "next",
|
||||||
"@types/command-exists": "^1.2.0",
|
"@types/command-exists": "^1.2.0",
|
||||||
@ -48,8 +47,8 @@
|
|||||||
"@types/semver": "^6.0.0",
|
"@types/semver": "^6.0.0",
|
||||||
"@types/tmp": "^0.1.0",
|
"@types/tmp": "^0.1.0",
|
||||||
"@types/webpack": "4.41.7",
|
"@types/webpack": "4.41.7",
|
||||||
"@typescript-eslint/eslint-plugin": "2.24.0",
|
"@typescript-eslint/eslint-plugin": "3.6.0",
|
||||||
"@typescript-eslint/parser": "2.24.0",
|
"@typescript-eslint/parser": "3.6.0",
|
||||||
"axios": "0.19.2",
|
"axios": "0.19.2",
|
||||||
"babel-jest": "24.8.0",
|
"babel-jest": "24.8.0",
|
||||||
"babel-loader": "8.1.0",
|
"babel-loader": "8.1.0",
|
||||||
@ -60,10 +59,11 @@
|
|||||||
"concurrently": "4.1.0",
|
"concurrently": "4.1.0",
|
||||||
"copy-webpack-plugin": "5.1.1",
|
"copy-webpack-plugin": "5.1.1",
|
||||||
"css-loader": "^3.0.0",
|
"css-loader": "^3.0.0",
|
||||||
"eslint": "6.8.0",
|
"eslint": "7.4.0",
|
||||||
"eslint-config-prettier": "6.10.0",
|
"eslint-config-prettier": "6.11.0",
|
||||||
"eslint-plugin-jsdoc": "22.1.0",
|
"eslint-plugin-jsdoc": "28.6.1",
|
||||||
"eslint-plugin-prettier": "3.1.2",
|
"eslint-plugin-prettier": "3.1.4",
|
||||||
|
"eslint-plugin-react-hooks": "4.0.5",
|
||||||
"execa": "^1.0.0",
|
"execa": "^1.0.0",
|
||||||
"expect-puppeteer": "4.1.1",
|
"expect-puppeteer": "4.1.1",
|
||||||
"file-loader": "^4.0.0",
|
"file-loader": "^4.0.0",
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
{
|
{
|
||||||
"extends": ["@grafana/eslint-config"],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-restricted-imports": [2, "^@grafana/runtime.*", "^@grafana/ui.*", "^@grafana/e2e.*"]
|
"no-restricted-imports": ["error", { "patterns": ["@grafana/runtime", "@grafana/ui", "@grafana/e2e"] }]
|
||||||
}
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["**/*.{test,story}.{ts,tsx}"],
|
||||||
|
"rules": {
|
||||||
|
"no-restricted-imports": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
'use strict'
|
'use strict';
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
module.exports = require('./index.production.js');
|
module.exports = require('./index.production.js');
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
"bundle": "rollup -c rollup.config.ts",
|
"bundle": "rollup -c rollup.config.ts",
|
||||||
"clean": "rimraf ./dist ./compiled",
|
"clean": "rimraf ./dist ./compiled",
|
||||||
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
"docsExtract": "mkdir -p ../../reports/docs && api-extractor run 2>&1 | tee ../../reports/docs/$(basename $(pwd)).log",
|
||||||
"lint": "eslint .storybook/ src/ --ext=.js,.ts,.tsx",
|
|
||||||
"storybook": "start-storybook -p 9001 -c .storybook -s .storybook/static",
|
"storybook": "start-storybook -p 9001 -c .storybook -s .storybook/static",
|
||||||
"storybook:build": "build-storybook -o ./dist/storybook -c .storybook -s .storybook/static",
|
"storybook:build": "build-storybook -o ./dist/storybook -c .storybook -s .storybook/static",
|
||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
|
@ -357,6 +357,7 @@ export default class Colors {
|
|||||||
let bgColor: Color;
|
let bgColor: Color;
|
||||||
|
|
||||||
function reset() {
|
function reset() {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
||||||
(color = new Color()),
|
(color = new Color()),
|
||||||
(bgColor = new Color(true /* background */)),
|
(bgColor = new Color(true /* background */)),
|
||||||
(brightness = undefined),
|
(brightness = undefined),
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": ["@grafana/eslint-config"],
|
|
||||||
"rules": {
|
|
||||||
"no-restricted-imports": [2, "^@grafana/runtime.*", "^@grafana/ui.*"]
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,7 +12,6 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
/* eslint-disable import/first */
|
|
||||||
jest.mock('./scroll-page');
|
jest.mock('./scroll-page');
|
||||||
|
|
||||||
import { scrollBy, scrollTo } from './scroll-page';
|
import { scrollBy, scrollTo } from './scroll-page';
|
||||||
@ -179,8 +178,7 @@ describe('ScrollManager', () => {
|
|||||||
it('scrolls to last visible row when boundary is hidden', () => {
|
it('scrolls to last visible row when boundary is hidden', () => {
|
||||||
const parentOfLastRowWithHiddenChildrenIndex = trace.spans.length - 2;
|
const parentOfLastRowWithHiddenChildrenIndex = trace.spans.length - 2;
|
||||||
accessors.getBottomRowIndexVisible.mockReturnValue(0);
|
accessors.getBottomRowIndexVisible.mockReturnValue(0);
|
||||||
accessors.getCollapsedChildren = () =>
|
accessors.getCollapsedChildren = () => new Set([trace.spans[parentOfLastRowWithHiddenChildrenIndex].spanID]);
|
||||||
new Set([trace.spans[parentOfLastRowWithHiddenChildrenIndex].spanID]);
|
|
||||||
accessors.getSearchedSpanIDs = () => new Set([trace.spans[0].spanID]);
|
accessors.getSearchedSpanIDs = () => new Set([trace.spans[0].spanID]);
|
||||||
trace.spans[trace.spans.length - 1].references = getRefs(
|
trace.spans[trace.spans.length - 1].references = getRefs(
|
||||||
trace.spans[parentOfLastRowWithHiddenChildrenIndex].spanID
|
trace.spans[parentOfLastRowWithHiddenChildrenIndex].spanID
|
||||||
|
@ -27,8 +27,7 @@ import renderIntoCanvas, {
|
|||||||
const getCanvasWidth = () => window.innerWidth * 2;
|
const getCanvasWidth = () => window.innerWidth * 2;
|
||||||
const getBgFillRect = items => ({
|
const getBgFillRect = items => ({
|
||||||
fillStyle: BG_COLOR,
|
fillStyle: BG_COLOR,
|
||||||
height:
|
height: !items || items.length < MIN_TOTAL_HEIGHT ? MIN_TOTAL_HEIGHT : Math.min(MAX_TOTAL_HEIGHT, items.length),
|
||||||
!items || items.length < MIN_TOTAL_HEIGHT ? MIN_TOTAL_HEIGHT : Math.min(MAX_TOTAL_HEIGHT, items.length),
|
|
||||||
width: getCanvasWidth(),
|
width: getCanvasWidth(),
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 0,
|
y: 0,
|
||||||
@ -125,8 +124,7 @@ describe('renderIntoCanvas()', () => {
|
|||||||
{ input: items[1].serviceName, output: [1, 1, 1] },
|
{ input: items[1].serviceName, output: [1, 1, 1] },
|
||||||
{ input: items[2].serviceName, output: [2, 2, 2] },
|
{ input: items[2].serviceName, output: [2, 2, 2] },
|
||||||
];
|
];
|
||||||
const cHeight =
|
const cHeight = items.length < MIN_TOTAL_HEIGHT ? MIN_TOTAL_HEIGHT : Math.min(items.length, MAX_TOTAL_HEIGHT);
|
||||||
items.length < MIN_TOTAL_HEIGHT ? MIN_TOTAL_HEIGHT : Math.min(items.length, MAX_TOTAL_HEIGHT);
|
|
||||||
|
|
||||||
const expectedDrawings = [
|
const expectedDrawings = [
|
||||||
getBgFillRect(),
|
getBgFillRect(),
|
||||||
|
@ -44,7 +44,6 @@ describe('<ListView>', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Item(props) {
|
function Item(props) {
|
||||||
// eslint-disable-next-line react/prop-types
|
|
||||||
const { children, ...rest } = props;
|
const { children, ...rest } = props;
|
||||||
return <div {...rest}>{children}</div>;
|
return <div {...rest}>{children}</div>;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,6 @@ describe(ReferencesButton, () => {
|
|||||||
// here
|
// here
|
||||||
const menuInstance = shallow(
|
const menuInstance = shallow(
|
||||||
shallow(dropdown.first().props().overlay).prop('children')({
|
shallow(dropdown.first().props().overlay).prop('children')({
|
||||||
// eslint-disable-next-line react/prop-types
|
|
||||||
Menu: ({ children }) => <div>{children}</div>,
|
Menu: ({ children }) => <div>{children}</div>,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -49,7 +49,10 @@ describe('<SpanBar>', () => {
|
|||||||
logs: [
|
logs: [
|
||||||
{
|
{
|
||||||
timestamp: 10,
|
timestamp: 10,
|
||||||
fields: [{ key: 'message', value: 'oh the log message' }, { key: 'something', value: 'else' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the log message' },
|
||||||
|
{ key: 'something', value: 'else' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
timestamp: 10,
|
timestamp: 10,
|
||||||
@ -60,7 +63,10 @@ describe('<SpanBar>', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
timestamp: 20,
|
timestamp: 20,
|
||||||
fields: [{ key: 'message', value: 'oh the next log message' }, { key: 'more', value: 'stuff' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the next log message' },
|
||||||
|
{ key: 'more', value: 'stuff' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -106,7 +106,10 @@ describe('<SpanBarRow>', () => {
|
|||||||
props.span
|
props.span
|
||||||
);
|
);
|
||||||
|
|
||||||
const spanRow = shallow(<SpanBarRow {...props} span={span} />).dive().dive().dive();
|
const spanRow = shallow(<SpanBarRow {...props} span={span} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
const refButton = spanRow.find(ReferencesButton);
|
const refButton = spanRow.find(ReferencesButton);
|
||||||
expect(refButton.length).toEqual(1);
|
expect(refButton.length).toEqual(1);
|
||||||
expect(refButton.at(0).props().tooltipText).toEqual('Contains multiple references');
|
expect(refButton.at(0).props().tooltipText).toEqual('Contains multiple references');
|
||||||
@ -128,7 +131,10 @@ describe('<SpanBarRow>', () => {
|
|||||||
},
|
},
|
||||||
props.span
|
props.span
|
||||||
);
|
);
|
||||||
const spanRow = shallow(<SpanBarRow {...props} span={span} />).dive().dive().dive();
|
const spanRow = shallow(<SpanBarRow {...props} span={span} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
const refButton = spanRow.find(ReferencesButton);
|
const refButton = spanRow.find(ReferencesButton);
|
||||||
expect(refButton.length).toEqual(1);
|
expect(refButton.length).toEqual(1);
|
||||||
expect(refButton.at(0).props().tooltipText).toEqual('This span is referenced by another span');
|
expect(refButton.at(0).props().tooltipText).toEqual('This span is referenced by another span');
|
||||||
@ -158,7 +164,10 @@ describe('<SpanBarRow>', () => {
|
|||||||
},
|
},
|
||||||
props.span
|
props.span
|
||||||
);
|
);
|
||||||
const spanRow = shallow(<SpanBarRow {...props} span={span} />).dive().dive().dive();
|
const spanRow = shallow(<SpanBarRow {...props} span={span} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
const refButton = spanRow.find(ReferencesButton);
|
const refButton = spanRow.find(ReferencesButton);
|
||||||
expect(refButton.length).toEqual(1);
|
expect(refButton.length).toEqual(1);
|
||||||
expect(refButton.at(0).props().tooltipText).toEqual('This span is referenced by multiple other spans');
|
expect(refButton.at(0).props().tooltipText).toEqual('This span is referenced by multiple other spans');
|
||||||
|
@ -19,7 +19,10 @@ import AccordianKeyValues, { KeyValuesSummary } from './AccordianKeyValues';
|
|||||||
import * as markers from './AccordianKeyValues.markers';
|
import * as markers from './AccordianKeyValues.markers';
|
||||||
import KeyValuesTable from './KeyValuesTable';
|
import KeyValuesTable from './KeyValuesTable';
|
||||||
|
|
||||||
const tags = [{ key: 'span.kind', value: 'client' }, { key: 'omg', value: 'mos-def' }];
|
const tags = [
|
||||||
|
{ key: 'span.kind', value: 'client' },
|
||||||
|
{ key: 'omg', value: 'mos-def' },
|
||||||
|
];
|
||||||
|
|
||||||
describe('<KeyValuesSummary>', () => {
|
describe('<KeyValuesSummary>', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
|
@ -24,11 +24,17 @@ describe('<AccordianLogs>', () => {
|
|||||||
const logs = [
|
const logs = [
|
||||||
{
|
{
|
||||||
timestamp: 10,
|
timestamp: 10,
|
||||||
fields: [{ key: 'message', value: 'oh the log message' }, { key: 'something', value: 'else' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the log message' },
|
||||||
|
{ key: 'something', value: 'else' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
timestamp: 20,
|
timestamp: 20,
|
||||||
fields: [{ key: 'message', value: 'oh the next log message' }, { key: 'more', value: 'stuff' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the next log message' },
|
||||||
|
{ key: 'more', value: 'stuff' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
const props = {
|
const props = {
|
||||||
|
@ -112,7 +112,6 @@ describe('<KeyValuesTable>', () => {
|
|||||||
const overlay = shallow(dropdown.prop('overlay'));
|
const overlay = shallow(dropdown.prop('overlay'));
|
||||||
// We have some wrappers here that dynamically inject specific component so we need to traverse a bit
|
// We have some wrappers here that dynamically inject specific component so we need to traverse a bit
|
||||||
// here
|
// here
|
||||||
// eslint-disable-next-line react/prop-types
|
|
||||||
const menu = shallow(overlay.prop('children')({ Menu: ({ children }) => <div>{children}</div> }));
|
const menu = shallow(overlay.prop('children')({ Menu: ({ children }) => <div>{children}</div> }));
|
||||||
const anchors = menu.find(LinkValue);
|
const anchors = menu.find(LinkValue);
|
||||||
expect(anchors).toHaveLength(2);
|
expect(anchors).toHaveLength(2);
|
||||||
|
@ -19,7 +19,10 @@ import TextList from './TextList';
|
|||||||
describe('<TextList>', () => {
|
describe('<TextList>', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
|
|
||||||
const data = [{ key: 'span.kind', value: 'client' }, { key: 'omg', value: 'mos-def' }];
|
const data = [
|
||||||
|
{ key: 'span.kind', value: 'client' },
|
||||||
|
{ key: 'omg', value: 'mos-def' },
|
||||||
|
];
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(<TextList data={data} />);
|
wrapper = shallow(<TextList data={data} />);
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
/* eslint-disable import/first */
|
|
||||||
jest.mock('../utils');
|
jest.mock('../utils');
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
@ -53,11 +52,17 @@ describe('<SpanDetail>', () => {
|
|||||||
span.logs = [
|
span.logs = [
|
||||||
{
|
{
|
||||||
timestamp: 10,
|
timestamp: 10,
|
||||||
fields: [{ key: 'message', value: 'oh the log message' }, { key: 'something', value: 'else' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the log message' },
|
||||||
|
{ key: 'something', value: 'else' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
timestamp: 20,
|
timestamp: 20,
|
||||||
fields: [{ key: 'message', value: 'oh the next log message' }, { key: 'more', value: 'stuff' }],
|
fields: [
|
||||||
|
{ key: 'message', value: 'oh the next log message' },
|
||||||
|
{ key: 'more', value: 'stuff' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -141,9 +146,7 @@ describe('<SpanDetail>', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('renders the process tags', () => {
|
it('renders the process tags', () => {
|
||||||
const target = (
|
const target = <AccordianKeyValues data={span.process.tags} label="Process" isOpen={detailState.isProcessOpen} />;
|
||||||
<AccordianKeyValues data={span.process.tags} label="Process" isOpen={detailState.isProcessOpen} />
|
|
||||||
);
|
|
||||||
expect(wrapper.containsMatchingElement(target)).toBe(true);
|
expect(wrapper.containsMatchingElement(target)).toBe(true);
|
||||||
wrapper.find({ data: span.process.tags }).simulate('toggle');
|
wrapper.find({ data: span.process.tags }).simulate('toggle');
|
||||||
expect(props.processToggle).toHaveBeenLastCalledWith(span.spanID);
|
expect(props.processToggle).toHaveBeenLastCalledWith(span.spanID);
|
||||||
|
@ -48,7 +48,10 @@ describe('<SpanDetailRow>', () => {
|
|||||||
props.logsToggle.mockReset();
|
props.logsToggle.mockReset();
|
||||||
props.processToggle.mockReset();
|
props.processToggle.mockReset();
|
||||||
props.tagsToggle.mockReset();
|
props.tagsToggle.mockReset();
|
||||||
wrapper = shallow(<SpanDetailRow {...props} />).dive().dive().dive();
|
wrapper = shallow(<SpanDetailRow {...props} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders without exploding', () => {
|
it('renders without exploding', () => {
|
||||||
|
@ -19,7 +19,7 @@ import IoIosArrowDown from 'react-icons/lib/io/ios-arrow-down';
|
|||||||
|
|
||||||
import SpanTreeOffset, { getStyles } from './SpanTreeOffset';
|
import SpanTreeOffset, { getStyles } from './SpanTreeOffset';
|
||||||
import spanAncestorIdsSpy from '../utils/span-ancestor-ids';
|
import spanAncestorIdsSpy from '../utils/span-ancestor-ids';
|
||||||
import {defaultTheme} from "../Theme";
|
import { defaultTheme } from '../Theme';
|
||||||
|
|
||||||
jest.mock('../utils/span-ancestor-ids');
|
jest.mock('../utils/span-ancestor-ids');
|
||||||
|
|
||||||
@ -43,13 +43,19 @@ describe('SpanTreeOffset', () => {
|
|||||||
spanID: ownSpanID,
|
spanID: ownSpanID,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
wrapper = shallow(<SpanTreeOffset {...props} />).dive().dive().dive();
|
wrapper = shallow(<SpanTreeOffset {...props} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('.SpanTreeOffset--indentGuide', () => {
|
describe('.SpanTreeOffset--indentGuide', () => {
|
||||||
it('renders only one .SpanTreeOffset--indentGuide for entire trace if span has no ancestors', () => {
|
it('renders only one .SpanTreeOffset--indentGuide for entire trace if span has no ancestors', () => {
|
||||||
spanAncestorIdsSpy.mockReturnValue([]);
|
spanAncestorIdsSpy.mockReturnValue([]);
|
||||||
wrapper = shallow(<SpanTreeOffset {...props} />).dive().dive().dive();
|
wrapper = shallow(<SpanTreeOffset {...props} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
const indentGuides = wrapper.find('[data-test-id="SpanTreeOffset--indentGuide"]');
|
const indentGuides = wrapper.find('[data-test-id="SpanTreeOffset--indentGuide"]');
|
||||||
expect(indentGuides.length).toBe(1);
|
expect(indentGuides.length).toBe(1);
|
||||||
expect(indentGuides.prop('data-ancestor-id')).toBe(specialRootID);
|
expect(indentGuides.prop('data-ancestor-id')).toBe(specialRootID);
|
||||||
@ -65,7 +71,10 @@ describe('SpanTreeOffset', () => {
|
|||||||
|
|
||||||
it('adds .is-active to correct indentGuide', () => {
|
it('adds .is-active to correct indentGuide', () => {
|
||||||
props.hoverIndentGuideIds = new Set([parentSpanID]);
|
props.hoverIndentGuideIds = new Set([parentSpanID]);
|
||||||
wrapper = shallow(<SpanTreeOffset {...props} />).dive().dive().dive();
|
wrapper = shallow(<SpanTreeOffset {...props} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
const styles = getStyles(defaultTheme);
|
const styles = getStyles(defaultTheme);
|
||||||
const activeIndentGuide = wrapper.find(`.${styles.indentGuideActive}`);
|
const activeIndentGuide = wrapper.find(`.${styles.indentGuideActive}`);
|
||||||
expect(activeIndentGuide.length).toBe(1);
|
expect(activeIndentGuide.length).toBe(1);
|
||||||
|
@ -86,12 +86,8 @@ describe('<TimelineColumnResizer>', () => {
|
|||||||
|
|
||||||
it('does not render a dragging indicator when not dragging', () => {
|
it('does not render a dragging indicator when not dragging', () => {
|
||||||
const styles = getStyles();
|
const styles = getStyles();
|
||||||
expect(wrapper.find('[data-test-id="TimelineColumnResizer--dragger"]').prop('style').right).toBe(
|
expect(wrapper.find('[data-test-id="TimelineColumnResizer--dragger"]').prop('style').right).toBe(undefined);
|
||||||
undefined
|
expect(wrapper.find('[data-test-id="TimelineColumnResizer--dragger"]').prop('className')).toBe(styles.dragger);
|
||||||
);
|
|
||||||
expect(wrapper.find('[data-test-id="TimelineColumnResizer--dragger"]').prop('className')).toBe(
|
|
||||||
styles.dragger
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders a dragging indicator when dragging', () => {
|
it('renders a dragging indicator when dragging', () => {
|
||||||
|
@ -159,12 +159,7 @@ describe('<TimelineViewingLayer>', () => {
|
|||||||
.find('[data-test-id="Dragged"]')
|
.find('[data-test-id="Dragged"]')
|
||||||
.prop('className')
|
.prop('className')
|
||||||
.indexOf(
|
.indexOf(
|
||||||
cx(
|
cx(styles.dragged, styles.draggedDraggingLeft, styles.draggedDraggingRight, styles.draggedReframeDrag)
|
||||||
styles.dragged,
|
|
||||||
styles.draggedDraggingLeft,
|
|
||||||
styles.draggedDraggingRight,
|
|
||||||
styles.draggedReframeDrag
|
|
||||||
)
|
|
||||||
) >= 0
|
) >= 0
|
||||||
).toBe(true);
|
).toBe(true);
|
||||||
});
|
});
|
||||||
@ -178,12 +173,7 @@ describe('<TimelineViewingLayer>', () => {
|
|||||||
.find('[data-test-id="Dragged"]')
|
.find('[data-test-id="Dragged"]')
|
||||||
.prop('className')
|
.prop('className')
|
||||||
.indexOf(
|
.indexOf(
|
||||||
cx(
|
cx(styles.dragged, styles.draggedDraggingLeft, styles.draggedDraggingRight, styles.draggedShiftDrag)
|
||||||
styles.dragged,
|
|
||||||
styles.draggedDraggingLeft,
|
|
||||||
styles.draggedDraggingRight,
|
|
||||||
styles.draggedShiftDrag
|
|
||||||
)
|
|
||||||
) >= 0
|
) >= 0
|
||||||
).toBe(true);
|
).toBe(true);
|
||||||
});
|
});
|
||||||
|
@ -49,7 +49,10 @@ describe('<TraceTimelineViewer>', () => {
|
|||||||
let wrapper;
|
let wrapper;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(<TraceTimelineViewer {...props} />).dive().dive().dive();
|
wrapper = shallow(<TraceTimelineViewer {...props} />)
|
||||||
|
.dive()
|
||||||
|
.dive()
|
||||||
|
.dive();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it does not explode', () => {
|
it('it does not explode', () => {
|
||||||
|
@ -85,8 +85,7 @@ describe('TraceTimelineViewer/utils', () => {
|
|||||||
describe('spanContainsErredSpan()', () => {
|
describe('spanContainsErredSpan()', () => {
|
||||||
it('returns true only when a descendant has an error tag', () => {
|
it('returns true only when a descendant has an error tag', () => {
|
||||||
const errorTag = { key: 'error', type: 'bool', value: true };
|
const errorTag = { key: 'error', type: 'bool', value: true };
|
||||||
const getTags = withError =>
|
const getTags = withError => (withError ? traceGenerator.tags().concat(errorTag) : traceGenerator.tags());
|
||||||
withError ? traceGenerator.tags().concat(errorTag) : traceGenerator.tags();
|
|
||||||
|
|
||||||
// Using a string to generate the test spans. Each line results in a span. The
|
// Using a string to generate the test spans. Each line results in a span. The
|
||||||
// left number indicates whether or not the generated span has a descendant
|
// left number indicates whether or not the generated span has a descendant
|
||||||
|
@ -16,12 +16,12 @@ import ease from 'tween-functions';
|
|||||||
|
|
||||||
import { TNil } from './types';
|
import { TNil } from './types';
|
||||||
|
|
||||||
interface ITweenState {
|
interface TweenState {
|
||||||
done: boolean;
|
done: boolean;
|
||||||
value: number;
|
value: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
type TTweenCallback = (state: ITweenState) => void;
|
type TTweenCallback = (state: TweenState) => void;
|
||||||
|
|
||||||
type TTweenOptions = {
|
type TTweenOptions = {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
@ -98,7 +98,7 @@ export default class Tween {
|
|||||||
this.callbackUpdate = undefined;
|
this.callbackUpdate = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
getCurrent(): ITweenState {
|
getCurrent(): TweenState {
|
||||||
const t = Date.now() - this.startTime;
|
const t = Date.now() - this.startTime;
|
||||||
if (t <= 0) {
|
if (t <= 0) {
|
||||||
// still in the delay period
|
// still in the delay period
|
||||||
|
@ -17,7 +17,7 @@ import { shallow } from 'enzyme';
|
|||||||
import debounceMock from 'lodash/debounce';
|
import debounceMock from 'lodash/debounce';
|
||||||
|
|
||||||
import UiFindInput from './UiFindInput';
|
import UiFindInput from './UiFindInput';
|
||||||
import {UIInput} from "../uiElementsContext";
|
import { UIInput } from '../uiElementsContext';
|
||||||
|
|
||||||
jest.mock('lodash/debounce');
|
jest.mock('lodash/debounce');
|
||||||
|
|
||||||
@ -58,8 +58,8 @@ describe('UiFindInput', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('renders props.uiFind when state.ownInputValue is `undefined`', () => {
|
it('renders props.uiFind when state.ownInputValue is `undefined`', () => {
|
||||||
wrapper.setProps({value: uiFind});
|
wrapper.setProps({ value: uiFind });
|
||||||
expect(wrapper.find(UIInput).prop('value')).toBe(uiFind);
|
expect(wrapper.find(UIInput).prop('value')).toBe(uiFind);
|
||||||
});
|
});
|
||||||
})
|
});
|
||||||
});
|
});
|
||||||
|
@ -52,15 +52,14 @@ function getParentSpanId(span, levels) {
|
|||||||
function attachReferences(spans, depth, spansPerLevel) {
|
function attachReferences(spans, depth, spansPerLevel) {
|
||||||
let levels = [[getSpanId(spans[0])]];
|
let levels = [[getSpanId(spans[0])]];
|
||||||
|
|
||||||
const duplicateLevelFilter = currentLevels => span =>
|
const duplicateLevelFilter = currentLevels => span => !currentLevels.find(level => level.indexOf(span.spanID) >= 0);
|
||||||
!currentLevels.find(level => level.indexOf(span.spanID) >= 0);
|
|
||||||
|
|
||||||
while (levels.length < depth) {
|
while (levels.length < depth) {
|
||||||
const remainingSpans = spans.filter(duplicateLevelFilter(levels));
|
const remainingSpans = spans.filter(duplicateLevelFilter(levels));
|
||||||
if (remainingSpans.length <= 0) break;
|
if (remainingSpans.length <= 0) {
|
||||||
const newLevel = chance
|
break;
|
||||||
.pickset(remainingSpans, spansPerLevel || chance.integer({ min: 4, max: 8 }))
|
}
|
||||||
.map(getSpanId);
|
const newLevel = chance.pickset(remainingSpans, spansPerLevel || chance.integer({ min: 4, max: 8 })).map(getSpanId);
|
||||||
levels.push(newLevel);
|
levels.push(newLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,12 +37,16 @@ export default class PathElem {
|
|||||||
result.push(current);
|
result.push(current);
|
||||||
current = current.externalSideNeighbor;
|
current = current.externalSideNeighbor;
|
||||||
}
|
}
|
||||||
if (this.distance < 0) result.reverse();
|
if (this.distance < 0) {
|
||||||
|
result.reverse();
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
get externalSideNeighbor(): PathElem | null | undefined {
|
get externalSideNeighbor(): PathElem | null | undefined {
|
||||||
if (!this.distance) return null;
|
if (!this.distance) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return this.memberOf.members[this.memberIdx + Math.sign(this.distance)];
|
return this.memberOf.members[this.memberIdx + Math.sign(this.distance)];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,12 +57,16 @@ export default class PathElem {
|
|||||||
result.push(current);
|
result.push(current);
|
||||||
current = current.focalSideNeighbor;
|
current = current.focalSideNeighbor;
|
||||||
}
|
}
|
||||||
if (this.distance > 0) result.reverse();
|
if (this.distance > 0) {
|
||||||
|
result.reverse();
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
get focalSideNeighbor(): PathElem | null {
|
get focalSideNeighbor(): PathElem | null {
|
||||||
if (!this.distance) return null;
|
if (!this.distance) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return this.memberOf.members[this.memberIdx - Math.sign(this.distance)];
|
return this.memberOf.members[this.memberIdx - Math.sign(this.distance)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,21 +49,9 @@ export const afterPayloadElem = simplePayloadElemMaker('after');
|
|||||||
export const lastPayloadElem = simplePayloadElemMaker('last');
|
export const lastPayloadElem = simplePayloadElemMaker('last');
|
||||||
|
|
||||||
export const shortPath = [beforePayloadElem, focalPayloadElem];
|
export const shortPath = [beforePayloadElem, focalPayloadElem];
|
||||||
export const simplePath = [
|
export const simplePath = [firstPayloadElem, beforePayloadElem, focalPayloadElem, afterPayloadElem, lastPayloadElem];
|
||||||
firstPayloadElem,
|
|
||||||
beforePayloadElem,
|
|
||||||
focalPayloadElem,
|
|
||||||
afterPayloadElem,
|
|
||||||
lastPayloadElem,
|
|
||||||
];
|
|
||||||
export const longSimplePath = pathLengthener(simplePath);
|
export const longSimplePath = pathLengthener(simplePath);
|
||||||
export const noFocalPath = [
|
export const noFocalPath = [firstPayloadElem, beforePayloadElem, midPayloadElem, afterPayloadElem, lastPayloadElem];
|
||||||
firstPayloadElem,
|
|
||||||
beforePayloadElem,
|
|
||||||
midPayloadElem,
|
|
||||||
afterPayloadElem,
|
|
||||||
lastPayloadElem,
|
|
||||||
];
|
|
||||||
export const doubleFocalPath = [
|
export const doubleFocalPath = [
|
||||||
firstPayloadElem,
|
firstPayloadElem,
|
||||||
beforePayloadElem,
|
beforePayloadElem,
|
||||||
|
@ -151,7 +151,10 @@ describe('createTestFunction()', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('getParameterInArray()', () => {
|
describe('getParameterInArray()', () => {
|
||||||
const data = [{ key: 'mykey', value: 'ok' }, { key: 'otherkey', value: 'v' }];
|
const data = [
|
||||||
|
{ key: 'mykey', value: 'ok' },
|
||||||
|
{ key: 'otherkey', value: 'v' },
|
||||||
|
];
|
||||||
|
|
||||||
it('returns an entry that is present', () => {
|
it('returns an entry that is present', () => {
|
||||||
expect(getParameterInArray('mykey', data)).toBe(data[0]);
|
expect(getParameterInArray('mykey', data)).toBe(data[0]);
|
||||||
@ -224,12 +227,19 @@ describe('getParameterInAncestor()', () => {
|
|||||||
{ key: 'd', value: 'd3' },
|
{ key: 'd', value: 'd3' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
tags: [{ key: 'a', value: 'a2' }, { key: 'b', value: 'b2' }, { key: 'c', value: 'c2' }],
|
tags: [
|
||||||
|
{ key: 'a', value: 'a2' },
|
||||||
|
{ key: 'b', value: 'b2' },
|
||||||
|
{ key: 'c', value: 'c2' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
depth: 2,
|
depth: 2,
|
||||||
process: {
|
process: {
|
||||||
tags: [{ key: 'a', value: 'a1' }, { key: 'b', value: 'b1' }],
|
tags: [
|
||||||
|
{ key: 'a', value: 'a1' },
|
||||||
|
{ key: 'b', value: 'b1' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
tags: [{ key: 'a', value: 'a0' }],
|
tags: [{ key: 'a', value: 'a0' }],
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
/* eslint-disable import/first */
|
|
||||||
jest.mock('./Tween');
|
jest.mock('./Tween');
|
||||||
|
|
||||||
import { scrollBy, scrollTo, cancel } from './scroll-page';
|
import { scrollBy, scrollTo, cancel } from './scroll-page';
|
||||||
|
@ -28,7 +28,7 @@ function _onTweenUpdate({ done, value }: { done: boolean; value: number }) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function scrollBy(yDelta: number, appendToLast: boolean = false) {
|
export function scrollBy(yDelta: number, appendToLast = false) {
|
||||||
const { scrollY } = window;
|
const { scrollY } = window;
|
||||||
let targetFrom = scrollY;
|
let targetFrom = scrollY;
|
||||||
if (appendToLast && lastTween) {
|
if (appendToLast && lastTween) {
|
||||||
|
@ -24,10 +24,7 @@ export const getSpanTimestamp = span => span.startTime;
|
|||||||
export const getSpanProcessId = span => span.processID;
|
export const getSpanProcessId = span => span.processID;
|
||||||
export const getSpanReferences = span => span.references || [];
|
export const getSpanReferences = span => span.references || [];
|
||||||
export const getSpanReferenceByType = createSelector(
|
export const getSpanReferenceByType = createSelector(
|
||||||
createSelector(
|
createSelector(({ span }) => span, getSpanReferences),
|
||||||
({ span }) => span,
|
|
||||||
getSpanReferences
|
|
||||||
),
|
|
||||||
({ type }) => type,
|
({ type }) => type,
|
||||||
(references, type) => references.find(ref => ref.refType === type)
|
(references, type) => references.find(ref => ref.refType === type)
|
||||||
);
|
);
|
||||||
@ -49,10 +46,7 @@ export const getSpanProcess = span => {
|
|||||||
return span.process;
|
return span.process;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getSpanServiceName = createSelector(
|
export const getSpanServiceName = createSelector(getSpanProcess, getProcessServiceName);
|
||||||
getSpanProcess,
|
|
||||||
getProcessServiceName
|
|
||||||
);
|
|
||||||
|
|
||||||
export const filterSpansForTimestamps = createSelector(
|
export const filterSpansForTimestamps = createSelector(
|
||||||
({ spans }) => spans,
|
({ spans }) => spans,
|
||||||
@ -73,16 +67,14 @@ export const filterSpansForText = createSelector(
|
|||||||
.map(({ original }) => original)
|
.map(({ original }) => original)
|
||||||
);
|
);
|
||||||
|
|
||||||
const getTextFilterdSpansAsMap = createSelector(
|
const getTextFilterdSpansAsMap = createSelector(filterSpansForText, matchingSpans =>
|
||||||
filterSpansForText,
|
matchingSpans.reduce(
|
||||||
matchingSpans =>
|
(obj, span) => ({
|
||||||
matchingSpans.reduce(
|
...obj,
|
||||||
(obj, span) => ({
|
[getSpanId(span)]: span,
|
||||||
...obj,
|
}),
|
||||||
[getSpanId(span)]: span,
|
{}
|
||||||
}),
|
)
|
||||||
{}
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export const highlightSpansForTextFilter = createSelector(
|
export const highlightSpansForTextFilter = createSelector(
|
||||||
|
@ -42,9 +42,7 @@ it('getSpanTimestamp() should return the timestamp of the span', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('getSpanReferences() should return the span reference array', () => {
|
it('getSpanReferences() should return the span reference array', () => {
|
||||||
expect(spanSelectors.getSpanReferences(generatedTrace.spans[0])).toEqual(
|
expect(spanSelectors.getSpanReferences(generatedTrace.spans[0])).toEqual(generatedTrace.spans[0].references);
|
||||||
generatedTrace.spans[0].references
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('getSpanReferences() should return empty array for null references', () => {
|
it('getSpanReferences() should return empty array for null references', () => {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
// See https://github.com/jaegertracing/jaeger-ui/issues/115 for details.
|
// See https://github.com/jaegertracing/jaeger-ui/issues/115 for details.
|
||||||
// eslint-disable-next-line import/prefer-default-export
|
|
||||||
export const followsFromRef = {
|
export const followsFromRef = {
|
||||||
processes: {
|
processes: {
|
||||||
p1: {
|
p1: {
|
||||||
|
@ -42,9 +42,8 @@ const getSpanWithProcess = createSelector(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceSpansAsMap = createSelector(
|
export const getTraceSpansAsMap = createSelector(getTraceSpans, spans =>
|
||||||
getTraceSpans,
|
spans.reduce((map, span) => map.set(getSpanId(span), span), new Map())
|
||||||
spans => spans.reduce((map, span) => map.set(getSpanId(span), span), new Map())
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export const TREE_ROOT_ID = '__root__';
|
export const TREE_ROOT_ID = '__root__';
|
||||||
@ -107,32 +106,23 @@ export const hydrateSpansWithProcesses = trace => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getTraceSpanCount = createSelector(
|
export const getTraceSpanCount = createSelector(getTraceSpans, spans => spans.length);
|
||||||
getTraceSpans,
|
|
||||||
spans => spans.length
|
export const getTraceTimestamp = createSelector(getTraceSpans, spans =>
|
||||||
|
spans.reduce(
|
||||||
|
(prevTimestamp, span) => (prevTimestamp ? Math.min(prevTimestamp, getSpanTimestamp(span)) : getSpanTimestamp(span)),
|
||||||
|
null
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceTimestamp = createSelector(
|
export const getTraceDuration = createSelector(getTraceSpans, getTraceTimestamp, (spans, timestamp) =>
|
||||||
getTraceSpans,
|
spans.reduce(
|
||||||
spans =>
|
(prevDuration, span) =>
|
||||||
spans.reduce(
|
prevDuration
|
||||||
(prevTimestamp, span) =>
|
? Math.max(getSpanTimestamp(span) - timestamp + getSpanDuration(span), prevDuration)
|
||||||
prevTimestamp ? Math.min(prevTimestamp, getSpanTimestamp(span)) : getSpanTimestamp(span),
|
: getSpanDuration(span),
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
);
|
|
||||||
|
|
||||||
export const getTraceDuration = createSelector(
|
|
||||||
getTraceSpans,
|
|
||||||
getTraceTimestamp,
|
|
||||||
(spans, timestamp) =>
|
|
||||||
spans.reduce(
|
|
||||||
(prevDuration, span) =>
|
|
||||||
prevDuration
|
|
||||||
? Math.max(getSpanTimestamp(span) - timestamp + getSpanDuration(span), prevDuration)
|
|
||||||
: getSpanDuration(span),
|
|
||||||
null
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceEndTimestamp = createSelector(
|
export const getTraceEndTimestamp = createSelector(
|
||||||
@ -150,36 +140,22 @@ export const getParentSpan = createSelector(
|
|||||||
.sort((spanA, spanB) => numberSortComparator(getSpanTimestamp(spanA), getSpanTimestamp(spanB)))[0]
|
.sort((spanA, spanB) => numberSortComparator(getSpanTimestamp(spanA), getSpanTimestamp(spanB)))[0]
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceDepth = createSelector(
|
export const getTraceDepth = createSelector(getTraceSpanIdsAsTree, spanTree => spanTree.depth - 1);
|
||||||
getTraceSpanIdsAsTree,
|
|
||||||
spanTree => spanTree.depth - 1
|
|
||||||
);
|
|
||||||
|
|
||||||
export const getSpanDepthForTrace = createSelector(
|
export const getSpanDepthForTrace = createSelector(
|
||||||
createSelector(
|
createSelector(state => state.trace, getTraceSpanIdsAsTree),
|
||||||
state => state.trace,
|
createSelector(state => state.span, getSpanId),
|
||||||
getTraceSpanIdsAsTree
|
|
||||||
),
|
|
||||||
createSelector(
|
|
||||||
state => state.span,
|
|
||||||
getSpanId
|
|
||||||
),
|
|
||||||
(node, spanID) => node.getPath(spanID).length - 1
|
(node, spanID) => node.getPath(spanID).length - 1
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceServices = createSelector(
|
export const getTraceServices = createSelector(getTraceProcesses, processes =>
|
||||||
getTraceProcesses,
|
Object.keys(processes).reduce(
|
||||||
processes =>
|
(services, processID) => services.add(getProcessServiceName(processes[processID])),
|
||||||
Object.keys(processes).reduce(
|
new Set()
|
||||||
(services, processID) => services.add(getProcessServiceName(processes[processID])),
|
)
|
||||||
new Set()
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceServiceCount = createSelector(
|
export const getTraceServiceCount = createSelector(getTraceServices, services => services.size);
|
||||||
getTraceServices,
|
|
||||||
services => services.size
|
|
||||||
);
|
|
||||||
|
|
||||||
// establish constants to determine how math should be handled
|
// establish constants to determine how math should be handled
|
||||||
// for nanosecond-to-millisecond conversions.
|
// for nanosecond-to-millisecond conversions.
|
||||||
@ -188,9 +164,8 @@ export const DURATION_FORMATTERS = {
|
|||||||
s: formatSecondTime,
|
s: formatSecondTime,
|
||||||
};
|
};
|
||||||
|
|
||||||
const getDurationFormatterForTrace = createSelector(
|
const getDurationFormatterForTrace = createSelector(getTraceDuration, totalDuration =>
|
||||||
getTraceDuration,
|
totalDuration >= ONE_SECOND ? DURATION_FORMATTERS.s : DURATION_FORMATTERS.ms
|
||||||
totalDuration => (totalDuration >= ONE_SECOND ? DURATION_FORMATTERS.s : DURATION_FORMATTERS.ms)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
export const formatDurationForUnit = createSelector(
|
export const formatDurationForUnit = createSelector(
|
||||||
@ -201,10 +176,7 @@ export const formatDurationForUnit = createSelector(
|
|||||||
|
|
||||||
export const formatDurationForTrace = createSelector(
|
export const formatDurationForTrace = createSelector(
|
||||||
({ duration }) => duration,
|
({ duration }) => duration,
|
||||||
createSelector(
|
createSelector(({ trace }) => trace, getDurationFormatterForTrace),
|
||||||
({ trace }) => trace,
|
|
||||||
getDurationFormatterForTrace
|
|
||||||
),
|
|
||||||
(duration, formatter) => formatter(duration)
|
(duration, formatter) => formatter(duration)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -216,25 +188,16 @@ export const getSortedSpans = createSelector(
|
|||||||
[...spans].sort((spanA, spanB) => dir * comparator(selector(spanA, trace), selector(spanB, trace)))
|
[...spans].sort((spanA, spanB) => dir * comparator(selector(spanA, trace), selector(spanB, trace)))
|
||||||
);
|
);
|
||||||
|
|
||||||
const getTraceSpansByHierarchyPosition = createSelector(
|
const getTraceSpansByHierarchyPosition = createSelector(getTraceSpanIdsAsTree, tree => {
|
||||||
getTraceSpanIdsAsTree,
|
const hierarchyPositionMap = new Map();
|
||||||
tree => {
|
let i = 0;
|
||||||
const hierarchyPositionMap = new Map();
|
tree.walk(spanID => hierarchyPositionMap.set(spanID, i++));
|
||||||
let i = 0;
|
return hierarchyPositionMap;
|
||||||
tree.walk(spanID => hierarchyPositionMap.set(spanID, i++));
|
});
|
||||||
return hierarchyPositionMap;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
export const getTreeSizeForTraceSpan = createSelector(
|
export const getTreeSizeForTraceSpan = createSelector(
|
||||||
createSelector(
|
createSelector(state => state.trace, getTraceSpanIdsAsTree),
|
||||||
state => state.trace,
|
createSelector(state => state.span, getSpanId),
|
||||||
getTraceSpanIdsAsTree
|
|
||||||
),
|
|
||||||
createSelector(
|
|
||||||
state => state.span,
|
|
||||||
getSpanId
|
|
||||||
),
|
|
||||||
(tree, spanID) => {
|
(tree, spanID) => {
|
||||||
const node = tree.find(spanID);
|
const node = tree.find(spanID);
|
||||||
if (!node) {
|
if (!node) {
|
||||||
@ -245,20 +208,14 @@ export const getTreeSizeForTraceSpan = createSelector(
|
|||||||
);
|
);
|
||||||
|
|
||||||
export const getSpanHierarchySortPositionForTrace = createSelector(
|
export const getSpanHierarchySortPositionForTrace = createSelector(
|
||||||
createSelector(
|
createSelector(({ trace }) => trace, getTraceSpansByHierarchyPosition),
|
||||||
({ trace }) => trace,
|
|
||||||
getTraceSpansByHierarchyPosition
|
|
||||||
),
|
|
||||||
({ span }) => span,
|
({ span }) => span,
|
||||||
(hierarchyPositionMap, span) => hierarchyPositionMap.get(getSpanId(span))
|
(hierarchyPositionMap, span) => hierarchyPositionMap.get(getSpanId(span))
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getTraceName = createSelector(
|
export const getTraceName = createSelector(
|
||||||
createSelector(
|
createSelector(
|
||||||
createSelector(
|
createSelector(hydrateSpansWithProcesses, getParentSpan),
|
||||||
hydrateSpansWithProcesses,
|
|
||||||
getParentSpan
|
|
||||||
),
|
|
||||||
createStructuredSelector({
|
createStructuredSelector({
|
||||||
name: getSpanName,
|
name: getSpanName,
|
||||||
serviceName: getSpanServiceName,
|
serviceName: getSpanServiceName,
|
||||||
@ -269,10 +226,7 @@ export const getTraceName = createSelector(
|
|||||||
|
|
||||||
export const omitCollapsedSpans = createSelector(
|
export const omitCollapsedSpans = createSelector(
|
||||||
({ spans }) => spans,
|
({ spans }) => spans,
|
||||||
createSelector(
|
createSelector(({ trace }) => trace, getTraceSpanIdsAsTree),
|
||||||
({ trace }) => trace,
|
|
||||||
getTraceSpanIdsAsTree
|
|
||||||
),
|
|
||||||
({ collapsed }) => collapsed,
|
({ collapsed }) => collapsed,
|
||||||
(spans, tree, collapse) => {
|
(spans, tree, collapse) => {
|
||||||
const hiddenSpanIds = collapse.reduce((result, collapsedSpanId) => {
|
const hiddenSpanIds = collapse.reduce((result, collapsedSpanId) => {
|
||||||
@ -313,9 +267,7 @@ export const enforceUniqueSpanIds = createSelector(
|
|||||||
return {
|
return {
|
||||||
...trace,
|
...trace,
|
||||||
spans: spans.reduce((result, span) => {
|
spans: spans.reduce((result, span) => {
|
||||||
const spanID = map.has(getSpanId(span))
|
const spanID = map.has(getSpanId(span)) ? `${getSpanId(span)}_${map.get(getSpanId(span))}` : getSpanId(span);
|
||||||
? `${getSpanId(span)}_${map.get(getSpanId(span))}`
|
|
||||||
: getSpanId(span);
|
|
||||||
const updatedSpan = { ...span, spanID };
|
const updatedSpan = { ...span, spanID };
|
||||||
|
|
||||||
if (spanID !== getSpanId(span)) {
|
if (spanID !== getSpanId(span)) {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
export type ApiError = // eslint-disable-line import/prefer-default-export
|
export type ApiError =
|
||||||
| string
|
| string
|
||||||
| {
|
| {
|
||||||
message: string;
|
message: string;
|
||||||
|
@ -41,15 +41,15 @@ export type Config = {
|
|||||||
archiveEnabled?: boolean;
|
archiveEnabled?: boolean;
|
||||||
deepDependencies?: { menuEnabled?: boolean };
|
deepDependencies?: { menuEnabled?: boolean };
|
||||||
dependencies?: { dagMaxServicesLen?: number; menuEnabled?: boolean };
|
dependencies?: { dagMaxServicesLen?: number; menuEnabled?: boolean };
|
||||||
menu: (ConfigMenuGroup | ConfigMenuItem)[];
|
menu: Array<ConfigMenuGroup | ConfigMenuItem>;
|
||||||
search?: { maxLookback: { label: string; value: string }; maxLimit: number };
|
search?: { maxLookback: { label: string; value: string }; maxLimit: number };
|
||||||
scripts?: TScript[];
|
scripts?: TScript[];
|
||||||
topTagPrefixes?: string[];
|
topTagPrefixes?: string[];
|
||||||
tracking?: {
|
tracking?: {
|
||||||
cookieToDimension?: {
|
cookieToDimension?: Array<{
|
||||||
cookie: string;
|
cookie: string;
|
||||||
dimension: string;
|
dimension: string;
|
||||||
}[];
|
}>;
|
||||||
gaID: string | TNil;
|
gaID: string | TNil;
|
||||||
trackErrors: boolean | TNil;
|
trackErrors: boolean | TNil;
|
||||||
};
|
};
|
||||||
|
@ -22,4 +22,4 @@ type EmbeddedStateV0 = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export type EmbeddedState = EmbeddedStateV0; // eslint-disable-line import/prefer-default-export
|
export type EmbeddedState = EmbeddedStateV0;
|
||||||
|
@ -42,7 +42,7 @@ export type TraceSummary = {
|
|||||||
traceID: string;
|
traceID: string;
|
||||||
numberOfErredSpans: number;
|
numberOfErredSpans: number;
|
||||||
numberOfSpans: number;
|
numberOfSpans: number;
|
||||||
services: { name: string; numberOfSpans: number }[];
|
services: Array<{ name: string; numberOfSpans: number }>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TraceSummaries = {
|
export type TraceSummaries = {
|
||||||
|
@ -174,9 +174,7 @@ describe('DraggableManager', () => {
|
|||||||
const { type, handler, callback, updateType } = testCase;
|
const { type, handler, callback, updateType } = testCase;
|
||||||
const event = { ...baseMouseEvt, type };
|
const event = { ...baseMouseEvt, type };
|
||||||
handler(event);
|
handler(event);
|
||||||
expect(callback.mock.calls).toEqual([
|
expect(callback.mock.calls).toEqual([[{ event, tag, value, x, manager: instance, type: updateType }]]);
|
||||||
[{ event, tag, value, x, manager: instance, type: updateType }],
|
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -294,9 +292,7 @@ describe('DraggableManager', () => {
|
|||||||
const { type, handler, callback, updateType } = testCase;
|
const { type, handler, callback, updateType } = testCase;
|
||||||
const event = { ...baseMouseEvt, type };
|
const event = { ...baseMouseEvt, type };
|
||||||
handler(event);
|
handler(event);
|
||||||
expect(callback.mock.calls).toEqual([
|
expect(callback.mock.calls).toEqual([[{ event, tag, value, x, manager: instance, type: updateType }]]);
|
||||||
[{ event, tag, value, x, manager: instance, type: updateType }],
|
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
import moment from 'moment';
|
import moment from 'moment-timezone';
|
||||||
import _round from 'lodash/round';
|
import _round from 'lodash/round';
|
||||||
|
|
||||||
import { toFloatPrecision } from './number';
|
import { toFloatPrecision } from './number';
|
||||||
|
@ -84,9 +84,7 @@ it('createSortClickHandler() should return a function', () => {
|
|||||||
const currentSortDir = 1;
|
const currentSortDir = 1;
|
||||||
const updateSort = sinon.spy();
|
const updateSort = sinon.spy();
|
||||||
|
|
||||||
expect(typeof sortUtils.createSortClickHandler(column, currentSortKey, currentSortDir, updateSort)).toBe(
|
expect(typeof sortUtils.createSortClickHandler(column, currentSortKey, currentSortDir, updateSort)).toBe('function');
|
||||||
'function'
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('createSortClickHandler() should call updateSort with the new sort vals', () => {
|
it('createSortClickHandler() should call updateSort with the new sort vals', () => {
|
||||||
|
15
packages/jaeger-ui-components/typings/index.d.ts
vendored
15
packages/jaeger-ui-components/typings/index.d.ts
vendored
@ -1,15 +0,0 @@
|
|||||||
// Copyright (c) 2019 Uber Technologies, Inc.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
/// <reference path="custom.d.ts" />
|
|
@ -13,8 +13,6 @@ import { VariableRefresh } from '../types';
|
|||||||
import { updateVariableOptions } from '../query/reducer';
|
import { updateVariableOptions } from '../query/reducer';
|
||||||
import { customBuilder, queryBuilder } from '../shared/testing/builders';
|
import { customBuilder, queryBuilder } from '../shared/testing/builders';
|
||||||
|
|
||||||
'../shared/testing/builders';
|
|
||||||
|
|
||||||
jest.mock('app/features/dashboard/services/TimeSrv', () => ({
|
jest.mock('app/features/dashboard/services/TimeSrv', () => ({
|
||||||
getTimeSrv: jest.fn().mockReturnValue({
|
getTimeSrv: jest.fn().mockReturnValue({
|
||||||
timeRange: jest.fn().mockReturnValue({
|
timeRange: jest.fn().mockReturnValue({
|
||||||
|
@ -120,7 +120,7 @@ export const formatCloudMonitoringError = (error: any) => {
|
|||||||
try {
|
try {
|
||||||
message = JSON.parse(error.data.message).error.message;
|
message = JSON.parse(error.data.message).error.message;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
error.error;
|
error.error = err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return message;
|
return message;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// Generated from ScrollQLParser.g4 by ANTLR 4.8
|
// Generated from ScrollQLParser.g4 by ANTLR 4.8
|
||||||
|
/* eslint-disable */
|
||||||
// jshint ignore: start
|
// jshint ignore: start
|
||||||
// @ts-nocheck
|
// @ts-nocheck
|
||||||
var antlr4 = require('antlr4/index');
|
var antlr4 = require('antlr4/index');
|
||||||
|
@ -24,6 +24,6 @@ export interface SetupStep {
|
|||||||
subheading: string;
|
subheading: string;
|
||||||
title: string;
|
title: string;
|
||||||
info: string;
|
info: string;
|
||||||
cards: (Card | TutorialCardType)[];
|
cards: Array<Card | TutorialCardType>;
|
||||||
done: boolean;
|
done: boolean;
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,12 @@ var window, document, ARGS, $, jQuery, moment, kbn;
|
|||||||
var dashboard;
|
var dashboard;
|
||||||
|
|
||||||
// All url parameters are available via the ARGS object
|
// All url parameters are available via the ARGS object
|
||||||
|
// eslint-disable-next-line no-redeclare
|
||||||
var ARGS;
|
var ARGS;
|
||||||
|
|
||||||
// Initialize a skeleton with nothing but a rows array and service object
|
// Initialize a skeleton with nothing but a rows array and service object
|
||||||
dashboard = {
|
dashboard = {
|
||||||
rows : [],
|
rows: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set a title
|
// Set a title
|
||||||
@ -34,23 +35,22 @@ dashboard.title = 'Scripted dash';
|
|||||||
// time can be overridden in the url using from/to parameters, but this is
|
// time can be overridden in the url using from/to parameters, but this is
|
||||||
// handled automatically in grafana core during dashboard initialization
|
// handled automatically in grafana core during dashboard initialization
|
||||||
dashboard.time = {
|
dashboard.time = {
|
||||||
from: "now-6h",
|
from: 'now-6h',
|
||||||
to: "now"
|
to: 'now',
|
||||||
};
|
};
|
||||||
|
|
||||||
var rows = 1;
|
var rows = 1;
|
||||||
var seriesName = 'argName';
|
var seriesName = 'argName';
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.rows)) {
|
if (!_.isUndefined(ARGS.rows)) {
|
||||||
rows = parseInt(ARGS.rows, 10);
|
rows = parseInt(ARGS.rows, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.name)) {
|
if (!_.isUndefined(ARGS.name)) {
|
||||||
seriesName = ARGS.name;
|
seriesName = ARGS.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < rows; i++) {
|
for (var i = 0; i < rows; i++) {
|
||||||
|
|
||||||
dashboard.rows.push({
|
dashboard.rows.push({
|
||||||
title: 'Chart',
|
title: 'Chart',
|
||||||
height: '300px',
|
height: '300px',
|
||||||
@ -63,27 +63,26 @@ for (var i = 0; i < rows; i++) {
|
|||||||
linewidth: 2,
|
linewidth: 2,
|
||||||
targets: [
|
targets: [
|
||||||
{
|
{
|
||||||
'target': "randomWalk('" + seriesName + "')"
|
target: "randomWalk('" + seriesName + "')",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'target': "randomWalk('random walk2')"
|
target: "randomWalk('random walk2')",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
seriesOverrides: [
|
seriesOverrides: [
|
||||||
{
|
{
|
||||||
alias: '/random/',
|
alias: '/random/',
|
||||||
yaxis: 2,
|
yaxis: 2,
|
||||||
fill: 0,
|
fill: 0,
|
||||||
linewidth: 5
|
linewidth: 5,
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
tooltip: {
|
tooltip: {
|
||||||
shared: true
|
shared: true,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return dashboard;
|
return dashboard;
|
||||||
|
@ -20,14 +20,13 @@
|
|||||||
var window, document, ARGS, $, jQuery, moment, kbn;
|
var window, document, ARGS, $, jQuery, moment, kbn;
|
||||||
|
|
||||||
return function(callback) {
|
return function(callback) {
|
||||||
|
|
||||||
// Setup some variables
|
// Setup some variables
|
||||||
var dashboard;
|
var dashboard;
|
||||||
|
|
||||||
// Initialize a skeleton with nothing but a rows array and service object
|
// Initialize a skeleton with nothing but a rows array and service object
|
||||||
dashboard = {
|
dashboard = {
|
||||||
rows : [],
|
rows: [],
|
||||||
services : {}
|
services: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set a title
|
// Set a title
|
||||||
@ -37,27 +36,25 @@ return function(callback) {
|
|||||||
// time can be overridden in the url using from/to parameters, but this is
|
// time can be overridden in the url using from/to parameters, but this is
|
||||||
// handled automatically in grafana core during dashboard initialization
|
// handled automatically in grafana core during dashboard initialization
|
||||||
dashboard.time = {
|
dashboard.time = {
|
||||||
from: "now-6h",
|
from: 'now-6h',
|
||||||
to: "now"
|
to: 'now',
|
||||||
};
|
};
|
||||||
|
|
||||||
var rows = 1;
|
var rows = 1;
|
||||||
var seriesName = 'argName';
|
var seriesName = 'argName';
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.rows)) {
|
if (!_.isUndefined(ARGS.rows)) {
|
||||||
rows = parseInt(ARGS.rows, 10);
|
rows = parseInt(ARGS.rows, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.name)) {
|
if (!_.isUndefined(ARGS.name)) {
|
||||||
seriesName = ARGS.name;
|
seriesName = ARGS.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/'
|
url: '/',
|
||||||
})
|
}).done(function(result) {
|
||||||
.done(function(result) {
|
|
||||||
|
|
||||||
dashboard.rows.push({
|
dashboard.rows.push({
|
||||||
title: 'Chart',
|
title: 'Chart',
|
||||||
height: '300px',
|
height: '300px',
|
||||||
@ -67,14 +64,13 @@ return function(callback) {
|
|||||||
type: 'text',
|
type: 'text',
|
||||||
span: 12,
|
span: 12,
|
||||||
fill: 1,
|
fill: 1,
|
||||||
content: '# Async test'
|
content: '# Async test',
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
// when dashboard is composed call the callback
|
// when dashboard is composed call the callback
|
||||||
// function and pass the dashboard
|
// function and pass the dashboard
|
||||||
callback(dashboard);
|
callback(dashboard);
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
@ -20,15 +20,15 @@ var window, document, ARGS, $, jQuery, moment, kbn;
|
|||||||
var dashboard;
|
var dashboard;
|
||||||
|
|
||||||
// All url parameters are available via the ARGS object
|
// All url parameters are available via the ARGS object
|
||||||
|
// eslint-disable-next-line no-redeclare
|
||||||
var ARGS;
|
var ARGS;
|
||||||
|
|
||||||
// Initialize a skeleton with nothing but a rows array and service object
|
// Initialize a skeleton with nothing but a rows array and service object
|
||||||
dashboard = {
|
dashboard = {
|
||||||
rows : [],
|
rows: [],
|
||||||
schemaVersion: 13,
|
schemaVersion: 13,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Set a title
|
// Set a title
|
||||||
dashboard.title = 'Scripted and templated dash';
|
dashboard.title = 'Scripted and templated dash';
|
||||||
|
|
||||||
@ -36,8 +36,8 @@ dashboard.title = 'Scripted and templated dash';
|
|||||||
// time can be overridden in the url using from/to parameters, but this is
|
// time can be overridden in the url using from/to parameters, but this is
|
||||||
// handled automatically in grafana core during dashboard initialization
|
// handled automatically in grafana core during dashboard initialization
|
||||||
dashboard.time = {
|
dashboard.time = {
|
||||||
from: "now-6h",
|
from: 'now-6h',
|
||||||
to: "now"
|
to: 'now',
|
||||||
};
|
};
|
||||||
|
|
||||||
dashboard.templating = {
|
dashboard.templating = {
|
||||||
@ -57,23 +57,22 @@ dashboard.templating = {
|
|||||||
type: 'query',
|
type: 'query',
|
||||||
datasource: null,
|
datasource: null,
|
||||||
hide: 2,
|
hide: 2,
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
var rows = 1;
|
var rows = 1;
|
||||||
var seriesName = 'argName';
|
var seriesName = 'argName';
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.rows)) {
|
if (!_.isUndefined(ARGS.rows)) {
|
||||||
rows = parseInt(ARGS.rows, 10);
|
rows = parseInt(ARGS.rows, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_.isUndefined(ARGS.name)) {
|
if (!_.isUndefined(ARGS.name)) {
|
||||||
seriesName = ARGS.name;
|
seriesName = ARGS.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < rows; i++) {
|
for (var i = 0; i < rows; i++) {
|
||||||
|
|
||||||
dashboard.rows.push({
|
dashboard.rows.push({
|
||||||
title: 'Chart',
|
title: 'Chart',
|
||||||
height: '300px',
|
height: '300px',
|
||||||
@ -86,16 +85,15 @@ for (var i = 0; i < rows; i++) {
|
|||||||
linewidth: 2,
|
linewidth: 2,
|
||||||
targets: [
|
targets: [
|
||||||
{
|
{
|
||||||
'target': "randomWalk('" + seriesName + "')"
|
target: "randomWalk('" + seriesName + "')",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'target': "randomWalk('[[test2]]')"
|
target: "randomWalk('[[test2]]')",
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return dashboard;
|
return dashboard;
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
|
|
||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
// Concat and Minify the src directory into dist
|
// Concat and Minify the src directory into dist
|
||||||
grunt.registerTask('build', [
|
grunt.registerTask('build', ['clean:release', 'clean:build', 'exec:webpack']);
|
||||||
'clean:release',
|
|
||||||
'clean:build',
|
|
||||||
'exec:webpack',
|
|
||||||
]);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -19,8 +19,7 @@ module.exports = function(grunt) {
|
|||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
grunt.registerTask('eslint', [
|
grunt.registerTask('eslint', [
|
||||||
'newer:exec:eslintPackages',
|
'newer:exec:eslint'
|
||||||
'newer:exec:eslintRoot'
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
|
@ -5,7 +5,6 @@ module.exports = function(config) {
|
|||||||
release: ['<%= destDir %>', '<%= tempDir %>', '<%= genDir %>'],
|
release: ['<%= destDir %>', '<%= tempDir %>', '<%= genDir %>'],
|
||||||
build: ['<%= srcDir %>/build'],
|
build: ['<%= srcDir %>/build'],
|
||||||
temp: ['<%= tempDir %>'],
|
temp: ['<%= tempDir %>'],
|
||||||
packaging: [
|
packaging: [],
|
||||||
],
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -4,9 +4,10 @@ module.exports = function(config) {
|
|||||||
var task = {
|
var task = {
|
||||||
release: {
|
release: {
|
||||||
options: {
|
options: {
|
||||||
archive: '<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>.tar.gz'
|
archive:
|
||||||
|
'<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>.tar.gz',
|
||||||
},
|
},
|
||||||
files : [
|
files: [
|
||||||
{
|
{
|
||||||
expand: true,
|
expand: true,
|
||||||
cwd: '<%= tempDir %>',
|
cwd: '<%= tempDir %>',
|
||||||
@ -17,13 +18,14 @@ module.exports = function(config) {
|
|||||||
expand: true,
|
expand: true,
|
||||||
src: ['LICENSE', 'README.md', 'NOTICE.md'],
|
src: ['LICENSE', 'README.md', 'NOTICE.md'],
|
||||||
dest: '<%= pkg.name %>-<%= pkg.version %>/',
|
dest: '<%= pkg.name %>-<%= pkg.version %>/',
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (config.platform === 'windows') {
|
if (config.platform === 'windows') {
|
||||||
task.release.options.archive = '<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %>.zip';
|
task.release.options.archive =
|
||||||
|
'<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %>.zip';
|
||||||
}
|
}
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
|
@ -2,10 +2,7 @@ module.exports = function(config, grunt) {
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
eslintPackages: {
|
eslint: {
|
||||||
command: 'yarn packages:lint',
|
|
||||||
},
|
|
||||||
eslintRoot: {
|
|
||||||
command: 'yarn lint',
|
command: 'yarn lint',
|
||||||
},
|
},
|
||||||
typecheckPackages: {
|
typecheckPackages: {
|
||||||
|
@ -4,10 +4,6 @@ module.exports = function(config) {
|
|||||||
options: {
|
options: {
|
||||||
configFile: 'public/sass/.sass-lint.yml',
|
configFile: 'public/sass/.sass-lint.yml',
|
||||||
},
|
},
|
||||||
src: [
|
src: ['public/sass/**/*.scss', 'packages/**/*.scss', '!**/node_modules/**/*.scss'],
|
||||||
'public/sass/**/*.scss',
|
|
||||||
'packages/**/*.scss',
|
|
||||||
'!**/node_modules/**/*.scss'
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,6 +8,6 @@ module.exports = function() {
|
|||||||
stats: false,
|
stats: false,
|
||||||
},
|
},
|
||||||
dev: dev,
|
dev: dev,
|
||||||
prod: prod
|
prod: prod,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,21 +1,13 @@
|
|||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
// build then zip
|
// build then zip
|
||||||
grunt.registerTask('release', [
|
grunt.registerTask('release', ['build', 'build-post-process', 'compress:release']);
|
||||||
'build',
|
|
||||||
'build-post-process',
|
|
||||||
'compress:release'
|
|
||||||
]);
|
|
||||||
|
|
||||||
// package into archives
|
// package into archives
|
||||||
grunt.registerTask('package', [
|
grunt.registerTask('package', ['clean:temp', 'build-post-process', 'compress:release']);
|
||||||
'clean:temp',
|
|
||||||
'build-post-process',
|
|
||||||
'compress:release'
|
|
||||||
]);
|
|
||||||
|
|
||||||
grunt.registerTask('build-post-process', function() {
|
grunt.registerTask('build-post-process', function() {
|
||||||
grunt.config('copy.public_to_temp', {
|
grunt.config('copy.public_to_temp', {
|
||||||
@ -28,14 +20,14 @@ module.exports = function(grunt) {
|
|||||||
cwd: 'bin/<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>',
|
cwd: 'bin/<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>',
|
||||||
expand: true,
|
expand: true,
|
||||||
src: ['*'],
|
src: ['*'],
|
||||||
options: { mode: true},
|
options: { mode: true },
|
||||||
dest: '<%= tempDir %>/bin/'
|
dest: '<%= tempDir %>/bin/',
|
||||||
});
|
});
|
||||||
grunt.config('copy.backend_files', {
|
grunt.config('copy.backend_files', {
|
||||||
expand: true,
|
expand: true,
|
||||||
src: ['conf/**', 'tools/**', 'scripts/*'],
|
src: ['conf/**', 'tools/**', 'scripts/*'],
|
||||||
options: { mode: true},
|
options: { mode: true },
|
||||||
dest: '<%= tempDir %>'
|
dest: '<%= tempDir %>',
|
||||||
});
|
});
|
||||||
|
|
||||||
grunt.task.run('copy:public_to_temp');
|
grunt.task.run('copy:public_to_temp');
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
function escapeRegExp(str) {
|
function escapeRegExp(str) {
|
||||||
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
|
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
|
||||||
}
|
}
|
||||||
|
|
||||||
function extractColour(line) {
|
function extractColour(line) {
|
||||||
@ -12,8 +12,8 @@ module.exports = function(grunt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function extractVariable(line) {
|
function extractVariable(line) {
|
||||||
var matches = line.match(/(\$[0-9a-zA-Z_-]+)\s*(!default|!default;)?/)
|
var matches = line.match(/(\$[0-9a-zA-Z_-]+)\s*(!default|!default;)?/);
|
||||||
return matches ? matches[1] : matches
|
return matches ? matches[1] : matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
function readVars(file, obj) {
|
function readVars(file, obj) {
|
||||||
@ -33,7 +33,8 @@ module.exports = function(grunt) {
|
|||||||
|
|
||||||
grunt.registerTask('styleguide', function() {
|
grunt.registerTask('styleguide', function() {
|
||||||
var data = {
|
var data = {
|
||||||
dark: {}, light: {}
|
dark: {},
|
||||||
|
light: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
readVars('public/sass/_variables.dark.scss', data.dark);
|
readVars('public/sass/_variables.dark.scss', data.dark);
|
||||||
@ -41,7 +42,5 @@ module.exports = function(grunt) {
|
|||||||
|
|
||||||
var styleGuideJson = grunt.config().srcDir + '/build/styleguide.json';
|
var styleGuideJson = grunt.config().srcDir + '/build/styleguide.json';
|
||||||
grunt.file.write(styleGuideJson, JSON.stringify(data, null, 4));
|
grunt.file.write(styleGuideJson, JSON.stringify(data, null, 4));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -2,5 +2,7 @@ const loaderUtils = require('loader-utils');
|
|||||||
|
|
||||||
module.exports = function blobUrl(source) {
|
module.exports = function blobUrl(source) {
|
||||||
const { type } = loaderUtils.getOptions(this) || {};
|
const { type } = loaderUtils.getOptions(this) || {};
|
||||||
return `module.exports = URL.createObjectURL(new Blob([${JSON.stringify(source)}]${type ? `, { type: ${JSON.stringify(type)} }` : ''}));`;
|
return `module.exports = URL.createObjectURL(new Blob([${JSON.stringify(source)}]${
|
||||||
|
type ? `, { type: ${JSON.stringify(type)} }` : ''
|
||||||
|
}));`;
|
||||||
};
|
};
|
||||||
|
@ -40,7 +40,7 @@ module.exports.pitch = function pitch(remainingRequest) {
|
|||||||
// https://github.com/webpack/webpack/blob/master/lib/WebpackOptionsApply.js
|
// https://github.com/webpack/webpack/blob/master/lib/WebpackOptionsApply.js
|
||||||
new WebWorkerTemplatePlugin(outputOptions),
|
new WebWorkerTemplatePlugin(outputOptions),
|
||||||
new LoaderTargetPlugin('webworker'),
|
new LoaderTargetPlugin('webworker'),
|
||||||
...((this.target === 'web') || (this.target === 'webworker') ? [] : [new NodeTargetPlugin()]),
|
...(this.target === 'web' || this.target === 'webworker' ? [] : [new NodeTargetPlugin()]),
|
||||||
|
|
||||||
// https://github.com/webpack-contrib/worker-loader/issues/95#issuecomment-352856617
|
// https://github.com/webpack-contrib/worker-loader/issues/95#issuecomment-352856617
|
||||||
...(compilerOptions.externals ? [new ExternalsPlugin(compilerOptions.externals)] : []),
|
...(compilerOptions.externals ? [new ExternalsPlugin(compilerOptions.externals)] : []),
|
||||||
@ -52,19 +52,29 @@ module.exports.pitch = function pitch(remainingRequest) {
|
|||||||
|
|
||||||
const subCache = `subcache ${__dirname} ${remainingRequest}`;
|
const subCache = `subcache ${__dirname} ${remainingRequest}`;
|
||||||
|
|
||||||
childCompiler.plugin('compilation', (compilation) => {
|
childCompiler.plugin('compilation', compilation => {
|
||||||
if (!compilation.cache) { return; }
|
if (!compilation.cache) {
|
||||||
if (!(subCache in compilation.cache)) { Object.assign(compilation.cache, { [subCache]: {} }); }
|
return;
|
||||||
|
}
|
||||||
|
if (!(subCache in compilation.cache)) {
|
||||||
|
Object.assign(compilation.cache, { [subCache]: {} });
|
||||||
|
}
|
||||||
Object.assign(compilation, { cache: compilation.cache[subCache] });
|
Object.assign(compilation, { cache: compilation.cache[subCache] });
|
||||||
});
|
});
|
||||||
|
|
||||||
const callback = this.async();
|
const callback = this.async();
|
||||||
|
|
||||||
childCompiler.runAsChild((error, entries, compilation) => {
|
childCompiler.runAsChild((error, entries, compilation) => {
|
||||||
if (error) { return callback(error); }
|
if (error) {
|
||||||
if (entries.length === 0) { return callback(null, null); }
|
return callback(error);
|
||||||
|
}
|
||||||
|
if (entries.length === 0) {
|
||||||
|
return callback(null, null);
|
||||||
|
}
|
||||||
const mainFilename = entries[0].files[0];
|
const mainFilename = entries[0].files[0];
|
||||||
if (emit === false) { delete currentCompilation.assets[mainFilename]; }
|
if (emit === false) {
|
||||||
|
delete currentCompilation.assets[mainFilename];
|
||||||
|
}
|
||||||
callback(null, compilation.assets[mainFilename].source(), null, {
|
callback(null, compilation.assets[mainFilename].source(), null, {
|
||||||
[COMPILATION_METADATA]: entries[0].files,
|
[COMPILATION_METADATA]: entries[0].files,
|
||||||
});
|
});
|
||||||
@ -72,8 +82,12 @@ module.exports.pitch = function pitch(remainingRequest) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function getOutputFilename(options, { target }) {
|
function getOutputFilename(options, { target }) {
|
||||||
if (!options) { return { filename: `[hash].${target}.js`, options: undefined }; }
|
if (!options) {
|
||||||
if (typeof options === 'string') { return { filename: options, options: undefined }; }
|
return { filename: `[hash].${target}.js`, options: undefined };
|
||||||
|
}
|
||||||
|
if (typeof options === 'string') {
|
||||||
|
return { filename: options, options: undefined };
|
||||||
|
}
|
||||||
if (typeof options === 'object') {
|
if (typeof options === 'object') {
|
||||||
return {
|
return {
|
||||||
filename: options.filename,
|
filename: options.filename,
|
||||||
|
@ -4,6 +4,6 @@ module.exports = () => {
|
|||||||
autoprefixer: {},
|
autoprefixer: {},
|
||||||
'postcss-reporter': {},
|
'postcss-reporter': {},
|
||||||
'postcss-browser-reporter': {},
|
'postcss-browser-reporter': {},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -12,7 +12,7 @@ module.exports = function(options) {
|
|||||||
options: {
|
options: {
|
||||||
importLoaders: 2,
|
importLoaders: 2,
|
||||||
url: options.preserveUrl,
|
url: options.preserveUrl,
|
||||||
sourceMap: options.sourceMap
|
sourceMap: options.sourceMap,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -25,7 +25,7 @@ module.exports = function(options) {
|
|||||||
{
|
{
|
||||||
loader: 'sass-loader',
|
loader: 'sass-loader',
|
||||||
options: {
|
options: {
|
||||||
sourceMap: options.sourceMap
|
sourceMap: options.sourceMap,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -89,15 +89,7 @@ module.exports = (env = {}) =>
|
|||||||
: new ForkTsCheckerWebpackPlugin({
|
: new ForkTsCheckerWebpackPlugin({
|
||||||
eslint: {
|
eslint: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
files: [
|
files: ['public/app/**/*.{ts,tsx}', 'packages/*/src/**/*.{ts,tsx}'],
|
||||||
'public/app/**/*.{ts,tsx}',
|
|
||||||
// this can't be written like this packages/**/src/**/*.ts because it throws an error
|
|
||||||
'packages/grafana-ui/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-data/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-runtime/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-e2e-selectors/src/**/*.{ts,tsx}',
|
|
||||||
'packages/jaeger-ui-components/src/**/*.{ts,tsx}',
|
|
||||||
],
|
|
||||||
options: {
|
options: {
|
||||||
cache: true,
|
cache: true,
|
||||||
},
|
},
|
||||||
|
@ -89,15 +89,7 @@ module.exports = merge(common, {
|
|||||||
new ForkTsCheckerWebpackPlugin({
|
new ForkTsCheckerWebpackPlugin({
|
||||||
eslint: {
|
eslint: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
files: [
|
files: ['public/app/**/*.{ts,tsx}', 'packages/*/src/**/*.{ts,tsx}'],
|
||||||
'public/app/**/*.{ts,tsx}',
|
|
||||||
// this can't be written like this packages/**/src/**/*.ts because it throws an error
|
|
||||||
'packages/grafana-ui/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-data/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-runtime/src/**/*.{ts,tsx}',
|
|
||||||
'packages/grafana-e2e-selectors/src/**/*.{ts,tsx}',
|
|
||||||
'packages/jaeger-ui-components/src/**/*.{ts,tsx}',
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
typescript: {
|
typescript: {
|
||||||
mode: 'write-references',
|
mode: 'write-references',
|
||||||
|
426
yarn.lock
426
yarn.lock
@ -3331,10 +3331,10 @@
|
|||||||
typescript "3.7.5"
|
typescript "3.7.5"
|
||||||
yaml "^1.8.3"
|
yaml "^1.8.3"
|
||||||
|
|
||||||
"@grafana/eslint-config@^1.0.0-rc1":
|
"@grafana/eslint-config@2.0.0":
|
||||||
version "1.0.0-rc1"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-1.0.0-rc1.tgz#3b0a1abddfea900a57abc9526ad31abb1da2d42c"
|
resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-2.0.0.tgz#6e2b03e6d9f2afe3a0afa68560184be4e47abcd8"
|
||||||
integrity sha512-xmcJR6mUYw1llq3m8gT2kE7xoq6yLMUgNf2Mf1yZvDCx2cXFSyaLlGs1dqjFWjJDbV46GdhYRAyRbyGR+J9QKg==
|
integrity sha512-AktBgoo/WzaPgjITkemP/ItcAc5E7Ga0mgjflP/fUGsHnx+d4C2Lxxxpf9BjhNgqj3G82Db8tjXDFHEqWW19hQ==
|
||||||
|
|
||||||
"@grafana/slate-react@0.22.9-grafana":
|
"@grafana/slate-react@0.22.9-grafana":
|
||||||
version "0.22.9-grafana"
|
version "0.22.9-grafana"
|
||||||
@ -6808,91 +6808,65 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@2.19.0":
|
"@typescript-eslint/eslint-plugin@3.6.0":
|
||||||
version "2.19.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.19.0.tgz#bf743448a4633e4b52bee0c40148ba072ab3adbd"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.0.tgz#ba2b6cae478b8fca3f2e58ff1313e4198eea2d8a"
|
||||||
integrity sha512-u7IcQ9qwsB6U806LupZmINRnQjC+RJyv36sV/ugaFWMHTbFm/hlLTRx3gGYJgHisxcGSTnf+I/fPDieRMhPSQQ==
|
integrity sha512-ubHlHVt1lsPQB/CZdEov9XuOFhNG9YRC//kuiS1cMQI6Bs1SsqKrEmZnpgRwthGR09/kEDtr9MywlqXyyYd8GA==
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/experimental-utils" "2.19.0"
|
|
||||||
eslint-utils "^1.4.3"
|
|
||||||
functional-red-black-tree "^1.0.1"
|
|
||||||
regexpp "^3.0.0"
|
|
||||||
tsutils "^3.17.1"
|
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@2.24.0":
|
|
||||||
version "2.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68"
|
|
||||||
integrity sha512-wJRBeaMeT7RLQ27UQkDFOu25MqFOBus8PtOa9KaT5ZuxC1kAsd7JEHqWt4YXuY9eancX0GK9C68i5OROnlIzBA==
|
|
||||||
dependencies:
|
|
||||||
"@typescript-eslint/experimental-utils" "2.24.0"
|
|
||||||
eslint-utils "^1.4.3"
|
|
||||||
functional-red-black-tree "^1.0.1"
|
|
||||||
regexpp "^3.0.0"
|
|
||||||
tsutils "^3.17.1"
|
|
||||||
|
|
||||||
"@typescript-eslint/experimental-utils@2.19.0":
|
|
||||||
version "2.19.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.19.0.tgz#d5ca732f22c009e515ba09fcceb5f2127d841568"
|
|
||||||
integrity sha512-zwpg6zEOPbhB3+GaQfufzlMUOO6GXCNZq6skk+b2ZkZAIoBhVoanWK255BS1g5x9bMwHpLhX0Rpn5Fc3NdCZdg==
|
|
||||||
dependencies:
|
|
||||||
"@types/json-schema" "^7.0.3"
|
|
||||||
"@typescript-eslint/typescript-estree" "2.19.0"
|
|
||||||
eslint-scope "^5.0.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/experimental-utils@2.24.0":
|
|
||||||
version "2.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.24.0.tgz#a5cb2ed89fedf8b59638dc83484eb0c8c35e1143"
|
|
||||||
integrity sha512-DXrwuXTdVh3ycNCMYmWhUzn/gfqu9N0VzNnahjiDJvcyhfBy4gb59ncVZVxdp5XzBC77dCncu0daQgOkbvPwBw==
|
|
||||||
dependencies:
|
|
||||||
"@types/json-schema" "^7.0.3"
|
|
||||||
"@typescript-eslint/typescript-estree" "2.24.0"
|
|
||||||
eslint-scope "^5.0.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/parser@2.19.0":
|
|
||||||
version "2.19.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.19.0.tgz#912160d9425395d09857dcd5382352bc98be11ae"
|
|
||||||
integrity sha512-s0jZoxAWjHnuidbbN7aA+BFVXn4TCcxEVGPV8lWMxZglSs3NRnFFAlL+aIENNmzB2/1jUJuySi6GiM6uACPmpg==
|
|
||||||
dependencies:
|
|
||||||
"@types/eslint-visitor-keys" "^1.0.0"
|
|
||||||
"@typescript-eslint/experimental-utils" "2.19.0"
|
|
||||||
"@typescript-eslint/typescript-estree" "2.19.0"
|
|
||||||
eslint-visitor-keys "^1.1.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/parser@2.24.0":
|
|
||||||
version "2.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.24.0.tgz#2cf0eae6e6dd44d162486ad949c126b887f11eb8"
|
|
||||||
integrity sha512-H2Y7uacwSSg8IbVxdYExSI3T7uM1DzmOn2COGtCahCC3g8YtM1xYAPi2MAHyfPs61VKxP/J/UiSctcRgw4G8aw==
|
|
||||||
dependencies:
|
|
||||||
"@types/eslint-visitor-keys" "^1.0.0"
|
|
||||||
"@typescript-eslint/experimental-utils" "2.24.0"
|
|
||||||
"@typescript-eslint/typescript-estree" "2.24.0"
|
|
||||||
eslint-visitor-keys "^1.1.0"
|
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@2.19.0":
|
|
||||||
version "2.19.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.19.0.tgz#6bd7310b9827e04756fe712909f26956aac4b196"
|
|
||||||
integrity sha512-n6/Xa37k0jQdwpUszffi19AlNbVCR0sdvCs3DmSKMD7wBttKY31lhD2fug5kMD91B2qW4mQldaTEc1PEzvGu8w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
|
"@typescript-eslint/experimental-utils" "3.6.0"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
|
functional-red-black-tree "^1.0.1"
|
||||||
|
regexpp "^3.0.0"
|
||||||
|
semver "^7.3.2"
|
||||||
|
tsutils "^3.17.1"
|
||||||
|
|
||||||
|
"@typescript-eslint/experimental-utils@3.6.0":
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.0.tgz#0138152d66e3e53a6340f606793fb257bf2d76a1"
|
||||||
|
integrity sha512-4Vdf2hvYMUnTdkCNZu+yYlFtL2v+N2R7JOynIOkFbPjf9o9wQvRwRkzUdWlFd2YiiUwJLbuuLnl5civNg5ykOQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/json-schema" "^7.0.3"
|
||||||
|
"@typescript-eslint/types" "3.6.0"
|
||||||
|
"@typescript-eslint/typescript-estree" "3.6.0"
|
||||||
|
eslint-scope "^5.0.0"
|
||||||
|
eslint-utils "^2.0.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/parser@3.6.0":
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.6.0.tgz#79b5232e1a2d06f1fc745942b690cd87aca7b60e"
|
||||||
|
integrity sha512-taghDxuLhbDAD1U5Fk8vF+MnR0yiFE9Z3v2/bYScFb0N1I9SK8eKHkdJl1DAD48OGFDMFTeOTX0z7g0W6SYUXw==
|
||||||
|
dependencies:
|
||||||
|
"@types/eslint-visitor-keys" "^1.0.0"
|
||||||
|
"@typescript-eslint/experimental-utils" "3.6.0"
|
||||||
|
"@typescript-eslint/types" "3.6.0"
|
||||||
|
"@typescript-eslint/typescript-estree" "3.6.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/types@3.6.0":
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.6.0.tgz#4bd6eee55d2f9d35a4b36c4804be1880bf68f7bc"
|
||||||
|
integrity sha512-JwVj74ohUSt0ZPG+LZ7hb95fW8DFOqBuR6gE7qzq55KDI3BepqsCtHfBIoa0+Xi1AI7fq5nCu2VQL8z4eYftqg==
|
||||||
|
|
||||||
|
"@typescript-eslint/typescript-estree@3.6.0":
|
||||||
|
version "3.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.0.tgz#9b4cab43f1192b64ff51530815b8919f166ce177"
|
||||||
|
integrity sha512-G57NDSABHjvob7zVV09ehWyD1K6/YUKjz5+AufObFyjNO4DVmKejj47MHjVHHlZZKgmpJD2yyH9lfCXHrPITFg==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "3.6.0"
|
||||||
|
"@typescript-eslint/visitor-keys" "3.6.0"
|
||||||
|
debug "^4.1.1"
|
||||||
glob "^7.1.6"
|
glob "^7.1.6"
|
||||||
is-glob "^4.0.1"
|
is-glob "^4.0.1"
|
||||||
lodash "^4.17.15"
|
lodash "^4.17.15"
|
||||||
semver "^6.3.0"
|
semver "^7.3.2"
|
||||||
tsutils "^3.17.1"
|
tsutils "^3.17.1"
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@2.24.0":
|
"@typescript-eslint/visitor-keys@3.6.0":
|
||||||
version "2.24.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.24.0.tgz#38bbc8bb479790d2f324797ffbcdb346d897c62a"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.0.tgz#44185eb0cc47651034faa95c5e2e8b314ecebb26"
|
||||||
integrity sha512-RJ0yMe5owMSix55qX7Mi9V6z2FDuuDpN6eR5fzRJrp+8in9UF41IGNQHbg5aMK4/PjVaEQksLvz0IA8n+Mr/FA==
|
integrity sha512-p1izllL2Ubwunite0ITjubuMQRBGgjdVYwyG7lXPX8GbrA6qF0uwSRz9MnXZaHMxID4948gX0Ez8v9tUDi/KfQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.1.1"
|
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
glob "^7.1.6"
|
|
||||||
is-glob "^4.0.1"
|
|
||||||
lodash "^4.17.15"
|
|
||||||
semver "^6.3.0"
|
|
||||||
tsutils "^3.17.1"
|
|
||||||
|
|
||||||
"@webassemblyjs/ast@1.8.5":
|
"@webassemblyjs/ast@1.8.5":
|
||||||
version "1.8.5"
|
version "1.8.5"
|
||||||
@ -7159,6 +7133,11 @@ acorn-jsx@^5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
|
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
|
||||||
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
|
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
|
||||||
|
|
||||||
|
acorn-jsx@^5.2.0:
|
||||||
|
version "5.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
|
||||||
|
integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
|
||||||
|
|
||||||
acorn-walk@^6.0.1, acorn-walk@^6.1.1:
|
acorn-walk@^6.0.1, acorn-walk@^6.1.1:
|
||||||
version "6.2.0"
|
version "6.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
|
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
|
||||||
@ -7199,7 +7178,7 @@ acorn@^7.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
|
||||||
integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
|
integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
|
||||||
|
|
||||||
acorn@^7.1.1:
|
acorn@^7.1.1, acorn@^7.2.0:
|
||||||
version "7.3.1"
|
version "7.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
||||||
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
||||||
@ -7415,6 +7394,11 @@ ansi-colors@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
|
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
|
||||||
integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
|
integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
|
||||||
|
|
||||||
|
ansi-colors@^4.1.1:
|
||||||
|
version "4.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
|
||||||
|
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
|
||||||
|
|
||||||
ansi-escapes@^1.1.0:
|
ansi-escapes@^1.1.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||||
@ -7681,15 +7665,6 @@ array-includes@^3.0.3:
|
|||||||
define-properties "^1.1.2"
|
define-properties "^1.1.2"
|
||||||
es-abstract "^1.7.0"
|
es-abstract "^1.7.0"
|
||||||
|
|
||||||
array-includes@^3.1.1:
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
|
|
||||||
integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
|
|
||||||
dependencies:
|
|
||||||
define-properties "^1.1.3"
|
|
||||||
es-abstract "^1.17.0"
|
|
||||||
is-string "^1.0.5"
|
|
||||||
|
|
||||||
array-slice@^1.0.0:
|
array-slice@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
|
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
|
||||||
@ -9756,10 +9731,10 @@ commander@~2.19.0:
|
|||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
|
||||||
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
|
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
|
||||||
|
|
||||||
comment-parser@^0.7.2:
|
comment-parser@^0.7.5:
|
||||||
version "0.7.2"
|
version "0.7.5"
|
||||||
resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.2.tgz#baf6d99b42038678b81096f15b630d18142f4b8a"
|
resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.5.tgz#06db157a3b34addf8502393743e41897e2c73059"
|
||||||
integrity sha512-4Rjb1FnxtOcv9qsfuaNuVsmmVn4ooVoBHzYfyKteiXwIU84PClyGA5jASoFMwPV93+FPh9spwueXauxFJZkGAg==
|
integrity sha512-iH9YA35ccw94nx5244GVkpyC9eVTsL71jZz6iz5w6RIf79JLF2AsXHXq9p6Oaohyl3sx5qSMnGsWUDFIAfWL4w==
|
||||||
|
|
||||||
common-tags@1.8.0, common-tags@^1.8.0:
|
common-tags@1.8.0, common-tags@^1.8.0:
|
||||||
version "1.8.0"
|
version "1.8.0"
|
||||||
@ -10303,6 +10278,15 @@ cross-spawn@^5.0.1:
|
|||||||
shebang-command "^1.2.0"
|
shebang-command "^1.2.0"
|
||||||
which "^1.2.9"
|
which "^1.2.9"
|
||||||
|
|
||||||
|
cross-spawn@^7.0.2:
|
||||||
|
version "7.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||||
|
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
||||||
|
dependencies:
|
||||||
|
path-key "^3.1.0"
|
||||||
|
shebang-command "^2.0.0"
|
||||||
|
which "^2.0.1"
|
||||||
|
|
||||||
crypt@~0.0.1:
|
crypt@~0.0.1:
|
||||||
version "0.0.2"
|
version "0.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
|
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
|
||||||
@ -11124,7 +11108,7 @@ deep-freeze@^0.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
|
resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
|
||||||
integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=
|
integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=
|
||||||
|
|
||||||
deep-is@~0.1.3:
|
deep-is@^0.1.3, deep-is@~0.1.3:
|
||||||
version "0.1.3"
|
version "0.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||||
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
|
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
|
||||||
@ -11409,13 +11393,6 @@ doctrine@^1.2.2:
|
|||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
isarray "^1.0.0"
|
isarray "^1.0.0"
|
||||||
|
|
||||||
doctrine@^2.1.0:
|
|
||||||
version "2.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
|
|
||||||
integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
|
|
||||||
dependencies:
|
|
||||||
esutils "^2.0.2"
|
|
||||||
|
|
||||||
doctrine@^3.0.0:
|
doctrine@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
||||||
@ -11777,6 +11754,13 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0:
|
|||||||
memory-fs "^0.5.0"
|
memory-fs "^0.5.0"
|
||||||
tapable "^1.0.0"
|
tapable "^1.0.0"
|
||||||
|
|
||||||
|
enquirer@^2.3.5:
|
||||||
|
version "2.3.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
|
||||||
|
integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
|
||||||
|
dependencies:
|
||||||
|
ansi-colors "^4.1.1"
|
||||||
|
|
||||||
entities@^1.1.1, entities@^1.1.2, entities@~1.1.1:
|
entities@^1.1.1, entities@^1.1.2, entities@~1.1.1:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
||||||
@ -12121,48 +12105,37 @@ escope@^3.6.0:
|
|||||||
esrecurse "^4.1.0"
|
esrecurse "^4.1.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-config-prettier@6.10.0:
|
eslint-config-prettier@6.11.0:
|
||||||
version "6.10.0"
|
version "6.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz#7b15e303bf9c956875c948f6b21500e48ded6a7f"
|
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"
|
||||||
integrity sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg==
|
integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==
|
||||||
dependencies:
|
dependencies:
|
||||||
get-stdin "^6.0.0"
|
get-stdin "^6.0.0"
|
||||||
|
|
||||||
eslint-plugin-jsdoc@22.1.0:
|
eslint-plugin-jsdoc@28.6.1:
|
||||||
version "22.1.0"
|
version "28.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-22.1.0.tgz#dadfa62653fc0d87f900d810307f5ed07ef6ecd5"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-28.6.1.tgz#c9e9da59d0d3cef4fb45ffb91c0acde43af4e418"
|
||||||
integrity sha512-54NdbICM7KrxsGUqQsev9aIMqPXyvyBx2218Qcm0TQ16P9CtBI+YY4hayJR6adrxlq4Ej0JLpgfUXWaQVFqmQg==
|
integrity sha512-Z3y7hcNPDuhL339D1KOf9SY8pMAxYxhaG4QLtu3KVn20k/hNF1u6WQv44wvuSCb6OfPJ4say37RUlSNqIjR+mw==
|
||||||
dependencies:
|
dependencies:
|
||||||
comment-parser "^0.7.2"
|
comment-parser "^0.7.5"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
jsdoctypeparser "^6.1.0"
|
jsdoctypeparser "^7.0.0"
|
||||||
lodash "^4.17.15"
|
lodash "^4.17.15"
|
||||||
regextras "^0.7.0"
|
regextras "^0.7.1"
|
||||||
semver "^6.3.0"
|
semver "^7.3.2"
|
||||||
spdx-expression-parse "^3.0.0"
|
spdx-expression-parse "^3.0.1"
|
||||||
|
|
||||||
eslint-plugin-prettier@3.1.2:
|
eslint-plugin-prettier@3.1.4:
|
||||||
version "3.1.2"
|
version "3.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2"
|
||||||
integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
|
integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
prettier-linter-helpers "^1.0.0"
|
prettier-linter-helpers "^1.0.0"
|
||||||
|
|
||||||
eslint-plugin-react@7.18.3:
|
eslint-plugin-react-hooks@4.0.5:
|
||||||
version "7.18.3"
|
version "4.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.18.3.tgz#8be671b7f6be095098e79d27ac32f9580f599bc8"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.5.tgz#4879003aa38e5d05d0312175beb6e4a1f617bfcf"
|
||||||
integrity sha512-Bt56LNHAQCoou88s8ViKRjMB2+36XRejCQ1VoLj716KI1MoE99HpTVvIThJ0rvFmG4E4Gsq+UgToEjn+j044Bg==
|
integrity sha512-3YLSjoArsE2rUwL8li4Yxx1SUg3DQWp+78N3bcJQGWVZckcp+yeQGsap/MSq05+thJk57o+Ww4PtZukXGL02TQ==
|
||||||
dependencies:
|
|
||||||
array-includes "^3.1.1"
|
|
||||||
doctrine "^2.1.0"
|
|
||||||
has "^1.0.3"
|
|
||||||
jsx-ast-utils "^2.2.3"
|
|
||||||
object.entries "^1.1.1"
|
|
||||||
object.fromentries "^2.0.2"
|
|
||||||
object.values "^1.1.1"
|
|
||||||
prop-types "^15.7.2"
|
|
||||||
resolve "^1.14.2"
|
|
||||||
string.prototype.matchall "^4.0.2"
|
|
||||||
|
|
||||||
eslint-scope@^4.0.3:
|
eslint-scope@^4.0.3:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
@ -12180,10 +12153,18 @@ eslint-scope@^5.0.0:
|
|||||||
esrecurse "^4.1.0"
|
esrecurse "^4.1.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-utils@^1.4.3:
|
eslint-scope@^5.1.0:
|
||||||
version "1.4.3"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5"
|
||||||
integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
|
integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==
|
||||||
|
dependencies:
|
||||||
|
esrecurse "^4.1.0"
|
||||||
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
|
eslint-utils@^2.0.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
|
||||||
|
integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
@ -12192,22 +12173,28 @@ eslint-visitor-keys@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
|
||||||
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
|
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
|
||||||
|
|
||||||
eslint@6.8.0:
|
eslint-visitor-keys@^1.2.0:
|
||||||
version "6.8.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
|
||||||
integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
|
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
||||||
|
|
||||||
|
eslint@7.4.0:
|
||||||
|
version "7.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.4.0.tgz#4e35a2697e6c1972f9d6ef2b690ad319f80f206f"
|
||||||
|
integrity sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.0.0"
|
"@babel/code-frame" "^7.0.0"
|
||||||
ajv "^6.10.0"
|
ajv "^6.10.0"
|
||||||
chalk "^2.1.0"
|
chalk "^4.0.0"
|
||||||
cross-spawn "^6.0.5"
|
cross-spawn "^7.0.2"
|
||||||
debug "^4.0.1"
|
debug "^4.0.1"
|
||||||
doctrine "^3.0.0"
|
doctrine "^3.0.0"
|
||||||
eslint-scope "^5.0.0"
|
enquirer "^2.3.5"
|
||||||
eslint-utils "^1.4.3"
|
eslint-scope "^5.1.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-utils "^2.0.0"
|
||||||
espree "^6.1.2"
|
eslint-visitor-keys "^1.2.0"
|
||||||
esquery "^1.0.1"
|
espree "^7.1.0"
|
||||||
|
esquery "^1.2.0"
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
file-entry-cache "^5.0.1"
|
file-entry-cache "^5.0.1"
|
||||||
functional-red-black-tree "^1.0.1"
|
functional-red-black-tree "^1.0.1"
|
||||||
@ -12216,21 +12203,19 @@ eslint@6.8.0:
|
|||||||
ignore "^4.0.6"
|
ignore "^4.0.6"
|
||||||
import-fresh "^3.0.0"
|
import-fresh "^3.0.0"
|
||||||
imurmurhash "^0.1.4"
|
imurmurhash "^0.1.4"
|
||||||
inquirer "^7.0.0"
|
|
||||||
is-glob "^4.0.0"
|
is-glob "^4.0.0"
|
||||||
js-yaml "^3.13.1"
|
js-yaml "^3.13.1"
|
||||||
json-stable-stringify-without-jsonify "^1.0.1"
|
json-stable-stringify-without-jsonify "^1.0.1"
|
||||||
levn "^0.3.0"
|
levn "^0.4.1"
|
||||||
lodash "^4.17.14"
|
lodash "^4.17.14"
|
||||||
minimatch "^3.0.4"
|
minimatch "^3.0.4"
|
||||||
mkdirp "^0.5.1"
|
|
||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
optionator "^0.8.3"
|
optionator "^0.9.1"
|
||||||
progress "^2.0.0"
|
progress "^2.0.0"
|
||||||
regexpp "^2.0.1"
|
regexpp "^3.1.0"
|
||||||
semver "^6.1.2"
|
semver "^7.2.1"
|
||||||
strip-ansi "^5.2.0"
|
strip-ansi "^6.0.0"
|
||||||
strip-json-comments "^3.0.1"
|
strip-json-comments "^3.1.0"
|
||||||
table "^5.2.3"
|
table "^5.2.3"
|
||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
v8-compile-cache "^2.0.3"
|
v8-compile-cache "^2.0.3"
|
||||||
@ -12282,14 +12267,14 @@ espree@^3.1.6:
|
|||||||
acorn "^5.5.0"
|
acorn "^5.5.0"
|
||||||
acorn-jsx "^3.0.0"
|
acorn-jsx "^3.0.0"
|
||||||
|
|
||||||
espree@^6.1.2:
|
espree@^7.1.0:
|
||||||
version "6.1.2"
|
version "7.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c"
|
||||||
integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==
|
integrity sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn "^7.1.0"
|
acorn "^7.2.0"
|
||||||
acorn-jsx "^5.1.0"
|
acorn-jsx "^5.2.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.2.0"
|
||||||
|
|
||||||
esprima@^3.1.3, esprima@~3.1.0:
|
esprima@^3.1.3, esprima@~3.1.0:
|
||||||
version "3.1.3"
|
version "3.1.3"
|
||||||
@ -12308,12 +12293,12 @@ espurify@^1.6.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
core-js "^2.0.0"
|
core-js "^2.0.0"
|
||||||
|
|
||||||
esquery@^1.0.1:
|
esquery@^1.2.0:
|
||||||
version "1.0.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
|
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
|
||||||
integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
|
integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
estraverse "^4.0.0"
|
estraverse "^5.1.0"
|
||||||
|
|
||||||
esrecurse@^4.1.0:
|
esrecurse@^4.1.0:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
@ -12327,11 +12312,16 @@ esrever@^0.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/esrever/-/esrever-0.2.0.tgz#96e9d28f4f1b1a76784cd5d490eaae010e7407b8"
|
resolved "https://registry.yarnpkg.com/esrever/-/esrever-0.2.0.tgz#96e9d28f4f1b1a76784cd5d490eaae010e7407b8"
|
||||||
integrity sha1-lunSj08bGnZ4TNXUkOquAQ50B7g=
|
integrity sha1-lunSj08bGnZ4TNXUkOquAQ50B7g=
|
||||||
|
|
||||||
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
|
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
|
||||||
version "4.3.0"
|
version "4.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
|
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
|
||||||
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
|
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
|
||||||
|
|
||||||
|
estraverse@^5.1.0:
|
||||||
|
version "5.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
|
||||||
|
integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
|
||||||
|
|
||||||
estree-walker@^0.6.1:
|
estree-walker@^0.6.1:
|
||||||
version "0.6.1"
|
version "0.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
|
||||||
@ -12720,7 +12710,7 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
||||||
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
|
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
|
||||||
|
|
||||||
fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6:
|
fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
||||||
@ -16741,10 +16731,10 @@ jscodeshift@^0.7.0:
|
|||||||
temp "^0.8.1"
|
temp "^0.8.1"
|
||||||
write-file-atomic "^2.3.0"
|
write-file-atomic "^2.3.0"
|
||||||
|
|
||||||
jsdoctypeparser@^6.1.0:
|
jsdoctypeparser@^7.0.0:
|
||||||
version "6.1.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz#acfb936c26300d98f1405cb03e20b06748e512a8"
|
resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-7.0.0.tgz#957192fbcb8c574240092cca4635383a6ed706eb"
|
||||||
integrity sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==
|
integrity sha512-6vWPn5qSy+MbgCVjXsQKVkRywhs+IxFU7Chw72DKsWoGueYp6QX8eTc55+EA0yPGYfhmglb1gfi283asXirfGQ==
|
||||||
|
|
||||||
jsdom@^11.5.1:
|
jsdom@^11.5.1:
|
||||||
version "11.12.0"
|
version "11.12.0"
|
||||||
@ -16968,14 +16958,6 @@ jsurl@^0.1.5:
|
|||||||
resolved "https://registry.yarnpkg.com/jsurl/-/jsurl-0.1.5.tgz#2a5c8741de39cacafc12f448908bf34e960dcee8"
|
resolved "https://registry.yarnpkg.com/jsurl/-/jsurl-0.1.5.tgz#2a5c8741de39cacafc12f448908bf34e960dcee8"
|
||||||
integrity sha1-KlyHQd45ysr8EvRIkIvzTpYNzug=
|
integrity sha1-KlyHQd45ysr8EvRIkIvzTpYNzug=
|
||||||
|
|
||||||
jsx-ast-utils@^2.2.3:
|
|
||||||
version "2.2.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f"
|
|
||||||
integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==
|
|
||||||
dependencies:
|
|
||||||
array-includes "^3.0.3"
|
|
||||||
object.assign "^4.1.0"
|
|
||||||
|
|
||||||
just-extend@^4.0.2:
|
just-extend@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
|
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
|
||||||
@ -17178,6 +17160,14 @@ levn@^0.3.0, levn@~0.3.0:
|
|||||||
prelude-ls "~1.1.2"
|
prelude-ls "~1.1.2"
|
||||||
type-check "~0.3.2"
|
type-check "~0.3.2"
|
||||||
|
|
||||||
|
levn@^0.4.1:
|
||||||
|
version "0.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
||||||
|
integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
|
||||||
|
dependencies:
|
||||||
|
prelude-ls "^1.2.1"
|
||||||
|
type-check "~0.4.0"
|
||||||
|
|
||||||
liftoff@~2.5.0:
|
liftoff@~2.5.0:
|
||||||
version "2.5.0"
|
version "2.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec"
|
resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec"
|
||||||
@ -19274,17 +19264,17 @@ optionator@^0.8.1:
|
|||||||
type-check "~0.3.2"
|
type-check "~0.3.2"
|
||||||
wordwrap "~1.0.0"
|
wordwrap "~1.0.0"
|
||||||
|
|
||||||
optionator@^0.8.3:
|
optionator@^0.9.1:
|
||||||
version "0.8.3"
|
version "0.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
|
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
|
||||||
integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
|
integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-is "~0.1.3"
|
deep-is "^0.1.3"
|
||||||
fast-levenshtein "~2.0.6"
|
fast-levenshtein "^2.0.6"
|
||||||
levn "~0.3.0"
|
levn "^0.4.1"
|
||||||
prelude-ls "~1.1.2"
|
prelude-ls "^1.2.1"
|
||||||
type-check "~0.3.2"
|
type-check "^0.4.0"
|
||||||
word-wrap "~1.2.3"
|
word-wrap "^1.2.3"
|
||||||
|
|
||||||
ora@^4.0.3:
|
ora@^4.0.3:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
@ -20791,6 +20781,11 @@ prefix-style@2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/prefix-style/-/prefix-style-2.0.1.tgz#66bba9a870cfda308a5dc20e85e9120932c95a06"
|
resolved "https://registry.yarnpkg.com/prefix-style/-/prefix-style-2.0.1.tgz#66bba9a870cfda308a5dc20e85e9120932c95a06"
|
||||||
integrity sha1-ZrupqHDP2jCKXcIOhekSCTLJWgY=
|
integrity sha1-ZrupqHDP2jCKXcIOhekSCTLJWgY=
|
||||||
|
|
||||||
|
prelude-ls@^1.2.1:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||||
|
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
||||||
|
|
||||||
prelude-ls@~1.1.2:
|
prelude-ls@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||||
@ -22646,16 +22641,16 @@ regexp.prototype.flags@^1.3.0:
|
|||||||
define-properties "^1.1.3"
|
define-properties "^1.1.3"
|
||||||
es-abstract "^1.17.0-next.1"
|
es-abstract "^1.17.0-next.1"
|
||||||
|
|
||||||
regexpp@^2.0.1:
|
|
||||||
version "2.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
|
|
||||||
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
|
|
||||||
|
|
||||||
regexpp@^3.0.0:
|
regexpp@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e"
|
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e"
|
||||||
integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==
|
integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==
|
||||||
|
|
||||||
|
regexpp@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
|
||||||
|
integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
|
||||||
|
|
||||||
regexpu-core@^4.6.0:
|
regexpu-core@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
|
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
|
||||||
@ -22680,10 +22675,10 @@ regexpu-core@^4.7.0:
|
|||||||
unicode-match-property-ecmascript "^1.0.4"
|
unicode-match-property-ecmascript "^1.0.4"
|
||||||
unicode-match-property-value-ecmascript "^1.2.0"
|
unicode-match-property-value-ecmascript "^1.2.0"
|
||||||
|
|
||||||
regextras@^0.7.0:
|
regextras@^0.7.1:
|
||||||
version "0.7.0"
|
version "0.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.0.tgz#2298bef8cfb92b1b7e3b9b12aa8f69547b7d71e4"
|
resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2"
|
||||||
integrity sha512-ds+fL+Vhl918gbAUb0k2gVKbTZLsg84Re3DI6p85Et0U0tYME3hyW4nMK8Px4dtDaBA2qNjvG5uWyW7eK5gfmw==
|
integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==
|
||||||
|
|
||||||
registry-auth-token@^3.0.1:
|
registry-auth-token@^3.0.1:
|
||||||
version "3.4.0"
|
version "3.4.0"
|
||||||
@ -23663,7 +23658,7 @@ semver@7.x, semver@^7.2.1, semver@^7.3.2:
|
|||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
|
||||||
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
|
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
|
||||||
|
|
||||||
semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
|
semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
|
||||||
version "6.3.0"
|
version "6.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
@ -24269,6 +24264,14 @@ spdx-expression-parse@^3.0.0:
|
|||||||
spdx-exceptions "^2.1.0"
|
spdx-exceptions "^2.1.0"
|
||||||
spdx-license-ids "^3.0.0"
|
spdx-license-ids "^3.0.0"
|
||||||
|
|
||||||
|
spdx-expression-parse@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
|
||||||
|
integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
|
||||||
|
dependencies:
|
||||||
|
spdx-exceptions "^2.1.0"
|
||||||
|
spdx-license-ids "^3.0.0"
|
||||||
|
|
||||||
spdx-license-ids@^3.0.0:
|
spdx-license-ids@^3.0.0:
|
||||||
version "3.0.5"
|
version "3.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
|
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
|
||||||
@ -24607,7 +24610,7 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
|
|||||||
is-fullwidth-code-point "^3.0.0"
|
is-fullwidth-code-point "^3.0.0"
|
||||||
strip-ansi "^6.0.0"
|
strip-ansi "^6.0.0"
|
||||||
|
|
||||||
"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2:
|
"string.prototype.matchall@^4.0.0 || ^3.0.1":
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
|
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
|
||||||
integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==
|
integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==
|
||||||
@ -24808,10 +24811,10 @@ strip-json-comments@2.0.1, strip-json-comments@~2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||||
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
|
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
|
||||||
|
|
||||||
strip-json-comments@^3.0.1:
|
strip-json-comments@^3.1.0:
|
||||||
version "3.0.1"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
|
||||||
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
|
integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==
|
||||||
|
|
||||||
strip-json-comments@~1.0.1:
|
strip-json-comments@~1.0.1:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
@ -25724,6 +25727,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
|||||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||||
|
|
||||||
|
type-check@^0.4.0, type-check@~0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
|
||||||
|
integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
|
||||||
|
dependencies:
|
||||||
|
prelude-ls "^1.2.1"
|
||||||
|
|
||||||
type-check@~0.3.2:
|
type-check@~0.3.2:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
||||||
@ -26880,7 +26890,7 @@ wolfy87-eventemitter@~5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011"
|
resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011"
|
||||||
integrity sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=
|
integrity sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=
|
||||||
|
|
||||||
word-wrap@~1.2.3:
|
word-wrap@^1.2.3:
|
||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
||||||
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
|
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
|
||||||
|
Loading…
Reference in New Issue
Block a user