jest-validate
Advanced tools
Comparing version 29.7.0 to 30.0.0-alpha.1
@@ -1,7 +0,517 @@ | ||
'use strict'; | ||
/*! | ||
* /** | ||
* * Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* * | ||
* * This source code is licensed under the MIT license found in the | ||
* * LICENSE file in the root directory of this source tree. | ||
* * / | ||
*/ | ||
/******/ (() => { // webpackBootstrap | ||
/******/ "use strict"; | ||
/******/ var __webpack_modules__ = ({ | ||
Object.defineProperty(exports, '__esModule', { | ||
/***/ "./src/condition.ts": | ||
/***/ ((__unused_webpack_module, exports) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.getValues = getValues; | ||
exports.multipleValidOptions = multipleValidOptions; | ||
exports.validationCondition = validationCondition; | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const toString = Object.prototype.toString; | ||
const MULTIPLE_VALID_OPTIONS_SYMBOL = Symbol('JEST_MULTIPLE_VALID_OPTIONS'); | ||
function validationConditionSingle(option, validOption) { | ||
return option === null || option === undefined || typeof option === 'function' && typeof validOption === 'function' || toString.call(option) === toString.call(validOption); | ||
} | ||
function getValues(validOption) { | ||
if (Array.isArray(validOption) && | ||
// @ts-expect-error: no index signature | ||
validOption[MULTIPLE_VALID_OPTIONS_SYMBOL]) { | ||
return validOption; | ||
} | ||
return [validOption]; | ||
} | ||
function validationCondition(option, validOption) { | ||
return getValues(validOption).some(e => validationConditionSingle(option, e)); | ||
} | ||
function multipleValidOptions(...args) { | ||
const options = [...args]; | ||
// @ts-expect-error: no index signature | ||
options[MULTIPLE_VALID_OPTIONS_SYMBOL] = true; | ||
return options; | ||
} | ||
/***/ }), | ||
/***/ "./src/defaultConfig.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports["default"] = void 0; | ||
var _condition = __webpack_require__("./src/condition.ts"); | ||
var _deprecated = __webpack_require__("./src/deprecated.ts"); | ||
var _errors = __webpack_require__("./src/errors.ts"); | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
var _warnings = __webpack_require__("./src/warnings.ts"); | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const validationOptions = { | ||
comment: '', | ||
condition: _condition.validationCondition, | ||
deprecate: _deprecated.deprecationWarning, | ||
deprecatedConfig: {}, | ||
error: _errors.errorMessage, | ||
exampleConfig: {}, | ||
recursive: true, | ||
// Allow NPM-sanctioned comments in package.json. Use a "//" key. | ||
recursiveDenylist: ['//'], | ||
title: { | ||
deprecation: _utils.DEPRECATION, | ||
error: _utils.ERROR, | ||
warning: _utils.WARNING | ||
}, | ||
unknown: _warnings.unknownOptionWarning | ||
}; | ||
var _default = exports["default"] = validationOptions; | ||
/***/ }), | ||
/***/ "./src/deprecated.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.deprecationWarning = void 0; | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const deprecationMessage = (message, options) => { | ||
const comment = options.comment; | ||
const name = options.title && options.title.deprecation || _utils.DEPRECATION; | ||
(0, _utils.logValidationWarning)(name, message, comment); | ||
}; | ||
const deprecationWarning = (config, option, deprecatedOptions, options) => { | ||
if (option in deprecatedOptions) { | ||
deprecationMessage(deprecatedOptions[option](config), options); | ||
return true; | ||
} | ||
return false; | ||
}; | ||
exports.deprecationWarning = deprecationWarning; | ||
/***/ }), | ||
/***/ "./src/errors.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.errorMessage = void 0; | ||
function _chalk() { | ||
const data = _interopRequireDefault(require("chalk")); | ||
_chalk = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _jestGetType() { | ||
const data = require("jest-get-type"); | ||
_jestGetType = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
var _condition = __webpack_require__("./src/condition.ts"); | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const errorMessage = (option, received, defaultValue, options, path) => { | ||
const conditions = (0, _condition.getValues)(defaultValue); | ||
const validTypes = Array.from(new Set(conditions.map(_jestGetType().getType))); | ||
const message = ` Option ${_chalk().default.bold(`"${path && path.length > 0 ? `${path.join('.')}.` : ''}${option}"`)} must be of type: | ||
${validTypes.map(e => _chalk().default.bold.green(e)).join(' or ')} | ||
but instead received: | ||
${_chalk().default.bold.red((0, _jestGetType().getType)(received))} | ||
Example: | ||
${formatExamples(option, conditions)}`; | ||
const comment = options.comment; | ||
const name = options.title && options.title.error || _utils.ERROR; | ||
throw new _utils.ValidationError(name, message, comment); | ||
}; | ||
exports.errorMessage = errorMessage; | ||
function formatExamples(option, examples) { | ||
return examples.map(e => ` { | ||
${_chalk().default.bold(`"${option}"`)}: ${_chalk().default.bold((0, _utils.formatPrettyObject)(e))} | ||
}`).join(` | ||
or | ||
`); | ||
} | ||
/***/ }), | ||
/***/ "./src/utils.ts": | ||
/***/ ((__unused_webpack_module, exports) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.logValidationWarning = exports.formatPrettyObject = exports.format = exports.createDidYouMeanMessage = exports.WARNING = exports.ValidationError = exports.ERROR = exports.DEPRECATION = void 0; | ||
function _chalk() { | ||
const data = _interopRequireDefault(require("chalk")); | ||
_chalk = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _leven() { | ||
const data = _interopRequireDefault(require("leven")); | ||
_leven = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _prettyFormat() { | ||
const data = require("pretty-format"); | ||
_prettyFormat = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const BULLET = _chalk().default.bold('\u25cf'); | ||
const DEPRECATION = exports.DEPRECATION = `${BULLET} Deprecation Warning`; | ||
const ERROR = exports.ERROR = `${BULLET} Validation Error`; | ||
const WARNING = exports.WARNING = `${BULLET} Validation Warning`; | ||
const format = value => typeof value === 'function' ? value.toString() : (0, _prettyFormat().format)(value, { | ||
min: true | ||
}); | ||
Object.defineProperty(exports, 'ValidationError', { | ||
exports.format = format; | ||
const formatPrettyObject = value => typeof value === 'function' ? value.toString() : typeof value === 'undefined' ? 'undefined' : JSON.stringify(value, null, 2).split('\n').join('\n '); | ||
exports.formatPrettyObject = formatPrettyObject; | ||
class ValidationError extends Error { | ||
name; | ||
message; | ||
constructor(name, message, comment) { | ||
super(); | ||
comment = comment ? `\n\n${comment}` : '\n'; | ||
this.name = ''; | ||
this.message = _chalk().default.red(`${_chalk().default.bold(name)}:\n\n${message}${comment}`); | ||
// eslint-disable-next-line @typescript-eslint/no-empty-function | ||
Error.captureStackTrace(this, () => {}); | ||
} | ||
} | ||
exports.ValidationError = ValidationError; | ||
const logValidationWarning = (name, message, comment) => { | ||
comment = comment ? `\n\n${comment}` : '\n'; | ||
console.warn(_chalk().default.yellow(`${_chalk().default.bold(name)}:\n\n${message}${comment}`)); | ||
}; | ||
exports.logValidationWarning = logValidationWarning; | ||
const createDidYouMeanMessage = (unrecognized, allowedOptions) => { | ||
const suggestion = allowedOptions.find(option => { | ||
const steps = (0, _leven().default)(option, unrecognized); | ||
return steps < 3; | ||
}); | ||
return suggestion ? `Did you mean ${_chalk().default.bold(format(suggestion))}?` : ''; | ||
}; | ||
exports.createDidYouMeanMessage = createDidYouMeanMessage; | ||
/***/ }), | ||
/***/ "./src/validate.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports["default"] = void 0; | ||
var _defaultConfig = _interopRequireDefault(__webpack_require__("./src/defaultConfig.ts")); | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
let hasDeprecationWarnings = false; | ||
const shouldSkipValidationForPath = (path, key, denylist) => denylist ? denylist.includes([...path, key].join('.')) : false; | ||
const _validate = (config, exampleConfig, options, path = []) => { | ||
if (typeof config !== 'object' || config == null || typeof exampleConfig !== 'object' || exampleConfig == null) { | ||
return { | ||
hasDeprecationWarnings | ||
}; | ||
} | ||
for (const key in config) { | ||
if (options.deprecatedConfig && key in options.deprecatedConfig && typeof options.deprecate === 'function') { | ||
const isDeprecatedKey = options.deprecate(config, key, options.deprecatedConfig, options); | ||
hasDeprecationWarnings = hasDeprecationWarnings || isDeprecatedKey; | ||
} else if (allowsMultipleTypes(key)) { | ||
const value = config[key]; | ||
if (typeof options.condition === 'function' && typeof options.error === 'function') { | ||
if (key === 'maxWorkers' && !isOfTypeStringOrNumber(value)) { | ||
throw new _utils.ValidationError('Validation Error', `${key} has to be of type string or number`, 'maxWorkers=50% or\nmaxWorkers=3'); | ||
} | ||
} | ||
} else if (Object.hasOwnProperty.call(exampleConfig, key)) { | ||
if (typeof options.condition === 'function' && typeof options.error === 'function' && !options.condition(config[key], exampleConfig[key])) { | ||
options.error(key, config[key], exampleConfig[key], options, path); | ||
} | ||
} else if (shouldSkipValidationForPath(path, key, options.recursiveDenylist)) { | ||
// skip validating unknown options inside blacklisted paths | ||
} else { | ||
options.unknown && options.unknown(config, exampleConfig, key, options, path); | ||
} | ||
if (options.recursive && !Array.isArray(exampleConfig[key]) && options.recursiveDenylist && !shouldSkipValidationForPath(path, key, options.recursiveDenylist)) { | ||
_validate(config[key], exampleConfig[key], options, [...path, key]); | ||
} | ||
} | ||
return { | ||
hasDeprecationWarnings | ||
}; | ||
}; | ||
const allowsMultipleTypes = key => key === 'maxWorkers'; | ||
const isOfTypeStringOrNumber = value => typeof value === 'number' || typeof value === 'string'; | ||
const validate = (config, options) => { | ||
hasDeprecationWarnings = false; | ||
// Preserve default denylist entries even with user-supplied denylist | ||
const combinedDenylist = [...(_defaultConfig.default.recursiveDenylist || []), ...(options.recursiveDenylist || [])]; | ||
const defaultedOptions = Object.assign({ | ||
..._defaultConfig.default, | ||
...options, | ||
recursiveDenylist: combinedDenylist, | ||
title: options.title || _defaultConfig.default.title | ||
}); | ||
const { | ||
hasDeprecationWarnings: hdw | ||
} = _validate(config, options.exampleConfig, defaultedOptions); | ||
return { | ||
hasDeprecationWarnings: hdw, | ||
isValid: true | ||
}; | ||
}; | ||
var _default = exports["default"] = validate; | ||
/***/ }), | ||
/***/ "./src/validateCLIOptions.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.DOCUMENTATION_NOTE = void 0; | ||
exports["default"] = validateCLIOptions; | ||
function _camelcase() { | ||
const data = _interopRequireDefault(require("camelcase")); | ||
_camelcase = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _chalk() { | ||
const data = _interopRequireDefault(require("chalk")); | ||
_chalk = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const BULLET = _chalk().default.bold('\u25cf'); | ||
const DOCUMENTATION_NOTE = exports.DOCUMENTATION_NOTE = ` ${_chalk().default.bold('CLI Options Documentation:')} | ||
https://jestjs.io/docs/cli | ||
`; | ||
const createCLIValidationError = (unrecognizedOptions, allowedOptions) => { | ||
let title = `${BULLET} Unrecognized CLI Parameter`; | ||
let message; | ||
const comment = ` ${_chalk().default.bold('CLI Options Documentation')}:\n` + ' https://jestjs.io/docs/cli\n'; | ||
if (unrecognizedOptions.length === 1) { | ||
const unrecognized = unrecognizedOptions[0]; | ||
const didYouMeanMessage = unrecognized.length > 1 ? (0, _utils.createDidYouMeanMessage)(unrecognized, Array.from(allowedOptions)) : ''; | ||
message = ` Unrecognized option ${_chalk().default.bold((0, _utils.format)(unrecognized))}.${didYouMeanMessage ? ` ${didYouMeanMessage}` : ''}`; | ||
} else { | ||
title += 's'; | ||
message = ' Following options were not recognized:\n' + ` ${_chalk().default.bold((0, _utils.format)(unrecognizedOptions))}`; | ||
} | ||
return new _utils.ValidationError(title, message, comment); | ||
}; | ||
const validateDeprecatedOptions = (deprecatedOptions, deprecationEntries, argv) => { | ||
for (const opt of deprecatedOptions) { | ||
const name = opt.name; | ||
const message = deprecationEntries[name](argv); | ||
const comment = DOCUMENTATION_NOTE; | ||
if (opt.fatal) { | ||
throw new _utils.ValidationError(name, message, comment); | ||
} else { | ||
(0, _utils.logValidationWarning)(name, message, comment); | ||
} | ||
} | ||
}; | ||
function validateCLIOptions(argv, options = {}, rawArgv = []) { | ||
const yargsSpecialOptions = ['$0', '_', 'help', 'h']; | ||
const allowedOptions = Object.keys(options).reduce((acc, option) => acc.add(option).add(options[option].alias || option), new Set(yargsSpecialOptions)); | ||
const deprecationEntries = options.deprecationEntries ?? {}; | ||
const CLIDeprecations = Object.keys(deprecationEntries).reduce((acc, entry) => { | ||
acc[entry] = deprecationEntries[entry]; | ||
if (options[entry]) { | ||
const alias = options[entry].alias; | ||
if (alias) { | ||
acc[alias] = deprecationEntries[entry]; | ||
} | ||
} | ||
return acc; | ||
}, {}); | ||
const deprecations = new Set(Object.keys(CLIDeprecations)); | ||
const deprecatedOptions = Object.keys(argv).filter(arg => deprecations.has(arg) && argv[arg] != null).map(arg => ({ | ||
fatal: !allowedOptions.has(arg), | ||
name: arg | ||
})); | ||
if (deprecatedOptions.length > 0) { | ||
validateDeprecatedOptions(deprecatedOptions, CLIDeprecations, argv); | ||
} | ||
const unrecognizedOptions = Object.keys(argv).filter(arg => !allowedOptions.has((0, _camelcase().default)(arg, { | ||
locale: 'en-US' | ||
})) && !allowedOptions.has(arg) && (rawArgv.length === 0 || rawArgv.includes(arg)), []); | ||
if (unrecognizedOptions.length > 0) { | ||
throw createCLIValidationError(unrecognizedOptions, allowedOptions); | ||
} | ||
return true; | ||
} | ||
/***/ }), | ||
/***/ "./src/warnings.ts": | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.unknownOptionWarning = void 0; | ||
function _chalk() { | ||
const data = _interopRequireDefault(require("chalk")); | ||
_chalk = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const unknownOptionWarning = (config, exampleConfig, option, options, path) => { | ||
const didYouMean = (0, _utils.createDidYouMeanMessage)(option, Object.keys(exampleConfig)); | ||
const message = ` Unknown option ${_chalk().default.bold(`"${path && path.length > 0 ? `${path.join('.')}.` : ''}${option}"`)} with value ${_chalk().default.bold((0, _utils.format)(config[option]))} was found.${didYouMean && ` ${didYouMean}`}\n This is probably a typing mistake. Fixing it will remove this message.`; | ||
const comment = options.comment; | ||
const name = options.title && options.title.warning || _utils.WARNING; | ||
(0, _utils.logValidationWarning)(name, message, comment); | ||
}; | ||
exports.unknownOptionWarning = unknownOptionWarning; | ||
/***/ }) | ||
/******/ }); | ||
/************************************************************************/ | ||
/******/ // The module cache | ||
/******/ var __webpack_module_cache__ = {}; | ||
/******/ | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ // Check if module is in cache | ||
/******/ var cachedModule = __webpack_module_cache__[moduleId]; | ||
/******/ if (cachedModule !== undefined) { | ||
/******/ return cachedModule.exports; | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = __webpack_module_cache__[moduleId] = { | ||
/******/ // no module.id needed | ||
/******/ // no module.loaded needed | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ | ||
/************************************************************************/ | ||
var __webpack_exports__ = {}; | ||
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. | ||
(() => { | ||
var exports = __webpack_exports__; | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
Object.defineProperty(exports, "ValidationError", ({ | ||
enumerable: true, | ||
@@ -11,4 +521,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'createDidYouMeanMessage', { | ||
})); | ||
Object.defineProperty(exports, "createDidYouMeanMessage", ({ | ||
enumerable: true, | ||
@@ -18,4 +528,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'format', { | ||
})); | ||
Object.defineProperty(exports, "format", ({ | ||
enumerable: true, | ||
@@ -25,4 +535,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'logValidationWarning', { | ||
})); | ||
Object.defineProperty(exports, "logValidationWarning", ({ | ||
enumerable: true, | ||
@@ -32,4 +542,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'multipleValidOptions', { | ||
})); | ||
Object.defineProperty(exports, "multipleValidOptions", ({ | ||
enumerable: true, | ||
@@ -39,4 +549,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'validate', { | ||
})); | ||
Object.defineProperty(exports, "validate", ({ | ||
enumerable: true, | ||
@@ -46,4 +556,4 @@ get: function () { | ||
} | ||
}); | ||
Object.defineProperty(exports, 'validateCLIOptions', { | ||
})); | ||
Object.defineProperty(exports, "validateCLIOptions", ({ | ||
enumerable: true, | ||
@@ -53,11 +563,12 @@ get: function () { | ||
} | ||
}); | ||
var _utils = require('./utils'); | ||
var _validate = _interopRequireDefault(require('./validate')); | ||
var _validateCLIOptions = _interopRequireDefault( | ||
require('./validateCLIOptions') | ||
); | ||
var _condition = require('./condition'); | ||
function _interopRequireDefault(obj) { | ||
return obj && obj.__esModule ? obj : {default: obj}; | ||
} | ||
})); | ||
var _utils = __webpack_require__("./src/utils.ts"); | ||
var _validate = _interopRequireDefault(__webpack_require__("./src/validate.ts")); | ||
var _validateCLIOptions = _interopRequireDefault(__webpack_require__("./src/validateCLIOptions.ts")); | ||
var _condition = __webpack_require__("./src/condition.ts"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
})(); | ||
module.exports = __webpack_exports__; | ||
/******/ })() | ||
; |
{ | ||
"name": "jest-validate", | ||
"version": "29.7.0", | ||
"version": "30.0.0-alpha.1", | ||
"repository": { | ||
@@ -15,2 +15,4 @@ "type": "git", | ||
"types": "./build/index.d.ts", | ||
"require": "./build/index.js", | ||
"import": "./build/index.mjs", | ||
"default": "./build/index.js" | ||
@@ -21,8 +23,8 @@ }, | ||
"dependencies": { | ||
"@jest/types": "^29.6.3", | ||
"@jest/types": "30.0.0-alpha.1", | ||
"camelcase": "^6.2.0", | ||
"chalk": "^4.0.0", | ||
"jest-get-type": "^29.6.3", | ||
"jest-get-type": "30.0.0-alpha.1", | ||
"leven": "^3.1.0", | ||
"pretty-format": "^29.7.0" | ||
"pretty-format": "30.0.0-alpha.1" | ||
}, | ||
@@ -33,3 +35,3 @@ "devDependencies": { | ||
"engines": { | ||
"node": "^14.15.0 || ^16.10.0 || >=18.0.0" | ||
"node": "^16.10.0 || ^18.12.0 || >=20.0.0" | ||
}, | ||
@@ -39,3 +41,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" | ||
"gitHead": "d005cb2505c041583e0c5636d006e08666a54b63" | ||
} |
@@ -206,3 +206,3 @@ # jest-validate | ||
If `argv` contains a deprecated option that is not specifid in `allowedOptions`, `validateCLIOptions` will throw an error with the message specified in the `deprecatedOptions` config: | ||
If `argv` contains a deprecated option that is not specified in `allowedOptions`, `validateCLIOptions` will throw an error with the message specified in the `deprecatedOptions` config: | ||
@@ -217,2 +217,2 @@ ```bash | ||
If the deprecation option is still listed in the `allowedOptions` config, then `validateCLIOptions` will print the warning wihout throwing an error. | ||
If the deprecation option is still listed in the `allowedOptions` config, then `validateCLIOptions` will print the warning without throwing an error. |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
30283
6
596
2
1
+ Added@jest/schemas@30.0.0-alpha.1(transitive)
+ Added@jest/types@30.0.0-alpha.1(transitive)
+ Added@sinclair/typebox@0.31.28(transitive)
+ Addedjest-get-type@30.0.0-alpha.1(transitive)
+ Addedpretty-format@30.0.0-alpha.1(transitive)
- Removed@jest/schemas@29.6.3(transitive)
- Removed@jest/types@29.6.3(transitive)
- Removed@sinclair/typebox@0.27.8(transitive)
- Removedjest-get-type@29.6.3(transitive)
- Removedpretty-format@29.7.0(transitive)
Updated@jest/types@30.0.0-alpha.1
Updatedjest-get-type@30.0.0-alpha.1
Updatedpretty-format@30.0.0-alpha.1