From 9d866ee8edfdf86390eed29e0d1df3502e0d0fb8 Mon Sep 17 00:00:00 2001 From: rachel-yos Date: Tue, 6 Aug 2024 13:07:06 +0300 Subject: [PATCH 1/2] add tests almost finished --- tests/ecs-6-class/line.test.js | 93 ++++++++++++++++++++++++++++++ tests/ecs-6-class/point.test.js | 46 +++++++++++++++ tests/geometry-calculation.test.js | 72 +++++++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 tests/ecs-6-class/line.test.js create mode 100644 tests/ecs-6-class/point.test.js create mode 100644 tests/geometry-calculation.test.js diff --git a/tests/ecs-6-class/line.test.js b/tests/ecs-6-class/line.test.js new file mode 100644 index 0000000..07485ef --- /dev/null +++ b/tests/ecs-6-class/line.test.js @@ -0,0 +1,93 @@ +const Line = require('../../modules/ecs6-class/line') +const Point = require('../../modules/ecs6-class/point') +let ln = new Line({}) + +describe('check the functions in class Line', () => { + it('"calculateSlope" should calculate and update the value of this.slope', () => { + ln.calculateSlope() + expect(ln.slope).toBeDefined() + ln.point1.x = 5 + ln.point1.y = 3 + ln.point2.x = 2 + ln.point2.y = 4 + ln.calculateSlope() + expect(ln.slope).toBe((3 - 4) / (5 - 2)) + }) + describe('"calculateNOfLineFunction" should calculate and update this.n by noLineFunction', () => { + + it('should update the value of this.n evevn if it is missing this.slope', () => { + ln = new Line({ point1: new Point(2, 3), point2: new Point(4, 5) }) + ln.calculateNOfLineFunction() + expect(ln.n).toBeDefined() + }) + it('should calculate the correct value and update this.n', () => { + ln = new Line({ point1: new Point(2, 3), point2: new Point(4, 5), slope: 2 }) + ln.calculateNOfLineFunction() + let result = ln.point1.y - ln.slope * ln.point1.x + expect(ln.n).toBe(result) + }) + }) + describe('check getPointOnXAsis function', () => { + it(' should return new point with no x sent, mean the point is on the Y axis ', () => { + expect(ln.getPointOnXAsis()).toBeDefined() + }) + }) + + describe('check getPointOnYAsis function', () => { + it(' should return new point with no y sent, mean the point is on the X axis ', () => { + + }) + }) + + describe('check "getPointByX" function ', () => { + it('should return a new point after caculating by x argument', () => { + ln = new Line({ point1: new Point({ x: 2, y: 3 }), point2: new Point({ x: 4, y: 5 }) }) + let x = 3 + let result = ln.getPointByX(x) + expect(result).toBeDefined() + expect(result instanceof Point).toBe(true) + expect(result).toEqual({ x, y: ln.slope * x + ln.n }) + }) + it('should return even if there are no slope or no n', () => { + ln = new Line({ point1: new Point({ x: 2, y: 3 }), point2: new Point({ x: 4, y: 5 }), slope: 4 }) + expect(ln.getPointByX(1)).toBeDefined() + ln = new Line({ point1: new Point({ x: 2, y: 3 }), point2: new Point({ x: 4, y: 5 }), n: 4 }) + expect(ln.getPointByX(1)).toBeDefined() + }) + describe('check errors', () => { + it('should throw error when the argument is not a number includes x=0', () => { + expect(() => ln.getPointByX(true)).toThrow('argument is not a number') + expect(() => ln.getPointByX('value')).toThrow('argument is not a number') + expect(() => ln.getPointByX({ x: 8 })).toThrow('argument is not a number') + expect(() => ln.getPointByX([9])).toThrow('argument is not a number') + expect(() => ln.getPointByX(new Date())).toThrow('argument is not a number') + }) + it('should throw error when no argument was sent', () => { + expect(() => ln.getPointByX()).toThrow('no argument was sent') + }) + }) + }) + describe('check "getPointByY" function', () => { + it('should return a new point after caculating by y argument includes y=0', () => { + let y = 3 + let result = ln.getPointByY(y) + expect(result).toBeDefined() + expect(result instanceof Point).toBe(true) + expect(result).toEqual({ x: (y - ln.n) / (ln.slope), y }) + + }) + + describe('check errors', () => { + it('should throw error when the argument is not a number', () => { + expect(() => ln.getPointByY(true)).toThrow('argument is not a number') + expect(() => ln.getPointByY('value')).toThrow('argument is not a number') + expect(() => ln.getPointByY({ x: 8 })).toThrow('argument is not a number') + expect(() => ln.getPointByY([9])).toThrow('argument is not a number') + expect(() => ln.getPointByY(new Date())).toThrow('argument is not a number') + }) + it('should throw error when no argument was sent', () => { + expect(() => ln.getPointByY()).toThrow('no argument was sent') + }) + }) + }) +}) \ No newline at end of file diff --git a/tests/ecs-6-class/point.test.js b/tests/ecs-6-class/point.test.js new file mode 100644 index 0000000..ce6f48f --- /dev/null +++ b/tests/ecs-6-class/point.test.js @@ -0,0 +1,46 @@ +const Point = require("../../modules/ecs6-class/point") +let p = new Point() + +describe('check functions of Point', () => { + describe('Check "moveVertical"', () => { + it('should update the Y value of the point', () => { + expect(p.y).toBeCloseTo(0) + p.moveVertical(3) + expect(p.y).toBeCloseTo(3) + }) + describe('Check errors', () => { + it('should throw error when the sent value is not a number', () => { + expect(() => p.moveVertical("string")).toThrow('value is NaN') + expect(() => p.moveVertical([2])).toThrow('value is NaN') + expect(() => p.moveVertical({ value: 9 })).toThrow('value is NaN') + expect(() => p.moveVertical(new Date())).toThrow('value is NaN') + expect(() => p.moveVertical(true)).toThrow('value is NaN') + expect(() => p.moveVertical(undefined)).toThrow('value is NaN') + expect(() => p.moveVertical()).toThrow('value is NaN') + expect(() => p.moveVertical(() => { })).toThrow('value is NaN') + }) + }) + }) + + describe('Check "moveHorizontal"', () => { + it('should update the x value of the point', () => { + expect(p.x).toBeCloseTo(0) + p.moveHorizontal(3) + expect(p.x).toBeCloseTo(3) + }) + describe('check errors', () => { + it('should throw error when the sent value is not a number', () => { + expect(() => p.moveHorizontal("string")).toThrow('value is NaN') + expect(() => p.moveHorizontal([2])).toThrow('value is NaN') + expect(() => p.moveHorizontal({ value: 9 })).toThrow('value is NaN') + expect(() => p.moveHorizontal(new Date())).toThrow('value is NaN') + expect(() => p.moveHorizontal(true)).toThrow('value is NaN') + expect(() => p.moveHorizontal(undefined)).toThrow('value is NaN') + expect(() => p.moveHorizontal()).toThrow('value is NaN') + expect(() => p.moveHorizontal(() => { })).toThrow('value is NaN') + }) + }) + }) + +}) + diff --git a/tests/geometry-calculation.test.js b/tests/geometry-calculation.test.js new file mode 100644 index 0000000..f173f61 --- /dev/null +++ b/tests/geometry-calculation.test.js @@ -0,0 +1,72 @@ +const { calculateDistance, calculateJunctionPoint, isPointOnLine } = require('../modules/geometry-calculation') +const Point = require('../modules/ecs6-class/point') +const Line = require('../modules/ecs6-class/line') + + +describe('Check calculateDistance function', () => { + it('sould return the distance between two points', () => { + let p1 = new Point({x:3,y: 5}) + let p2 = new Point({x:4,y: 6}) + expect(calculateDistance(p1, p2)).toBeDefined() + let disx = (p2.x - p1.x) ** 2 + let disy = (p2.y - p1.y) ** 2 + let result = Math.sqrt(disx + disy) + expect(calculateDistance(p1, p2)).toBeCloseTo(result) + }) + + describe('Check errors', () => { + it('should throw error when an argument is not match the required type', () => { + expect(() => calculateDistance("string", new Point({x:3,y: 5}))).toThrow('argument not match the required type') + expect(() => calculateDistance(new Point({x:3,y: 5}), [2])).toThrow('argument not match the required type') + expect(() => calculateDistance({ value: 9 }, new Point({x:3,y: 5}))).toThrow('argument not match the required type') + expect(() => calculateDistance(new Point({x:3,y: 5}), new Date())).toThrow('argument not match the required type') + expect(() => calculateDistance(true, new Point({x:3,y: 5}))).toThrow('argument not match the required type') + expect(() => calculateDistance(() => { }, new Point({x:3,y: 5}))).toThrow('argument not match the required type') + }) + it('should throw error when missing one or more arguments', () => { + expect(() => calculateDistance()).toThrow('missing required arguments') + expect(() => calculateDistance(new Point({x:3,y: 5}))).toThrow('missing required arguments') + }) + }) + +}) + +describe('Check calculateJunctionPoint function', () => { + describe('Check errors', () => { + it('should throw error when an argument is not match the required type', () => { + expect(() => calculateDistance("string", new Line({}))).toThrow('argument not match the required type') + expect(() => calculateDistance(new Line({}), [2])).toThrow('argument not match the required type') + expect(() => calculateDistance({ value: 9 }, new Line({}))).toThrow('argument not match the required type') + expect(() => calculateDistance(new Line({}), new Date())).toThrow('argument not match the required type') + expect(() => calculateDistance(true, new Line({}))).toThrow('argument not match the required type') + expect(() => calculateDistance(() => { }, new Line({}))).toThrow('argument not match the required type') + }) + it('should throw error when missing one or more arguments', () => { + expect(() => calculateDistance()).toThrow('missing required arguments') + expect(() => calculateDistance(new Line({}))).toThrow('missing required arguments') + }) + }) +}) + +describe('Check isPointOnLine function', () => { + it('should return true if the point is on line', () => { + let ln = new Line({ point1: new Point({x:3, y:5}), point2: new Point({x:4, y:6}) }) + let point = new Point({x:4,y: 6}) + expect(isPointOnLine(ln, point)).toBe(true) + }) + describe('Check errors', () => { + it('should throw error when an argument is not match the required type', () => { + expect(() => calculateDistance("string", "string")).toThrow('argument not match the required type') + expect(() => calculateDistance([2], [2])).toThrow('argument not match the required type') + expect(() => calculateDistance({ value: 9 }, { value: 9 })).toThrow('argument not match the required type') + expect(() => calculateDistance(new Date(), new Date())).toThrow('argument not match the required type') + expect(() => calculateDistance(true, true)).toThrow('argument not match the required type') + expect(() => calculateDistance(() => { }, () => { })).toThrow('argument not match the required type') + }) + it('should throw error when missing one or more arguments', () => { + expect(() => calculateDistance()).toThrow('missing required arguments') + expect(() => calculateDistance(new Line({}))).toThrow('missing required arguments') + expect(() => calculateDistance(point = new Point({}))).toThrow('missing required arguments') + }) + }) +}) \ No newline at end of file From 2864ae7b8e81964e3ad9e73d848c251d69493a3b Mon Sep 17 00:00:00 2001 From: rachel-yos Date: Wed, 7 Aug 2024 13:18:07 +0300 Subject: [PATCH 2/2] changes in modules according to tests requirements --- modules/ecs6-class/line.js | 37 +++++ modules/ecs6-class/point.js | 8 +- modules/geometry-calculation.js | 35 +++- package-lock.json | 286 +++++++++++++++++++++++++++++++- package.json | 12 +- 5 files changed, 368 insertions(+), 10 deletions(-) diff --git a/modules/ecs6-class/line.js b/modules/ecs6-class/line.js index 76a7359..f15fa39 100644 --- a/modules/ecs6-class/line.js +++ b/modules/ecs6-class/line.js @@ -10,9 +10,15 @@ class Line { calculateSlope() { this.slope = (this.point1.y - this.point2.y) / (this.point1.x - this.point2.x) + if (!this.slope) { + this.slope = 0 + } } calculateNOfLineFunction() { + if (!this.slope) { + this.calculateSlope() + } this.n = this.point1.y - this.slope * this.point1.x } @@ -22,16 +28,47 @@ class Line { getPointOnYAsis() { return this.getPointByX(0) + TODO//should i make here a mock testing , because of sendindg to another function? } getPointByX(x) { + if (x === undefined) { + throw new Error('no argument was sent') + } + if (typeof (x) !== "number") { + throw new Error('argument is not a number') + } + if (!this.slope) { + this.calculateSlope() + } + if (!this.n) { + this.calculateNOfLineFunction() + } let y = this.slope * x + this.n return new Point({ x, y }) } getPointByY(y) { + if (y === undefined) { + throw new Error('no argument was sent') + } + if (typeof (y) !== "number") { + throw new Error('argument is not a number') + } + if (!this.slope) { + this.calculateSlope() + } + if (!this.n) { + this.calculateNOfLineFunction() + } let x = (y - this.n) / this.slope; + // console.log(x); + // if (!x) { + // return new Point({ x: 0, y }) + // } + //TODO what will i do with y=0? what does have to be in x? + return new Point({ x, y }) } } diff --git a/modules/ecs6-class/point.js b/modules/ecs6-class/point.js index e81b4a4..cf92399 100644 --- a/modules/ecs6-class/point.js +++ b/modules/ecs6-class/point.js @@ -1,12 +1,18 @@ class Point { - constructor({x=0, y=0}={}) { + constructor({ x = 0, y = 0 } = {}) { this.x = x; this.y = y; } moveVertical(value) { + if (typeof (value) !== "number") { + throw new Error("value is NaN") + } this.y += value; } moveHorizontal(value) { + if (typeof (value) !== "number") { + throw new Error("value is NaN") + } this.x += value; } } diff --git a/modules/geometry-calculation.js b/modules/geometry-calculation.js index 6e11643..701fa61 100644 --- a/modules/geometry-calculation.js +++ b/modules/geometry-calculation.js @@ -1,13 +1,30 @@ -const Line = require('./ecs6-class/line') +const Line = require('./ecs6-class/line'); +const Point = require('./ecs6-class/point'); const calculateDistance = (point1, point2) => { + if(!point1 || !point2){ + throw new Error('missing required arguments') + } + + if(!(point1 instanceof Point) || !(point2 instanceof Point)){ + throw new Error ("argument not match the required type") + } + let distanceX = (point2.x - point1.x) ** 2; - let distanceY = (point2.y - point2.y) ** 2; + let distanceY = (point2.y - point1.y) ** 2; const distance = Math.sqrt(distanceX + distanceY); return distance; } const calculateJunctionPoint = (line1, line2) => { + if(!line1 || !line2){ + throw new Error('missing required arguments') + } + + if(!(line1 instanceof Line) || !(line2 instanceof Line)){ + throw new Error ("argument not match the required type") + } + if (line1.slope === line2.slope) { if (line1.n === line2.n) { return true @@ -24,10 +41,24 @@ const calculateJunctionPoint = (line1, line2) => { } const isPointOnLine = (line, point) => { + if(!line || !point){ + throw new Error('missing required arguments') + } + + if(!(line instanceof Line) || !(point instanceof Point)){ + throw new Error ("argument not match the required type") + } + const proxyLine = new Line({ point1: line.point1, point2: point }) proxyLine.calculateSlope() + if(!line.slope){ + line.calculateSlope() + } if (line.slope === proxyLine.slope) { proxyLine.calculateNOfLineFunction() + if(!line.n){ + line.calculateNOfLineFunction() + } if (line.n === proxyLine.n) { return true } diff --git a/package-lock.json b/package-lock.json index 61f4a09..70e00a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,13 @@ "name": "build-tests", "version": "1.0.0", "license": "ISC", - "dependencies": { + "devDependencies": { "jest": "^29.7.0" } }, "node_modules/@ampproject/remapping": { "version": "2.3.0", + "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -25,6 +26,7 @@ }, "node_modules/@babel/code-frame": { "version": "7.24.2", + "dev": true, "license": "MIT", "dependencies": { "@babel/highlight": "^7.24.2", @@ -36,6 +38,7 @@ }, "node_modules/@babel/compat-data": { "version": "7.24.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -43,6 +46,7 @@ }, "node_modules/@babel/core": { "version": "7.24.3", + "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -71,6 +75,7 @@ }, "node_modules/@babel/generator": { "version": "7.24.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.24.0", @@ -84,6 +89,7 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", @@ -98,6 +104,7 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -105,6 +112,7 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", @@ -116,6 +124,7 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" @@ -126,6 +135,7 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.24.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.24.0" @@ -136,6 +146,7 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -153,6 +164,7 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.24.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -160,6 +172,7 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" @@ -170,6 +183,7 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" @@ -180,6 +194,7 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.24.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -187,6 +202,7 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -194,6 +210,7 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -201,6 +218,7 @@ }, "node_modules/@babel/helpers": { "version": "7.24.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.24.0", @@ -213,6 +231,7 @@ }, "node_modules/@babel/highlight": { "version": "7.24.2", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -226,6 +245,7 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -236,6 +256,7 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -248,6 +269,7 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", + "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -255,10 +277,12 @@ }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", + "dev": true, "license": "MIT" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -266,6 +290,7 @@ }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -273,6 +298,7 @@ }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -283,6 +309,7 @@ }, "node_modules/@babel/parser": { "version": "7.24.1", + "dev": true, "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -293,6 +320,7 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -303,6 +331,7 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -313,6 +342,7 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" @@ -323,6 +353,7 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -333,6 +364,7 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -343,6 +375,7 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.24.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" @@ -356,6 +389,7 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -366,6 +400,7 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -376,6 +411,7 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -386,6 +422,7 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -396,6 +433,7 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -406,6 +444,7 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -416,6 +455,7 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -429,6 +469,7 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.24.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" @@ -442,6 +483,7 @@ }, "node_modules/@babel/template": { "version": "7.24.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", @@ -454,6 +496,7 @@ }, "node_modules/@babel/traverse": { "version": "7.24.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.1", @@ -473,6 +516,7 @@ }, "node_modules/@babel/types": { "version": "7.24.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -485,10 +529,12 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", + "dev": true, "license": "MIT" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "dev": true, "license": "ISC", "dependencies": { "camelcase": "^5.3.1", @@ -503,6 +549,7 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -510,6 +557,7 @@ }, "node_modules/@jest/console": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -525,6 +573,7 @@ }, "node_modules/@jest/core": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", @@ -570,6 +619,7 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", @@ -583,6 +633,7 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "expect": "^29.7.0", @@ -594,6 +645,7 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" @@ -604,6 +656,7 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -619,6 +672,7 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", @@ -632,6 +686,7 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -673,6 +728,7 @@ }, "node_modules/@jest/schemas": { "version": "29.6.3", + "dev": true, "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" @@ -683,6 +739,7 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", @@ -695,6 +752,7 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", @@ -708,6 +766,7 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", @@ -721,6 +780,7 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", @@ -745,6 +805,7 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "dev": true, "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", @@ -760,6 +821,7 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -772,6 +834,7 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -779,6 +842,7 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -786,10 +850,12 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -798,10 +864,12 @@ }, "node_modules/@sinclair/typebox": { "version": "0.27.8", + "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" @@ -809,6 +877,7 @@ }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" @@ -816,6 +885,7 @@ }, "node_modules/@types/babel__core": { "version": "7.20.5", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", @@ -827,6 +897,7 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -834,6 +905,7 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", @@ -842,6 +914,7 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.5", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" @@ -849,6 +922,7 @@ }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -856,10 +930,12 @@ }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", + "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", + "dev": true, "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" @@ -867,6 +943,7 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", + "dev": true, "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" @@ -874,6 +951,7 @@ }, "node_modules/@types/node": { "version": "20.11.30", + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -881,10 +959,12 @@ }, "node_modules/@types/stack-utils": { "version": "2.0.3", + "dev": true, "license": "MIT" }, "node_modules/@types/yargs": { "version": "17.0.32", + "dev": true, "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -892,10 +972,12 @@ }, "node_modules/@types/yargs-parser": { "version": "21.0.3", + "dev": true, "license": "MIT" }, "node_modules/ansi-escapes": { "version": "4.3.2", + "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.21.3" @@ -909,6 +991,7 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -916,6 +999,7 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -929,6 +1013,7 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -940,6 +1025,7 @@ }, "node_modules/argparse": { "version": "1.0.10", + "dev": true, "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" @@ -947,6 +1033,7 @@ }, "node_modules/babel-jest": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", @@ -966,6 +1053,7 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -980,6 +1068,7 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", @@ -994,6 +1083,7 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", @@ -1007,6 +1097,7 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1028,6 +1119,7 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", + "dev": true, "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", @@ -1042,10 +1134,12 @@ }, "node_modules/balanced-match": { "version": "1.0.2", + "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1054,6 +1148,7 @@ }, "node_modules/braces": { "version": "3.0.2", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.0.1" @@ -1064,6 +1159,7 @@ }, "node_modules/browserslist": { "version": "4.23.0", + "dev": true, "funding": [ { "type": "opencollective", @@ -1094,6 +1190,7 @@ }, "node_modules/bser": { "version": "2.1.1", + "dev": true, "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" @@ -1101,10 +1198,12 @@ }, "node_modules/buffer-from": { "version": "1.1.2", + "dev": true, "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1112,6 +1211,7 @@ }, "node_modules/camelcase": { "version": "5.3.1", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1119,6 +1219,7 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001600", + "dev": true, "funding": [ { "type": "opencollective", @@ -1137,6 +1238,7 @@ }, "node_modules/chalk": { "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1151,6 +1253,7 @@ }, "node_modules/char-regex": { "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -1158,6 +1261,7 @@ }, "node_modules/ci-info": { "version": "3.9.0", + "dev": true, "funding": [ { "type": "github", @@ -1171,10 +1275,12 @@ }, "node_modules/cjs-module-lexer": { "version": "1.2.3", + "dev": true, "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -1187,6 +1293,7 @@ }, "node_modules/co": { "version": "4.6.0", + "dev": true, "license": "MIT", "engines": { "iojs": ">= 1.0.0", @@ -1195,10 +1302,12 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", + "dev": true, "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1209,18 +1318,22 @@ }, "node_modules/color-name": { "version": "1.1.4", + "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", + "dev": true, "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", + "dev": true, "license": "MIT" }, "node_modules/create-jest": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -1240,6 +1353,7 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1252,6 +1366,7 @@ }, "node_modules/debug": { "version": "4.3.4", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -1267,6 +1382,7 @@ }, "node_modules/dedent": { "version": "1.5.1", + "dev": true, "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" @@ -1279,6 +1395,7 @@ }, "node_modules/deepmerge": { "version": "4.3.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1286,6 +1403,7 @@ }, "node_modules/detect-newline": { "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1293,6 +1411,7 @@ }, "node_modules/diff-sequences": { "version": "29.6.3", + "dev": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1300,10 +1419,12 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.719", + "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -1314,10 +1435,12 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", + "dev": true, "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", + "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -1325,6 +1448,7 @@ }, "node_modules/escalade": { "version": "3.1.2", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1332,6 +1456,7 @@ }, "node_modules/escape-string-regexp": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1339,6 +1464,7 @@ }, "node_modules/esprima": { "version": "4.0.1", + "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -1350,6 +1476,7 @@ }, "node_modules/execa": { "version": "5.1.1", + "dev": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", @@ -1371,12 +1498,14 @@ }, "node_modules/exit": { "version": "0.1.2", + "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", @@ -1391,10 +1520,12 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "dev": true, "license": "MIT" }, "node_modules/fb-watchman": { "version": "2.0.2", + "dev": true, "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" @@ -1402,6 +1533,7 @@ }, "node_modules/fill-range": { "version": "7.0.1", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -1412,6 +1544,7 @@ }, "node_modules/find-up": { "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -1423,10 +1556,12 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", + "dev": true, "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.2", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1434,6 +1569,7 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1441,6 +1577,7 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -1448,6 +1585,7 @@ }, "node_modules/get-package-type": { "version": "0.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -1455,6 +1593,7 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -1465,6 +1604,7 @@ }, "node_modules/glob": { "version": "7.2.3", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -1483,6 +1623,7 @@ }, "node_modules/globals": { "version": "11.12.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -1490,10 +1631,12 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", + "dev": true, "license": "ISC" }, "node_modules/has-flag": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1501,6 +1644,7 @@ }, "node_modules/hasown": { "version": "2.0.2", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -1511,10 +1655,12 @@ }, "node_modules/html-escaper": { "version": "2.0.2", + "dev": true, "license": "MIT" }, "node_modules/human-signals": { "version": "2.1.0", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=10.17.0" @@ -1522,6 +1668,7 @@ }, "node_modules/import-local": { "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", @@ -1539,6 +1686,7 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -1546,6 +1694,7 @@ }, "node_modules/inflight": { "version": "1.0.6", + "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -1554,14 +1703,17 @@ }, "node_modules/inherits": { "version": "2.0.4", + "dev": true, "license": "ISC" }, "node_modules/is-arrayish": { "version": "0.2.1", + "dev": true, "license": "MIT" }, "node_modules/is-core-module": { "version": "2.13.1", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.0" @@ -1572,6 +1724,7 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1579,6 +1732,7 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1586,6 +1740,7 @@ }, "node_modules/is-number": { "version": "7.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -1593,6 +1748,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1603,10 +1759,12 @@ }, "node_modules/isexe": { "version": "2.0.0", + "dev": true, "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=8" @@ -1614,6 +1772,7 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.2", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", @@ -1628,6 +1787,7 @@ }, "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -1638,6 +1798,7 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "7.6.0", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -1651,10 +1812,12 @@ }, "node_modules/istanbul-lib-instrument/node_modules/yallist": { "version": "4.0.0", + "dev": true, "license": "ISC" }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", @@ -1667,6 +1830,7 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", @@ -1679,6 +1843,7 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", @@ -1692,6 +1857,8 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -1715,6 +1882,7 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "execa": "^5.0.0", @@ -1727,6 +1895,7 @@ }, "node_modules/jest-circus": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", @@ -1756,6 +1925,7 @@ }, "node_modules/jest-cli": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", @@ -1787,6 +1957,7 @@ }, "node_modules/jest-config": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", @@ -1830,6 +2001,7 @@ }, "node_modules/jest-diff": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -1843,6 +2015,7 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" @@ -1853,6 +2026,7 @@ }, "node_modules/jest-each": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -1867,6 +2041,7 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", @@ -1882,6 +2057,7 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", + "dev": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1889,6 +2065,7 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -1912,6 +2089,7 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", @@ -1923,6 +2101,7 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -1936,6 +2115,7 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", @@ -1954,6 +2134,7 @@ }, "node_modules/jest-mock": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -1966,6 +2147,7 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1981,6 +2163,7 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "dev": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1988,6 +2171,7 @@ }, "node_modules/jest-resolve": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -2006,6 +2190,7 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", @@ -2017,6 +2202,7 @@ }, "node_modules/jest-runner": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", @@ -2047,6 +2233,7 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", @@ -2078,6 +2265,7 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", @@ -2107,6 +2295,7 @@ }, "node_modules/jest-snapshot/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -2117,6 +2306,7 @@ }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.6.0", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -2130,10 +2320,12 @@ }, "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", + "dev": true, "license": "ISC" }, "node_modules/jest-util": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -2149,6 +2341,7 @@ }, "node_modules/jest-validate": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -2164,6 +2357,7 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2174,6 +2368,7 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", @@ -2191,6 +2386,7 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -2204,6 +2400,7 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -2217,10 +2414,12 @@ }, "node_modules/js-tokens": { "version": "4.0.0", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^1.0.7", @@ -2232,6 +2431,7 @@ }, "node_modules/jsesc": { "version": "2.5.2", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -2242,10 +2442,12 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", + "dev": true, "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", + "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -2256,6 +2458,7 @@ }, "node_modules/kleur": { "version": "3.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2263,6 +2466,7 @@ }, "node_modules/leven": { "version": "3.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2270,10 +2474,12 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", + "dev": true, "license": "MIT" }, "node_modules/locate-path": { "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -2284,6 +2490,7 @@ }, "node_modules/lru-cache": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" @@ -2291,6 +2498,7 @@ }, "node_modules/make-dir": { "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.5.3" @@ -2304,6 +2512,7 @@ }, "node_modules/make-dir/node_modules/lru-cache": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -2314,6 +2523,7 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "7.6.0", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -2327,10 +2537,12 @@ }, "node_modules/make-dir/node_modules/yallist": { "version": "4.0.0", + "dev": true, "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" @@ -2338,10 +2550,12 @@ }, "node_modules/merge-stream": { "version": "2.0.0", + "dev": true, "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.5", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.2", @@ -2353,6 +2567,7 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2360,6 +2575,7 @@ }, "node_modules/minimatch": { "version": "3.1.2", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2370,22 +2586,27 @@ }, "node_modules/ms": { "version": "2.1.2", + "dev": true, "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", + "dev": true, "license": "MIT" }, "node_modules/node-int64": { "version": "0.4.0", + "dev": true, "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.14", + "dev": true, "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2393,6 +2614,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.0.0" @@ -2403,6 +2625,7 @@ }, "node_modules/once": { "version": "1.4.0", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -2410,6 +2633,7 @@ }, "node_modules/onetime": { "version": "5.1.2", + "dev": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -2423,6 +2647,7 @@ }, "node_modules/p-limit": { "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -2436,6 +2661,7 @@ }, "node_modules/p-locate": { "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -2446,6 +2672,7 @@ }, "node_modules/p-locate/node_modules/p-limit": { "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -2459,6 +2686,7 @@ }, "node_modules/p-try": { "version": "2.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2466,6 +2694,7 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -2482,6 +2711,7 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2489,6 +2719,7 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2496,6 +2727,7 @@ }, "node_modules/path-key": { "version": "3.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2503,14 +2735,17 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "dev": true, "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -2521,6 +2756,7 @@ }, "node_modules/pirates": { "version": "4.0.6", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -2528,6 +2764,7 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "dev": true, "license": "MIT", "dependencies": { "find-up": "^4.0.0" @@ -2538,6 +2775,7 @@ }, "node_modules/pretty-format": { "version": "29.7.0", + "dev": true, "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", @@ -2550,6 +2788,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2560,6 +2799,7 @@ }, "node_modules/prompts": { "version": "2.4.2", + "dev": true, "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -2571,6 +2811,7 @@ }, "node_modules/pure-rand": { "version": "6.1.0", + "dev": true, "funding": [ { "type": "individual", @@ -2585,10 +2826,12 @@ }, "node_modules/react-is": { "version": "18.2.0", + "dev": true, "license": "MIT" }, "node_modules/require-directory": { "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2596,6 +2839,7 @@ }, "node_modules/resolve": { "version": "1.22.8", + "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -2611,6 +2855,7 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" @@ -2621,6 +2866,7 @@ }, "node_modules/resolve-from": { "version": "5.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2628,6 +2874,7 @@ }, "node_modules/resolve.exports": { "version": "2.0.2", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2635,6 +2882,7 @@ }, "node_modules/semver": { "version": "6.3.1", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2642,6 +2890,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -2652,6 +2901,7 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2659,14 +2909,17 @@ }, "node_modules/signal-exit": { "version": "3.0.7", + "dev": true, "license": "ISC" }, "node_modules/sisteransi": { "version": "1.0.5", + "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2674,6 +2927,7 @@ }, "node_modules/source-map": { "version": "0.6.1", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -2681,6 +2935,7 @@ }, "node_modules/source-map-support": { "version": "0.5.13", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -2689,10 +2944,12 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", + "dev": true, "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" @@ -2703,6 +2960,7 @@ }, "node_modules/string-length": { "version": "4.0.2", + "dev": true, "license": "MIT", "dependencies": { "char-regex": "^1.0.2", @@ -2714,6 +2972,7 @@ }, "node_modules/string-width": { "version": "4.2.3", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -2726,6 +2985,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -2736,6 +2996,7 @@ }, "node_modules/strip-bom": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2743,6 +3004,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2750,6 +3012,7 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2760,6 +3023,7 @@ }, "node_modules/supports-color": { "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -2770,6 +3034,7 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2780,6 +3045,7 @@ }, "node_modules/test-exclude": { "version": "6.0.0", + "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", @@ -2792,10 +3058,12 @@ }, "node_modules/tmpl": { "version": "1.0.5", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/to-fast-properties": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -2803,6 +3071,7 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -2813,6 +3082,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -2820,6 +3090,7 @@ }, "node_modules/type-fest": { "version": "0.21.3", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -2830,10 +3101,12 @@ }, "node_modules/undici-types": { "version": "5.26.5", + "dev": true, "license": "MIT" }, "node_modules/update-browserslist-db": { "version": "1.0.13", + "dev": true, "funding": [ { "type": "opencollective", @@ -2862,6 +3135,7 @@ }, "node_modules/v8-to-istanbul": { "version": "9.2.0", + "dev": true, "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -2874,6 +3148,7 @@ }, "node_modules/walker": { "version": "1.0.8", + "dev": true, "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" @@ -2881,6 +3156,7 @@ }, "node_modules/which": { "version": "2.0.2", + "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -2894,6 +3170,7 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -2909,10 +3186,12 @@ }, "node_modules/wrappy": { "version": "1.0.2", + "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", + "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", @@ -2924,6 +3203,7 @@ }, "node_modules/y18n": { "version": "5.0.8", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -2931,10 +3211,12 @@ }, "node_modules/yallist": { "version": "3.1.1", + "dev": true, "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -2951,6 +3233,7 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -2958,6 +3241,7 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=10" diff --git a/package.json b/package.json index 56bf17b..9b4103c 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,8 @@ "description": "practice unit tests in javascript", "main": "index.js", "scripts": { - "test": "jest" - }, - "dependencies": { - "jest": "^29.7.0" + "test": "jest", + "test:coverage": "npm run test -- --coverage" }, "repository": { "type": "git", @@ -18,6 +16,8 @@ }, "homepage": "https://github.com/gemtechd/build-tests#readme", "author": "gemtechd", - "license": "ISC" - + "license": "ISC", + "devDependencies": { + "jest": "^29.7.0" + } }