mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-01 21:52:19 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
21
web/node_modules/expect/LICENSE
generated
vendored
Normal file
21
web/node_modules/expect/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Facebook, Inc. and its affiliates.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
3
web/node_modules/expect/README.md
generated
vendored
Normal file
3
web/node_modules/expect/README.md
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# expect
|
||||
|
||||
This package exports the `expect` function used in [Jest](https://jestjs.io/). You can find its documentation [on Jest's website](https://jestjs.io/docs/en/expect.html).
|
60
web/node_modules/expect/build/asymmetricMatchers.d.ts
generated
vendored
Normal file
60
web/node_modules/expect/build/asymmetricMatchers.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
export declare class AsymmetricMatcher<T> {
|
||||
protected sample: T;
|
||||
$$typeof: symbol;
|
||||
inverse?: boolean;
|
||||
constructor(sample: T);
|
||||
}
|
||||
declare class Any extends AsymmetricMatcher<any> {
|
||||
constructor(sample: unknown);
|
||||
asymmetricMatch(other: unknown): boolean;
|
||||
toString(): string;
|
||||
getExpectedType(): string;
|
||||
toAsymmetricMatcher(): string;
|
||||
}
|
||||
declare class Anything extends AsymmetricMatcher<void> {
|
||||
asymmetricMatch(other: unknown): boolean;
|
||||
toString(): string;
|
||||
toAsymmetricMatcher(): string;
|
||||
}
|
||||
declare class ArrayContaining extends AsymmetricMatcher<Array<unknown>> {
|
||||
constructor(sample: Array<unknown>, inverse?: boolean);
|
||||
asymmetricMatch(other: Array<unknown>): boolean;
|
||||
toString(): string;
|
||||
getExpectedType(): string;
|
||||
}
|
||||
declare class ObjectContaining extends AsymmetricMatcher<Record<string, unknown>> {
|
||||
constructor(sample: Record<string, unknown>, inverse?: boolean);
|
||||
asymmetricMatch(other: any): boolean;
|
||||
toString(): string;
|
||||
getExpectedType(): string;
|
||||
}
|
||||
declare class StringContaining extends AsymmetricMatcher<string> {
|
||||
constructor(sample: string, inverse?: boolean);
|
||||
asymmetricMatch(other: string): boolean;
|
||||
toString(): string;
|
||||
getExpectedType(): string;
|
||||
}
|
||||
declare class StringMatching extends AsymmetricMatcher<RegExp> {
|
||||
constructor(sample: string | RegExp, inverse?: boolean);
|
||||
asymmetricMatch(other: string): boolean;
|
||||
toString(): string;
|
||||
getExpectedType(): string;
|
||||
}
|
||||
export declare const any: (expectedObject: unknown) => Any;
|
||||
export declare const anything: () => Anything;
|
||||
export declare const arrayContaining: (sample: Array<unknown>) => ArrayContaining;
|
||||
export declare const arrayNotContaining: (sample: Array<unknown>) => ArrayContaining;
|
||||
export declare const objectContaining: (sample: Record<string, unknown>) => ObjectContaining;
|
||||
export declare const objectNotContaining: (sample: Record<string, unknown>) => ObjectContaining;
|
||||
export declare const stringContaining: (expected: string) => StringContaining;
|
||||
export declare const stringNotContaining: (expected: string) => StringContaining;
|
||||
export declare const stringMatching: (expected: string | RegExp) => StringMatching;
|
||||
export declare const stringNotMatching: (expected: string | RegExp) => StringMatching;
|
||||
export {};
|
310
web/node_modules/expect/build/asymmetricMatchers.js
generated
vendored
Normal file
310
web/node_modules/expect/build/asymmetricMatchers.js
generated
vendored
Normal file
|
@ -0,0 +1,310 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.stringNotMatching = exports.stringMatching = exports.stringNotContaining = exports.stringContaining = exports.objectNotContaining = exports.objectContaining = exports.arrayNotContaining = exports.arrayContaining = exports.anything = exports.any = exports.AsymmetricMatcher = void 0;
|
||||
|
||||
var _jasmineUtils = require('./jasmineUtils');
|
||||
|
||||
var _utils = require('./utils');
|
||||
|
||||
var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
class AsymmetricMatcher {
|
||||
constructor(sample) {
|
||||
_defineProperty(this, 'sample', void 0);
|
||||
|
||||
_defineProperty(this, '$$typeof', void 0);
|
||||
|
||||
_defineProperty(this, 'inverse', void 0);
|
||||
|
||||
this.$$typeof = Symbol.for('jest.asymmetricMatcher');
|
||||
this.sample = sample;
|
||||
}
|
||||
}
|
||||
|
||||
exports.AsymmetricMatcher = AsymmetricMatcher;
|
||||
|
||||
class Any extends AsymmetricMatcher {
|
||||
constructor(sample) {
|
||||
if (typeof sample === 'undefined') {
|
||||
throw new TypeError(
|
||||
'any() expects to be passed a constructor function. ' +
|
||||
'Please pass one or use anything() to match any object.'
|
||||
);
|
||||
}
|
||||
|
||||
super(sample);
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
if (this.sample == String) {
|
||||
return typeof other == 'string' || other instanceof String;
|
||||
}
|
||||
|
||||
if (this.sample == Number) {
|
||||
return typeof other == 'number' || other instanceof Number;
|
||||
}
|
||||
|
||||
if (this.sample == Function) {
|
||||
return typeof other == 'function' || other instanceof Function;
|
||||
}
|
||||
|
||||
if (this.sample == Object) {
|
||||
return typeof other == 'object';
|
||||
}
|
||||
|
||||
if (this.sample == Boolean) {
|
||||
return typeof other == 'boolean';
|
||||
}
|
||||
/* global BigInt */
|
||||
|
||||
if (this.sample == BigInt) {
|
||||
return typeof other == 'bigint';
|
||||
}
|
||||
|
||||
if (this.sample == Symbol) {
|
||||
return typeof other == 'symbol';
|
||||
}
|
||||
|
||||
return other instanceof this.sample;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return 'Any';
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
if (this.sample == String) {
|
||||
return 'string';
|
||||
}
|
||||
|
||||
if (this.sample == Number) {
|
||||
return 'number';
|
||||
}
|
||||
|
||||
if (this.sample == Function) {
|
||||
return 'function';
|
||||
}
|
||||
|
||||
if (this.sample == Object) {
|
||||
return 'object';
|
||||
}
|
||||
|
||||
if (this.sample == Boolean) {
|
||||
return 'boolean';
|
||||
}
|
||||
|
||||
return (0, _jasmineUtils.fnNameFor)(this.sample);
|
||||
}
|
||||
|
||||
toAsymmetricMatcher() {
|
||||
return 'Any<' + (0, _jasmineUtils.fnNameFor)(this.sample) + '>';
|
||||
}
|
||||
}
|
||||
|
||||
class Anything extends AsymmetricMatcher {
|
||||
asymmetricMatch(other) {
|
||||
return !(0, _jasmineUtils.isUndefined)(other) && other !== null;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return 'Anything';
|
||||
} // No getExpectedType method, because it matches either null or undefined.
|
||||
|
||||
toAsymmetricMatcher() {
|
||||
return 'Anything';
|
||||
}
|
||||
}
|
||||
|
||||
class ArrayContaining extends AsymmetricMatcher {
|
||||
constructor(sample, inverse = false) {
|
||||
super(sample);
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
if (!Array.isArray(this.sample)) {
|
||||
throw new Error(
|
||||
`You must provide an array to ${this.toString()}, not '` +
|
||||
typeof this.sample +
|
||||
"'."
|
||||
);
|
||||
}
|
||||
|
||||
const result =
|
||||
this.sample.length === 0 ||
|
||||
(Array.isArray(other) &&
|
||||
this.sample.every(item =>
|
||||
other.some(another => (0, _jasmineUtils.equals)(item, another))
|
||||
));
|
||||
return this.inverse ? !result : result;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return `Array${this.inverse ? 'Not' : ''}Containing`;
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
return 'array';
|
||||
}
|
||||
}
|
||||
|
||||
class ObjectContaining extends AsymmetricMatcher {
|
||||
constructor(sample, inverse = false) {
|
||||
super(sample);
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
if (typeof this.sample !== 'object') {
|
||||
throw new Error(
|
||||
`You must provide an object to ${this.toString()}, not '` +
|
||||
typeof this.sample +
|
||||
"'."
|
||||
);
|
||||
}
|
||||
|
||||
if (this.inverse) {
|
||||
for (const property in this.sample) {
|
||||
if (
|
||||
(0, _jasmineUtils.hasProperty)(other, property) &&
|
||||
(0, _jasmineUtils.equals)(this.sample[property], other[property]) &&
|
||||
!(0, _utils.emptyObject)(this.sample[property]) &&
|
||||
!(0, _utils.emptyObject)(other[property])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
for (const property in this.sample) {
|
||||
if (
|
||||
!(0, _jasmineUtils.hasProperty)(other, property) ||
|
||||
!(0, _jasmineUtils.equals)(this.sample[property], other[property])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
toString() {
|
||||
return `Object${this.inverse ? 'Not' : ''}Containing`;
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
return 'object';
|
||||
}
|
||||
}
|
||||
|
||||
class StringContaining extends AsymmetricMatcher {
|
||||
constructor(sample, inverse = false) {
|
||||
if (!(0, _jasmineUtils.isA)('String', sample)) {
|
||||
throw new Error('Expected is not a string');
|
||||
}
|
||||
|
||||
super(sample);
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
const result =
|
||||
(0, _jasmineUtils.isA)('String', other) && other.includes(this.sample);
|
||||
return this.inverse ? !result : result;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return `String${this.inverse ? 'Not' : ''}Containing`;
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
return 'string';
|
||||
}
|
||||
}
|
||||
|
||||
class StringMatching extends AsymmetricMatcher {
|
||||
constructor(sample, inverse = false) {
|
||||
if (
|
||||
!(0, _jasmineUtils.isA)('String', sample) &&
|
||||
!(0, _jasmineUtils.isA)('RegExp', sample)
|
||||
) {
|
||||
throw new Error('Expected is not a String or a RegExp');
|
||||
}
|
||||
|
||||
super(new RegExp(sample));
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
const result =
|
||||
(0, _jasmineUtils.isA)('String', other) && this.sample.test(other);
|
||||
return this.inverse ? !result : result;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return `String${this.inverse ? 'Not' : ''}Matching`;
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
return 'string';
|
||||
}
|
||||
}
|
||||
|
||||
const any = expectedObject => new Any(expectedObject);
|
||||
|
||||
exports.any = any;
|
||||
|
||||
const anything = () => new Anything();
|
||||
|
||||
exports.anything = anything;
|
||||
|
||||
const arrayContaining = sample => new ArrayContaining(sample);
|
||||
|
||||
exports.arrayContaining = arrayContaining;
|
||||
|
||||
const arrayNotContaining = sample => new ArrayContaining(sample, true);
|
||||
|
||||
exports.arrayNotContaining = arrayNotContaining;
|
||||
|
||||
const objectContaining = sample => new ObjectContaining(sample);
|
||||
|
||||
exports.objectContaining = objectContaining;
|
||||
|
||||
const objectNotContaining = sample => new ObjectContaining(sample, true);
|
||||
|
||||
exports.objectNotContaining = objectNotContaining;
|
||||
|
||||
const stringContaining = expected => new StringContaining(expected);
|
||||
|
||||
exports.stringContaining = stringContaining;
|
||||
|
||||
const stringNotContaining = expected => new StringContaining(expected, true);
|
||||
|
||||
exports.stringNotContaining = stringNotContaining;
|
||||
|
||||
const stringMatching = expected => new StringMatching(expected);
|
||||
|
||||
exports.stringMatching = stringMatching;
|
||||
|
||||
const stringNotMatching = expected => new StringMatching(expected, true);
|
||||
|
||||
exports.stringNotMatching = stringNotMatching;
|
10
web/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts
generated
vendored
Normal file
10
web/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { Expect } from './types';
|
||||
declare const extractExpectedAssertionsErrors: Expect['extractExpectedAssertionsErrors'];
|
||||
export default extractExpectedAssertionsErrors;
|
90
web/node_modules/expect/build/extractExpectedAssertionsErrors.js
generated
vendored
Normal file
90
web/node_modules/expect/build/extractExpectedAssertionsErrors.js
generated
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _jestMatcherUtils = require('jest-matcher-utils');
|
||||
|
||||
var _jestMatchersObject = require('./jestMatchersObject');
|
||||
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
const resetAssertionsLocalState = () => {
|
||||
(0, _jestMatchersObject.setState)({
|
||||
assertionCalls: 0,
|
||||
expectedAssertionsNumber: null,
|
||||
isExpectingAssertions: false
|
||||
});
|
||||
}; // Create and format all errors related to the mismatched number of `expect`
|
||||
// calls and reset the matcher's state.
|
||||
|
||||
const extractExpectedAssertionsErrors = () => {
|
||||
const result = [];
|
||||
const {
|
||||
assertionCalls,
|
||||
expectedAssertionsNumber,
|
||||
expectedAssertionsNumberError,
|
||||
isExpectingAssertions,
|
||||
isExpectingAssertionsError
|
||||
} = (0, _jestMatchersObject.getState)();
|
||||
resetAssertionsLocalState();
|
||||
|
||||
if (
|
||||
typeof expectedAssertionsNumber === 'number' &&
|
||||
assertionCalls !== expectedAssertionsNumber
|
||||
) {
|
||||
const numOfAssertionsExpected = (0, _jestMatcherUtils.EXPECTED_COLOR)(
|
||||
(0, _jestMatcherUtils.pluralize)('assertion', expectedAssertionsNumber)
|
||||
);
|
||||
expectedAssertionsNumberError.message =
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
'.assertions',
|
||||
'',
|
||||
String(expectedAssertionsNumber),
|
||||
{
|
||||
isDirectExpectCall: true
|
||||
}
|
||||
) +
|
||||
'\n\n' +
|
||||
`Expected ${numOfAssertionsExpected} to be called but received ` +
|
||||
(0, _jestMatcherUtils.RECEIVED_COLOR)(
|
||||
(0, _jestMatcherUtils.pluralize)('assertion call', assertionCalls || 0)
|
||||
) +
|
||||
'.';
|
||||
result.push({
|
||||
actual: assertionCalls.toString(),
|
||||
error: expectedAssertionsNumberError,
|
||||
expected: expectedAssertionsNumber.toString()
|
||||
});
|
||||
}
|
||||
|
||||
if (isExpectingAssertions && assertionCalls === 0) {
|
||||
const expected = (0, _jestMatcherUtils.EXPECTED_COLOR)(
|
||||
'at least one assertion'
|
||||
);
|
||||
const received = (0, _jestMatcherUtils.RECEIVED_COLOR)('received none');
|
||||
isExpectingAssertionsError.message =
|
||||
(0, _jestMatcherUtils.matcherHint)('.hasAssertions', '', '', {
|
||||
isDirectExpectCall: true
|
||||
}) +
|
||||
'\n\n' +
|
||||
`Expected ${expected} to be called but ${received}.`;
|
||||
result.push({
|
||||
actual: 'none',
|
||||
error: isExpectingAssertionsError,
|
||||
expected: 'at least one'
|
||||
});
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
var _default = extractExpectedAssertionsErrors;
|
||||
exports.default = _default;
|
15
web/node_modules/expect/build/index.d.ts
generated
vendored
Normal file
15
web/node_modules/expect/build/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { Expect, MatcherState as JestMatcherState, Matchers as MatcherInterface } from './types';
|
||||
declare const expectExport: Expect;
|
||||
declare namespace expectExport {
|
||||
type MatcherState = JestMatcherState;
|
||||
interface Matchers<R> extends MatcherInterface<R> {
|
||||
}
|
||||
}
|
||||
export = expectExport;
|
435
web/node_modules/expect/build/index.js
generated
vendored
Normal file
435
web/node_modules/expect/build/index.js
generated
vendored
Normal file
|
@ -0,0 +1,435 @@
|
|||
'use strict';
|
||||
|
||||
var matcherUtils = _interopRequireWildcard(require('jest-matcher-utils'));
|
||||
|
||||
var _asymmetricMatchers = require('./asymmetricMatchers');
|
||||
|
||||
var _extractExpectedAssertionsErrors = _interopRequireDefault(
|
||||
require('./extractExpectedAssertionsErrors')
|
||||
);
|
||||
|
||||
var _jasmineUtils = require('./jasmineUtils');
|
||||
|
||||
var _jestMatchersObject = require('./jestMatchersObject');
|
||||
|
||||
var _matchers = _interopRequireDefault(require('./matchers'));
|
||||
|
||||
var _spyMatchers = _interopRequireDefault(require('./spyMatchers'));
|
||||
|
||||
var _toThrowMatchers = _interopRequireWildcard(require('./toThrowMatchers'));
|
||||
|
||||
var _utils = require('./utils');
|
||||
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
}
|
||||
|
||||
function _getRequireWildcardCache() {
|
||||
if (typeof WeakMap !== 'function') return null;
|
||||
var cache = new WeakMap();
|
||||
_getRequireWildcardCache = function () {
|
||||
return cache;
|
||||
};
|
||||
return cache;
|
||||
}
|
||||
|
||||
function _interopRequireWildcard(obj) {
|
||||
if (obj && obj.__esModule) {
|
||||
return obj;
|
||||
}
|
||||
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
|
||||
return {default: obj};
|
||||
}
|
||||
var cache = _getRequireWildcardCache();
|
||||
if (cache && cache.has(obj)) {
|
||||
return cache.get(obj);
|
||||
}
|
||||
var newObj = {};
|
||||
var hasPropertyDescriptor =
|
||||
Object.defineProperty && Object.getOwnPropertyDescriptor;
|
||||
for (var key in obj) {
|
||||
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
||||
var desc = hasPropertyDescriptor
|
||||
? Object.getOwnPropertyDescriptor(obj, key)
|
||||
: null;
|
||||
if (desc && (desc.get || desc.set)) {
|
||||
Object.defineProperty(newObj, key, desc);
|
||||
} else {
|
||||
newObj[key] = obj[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
newObj.default = obj;
|
||||
if (cache) {
|
||||
cache.set(obj, newObj);
|
||||
}
|
||||
return newObj;
|
||||
}
|
||||
|
||||
var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
|
||||
var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
|
||||
var Promise = global[Symbol.for('jest-native-promise')] || global.Promise;
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
class JestAssertionError extends Error {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
|
||||
_defineProperty(this, 'matcherResult', void 0);
|
||||
}
|
||||
}
|
||||
|
||||
const isPromise = obj =>
|
||||
!!obj &&
|
||||
(typeof obj === 'object' || typeof obj === 'function') &&
|
||||
typeof obj.then === 'function';
|
||||
|
||||
const createToThrowErrorMatchingSnapshotMatcher = function (matcher) {
|
||||
return function (received, testNameOrInlineSnapshot) {
|
||||
return matcher.apply(this, [received, testNameOrInlineSnapshot, true]);
|
||||
};
|
||||
};
|
||||
|
||||
const getPromiseMatcher = (name, matcher) => {
|
||||
if (name === 'toThrow' || name === 'toThrowError') {
|
||||
return (0, _toThrowMatchers.createMatcher)(name, true);
|
||||
} else if (
|
||||
name === 'toThrowErrorMatchingSnapshot' ||
|
||||
name === 'toThrowErrorMatchingInlineSnapshot'
|
||||
) {
|
||||
return createToThrowErrorMatchingSnapshotMatcher(matcher);
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
const expect = (actual, ...rest) => {
|
||||
if (rest.length !== 0) {
|
||||
throw new Error('Expect takes at most one argument.');
|
||||
}
|
||||
|
||||
const allMatchers = (0, _jestMatchersObject.getMatchers)();
|
||||
const expectation = {
|
||||
not: {},
|
||||
rejects: {
|
||||
not: {}
|
||||
},
|
||||
resolves: {
|
||||
not: {}
|
||||
}
|
||||
};
|
||||
const err = new JestAssertionError();
|
||||
Object.keys(allMatchers).forEach(name => {
|
||||
const matcher = allMatchers[name];
|
||||
const promiseMatcher = getPromiseMatcher(name, matcher) || matcher;
|
||||
expectation[name] = makeThrowingMatcher(matcher, false, '', actual);
|
||||
expectation.not[name] = makeThrowingMatcher(matcher, true, '', actual);
|
||||
expectation.resolves[name] = makeResolveMatcher(
|
||||
name,
|
||||
promiseMatcher,
|
||||
false,
|
||||
actual,
|
||||
err
|
||||
);
|
||||
expectation.resolves.not[name] = makeResolveMatcher(
|
||||
name,
|
||||
promiseMatcher,
|
||||
true,
|
||||
actual,
|
||||
err
|
||||
);
|
||||
expectation.rejects[name] = makeRejectMatcher(
|
||||
name,
|
||||
promiseMatcher,
|
||||
false,
|
||||
actual,
|
||||
err
|
||||
);
|
||||
expectation.rejects.not[name] = makeRejectMatcher(
|
||||
name,
|
||||
promiseMatcher,
|
||||
true,
|
||||
actual,
|
||||
err
|
||||
);
|
||||
});
|
||||
return expectation;
|
||||
};
|
||||
|
||||
const getMessage = message =>
|
||||
(message && message()) ||
|
||||
matcherUtils.RECEIVED_COLOR('No message was specified for this matcher.');
|
||||
|
||||
const makeResolveMatcher = (matcherName, matcher, isNot, actual, outerErr) => (
|
||||
...args
|
||||
) => {
|
||||
const options = {
|
||||
isNot,
|
||||
promise: 'resolves'
|
||||
};
|
||||
|
||||
if (!isPromise(actual)) {
|
||||
throw new JestAssertionError(
|
||||
matcherUtils.matcherErrorMessage(
|
||||
matcherUtils.matcherHint(matcherName, undefined, '', options),
|
||||
`${matcherUtils.RECEIVED_COLOR('received')} value must be a promise`,
|
||||
matcherUtils.printWithType(
|
||||
'Received',
|
||||
actual,
|
||||
matcherUtils.printReceived
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
const innerErr = new JestAssertionError();
|
||||
return actual.then(
|
||||
result =>
|
||||
makeThrowingMatcher(matcher, isNot, 'resolves', result, innerErr).apply(
|
||||
null,
|
||||
args
|
||||
),
|
||||
reason => {
|
||||
outerErr.message =
|
||||
matcherUtils.matcherHint(matcherName, undefined, '', options) +
|
||||
'\n\n' +
|
||||
`Received promise rejected instead of resolved\n` +
|
||||
`Rejected to value: ${matcherUtils.printReceived(reason)}`;
|
||||
return Promise.reject(outerErr);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
const makeRejectMatcher = (matcherName, matcher, isNot, actual, outerErr) => (
|
||||
...args
|
||||
) => {
|
||||
const options = {
|
||||
isNot,
|
||||
promise: 'rejects'
|
||||
};
|
||||
const actualWrapper = typeof actual === 'function' ? actual() : actual;
|
||||
|
||||
if (!isPromise(actualWrapper)) {
|
||||
throw new JestAssertionError(
|
||||
matcherUtils.matcherErrorMessage(
|
||||
matcherUtils.matcherHint(matcherName, undefined, '', options),
|
||||
`${matcherUtils.RECEIVED_COLOR(
|
||||
'received'
|
||||
)} value must be a promise or a function returning a promise`,
|
||||
matcherUtils.printWithType(
|
||||
'Received',
|
||||
actual,
|
||||
matcherUtils.printReceived
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
const innerErr = new JestAssertionError();
|
||||
return actualWrapper.then(
|
||||
result => {
|
||||
outerErr.message =
|
||||
matcherUtils.matcherHint(matcherName, undefined, '', options) +
|
||||
'\n\n' +
|
||||
`Received promise resolved instead of rejected\n` +
|
||||
`Resolved to value: ${matcherUtils.printReceived(result)}`;
|
||||
return Promise.reject(outerErr);
|
||||
},
|
||||
reason =>
|
||||
makeThrowingMatcher(matcher, isNot, 'rejects', reason, innerErr).apply(
|
||||
null,
|
||||
args
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
const makeThrowingMatcher = (matcher, isNot, promise, actual, err) =>
|
||||
function throwingMatcher(...args) {
|
||||
let throws = true;
|
||||
const utils = {
|
||||
...matcherUtils,
|
||||
iterableEquality: _utils.iterableEquality,
|
||||
subsetEquality: _utils.subsetEquality
|
||||
};
|
||||
const matcherContext = {
|
||||
// When throws is disabled, the matcher will not throw errors during test
|
||||
// execution but instead add them to the global matcher state. If a
|
||||
// matcher throws, test execution is normally stopped immediately. The
|
||||
// snapshot matcher uses it because we want to log all snapshot
|
||||
// failures in a test.
|
||||
dontThrow: () => (throws = false),
|
||||
...(0, _jestMatchersObject.getState)(),
|
||||
equals: _jasmineUtils.equals,
|
||||
error: err,
|
||||
isNot,
|
||||
promise,
|
||||
utils
|
||||
};
|
||||
|
||||
const processResult = (result, asyncError) => {
|
||||
_validateResult(result);
|
||||
|
||||
(0, _jestMatchersObject.getState)().assertionCalls++;
|
||||
|
||||
if ((result.pass && isNot) || (!result.pass && !isNot)) {
|
||||
// XOR
|
||||
const message = getMessage(result.message);
|
||||
let error;
|
||||
|
||||
if (err) {
|
||||
error = err;
|
||||
error.message = message;
|
||||
} else if (asyncError) {
|
||||
error = asyncError;
|
||||
error.message = message;
|
||||
} else {
|
||||
error = new JestAssertionError(message); // Try to remove this function from the stack trace frame.
|
||||
// Guard for some environments (browsers) that do not support this feature.
|
||||
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(error, throwingMatcher);
|
||||
}
|
||||
} // Passing the result of the matcher with the error so that a custom
|
||||
// reporter could access the actual and expected objects of the result
|
||||
// for example in order to display a custom visual diff
|
||||
|
||||
error.matcherResult = result;
|
||||
|
||||
if (throws) {
|
||||
throw error;
|
||||
} else {
|
||||
(0, _jestMatchersObject.getState)().suppressedErrors.push(error);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const handleError = error => {
|
||||
if (
|
||||
matcher[_jestMatchersObject.INTERNAL_MATCHER_FLAG] === true &&
|
||||
!(error instanceof JestAssertionError) &&
|
||||
error.name !== 'PrettyFormatPluginError' && // Guard for some environments (browsers) that do not support this feature.
|
||||
Error.captureStackTrace
|
||||
) {
|
||||
// Try to remove this and deeper functions from the stack trace frame.
|
||||
Error.captureStackTrace(error, throwingMatcher);
|
||||
}
|
||||
|
||||
throw error;
|
||||
};
|
||||
|
||||
let potentialResult;
|
||||
|
||||
try {
|
||||
potentialResult =
|
||||
matcher[_jestMatchersObject.INTERNAL_MATCHER_FLAG] === true
|
||||
? matcher.call(matcherContext, actual, ...args) // It's a trap specifically for inline snapshot to capture this name
|
||||
: // in the stack trace, so that it can correctly get the custom matcher
|
||||
// function call.
|
||||
(function __EXTERNAL_MATCHER_TRAP__() {
|
||||
return matcher.call(matcherContext, actual, ...args);
|
||||
})();
|
||||
|
||||
if (isPromise(potentialResult)) {
|
||||
const asyncResult = potentialResult;
|
||||
const asyncError = new JestAssertionError();
|
||||
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(asyncError, throwingMatcher);
|
||||
}
|
||||
|
||||
return asyncResult
|
||||
.then(aResult => processResult(aResult, asyncError))
|
||||
.catch(handleError);
|
||||
} else {
|
||||
const syncResult = potentialResult;
|
||||
return processResult(syncResult);
|
||||
}
|
||||
} catch (error) {
|
||||
return handleError(error);
|
||||
}
|
||||
};
|
||||
|
||||
expect.extend = matchers =>
|
||||
(0, _jestMatchersObject.setMatchers)(matchers, false, expect);
|
||||
|
||||
expect.anything = _asymmetricMatchers.anything;
|
||||
expect.any = _asymmetricMatchers.any;
|
||||
expect.not = {
|
||||
arrayContaining: _asymmetricMatchers.arrayNotContaining,
|
||||
objectContaining: _asymmetricMatchers.objectNotContaining,
|
||||
stringContaining: _asymmetricMatchers.stringNotContaining,
|
||||
stringMatching: _asymmetricMatchers.stringNotMatching
|
||||
};
|
||||
expect.objectContaining = _asymmetricMatchers.objectContaining;
|
||||
expect.arrayContaining = _asymmetricMatchers.arrayContaining;
|
||||
expect.stringContaining = _asymmetricMatchers.stringContaining;
|
||||
expect.stringMatching = _asymmetricMatchers.stringMatching;
|
||||
|
||||
const _validateResult = result => {
|
||||
if (
|
||||
typeof result !== 'object' ||
|
||||
typeof result.pass !== 'boolean' ||
|
||||
(result.message &&
|
||||
typeof result.message !== 'string' &&
|
||||
typeof result.message !== 'function')
|
||||
) {
|
||||
throw new Error(
|
||||
'Unexpected return from a matcher function.\n' +
|
||||
'Matcher functions should ' +
|
||||
'return an object in the following format:\n' +
|
||||
' {message?: string | function, pass: boolean}\n' +
|
||||
`'${matcherUtils.stringify(result)}' was returned`
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
function assertions(expected) {
|
||||
const error = new Error();
|
||||
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(error, assertions);
|
||||
}
|
||||
|
||||
(0, _jestMatchersObject.getState)().expectedAssertionsNumber = expected;
|
||||
(0, _jestMatchersObject.getState)().expectedAssertionsNumberError = error;
|
||||
}
|
||||
|
||||
function hasAssertions(...args) {
|
||||
const error = new Error();
|
||||
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(error, hasAssertions);
|
||||
}
|
||||
|
||||
matcherUtils.ensureNoExpected(args[0], '.hasAssertions');
|
||||
(0, _jestMatchersObject.getState)().isExpectingAssertions = true;
|
||||
(0, _jestMatchersObject.getState)().isExpectingAssertionsError = error;
|
||||
} // add default jest matchers
|
||||
|
||||
(0, _jestMatchersObject.setMatchers)(_matchers.default, true, expect);
|
||||
(0, _jestMatchersObject.setMatchers)(_spyMatchers.default, true, expect);
|
||||
(0, _jestMatchersObject.setMatchers)(_toThrowMatchers.default, true, expect);
|
||||
|
||||
expect.addSnapshotSerializer = () => void 0;
|
||||
|
||||
expect.assertions = assertions;
|
||||
expect.hasAssertions = hasAssertions;
|
||||
expect.getState = _jestMatchersObject.getState;
|
||||
expect.setState = _jestMatchersObject.setState;
|
||||
expect.extractExpectedAssertionsErrors =
|
||||
_extractExpectedAssertionsErrors.default;
|
||||
const expectExport = expect;
|
||||
module.exports = expectExport;
|
8
web/node_modules/expect/build/jasmineUtils.d.ts
generated
vendored
Normal file
8
web/node_modules/expect/build/jasmineUtils.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
import type { Tester } from './types';
|
||||
export declare function equals(a: unknown, b: unknown, customTesters?: Array<Tester>, strictCheck?: boolean): boolean;
|
||||
export declare function isA(typeName: string, value: unknown): boolean;
|
||||
export declare function fnNameFor(func: Function): string;
|
||||
export declare function isUndefined(obj: any): boolean;
|
||||
export declare function hasProperty(obj: object | null, property: string): boolean;
|
||||
export declare function isImmutableUnorderedKeyed(maybeKeyed: any): boolean;
|
||||
export declare function isImmutableUnorderedSet(maybeSet: any): boolean;
|
312
web/node_modules/expect/build/jasmineUtils.js
generated
vendored
Normal file
312
web/node_modules/expect/build/jasmineUtils.js
generated
vendored
Normal file
|
@ -0,0 +1,312 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.equals = equals;
|
||||
exports.isA = isA;
|
||||
exports.fnNameFor = fnNameFor;
|
||||
exports.isUndefined = isUndefined;
|
||||
exports.hasProperty = hasProperty;
|
||||
exports.isImmutableUnorderedKeyed = isImmutableUnorderedKeyed;
|
||||
exports.isImmutableUnorderedSet = isImmutableUnorderedSet;
|
||||
|
||||
/*
|
||||
Copyright (c) 2008-2016 Pivotal Labs
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
/* eslint-disable */
|
||||
// Extracted out of jasmine 2.5.2
|
||||
function equals(a, b, customTesters, strictCheck) {
|
||||
customTesters = customTesters || [];
|
||||
return eq(a, b, [], [], customTesters, strictCheck ? hasKey : hasDefinedKey);
|
||||
}
|
||||
|
||||
const functionToString = Function.prototype.toString;
|
||||
|
||||
function isAsymmetric(obj) {
|
||||
return !!obj && isA('Function', obj.asymmetricMatch);
|
||||
}
|
||||
|
||||
function asymmetricMatch(a, b) {
|
||||
var asymmetricA = isAsymmetric(a),
|
||||
asymmetricB = isAsymmetric(b);
|
||||
|
||||
if (asymmetricA && asymmetricB) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (asymmetricA) {
|
||||
return a.asymmetricMatch(b);
|
||||
}
|
||||
|
||||
if (asymmetricB) {
|
||||
return b.asymmetricMatch(a);
|
||||
}
|
||||
} // Equality function lovingly adapted from isEqual in
|
||||
// [Underscore](http://underscorejs.org)
|
||||
|
||||
function eq(a, b, aStack, bStack, customTesters, hasKey) {
|
||||
var result = true;
|
||||
var asymmetricResult = asymmetricMatch(a, b);
|
||||
|
||||
if (asymmetricResult !== undefined) {
|
||||
return asymmetricResult;
|
||||
}
|
||||
|
||||
for (var i = 0; i < customTesters.length; i++) {
|
||||
var customTesterResult = customTesters[i](a, b);
|
||||
|
||||
if (customTesterResult !== undefined) {
|
||||
return customTesterResult;
|
||||
}
|
||||
}
|
||||
|
||||
if (a instanceof Error && b instanceof Error) {
|
||||
return a.message == b.message;
|
||||
}
|
||||
|
||||
if (Object.is(a, b)) {
|
||||
return true;
|
||||
} // A strict comparison is necessary because `null == undefined`.
|
||||
|
||||
if (a === null || b === null) {
|
||||
return a === b;
|
||||
}
|
||||
|
||||
var className = Object.prototype.toString.call(a);
|
||||
|
||||
if (className != Object.prototype.toString.call(b)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (className) {
|
||||
case '[object Boolean]':
|
||||
case '[object String]':
|
||||
case '[object Number]':
|
||||
if (typeof a !== typeof b) {
|
||||
// One is a primitive, one a `new Primitive()`
|
||||
return false;
|
||||
} else if (typeof a !== 'object' && typeof b !== 'object') {
|
||||
// both are proper primitives
|
||||
return Object.is(a, b);
|
||||
} else {
|
||||
// both are `new Primitive()`s
|
||||
return Object.is(a.valueOf(), b.valueOf());
|
||||
}
|
||||
|
||||
case '[object Date]':
|
||||
// Coerce dates to numeric primitive values. Dates are compared by their
|
||||
// millisecond representations. Note that invalid dates with millisecond representations
|
||||
// of `NaN` are not equivalent.
|
||||
return +a == +b;
|
||||
// RegExps are compared by their source patterns and flags.
|
||||
|
||||
case '[object RegExp]':
|
||||
return a.source === b.source && a.flags === b.flags;
|
||||
}
|
||||
|
||||
if (typeof a !== 'object' || typeof b !== 'object') {
|
||||
return false;
|
||||
} // Use DOM3 method isEqualNode (IE>=9)
|
||||
|
||||
if (isDomNode(a) && isDomNode(b)) {
|
||||
return a.isEqualNode(b);
|
||||
} // Used to detect circular references.
|
||||
|
||||
var length = aStack.length;
|
||||
|
||||
while (length--) {
|
||||
// Linear search. Performance is inversely proportional to the number of
|
||||
// unique nested structures.
|
||||
// circular references at same depth are equal
|
||||
// circular reference is not equal to non-circular one
|
||||
if (aStack[length] === a) {
|
||||
return bStack[length] === b;
|
||||
} else if (bStack[length] === b) {
|
||||
return false;
|
||||
}
|
||||
} // Add the first object to the stack of traversed objects.
|
||||
|
||||
aStack.push(a);
|
||||
bStack.push(b);
|
||||
var size = 0; // Recursively compare objects and arrays.
|
||||
// Compare array lengths to determine if a deep comparison is necessary.
|
||||
|
||||
if (className == '[object Array]') {
|
||||
size = a.length;
|
||||
|
||||
if (size !== b.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
while (size--) {
|
||||
result = eq(a[size], b[size], aStack, bStack, customTesters, hasKey);
|
||||
|
||||
if (!result) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} // Deep compare objects.
|
||||
|
||||
var aKeys = keys(a, className == '[object Array]', hasKey),
|
||||
key;
|
||||
size = aKeys.length; // Ensure that both objects contain the same number of properties before comparing deep equality.
|
||||
|
||||
if (keys(b, className == '[object Array]', hasKey).length !== size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
while (size--) {
|
||||
key = aKeys[size]; // Deep compare each member
|
||||
|
||||
result =
|
||||
hasKey(b, key) &&
|
||||
eq(a[key], b[key], aStack, bStack, customTesters, hasKey);
|
||||
|
||||
if (!result) {
|
||||
return false;
|
||||
}
|
||||
} // Remove the first object from the stack of traversed objects.
|
||||
|
||||
aStack.pop();
|
||||
bStack.pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
function keys(obj, isArray, hasKey) {
|
||||
var allKeys = (function (o) {
|
||||
var keys = [];
|
||||
|
||||
for (var key in o) {
|
||||
if (hasKey(o, key)) {
|
||||
keys.push(key);
|
||||
}
|
||||
}
|
||||
|
||||
return keys.concat(
|
||||
Object.getOwnPropertySymbols(o).filter(
|
||||
symbol => Object.getOwnPropertyDescriptor(o, symbol).enumerable
|
||||
)
|
||||
);
|
||||
})(obj);
|
||||
|
||||
if (!isArray) {
|
||||
return allKeys;
|
||||
}
|
||||
|
||||
var extraKeys = [];
|
||||
|
||||
if (allKeys.length === 0) {
|
||||
return allKeys;
|
||||
}
|
||||
|
||||
for (var x = 0; x < allKeys.length; x++) {
|
||||
if (typeof allKeys[x] === 'symbol' || !allKeys[x].match(/^[0-9]+$/)) {
|
||||
extraKeys.push(allKeys[x]);
|
||||
}
|
||||
}
|
||||
|
||||
return extraKeys;
|
||||
}
|
||||
|
||||
function hasDefinedKey(obj, key) {
|
||||
return hasKey(obj, key) && obj[key] !== undefined;
|
||||
}
|
||||
|
||||
function hasKey(obj, key) {
|
||||
return Object.prototype.hasOwnProperty.call(obj, key);
|
||||
}
|
||||
|
||||
function isA(typeName, value) {
|
||||
return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
|
||||
}
|
||||
|
||||
function isDomNode(obj) {
|
||||
return (
|
||||
obj !== null &&
|
||||
typeof obj === 'object' &&
|
||||
typeof obj.nodeType === 'number' &&
|
||||
typeof obj.nodeName === 'string' &&
|
||||
typeof obj.isEqualNode === 'function'
|
||||
);
|
||||
}
|
||||
|
||||
function fnNameFor(func) {
|
||||
if (func.name) {
|
||||
return func.name;
|
||||
}
|
||||
|
||||
const matches = functionToString
|
||||
.call(func)
|
||||
.match(/^(?:async)?\s*function\s*\*?\s*([\w$]+)\s*\(/);
|
||||
return matches ? matches[1] : '<anonymous>';
|
||||
}
|
||||
|
||||
function isUndefined(obj) {
|
||||
return obj === void 0;
|
||||
}
|
||||
|
||||
function getPrototype(obj) {
|
||||
if (Object.getPrototypeOf) {
|
||||
return Object.getPrototypeOf(obj);
|
||||
}
|
||||
|
||||
if (obj.constructor.prototype == obj) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return obj.constructor.prototype;
|
||||
}
|
||||
|
||||
function hasProperty(obj, property) {
|
||||
if (!obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(obj, property)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return hasProperty(getPrototype(obj), property);
|
||||
} // SENTINEL constants are from https://github.com/facebook/immutable-js
|
||||
|
||||
const IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';
|
||||
const IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';
|
||||
const IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';
|
||||
|
||||
function isImmutableUnorderedKeyed(maybeKeyed) {
|
||||
return !!(
|
||||
maybeKeyed &&
|
||||
maybeKeyed[IS_KEYED_SENTINEL] &&
|
||||
!maybeKeyed[IS_ORDERED_SENTINEL]
|
||||
);
|
||||
}
|
||||
|
||||
function isImmutableUnorderedSet(maybeSet) {
|
||||
return !!(
|
||||
maybeSet &&
|
||||
maybeSet[IS_SET_SENTINEL] &&
|
||||
!maybeSet[IS_ORDERED_SENTINEL]
|
||||
);
|
||||
}
|
13
web/node_modules/expect/build/jestMatchersObject.d.ts
generated
vendored
Normal file
13
web/node_modules/expect/build/jestMatchersObject.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { Expect, MatcherState, MatchersObject } from './types';
|
||||
export declare const INTERNAL_MATCHER_FLAG: unique symbol;
|
||||
export declare const getState: () => MatcherState;
|
||||
export declare const setState: (state: Partial<MatcherState>) => void;
|
||||
export declare const getMatchers: () => MatchersObject;
|
||||
export declare const setMatchers: (matchers: MatchersObject, isInternal: boolean, expect: Expect) => void;
|
93
web/node_modules/expect/build/jestMatchersObject.js
generated
vendored
Normal file
93
web/node_modules/expect/build/jestMatchersObject.js
generated
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.setMatchers = exports.getMatchers = exports.setState = exports.getState = exports.INTERNAL_MATCHER_FLAG = void 0;
|
||||
|
||||
var _asymmetricMatchers = require('./asymmetricMatchers');
|
||||
|
||||
var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
|
||||
// Global matchers object holds the list of available matchers and
|
||||
// the state, that can hold matcher specific values that change over time.
|
||||
const JEST_MATCHERS_OBJECT = Symbol.for('$$jest-matchers-object'); // Notes a built-in/internal Jest matcher.
|
||||
// Jest may override the stack trace of Errors thrown by internal matchers.
|
||||
|
||||
const INTERNAL_MATCHER_FLAG = Symbol.for('$$jest-internal-matcher');
|
||||
exports.INTERNAL_MATCHER_FLAG = INTERNAL_MATCHER_FLAG;
|
||||
|
||||
if (!global.hasOwnProperty(JEST_MATCHERS_OBJECT)) {
|
||||
const defaultState = {
|
||||
assertionCalls: 0,
|
||||
expectedAssertionsNumber: null,
|
||||
isExpectingAssertions: false,
|
||||
suppressedErrors: [] // errors that are not thrown immediately.
|
||||
};
|
||||
Object.defineProperty(global, JEST_MATCHERS_OBJECT, {
|
||||
value: {
|
||||
matchers: Object.create(null),
|
||||
state: defaultState
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const getState = () => global[JEST_MATCHERS_OBJECT].state;
|
||||
|
||||
exports.getState = getState;
|
||||
|
||||
const setState = state => {
|
||||
Object.assign(global[JEST_MATCHERS_OBJECT].state, state);
|
||||
};
|
||||
|
||||
exports.setState = setState;
|
||||
|
||||
const getMatchers = () => global[JEST_MATCHERS_OBJECT].matchers;
|
||||
|
||||
exports.getMatchers = getMatchers;
|
||||
|
||||
const setMatchers = (matchers, isInternal, expect) => {
|
||||
Object.keys(matchers).forEach(key => {
|
||||
const matcher = matchers[key];
|
||||
Object.defineProperty(matcher, INTERNAL_MATCHER_FLAG, {
|
||||
value: isInternal
|
||||
});
|
||||
|
||||
if (!isInternal) {
|
||||
// expect is defined
|
||||
class CustomMatcher extends _asymmetricMatchers.AsymmetricMatcher {
|
||||
constructor(inverse = false, ...sample) {
|
||||
super(sample);
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
asymmetricMatch(other) {
|
||||
const {pass} = matcher(other, ...this.sample);
|
||||
return this.inverse ? !pass : pass;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return `${this.inverse ? 'not.' : ''}${key}`;
|
||||
}
|
||||
|
||||
getExpectedType() {
|
||||
return 'any';
|
||||
}
|
||||
|
||||
toAsymmetricMatcher() {
|
||||
return `${this.toString()}<${this.sample.map(String).join(', ')}>`;
|
||||
}
|
||||
}
|
||||
|
||||
expect[key] = (...sample) => new CustomMatcher(false, ...sample);
|
||||
|
||||
if (!expect.not) {
|
||||
expect.not = {};
|
||||
}
|
||||
|
||||
expect.not[key] = (...sample) => new CustomMatcher(true, ...sample);
|
||||
}
|
||||
});
|
||||
Object.assign(global[JEST_MATCHERS_OBJECT].matchers, matchers);
|
||||
};
|
||||
|
||||
exports.setMatchers = setMatchers;
|
10
web/node_modules/expect/build/matchers.d.ts
generated
vendored
Normal file
10
web/node_modules/expect/build/matchers.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { MatchersObject } from './types';
|
||||
declare const matchers: MatchersObject;
|
||||
export default matchers;
|
1342
web/node_modules/expect/build/matchers.js
generated
vendored
Normal file
1342
web/node_modules/expect/build/matchers.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
15
web/node_modules/expect/build/print.d.ts
generated
vendored
Normal file
15
web/node_modules/expect/build/print.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
export declare const printReceivedStringContainExpectedSubstring: (received: string, start: number, length: number) => string;
|
||||
export declare const printReceivedStringContainExpectedResult: (received: string, result: RegExpExecArray | null) => string;
|
||||
export declare const printReceivedArrayContainExpectedItem: (received: Array<unknown>, index: number) => string;
|
||||
export declare const printCloseTo: (receivedDiff: number, expectedDiff: number, precision: number, isNot: boolean) => string;
|
||||
export declare const printExpectedConstructorName: (label: string, expected: Function) => string;
|
||||
export declare const printExpectedConstructorNameNot: (label: string, expected: Function) => string;
|
||||
export declare const printReceivedConstructorName: (label: string, received: Function) => string;
|
||||
export declare const printReceivedConstructorNameNot: (label: string, received: Function, expected: Function) => string;
|
126
web/node_modules/expect/build/print.js
generated
vendored
Normal file
126
web/node_modules/expect/build/print.js
generated
vendored
Normal file
|
@ -0,0 +1,126 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.printReceivedConstructorNameNot = exports.printReceivedConstructorName = exports.printExpectedConstructorNameNot = exports.printExpectedConstructorName = exports.printCloseTo = exports.printReceivedArrayContainExpectedItem = exports.printReceivedStringContainExpectedResult = exports.printReceivedStringContainExpectedSubstring = void 0;
|
||||
|
||||
var _jestMatcherUtils = require('jest-matcher-utils');
|
||||
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
/* eslint-disable local/ban-types-eventually */
|
||||
// Format substring but do not enclose in double quote marks.
|
||||
// The replacement is compatible with pretty-format package.
|
||||
const printSubstring = val => val.replace(/"|\\/g, '\\$&');
|
||||
|
||||
const printReceivedStringContainExpectedSubstring = (received, start, length) =>
|
||||
(0, _jestMatcherUtils.RECEIVED_COLOR)(
|
||||
'"' +
|
||||
printSubstring(received.slice(0, start)) +
|
||||
(0, _jestMatcherUtils.INVERTED_COLOR)(
|
||||
printSubstring(received.slice(start, start + length))
|
||||
) +
|
||||
printSubstring(received.slice(start + length)) +
|
||||
'"'
|
||||
);
|
||||
|
||||
exports.printReceivedStringContainExpectedSubstring = printReceivedStringContainExpectedSubstring;
|
||||
|
||||
const printReceivedStringContainExpectedResult = (received, result) =>
|
||||
result === null
|
||||
? (0, _jestMatcherUtils.printReceived)(received)
|
||||
: printReceivedStringContainExpectedSubstring(
|
||||
received,
|
||||
result.index,
|
||||
result[0].length
|
||||
); // The serialized array is compatible with pretty-format package min option.
|
||||
// However, items have default stringify depth (instead of depth - 1)
|
||||
// so expected item looks consistent by itself and enclosed in the array.
|
||||
|
||||
exports.printReceivedStringContainExpectedResult = printReceivedStringContainExpectedResult;
|
||||
|
||||
const printReceivedArrayContainExpectedItem = (received, index) =>
|
||||
(0, _jestMatcherUtils.RECEIVED_COLOR)(
|
||||
'[' +
|
||||
received
|
||||
.map((item, i) => {
|
||||
const stringified = (0, _jestMatcherUtils.stringify)(item);
|
||||
return i === index
|
||||
? (0, _jestMatcherUtils.INVERTED_COLOR)(stringified)
|
||||
: stringified;
|
||||
})
|
||||
.join(', ') +
|
||||
']'
|
||||
);
|
||||
|
||||
exports.printReceivedArrayContainExpectedItem = printReceivedArrayContainExpectedItem;
|
||||
|
||||
const printCloseTo = (receivedDiff, expectedDiff, precision, isNot) => {
|
||||
const receivedDiffString = (0, _jestMatcherUtils.stringify)(receivedDiff);
|
||||
const expectedDiffString = receivedDiffString.includes('e') // toExponential arg is number of digits after the decimal point.
|
||||
? expectedDiff.toExponential(0)
|
||||
: 0 <= precision && precision < 20 // toFixed arg is number of digits after the decimal point.
|
||||
? // It may be a value between 0 and 20 inclusive.
|
||||
// Implementations may optionally support a larger range of values.
|
||||
expectedDiff.toFixed(precision + 1)
|
||||
: (0, _jestMatcherUtils.stringify)(expectedDiff);
|
||||
return (
|
||||
`Expected precision: ${isNot ? ' ' : ''} ${(0,
|
||||
_jestMatcherUtils.stringify)(precision)}\n` +
|
||||
`Expected difference: ${isNot ? 'not ' : ''}< ${(0,
|
||||
_jestMatcherUtils.EXPECTED_COLOR)(expectedDiffString)}\n` +
|
||||
`Received difference: ${isNot ? ' ' : ''} ${(0,
|
||||
_jestMatcherUtils.RECEIVED_COLOR)(receivedDiffString)}`
|
||||
);
|
||||
};
|
||||
|
||||
exports.printCloseTo = printCloseTo;
|
||||
|
||||
const printExpectedConstructorName = (label, expected) =>
|
||||
printConstructorName(label, expected, false, true) + '\n';
|
||||
|
||||
exports.printExpectedConstructorName = printExpectedConstructorName;
|
||||
|
||||
const printExpectedConstructorNameNot = (label, expected) =>
|
||||
printConstructorName(label, expected, true, true) + '\n';
|
||||
|
||||
exports.printExpectedConstructorNameNot = printExpectedConstructorNameNot;
|
||||
|
||||
const printReceivedConstructorName = (label, received) =>
|
||||
printConstructorName(label, received, false, false) + '\n'; // Do not call function if received is equal to expected.
|
||||
|
||||
exports.printReceivedConstructorName = printReceivedConstructorName;
|
||||
|
||||
const printReceivedConstructorNameNot = (label, received, expected) =>
|
||||
typeof expected.name === 'string' &&
|
||||
expected.name.length !== 0 &&
|
||||
typeof received.name === 'string' &&
|
||||
received.name.length !== 0
|
||||
? printConstructorName(label, received, true, false) +
|
||||
` ${
|
||||
Object.getPrototypeOf(received) === expected
|
||||
? 'extends'
|
||||
: 'extends … extends'
|
||||
} ${(0, _jestMatcherUtils.EXPECTED_COLOR)(expected.name)}` +
|
||||
'\n'
|
||||
: printConstructorName(label, received, false, false) + '\n';
|
||||
|
||||
exports.printReceivedConstructorNameNot = printReceivedConstructorNameNot;
|
||||
|
||||
const printConstructorName = (label, constructor, isNot, isExpected) =>
|
||||
typeof constructor.name !== 'string'
|
||||
? `${label} name is not a string`
|
||||
: constructor.name.length === 0
|
||||
? `${label} name is an empty string`
|
||||
: `${label}: ${!isNot ? '' : isExpected ? 'not ' : ' '}${
|
||||
isExpected
|
||||
? (0, _jestMatcherUtils.EXPECTED_COLOR)(constructor.name)
|
||||
: (0, _jestMatcherUtils.RECEIVED_COLOR)(constructor.name)
|
||||
}`;
|
9
web/node_modules/expect/build/spyMatchers.d.ts
generated
vendored
Normal file
9
web/node_modules/expect/build/spyMatchers.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
import type { MatchersObject } from './types';
|
||||
declare const spyMatchers: MatchersObject;
|
||||
export default spyMatchers;
|
1343
web/node_modules/expect/build/spyMatchers.js
generated
vendored
Normal file
1343
web/node_modules/expect/build/spyMatchers.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
11
web/node_modules/expect/build/toThrowMatchers.d.ts
generated
vendored
Normal file
11
web/node_modules/expect/build/toThrowMatchers.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { MatchersObject, RawMatcherFn } from './types';
|
||||
export declare const createMatcher: (matcherName: string, fromPromise?: boolean | undefined) => RawMatcherFn;
|
||||
declare const matchers: MatchersObject;
|
||||
export default matchers;
|
464
web/node_modules/expect/build/toThrowMatchers.js
generated
vendored
Normal file
464
web/node_modules/expect/build/toThrowMatchers.js
generated
vendored
Normal file
|
@ -0,0 +1,464 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.createMatcher = void 0;
|
||||
|
||||
var _jestMatcherUtils = require('jest-matcher-utils');
|
||||
|
||||
var _jestMessageUtil = require('jest-message-util');
|
||||
|
||||
var _print = require('./print');
|
||||
|
||||
var _utils = require('./utils');
|
||||
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
/* eslint-disable local/ban-types-eventually */
|
||||
const DID_NOT_THROW = 'Received function did not throw';
|
||||
|
||||
const getThrown = e => {
|
||||
const hasMessage =
|
||||
e !== null && e !== undefined && typeof e.message === 'string';
|
||||
|
||||
if (hasMessage && typeof e.name === 'string' && typeof e.stack === 'string') {
|
||||
return {
|
||||
hasMessage,
|
||||
isError: true,
|
||||
message: e.message,
|
||||
value: e
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
hasMessage,
|
||||
isError: false,
|
||||
message: hasMessage ? e.message : String(e),
|
||||
value: e
|
||||
};
|
||||
};
|
||||
|
||||
const createMatcher = (matcherName, fromPromise) =>
|
||||
function (received, expected) {
|
||||
const options = {
|
||||
isNot: this.isNot,
|
||||
promise: this.promise
|
||||
};
|
||||
let thrown = null;
|
||||
|
||||
if (fromPromise && (0, _utils.isError)(received)) {
|
||||
thrown = getThrown(received);
|
||||
} else {
|
||||
if (typeof received !== 'function') {
|
||||
if (!fromPromise) {
|
||||
const placeholder = expected === undefined ? '' : 'expected';
|
||||
throw new Error(
|
||||
(0, _jestMatcherUtils.matcherErrorMessage)(
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
placeholder,
|
||||
options
|
||||
),
|
||||
`${(0, _jestMatcherUtils.RECEIVED_COLOR)(
|
||||
'received'
|
||||
)} value must be a function`,
|
||||
(0, _jestMatcherUtils.printWithType)(
|
||||
'Received',
|
||||
received,
|
||||
_jestMatcherUtils.printReceived
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
received();
|
||||
} catch (e) {
|
||||
thrown = getThrown(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (expected === undefined) {
|
||||
return toThrow(matcherName, options, thrown);
|
||||
} else if (typeof expected === 'function') {
|
||||
return toThrowExpectedClass(matcherName, options, thrown, expected);
|
||||
} else if (typeof expected === 'string') {
|
||||
return toThrowExpectedString(matcherName, options, thrown, expected);
|
||||
} else if (expected !== null && typeof expected.test === 'function') {
|
||||
return toThrowExpectedRegExp(matcherName, options, thrown, expected);
|
||||
} else if (
|
||||
expected !== null &&
|
||||
typeof expected.asymmetricMatch === 'function'
|
||||
) {
|
||||
return toThrowExpectedAsymmetric(matcherName, options, thrown, expected);
|
||||
} else if (expected !== null && typeof expected === 'object') {
|
||||
return toThrowExpectedObject(matcherName, options, thrown, expected);
|
||||
} else {
|
||||
throw new Error(
|
||||
(0, _jestMatcherUtils.matcherErrorMessage)(
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
),
|
||||
`${(0, _jestMatcherUtils.EXPECTED_COLOR)(
|
||||
'expected'
|
||||
)} value must be a string or regular expression or class or error`,
|
||||
(0, _jestMatcherUtils.printWithType)(
|
||||
'Expected',
|
||||
expected,
|
||||
_jestMatcherUtils.printExpected
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
exports.createMatcher = createMatcher;
|
||||
const matchers = {
|
||||
toThrow: createMatcher('toThrow'),
|
||||
toThrowError: createMatcher('toThrowError')
|
||||
};
|
||||
|
||||
const toThrowExpectedRegExp = (matcherName, options, thrown, expected) => {
|
||||
const pass = thrown !== null && expected.test(thrown.message);
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected pattern: not ', expected) +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatReceived(
|
||||
'Received message: ',
|
||||
thrown,
|
||||
'message',
|
||||
expected
|
||||
) + formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected pattern: ', expected) +
|
||||
(thrown === null
|
||||
? '\n' + DID_NOT_THROW
|
||||
: thrown.hasMessage
|
||||
? formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'));
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const toThrowExpectedAsymmetric = (matcherName, options, thrown, expected) => {
|
||||
const pass = thrown !== null && expected.asymmetricMatch(thrown.value);
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected asymmetric matcher: not ', expected) +
|
||||
'\n' +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatReceived('Received name: ', thrown, 'name') +
|
||||
formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Thrown value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected asymmetric matcher: ', expected) +
|
||||
'\n' +
|
||||
(thrown === null
|
||||
? DID_NOT_THROW
|
||||
: thrown.hasMessage
|
||||
? formatReceived('Received name: ', thrown, 'name') +
|
||||
formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Thrown value: ', thrown, 'value'));
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const toThrowExpectedObject = (matcherName, options, thrown, expected) => {
|
||||
const pass = thrown !== null && thrown.message === expected.message;
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected message: not ', expected.message) +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
(thrown === null
|
||||
? formatExpected('Expected message: ', expected.message) +
|
||||
'\n' +
|
||||
DID_NOT_THROW
|
||||
: thrown.hasMessage
|
||||
? (0, _jestMatcherUtils.printDiffOrStringify)(
|
||||
expected.message,
|
||||
thrown.message,
|
||||
'Expected message',
|
||||
'Received message',
|
||||
true
|
||||
) +
|
||||
'\n' +
|
||||
formatStack(thrown)
|
||||
: formatExpected('Expected message: ', expected.message) +
|
||||
formatReceived('Received value: ', thrown, 'value'));
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const toThrowExpectedClass = (matcherName, options, thrown, expected) => {
|
||||
const pass = thrown !== null && thrown.value instanceof expected;
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
(0, _print.printExpectedConstructorNameNot)(
|
||||
'Expected constructor',
|
||||
expected
|
||||
) +
|
||||
(thrown !== null &&
|
||||
thrown.value != null &&
|
||||
typeof thrown.value.constructor === 'function' &&
|
||||
thrown.value.constructor !== expected
|
||||
? (0, _print.printReceivedConstructorNameNot)(
|
||||
'Received constructor',
|
||||
thrown.value.constructor,
|
||||
expected
|
||||
)
|
||||
: '') +
|
||||
'\n' +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
(0, _print.printExpectedConstructorName)(
|
||||
'Expected constructor',
|
||||
expected
|
||||
) +
|
||||
(thrown === null
|
||||
? '\n' + DID_NOT_THROW
|
||||
: (thrown.value != null &&
|
||||
typeof thrown.value.constructor === 'function'
|
||||
? (0, _print.printReceivedConstructorName)(
|
||||
'Received constructor',
|
||||
thrown.value.constructor
|
||||
)
|
||||
: '') +
|
||||
'\n' +
|
||||
(thrown.hasMessage
|
||||
? formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value')));
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const toThrowExpectedString = (matcherName, options, thrown, expected) => {
|
||||
const pass = thrown !== null && thrown.message.includes(expected);
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected substring: not ', expected) +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatReceived(
|
||||
'Received message: ',
|
||||
thrown,
|
||||
'message',
|
||||
expected
|
||||
) + formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
undefined,
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
formatExpected('Expected substring: ', expected) +
|
||||
(thrown === null
|
||||
? '\n' + DID_NOT_THROW
|
||||
: thrown.hasMessage
|
||||
? formatReceived('Received message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Received value: ', thrown, 'value'));
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const toThrow = (matcherName, options, thrown) => {
|
||||
const pass = thrown !== null;
|
||||
const message = pass
|
||||
? () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
'',
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
(thrown !== null && thrown.hasMessage
|
||||
? formatReceived('Error name: ', thrown, 'name') +
|
||||
formatReceived('Error message: ', thrown, 'message') +
|
||||
formatStack(thrown)
|
||||
: formatReceived('Thrown value: ', thrown, 'value'))
|
||||
: () =>
|
||||
(0, _jestMatcherUtils.matcherHint)(
|
||||
matcherName,
|
||||
undefined,
|
||||
'',
|
||||
options
|
||||
) +
|
||||
'\n\n' +
|
||||
DID_NOT_THROW;
|
||||
return {
|
||||
message,
|
||||
pass
|
||||
};
|
||||
};
|
||||
|
||||
const formatExpected = (label, expected) =>
|
||||
label + (0, _jestMatcherUtils.printExpected)(expected) + '\n';
|
||||
|
||||
const formatReceived = (label, thrown, key, expected) => {
|
||||
if (thrown === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (key === 'message') {
|
||||
const message = thrown.message;
|
||||
|
||||
if (typeof expected === 'string') {
|
||||
const index = message.indexOf(expected);
|
||||
|
||||
if (index !== -1) {
|
||||
return (
|
||||
label +
|
||||
(0, _print.printReceivedStringContainExpectedSubstring)(
|
||||
message,
|
||||
index,
|
||||
expected.length
|
||||
) +
|
||||
'\n'
|
||||
);
|
||||
}
|
||||
} else if (expected instanceof RegExp) {
|
||||
return (
|
||||
label +
|
||||
(0, _print.printReceivedStringContainExpectedResult)(
|
||||
message,
|
||||
typeof expected.exec === 'function' ? expected.exec(message) : null
|
||||
) +
|
||||
'\n'
|
||||
);
|
||||
}
|
||||
|
||||
return label + (0, _jestMatcherUtils.printReceived)(message) + '\n';
|
||||
}
|
||||
|
||||
if (key === 'name') {
|
||||
return thrown.isError
|
||||
? label + (0, _jestMatcherUtils.printReceived)(thrown.value.name) + '\n'
|
||||
: '';
|
||||
}
|
||||
|
||||
if (key === 'value') {
|
||||
return thrown.isError
|
||||
? ''
|
||||
: label + (0, _jestMatcherUtils.printReceived)(thrown.value) + '\n';
|
||||
}
|
||||
|
||||
return '';
|
||||
};
|
||||
|
||||
const formatStack = thrown =>
|
||||
thrown === null || !thrown.isError
|
||||
? ''
|
||||
: (0, _jestMessageUtil.formatStackTrace)(
|
||||
(0, _jestMessageUtil.separateMessageFromStack)(thrown.value.stack)
|
||||
.stack,
|
||||
{
|
||||
rootDir: process.cwd(),
|
||||
testMatch: []
|
||||
},
|
||||
{
|
||||
noStackTrace: false
|
||||
}
|
||||
);
|
||||
|
||||
var _default = matchers;
|
||||
exports.default = _default;
|
328
web/node_modules/expect/build/types.d.ts
generated
vendored
Normal file
328
web/node_modules/expect/build/types.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,328 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
import type { Config } from '@jest/types';
|
||||
import type * as jestMatcherUtils from 'jest-matcher-utils';
|
||||
import { INTERNAL_MATCHER_FLAG } from './jestMatchersObject';
|
||||
export declare type SyncExpectationResult = {
|
||||
pass: boolean;
|
||||
message: () => string;
|
||||
};
|
||||
export declare type AsyncExpectationResult = Promise<SyncExpectationResult>;
|
||||
export declare type ExpectationResult = SyncExpectationResult | AsyncExpectationResult;
|
||||
export declare type RawMatcherFn = {
|
||||
(received: any, expected: any, options?: any): ExpectationResult;
|
||||
[INTERNAL_MATCHER_FLAG]?: boolean;
|
||||
};
|
||||
export declare type ThrowingMatcherFn = (actual: any) => void;
|
||||
export declare type PromiseMatcherFn = (actual: any) => Promise<void>;
|
||||
export declare type Tester = (a: any, b: any) => boolean | undefined;
|
||||
export declare type MatcherState = {
|
||||
assertionCalls: number;
|
||||
currentTestName?: string;
|
||||
dontThrow?: () => void;
|
||||
error?: Error;
|
||||
equals: (a: unknown, b: unknown, customTesters?: Array<Tester>, strictCheck?: boolean) => boolean;
|
||||
expand?: boolean;
|
||||
expectedAssertionsNumber?: number | null;
|
||||
expectedAssertionsNumberError?: Error;
|
||||
isExpectingAssertions?: boolean;
|
||||
isExpectingAssertionsError?: Error;
|
||||
isNot: boolean;
|
||||
promise: string;
|
||||
suppressedErrors: Array<Error>;
|
||||
testPath?: Config.Path;
|
||||
utils: typeof jestMatcherUtils & {
|
||||
iterableEquality: Tester;
|
||||
subsetEquality: Tester;
|
||||
};
|
||||
};
|
||||
export declare type AsymmetricMatcher = Record<string, any>;
|
||||
export declare type MatchersObject = {
|
||||
[id: string]: RawMatcherFn;
|
||||
};
|
||||
export declare type ExpectedAssertionsErrors = Array<{
|
||||
actual: string | number;
|
||||
error: Error;
|
||||
expected: string;
|
||||
}>;
|
||||
export declare type Expect = {
|
||||
<T = unknown>(actual: T): Matchers<T>;
|
||||
addSnapshotSerializer(arg0: any): void;
|
||||
assertions(arg0: number): void;
|
||||
extend(arg0: any): void;
|
||||
extractExpectedAssertionsErrors: () => ExpectedAssertionsErrors;
|
||||
getState(): MatcherState;
|
||||
hasAssertions(): void;
|
||||
setState(state: Partial<MatcherState>): void;
|
||||
any(expectedObject: any): AsymmetricMatcher;
|
||||
anything(): AsymmetricMatcher;
|
||||
arrayContaining(sample: Array<unknown>): AsymmetricMatcher;
|
||||
objectContaining(sample: Record<string, unknown>): AsymmetricMatcher;
|
||||
stringContaining(expected: string): AsymmetricMatcher;
|
||||
stringMatching(expected: string | RegExp): AsymmetricMatcher;
|
||||
[id: string]: AsymmetricMatcher;
|
||||
not: {
|
||||
[id: string]: AsymmetricMatcher;
|
||||
};
|
||||
};
|
||||
interface Constructable {
|
||||
new (...args: Array<unknown>): unknown;
|
||||
}
|
||||
export interface Matchers<R> {
|
||||
/**
|
||||
* Ensures the last call to a mock function was provided specific args.
|
||||
*/
|
||||
lastCalledWith(...args: Array<unknown>): R;
|
||||
/**
|
||||
* Ensure that the last call to a mock function has returned a specified value.
|
||||
*/
|
||||
lastReturnedWith(value: unknown): R;
|
||||
/**
|
||||
* If you know how to test something, `.not` lets you test its opposite.
|
||||
*/
|
||||
not: Matchers<R>;
|
||||
/**
|
||||
* Ensure that a mock function is called with specific arguments on an Nth call.
|
||||
*/
|
||||
nthCalledWith(nthCall: number, ...args: Array<unknown>): R;
|
||||
/**
|
||||
* Ensure that the nth call to a mock function has returned a specified value.
|
||||
*/
|
||||
nthReturnedWith(n: number, value: unknown): R;
|
||||
/**
|
||||
* Use resolves to unwrap the value of a fulfilled promise so any other
|
||||
* matcher can be chained. If the promise is rejected the assertion fails.
|
||||
*/
|
||||
resolves: Matchers<Promise<R>>;
|
||||
/**
|
||||
* Unwraps the reason of a rejected promise so any other matcher can be chained.
|
||||
* If the promise is fulfilled the assertion fails.
|
||||
*/
|
||||
rejects: Matchers<Promise<R>>;
|
||||
/**
|
||||
* Checks that a value is what you expect. It uses `===` to check strict equality.
|
||||
* Don't use `toBe` with floating-point numbers.
|
||||
*/
|
||||
toBe(expected: unknown): R;
|
||||
/**
|
||||
* Ensures that a mock function is called.
|
||||
*/
|
||||
toBeCalled(): R;
|
||||
/**
|
||||
* Ensures that a mock function is called an exact number of times.
|
||||
*/
|
||||
toBeCalledTimes(expected: number): R;
|
||||
/**
|
||||
* Ensure that a mock function is called with specific arguments.
|
||||
*/
|
||||
toBeCalledWith(...args: Array<unknown>): R;
|
||||
/**
|
||||
* Using exact equality with floating point numbers is a bad idea.
|
||||
* Rounding means that intuitive things fail.
|
||||
* The default for numDigits is 2.
|
||||
*/
|
||||
toBeCloseTo(expected: number, numDigits?: number): R;
|
||||
/**
|
||||
* Ensure that a variable is not undefined.
|
||||
*/
|
||||
toBeDefined(): R;
|
||||
/**
|
||||
* When you don't care what a value is, you just want to
|
||||
* ensure a value is false in a boolean context.
|
||||
*/
|
||||
toBeFalsy(): R;
|
||||
/**
|
||||
* For comparing floating point numbers.
|
||||
*/
|
||||
toBeGreaterThan(expected: number | bigint): R;
|
||||
/**
|
||||
* For comparing floating point numbers.
|
||||
*/
|
||||
toBeGreaterThanOrEqual(expected: number | bigint): R;
|
||||
/**
|
||||
* Ensure that an object is an instance of a class.
|
||||
* This matcher uses `instanceof` underneath.
|
||||
*/
|
||||
toBeInstanceOf(expected: Function): R;
|
||||
/**
|
||||
* For comparing floating point numbers.
|
||||
*/
|
||||
toBeLessThan(expected: number | bigint): R;
|
||||
/**
|
||||
* For comparing floating point numbers.
|
||||
*/
|
||||
toBeLessThanOrEqual(expected: number | bigint): R;
|
||||
/**
|
||||
* This is the same as `.toBe(null)` but the error messages are a bit nicer.
|
||||
* So use `.toBeNull()` when you want to check that something is null.
|
||||
*/
|
||||
toBeNull(): R;
|
||||
/**
|
||||
* Use when you don't care what a value is, you just want to ensure a value
|
||||
* is true in a boolean context. In JavaScript, there are six falsy values:
|
||||
* `false`, `0`, `''`, `null`, `undefined`, and `NaN`. Everything else is truthy.
|
||||
*/
|
||||
toBeTruthy(): R;
|
||||
/**
|
||||
* Used to check that a variable is undefined.
|
||||
*/
|
||||
toBeUndefined(): R;
|
||||
/**
|
||||
* Used to check that a variable is NaN.
|
||||
*/
|
||||
toBeNaN(): R;
|
||||
/**
|
||||
* Used when you want to check that an item is in a list.
|
||||
* For testing the items in the list, this uses `===`, a strict equality check.
|
||||
*/
|
||||
toContain(expected: unknown): R;
|
||||
/**
|
||||
* Used when you want to check that an item is in a list.
|
||||
* For testing the items in the list, this matcher recursively checks the
|
||||
* equality of all fields, rather than checking for object identity.
|
||||
*/
|
||||
toContainEqual(expected: unknown): R;
|
||||
/**
|
||||
* Used when you want to check that two objects have the same value.
|
||||
* This matcher recursively checks the equality of all fields, rather than checking for object identity.
|
||||
*/
|
||||
toEqual(expected: unknown): R;
|
||||
/**
|
||||
* Ensures that a mock function is called.
|
||||
*/
|
||||
toHaveBeenCalled(): R;
|
||||
/**
|
||||
* Ensures that a mock function is called an exact number of times.
|
||||
*/
|
||||
toHaveBeenCalledTimes(expected: number): R;
|
||||
/**
|
||||
* Ensure that a mock function is called with specific arguments.
|
||||
*/
|
||||
toHaveBeenCalledWith(...args: Array<unknown>): R;
|
||||
/**
|
||||
* Ensure that a mock function is called with specific arguments on an Nth call.
|
||||
*/
|
||||
toHaveBeenNthCalledWith(nthCall: number, ...args: Array<unknown>): R;
|
||||
/**
|
||||
* If you have a mock function, you can use `.toHaveBeenLastCalledWith`
|
||||
* to test what arguments it was last called with.
|
||||
*/
|
||||
toHaveBeenLastCalledWith(...args: Array<unknown>): R;
|
||||
/**
|
||||
* Use to test the specific value that a mock function last returned.
|
||||
* If the last call to the mock function threw an error, then this matcher will fail
|
||||
* no matter what value you provided as the expected return value.
|
||||
*/
|
||||
toHaveLastReturnedWith(expected: unknown): R;
|
||||
/**
|
||||
* Used to check that an object has a `.length` property
|
||||
* and it is set to a certain numeric value.
|
||||
*/
|
||||
toHaveLength(expected: number): R;
|
||||
/**
|
||||
* Use to test the specific value that a mock function returned for the nth call.
|
||||
* If the nth call to the mock function threw an error, then this matcher will fail
|
||||
* no matter what value you provided as the expected return value.
|
||||
*/
|
||||
toHaveNthReturnedWith(nthCall: number, expected: unknown): R;
|
||||
/**
|
||||
* Use to check if property at provided reference keyPath exists for an object.
|
||||
* For checking deeply nested properties in an object you may use dot notation or an array containing
|
||||
* the keyPath for deep references.
|
||||
*
|
||||
* Optionally, you can provide a value to check if it's equal to the value present at keyPath
|
||||
* on the target object. This matcher uses 'deep equality' (like `toEqual()`) and recursively checks
|
||||
* the equality of all fields.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* expect(houseForSale).toHaveProperty('kitchen.area', 20);
|
||||
*/
|
||||
toHaveProperty(keyPath: string | Array<string>, value?: unknown): R;
|
||||
/**
|
||||
* Use to test that the mock function successfully returned (i.e., did not throw an error) at least one time
|
||||
*/
|
||||
toHaveReturned(): R;
|
||||
/**
|
||||
* Use to ensure that a mock function returned successfully (i.e., did not throw an error) an exact number of times.
|
||||
* Any calls to the mock function that throw an error are not counted toward the number of times the function returned.
|
||||
*/
|
||||
toHaveReturnedTimes(expected: number): R;
|
||||
/**
|
||||
* Use to ensure that a mock function returned a specific value.
|
||||
*/
|
||||
toHaveReturnedWith(expected: unknown): R;
|
||||
/**
|
||||
* Check that a string matches a regular expression.
|
||||
*/
|
||||
toMatch(expected: string | RegExp): R;
|
||||
/**
|
||||
* Used to check that a JavaScript object matches a subset of the properties of an object
|
||||
*/
|
||||
toMatchObject(expected: Record<string, unknown> | Array<unknown>): R;
|
||||
/**
|
||||
* Ensure that a mock function has returned (as opposed to thrown) at least once.
|
||||
*/
|
||||
toReturn(): R;
|
||||
/**
|
||||
* Ensure that a mock function has returned (as opposed to thrown) a specified number of times.
|
||||
*/
|
||||
toReturnTimes(count: number): R;
|
||||
/**
|
||||
* Ensure that a mock function has returned a specified value at least once.
|
||||
*/
|
||||
toReturnWith(value: unknown): R;
|
||||
/**
|
||||
* Use to test that objects have the same types as well as structure.
|
||||
*/
|
||||
toStrictEqual(expected: unknown): R;
|
||||
/**
|
||||
* Used to test that a function throws when it is called.
|
||||
*/
|
||||
toThrow(error?: string | Constructable | RegExp | Error): R;
|
||||
/**
|
||||
* If you want to test that a specific error is thrown inside a function.
|
||||
*/
|
||||
toThrowError(error?: string | Constructable | RegExp | Error): R;
|
||||
/**
|
||||
* This ensures that a value matches the most recent snapshot with property matchers.
|
||||
* Check out [the Snapshot Testing guide](https://jestjs.io/docs/en/snapshot-testing) for more information.
|
||||
*/
|
||||
toMatchSnapshot<T extends {
|
||||
[P in keyof R]: unknown;
|
||||
}>(propertyMatchers: Partial<T>, snapshotName?: string): R;
|
||||
/**
|
||||
* This ensures that a value matches the most recent snapshot.
|
||||
* Check out [the Snapshot Testing guide](https://jestjs.io/docs/en/snapshot-testing) for more information.
|
||||
*/
|
||||
toMatchSnapshot(snapshotName?: string): R;
|
||||
/**
|
||||
* This ensures that a value matches the most recent snapshot with property matchers.
|
||||
* Instead of writing the snapshot value to a .snap file, it will be written into the source code automatically.
|
||||
* Check out [the Snapshot Testing guide](https://jestjs.io/docs/en/snapshot-testing) for more information.
|
||||
*/
|
||||
toMatchInlineSnapshot<T extends {
|
||||
[P in keyof R]: unknown;
|
||||
}>(propertyMatchers: Partial<T>, snapshot?: string): R;
|
||||
/**
|
||||
* This ensures that a value matches the most recent snapshot with property matchers.
|
||||
* Instead of writing the snapshot value to a .snap file, it will be written into the source code automatically.
|
||||
* Check out [the Snapshot Testing guide](https://jestjs.io/docs/en/snapshot-testing) for more information.
|
||||
*/
|
||||
toMatchInlineSnapshot(snapshot?: string): R;
|
||||
/**
|
||||
* Used to test that a function throws a error matching the most recent snapshot when it is called.
|
||||
*/
|
||||
toThrowErrorMatchingSnapshot(): R;
|
||||
/**
|
||||
* Used to test that a function throws a error matching the most recent snapshot when it is called.
|
||||
* Instead of writing the snapshot value to a .snap file, it will be written into the source code automatically.
|
||||
*/
|
||||
toThrowErrorMatchingInlineSnapshot(snapshot?: string): R;
|
||||
}
|
||||
export {};
|
3
web/node_modules/expect/build/types.js
generated
vendored
Normal file
3
web/node_modules/expect/build/types.js
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
'use strict';
|
||||
|
||||
var _jestMatchersObject = require('./jestMatchersObject');
|
24
web/node_modules/expect/build/utils.d.ts
generated
vendored
Normal file
24
web/node_modules/expect/build/utils.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
declare type GetPath = {
|
||||
hasEndProp?: boolean;
|
||||
lastTraversedObject: unknown;
|
||||
traversedPath: Array<string>;
|
||||
value?: unknown;
|
||||
};
|
||||
export declare const getPath: (object: Record<string, any>, propertyPath: string | Array<string>) => GetPath;
|
||||
export declare const getObjectSubset: (object: any, subset: any, seenReferences?: WeakMap<object, boolean>) => any;
|
||||
export declare const iterableEquality: (a: any, b: any, aStack?: Array<any>, bStack?: Array<any>) => boolean | undefined;
|
||||
export declare const subsetEquality: (object: unknown, subset: unknown) => boolean | undefined;
|
||||
export declare const typeEquality: (a: any, b: any) => boolean | undefined;
|
||||
export declare const sparseArrayEquality: (a: unknown, b: unknown) => boolean | undefined;
|
||||
export declare const partition: <T>(items: T[], predicate: (arg: T) => boolean) => [T[], T[]];
|
||||
export declare const isError: (value: unknown) => value is Error;
|
||||
export declare function emptyObject(obj: unknown): boolean;
|
||||
export declare const isOneline: (expected: unknown, received: unknown) => boolean;
|
||||
export {};
|
392
web/node_modules/expect/build/utils.js
generated
vendored
Normal file
392
web/node_modules/expect/build/utils.js
generated
vendored
Normal file
|
@ -0,0 +1,392 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.emptyObject = emptyObject;
|
||||
exports.isOneline = exports.isError = exports.partition = exports.sparseArrayEquality = exports.typeEquality = exports.subsetEquality = exports.iterableEquality = exports.getObjectSubset = exports.getPath = void 0;
|
||||
|
||||
var _jestGetType = require('jest-get-type');
|
||||
|
||||
var _jasmineUtils = require('./jasmineUtils');
|
||||
|
||||
var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
|
||||
|
||||
/**
|
||||
* Checks if `hasOwnProperty(object, key)` up the prototype chain, stopping at `Object.prototype`.
|
||||
*/
|
||||
const hasPropertyInObject = (object, key) => {
|
||||
const shouldTerminate =
|
||||
!object || typeof object !== 'object' || object === Object.prototype;
|
||||
|
||||
if (shouldTerminate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (
|
||||
Object.prototype.hasOwnProperty.call(object, key) ||
|
||||
hasPropertyInObject(Object.getPrototypeOf(object), key)
|
||||
);
|
||||
};
|
||||
|
||||
const getPath = (object, propertyPath) => {
|
||||
if (!Array.isArray(propertyPath)) {
|
||||
propertyPath = propertyPath.split('.');
|
||||
}
|
||||
|
||||
if (propertyPath.length) {
|
||||
const lastProp = propertyPath.length === 1;
|
||||
const prop = propertyPath[0];
|
||||
const newObject = object[prop];
|
||||
|
||||
if (!lastProp && (newObject === null || newObject === undefined)) {
|
||||
// This is not the last prop in the chain. If we keep recursing it will
|
||||
// hit a `can't access property X of undefined | null`. At this point we
|
||||
// know that the chain has broken and we can return right away.
|
||||
return {
|
||||
hasEndProp: false,
|
||||
lastTraversedObject: object,
|
||||
traversedPath: []
|
||||
};
|
||||
}
|
||||
|
||||
const result = getPath(newObject, propertyPath.slice(1));
|
||||
|
||||
if (result.lastTraversedObject === null) {
|
||||
result.lastTraversedObject = object;
|
||||
}
|
||||
|
||||
result.traversedPath.unshift(prop);
|
||||
|
||||
if (lastProp) {
|
||||
// Does object have the property with an undefined value?
|
||||
// Although primitive values support bracket notation (above)
|
||||
// they would throw TypeError for in operator (below).
|
||||
result.hasEndProp =
|
||||
newObject !== undefined ||
|
||||
(!(0, _jestGetType.isPrimitive)(object) && prop in object);
|
||||
|
||||
if (!result.hasEndProp) {
|
||||
result.traversedPath.shift();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return {
|
||||
lastTraversedObject: null,
|
||||
traversedPath: [],
|
||||
value: object
|
||||
};
|
||||
}; // Strip properties from object that are not present in the subset. Useful for
|
||||
// printing the diff for toMatchObject() without adding unrelated noise.
|
||||
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
|
||||
exports.getPath = getPath;
|
||||
|
||||
const getObjectSubset = (object, subset, seenReferences = new WeakMap()) => {
|
||||
/* eslint-enable @typescript-eslint/explicit-module-boundary-types */
|
||||
if (Array.isArray(object)) {
|
||||
if (Array.isArray(subset) && subset.length === object.length) {
|
||||
// The map method returns correct subclass of subset.
|
||||
return subset.map((sub, i) => getObjectSubset(object[i], sub));
|
||||
}
|
||||
} else if (object instanceof Date) {
|
||||
return object;
|
||||
} else if (isObject(object) && isObject(subset)) {
|
||||
if (
|
||||
(0, _jasmineUtils.equals)(object, subset, [
|
||||
iterableEquality,
|
||||
subsetEquality
|
||||
])
|
||||
) {
|
||||
// Avoid unnecessary copy which might return Object instead of subclass.
|
||||
return subset;
|
||||
}
|
||||
|
||||
const trimmed = {};
|
||||
seenReferences.set(object, trimmed);
|
||||
Object.keys(object)
|
||||
.filter(key => hasPropertyInObject(subset, key))
|
||||
.forEach(key => {
|
||||
trimmed[key] = seenReferences.has(object[key])
|
||||
? seenReferences.get(object[key])
|
||||
: getObjectSubset(object[key], subset[key], seenReferences);
|
||||
});
|
||||
|
||||
if (Object.keys(trimmed).length > 0) {
|
||||
return trimmed;
|
||||
}
|
||||
}
|
||||
|
||||
return object;
|
||||
};
|
||||
|
||||
exports.getObjectSubset = getObjectSubset;
|
||||
const IteratorSymbol = Symbol.iterator;
|
||||
|
||||
const hasIterator = object => !!(object != null && object[IteratorSymbol]);
|
||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||
|
||||
const iterableEquality = (
|
||||
a,
|
||||
b,
|
||||
/* eslint-enable @typescript-eslint/explicit-module-boundary-types */
|
||||
aStack = [],
|
||||
bStack = []
|
||||
) => {
|
||||
if (
|
||||
typeof a !== 'object' ||
|
||||
typeof b !== 'object' ||
|
||||
Array.isArray(a) ||
|
||||
Array.isArray(b) ||
|
||||
!hasIterator(a) ||
|
||||
!hasIterator(b)
|
||||
) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (a.constructor !== b.constructor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let length = aStack.length;
|
||||
|
||||
while (length--) {
|
||||
// Linear search. Performance is inversely proportional to the number of
|
||||
// unique nested structures.
|
||||
// circular references at same depth are equal
|
||||
// circular reference is not equal to non-circular one
|
||||
if (aStack[length] === a) {
|
||||
return bStack[length] === b;
|
||||
}
|
||||
}
|
||||
|
||||
aStack.push(a);
|
||||
bStack.push(b);
|
||||
|
||||
const iterableEqualityWithStack = (a, b) =>
|
||||
iterableEquality(a, b, [...aStack], [...bStack]);
|
||||
|
||||
if (a.size !== undefined) {
|
||||
if (a.size !== b.size) {
|
||||
return false;
|
||||
} else if (
|
||||
(0, _jasmineUtils.isA)('Set', a) ||
|
||||
(0, _jasmineUtils.isImmutableUnorderedSet)(a)
|
||||
) {
|
||||
let allFound = true;
|
||||
|
||||
for (const aValue of a) {
|
||||
if (!b.has(aValue)) {
|
||||
let has = false;
|
||||
|
||||
for (const bValue of b) {
|
||||
const isEqual = (0, _jasmineUtils.equals)(aValue, bValue, [
|
||||
iterableEqualityWithStack
|
||||
]);
|
||||
|
||||
if (isEqual === true) {
|
||||
has = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (has === false) {
|
||||
allFound = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} // Remove the first value from the stack of traversed values.
|
||||
|
||||
aStack.pop();
|
||||
bStack.pop();
|
||||
return allFound;
|
||||
} else if (
|
||||
(0, _jasmineUtils.isA)('Map', a) ||
|
||||
(0, _jasmineUtils.isImmutableUnorderedKeyed)(a)
|
||||
) {
|
||||
let allFound = true;
|
||||
|
||||
for (const aEntry of a) {
|
||||
if (
|
||||
!b.has(aEntry[0]) ||
|
||||
!(0, _jasmineUtils.equals)(aEntry[1], b.get(aEntry[0]), [
|
||||
iterableEqualityWithStack
|
||||
])
|
||||
) {
|
||||
let has = false;
|
||||
|
||||
for (const bEntry of b) {
|
||||
const matchedKey = (0, _jasmineUtils.equals)(aEntry[0], bEntry[0], [
|
||||
iterableEqualityWithStack
|
||||
]);
|
||||
let matchedValue = false;
|
||||
|
||||
if (matchedKey === true) {
|
||||
matchedValue = (0, _jasmineUtils.equals)(aEntry[1], bEntry[1], [
|
||||
iterableEqualityWithStack
|
||||
]);
|
||||
}
|
||||
|
||||
if (matchedValue === true) {
|
||||
has = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (has === false) {
|
||||
allFound = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} // Remove the first value from the stack of traversed values.
|
||||
|
||||
aStack.pop();
|
||||
bStack.pop();
|
||||
return allFound;
|
||||
}
|
||||
}
|
||||
|
||||
const bIterator = b[IteratorSymbol]();
|
||||
|
||||
for (const aValue of a) {
|
||||
const nextB = bIterator.next();
|
||||
|
||||
if (
|
||||
nextB.done ||
|
||||
!(0, _jasmineUtils.equals)(aValue, nextB.value, [
|
||||
iterableEqualityWithStack
|
||||
])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bIterator.next().done) {
|
||||
return false;
|
||||
} // Remove the first value from the stack of traversed values.
|
||||
|
||||
aStack.pop();
|
||||
bStack.pop();
|
||||
return true;
|
||||
};
|
||||
|
||||
exports.iterableEquality = iterableEquality;
|
||||
|
||||
const isObject = a => a !== null && typeof a === 'object';
|
||||
|
||||
const isObjectWithKeys = a =>
|
||||
isObject(a) &&
|
||||
!(a instanceof Error) &&
|
||||
!(a instanceof Array) &&
|
||||
!(a instanceof Date);
|
||||
|
||||
const subsetEquality = (object, subset) => {
|
||||
// subsetEquality needs to keep track of the references
|
||||
// it has already visited to avoid infinite loops in case
|
||||
// there are circular references in the subset passed to it.
|
||||
const subsetEqualityWithContext = (seenReferences = new WeakMap()) => (
|
||||
object,
|
||||
subset
|
||||
) => {
|
||||
if (!isObjectWithKeys(subset)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return Object.keys(subset).every(key => {
|
||||
if (isObjectWithKeys(subset[key])) {
|
||||
if (seenReferences.has(subset[key])) {
|
||||
return (0, _jasmineUtils.equals)(object[key], subset[key], [
|
||||
iterableEquality
|
||||
]);
|
||||
}
|
||||
|
||||
seenReferences.set(subset[key], true);
|
||||
}
|
||||
|
||||
const result =
|
||||
object != null &&
|
||||
hasPropertyInObject(object, key) &&
|
||||
(0, _jasmineUtils.equals)(object[key], subset[key], [
|
||||
iterableEquality,
|
||||
subsetEqualityWithContext(seenReferences)
|
||||
]); // The main goal of using seenReference is to avoid circular node on tree.
|
||||
// It will only happen within a parent and its child, not a node and nodes next to it (same level)
|
||||
// We should keep the reference for a parent and its child only
|
||||
// Thus we should delete the reference immediately so that it doesn't interfere
|
||||
// other nodes within the same level on tree.
|
||||
|
||||
seenReferences.delete(subset[key]);
|
||||
return result;
|
||||
});
|
||||
};
|
||||
|
||||
return subsetEqualityWithContext()(object, subset);
|
||||
}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||
|
||||
exports.subsetEquality = subsetEquality;
|
||||
|
||||
const typeEquality = (a, b) => {
|
||||
if (a == null || b == null || a.constructor === b.constructor) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
exports.typeEquality = typeEquality;
|
||||
|
||||
const sparseArrayEquality = (a, b) => {
|
||||
if (!Array.isArray(a) || !Array.isArray(b)) {
|
||||
return undefined;
|
||||
} // A sparse array [, , 1] will have keys ["2"] whereas [undefined, undefined, 1] will have keys ["0", "1", "2"]
|
||||
|
||||
const aKeys = Object.keys(a);
|
||||
const bKeys = Object.keys(b);
|
||||
return (
|
||||
(0, _jasmineUtils.equals)(a, b, [iterableEquality, typeEquality], true) &&
|
||||
(0, _jasmineUtils.equals)(aKeys, bKeys)
|
||||
);
|
||||
};
|
||||
|
||||
exports.sparseArrayEquality = sparseArrayEquality;
|
||||
|
||||
const partition = (items, predicate) => {
|
||||
const result = [[], []];
|
||||
items.forEach(item => result[predicate(item) ? 0 : 1].push(item));
|
||||
return result;
|
||||
}; // Copied from https://github.com/graingert/angular.js/blob/a43574052e9775cbc1d7dd8a086752c979b0f020/src/Angular.js#L685-L693
|
||||
|
||||
exports.partition = partition;
|
||||
|
||||
const isError = value => {
|
||||
switch (Object.prototype.toString.call(value)) {
|
||||
case '[object Error]':
|
||||
return true;
|
||||
|
||||
case '[object Exception]':
|
||||
return true;
|
||||
|
||||
case '[object DOMException]':
|
||||
return true;
|
||||
|
||||
default:
|
||||
return value instanceof Error;
|
||||
}
|
||||
};
|
||||
|
||||
exports.isError = isError;
|
||||
|
||||
function emptyObject(obj) {
|
||||
return obj && typeof obj === 'object' ? !Object.keys(obj).length : false;
|
||||
}
|
||||
|
||||
const MULTILINE_REGEXP = /[\r\n]/;
|
||||
|
||||
const isOneline = (expected, received) =>
|
||||
typeof expected === 'string' &&
|
||||
typeof received === 'string' &&
|
||||
(!MULTILINE_REGEXP.test(expected) || !MULTILINE_REGEXP.test(received));
|
||||
|
||||
exports.isOneline = isOneline;
|
21
web/node_modules/expect/node_modules/@jest/types/LICENSE
generated
vendored
Normal file
21
web/node_modules/expect/node_modules/@jest/types/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Facebook, Inc. and its affiliates.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
191
web/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts
generated
vendored
Normal file
191
web/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,191 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
/// <reference types="node" />
|
||||
import type * as Global from './Global';
|
||||
declare type Process = NodeJS.Process;
|
||||
export declare type DoneFn = Global.DoneFn;
|
||||
export declare type BlockFn = Global.BlockFn;
|
||||
export declare type BlockName = Global.BlockName;
|
||||
export declare type BlockMode = void | 'skip' | 'only' | 'todo';
|
||||
export declare type TestMode = BlockMode;
|
||||
export declare type TestName = Global.TestName;
|
||||
export declare type TestFn = Global.TestFn;
|
||||
export declare type HookFn = Global.HookFn;
|
||||
export declare type AsyncFn = TestFn | HookFn;
|
||||
export declare type SharedHookType = 'afterAll' | 'beforeAll';
|
||||
export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
|
||||
export declare type TestContext = Record<string, unknown>;
|
||||
export declare type Exception = any;
|
||||
export declare type FormattedError = string;
|
||||
export declare type Hook = {
|
||||
asyncError: Error;
|
||||
fn: HookFn;
|
||||
type: HookType;
|
||||
parent: DescribeBlock;
|
||||
timeout: number | undefined | null;
|
||||
};
|
||||
export interface EventHandler {
|
||||
(event: AsyncEvent, state: State): void | Promise<void>;
|
||||
(event: SyncEvent, state: State): void;
|
||||
}
|
||||
export declare type Event = SyncEvent | AsyncEvent;
|
||||
interface JestGlobals extends Global.TestFrameworkGlobals {
|
||||
expect: unknown;
|
||||
}
|
||||
export declare type SyncEvent = {
|
||||
asyncError: Error;
|
||||
mode: BlockMode;
|
||||
name: 'start_describe_definition';
|
||||
blockName: BlockName;
|
||||
} | {
|
||||
mode: BlockMode;
|
||||
name: 'finish_describe_definition';
|
||||
blockName: BlockName;
|
||||
} | {
|
||||
asyncError: Error;
|
||||
name: 'add_hook';
|
||||
hookType: HookType;
|
||||
fn: HookFn;
|
||||
timeout: number | undefined;
|
||||
} | {
|
||||
asyncError: Error;
|
||||
name: 'add_test';
|
||||
testName: TestName;
|
||||
fn: TestFn;
|
||||
mode?: TestMode;
|
||||
timeout: number | undefined;
|
||||
} | {
|
||||
name: 'error';
|
||||
error: Exception;
|
||||
};
|
||||
export declare type AsyncEvent = {
|
||||
name: 'setup';
|
||||
testNamePattern?: string;
|
||||
runtimeGlobals: JestGlobals;
|
||||
parentProcess: Process;
|
||||
} | {
|
||||
name: 'include_test_location_in_result';
|
||||
} | {
|
||||
name: 'hook_start';
|
||||
hook: Hook;
|
||||
} | {
|
||||
name: 'hook_success';
|
||||
describeBlock?: DescribeBlock;
|
||||
test?: TestEntry;
|
||||
hook: Hook;
|
||||
} | {
|
||||
name: 'hook_failure';
|
||||
error: string | Exception;
|
||||
describeBlock?: DescribeBlock;
|
||||
test?: TestEntry;
|
||||
hook: Hook;
|
||||
} | {
|
||||
name: 'test_fn_start';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_fn_success';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_fn_failure';
|
||||
error: Exception;
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_retry';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_start';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_skip';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_todo';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'test_done';
|
||||
test: TestEntry;
|
||||
} | {
|
||||
name: 'run_describe_start';
|
||||
describeBlock: DescribeBlock;
|
||||
} | {
|
||||
name: 'run_describe_finish';
|
||||
describeBlock: DescribeBlock;
|
||||
} | {
|
||||
name: 'run_start';
|
||||
} | {
|
||||
name: 'run_finish';
|
||||
} | {
|
||||
name: 'teardown';
|
||||
};
|
||||
export declare type MatcherResults = {
|
||||
actual: unknown;
|
||||
expected: unknown;
|
||||
name: string;
|
||||
pass: boolean;
|
||||
};
|
||||
export declare type TestStatus = 'skip' | 'done' | 'todo';
|
||||
export declare type TestResult = {
|
||||
duration?: number | null;
|
||||
errors: Array<FormattedError>;
|
||||
errorsDetailed: Array<MatcherResults | unknown>;
|
||||
invocations: number;
|
||||
status: TestStatus;
|
||||
location?: {
|
||||
column: number;
|
||||
line: number;
|
||||
} | null;
|
||||
testPath: Array<TestName | BlockName>;
|
||||
};
|
||||
export declare type RunResult = {
|
||||
unhandledErrors: Array<FormattedError>;
|
||||
testResults: TestResults;
|
||||
};
|
||||
export declare type TestResults = Array<TestResult>;
|
||||
export declare type GlobalErrorHandlers = {
|
||||
uncaughtException: Array<(exception: Exception) => void>;
|
||||
unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
|
||||
};
|
||||
export declare type State = {
|
||||
currentDescribeBlock: DescribeBlock;
|
||||
currentlyRunningTest?: TestEntry | null;
|
||||
expand?: boolean;
|
||||
hasFocusedTests: boolean;
|
||||
hasStarted: boolean;
|
||||
originalGlobalErrorHandlers?: GlobalErrorHandlers;
|
||||
parentProcess: Process | null;
|
||||
rootDescribeBlock: DescribeBlock;
|
||||
testNamePattern?: RegExp | null;
|
||||
testTimeout: number;
|
||||
unhandledErrors: Array<Exception>;
|
||||
includeTestLocationInResult: boolean;
|
||||
};
|
||||
export declare type DescribeBlock = {
|
||||
type: 'describeBlock';
|
||||
children: Array<DescribeBlock | TestEntry>;
|
||||
hooks: Array<Hook>;
|
||||
mode: BlockMode;
|
||||
name: BlockName;
|
||||
parent?: DescribeBlock;
|
||||
/** @deprecated Please get from `children` array instead */
|
||||
tests: Array<TestEntry>;
|
||||
};
|
||||
export declare type TestError = Exception | [Exception | undefined, Exception];
|
||||
export declare type TestEntry = {
|
||||
type: 'test';
|
||||
asyncError: Exception;
|
||||
errors: Array<TestError>;
|
||||
fn: TestFn;
|
||||
invocations: number;
|
||||
mode: TestMode;
|
||||
name: TestName;
|
||||
parent: DescribeBlock;
|
||||
startedAt?: number | null;
|
||||
duration?: number | null;
|
||||
status?: TestStatus | null;
|
||||
timeout?: number;
|
||||
};
|
||||
export {};
|
1
web/node_modules/expect/node_modules/@jest/types/build/Circus.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/Circus.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
433
web/node_modules/expect/node_modules/@jest/types/build/Config.d.ts
generated
vendored
Normal file
433
web/node_modules/expect/node_modules/@jest/types/build/Config.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,433 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
/// <reference types="node" />
|
||||
import type { ForegroundColor } from 'chalk';
|
||||
import type { ReportOptions } from 'istanbul-reports';
|
||||
import type { Arguments } from 'yargs';
|
||||
declare type CoverageProvider = 'babel' | 'v8';
|
||||
declare type Timers = 'real' | 'fake' | 'modern' | 'legacy';
|
||||
export declare type Path = string;
|
||||
export declare type Glob = string;
|
||||
export declare type HasteConfig = {
|
||||
/** Whether to hash files using SHA-1. */
|
||||
computeSha1?: boolean;
|
||||
/** The platform to use as the default, e.g. 'ios'. */
|
||||
defaultPlatform?: string | null;
|
||||
/** Path to a custom implementation of Haste. */
|
||||
hasteImplModulePath?: string;
|
||||
/** All platforms to target, e.g ['ios', 'android']. */
|
||||
platforms?: Array<string>;
|
||||
/** Whether to throw on error on module collision. */
|
||||
throwOnModuleCollision?: boolean;
|
||||
};
|
||||
export declare type CoverageReporterName = keyof ReportOptions;
|
||||
export declare type CoverageReporterWithOptions<K = CoverageReporterName> = K extends CoverageReporterName ? ReportOptions[K] extends never ? never : [K, Partial<ReportOptions[K]>] : never;
|
||||
export declare type CoverageReporters = Array<CoverageReporterName | CoverageReporterWithOptions>;
|
||||
export declare type ReporterConfig = [string, Record<string, unknown>];
|
||||
export declare type TransformerConfig = [string, Record<string, unknown>];
|
||||
export interface ConfigGlobals {
|
||||
[K: string]: unknown;
|
||||
}
|
||||
export declare type DefaultOptions = {
|
||||
automock: boolean;
|
||||
bail: number;
|
||||
cache: boolean;
|
||||
cacheDirectory: Path;
|
||||
changedFilesWithAncestor: boolean;
|
||||
clearMocks: boolean;
|
||||
collectCoverage: boolean;
|
||||
coveragePathIgnorePatterns: Array<string>;
|
||||
coverageReporters: Array<CoverageReporterName>;
|
||||
coverageProvider: CoverageProvider;
|
||||
errorOnDeprecated: boolean;
|
||||
expand: boolean;
|
||||
forceCoverageMatch: Array<Glob>;
|
||||
globals: ConfigGlobals;
|
||||
haste: HasteConfig;
|
||||
injectGlobals: boolean;
|
||||
maxConcurrency: number;
|
||||
maxWorkers: number | string;
|
||||
moduleDirectories: Array<string>;
|
||||
moduleFileExtensions: Array<string>;
|
||||
moduleNameMapper: Record<string, string | Array<string>>;
|
||||
modulePathIgnorePatterns: Array<string>;
|
||||
noStackTrace: boolean;
|
||||
notify: boolean;
|
||||
notifyMode: NotifyMode;
|
||||
prettierPath: string;
|
||||
resetMocks: boolean;
|
||||
resetModules: boolean;
|
||||
restoreMocks: boolean;
|
||||
roots: Array<Path>;
|
||||
runTestsByPath: boolean;
|
||||
runner: 'jest-runner';
|
||||
setupFiles: Array<Path>;
|
||||
setupFilesAfterEnv: Array<Path>;
|
||||
skipFilter: boolean;
|
||||
slowTestThreshold: number;
|
||||
snapshotSerializers: Array<Path>;
|
||||
testEnvironment: string;
|
||||
testEnvironmentOptions: Record<string, unknown>;
|
||||
testFailureExitCode: string | number;
|
||||
testLocationInResults: boolean;
|
||||
testMatch: Array<Glob>;
|
||||
testPathIgnorePatterns: Array<string>;
|
||||
testRegex: Array<string>;
|
||||
testRunner: string;
|
||||
testSequencer: string;
|
||||
testURL: string;
|
||||
timers: Timers;
|
||||
transformIgnorePatterns: Array<Glob>;
|
||||
useStderr: boolean;
|
||||
watch: boolean;
|
||||
watchPathIgnorePatterns: Array<string>;
|
||||
watchman: boolean;
|
||||
};
|
||||
export declare type DisplayName = {
|
||||
name: string;
|
||||
color: typeof ForegroundColor;
|
||||
};
|
||||
export declare type InitialOptionsWithRootDir = InitialOptions & Required<Pick<InitialOptions, 'rootDir'>>;
|
||||
export declare type InitialOptions = Partial<{
|
||||
automock: boolean;
|
||||
bail: boolean | number;
|
||||
cache: boolean;
|
||||
cacheDirectory: Path;
|
||||
clearMocks: boolean;
|
||||
changedFilesWithAncestor: boolean;
|
||||
changedSince: string;
|
||||
collectCoverage: boolean;
|
||||
collectCoverageFrom: Array<Glob>;
|
||||
collectCoverageOnlyFrom: {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
coverageDirectory: string;
|
||||
coveragePathIgnorePatterns: Array<string>;
|
||||
coverageProvider: CoverageProvider;
|
||||
coverageReporters: CoverageReporters;
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
[key: string]: number;
|
||||
};
|
||||
};
|
||||
dependencyExtractor: string;
|
||||
detectLeaks: boolean;
|
||||
detectOpenHandles: boolean;
|
||||
displayName: string | DisplayName;
|
||||
expand: boolean;
|
||||
extraGlobals: Array<string>;
|
||||
filter: Path;
|
||||
findRelatedTests: boolean;
|
||||
forceCoverageMatch: Array<Glob>;
|
||||
forceExit: boolean;
|
||||
json: boolean;
|
||||
globals: ConfigGlobals;
|
||||
globalSetup: string | null | undefined;
|
||||
globalTeardown: string | null | undefined;
|
||||
haste: HasteConfig;
|
||||
injectGlobals: boolean;
|
||||
reporters: Array<string | ReporterConfig>;
|
||||
logHeapUsage: boolean;
|
||||
lastCommit: boolean;
|
||||
listTests: boolean;
|
||||
mapCoverage: boolean;
|
||||
maxConcurrency: number;
|
||||
maxWorkers: number | string;
|
||||
moduleDirectories: Array<string>;
|
||||
moduleFileExtensions: Array<string>;
|
||||
moduleLoader: Path;
|
||||
moduleNameMapper: {
|
||||
[key: string]: string | Array<string>;
|
||||
};
|
||||
modulePathIgnorePatterns: Array<string>;
|
||||
modulePaths: Array<string>;
|
||||
name: string;
|
||||
noStackTrace: boolean;
|
||||
notify: boolean;
|
||||
notifyMode: string;
|
||||
onlyChanged: boolean;
|
||||
onlyFailures: boolean;
|
||||
outputFile: Path;
|
||||
passWithNoTests: boolean;
|
||||
preprocessorIgnorePatterns: Array<Glob>;
|
||||
preset: string | null | undefined;
|
||||
prettierPath: string | null | undefined;
|
||||
projects: Array<Glob>;
|
||||
replname: string | null | undefined;
|
||||
resetMocks: boolean;
|
||||
resetModules: boolean;
|
||||
resolver: Path | null | undefined;
|
||||
restoreMocks: boolean;
|
||||
rootDir: Path;
|
||||
roots: Array<Path>;
|
||||
runner: string;
|
||||
runTestsByPath: boolean;
|
||||
scriptPreprocessor: string;
|
||||
setupFiles: Array<Path>;
|
||||
setupTestFrameworkScriptFile: Path;
|
||||
setupFilesAfterEnv: Array<Path>;
|
||||
silent: boolean;
|
||||
skipFilter: boolean;
|
||||
skipNodeResolution: boolean;
|
||||
slowTestThreshold: number;
|
||||
snapshotResolver: Path;
|
||||
snapshotSerializers: Array<Path>;
|
||||
errorOnDeprecated: boolean;
|
||||
testEnvironment: string;
|
||||
testEnvironmentOptions: Record<string, unknown>;
|
||||
testFailureExitCode: string | number;
|
||||
testLocationInResults: boolean;
|
||||
testMatch: Array<Glob>;
|
||||
testNamePattern: string;
|
||||
testPathDirs: Array<Path>;
|
||||
testPathIgnorePatterns: Array<string>;
|
||||
testRegex: string | Array<string>;
|
||||
testResultsProcessor: string;
|
||||
testRunner: string;
|
||||
testSequencer: string;
|
||||
testURL: string;
|
||||
testTimeout: number;
|
||||
timers: Timers;
|
||||
transform: {
|
||||
[regex: string]: Path | TransformerConfig;
|
||||
};
|
||||
transformIgnorePatterns: Array<Glob>;
|
||||
watchPathIgnorePatterns: Array<string>;
|
||||
unmockedModulePathPatterns: Array<string>;
|
||||
updateSnapshot: boolean;
|
||||
useStderr: boolean;
|
||||
verbose?: boolean;
|
||||
watch: boolean;
|
||||
watchAll: boolean;
|
||||
watchman: boolean;
|
||||
watchPlugins: Array<string | [string, Record<string, unknown>]>;
|
||||
}>;
|
||||
export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
|
||||
declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
|
||||
export declare type CoverageThresholdValue = {
|
||||
branches?: number;
|
||||
functions?: number;
|
||||
lines?: number;
|
||||
statements?: number;
|
||||
};
|
||||
declare type CoverageThreshold = {
|
||||
[path: string]: CoverageThresholdValue;
|
||||
global: CoverageThresholdValue;
|
||||
};
|
||||
export declare type GlobalConfig = {
|
||||
bail: number;
|
||||
changedSince?: string;
|
||||
changedFilesWithAncestor: boolean;
|
||||
collectCoverage: boolean;
|
||||
collectCoverageFrom: Array<Glob>;
|
||||
collectCoverageOnlyFrom?: {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
coverageDirectory: string;
|
||||
coveragePathIgnorePatterns?: Array<string>;
|
||||
coverageProvider: CoverageProvider;
|
||||
coverageReporters: CoverageReporters;
|
||||
coverageThreshold?: CoverageThreshold;
|
||||
detectLeaks: boolean;
|
||||
detectOpenHandles: boolean;
|
||||
enabledTestsMap?: {
|
||||
[key: string]: {
|
||||
[key: string]: boolean;
|
||||
};
|
||||
};
|
||||
expand: boolean;
|
||||
filter?: Path;
|
||||
findRelatedTests: boolean;
|
||||
forceExit: boolean;
|
||||
json: boolean;
|
||||
globalSetup?: string;
|
||||
globalTeardown?: string;
|
||||
lastCommit: boolean;
|
||||
logHeapUsage: boolean;
|
||||
listTests: boolean;
|
||||
maxConcurrency: number;
|
||||
maxWorkers: number;
|
||||
noStackTrace: boolean;
|
||||
nonFlagArgs: Array<string>;
|
||||
noSCM?: boolean;
|
||||
notify: boolean;
|
||||
notifyMode: NotifyMode;
|
||||
outputFile?: Path;
|
||||
onlyChanged: boolean;
|
||||
onlyFailures: boolean;
|
||||
passWithNoTests: boolean;
|
||||
projects: Array<Glob>;
|
||||
replname?: string;
|
||||
reporters?: Array<string | ReporterConfig>;
|
||||
runTestsByPath: boolean;
|
||||
rootDir: Path;
|
||||
silent?: boolean;
|
||||
skipFilter: boolean;
|
||||
errorOnDeprecated: boolean;
|
||||
testFailureExitCode: number;
|
||||
testNamePattern?: string;
|
||||
testPathPattern: string;
|
||||
testResultsProcessor?: string;
|
||||
testSequencer: string;
|
||||
testTimeout?: number;
|
||||
updateSnapshot: SnapshotUpdateState;
|
||||
useStderr: boolean;
|
||||
verbose?: boolean;
|
||||
watch: boolean;
|
||||
watchAll: boolean;
|
||||
watchman: boolean;
|
||||
watchPlugins?: Array<{
|
||||
path: string;
|
||||
config: Record<string, unknown>;
|
||||
}> | null;
|
||||
};
|
||||
export declare type ProjectConfig = {
|
||||
automock: boolean;
|
||||
cache: boolean;
|
||||
cacheDirectory: Path;
|
||||
clearMocks: boolean;
|
||||
coveragePathIgnorePatterns: Array<string>;
|
||||
cwd: Path;
|
||||
dependencyExtractor?: string;
|
||||
detectLeaks: boolean;
|
||||
detectOpenHandles: boolean;
|
||||
displayName?: DisplayName;
|
||||
errorOnDeprecated: boolean;
|
||||
extraGlobals: Array<keyof NodeJS.Global>;
|
||||
filter?: Path;
|
||||
forceCoverageMatch: Array<Glob>;
|
||||
globalSetup?: string;
|
||||
globalTeardown?: string;
|
||||
globals: ConfigGlobals;
|
||||
haste: HasteConfig;
|
||||
injectGlobals: boolean;
|
||||
moduleDirectories: Array<string>;
|
||||
moduleFileExtensions: Array<string>;
|
||||
moduleLoader?: Path;
|
||||
moduleNameMapper: Array<[string, string]>;
|
||||
modulePathIgnorePatterns: Array<string>;
|
||||
modulePaths?: Array<string>;
|
||||
name: string;
|
||||
prettierPath: string;
|
||||
resetMocks: boolean;
|
||||
resetModules: boolean;
|
||||
resolver?: Path;
|
||||
restoreMocks: boolean;
|
||||
rootDir: Path;
|
||||
roots: Array<Path>;
|
||||
runner: string;
|
||||
setupFiles: Array<Path>;
|
||||
setupFilesAfterEnv: Array<Path>;
|
||||
skipFilter: boolean;
|
||||
skipNodeResolution?: boolean;
|
||||
slowTestThreshold: number;
|
||||
snapshotResolver?: Path;
|
||||
snapshotSerializers: Array<Path>;
|
||||
testEnvironment: string;
|
||||
testEnvironmentOptions: Record<string, unknown>;
|
||||
testMatch: Array<Glob>;
|
||||
testLocationInResults: boolean;
|
||||
testPathIgnorePatterns: Array<string>;
|
||||
testRegex: Array<string | RegExp>;
|
||||
testRunner: string;
|
||||
testURL: string;
|
||||
timers: Timers;
|
||||
transform: Array<[string, Path, Record<string, unknown>]>;
|
||||
transformIgnorePatterns: Array<Glob>;
|
||||
watchPathIgnorePatterns: Array<string>;
|
||||
unmockedModulePathPatterns?: Array<string>;
|
||||
};
|
||||
export declare type Argv = Arguments<Partial<{
|
||||
all: boolean;
|
||||
automock: boolean;
|
||||
bail: boolean | number;
|
||||
cache: boolean;
|
||||
cacheDirectory: string;
|
||||
changedFilesWithAncestor: boolean;
|
||||
changedSince: string;
|
||||
ci: boolean;
|
||||
clearCache: boolean;
|
||||
clearMocks: boolean;
|
||||
collectCoverage: boolean;
|
||||
collectCoverageFrom: string;
|
||||
collectCoverageOnlyFrom: Array<string>;
|
||||
color: boolean;
|
||||
colors: boolean;
|
||||
config: string;
|
||||
coverage: boolean;
|
||||
coverageDirectory: string;
|
||||
coveragePathIgnorePatterns: Array<string>;
|
||||
coverageReporters: Array<string>;
|
||||
coverageThreshold: string;
|
||||
debug: boolean;
|
||||
env: string;
|
||||
expand: boolean;
|
||||
findRelatedTests: boolean;
|
||||
forceExit: boolean;
|
||||
globals: string;
|
||||
globalSetup: string | null | undefined;
|
||||
globalTeardown: string | null | undefined;
|
||||
haste: string;
|
||||
init: boolean;
|
||||
injectGlobals: boolean;
|
||||
json: boolean;
|
||||
lastCommit: boolean;
|
||||
logHeapUsage: boolean;
|
||||
maxWorkers: number | string;
|
||||
moduleDirectories: Array<string>;
|
||||
moduleFileExtensions: Array<string>;
|
||||
moduleNameMapper: string;
|
||||
modulePathIgnorePatterns: Array<string>;
|
||||
modulePaths: Array<string>;
|
||||
noStackTrace: boolean;
|
||||
notify: boolean;
|
||||
notifyMode: string;
|
||||
onlyChanged: boolean;
|
||||
onlyFailures: boolean;
|
||||
outputFile: string;
|
||||
preset: string | null | undefined;
|
||||
projects: Array<string>;
|
||||
prettierPath: string | null | undefined;
|
||||
resetMocks: boolean;
|
||||
resetModules: boolean;
|
||||
resolver: string | null | undefined;
|
||||
restoreMocks: boolean;
|
||||
rootDir: string;
|
||||
roots: Array<string>;
|
||||
runInBand: boolean;
|
||||
selectProjects: Array<string>;
|
||||
setupFiles: Array<string>;
|
||||
setupFilesAfterEnv: Array<string>;
|
||||
showConfig: boolean;
|
||||
silent: boolean;
|
||||
snapshotSerializers: Array<string>;
|
||||
testEnvironment: string;
|
||||
testFailureExitCode: string | null | undefined;
|
||||
testMatch: Array<string>;
|
||||
testNamePattern: string;
|
||||
testPathIgnorePatterns: Array<string>;
|
||||
testPathPattern: Array<string>;
|
||||
testRegex: string | Array<string>;
|
||||
testResultsProcessor: string;
|
||||
testRunner: string;
|
||||
testSequencer: string;
|
||||
testURL: string;
|
||||
testTimeout: number | null | undefined;
|
||||
timers: string;
|
||||
transform: string;
|
||||
transformIgnorePatterns: Array<string>;
|
||||
unmockedModulePathPatterns: Array<string> | null | undefined;
|
||||
updateSnapshot: boolean;
|
||||
useStderr: boolean;
|
||||
verbose: boolean;
|
||||
version: boolean;
|
||||
watch: boolean;
|
||||
watchAll: boolean;
|
||||
watchman: boolean;
|
||||
watchPathIgnorePatterns: Array<string>;
|
||||
}>>;
|
||||
export {};
|
1
web/node_modules/expect/node_modules/@jest/types/build/Config.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/Config.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
88
web/node_modules/expect/node_modules/@jest/types/build/Global.d.ts
generated
vendored
Normal file
88
web/node_modules/expect/node_modules/@jest/types/build/Global.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,88 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
/// <reference types="node" />
|
||||
import type { CoverageMapData } from 'istanbul-lib-coverage';
|
||||
export declare type DoneFn = (reason?: string | Error) => void;
|
||||
export declare type TestName = string;
|
||||
export declare type TestFn = (done?: DoneFn) => Promise<void | undefined | unknown> | void | undefined;
|
||||
export declare type ConcurrentTestFn = (done?: DoneFn) => Promise<void | undefined | unknown>;
|
||||
export declare type BlockFn = () => void;
|
||||
export declare type BlockName = string;
|
||||
export declare type HookFn = TestFn;
|
||||
export declare type Col = unknown;
|
||||
export declare type Row = Array<Col>;
|
||||
export declare type Table = Array<Row>;
|
||||
export declare type ArrayTable = Table | Row;
|
||||
export declare type TemplateTable = TemplateStringsArray;
|
||||
export declare type TemplateData = Array<unknown>;
|
||||
export declare type EachTable = ArrayTable | TemplateTable;
|
||||
export declare type TestCallback = BlockFn | TestFn | ConcurrentTestFn;
|
||||
export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
|
||||
declare type Jasmine = {
|
||||
_DEFAULT_TIMEOUT_INTERVAL?: number;
|
||||
addMatchers: (matchers: Record<string, unknown>) => void;
|
||||
};
|
||||
declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
|
||||
export interface HookBase {
|
||||
(fn: HookFn, timeout?: number): void;
|
||||
}
|
||||
export interface ItBase {
|
||||
(testName: TestName, fn: TestFn, timeout?: number): void;
|
||||
each: Each<TestFn>;
|
||||
}
|
||||
export interface It extends ItBase {
|
||||
only: ItBase;
|
||||
skip: ItBase;
|
||||
todo: (testName: TestName) => void;
|
||||
}
|
||||
export interface ItConcurrentBase {
|
||||
(testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
|
||||
each: Each<ConcurrentTestFn>;
|
||||
}
|
||||
export interface ItConcurrentExtended extends ItConcurrentBase {
|
||||
only: ItConcurrentBase;
|
||||
skip: ItConcurrentBase;
|
||||
}
|
||||
export interface ItConcurrent extends It {
|
||||
concurrent: ItConcurrentExtended;
|
||||
}
|
||||
export interface DescribeBase {
|
||||
(blockName: BlockName, blockFn: BlockFn): void;
|
||||
each: Each<BlockFn>;
|
||||
}
|
||||
export interface Describe extends DescribeBase {
|
||||
only: DescribeBase;
|
||||
skip: DescribeBase;
|
||||
}
|
||||
export interface TestFrameworkGlobals {
|
||||
it: ItConcurrent;
|
||||
test: ItConcurrent;
|
||||
fit: ItBase & {
|
||||
concurrent?: ItConcurrentBase;
|
||||
};
|
||||
xit: ItBase;
|
||||
xtest: ItBase;
|
||||
describe: Describe;
|
||||
xdescribe: DescribeBase;
|
||||
fdescribe: DescribeBase;
|
||||
beforeAll: HookBase;
|
||||
beforeEach: HookBase;
|
||||
afterEach: HookBase;
|
||||
afterAll: HookBase;
|
||||
}
|
||||
export interface GlobalAdditions extends TestFrameworkGlobals {
|
||||
__coverage__: CoverageMapData;
|
||||
jasmine: Jasmine;
|
||||
fail: () => void;
|
||||
pending: () => void;
|
||||
spyOn: () => void;
|
||||
spyOnProperty: () => void;
|
||||
}
|
||||
export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
|
||||
[extras: string]: unknown;
|
||||
}
|
||||
export {};
|
1
web/node_modules/expect/node_modules/@jest/types/build/Global.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/Global.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
31
web/node_modules/expect/node_modules/@jest/types/build/TestResult.d.ts
generated
vendored
Normal file
31
web/node_modules/expect/node_modules/@jest/types/build/TestResult.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
export declare type Milliseconds = number;
|
||||
declare type Status = 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled';
|
||||
declare type Callsite = {
|
||||
column: number;
|
||||
line: number;
|
||||
};
|
||||
export declare type AssertionResult = {
|
||||
ancestorTitles: Array<string>;
|
||||
duration?: Milliseconds | null;
|
||||
failureDetails: Array<unknown>;
|
||||
failureMessages: Array<string>;
|
||||
fullName: string;
|
||||
invocations?: number;
|
||||
location?: Callsite | null;
|
||||
numPassingAsserts: number;
|
||||
status: Status;
|
||||
title: string;
|
||||
};
|
||||
export declare type SerializableError = {
|
||||
code?: unknown;
|
||||
message: string;
|
||||
stack: string | null | undefined;
|
||||
type?: string;
|
||||
};
|
||||
export {};
|
1
web/node_modules/expect/node_modules/@jest/types/build/TestResult.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/TestResult.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
12
web/node_modules/expect/node_modules/@jest/types/build/Transform.d.ts
generated
vendored
Normal file
12
web/node_modules/expect/node_modules/@jest/types/build/Transform.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
export declare type TransformResult = {
|
||||
code: string;
|
||||
originalCode: string;
|
||||
mapCoverage?: boolean;
|
||||
sourceMapPath: string | null;
|
||||
};
|
1
web/node_modules/expect/node_modules/@jest/types/build/Transform.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/Transform.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
12
web/node_modules/expect/node_modules/@jest/types/build/index.d.ts
generated
vendored
Normal file
12
web/node_modules/expect/node_modules/@jest/types/build/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
import type * as Circus from './Circus';
|
||||
import type * as Config from './Config';
|
||||
import type * as Global from './Global';
|
||||
import type * as TestResult from './TestResult';
|
||||
import type * as TransformTypes from './Transform';
|
||||
export type { Circus, Config, Global, TestResult, TransformTypes };
|
1
web/node_modules/expect/node_modules/@jest/types/build/index.js
generated
vendored
Normal file
1
web/node_modules/expect/node_modules/@jest/types/build/index.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
'use strict';
|
26
web/node_modules/expect/node_modules/@jest/types/package.json
generated
vendored
Normal file
26
web/node_modules/expect/node_modules/@jest/types/package.json
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"name": "@jest/types",
|
||||
"version": "26.6.2",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/facebook/jest.git",
|
||||
"directory": "packages/jest-types"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.14.2"
|
||||
},
|
||||
"license": "MIT",
|
||||
"main": "build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
"dependencies": {
|
||||
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||
"@types/istanbul-reports": "^3.0.0",
|
||||
"@types/node": "*",
|
||||
"@types/yargs": "^15.0.0",
|
||||
"chalk": "^4.0.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"gitHead": "4c46930615602cbf983fb7e8e82884c282a624d5"
|
||||
}
|
21
web/node_modules/expect/node_modules/@types/yargs/LICENSE
generated
vendored
Executable file
21
web/node_modules/expect/node_modules/@types/yargs/LICENSE
generated
vendored
Executable file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE
|
16
web/node_modules/expect/node_modules/@types/yargs/README.md
generated
vendored
Executable file
16
web/node_modules/expect/node_modules/@types/yargs/README.md
generated
vendored
Executable file
|
@ -0,0 +1,16 @@
|
|||
# Installation
|
||||
> `npm install --save @types/yargs`
|
||||
|
||||
# Summary
|
||||
This package contains type definitions for yargs (https://github.com/chevex/yargs).
|
||||
|
||||
# Details
|
||||
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs/v15.
|
||||
|
||||
### Additional Details
|
||||
* Last updated: Fri, 02 Jul 2021 16:32:05 GMT
|
||||
* Dependencies: [@types/yargs-parser](https://npmjs.com/package/@types/yargs-parser)
|
||||
* Global values: none
|
||||
|
||||
# Credits
|
||||
These definitions were written by [Martin Poelstra](https://github.com/poelstra), [Mizunashi Mana](https://github.com/mizunashi-mana), [Jeffery Grajkowski](https://github.com/pushplay), [Jimi (Dimitris) Charalampidis](https://github.com/JimiC), [Steffen Viken Valvåg](https://github.com/steffenvv), [Emily Marigold Klassen](https://github.com/forivall), [ExE Boss](https://github.com/ExE-Boss), and [Aankhen](https://github.com/Aankhen).
|
836
web/node_modules/expect/node_modules/@types/yargs/index.d.ts
generated
vendored
Executable file
836
web/node_modules/expect/node_modules/@types/yargs/index.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,836 @@
|
|||
// Type definitions for yargs 15.0
|
||||
// Project: https://github.com/chevex/yargs, https://yargs.js.org
|
||||
// Definitions by: Martin Poelstra <https://github.com/poelstra>
|
||||
// Mizunashi Mana <https://github.com/mizunashi-mana>
|
||||
// Jeffery Grajkowski <https://github.com/pushplay>
|
||||
// Jimi (Dimitris) Charalampidis <https://github.com/JimiC>
|
||||
// Steffen Viken Valvåg <https://github.com/steffenvv>
|
||||
// Emily Marigold Klassen <https://github.com/forivall>
|
||||
// ExE Boss <https://github.com/ExE-Boss>
|
||||
// Aankhen <https://github.com/Aankhen>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.0
|
||||
|
||||
// The following TSLint rules have been disabled:
|
||||
// unified-signatures: Because there is useful information in the argument names of the overloaded signatures
|
||||
|
||||
// Convention:
|
||||
// Use 'union types' when:
|
||||
// - parameter types have similar signature type (i.e. 'string | ReadonlyArray<string>')
|
||||
// - parameter names have the same semantic meaning (i.e. ['command', 'commands'] , ['key', 'keys'])
|
||||
// An example for not using 'union types' is the declaration of 'env' where `prefix` and `enable` parameters
|
||||
// have different semantics. On the other hand, in the declaration of 'usage', a `command: string` parameter
|
||||
// has the same semantic meaning with declaring an overload method by using `commands: ReadonlyArray<string>`,
|
||||
// thus it's preferred to use `command: string | ReadonlyArray<string>`
|
||||
// Use parameterless declaration instead of declaring all parameters optional,
|
||||
// when all parameters are optional and more than one
|
||||
|
||||
import { DetailedArguments, Configuration } from 'yargs-parser';
|
||||
|
||||
declare namespace yargs {
|
||||
type BuilderCallback<T, R> = ((args: Argv<T>) => PromiseLike<Argv<R>>) | ((args: Argv<T>) => Argv<R>) | ((args: Argv<T>) => void);
|
||||
|
||||
type ParserConfigurationOptions = Configuration & {
|
||||
/** Sort commands alphabetically. Default is `false` */
|
||||
'sort-commands': boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* The type parameter `T` is the expected shape of the parsed options.
|
||||
* `Arguments<T>` is those options plus `_` and `$0`, and an indexer falling
|
||||
* back to `unknown` for unknown options.
|
||||
*
|
||||
* For the return type / `argv` property, we create a mapped type over
|
||||
* `Arguments<T>` to simplify the inferred type signature in client code.
|
||||
*/
|
||||
interface Argv<T = {}> {
|
||||
(): { [key in keyof Arguments<T>]: Arguments<T>[key] };
|
||||
(args: ReadonlyArray<string>, cwd?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Set key names as equivalent such that updates to a key will propagate to aliases and vice-versa.
|
||||
*
|
||||
* Optionally `.alias()` can take an object that maps keys to aliases.
|
||||
* Each key of this object should be the canonical version of the option, and each value should be a string or an array of strings.
|
||||
*/
|
||||
// Aliases for previously declared options can inherit the types of those options.
|
||||
alias<K1 extends keyof T, K2 extends string>(shortName: K1, longName: K2 | ReadonlyArray<K2>): Argv<T & { [key in K2]: T[K1] }>;
|
||||
alias<K1 extends keyof T, K2 extends string>(shortName: K2, longName: K1 | ReadonlyArray<K1>): Argv<T & { [key in K2]: T[K1] }>;
|
||||
alias(shortName: string | ReadonlyArray<string>, longName: string | ReadonlyArray<string>): Argv<T>;
|
||||
alias(aliases: { [shortName: string]: string | ReadonlyArray<string> }): Argv<T>;
|
||||
|
||||
/**
|
||||
* Get the arguments as a plain old object.
|
||||
*
|
||||
* Arguments without a corresponding flag show up in the `argv._` array.
|
||||
*
|
||||
* The script name or node command is available at `argv.$0` similarly to how `$0` works in bash or perl.
|
||||
*
|
||||
* If `yargs` is executed in an environment that embeds node and there's no script name (e.g. Electron or nw.js),
|
||||
* it will ignore the first parameter since it expects it to be the script name. In order to override
|
||||
* this behavior, use `.parse(process.argv.slice(1))` instead of .argv and the first parameter won't be ignored.
|
||||
*/
|
||||
argv: { [key in keyof Arguments<T>]: Arguments<T>[key] };
|
||||
|
||||
/**
|
||||
* Tell the parser to interpret `key` as an array.
|
||||
* If `.array('foo')` is set, `--foo foo bar` will be parsed as `['foo', 'bar']` rather than as `'foo'`.
|
||||
* Also, if you use the option multiple times all the values will be flattened in one array so `--foo foo --foo bar` will be parsed as `['foo', 'bar']`
|
||||
*
|
||||
* When the option is used with a positional, use `--` to tell `yargs` to stop adding values to the array.
|
||||
*/
|
||||
array<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: ToArray<T[key]> }>;
|
||||
array<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: Array<string | number> | undefined }>;
|
||||
|
||||
/**
|
||||
* Interpret `key` as a boolean. If a non-flag option follows `key` in `process.argv`, that string won't get set as the value of `key`.
|
||||
*
|
||||
* `key` will default to `false`, unless a `default(key, undefined)` is explicitly set.
|
||||
*
|
||||
* If `key` is an array, interpret all the elements as booleans.
|
||||
*/
|
||||
boolean<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: boolean | undefined }>;
|
||||
boolean<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: boolean | undefined }>;
|
||||
|
||||
/**
|
||||
* Check that certain conditions are met in the provided arguments.
|
||||
* @param func Called with two arguments, the parsed `argv` hash and an array of options and their aliases.
|
||||
* If `func` throws or returns a non-truthy value, show the thrown error, usage information, and exit.
|
||||
* @param global Indicates whether `check()` should be enabled both at the top-level and for each sub-command.
|
||||
*/
|
||||
check(func: (argv: Arguments<T>, aliases: { [alias: string]: string }) => any, global?: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Limit valid values for key to a predefined set of choices, given as an array or as an individual value.
|
||||
* If this method is called multiple times, all enumerated values will be merged together.
|
||||
* Choices are generally strings or numbers, and value matching is case-sensitive.
|
||||
*
|
||||
* Optionally `.choices()` can take an object that maps multiple keys to their choices.
|
||||
*
|
||||
* Choices can also be specified as choices in the object given to `option()`.
|
||||
*/
|
||||
choices<K extends keyof T, C extends ReadonlyArray<any>>(key: K, values: C): Argv<Omit<T, K> & { [key in K]: C[number] | undefined }>;
|
||||
choices<K extends string, C extends ReadonlyArray<any>>(key: K, values: C): Argv<T & { [key in K]: C[number] | undefined }>;
|
||||
choices<C extends { [key: string]: ReadonlyArray<any> }>(choices: C): Argv<Omit<T, keyof C> & { [key in keyof C]: C[key][number] | undefined }>;
|
||||
|
||||
/**
|
||||
* Provide a synchronous function to coerce or transform the value(s) given on the command line for `key`.
|
||||
*
|
||||
* The coercion function should accept one argument, representing the parsed value from the command line, and should return a new value or throw an error.
|
||||
* The returned value will be used as the value for `key` (or one of its aliases) in `argv`.
|
||||
*
|
||||
* If the function throws, the error will be treated as a validation failure, delegating to either a custom `.fail()` handler or printing the error message in the console.
|
||||
*
|
||||
* Coercion will be applied to a value after all other modifications, such as `.normalize()`.
|
||||
*
|
||||
* Optionally `.coerce()` can take an object that maps several keys to their respective coercion function.
|
||||
*
|
||||
* You can also map the same function to several keys at one time. Just pass an array of keys as the first argument to `.coerce()`.
|
||||
*
|
||||
* If you are using dot-notion or arrays, .e.g., `user.email` and `user.password`, coercion will be applied to the final object that has been parsed
|
||||
*/
|
||||
coerce<K extends keyof T, V>(key: K | ReadonlyArray<K>, func: (arg: any) => V): Argv<Omit<T, K> & { [key in K]: V | undefined }>;
|
||||
coerce<K extends string, V>(key: K | ReadonlyArray<K>, func: (arg: any) => V): Argv<T & { [key in K]: V | undefined }>;
|
||||
coerce<O extends { [key: string]: (arg: any) => any }>(opts: O): Argv<Omit<T, keyof O> & { [key in keyof O]: ReturnType<O[key]> | undefined }>;
|
||||
|
||||
/**
|
||||
* Define the commands exposed by your application.
|
||||
* @param command Should be a string representing the command or an array of strings representing the command and its aliases.
|
||||
* @param description Use to provide a description for each command your application accepts (the values stored in `argv._`).
|
||||
* Set `description` to false to create a hidden command. Hidden commands don't show up in the help output and aren't available for completion.
|
||||
* @param [builder] Object to give hints about the options that your command accepts.
|
||||
* Can also be a function. This function is executed with a yargs instance, and can be used to provide advanced command specific help.
|
||||
*
|
||||
* Note that when `void` is returned, the handler `argv` object type will not include command-specific arguments.
|
||||
* @param [handler] Function, which will be executed with the parsed `argv` object.
|
||||
*/
|
||||
command<U = T>(
|
||||
command: string | ReadonlyArray<string>,
|
||||
description: string,
|
||||
builder?: BuilderCallback<T, U>,
|
||||
handler?: (args: Arguments<U>) => void,
|
||||
middlewares?: MiddlewareFunction[],
|
||||
deprecated?: boolean | string,
|
||||
): Argv<U>;
|
||||
command<O extends { [key: string]: Options }>(
|
||||
command: string | ReadonlyArray<string>,
|
||||
description: string,
|
||||
builder?: O,
|
||||
handler?: (args: Arguments<InferredOptionTypes<O>>) => void,
|
||||
middlewares?: MiddlewareFunction[],
|
||||
deprecated?: boolean | string,
|
||||
): Argv<T>;
|
||||
command<U>(command: string | ReadonlyArray<string>, description: string, module: CommandModule<T, U>): Argv<U>;
|
||||
command<U = T>(
|
||||
command: string | ReadonlyArray<string>,
|
||||
showInHelp: false,
|
||||
builder?: BuilderCallback<T, U>,
|
||||
handler?: (args: Arguments<U>) => void,
|
||||
middlewares?: MiddlewareFunction[],
|
||||
deprecated?: boolean | string,
|
||||
): Argv<T>;
|
||||
command<O extends { [key: string]: Options }>(
|
||||
command: string | ReadonlyArray<string>,
|
||||
showInHelp: false,
|
||||
builder?: O,
|
||||
handler?: (args: Arguments<InferredOptionTypes<O>>) => void,
|
||||
): Argv<T>;
|
||||
command<U>(command: string | ReadonlyArray<string>, showInHelp: false, module: CommandModule<T, U>): Argv<U>;
|
||||
command<U>(module: CommandModule<T, U>): Argv<U>;
|
||||
|
||||
// Advanced API
|
||||
/** Apply command modules from a directory relative to the module calling this method. */
|
||||
commandDir(dir: string, opts?: RequireDirectoryOptions): Argv<T>;
|
||||
|
||||
/**
|
||||
* Enable bash/zsh-completion shortcuts for commands and options.
|
||||
*
|
||||
* If invoked without parameters, `.completion()` will make completion the command to output the completion script.
|
||||
*
|
||||
* @param [cmd] When present in `argv._`, will result in the `.bashrc` or `.zshrc` completion script being outputted.
|
||||
* To enable bash/zsh completions, concat the generated script to your `.bashrc` or `.bash_profile` (or `.zshrc` for zsh).
|
||||
* @param [description] Provide a description in your usage instructions for the command that generates the completion scripts.
|
||||
* @param [func] Rather than relying on yargs' default completion functionality, which shiver me timbers is pretty awesome, you can provide your own completion method.
|
||||
*/
|
||||
completion(): Argv<T>;
|
||||
completion(cmd: string, func?: AsyncCompletionFunction): Argv<T>;
|
||||
completion(cmd: string, func?: SyncCompletionFunction): Argv<T>;
|
||||
completion(cmd: string, func?: PromiseCompletionFunction): Argv<T>;
|
||||
completion(cmd: string, description?: string | false, func?: AsyncCompletionFunction): Argv<T>;
|
||||
completion(cmd: string, description?: string | false, func?: SyncCompletionFunction): Argv<T>;
|
||||
completion(cmd: string, description?: string | false, func?: PromiseCompletionFunction): Argv<T>;
|
||||
|
||||
/**
|
||||
* Tells the parser that if the option specified by `key` is passed in, it should be interpreted as a path to a JSON config file.
|
||||
* The file is loaded and parsed, and its properties are set as arguments.
|
||||
* Because the file is loaded using Node's require(), the filename MUST end in `.json` to be interpreted correctly.
|
||||
*
|
||||
* If invoked without parameters, `.config()` will make --config the option to pass the JSON config file.
|
||||
*
|
||||
* @param [description] Provided to customize the config (`key`) option in the usage string.
|
||||
* @param [explicitConfigurationObject] An explicit configuration `object`
|
||||
*/
|
||||
config(): Argv<T>;
|
||||
config(key: string | ReadonlyArray<string>, description?: string, parseFn?: (configPath: string) => object): Argv<T>;
|
||||
config(key: string | ReadonlyArray<string>, parseFn: (configPath: string) => object): Argv<T>;
|
||||
config(explicitConfigurationObject: object): Argv<T>;
|
||||
|
||||
/**
|
||||
* Given the key `x` is set, the key `y` must not be set. `y` can either be a single string or an array of argument names that `x` conflicts with.
|
||||
*
|
||||
* Optionally `.conflicts()` can accept an object specifying multiple conflicting keys.
|
||||
*/
|
||||
conflicts(key: string, value: string | ReadonlyArray<string>): Argv<T>;
|
||||
conflicts(conflicts: { [key: string]: string | ReadonlyArray<string> }): Argv<T>;
|
||||
|
||||
/**
|
||||
* Interpret `key` as a boolean flag, but set its parsed value to the number of flag occurrences rather than `true` or `false`. Default value is thus `0`.
|
||||
*/
|
||||
count<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: number }>;
|
||||
count<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: number }>;
|
||||
|
||||
/**
|
||||
* Set `argv[key]` to `value` if no option was specified in `process.argv`.
|
||||
*
|
||||
* Optionally `.default()` can take an object that maps keys to default values.
|
||||
*
|
||||
* The default value can be a `function` which returns a value. The name of the function will be used in the usage string.
|
||||
*
|
||||
* Optionally, `description` can also be provided and will take precedence over displaying the value in the usage instructions.
|
||||
*/
|
||||
default<K extends keyof T, V>(key: K, value: V, description?: string): Argv<Omit<T, K> & { [key in K]: V }>;
|
||||
default<K extends string, V>(key: K, value: V, description?: string): Argv<T & { [key in K]: V }>;
|
||||
default<D extends { [key: string]: any }>(defaults: D, description?: string): Argv<Omit<T, keyof D> & D>;
|
||||
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use '.demandCommand()' or '.demandOption()' instead
|
||||
*/
|
||||
demand<K extends keyof T>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<Defined<T, K>>;
|
||||
demand<K extends string>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<T & { [key in K]: unknown }>;
|
||||
demand(key: string | ReadonlyArray<string>, required?: boolean): Argv<T>;
|
||||
demand(positionals: number, msg: string): Argv<T>;
|
||||
demand(positionals: number, required?: boolean): Argv<T>;
|
||||
demand(positionals: number, max: number, msg?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* @param key If is a string, show the usage information and exit if key wasn't specified in `process.argv`.
|
||||
* If is an array, demand each element.
|
||||
* @param msg If string is given, it will be printed when the argument is missing, instead of the standard error message.
|
||||
* @param demand Controls whether the option is demanded; this is useful when using .options() to specify command line parameters.
|
||||
*/
|
||||
demandOption<K extends keyof T>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<Defined<T, K>>;
|
||||
demandOption<K extends string>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<T & { [key in K]: unknown }>;
|
||||
demandOption(key: string | ReadonlyArray<string>, demand?: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Demand in context of commands.
|
||||
* You can demand a minimum and a maximum number a user can have within your program, as well as provide corresponding error messages if either of the demands is not met.
|
||||
*/
|
||||
demandCommand(): Argv<T>;
|
||||
demandCommand(min: number, minMsg?: string): Argv<T>;
|
||||
demandCommand(min: number, max?: number, minMsg?: string, maxMsg?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Shows a [deprecated] notice in front of the option
|
||||
*/
|
||||
deprecateOption(option: string, msg?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Describe a `key` for the generated usage information.
|
||||
*
|
||||
* Optionally `.describe()` can take an object that maps keys to descriptions.
|
||||
*/
|
||||
describe(key: string | ReadonlyArray<string>, description: string): Argv<T>;
|
||||
describe(descriptions: { [key: string]: string }): Argv<T>;
|
||||
|
||||
/** Should yargs attempt to detect the os' locale? Defaults to `true`. */
|
||||
detectLocale(detect: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Tell yargs to parse environment variables matching the given prefix and apply them to argv as though they were command line arguments.
|
||||
*
|
||||
* Use the "__" separator in the environment variable to indicate nested options. (e.g. prefix_nested__foo => nested.foo)
|
||||
*
|
||||
* If this method is called with no argument or with an empty string or with true, then all env vars will be applied to argv.
|
||||
*
|
||||
* Program arguments are defined in this order of precedence:
|
||||
* 1. Command line args
|
||||
* 2. Env vars
|
||||
* 3. Config file/objects
|
||||
* 4. Configured defaults
|
||||
*
|
||||
* Env var parsing is disabled by default, but you can also explicitly disable it by calling `.env(false)`, e.g. if you need to undo previous configuration.
|
||||
*/
|
||||
env(): Argv<T>;
|
||||
env(prefix: string): Argv<T>;
|
||||
env(enable: boolean): Argv<T>;
|
||||
|
||||
/** A message to print at the end of the usage instructions */
|
||||
epilog(msg: string): Argv<T>;
|
||||
/** A message to print at the end of the usage instructions */
|
||||
epilogue(msg: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Give some example invocations of your program.
|
||||
* Inside `cmd`, the string `$0` will get interpolated to the current script name or node command for the present script similar to how `$0` works in bash or perl.
|
||||
* Examples will be printed out as part of the help message.
|
||||
*/
|
||||
example(command: string, description: string): Argv<T>;
|
||||
example(command: ReadonlyArray<[string, string?]>): Argv<T>;
|
||||
|
||||
/** Manually indicate that the program should exit, and provide context about why we wanted to exit. Follows the behavior set by `.exitProcess().` */
|
||||
exit(code: number, err: Error): void;
|
||||
|
||||
/**
|
||||
* By default, yargs exits the process when the user passes a help flag, the user uses the `.version` functionality, validation fails, or the command handler fails.
|
||||
* Calling `.exitProcess(false)` disables this behavior, enabling further actions after yargs have been validated.
|
||||
*/
|
||||
exitProcess(enabled: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Method to execute when a failure occurs, rather than printing the failure message.
|
||||
* @param func Is called with the failure message that would have been printed, the Error instance originally thrown and yargs state when the failure occurred.
|
||||
*/
|
||||
fail(func: (msg: string, err: Error, yargs: Argv<T>) => any): Argv<T>;
|
||||
|
||||
/**
|
||||
* Allows to programmatically get completion choices for any line.
|
||||
* @param args An array of the words in the command line to complete.
|
||||
* @param done The callback to be called with the resulting completions.
|
||||
*/
|
||||
getCompletion(args: ReadonlyArray<string>, done: (completions: ReadonlyArray<string>) => void): Argv<T>;
|
||||
|
||||
/**
|
||||
* Indicate that an option (or group of options) should not be reset when a command is executed
|
||||
*
|
||||
* Options default to being global.
|
||||
*/
|
||||
global(key: string | ReadonlyArray<string>): Argv<T>;
|
||||
|
||||
/** Given a key, or an array of keys, places options under an alternative heading when displaying usage instructions */
|
||||
group(key: string | ReadonlyArray<string>, groupName: string): Argv<T>;
|
||||
|
||||
/** Hides a key from the generated usage information. Unless a `--show-hidden` option is also passed with `--help` (see `showHidden()`). */
|
||||
hide(key: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Configure an (e.g. `--help`) and implicit command that displays the usage string and exits the process.
|
||||
* By default yargs enables help on the `--help` option.
|
||||
*
|
||||
* Note that any multi-char aliases (e.g. `help`) used for the help option will also be used for the implicit command.
|
||||
* If there are no multi-char aliases (e.g. `h`), then all single-char aliases will be used for the command.
|
||||
*
|
||||
* If invoked without parameters, `.help()` will use `--help` as the option and help as the implicit command to trigger help output.
|
||||
*
|
||||
* @param [description] Customizes the description of the help option in the usage string.
|
||||
* @param [enableExplicit] If `false` is provided, it will disable --help.
|
||||
*/
|
||||
help(): Argv<T>;
|
||||
help(enableExplicit: boolean): Argv<T>;
|
||||
help(option: string, enableExplicit: boolean): Argv<T>;
|
||||
help(option: string, description?: string, enableExplicit?: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Given the key `x` is set, it is required that the key `y` is set.
|
||||
* y` can either be the name of an argument to imply, a number indicating the position of an argument or an array of multiple implications to associate with `x`.
|
||||
*
|
||||
* Optionally `.implies()` can accept an object specifying multiple implications.
|
||||
*/
|
||||
implies(key: string, value: string | ReadonlyArray<string>): Argv<T>;
|
||||
implies(implies: { [key: string]: string | ReadonlyArray<string> }): Argv<T>;
|
||||
|
||||
/**
|
||||
* Return the locale that yargs is currently using.
|
||||
*
|
||||
* By default, yargs will auto-detect the operating system's locale so that yargs-generated help content will display in the user's language.
|
||||
*/
|
||||
locale(): string;
|
||||
/**
|
||||
* Override the auto-detected locale from the user's operating system with a static locale.
|
||||
* Note that the OS locale can be modified by setting/exporting the `LC_ALL` environment variable.
|
||||
*/
|
||||
locale(loc: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Define global middleware functions to be called first, in list order, for all cli command.
|
||||
* @param callbacks Can be a function or a list of functions. Each callback gets passed a reference to argv.
|
||||
* @param [applyBeforeValidation] Set to `true` to apply middleware before validation. This will execute the middleware prior to validation checks, but after parsing.
|
||||
*/
|
||||
middleware(callbacks: MiddlewareFunction<T> | ReadonlyArray<MiddlewareFunction<T>>, applyBeforeValidation?: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* The number of arguments that should be consumed after a key. This can be a useful hint to prevent parsing ambiguity.
|
||||
*
|
||||
* Optionally `.nargs()` can take an object of `key`/`narg` pairs.
|
||||
*/
|
||||
nargs(key: string, count: number): Argv<T>;
|
||||
nargs(nargs: { [key: string]: number }): Argv<T>;
|
||||
|
||||
/** The key provided represents a path and should have `path.normalize()` applied. */
|
||||
normalize<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: ToString<T[key]> }>;
|
||||
normalize<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: string | undefined }>;
|
||||
|
||||
/**
|
||||
* Tell the parser to always interpret key as a number.
|
||||
*
|
||||
* If `key` is an array, all elements will be parsed as numbers.
|
||||
*
|
||||
* If the option is given on the command line without a value, `argv` will be populated with `undefined`.
|
||||
*
|
||||
* If the value given on the command line cannot be parsed as a number, `argv` will be populated with `NaN`.
|
||||
*
|
||||
* Note that decimals, hexadecimals, and scientific notation are all accepted.
|
||||
*/
|
||||
number<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: ToNumber<T[key]> }>;
|
||||
number<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: number | undefined }>;
|
||||
|
||||
/**
|
||||
* Method to execute when a command finishes successfully.
|
||||
* @param func Is called with the successful result of the command that finished.
|
||||
*/
|
||||
onFinishCommand(func: (result: any) => void): Argv<T>;
|
||||
|
||||
/**
|
||||
* This method can be used to make yargs aware of options that could exist.
|
||||
* You can also pass an opt object which can hold further customization, like `.alias()`, `.demandOption()` etc. for that option.
|
||||
*/
|
||||
option<K extends keyof T, O extends Options>(key: K, options: O): Argv<Omit<T, K> & { [key in K]: InferredOptionType<O> }>;
|
||||
option<K extends string, O extends Options>(key: K, options: O): Argv<T & { [key in K]: InferredOptionType<O> }>;
|
||||
option<O extends { [key: string]: Options }>(options: O): Argv<Omit<T, keyof O> & InferredOptionTypes<O>>;
|
||||
|
||||
/**
|
||||
* This method can be used to make yargs aware of options that could exist.
|
||||
* You can also pass an opt object which can hold further customization, like `.alias()`, `.demandOption()` etc. for that option.
|
||||
*/
|
||||
options<K extends keyof T, O extends Options>(key: K, options: O): Argv<Omit<T, K> & { [key in K]: InferredOptionType<O> }>;
|
||||
options<K extends string, O extends Options>(key: K, options: O): Argv<T & { [key in K]: InferredOptionType<O> }>;
|
||||
options<O extends { [key: string]: Options }>(options: O): Argv<Omit<T, keyof O> & InferredOptionTypes<O>>;
|
||||
|
||||
/**
|
||||
* Parse `args` instead of `process.argv`. Returns the `argv` object. `args` may either be a pre-processed argv array, or a raw argument string.
|
||||
*
|
||||
* Note: Providing a callback to parse() disables the `exitProcess` setting until after the callback is invoked.
|
||||
* @param [context] Provides a useful mechanism for passing state information to commands
|
||||
*/
|
||||
parse(): { [key in keyof Arguments<T>]: Arguments<T>[key] };
|
||||
parse(arg: string | ReadonlyArray<string>, context?: object, parseCallback?: ParseCallback<T>): { [key in keyof Arguments<T>]: Arguments<T>[key] };
|
||||
|
||||
/**
|
||||
* If the arguments have not been parsed, this property is `false`.
|
||||
*
|
||||
* If the arguments have been parsed, this contain detailed parsed arguments.
|
||||
*/
|
||||
parsed: DetailedArguments | false;
|
||||
|
||||
/** Allows to configure advanced yargs features. */
|
||||
parserConfiguration(configuration: Partial<ParserConfigurationOptions>): Argv<T>;
|
||||
|
||||
/**
|
||||
* Similar to `config()`, indicates that yargs should interpret the object from the specified key in package.json as a configuration object.
|
||||
* @param [cwd] If provided, the package.json will be read from this location
|
||||
*/
|
||||
pkgConf(key: string | ReadonlyArray<string>, cwd?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Allows you to configure a command's positional arguments with an API similar to `.option()`.
|
||||
* `.positional()` should be called in a command's builder function, and is not available on the top-level yargs instance. If so, it will throw an error.
|
||||
*/
|
||||
positional<K extends keyof T, O extends PositionalOptions>(key: K, opt: O): Argv<Omit<T, K> & { [key in K]: InferredOptionType<O> }>;
|
||||
positional<K extends string, O extends PositionalOptions>(key: K, opt: O): Argv<T & { [key in K]: InferredOptionType<O> }>;
|
||||
|
||||
/** Should yargs provide suggestions regarding similar commands if no matching command is found? */
|
||||
recommendCommands(): Argv<T>;
|
||||
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use '.demandCommand()' or '.demandOption()' instead
|
||||
*/
|
||||
require<K extends keyof T>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<Defined<T, K>>;
|
||||
require(key: string, msg: string): Argv<T>;
|
||||
require(key: string, required: boolean): Argv<T>;
|
||||
require(keys: ReadonlyArray<number>, msg: string): Argv<T>;
|
||||
require(keys: ReadonlyArray<number>, required: boolean): Argv<T>;
|
||||
require(positionals: number, required: boolean): Argv<T>;
|
||||
require(positionals: number, msg: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use '.demandCommand()' or '.demandOption()' instead
|
||||
*/
|
||||
required<K extends keyof T>(key: K | ReadonlyArray<K>, msg?: string | true): Argv<Defined<T, K>>;
|
||||
required(key: string, msg: string): Argv<T>;
|
||||
required(key: string, required: boolean): Argv<T>;
|
||||
required(keys: ReadonlyArray<number>, msg: string): Argv<T>;
|
||||
required(keys: ReadonlyArray<number>, required: boolean): Argv<T>;
|
||||
required(positionals: number, required: boolean): Argv<T>;
|
||||
required(positionals: number, msg: string): Argv<T>;
|
||||
|
||||
requiresArg(key: string | ReadonlyArray<string>): Argv<T>;
|
||||
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use '.global()' instead
|
||||
*/
|
||||
reset(): Argv<T>;
|
||||
|
||||
/** Set the name of your script ($0). Default is the base filename executed by node (`process.argv[1]`) */
|
||||
scriptName($0: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Generate a bash completion script.
|
||||
* Users of your application can install this script in their `.bashrc`, and yargs will provide completion shortcuts for commands and options.
|
||||
*/
|
||||
showCompletionScript(): Argv<T>;
|
||||
|
||||
/**
|
||||
* Configure the `--show-hidden` option that displays the hidden keys (see `hide()`).
|
||||
* @param option If `boolean`, it enables/disables this option altogether. i.e. hidden keys will be permanently hidden if first argument is `false`.
|
||||
* If `string` it changes the key name ("--show-hidden").
|
||||
* @param description Changes the default description ("Show hidden options")
|
||||
*/
|
||||
showHidden(option?: string | boolean): Argv<T>;
|
||||
showHidden(option: string, description?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Print the usage data using the console function consoleLevel for printing.
|
||||
* @param [consoleLevel='error']
|
||||
*/
|
||||
showHelp(consoleLevel?: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Provide the usage data as a string.
|
||||
* @param printCallback a function with a single argument.
|
||||
*/
|
||||
showHelp(printCallback: (s: string) => void): Argv<T>;
|
||||
|
||||
/**
|
||||
* By default, yargs outputs a usage string if any error is detected.
|
||||
* Use the `.showHelpOnFail()` method to customize this behavior.
|
||||
* @param enable If `false`, the usage string is not output.
|
||||
* @param [message] Message that is output after the error message.
|
||||
*/
|
||||
showHelpOnFail(enable: boolean, message?: string): Argv<T>;
|
||||
|
||||
/** Specifies either a single option key (string), or an array of options. If any of the options is present, yargs validation is skipped. */
|
||||
skipValidation(key: string | ReadonlyArray<string>): Argv<T>;
|
||||
|
||||
/**
|
||||
* Any command-line argument given that is not demanded, or does not have a corresponding description, will be reported as an error.
|
||||
*
|
||||
* Unrecognized commands will also be reported as errors.
|
||||
*/
|
||||
strict(): Argv<T>;
|
||||
strict(enabled: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Similar to .strict(), except that it only applies to unrecognized commands.
|
||||
* A user can still provide arbitrary options, but unknown positional commands
|
||||
* will raise an error.
|
||||
*/
|
||||
strictCommands(): Argv<T>;
|
||||
strictCommands(enabled: boolean): Argv<T>;
|
||||
|
||||
/**
|
||||
* Tell the parser logic not to interpret `key` as a number or boolean. This can be useful if you need to preserve leading zeros in an input.
|
||||
*
|
||||
* If `key` is an array, interpret all the elements as strings.
|
||||
*
|
||||
* `.string('_')` will result in non-hyphenated arguments being interpreted as strings, regardless of whether they resemble numbers.
|
||||
*/
|
||||
string<K extends keyof T>(key: K | ReadonlyArray<K>): Argv<Omit<T, K> & { [key in K]: ToString<T[key]> }>;
|
||||
string<K extends string>(key: K | ReadonlyArray<K>): Argv<T & { [key in K]: string | undefined }>;
|
||||
|
||||
// Intended to be used with '.wrap()'
|
||||
terminalWidth(): number;
|
||||
|
||||
updateLocale(obj: { [key: string]: string }): Argv<T>;
|
||||
|
||||
/**
|
||||
* Override the default strings used by yargs with the key/value pairs provided in obj
|
||||
*
|
||||
* If you explicitly specify a locale(), you should do so before calling `updateStrings()`.
|
||||
*/
|
||||
updateStrings(obj: { [key: string]: string }): Argv<T>;
|
||||
|
||||
/**
|
||||
* Set a usage message to show which commands to use.
|
||||
* Inside `message`, the string `$0` will get interpolated to the current script name or node command for the present script similar to how `$0` works in bash or perl.
|
||||
*
|
||||
* If the optional `description`/`builder`/`handler` are provided, `.usage()` acts an an alias for `.command()`.
|
||||
* This allows you to use `.usage()` to configure the default command that will be run as an entry-point to your application
|
||||
* and allows you to provide configuration for the positional arguments accepted by your program:
|
||||
*/
|
||||
usage(message: string): Argv<T>;
|
||||
usage<U>(command: string | ReadonlyArray<string>, description: string, builder?: (args: Argv<T>) => Argv<U>, handler?: (args: Arguments<U>) => void): Argv<T>;
|
||||
usage<U>(command: string | ReadonlyArray<string>, showInHelp: boolean, builder?: (args: Argv<T>) => Argv<U>, handler?: (args: Arguments<U>) => void): Argv<T>;
|
||||
usage<O extends { [key: string]: Options }>(command: string | ReadonlyArray<string>, description: string, builder?: O, handler?: (args: Arguments<InferredOptionTypes<O>>) => void): Argv<T>;
|
||||
usage<O extends { [key: string]: Options }>(command: string | ReadonlyArray<string>, showInHelp: boolean, builder?: O, handler?: (args: Arguments<InferredOptionTypes<O>>) => void): Argv<T>;
|
||||
|
||||
/**
|
||||
* Add an option (e.g. `--version`) that displays the version number (given by the version parameter) and exits the process.
|
||||
* By default yargs enables version for the `--version` option.
|
||||
*
|
||||
* If no arguments are passed to version (`.version()`), yargs will parse the package.json of your module and use its version value.
|
||||
*
|
||||
* If the boolean argument `false` is provided, it will disable `--version`.
|
||||
*/
|
||||
version(): Argv<T>;
|
||||
version(version: string): Argv<T>;
|
||||
version(enable: boolean): Argv<T>;
|
||||
version(optionKey: string, version: string): Argv<T>;
|
||||
version(optionKey: string, description: string, version: string): Argv<T>;
|
||||
|
||||
/**
|
||||
* Format usage output to wrap at columns many columns.
|
||||
*
|
||||
* By default wrap will be set to `Math.min(80, windowWidth)`. Use `.wrap(null)` to specify no column limit (no right-align).
|
||||
* Use `.wrap(yargs.terminalWidth())` to maximize the width of yargs' usage instructions.
|
||||
*/
|
||||
wrap(columns: number | null): Argv<T>;
|
||||
}
|
||||
|
||||
type Arguments<T = {}> = T & {
|
||||
/** Non-option arguments */
|
||||
_: Array<string | number>;
|
||||
/** The script name or node command */
|
||||
$0: string;
|
||||
/** All remaining options */
|
||||
[argName: string]: unknown;
|
||||
};
|
||||
|
||||
interface RequireDirectoryOptions {
|
||||
/** Look for command modules in all subdirectories and apply them as a flattened (non-hierarchical) list. */
|
||||
recurse?: boolean | undefined;
|
||||
/** The types of files to look for when requiring command modules. */
|
||||
extensions?: ReadonlyArray<string> | undefined;
|
||||
/**
|
||||
* A synchronous function called for each command module encountered.
|
||||
* Accepts `commandObject`, `pathToFile`, and `filename` as arguments.
|
||||
* Returns `commandObject` to include the command; any falsy value to exclude/skip it.
|
||||
*/
|
||||
visit?: ((commandObject: any, pathToFile?: string, filename?: string) => any) | undefined;
|
||||
/** Whitelist certain modules */
|
||||
include?: RegExp | ((pathToFile: string) => boolean) | undefined;
|
||||
/** Blacklist certain modules. */
|
||||
exclude?: RegExp | ((pathToFile: string) => boolean) | undefined;
|
||||
}
|
||||
|
||||
interface Options {
|
||||
/** string or array of strings, alias(es) for the canonical option key, see `alias()` */
|
||||
alias?: string | ReadonlyArray<string> | undefined;
|
||||
/** boolean, interpret option as an array, see `array()` */
|
||||
array?: boolean | undefined;
|
||||
/** boolean, interpret option as a boolean flag, see `boolean()` */
|
||||
boolean?: boolean | undefined;
|
||||
/** value or array of values, limit valid option arguments to a predefined set, see `choices()` */
|
||||
choices?: Choices | undefined;
|
||||
/** function, coerce or transform parsed command line values into another value, see `coerce()` */
|
||||
coerce?: ((arg: any) => any) | undefined;
|
||||
/** boolean, interpret option as a path to a JSON config file, see `config()` */
|
||||
config?: boolean | undefined;
|
||||
/** function, provide a custom config parsing function, see `config()` */
|
||||
configParser?: ((configPath: string) => object) | undefined;
|
||||
/** string or object, require certain keys not to be set, see `conflicts()` */
|
||||
conflicts?: string | ReadonlyArray<string> | { [key: string]: string | ReadonlyArray<string> } | undefined;
|
||||
/** boolean, interpret option as a count of boolean flags, see `count()` */
|
||||
count?: boolean | undefined;
|
||||
/** value, set a default value for the option, see `default()` */
|
||||
default?: any;
|
||||
/** string, use this description for the default value in help content, see `default()` */
|
||||
defaultDescription?: string | undefined;
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use 'demandOption' instead
|
||||
*/
|
||||
demand?: boolean | string | undefined;
|
||||
/** boolean or string, mark the argument as deprecated, see `deprecateOption()` */
|
||||
deprecate?: boolean | string | undefined;
|
||||
/** boolean or string, mark the argument as deprecated, see `deprecateOption()` */
|
||||
deprecated?: boolean | string | undefined;
|
||||
/** boolean or string, demand the option be given, with optional error message, see `demandOption()` */
|
||||
demandOption?: boolean | string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
desc?: string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
describe?: string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
description?: string | undefined;
|
||||
/** boolean, indicate that this key should not be reset when a command is invoked, see `global()` */
|
||||
global?: boolean | undefined;
|
||||
/** string, when displaying usage instructions place the option under an alternative group heading, see `group()` */
|
||||
group?: string | undefined;
|
||||
/** don't display option in help output. */
|
||||
hidden?: boolean | undefined;
|
||||
/** string or object, require certain keys to be set, see `implies()` */
|
||||
implies?: string | ReadonlyArray<string> | { [key: string]: string | ReadonlyArray<string> } | undefined;
|
||||
/** number, specify how many arguments should be consumed for the option, see `nargs()` */
|
||||
nargs?: number | undefined;
|
||||
/** boolean, apply path.normalize() to the option, see `normalize()` */
|
||||
normalize?: boolean | undefined;
|
||||
/** boolean, interpret option as a number, `number()` */
|
||||
number?: boolean | undefined;
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use 'demandOption' instead
|
||||
*/
|
||||
require?: boolean | string | undefined;
|
||||
/**
|
||||
* @deprecated since version 6.6.0
|
||||
* Use 'demandOption' instead
|
||||
*/
|
||||
required?: boolean | string | undefined;
|
||||
/** boolean, require the option be specified with a value, see `requiresArg()` */
|
||||
requiresArg?: boolean | undefined;
|
||||
/** boolean, skips validation if the option is present, see `skipValidation()` */
|
||||
skipValidation?: boolean | undefined;
|
||||
/** boolean, interpret option as a string, see `string()` */
|
||||
string?: boolean | undefined;
|
||||
type?: "array" | "count" | PositionalOptionsType | undefined;
|
||||
}
|
||||
|
||||
interface PositionalOptions {
|
||||
/** string or array of strings, see `alias()` */
|
||||
alias?: string | ReadonlyArray<string> | undefined;
|
||||
/** boolean, interpret option as an array, see `array()` */
|
||||
array?: boolean | undefined;
|
||||
/** value or array of values, limit valid option arguments to a predefined set, see `choices()` */
|
||||
choices?: Choices | undefined;
|
||||
/** function, coerce or transform parsed command line values into another value, see `coerce()` */
|
||||
coerce?: ((arg: any) => any) | undefined;
|
||||
/** string or object, require certain keys not to be set, see `conflicts()` */
|
||||
conflicts?: string | ReadonlyArray<string> | { [key: string]: string | ReadonlyArray<string> } | undefined;
|
||||
/** value, set a default value for the option, see `default()` */
|
||||
default?: any;
|
||||
/** boolean or string, demand the option be given, with optional error message, see `demandOption()` */
|
||||
demandOption?: boolean | string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
desc?: string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
describe?: string | undefined;
|
||||
/** string, the option description for help content, see `describe()` */
|
||||
description?: string | undefined;
|
||||
/** string or object, require certain keys to be set, see `implies()` */
|
||||
implies?: string | ReadonlyArray<string> | { [key: string]: string | ReadonlyArray<string> } | undefined;
|
||||
/** boolean, apply path.normalize() to the option, see normalize() */
|
||||
normalize?: boolean | undefined;
|
||||
type?: PositionalOptionsType | undefined;
|
||||
}
|
||||
|
||||
/** Remove keys K in T */
|
||||
type Omit<T, K> = { [key in Exclude<keyof T, K>]: T[key] };
|
||||
|
||||
/** Remove undefined as a possible value for keys K in T */
|
||||
type Defined<T, K extends keyof T> = Omit<T, K> & { [key in K]: Exclude<T[key], undefined> };
|
||||
|
||||
/** Convert T to T[] and T | undefined to T[] | undefined */
|
||||
type ToArray<T> = Array<Exclude<T, undefined>> | Extract<T, undefined>;
|
||||
|
||||
/** Gives string[] if T is an array type, otherwise string. Preserves | undefined. */
|
||||
type ToString<T> = (Exclude<T, undefined> extends any[] ? string[] : string) | Extract<T, undefined>;
|
||||
|
||||
/** Gives number[] if T is an array type, otherwise number. Preserves | undefined. */
|
||||
type ToNumber<T> = (Exclude<T, undefined> extends any[] ? number[] : number) | Extract<T, undefined>;
|
||||
|
||||
type InferredOptionType<O extends Options | PositionalOptions> =
|
||||
O extends { default: any, coerce: (arg: any) => infer T } ? T :
|
||||
O extends { default: infer D } ? D :
|
||||
O extends { type: "count" } ? number :
|
||||
O extends { count: true } ? number :
|
||||
O extends { required: string | true } ? RequiredOptionType<O> :
|
||||
O extends { require: string | true } ? RequiredOptionType<O> :
|
||||
O extends { demand: string | true } ? RequiredOptionType<O> :
|
||||
O extends { demandOption: string | true } ? RequiredOptionType<O> :
|
||||
RequiredOptionType<O> | undefined;
|
||||
|
||||
type RequiredOptionType<O extends Options | PositionalOptions> =
|
||||
O extends { type: "array", string: true } ? string[] :
|
||||
O extends { type: "array", number: true } ? number[] :
|
||||
O extends { type: "array", normalize: true } ? string[] :
|
||||
O extends { type: "string", array: true } ? string[] :
|
||||
O extends { type: "number", array: true } ? number[] :
|
||||
O extends { string: true, array: true } ? string[] :
|
||||
O extends { number: true, array: true } ? number[] :
|
||||
O extends { normalize: true, array: true } ? string[] :
|
||||
O extends { type: "array" } ? Array<string | number> :
|
||||
O extends { type: "boolean" } ? boolean :
|
||||
O extends { type: "number" } ? number :
|
||||
O extends { type: "string" } ? string :
|
||||
O extends { array: true } ? Array<string | number> :
|
||||
O extends { boolean: true } ? boolean :
|
||||
O extends { number: true } ? number :
|
||||
O extends { string: true } ? string :
|
||||
O extends { normalize: true } ? string :
|
||||
O extends { choices: ReadonlyArray<infer C> } ? C :
|
||||
O extends { coerce: (arg: any) => infer T } ? T :
|
||||
unknown;
|
||||
|
||||
type InferredOptionTypes<O extends { [key: string]: Options }> = { [key in keyof O]: InferredOptionType<O[key]> };
|
||||
|
||||
interface CommandModule<T = {}, U = {}> {
|
||||
/** array of strings (or a single string) representing aliases of `exports.command`, positional args defined in an alias are ignored */
|
||||
aliases?: ReadonlyArray<string> | string | undefined;
|
||||
/** object declaring the options the command accepts, or a function accepting and returning a yargs instance */
|
||||
builder?: CommandBuilder<T, U> | undefined;
|
||||
/** string (or array of strings) that executes this command when given on the command line, first string may contain positional args */
|
||||
command?: ReadonlyArray<string> | string | undefined;
|
||||
/** boolean (or string) to show deprecation notice */
|
||||
deprecated?: boolean | string | undefined;
|
||||
/** string used as the description for the command in help text, use `false` for a hidden command */
|
||||
describe?: string | false | undefined;
|
||||
/** a function which will be passed the parsed argv. */
|
||||
handler: (args: Arguments<U>) => void;
|
||||
}
|
||||
|
||||
type ParseCallback<T = {}> = (err: Error | undefined, argv: Arguments<T>, output: string) => void;
|
||||
type CommandBuilder<T = {}, U = {}> = { [key: string]: Options } | ((args: Argv<T>) => Argv<U>) | ((args: Argv<T>) => PromiseLike<Argv<U>>);
|
||||
type SyncCompletionFunction = (current: string, argv: any) => string[];
|
||||
type AsyncCompletionFunction = (current: string, argv: any, done: (completion: ReadonlyArray<string>) => void) => void;
|
||||
type PromiseCompletionFunction = (current: string, argv: any) => Promise<string[]>;
|
||||
type MiddlewareFunction<T = {}> = (args: Arguments<T>) => void;
|
||||
type Choices = ReadonlyArray<string | number | true | undefined>;
|
||||
type PositionalOptionsType = "boolean" | "number" | "string";
|
||||
}
|
||||
|
||||
declare var yargs: yargs.Argv;
|
||||
export = yargs;
|
62
web/node_modules/expect/node_modules/@types/yargs/package.json
generated
vendored
Executable file
62
web/node_modules/expect/node_modules/@types/yargs/package.json
generated
vendored
Executable file
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"name": "@types/yargs",
|
||||
"version": "15.0.14",
|
||||
"description": "TypeScript definitions for yargs",
|
||||
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs",
|
||||
"license": "MIT",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Martin Poelstra",
|
||||
"url": "https://github.com/poelstra",
|
||||
"githubUsername": "poelstra"
|
||||
},
|
||||
{
|
||||
"name": "Mizunashi Mana",
|
||||
"url": "https://github.com/mizunashi-mana",
|
||||
"githubUsername": "mizunashi-mana"
|
||||
},
|
||||
{
|
||||
"name": "Jeffery Grajkowski",
|
||||
"url": "https://github.com/pushplay",
|
||||
"githubUsername": "pushplay"
|
||||
},
|
||||
{
|
||||
"name": "Jimi (Dimitris) Charalampidis",
|
||||
"url": "https://github.com/JimiC",
|
||||
"githubUsername": "JimiC"
|
||||
},
|
||||
{
|
||||
"name": "Steffen Viken Valvåg",
|
||||
"url": "https://github.com/steffenvv",
|
||||
"githubUsername": "steffenvv"
|
||||
},
|
||||
{
|
||||
"name": "Emily Marigold Klassen",
|
||||
"url": "https://github.com/forivall",
|
||||
"githubUsername": "forivall"
|
||||
},
|
||||
{
|
||||
"name": "ExE Boss",
|
||||
"url": "https://github.com/ExE-Boss",
|
||||
"githubUsername": "ExE-Boss"
|
||||
},
|
||||
{
|
||||
"name": "Aankhen",
|
||||
"url": "https://github.com/Aankhen",
|
||||
"githubUsername": "Aankhen"
|
||||
}
|
||||
],
|
||||
"main": "",
|
||||
"types": "index.d.ts",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||
"directory": "types/yargs"
|
||||
},
|
||||
"scripts": {},
|
||||
"dependencies": {
|
||||
"@types/yargs-parser": "*"
|
||||
},
|
||||
"typesPublisherContentHash": "08f18db584d12815700691202627482987b3f369093c020e1539deee222b2a09",
|
||||
"typeScriptVersion": "3.6"
|
||||
}
|
9
web/node_modules/expect/node_modules/@types/yargs/yargs.d.ts
generated
vendored
Executable file
9
web/node_modules/expect/node_modules/@types/yargs/yargs.d.ts
generated
vendored
Executable file
|
@ -0,0 +1,9 @@
|
|||
import { Argv } from '.';
|
||||
|
||||
export = Yargs;
|
||||
|
||||
declare function Yargs(
|
||||
processArgs?: ReadonlyArray<string>,
|
||||
cwd?: string,
|
||||
parentRequire?: NodeRequire,
|
||||
): Argv;
|
33
web/node_modules/expect/package.json
generated
vendored
Normal file
33
web/node_modules/expect/package.json
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"name": "expect",
|
||||
"version": "26.6.2",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/facebook/jest.git",
|
||||
"directory": "packages/expect"
|
||||
},
|
||||
"license": "MIT",
|
||||
"main": "build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
"dependencies": {
|
||||
"@jest/types": "^26.6.2",
|
||||
"ansi-styles": "^4.0.0",
|
||||
"jest-get-type": "^26.3.0",
|
||||
"jest-matcher-utils": "^26.6.2",
|
||||
"jest-message-util": "^26.6.2",
|
||||
"jest-regex-util": "^26.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@jest/test-utils": "^26.6.2",
|
||||
"chalk": "^4.0.0",
|
||||
"fast-check": "^2.0.0",
|
||||
"immutable": "^4.0.0-rc.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.14.2"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"gitHead": "4c46930615602cbf983fb7e8e82884c282a624d5"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue