test((logging)): added basic logger testing
This commit is contained in:
parent
633ada9fc9
commit
b9ac8a1709
9 changed files with 309 additions and 104 deletions
|
@ -2,4 +2,3 @@
|
||||||
. "$(dirname "$0")/_/husky.sh"
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
yarn lint-staged
|
yarn lint-staged
|
||||||
yarn test
|
|
|
@ -2,6 +2,6 @@
|
||||||
"extends": "@istanbuljs/nyc-config-typescript",
|
"extends": "@istanbuljs/nyc-config-typescript",
|
||||||
"all": true,
|
"all": true,
|
||||||
"check-coverage": true,
|
"check-coverage": true,
|
||||||
"include": ["src/**/*.ts"],
|
"include": ["src/lib/**/*.ts"],
|
||||||
"reporter": ["html"]
|
"reporter": ["html", "text"]
|
||||||
}
|
}
|
10
package.json
10
package.json
|
@ -37,7 +37,7 @@
|
||||||
"@discordjs/voice": "^0.5.0",
|
"@discordjs/voice": "^0.5.0",
|
||||||
"bufferutil": "^4.0.3",
|
"bufferutil": "^4.0.3",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"color-convert": "^2.0.1",
|
"config": "^3.3.6",
|
||||||
"discord.js": "^13.0.0-dev.a3cbcca13da1af416c219bd64a0a6e84bb87a057",
|
"discord.js": "^13.0.0-dev.a3cbcca13da1af416c219bd64a0a6e84bb87a057",
|
||||||
"erlpack": "^0.1.3",
|
"erlpack": "^0.1.3",
|
||||||
"ffmpeg-static": "^4.3.0",
|
"ffmpeg-static": "^4.3.0",
|
||||||
|
@ -45,9 +45,9 @@
|
||||||
"gradient-string": "^1.2.0",
|
"gradient-string": "^1.2.0",
|
||||||
"jsonschema": "^1.4.0",
|
"jsonschema": "^1.4.0",
|
||||||
"luxon": "^1.27.0",
|
"luxon": "^1.27.0",
|
||||||
|
"module-alias": "^2.2.2",
|
||||||
"node-gyp": "^8.1.0",
|
"node-gyp": "^8.1.0",
|
||||||
"sodium": "^3.0.2",
|
"sodium": "^3.0.2",
|
||||||
"supports-color": "^9.0.1",
|
|
||||||
"terminal-link": "^3.0.0",
|
"terminal-link": "^3.0.0",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"utf-8-validate": "^5.0.5",
|
"utf-8-validate": "^5.0.5",
|
||||||
|
@ -62,15 +62,15 @@
|
||||||
"@rollup/plugin-json": "^4.1.0",
|
"@rollup/plugin-json": "^4.1.0",
|
||||||
"@rollup/plugin-typescript": "^8.2.1",
|
"@rollup/plugin-typescript": "^8.2.1",
|
||||||
"@types/chai": "^4.2.18",
|
"@types/chai": "^4.2.18",
|
||||||
"@types/color-convert": "^2",
|
|
||||||
"@types/eslint": "^7.2.13",
|
"@types/eslint": "^7.2.13",
|
||||||
"@types/figlet": "^1.5.1",
|
"@types/figlet": "^1.5.1",
|
||||||
"@types/gradient-string": "^1",
|
"@types/gradient-string": "^1",
|
||||||
"@types/luxon": "^1",
|
"@types/luxon": "^1",
|
||||||
"@types/mocha": "^8.2.2",
|
"@types/mocha": "^8.2.2",
|
||||||
|
"@types/module-alias": "^2",
|
||||||
"@types/node": "^15.12.2",
|
"@types/node": "^15.12.2",
|
||||||
"@types/rimraf": "^3",
|
"@types/rimraf": "^3",
|
||||||
"@types/std-mocks": "^1",
|
"@types/sinon": "^10.0.2",
|
||||||
"@types/yargs": "^17",
|
"@types/yargs": "^17",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.27.0",
|
"@typescript-eslint/eslint-plugin": "^4.27.0",
|
||||||
"@typescript-eslint/parser": "^4.27.0",
|
"@typescript-eslint/parser": "^4.27.0",
|
||||||
|
@ -88,8 +88,8 @@
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rollup": "^2.52.0",
|
"rollup": "^2.52.0",
|
||||||
"rollup-plugin-terser": "^7.0.2",
|
"rollup-plugin-terser": "^7.0.2",
|
||||||
|
"sinon": "^11.1.1",
|
||||||
"standard-version": "^9.3.0",
|
"standard-version": "^9.3.0",
|
||||||
"std-mocks": "^1.0.1",
|
|
||||||
"ts-node": "^10.0.0",
|
"ts-node": "^10.0.0",
|
||||||
"typescript": "^4.3.3",
|
"typescript": "^4.3.3",
|
||||||
"typescript-eslint-language-service": "^4.1.4"
|
"typescript-eslint-language-service": "^4.1.4"
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
import { Client } from 'discord.js';
|
import { Client } from 'discord.js';
|
||||||
import figlet from 'figlet';
|
import figlet from 'figlet';
|
||||||
import gradient from 'gradient-string';
|
import gradient from 'gradient-string';
|
||||||
import { debug, error, info } from './utils/logger';
|
import { debug, error, info } from './lib/utils/logger';
|
||||||
import { ELoggingScope } from './utils/types';
|
import { ELoggingScope } from './lib/utils/types';
|
||||||
//import { token } from '../config.json';
|
//import { token } from '../config.json';
|
||||||
|
|
||||||
debug('Starting bot... Please wait!', ELoggingScope.Startup);
|
debug('Starting bot... Please wait!', ELoggingScope.Startup);
|
||||||
|
|
|
@ -16,12 +16,11 @@
|
||||||
*/
|
*/
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { loglevel } from '../../config.json';
|
import { loglevel } from '../../../config.json';
|
||||||
|
|
||||||
import type { ELoggingScope } from './types';
|
import type { ELoggingScope } from './types';
|
||||||
|
|
||||||
const logger = new chalk.Instance({ level: 3 });
|
chalk.Level = 3;
|
||||||
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
|
||||||
|
|
||||||
let verboseLevel = false;
|
let verboseLevel = false;
|
||||||
let debugLevel = false;
|
let debugLevel = false;
|
||||||
|
@ -69,73 +68,79 @@ switch (loglevel.toLowerCase()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function verbose(message: string, scope?: ELoggingScope): void {
|
export function verbose(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (verboseLevel)
|
if (verboseLevel)
|
||||||
if (scope)
|
if (scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {white.bold [VERBOSE]}: {white ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {white.bold [VERBOSE]}: {white ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {white.bold [VERBOSE]}: {white ${val}}`);
|
console.log(chalk`{grey (${date})} {white.bold [VERBOSE]}: {white ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function debug(message: string, scope?: ELoggingScope): void {
|
export function debug(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (debugLevel)
|
if (debugLevel)
|
||||||
if (scope)
|
if (scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {blue.bold [DEBUG]}: {blue ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {blue.bold [DEBUG]}: {blue ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {blue.bold [DEBUG]}: {blue ${val}}`);
|
console.log(chalk`{grey (${date})} {blue.bold [DEBUG]}: {blue ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function info(message: string, scope?: ELoggingScope): void {
|
export function info(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (infoLevel)
|
if (infoLevel)
|
||||||
if(scope)
|
if(scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {green.bold [INFO]}: {green ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {green.bold [INFO]}: {green ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {green.bold [INFO]}: {green ${val}}`);
|
console.log(chalk`{grey (${date})} {green.bold [INFO]}: {green ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function warn(message: string, scope?: ELoggingScope): void {
|
export function warn(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (warnLevel)
|
if (warnLevel)
|
||||||
if (scope)
|
if (scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {yellow.bold [WARN]}: {yellow ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {yellow.bold [WARN]}: {yellow ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {yellow.bold [WARN]}: {yellow ${val}}`);
|
console.log(chalk`{grey (${date})} {yellow.bold [WARN]}: {yellow ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function error(message: string, scope?: ELoggingScope): void {
|
export function error(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (errorLevel)
|
if (errorLevel)
|
||||||
if (scope)
|
if (scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`);
|
console.log(chalk`{grey (${date})} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fatal(message: string, scope?: ELoggingScope): void {
|
export function fatal(message: string, scope?: ELoggingScope): void {
|
||||||
|
const date = DateTime.now().toLocal().setLocale(Intl.DateTimeFormat().resolvedOptions().locale).toFormat('yyyy-LL-dd HH:mm:ss');
|
||||||
const splitMultiline = message.split('\n');
|
const splitMultiline = message.split('\n');
|
||||||
|
|
||||||
splitMultiline.forEach((val) => {
|
splitMultiline.forEach((val) => {
|
||||||
if (fatalLevel)
|
if (fatalLevel)
|
||||||
if (scope)
|
if (scope)
|
||||||
console.log(logger`{grey (${date})} {magenta.bold ${scope}} {red.bold.underline [FATAL]}: {red.underline ${val}}`);
|
console.log(chalk`{grey (${date})} {magenta.bold ${scope}} {red.bold.underline [FATAL]}: {red.underline ${val}}`);
|
||||||
else
|
else
|
||||||
console.log(logger`{grey (${date})} {red.bold.underline [FATAL]}: {red.underline ${val}}`);
|
console.log(chalk`{grey (${date})} {red.bold.underline [FATAL]}: {red.underline ${val}}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -1,23 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of ArgonBot
|
|
||||||
*
|
|
||||||
* ArgonBot is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* ArgonBot is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with ArgonBot. If not, see <https: //www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
import { describe, it } from 'mocha';
|
|
||||||
|
|
||||||
describe('placeholder', () => {
|
|
||||||
it('placeholder', () => {
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
});
|
|
147
tests/utils/logger.test.ts
Normal file
147
tests/utils/logger.test.ts
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
/*
|
||||||
|
* This file is part of ArgonBot
|
||||||
|
*
|
||||||
|
* ArgonBot is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* ArgonBot is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with ArgonBot. If not, see <https: //www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
import { describe, it, beforeEach, afterEach } from 'mocha';
|
||||||
|
import { expect } from 'chai';
|
||||||
|
import * as sinon from 'sinon';
|
||||||
|
import { verbose, debug, info, warn, error, fatal } from '../../src/lib/utils/logger';
|
||||||
|
import { ELoggingScope } from '../../src/lib/utils/types';
|
||||||
|
|
||||||
|
describe('verbose()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
verbose('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
verbose('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('debug()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
debug('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
debug('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('info()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
info('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
info('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('warn()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
warn('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
warn('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('error()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
error('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
error('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('fatal()', () => {
|
||||||
|
let spy: sinon.SinonStub<[message?: any, ...optionalParams: any[]], void>;
|
||||||
|
beforeEach(() => {
|
||||||
|
spy = sinon.stub(console, 'log');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check message is being logged', () => {
|
||||||
|
fatal('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch('Test Message')).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('check if Logging Scopes are being logged', () => {
|
||||||
|
fatal('Test Message', ELoggingScope.Command);
|
||||||
|
expect(spy.calledWithMatch(/COMMAND/)).to.be.true;
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
spy.restore();
|
||||||
|
});
|
||||||
|
});
|
187
yarn.lock
187
yarn.lock
|
@ -687,6 +687,42 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@sinonjs/commons@npm:^1.6.0, @sinonjs/commons@npm:^1.7.0, @sinonjs/commons@npm:^1.8.3":
|
||||||
|
version: 1.8.3
|
||||||
|
resolution: "@sinonjs/commons@npm:1.8.3"
|
||||||
|
dependencies:
|
||||||
|
type-detect: 4.0.8
|
||||||
|
checksum: 6159726db5ce6bf9f2297f8427f7ca5b3dff45b31e5cee23496f1fa6ef0bb4eab878b23fb2c5e6446381f6a66aba4968ef2fc255c1180d753d4b8c271636a2e5
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@sinonjs/fake-timers@npm:^7.0.4, @sinonjs/fake-timers@npm:^7.1.0":
|
||||||
|
version: 7.1.2
|
||||||
|
resolution: "@sinonjs/fake-timers@npm:7.1.2"
|
||||||
|
dependencies:
|
||||||
|
"@sinonjs/commons": ^1.7.0
|
||||||
|
checksum: c84773d7973edad5511a31d2cc75023447b5cf714a84de9bb50eda45dda88a0d3bd2c30bf6e6e936da50a048d5352e2151c694e13e59b97d187ba1f329e9a00c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@sinonjs/samsam@npm:^6.0.2":
|
||||||
|
version: 6.0.2
|
||||||
|
resolution: "@sinonjs/samsam@npm:6.0.2"
|
||||||
|
dependencies:
|
||||||
|
"@sinonjs/commons": ^1.6.0
|
||||||
|
lodash.get: ^4.4.2
|
||||||
|
type-detect: ^4.0.8
|
||||||
|
checksum: bc1514edf15f4fa42a1bf27024b15f87654deb2999045c0e427659ff3c734eba44661fceae3624be23cc15ee9c6ddafe5209af2192845c6b267350b54eed1495
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@sinonjs/text-encoding@npm:^0.7.1":
|
||||||
|
version: 0.7.1
|
||||||
|
resolution: "@sinonjs/text-encoding@npm:0.7.1"
|
||||||
|
checksum: 130de0bb568c5f8a611ec21d1a4e3f80ab0c5ec333010f49cfc1adc5cba6d8808699c8a587a46b0f0b016a1f4c1389bc96141e773e8460fcbb441875b2e91ba7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@szmarczak/http-timer@npm:^1.1.2":
|
"@szmarczak/http-timer@npm:^1.1.2":
|
||||||
version: 1.1.2
|
version: 1.1.2
|
||||||
resolution: "@szmarczak/http-timer@npm:1.1.2"
|
resolution: "@szmarczak/http-timer@npm:1.1.2"
|
||||||
|
@ -759,22 +795,6 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/color-convert@npm:^2":
|
|
||||||
version: 2.0.0
|
|
||||||
resolution: "@types/color-convert@npm:2.0.0"
|
|
||||||
dependencies:
|
|
||||||
"@types/color-name": "*"
|
|
||||||
checksum: 027b68665dc2278cc2d83e796ada0a05a08aa5a11297e227c48c7f9f6eac518dec98578ab0072bd211963d3e4b431da70b20ea28d6c3136d0badfd3f9913baee
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/color-name@npm:*":
|
|
||||||
version: 1.1.1
|
|
||||||
resolution: "@types/color-name@npm:1.1.1"
|
|
||||||
checksum: b71fcad728cc68abcba1d405742134410c8f8eb3c2ef18113b047afca158ad23a4f2c229bcf71a38f4a818dead375c45b20db121d0e69259c2d81e97a740daa6
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/emscripten@npm:^1.38.0":
|
"@types/emscripten@npm:^1.38.0":
|
||||||
version: 1.39.4
|
version: 1.39.4
|
||||||
resolution: "@types/emscripten@npm:1.39.4"
|
resolution: "@types/emscripten@npm:1.39.4"
|
||||||
|
@ -883,6 +903,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/module-alias@npm:^2":
|
||||||
|
version: 2.0.0
|
||||||
|
resolution: "@types/module-alias@npm:2.0.0"
|
||||||
|
checksum: 0830a5291406d86230c5decba7ac9736ed6978cf587223de2349bc88c3939ceca82d1ac1c10bcedb19fd304d53ea2ae7f4023f2cdf6406cfe34570d5908ae141
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/node@npm:*, @types/node@npm:^15.12.2":
|
"@types/node@npm:*, @types/node@npm:^15.12.2":
|
||||||
version: 15.12.2
|
version: 15.12.2
|
||||||
resolution: "@types/node@npm:15.12.2"
|
resolution: "@types/node@npm:15.12.2"
|
||||||
|
@ -944,10 +971,12 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/std-mocks@npm:^1":
|
"@types/sinon@npm:^10.0.2":
|
||||||
version: 1.0.0
|
version: 10.0.2
|
||||||
resolution: "@types/std-mocks@npm:1.0.0"
|
resolution: "@types/sinon@npm:10.0.2"
|
||||||
checksum: acbdcbe8871897f3d5536b64835038992823c021ae4669c5cbe0641df0c8f6bed652f25f7e2de3c27c648c8650acb2195194b5edea0eefbbe50d9a6681d1beef
|
dependencies:
|
||||||
|
"@sinonjs/fake-timers": ^7.1.0
|
||||||
|
checksum: 442e62fe1962bfaa8d80314cfc4411f5a6afd98909c18bea570c8393829e4deb0f7478e3dbd02c52da9faa8229ea82be6b8c3876c6dc82a4e948506a38a2cb1d
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -1505,15 +1534,15 @@ __metadata:
|
||||||
"@rollup/plugin-json": ^4.1.0
|
"@rollup/plugin-json": ^4.1.0
|
||||||
"@rollup/plugin-typescript": ^8.2.1
|
"@rollup/plugin-typescript": ^8.2.1
|
||||||
"@types/chai": ^4.2.18
|
"@types/chai": ^4.2.18
|
||||||
"@types/color-convert": ^2
|
|
||||||
"@types/eslint": ^7.2.13
|
"@types/eslint": ^7.2.13
|
||||||
"@types/figlet": ^1.5.1
|
"@types/figlet": ^1.5.1
|
||||||
"@types/gradient-string": ^1
|
"@types/gradient-string": ^1
|
||||||
"@types/luxon": ^1
|
"@types/luxon": ^1
|
||||||
"@types/mocha": ^8.2.2
|
"@types/mocha": ^8.2.2
|
||||||
|
"@types/module-alias": ^2
|
||||||
"@types/node": ^15.12.2
|
"@types/node": ^15.12.2
|
||||||
"@types/rimraf": ^3
|
"@types/rimraf": ^3
|
||||||
"@types/std-mocks": ^1
|
"@types/sinon": ^10.0.2
|
||||||
"@types/yargs": ^17
|
"@types/yargs": ^17
|
||||||
"@typescript-eslint/eslint-plugin": ^4.27.0
|
"@typescript-eslint/eslint-plugin": ^4.27.0
|
||||||
"@typescript-eslint/parser": ^4.27.0
|
"@typescript-eslint/parser": ^4.27.0
|
||||||
|
@ -1522,7 +1551,7 @@ __metadata:
|
||||||
bufferutil: ^4.0.3
|
bufferutil: ^4.0.3
|
||||||
chai: ^4.3.4
|
chai: ^4.3.4
|
||||||
chalk: ^4.1.1
|
chalk: ^4.1.1
|
||||||
color-convert: ^2.0.1
|
config: ^3.3.6
|
||||||
discord.js: ^13.0.0-dev.a3cbcca13da1af416c219bd64a0a6e84bb87a057
|
discord.js: ^13.0.0-dev.a3cbcca13da1af416c219bd64a0a6e84bb87a057
|
||||||
erlpack: ^0.1.3
|
erlpack: ^0.1.3
|
||||||
eslint: ^7.28.0
|
eslint: ^7.28.0
|
||||||
|
@ -1536,16 +1565,16 @@ __metadata:
|
||||||
lint-staged: ^11.0.0
|
lint-staged: ^11.0.0
|
||||||
luxon: ^1.27.0
|
luxon: ^1.27.0
|
||||||
mocha: ^9.0.0
|
mocha: ^9.0.0
|
||||||
|
module-alias: ^2.2.2
|
||||||
node-gyp: ^8.1.0
|
node-gyp: ^8.1.0
|
||||||
nodemon: ^2.0.7
|
nodemon: ^2.0.7
|
||||||
nyc: ^15.1.0
|
nyc: ^15.1.0
|
||||||
rimraf: ^3.0.2
|
rimraf: ^3.0.2
|
||||||
rollup: ^2.52.0
|
rollup: ^2.52.0
|
||||||
rollup-plugin-terser: ^7.0.2
|
rollup-plugin-terser: ^7.0.2
|
||||||
|
sinon: ^11.1.1
|
||||||
sodium: ^3.0.2
|
sodium: ^3.0.2
|
||||||
standard-version: ^9.3.0
|
standard-version: ^9.3.0
|
||||||
std-mocks: ^1.0.1
|
|
||||||
supports-color: ^9.0.1
|
|
||||||
terminal-link: ^3.0.0
|
terminal-link: ^3.0.0
|
||||||
ts-node: ^10.0.0
|
ts-node: ^10.0.0
|
||||||
tslib: ^2.3.0
|
tslib: ^2.3.0
|
||||||
|
@ -2238,6 +2267,15 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"config@npm:^3.3.6":
|
||||||
|
version: 3.3.6
|
||||||
|
resolution: "config@npm:3.3.6"
|
||||||
|
dependencies:
|
||||||
|
json5: ^2.1.1
|
||||||
|
checksum: 53684cae0d1c9fa2fe6db41fa85201aa5ab92dcbe7596d63381e7e48f0cb3dea45bee812dc18ee91a3daf887ec0f3c57bf4acc555629ba7608d5a3b932e61c8e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"configstore@npm:^5.0.1":
|
"configstore@npm:^5.0.1":
|
||||||
version: 5.0.1
|
version: 5.0.1
|
||||||
resolution: "configstore@npm:5.0.1"
|
resolution: "configstore@npm:5.0.1"
|
||||||
|
@ -2750,7 +2788,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"diff@npm:5.0.0":
|
"diff@npm:5.0.0, diff@npm:^5.0.0":
|
||||||
version: 5.0.0
|
version: 5.0.0
|
||||||
resolution: "diff@npm:5.0.0"
|
resolution: "diff@npm:5.0.0"
|
||||||
checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46
|
checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46
|
||||||
|
@ -3810,13 +3848,6 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"has-flag@npm:^5.0.0":
|
|
||||||
version: 5.0.0
|
|
||||||
resolution: "has-flag@npm:5.0.0"
|
|
||||||
checksum: 06f9a9174492cbcf8e8bdf0773fbef6e7fc1b90feaf6316f2731fe731b95d94ceab960e6e5ce6d88a5ebe701c9ace556fb70501f3ee75a321d78c65eb712d5c0
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"has-own-prop@npm:^2.0.0":
|
"has-own-prop@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "has-own-prop@npm:2.0.0"
|
resolution: "has-own-prop@npm:2.0.0"
|
||||||
|
@ -4349,6 +4380,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"isarray@npm:0.0.1":
|
||||||
|
version: 0.0.1
|
||||||
|
resolution: "isarray@npm:0.0.1"
|
||||||
|
checksum: 49191f1425681df4a18c2f0f93db3adb85573bcdd6a4482539d98eac9e705d8961317b01175627e860516a2fc45f8f9302db26e5a380a97a520e272e2a40a8d4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"isarray@npm:~1.0.0":
|
"isarray@npm:~1.0.0":
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
resolution: "isarray@npm:1.0.0"
|
resolution: "isarray@npm:1.0.0"
|
||||||
|
@ -4557,7 +4595,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"json5@npm:^2.1.2":
|
"json5@npm:^2.1.1, json5@npm:^2.1.2":
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
resolution: "json5@npm:2.2.0"
|
resolution: "json5@npm:2.2.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -4595,6 +4633,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"just-extend@npm:^4.0.2":
|
||||||
|
version: 4.2.1
|
||||||
|
resolution: "just-extend@npm:4.2.1"
|
||||||
|
checksum: ff9fdede240fad313efeeeb68a660b942e5586d99c0058064c78884894a2690dc09bba44c994ad4e077e45d913fef01a9240c14a72c657b53687ac58de53b39c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"keyv@npm:^3.0.0":
|
"keyv@npm:^3.0.0":
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
resolution: "keyv@npm:3.1.0"
|
resolution: "keyv@npm:3.1.0"
|
||||||
|
@ -4765,6 +4810,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"lodash.get@npm:^4.4.2":
|
||||||
|
version: 4.4.2
|
||||||
|
resolution: "lodash.get@npm:4.4.2"
|
||||||
|
checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"lodash.ismatch@npm:^4.4.0":
|
"lodash.ismatch@npm:^4.4.0":
|
||||||
version: 4.4.0
|
version: 4.4.0
|
||||||
resolution: "lodash.ismatch@npm:4.4.0"
|
resolution: "lodash.ismatch@npm:4.4.0"
|
||||||
|
@ -4793,7 +4845,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"lodash@npm:^4.11.1, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.5.1":
|
"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.5.1":
|
||||||
version: 4.17.21
|
version: 4.17.21
|
||||||
resolution: "lodash@npm:4.17.21"
|
resolution: "lodash@npm:4.17.21"
|
||||||
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
|
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
|
||||||
|
@ -5190,6 +5242,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"module-alias@npm:^2.2.2":
|
||||||
|
version: 2.2.2
|
||||||
|
resolution: "module-alias@npm:2.2.2"
|
||||||
|
checksum: 4b5543f834b484033e5bd184096ca8276b9195e32e88883ee6ea8d3a4789d97c470d26f5fa7271bd7a26588bf67e4d27dbdb594ee327aef1c9619d855dc78342
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"ms@npm:2.0.0":
|
"ms@npm:2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "ms@npm:2.0.0"
|
resolution: "ms@npm:2.0.0"
|
||||||
|
@ -5250,6 +5309,19 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"nise@npm:^5.1.0":
|
||||||
|
version: 5.1.0
|
||||||
|
resolution: "nise@npm:5.1.0"
|
||||||
|
dependencies:
|
||||||
|
"@sinonjs/commons": ^1.7.0
|
||||||
|
"@sinonjs/fake-timers": ^7.0.4
|
||||||
|
"@sinonjs/text-encoding": ^0.7.1
|
||||||
|
just-extend: ^4.0.2
|
||||||
|
path-to-regexp: ^1.7.0
|
||||||
|
checksum: e3843cc125163ce99b7fb0328edf427b981be32c6c719684582cf0a46fb5206173835a9a14dedac3c4833e415ab0e0493f9f4d4163572a3a0c95db39b093166d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"node-addon-api@npm:*":
|
"node-addon-api@npm:*":
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
resolution: "node-addon-api@npm:4.0.0"
|
resolution: "node-addon-api@npm:4.0.0"
|
||||||
|
@ -5829,6 +5901,15 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"path-to-regexp@npm:^1.7.0":
|
||||||
|
version: 1.8.0
|
||||||
|
resolution: "path-to-regexp@npm:1.8.0"
|
||||||
|
dependencies:
|
||||||
|
isarray: 0.0.1
|
||||||
|
checksum: 709f6f083c0552514ef4780cb2e7e4cf49b0cc89a97439f2b7cc69a608982b7690fb5d1720a7473a59806508fc2dae0be751ba49f495ecf89fd8fbc62abccbcd
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"path-type@npm:^1.0.0":
|
"path-type@npm:^1.0.0":
|
||||||
version: 1.1.0
|
version: 1.1.0
|
||||||
resolution: "path-type@npm:1.1.0"
|
resolution: "path-type@npm:1.1.0"
|
||||||
|
@ -6671,6 +6752,20 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"sinon@npm:^11.1.1":
|
||||||
|
version: 11.1.1
|
||||||
|
resolution: "sinon@npm:11.1.1"
|
||||||
|
dependencies:
|
||||||
|
"@sinonjs/commons": ^1.8.3
|
||||||
|
"@sinonjs/fake-timers": ^7.1.0
|
||||||
|
"@sinonjs/samsam": ^6.0.2
|
||||||
|
diff: ^5.0.0
|
||||||
|
nise: ^5.1.0
|
||||||
|
supports-color: ^7.2.0
|
||||||
|
checksum: 1c060b8d4c7b6307c67a06f96409e338fb4e23d4046557ec3ebd40836060c1f7dd0ac376069eb110799d9843bda66354edb45042d11eeff4cfe8a6cef36c95be
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"slash@npm:^3.0.0":
|
"slash@npm:^3.0.0":
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
resolution: "slash@npm:3.0.0"
|
resolution: "slash@npm:3.0.0"
|
||||||
|
@ -6875,15 +6970,6 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"std-mocks@npm:^1.0.1":
|
|
||||||
version: 1.0.1
|
|
||||||
resolution: "std-mocks@npm:1.0.1"
|
|
||||||
dependencies:
|
|
||||||
lodash: ^4.11.1
|
|
||||||
checksum: b7b97a39c77e373ea243443e195030ca0e41e0f7e8ba7908993511c4346dfdee0fb0d6edc0a72d2ed4ad3a26a1a4434d7dbde65629172452f3462745a8c8433a
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"stream-buffers@npm:^3.0.2":
|
"stream-buffers@npm:^3.0.2":
|
||||||
version: 3.0.2
|
version: 3.0.2
|
||||||
resolution: "stream-buffers@npm:3.0.2"
|
resolution: "stream-buffers@npm:3.0.2"
|
||||||
|
@ -7122,7 +7208,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0":
|
"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0, supports-color@npm:^7.2.0":
|
||||||
version: 7.2.0
|
version: 7.2.0
|
||||||
resolution: "supports-color@npm:7.2.0"
|
resolution: "supports-color@npm:7.2.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -7131,15 +7217,6 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"supports-color@npm:^9.0.1":
|
|
||||||
version: 9.0.1
|
|
||||||
resolution: "supports-color@npm:9.0.1"
|
|
||||||
dependencies:
|
|
||||||
has-flag: ^5.0.0
|
|
||||||
checksum: 56071f46f8e5d44a8a0351a5de5683d3b8b652bc84cf45585f62c342e16bbeab22172cf955fe6ac25c376933551b412b9ccf53ecd5a633a078dbf246fd00d9f4
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"supports-hyperlinks@npm:^2.0.0, supports-hyperlinks@npm:^2.2.0":
|
"supports-hyperlinks@npm:^2.0.0, supports-hyperlinks@npm:^2.2.0":
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
resolution: "supports-hyperlinks@npm:2.2.0"
|
resolution: "supports-hyperlinks@npm:2.2.0"
|
||||||
|
@ -7441,7 +7518,7 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5":
|
"type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.5, type-detect@npm:^4.0.8":
|
||||||
version: 4.0.8
|
version: 4.0.8
|
||||||
resolution: "type-detect@npm:4.0.8"
|
resolution: "type-detect@npm:4.0.8"
|
||||||
checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15
|
checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15
|
||||||
|
|
Reference in a new issue