diff --git a/.github/workflows/ci.js.yml b/.github/workflows/ci.js.yml index 82af88f554..73ec954340 100644 --- a/.github/workflows/ci.js.yml +++ b/.github/workflows/ci.js.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 - name: Use Node.js LTS (18.x) uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 with: @@ -32,7 +32,7 @@ jobs: node-version: ['18', '20'] steps: - - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9cedaf5ae2..bb3e00cdd0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/pr.ci.js.yml b/.github/workflows/pr.ci.js.yml index 08db941170..48e1dfa4b0 100644 --- a/.github/workflows/pr.ci.js.yml +++ b/.github/workflows/pr.ci.js.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout PR - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 - name: Use Node.js LTS (18.x) uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout PR - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 diff --git a/.github/workflows/verify-code-formatting.yml b/.github/workflows/verify-code-formatting.yml index ca624c6755..30e575922f 100644 --- a/.github/workflows/verify-code-formatting.yml +++ b/.github/workflows/verify-code-formatting.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: 'Checkout code' - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 - name: Use Node.js LTS (18.x) uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 with: diff --git a/concepts/regular-expressions/about.md b/concepts/regular-expressions/about.md index 5bfa585f5d..3bf86f7aa1 100644 --- a/concepts/regular-expressions/about.md +++ b/concepts/regular-expressions/about.md @@ -14,7 +14,7 @@ This concept is focused on using regular expressions in JavaScript. If you want ## How to create Regular Expressions -In JavaScript, a regular expressions is mostly written in the format `/pattern/modifiers` where 'pattern' is the main regex, and 'modifiers' are a series of characters which we can add to indicate special options (like superpowers). +In JavaScript, regular expressions are mostly written in the format `/pattern/modifiers` where 'pattern' is the main regex, and 'modifiers' are a series of characters which we can add to indicate special options (like superpowers). Nevertheless, we have two ways of creating a regular expression: @@ -119,7 +119,7 @@ funnyQuote.match(regex3); ### Replace -The [replace()][mdn-regex-replace] method in JavaScript allows us to search for a value within a given string, and replacing it with a desired new value. +The [replace()][mdn-regex-replace] method in JavaScript allows us to search for a value within a given string, and replace it with a new value. ```javascript string.replace(searchValue, newValue); diff --git a/exercises/concept/amusement-park/package.json b/exercises/concept/amusement-park/package.json index 1c12b5c08b..cc653d43e6 100644 --- a/exercises/concept/amusement-park/package.json +++ b/exercises/concept/amusement-park/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/amusement-park" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/annalyns-infiltration/package.json b/exercises/concept/annalyns-infiltration/package.json index 5adabd680e..175ff6d4f1 100644 --- a/exercises/concept/annalyns-infiltration/package.json +++ b/exercises/concept/annalyns-infiltration/package.json @@ -13,13 +13,13 @@ "directory": "exercises/concept/annalyns-infiltration" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/bird-watcher/package.json b/exercises/concept/bird-watcher/package.json index 61201bae5c..bab93d85e1 100644 --- a/exercises/concept/bird-watcher/package.json +++ b/exercises/concept/bird-watcher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/bird-watcher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/coordinate-transformation/package.json b/exercises/concept/coordinate-transformation/package.json index 1d6def2aff..e5f663d600 100644 --- a/exercises/concept/coordinate-transformation/package.json +++ b/exercises/concept/coordinate-transformation/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/coordinate-transformation" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/custom-signs/package.json b/exercises/concept/custom-signs/package.json index ef72547568..7fbb44059c 100644 --- a/exercises/concept/custom-signs/package.json +++ b/exercises/concept/custom-signs/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/custom-signs" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/elyses-analytic-enchantments/package.json b/exercises/concept/elyses-analytic-enchantments/package.json index 118b293dfb..24e0d773e8 100644 --- a/exercises/concept/elyses-analytic-enchantments/package.json +++ b/exercises/concept/elyses-analytic-enchantments/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/elyses-analytic-enchantments" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/elyses-destructured-enchantments/package.json b/exercises/concept/elyses-destructured-enchantments/package.json index 64d876938f..e16c36e62b 100644 --- a/exercises/concept/elyses-destructured-enchantments/package.json +++ b/exercises/concept/elyses-destructured-enchantments/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/elyses-destructured-enchantments" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/elyses-enchantments/package.json b/exercises/concept/elyses-enchantments/package.json index a03800cab8..9e6d86bbb9 100644 --- a/exercises/concept/elyses-enchantments/package.json +++ b/exercises/concept/elyses-enchantments/package.json @@ -13,13 +13,13 @@ "directory": "exercises/concept/elyses-enchantments" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/elyses-looping-enchantments/package.json b/exercises/concept/elyses-looping-enchantments/package.json index 3a1177821f..51cb892769 100644 --- a/exercises/concept/elyses-looping-enchantments/package.json +++ b/exercises/concept/elyses-looping-enchantments/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/elyses-looping-enchantments" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/elyses-transformative-enchantments/package.json b/exercises/concept/elyses-transformative-enchantments/package.json index 85981c0369..cea9f55b6a 100644 --- a/exercises/concept/elyses-transformative-enchantments/package.json +++ b/exercises/concept/elyses-transformative-enchantments/package.json @@ -14,13 +14,13 @@ "directory": "exercises/concept/elyses-transformative-enchantments" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/factory-sensors/package.json b/exercises/concept/factory-sensors/package.json index d5c824f520..cdc68ed72f 100644 --- a/exercises/concept/factory-sensors/package.json +++ b/exercises/concept/factory-sensors/package.json @@ -9,13 +9,13 @@ "directory": "exercises/concept/factory-sensors" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/freelancer-rates/package.json b/exercises/concept/freelancer-rates/package.json index 086d7c8bcc..e102b6d786 100644 --- a/exercises/concept/freelancer-rates/package.json +++ b/exercises/concept/freelancer-rates/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/freelancer-rates" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/fruit-picker/.docs/instructions.md b/exercises/concept/fruit-picker/.docs/instructions.md index a5f1db61dc..aecdeb09ca 100644 --- a/exercises/concept/fruit-picker/.docs/instructions.md +++ b/exercises/concept/fruit-picker/.docs/instructions.md @@ -2,27 +2,29 @@ You are creating a new online portal for your patrons to order their fruit fresh from the grocer. The grocer has an API that you can use to see if they have the inventory desired by your customers. You need to create a small library of functions for interacting with the grocer's API. -## 1. Create a callback to be called when the order is successful +## 1. Notify your customer when their order was successful -Write a callback function called `onSuccess` to be called when the order is successful. It should invoke the imported `notify` function passing a success message to it. +The portal should notify your customer if their order was successful. Define the `onSuccess` callback function that will be called if the order was successful due to the grocer having enough fruit in stock. This function should invoke the imported `notify` function, passing `{ message: 'SUCCESS' }` to let your customer know that their order was successful. ```javascript onSuccess(); // => `notify` called with `{ message: 'SUCCESS' }` ``` -## 2. Create a callback to be called when the order fails with an error +## 2. Notify your customer when their order was unsuccessful -Write a callback function called `onError` to be called when the order encounters an error. It should invoke the imported `notify` function passing an error message to it. +The portal should notify your customer if their order was unsuccessful. Define the `onError` callback function that will be called if the order was unsuccessful because the grocer _does not have_ the fruit in stock or there was an error. This function should invoke the imported `notify` function, passing `{ message: 'ERROR' }` to let your customer know that their order was unsuccessful. ```javascript onError(); // => `notify` called with `{ message: 'ERROR' }` ``` -## 3. Create a wrapper to wrap the external api function +## 3. Create an API wrapper to wrap the grocer's API order function -The grocer's API provides a function to order from their inventory called `order`. It receives three arguments: a _query_, a _callback_ function to be invoked when the order is successful, and a _callback_ function to be invoked when the order encounters an error. You decide to wrap the api function call in a newly defined function `orderFromGrocer` to insulate your codebase from external changes. Your function should forward the arguments (which match the provided api function) to the api function. +Fruit orders are placed through the grocer's API via the provided `order` function. This function receives three arguments: a _query_, containing the `variety` and `quantity` of fruit requested, a _callback_ function to be invoked when the order is successful, and a _callback_ function to be invoked when the order encounters an error. + +You want to insulate your codebase from potential external changes and decide to wrap the call to the `order` function inside a new function named `orderFromGrocer`. Implement the `orderFromGrocer` function that attempts to place an order via a call to the grocer's API `order` function, making sure to forward the arguments passed into `orderFromGrocer` to the API call. The query takes the form of an _object_: @@ -42,11 +44,11 @@ orderFromGrocer( // => `order` was called with the query and the callbacks ``` -## 4. Create a convenient short function +## 4. Simplify handling placed orders -You find that you are calling this function from many different places with the same functions. Seeing an opportunity to refactor your code, you want to create a function where you can supply the variety and quantity to order as arguments. +Your customers are now able to place fruit orders via your portal, however, you notice that you are invoking the `orderFromGrocer` function in many different places across your codebase, each time having to pass in a `query` and the two `callback` functions as arguments. Seeing an opportunity to refactor your code, you think it would be simpler if you could place an order by just passing the `variety` and `quantity` of fruit required. Define the `postOrder` helper function that takes `variety` and `quantity` as arguments and attempts to place an order with the grocer. ```javascript postOrder('peach', 100); -// => order submitted for 100 peaches +// => order placed for 100 peaches ``` diff --git a/exercises/concept/fruit-picker/fruit-picker.spec.js b/exercises/concept/fruit-picker/fruit-picker.spec.js index 4ef494ce10..6d483450fa 100644 --- a/exercises/concept/fruit-picker/fruit-picker.spec.js +++ b/exercises/concept/fruit-picker/fruit-picker.spec.js @@ -33,7 +33,7 @@ describe('task 2', () => { }); describe('task 3', () => { - test('order from grocer passes callback function arguments forward', () => { + test('orderFromGrocer passes query and callback function arguments forward', () => { const query = { variety: 'apple', quantity: 10 }; orderFromGrocer(query, onSuccess, onError); expect(order).toHaveBeenCalledTimes(1); diff --git a/exercises/concept/fruit-picker/package.json b/exercises/concept/fruit-picker/package.json index b5d6623109..223ee27f6d 100644 --- a/exercises/concept/fruit-picker/package.json +++ b/exercises/concept/fruit-picker/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/fruit-picker" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/high-score-board/package.json b/exercises/concept/high-score-board/package.json index b04e0e5767..80f183cbd3 100644 --- a/exercises/concept/high-score-board/package.json +++ b/exercises/concept/high-score-board/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/high-score-board" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/lasagna-master/package.json b/exercises/concept/lasagna-master/package.json index d0b2f7fd6d..86385d0ba6 100644 --- a/exercises/concept/lasagna-master/package.json +++ b/exercises/concept/lasagna-master/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/lasagna-master" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/lasagna/package.json b/exercises/concept/lasagna/package.json index 484f715054..7ef19ae8a8 100644 --- a/exercises/concept/lasagna/package.json +++ b/exercises/concept/lasagna/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/lasagna" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/lucky-numbers/package.json b/exercises/concept/lucky-numbers/package.json index 6a1aff5b2a..167ad0c241 100644 --- a/exercises/concept/lucky-numbers/package.json +++ b/exercises/concept/lucky-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/lucky-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/mixed-juices/package.json b/exercises/concept/mixed-juices/package.json index 6ced9fe4ca..e433d72e17 100644 --- a/exercises/concept/mixed-juices/package.json +++ b/exercises/concept/mixed-juices/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/mixed-juices" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/nullability/package.json b/exercises/concept/nullability/package.json index 66f6e792f5..8cfce247f1 100644 --- a/exercises/concept/nullability/package.json +++ b/exercises/concept/nullability/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/nullability" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/ozans-playlist/package.json b/exercises/concept/ozans-playlist/package.json index 8fe1621ff5..177a162271 100644 --- a/exercises/concept/ozans-playlist/package.json +++ b/exercises/concept/ozans-playlist/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/ozans-playlist" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/pizza-order/package.json b/exercises/concept/pizza-order/package.json index 45d09b1c0d..bcec94e188 100644 --- a/exercises/concept/pizza-order/package.json +++ b/exercises/concept/pizza-order/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/pizza-order" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/poetry-club-door-policy/package.json b/exercises/concept/poetry-club-door-policy/package.json index b00414540a..4bee433095 100644 --- a/exercises/concept/poetry-club-door-policy/package.json +++ b/exercises/concept/poetry-club-door-policy/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/poetry-club-door-policy" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/regular-chatbot/package.json b/exercises/concept/regular-chatbot/package.json index 0d58898ee1..6897928ac2 100644 --- a/exercises/concept/regular-chatbot/package.json +++ b/exercises/concept/regular-chatbot/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/regular-chatbot" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/translation-service/package.json b/exercises/concept/translation-service/package.json index 19f6921ac7..cba8492b57 100644 --- a/exercises/concept/translation-service/package.json +++ b/exercises/concept/translation-service/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/translation-service" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/vehicle-purchase/package.json b/exercises/concept/vehicle-purchase/package.json index 77059b0c93..7266c7df55 100644 --- a/exercises/concept/vehicle-purchase/package.json +++ b/exercises/concept/vehicle-purchase/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/vehicle-purchase" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/concept/windowing-system/.docs/introduction.md b/exercises/concept/windowing-system/.docs/introduction.md index 8c1bb07ab0..1f612f79f3 100644 --- a/exercises/concept/windowing-system/.docs/introduction.md +++ b/exercises/concept/windowing-system/.docs/introduction.md @@ -2,12 +2,12 @@ JavaScript includes the capabilities for object-oriented programming ([OOP][wiki-oop]). In OOP, you want to create objects (_instances_) from "templates" (_classes_) so that they include certain data and functionality. -The data properties are called _fields_ in the OOP context, function properties are called _methods_. +The data properties are called _fields_ in the OOP context, the function properties are called _methods_. JavaScript did not have classes at all before they were added to the language specification in 2015 but allowed for object-oriented programming using prototype-based inheritance. And even though a `class` keyword is available nowadays, JavaScript is still a _prototype-based_ language. -To understand what it means to be a prototype-based language and how JavaScript works, we will go back to the time when there were no classes. +To understand what it means to be a prototype-based language and how JavaScript actually works, we will go back to the time when there were no classes. ## Prototype Syntax @@ -184,24 +184,24 @@ With the keywords `get` and `set` you can define functions that are executed whe ```javascript class Car { constructor() { - this._milage = 0; + this._mileage = 0; } - get milage() { - return this._milage; + get mileage() { + return this._mileage; } - set milage(value) { - throw new Error(`Milage cannot be manipulated, ${value} is ignored.`); + set mileage(value) { + throw new Error(`Mileage cannot be manipulated, ${value} is ignored.`); // Just an example, usually you would not provide a setter in this case. } } const myCar = new Car(); -myCar.milage; +myCar.mileage; // => 0 -myCar.milage = 100; -// => Error: Milage cannot be manipulated, 100 is ignored. +myCar.mileage = 100; +// => Error: Mileage cannot be manipulated, 100 is ignored. ``` --- diff --git a/exercises/concept/windowing-system/package.json b/exercises/concept/windowing-system/package.json index 7eecaa6c59..cacc8fb889 100644 --- a/exercises/concept/windowing-system/package.json +++ b/exercises/concept/windowing-system/package.json @@ -10,13 +10,13 @@ "directory": "exercises/concept/windowing-system" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/accumulate/package.json b/exercises/practice/accumulate/package.json index a1dfd2ca7d..82901d379f 100644 --- a/exercises/practice/accumulate/package.json +++ b/exercises/practice/accumulate/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/accumulate" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/acronym/package.json b/exercises/practice/acronym/package.json index f1cebb790c..b51de29ba2 100644 --- a/exercises/practice/acronym/package.json +++ b/exercises/practice/acronym/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/acronym" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/affine-cipher/package.json b/exercises/practice/affine-cipher/package.json index 5891fb611b..b953140c26 100644 --- a/exercises/practice/affine-cipher/package.json +++ b/exercises/practice/affine-cipher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/affine-cipher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/all-your-base/package.json b/exercises/practice/all-your-base/package.json index 36498f7e06..a8bed565a9 100644 --- a/exercises/practice/all-your-base/package.json +++ b/exercises/practice/all-your-base/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/all-your-base" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/allergies/package.json b/exercises/practice/allergies/package.json index e3f822ff55..5b04d8f7b8 100644 --- a/exercises/practice/allergies/package.json +++ b/exercises/practice/allergies/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/allergies" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/alphametics/package.json b/exercises/practice/alphametics/package.json index de63a7561d..e023d09f1b 100644 --- a/exercises/practice/alphametics/package.json +++ b/exercises/practice/alphametics/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/alphametics" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/anagram/.docs/instructions.md b/exercises/practice/anagram/.docs/instructions.md index 7d1c8283ef..a7298485b3 100644 --- a/exercises/practice/anagram/.docs/instructions.md +++ b/exercises/practice/anagram/.docs/instructions.md @@ -1,9 +1,9 @@ # Instructions -An anagram is a rearrangement of letters to form a new word: for example `"owns"` is an anagram of `"snow"`. -A word is not its own anagram: for example, `"stop"` is not an anagram of `"stop"`. +Your task is to, given a target word and a set of candidate words, to find the subset of the candidates that are anagrams of the target. -Given a target word and a set of candidate words, this exercise requests the anagram set: the subset of the candidates that are anagrams of the target. +An anagram is a rearrangement of letters to form a new word: for example `"owns"` is an anagram of `"snow"`. +A word is _not_ its own anagram: for example, `"stop"` is not an anagram of `"stop"`. The target and candidates are words of one or more ASCII alphabetic characters (`A`-`Z` and `a`-`z`). Lowercase and uppercase characters are equivalent: for example, `"PoTS"` is an anagram of `"sTOp"`, but `StoP` is not an anagram of `sTOp`. diff --git a/exercises/practice/anagram/.docs/introduction.md b/exercises/practice/anagram/.docs/introduction.md new file mode 100644 index 0000000000..1acbdf00b0 --- /dev/null +++ b/exercises/practice/anagram/.docs/introduction.md @@ -0,0 +1,12 @@ +# Introduction + +At a garage sale, you find a lovely vintage typewriter at a bargain price! +Excitedly, you rush home, insert a sheet of paper, and start typing away. +However, your excitement wanes when you examine the output: all words are garbled! +For example, it prints "stop" instead of "post" and "least" instead of "stale." +Carefully, you try again, but now it prints "spot" and "slate." +After some experimentation, you find there is a random delay before each letter is printed, which messes up the order. +You now understand why they sold it for so little money! + +You realize this quirk allows you to generate anagrams, which are words formed by rearranging the letters of another word. +Pleased with your finding, you spend the rest of the day generating hundreds of anagrams. diff --git a/exercises/practice/anagram/package.json b/exercises/practice/anagram/package.json index f37306cfff..aa8c45eaa3 100644 --- a/exercises/practice/anagram/package.json +++ b/exercises/practice/anagram/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/anagram" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/armstrong-numbers/package.json b/exercises/practice/armstrong-numbers/package.json index e0659fafde..f0e275ff09 100644 --- a/exercises/practice/armstrong-numbers/package.json +++ b/exercises/practice/armstrong-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/armstrong-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/atbash-cipher/package.json b/exercises/practice/atbash-cipher/package.json index dd1ee81788..a2a16a617f 100644 --- a/exercises/practice/atbash-cipher/package.json +++ b/exercises/practice/atbash-cipher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/atbash-cipher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/bank-account/.docs/instructions.md b/exercises/practice/bank-account/.docs/instructions.md index f536fdbb73..0955520bbf 100644 --- a/exercises/practice/bank-account/.docs/instructions.md +++ b/exercises/practice/bank-account/.docs/instructions.md @@ -1,12 +1,10 @@ # Instructions -Simulate a bank account supporting opening/closing, withdrawals, and deposits of money. -Watch out for concurrent transactions! +Your task is to implement bank accounts supporting opening/closing, withdrawals, and deposits of money. -A bank account can be accessed in multiple ways. -Clients can make deposits and withdrawals using the internet, mobile phones, etc. -Shops can charge against the account. - -Create an account that can be accessed from multiple threads/processes (terminology depends on your programming language). +As bank accounts can be accessed in many different ways (internet, mobile phones, automatic charges), your bank software must allow accounts to be safely accessed from multiple threads/processes (terminology depends on your programming language) in parallel. +For example, there may be many deposits and withdrawals occurring in parallel; you need to ensure there is no [race conditions][wikipedia] between when you read the account balance and set the new balance. It should be possible to close an account; operations against a closed account must fail. + +[wikipedia]: https://en.wikipedia.org/wiki/Race_condition#In_software diff --git a/exercises/practice/bank-account/.docs/introduction.md b/exercises/practice/bank-account/.docs/introduction.md new file mode 100644 index 0000000000..650b5d9c46 --- /dev/null +++ b/exercises/practice/bank-account/.docs/introduction.md @@ -0,0 +1,20 @@ +# Introduction + +After years of filling out forms and waiting, you've finally acquired your banking license. +This means you are now officially eligible to open your own bank, hurray! + +Your first priority is to get the IT systems up and running. +After a day of hard work, you can already open and close accounts, as well as handle withdrawals and deposits. + +Since you couldn't be bothered writing tests, you invite some friends to help test the system. +However, after just five minutes, one of your friends claims they've lost money! +While you're confident your code is bug-free, you start looking through the logs to investigate. + +Ah yes, just as you suspected, your friend is at fault! +They shared their test credentials with another friend, and together they conspired to make deposits and withdrawals from the same account _in parallel_. +Who would do such a thing? + +While you argue that it's physically _impossible_ for someone to access their account in parallel, your friend smugly notifies you that the banking rules _require_ you to support this. +Thus, no parallel banking support, no go-live signal. +Sighing, you create a mental note to work on this tomorrow. +This will set your launch date back at _least_ one more day, but well... diff --git a/exercises/practice/bank-account/package.json b/exercises/practice/bank-account/package.json index 9a73f7a60b..49612a463d 100644 --- a/exercises/practice/bank-account/package.json +++ b/exercises/practice/bank-account/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/bank-account" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/beer-song/package.json b/exercises/practice/beer-song/package.json index 493a302e69..4cfc335cdc 100644 --- a/exercises/practice/beer-song/package.json +++ b/exercises/practice/beer-song/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/beer-song" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/binary-search-tree/package.json b/exercises/practice/binary-search-tree/package.json index b1532ae6e2..14b56d69f6 100644 --- a/exercises/practice/binary-search-tree/package.json +++ b/exercises/practice/binary-search-tree/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/binary-search-tree" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/binary-search/package.json b/exercises/practice/binary-search/package.json index a95eb4e237..a9cf8ff286 100644 --- a/exercises/practice/binary-search/package.json +++ b/exercises/practice/binary-search/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/binary-search" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/binary/package.json b/exercises/practice/binary/package.json index 6b6a13553e..2e4e41af2c 100644 --- a/exercises/practice/binary/package.json +++ b/exercises/practice/binary/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/binary" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/bob/package.json b/exercises/practice/bob/package.json index 92eda549c7..b5ef9dec82 100644 --- a/exercises/practice/bob/package.json +++ b/exercises/practice/bob/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/bob" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/book-store/package.json b/exercises/practice/book-store/package.json index 0912e340d0..6b2536807b 100644 --- a/exercises/practice/book-store/package.json +++ b/exercises/practice/book-store/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/book-store" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/bottle-song/package.json b/exercises/practice/bottle-song/package.json index 027c2e03cc..8df048ee0f 100644 --- a/exercises/practice/bottle-song/package.json +++ b/exercises/practice/bottle-song/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/bottle-song" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/bowling/package.json b/exercises/practice/bowling/package.json index c0f4e5dd04..2a368bf21a 100644 --- a/exercises/practice/bowling/package.json +++ b/exercises/practice/bowling/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/bowling" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/change/package.json b/exercises/practice/change/package.json index 5dc837d55d..62874be4c8 100644 --- a/exercises/practice/change/package.json +++ b/exercises/practice/change/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/change" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/circular-buffer/package.json b/exercises/practice/circular-buffer/package.json index 9d36f8e989..69932685b3 100644 --- a/exercises/practice/circular-buffer/package.json +++ b/exercises/practice/circular-buffer/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/circular-buffer" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/clock/package.json b/exercises/practice/clock/package.json index 39bb6ff7e1..9f5b84f73f 100644 --- a/exercises/practice/clock/package.json +++ b/exercises/practice/clock/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/clock" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/collatz-conjecture/package.json b/exercises/practice/collatz-conjecture/package.json index b572dea08e..62a2ab82b2 100644 --- a/exercises/practice/collatz-conjecture/package.json +++ b/exercises/practice/collatz-conjecture/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/collatz-conjecture" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/complex-numbers/package.json b/exercises/practice/complex-numbers/package.json index 92525bb0e7..2d0dfef2ef 100644 --- a/exercises/practice/complex-numbers/package.json +++ b/exercises/practice/complex-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/complex-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/connect/package.json b/exercises/practice/connect/package.json index 8a54f1f8be..0dda47af6d 100644 --- a/exercises/practice/connect/package.json +++ b/exercises/practice/connect/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/connect" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/crypto-square/package.json b/exercises/practice/crypto-square/package.json index 542ff78594..2ea8817f99 100644 --- a/exercises/practice/crypto-square/package.json +++ b/exercises/practice/crypto-square/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/crypto-square" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/custom-set/package.json b/exercises/practice/custom-set/package.json index 2cdbe580eb..e23a6948b7 100644 --- a/exercises/practice/custom-set/package.json +++ b/exercises/practice/custom-set/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/custom-set" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/darts/package.json b/exercises/practice/darts/package.json index 4901c37fd2..faf023e85a 100644 --- a/exercises/practice/darts/package.json +++ b/exercises/practice/darts/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/darts" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/diamond/package.json b/exercises/practice/diamond/package.json index 9556bfbd3e..322b10f7d3 100644 --- a/exercises/practice/diamond/package.json +++ b/exercises/practice/diamond/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/diamond" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/difference-of-squares/package.json b/exercises/practice/difference-of-squares/package.json index 3e46306066..96b28418ad 100644 --- a/exercises/practice/difference-of-squares/package.json +++ b/exercises/practice/difference-of-squares/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/difference-of-squares" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/diffie-hellman/package.json b/exercises/practice/diffie-hellman/package.json index 594d2733f7..5d1ead0f73 100644 --- a/exercises/practice/diffie-hellman/package.json +++ b/exercises/practice/diffie-hellman/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/diffie-hellman" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/dnd-character/package.json b/exercises/practice/dnd-character/package.json index caec78a365..fcae8695e7 100644 --- a/exercises/practice/dnd-character/package.json +++ b/exercises/practice/dnd-character/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/dnd-character" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/dominoes/package.json b/exercises/practice/dominoes/package.json index 19c8fda755..d5087f4dc0 100644 --- a/exercises/practice/dominoes/package.json +++ b/exercises/practice/dominoes/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/dominoes" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/eliuds-eggs/package.json b/exercises/practice/eliuds-eggs/package.json index 073a592aad..dc084b7754 100644 --- a/exercises/practice/eliuds-eggs/package.json +++ b/exercises/practice/eliuds-eggs/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/eliuds-eggs" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/etl/package.json b/exercises/practice/etl/package.json index 61729b7806..f953e904b4 100644 --- a/exercises/practice/etl/package.json +++ b/exercises/practice/etl/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/etl" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/flatten-array/package.json b/exercises/practice/flatten-array/package.json index f14f733664..2d98499ee7 100644 --- a/exercises/practice/flatten-array/package.json +++ b/exercises/practice/flatten-array/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/flatten-array" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/food-chain/package.json b/exercises/practice/food-chain/package.json index 7f50259063..fb8d23154f 100644 --- a/exercises/practice/food-chain/package.json +++ b/exercises/practice/food-chain/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/food-chain" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/forth/package.json b/exercises/practice/forth/package.json index adb907b558..8291a2b906 100644 --- a/exercises/practice/forth/package.json +++ b/exercises/practice/forth/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/forth" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/gigasecond/package.json b/exercises/practice/gigasecond/package.json index 041310a8d9..00d3d5e4fd 100644 --- a/exercises/practice/gigasecond/package.json +++ b/exercises/practice/gigasecond/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/gigasecond" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/go-counting/package.json b/exercises/practice/go-counting/package.json index 3215777bf6..d7bda7b456 100644 --- a/exercises/practice/go-counting/package.json +++ b/exercises/practice/go-counting/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/go-counting" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/grade-school/package.json b/exercises/practice/grade-school/package.json index ab29708fe6..90c8a163d9 100644 --- a/exercises/practice/grade-school/package.json +++ b/exercises/practice/grade-school/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/grade-school" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/grains/package.json b/exercises/practice/grains/package.json index e743e90c90..8c690e1c0b 100644 --- a/exercises/practice/grains/package.json +++ b/exercises/practice/grains/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/grains" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/grep/package.json b/exercises/practice/grep/package.json index 4097b1c11f..27820c071d 100644 --- a/exercises/practice/grep/package.json +++ b/exercises/practice/grep/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/grep" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/hamming/package.json b/exercises/practice/hamming/package.json index 6688a76f1b..c25bc36ae2 100644 --- a/exercises/practice/hamming/package.json +++ b/exercises/practice/hamming/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/hamming" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/hello-world/package.json b/exercises/practice/hello-world/package.json index 3f22513c9d..81ab62a577 100644 --- a/exercises/practice/hello-world/package.json +++ b/exercises/practice/hello-world/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/hello-world" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/hexadecimal/package.json b/exercises/practice/hexadecimal/package.json index 6199794054..e4cef22c85 100644 --- a/exercises/practice/hexadecimal/package.json +++ b/exercises/practice/hexadecimal/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/hexadecimal" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/high-scores/package.json b/exercises/practice/high-scores/package.json index ee479a571a..3411f4872d 100644 --- a/exercises/practice/high-scores/package.json +++ b/exercises/practice/high-scores/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/high-scores" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/house/package.json b/exercises/practice/house/package.json index 7f24db1b7f..16d5284f40 100644 --- a/exercises/practice/house/package.json +++ b/exercises/practice/house/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/house" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/isbn-verifier/package.json b/exercises/practice/isbn-verifier/package.json index d66eb202be..3fe34d7a24 100644 --- a/exercises/practice/isbn-verifier/package.json +++ b/exercises/practice/isbn-verifier/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/isbn-verifier" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/isogram/package.json b/exercises/practice/isogram/package.json index 43bcd52944..a3d8764346 100644 --- a/exercises/practice/isogram/package.json +++ b/exercises/practice/isogram/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/isogram" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/kindergarten-garden/.docs/instructions.md b/exercises/practice/kindergarten-garden/.docs/instructions.md index 472ee26f6c..6fe11a58ce 100644 --- a/exercises/practice/kindergarten-garden/.docs/instructions.md +++ b/exercises/practice/kindergarten-garden/.docs/instructions.md @@ -1,16 +1,21 @@ # Instructions -Given a diagram, determine which plants each child in the kindergarten class is -responsible for. +Your task is to, given a diagram, determine which plants each child in the kindergarten class is responsible for. -The kindergarten class is learning about growing plants. -The teacher thought it would be a good idea to give them actual seeds, plant them in actual dirt, and grow actual plants. +There are 12 children in the class: + +- Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid, and Larry. + +Four different types of seeds are planted: -They've chosen to grow grass, clover, radishes, and violets. +| Plant | Diagram encoding | +| ------ | ---------------- | +| Grass | G | +| Clover | C | +| Radish | R | +| Violet | V | -To this end, the children have put little cups along the window sills, and -planted one type of plant in each cup, choosing randomly from the available -types of seeds. +Each child gets four cups, two on each row: ```text [window][window][window] @@ -18,16 +23,9 @@ types of seeds. ........................ ``` -There are 12 children in the class: - -- Alice, Bob, Charlie, David, -- Eve, Fred, Ginny, Harriet, -- Ileana, Joseph, Kincaid, and Larry. - -Each child gets 4 cups, two on each row. -Their teacher assigns cups to the children alphabetically by their names. +Their teacher assigns cups to the children alphabetically by their names, which means that Alice comes first and Larry comes last. -The following diagram represents Alice's plants: +Here is an example diagram representing Alice's plants: ```text [window][window][window] diff --git a/exercises/practice/kindergarten-garden/.docs/introduction.md b/exercises/practice/kindergarten-garden/.docs/introduction.md new file mode 100644 index 0000000000..5ad97d23ec --- /dev/null +++ b/exercises/practice/kindergarten-garden/.docs/introduction.md @@ -0,0 +1,6 @@ +# Introduction + +The kindergarten class is learning about growing plants. +The teacher thought it would be a good idea to give the class seeds to plant and grow in the dirt. +To this end, the children have put little cups along the window sills and planted one type of plant in each cup. +The children got to pick their favorites from four available types of seeds: grass, clover, radishes, and violets. diff --git a/exercises/practice/kindergarten-garden/package.json b/exercises/practice/kindergarten-garden/package.json index 38bc615ccf..bcbd3b4e0f 100644 --- a/exercises/practice/kindergarten-garden/package.json +++ b/exercises/practice/kindergarten-garden/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/kindergarten-garden" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/knapsack/.docs/instructions.md b/exercises/practice/knapsack/.docs/instructions.md index fadcee1b18..3411db9886 100644 --- a/exercises/practice/knapsack/.docs/instructions.md +++ b/exercises/practice/knapsack/.docs/instructions.md @@ -1,24 +1,15 @@ # Instructions -In this exercise, let's try to solve a classic problem. +Your task is to determine which items to take so that the total value of his selection is maximized, taking into account the knapsack's carrying capacity. -Bob is a thief. -After months of careful planning, he finally manages to crack the security systems of a high-class apartment. - -In front of him are many items, each with a value (v) and weight (w). -Bob, of course, wants to maximize the total value he can get; he would gladly take all of the items if he could. -However, to his horror, he realizes that the knapsack he carries with him can only hold so much weight (W). - -Given a knapsack with a specific carrying capacity (W), help Bob determine the maximum value he can get from the items in the house. -Note that Bob can take only one of each item. - -All values given will be strictly positive. Items will be represented as a list of items. Each item will have a weight and value. +All values given will be strictly positive. +Bob can take only one of each item. For example: -```none +```text Items: [ { "weight": 5, "value": 10 }, { "weight": 4, "value": 40 }, @@ -26,10 +17,9 @@ Items: [ { "weight": 4, "value": 50 } ] -Knapsack Limit: 10 +Knapsack Maximum Weight: 10 ``` For the above, the first item has weight 5 and value 10, the second item has weight 4 and value 40, and so on. - In this example, Bob should take the second and fourth item to maximize his value, which, in this case, is 90. He cannot get more than 90 as his knapsack has a weight limit of 10. diff --git a/exercises/practice/knapsack/.docs/introduction.md b/exercises/practice/knapsack/.docs/introduction.md new file mode 100644 index 0000000000..9b2bed8b4e --- /dev/null +++ b/exercises/practice/knapsack/.docs/introduction.md @@ -0,0 +1,8 @@ +# Introduction + +Bob is a thief. +After months of careful planning, he finally manages to crack the security systems of a fancy store. + +In front of him are many items, each with a value and weight. +Bob would gladly take all of the items, but his knapsack can only hold so much weight. +Bob has to carefully consider which items to take so that the total value of his selection is maximized. diff --git a/exercises/practice/knapsack/package.json b/exercises/practice/knapsack/package.json index cbe9ea3269..9d9a3727ce 100644 --- a/exercises/practice/knapsack/package.json +++ b/exercises/practice/knapsack/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/knapsack" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/largest-series-product/package.json b/exercises/practice/largest-series-product/package.json index b992feacf1..88c9db89dc 100644 --- a/exercises/practice/largest-series-product/package.json +++ b/exercises/practice/largest-series-product/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/largest-series-product" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/leap/package.json b/exercises/practice/leap/package.json index f63abad43e..5305637d30 100644 --- a/exercises/practice/leap/package.json +++ b/exercises/practice/leap/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/leap" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/ledger/package.json b/exercises/practice/ledger/package.json index d4973dde6a..51305eb736 100644 --- a/exercises/practice/ledger/package.json +++ b/exercises/practice/ledger/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/ledger" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/linked-list/package.json b/exercises/practice/linked-list/package.json index 66b330e4f5..bc38954d91 100644 --- a/exercises/practice/linked-list/package.json +++ b/exercises/practice/linked-list/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/linked-list" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/list-ops/package.json b/exercises/practice/list-ops/package.json index 88e49028b4..58b0535bcb 100644 --- a/exercises/practice/list-ops/package.json +++ b/exercises/practice/list-ops/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/list-ops" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/luhn/package.json b/exercises/practice/luhn/package.json index 839427c2de..ae8dbcb3d7 100644 --- a/exercises/practice/luhn/package.json +++ b/exercises/practice/luhn/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/luhn" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/markdown/package.json b/exercises/practice/markdown/package.json index 8dba6c4a90..5695d9758b 100644 --- a/exercises/practice/markdown/package.json +++ b/exercises/practice/markdown/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/markdown" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/matching-brackets/package.json b/exercises/practice/matching-brackets/package.json index 037fafbf30..e5ff3b6b57 100644 --- a/exercises/practice/matching-brackets/package.json +++ b/exercises/practice/matching-brackets/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/matching-brackets" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/matrix/package.json b/exercises/practice/matrix/package.json index c613da1f55..50015066ef 100644 --- a/exercises/practice/matrix/package.json +++ b/exercises/practice/matrix/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/matrix" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/meetup/.docs/instructions.md b/exercises/practice/meetup/.docs/instructions.md index 0694ef583c..000de2fd12 100644 --- a/exercises/practice/meetup/.docs/instructions.md +++ b/exercises/practice/meetup/.docs/instructions.md @@ -1,11 +1,10 @@ # Instructions -Recurring monthly meetups are generally scheduled on the given weekday of a given week each month. -In this exercise you will be given the recurring schedule, along with a month and year, and then asked to find the exact date of the meetup. +Your task is to find the exact date of a meetup, given a month, year, weekday and week. -For example a meetup might be scheduled on the _first Monday_ of every month. -You might then be asked to find the date that this meetup will happen in January 2018. -In other words, you need to determine the date of the first Monday of January 2018. +There are five week values to consider: `first`, `second`, `third`, `fourth`, `last`, `teenth`. + +For example, you might be asked to find the date for the meetup on the first Monday in January 2018 (January 1, 2018). Similarly, you might be asked to find: @@ -13,29 +12,13 @@ Similarly, you might be asked to find: - the teenth Wednesday of May 2020 (May 13, 2020) - the fourth Sunday of July 2021 (July 25, 2021) - the last Thursday of November 2022 (November 24, 2022) +- the teenth Saturday of August 1953 (August 15, 1953) -The descriptors you are expected to process are: `first`, `second`, `third`, `fourth`, `last`, `teenth`. - -Note that descriptor `teenth` is a made-up word. - -It refers to the seven numbers that end in '-teen' in English: 13, 14, 15, 16, 17, 18, and 19. -But general descriptions of dates use ordinal numbers, e.g. the _first_ Monday, the _third_ Tuesday. - -For the numbers ending in '-teen', that becomes: - -- 13th (thirteenth) -- 14th (fourteenth) -- 15th (fifteenth) -- 16th (sixteenth) -- 17th (seventeenth) -- 18th (eighteenth) -- 19th (nineteenth) +## Teenth -So there are seven numbers ending in '-teen'. -And there are also seven weekdays (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday). -Therefore, it is guaranteed that each day of the week (Monday, Tuesday, ...) will have exactly one numbered day ending with "teen" each month. +The teenth week refers to the seven days in a month that end in '-teenth' (13th, 14th, 15th, 16th, 17th, 18th and 19th). -If asked to find the teenth Saturday of August, 1953 (or, alternately the "Saturteenth" of August, 1953), we need to look at the calendar for August 1953: +If asked to find the teenth Saturday of August, 1953, we check its calendar: ```plaintext August 1953 @@ -48,4 +31,4 @@ Su Mo Tu We Th Fr Sa 30 31 ``` -The Saturday that has a number ending in '-teen' is August 15, 1953. +From this we find that the teenth Saturday is August 15, 1953. diff --git a/exercises/practice/meetup/.docs/introduction.md b/exercises/practice/meetup/.docs/introduction.md new file mode 100644 index 0000000000..29170ef1fd --- /dev/null +++ b/exercises/practice/meetup/.docs/introduction.md @@ -0,0 +1,29 @@ +# Introduction + +Every month, your partner meets up with their best friend. +Both of them have very busy schedules, making it challenging to find a suitable date! +Given your own busy schedule, your partner always double-checks potential meetup dates with you: + +- "Can I meet up on the first Friday of next month?" +- "What about the third Wednesday?" +- "Maybe the last Sunday?" + +In this month's call, your partner asked you this question: + +- "I'd like to meet up on the teenth Thursday; is that okay?" + +Confused, you ask what a "teenth" day is. +Your partner explains that a teenth day, a concept they made up, refers to the days in a month that end in '-teenth': + +- 13th (thirteenth) +- 14th (fourteenth) +- 15th (fifteenth) +- 16th (sixteenth) +- 17th (seventeenth) +- 18th (eighteenth) +- 19th (nineteenth) + +As there are also seven weekdays, it is guaranteed that each day of the week has _exactly one_ teenth day each month. + +Now that you understand the concept of a teenth day, you check your calendar. +You don't have anything planned on the teenth Thursday, so you happily confirm the date with your partner. diff --git a/exercises/practice/meetup/.meta/config.json b/exercises/practice/meetup/.meta/config.json index 456c39b95b..ad9b0a5cbd 100644 --- a/exercises/practice/meetup/.meta/config.json +++ b/exercises/practice/meetup/.meta/config.json @@ -23,7 +23,6 @@ }, "blurb": "Calculate the date of meetups.", "source": "Jeremy Hinegardner mentioned a Boulder meetup that happens on the Wednesteenth of every month", - "source_url": "http://www.copiousfreetime.org/", "custom": { "version.tests.compatibility": "jest-27", "flag.tests.task-per-describe": false, diff --git a/exercises/practice/meetup/package.json b/exercises/practice/meetup/package.json index dfac89277a..3a5cee531d 100644 --- a/exercises/practice/meetup/package.json +++ b/exercises/practice/meetup/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/meetup" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/micro-blog/package.json b/exercises/practice/micro-blog/package.json index b30f8d2317..12ab046c3b 100644 --- a/exercises/practice/micro-blog/package.json +++ b/exercises/practice/micro-blog/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/micro-blog" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/minesweeper/package.json b/exercises/practice/minesweeper/package.json index abf9207d8a..03dc959b68 100644 --- a/exercises/practice/minesweeper/package.json +++ b/exercises/practice/minesweeper/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/minesweeper" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/nth-prime/package.json b/exercises/practice/nth-prime/package.json index 2dbeed10f5..9f0fe1a019 100644 --- a/exercises/practice/nth-prime/package.json +++ b/exercises/practice/nth-prime/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/nth-prime" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/nucleotide-count/package.json b/exercises/practice/nucleotide-count/package.json index a46888353d..963ad0b344 100644 --- a/exercises/practice/nucleotide-count/package.json +++ b/exercises/practice/nucleotide-count/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/nucleotide-count" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/ocr-numbers/package.json b/exercises/practice/ocr-numbers/package.json index 62a59e273e..2f47b7def6 100644 --- a/exercises/practice/ocr-numbers/package.json +++ b/exercises/practice/ocr-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/ocr-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/octal/package.json b/exercises/practice/octal/package.json index 5e49280a8f..b73fffb867 100644 --- a/exercises/practice/octal/package.json +++ b/exercises/practice/octal/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/octal" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/palindrome-products/package.json b/exercises/practice/palindrome-products/package.json index dfb269e5f9..0f7fdeacb1 100644 --- a/exercises/practice/palindrome-products/package.json +++ b/exercises/practice/palindrome-products/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/palindrome-products" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/pangram/package.json b/exercises/practice/pangram/package.json index 0bcf9fb190..7da510b620 100644 --- a/exercises/practice/pangram/package.json +++ b/exercises/practice/pangram/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/pangram" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/parallel-letter-frequency/package.json b/exercises/practice/parallel-letter-frequency/package.json index 415fb06ef6..156f3086ef 100644 --- a/exercises/practice/parallel-letter-frequency/package.json +++ b/exercises/practice/parallel-letter-frequency/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/parallel-letter-frequency" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/pascals-triangle/package.json b/exercises/practice/pascals-triangle/package.json index 38ed2703e4..b660eec283 100644 --- a/exercises/practice/pascals-triangle/package.json +++ b/exercises/practice/pascals-triangle/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/pascals-triangle" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/perfect-numbers/package.json b/exercises/practice/perfect-numbers/package.json index b74b652c5c..efaeef95ff 100644 --- a/exercises/practice/perfect-numbers/package.json +++ b/exercises/practice/perfect-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/perfect-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/phone-number/package.json b/exercises/practice/phone-number/package.json index 0ec7682151..a9c03e26e0 100644 --- a/exercises/practice/phone-number/package.json +++ b/exercises/practice/phone-number/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/phone-number" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/pig-latin/.docs/instructions.md b/exercises/practice/pig-latin/.docs/instructions.md index 032905aa9b..6c843080d4 100644 --- a/exercises/practice/pig-latin/.docs/instructions.md +++ b/exercises/practice/pig-latin/.docs/instructions.md @@ -1,20 +1,46 @@ # Instructions -Implement a program that translates from English to Pig Latin. +Your task is to translate text from English to Pig Latin. +The translation is defined using four rules, which look at the pattern of vowels and consonants at the beginning of a word. +These rules look at each word's use of vowels and consonants: -Pig Latin is a made-up children's language that's intended to be confusing. -It obeys a few simple rules (below), but when it's spoken quickly it's really difficult for non-children (and non-native speakers) to understand. +- vowels: the letters `a`, `e`, `i`, `o`, and `u` +- consonants: the other 21 letters of the English alphabet -- **Rule 1**: If a word begins with a vowel sound, add an "ay" sound to the end of the word. - Please note that "xr" and "yt" at the beginning of a word make vowel sounds (e.g. "xray" -> "xrayay", "yttria" -> "yttriaay"). -- **Rule 2**: If a word begins with a consonant sound, move it to the end of the word and then add an "ay" sound to the end of the word. - Consonant sounds can be made up of multiple consonants, such as the "ch" in "chair" or "st" in "stand" (e.g. "chair" -> "airchay"). -- **Rule 3**: If a word starts with a consonant sound followed by "qu", move it to the end of the word, and then add an "ay" sound to the end of the word (e.g. "square" -> "aresquay"). -- **Rule 4**: If a word contains a "y" after a consonant cluster or as the second letter in a two letter word it makes a vowel sound (e.g. "rhythm" -> "ythmrhay", "my" -> "ymay"). +## Rule 1 -There are a few more rules for edge cases, and there are regional variants too. -Check the tests for all the details. +If a word begins with a vowel, or starts with `"xr"` or `"yt"`, add an `"ay"` sound to the end of the word. -Read more about [Pig Latin on Wikipedia][pig-latin]. +For example: -[pig-latin]: https://en.wikipedia.org/wiki/Pig_latin +- `"apple"` -> `"appleay"` (starts with vowel) +- `"xray"` -> `"xrayay"` (starts with `"xr"`) +- `"yttria"` -> `"yttriaay"` (starts with `"yt"`) + +## Rule 2 + +If a word begins with a one or more consonants, first move those consonants to the end of the word and then add an `"ay"` sound to the end of the word. + +For example: + +- `"pig"` -> `"igp"` -> `"igpay"` (starts with single consonant) +- `"chair"` -> `"airch"` -> `"airchay"` (starts with multiple consonants) +- `"thrush"` -> `"ushthr"` -> `"ushthray"` (starts with multiple consonants) + +## Rule 3 + +If a word starts with zero or more consonants followed by `"qu"`, first move those consonants (if any) and the `"qu"` part to the end of the word, and then add an `"ay"` sound to the end of the word. + +For example: + +- `"quick"` -> `"ickqu"` -> `"ay"` (starts with `"qu"`, no preceding consonants) +- `"square"` -> `"aresqu"` -> `"aresquay"` (starts with one consonant followed by `"qu`") + +## Rule 4 + +If a word starts with one or more consonants followed by `"y"`, first move the consonants preceding the `"y"`to the end of the word, and then add an `"ay"` sound to the end of the word. + +Some examples: + +- `"my"` -> `"ym"` -> `"ymay"` (starts with single consonant followed by `"y"`) +- `"rhythm"` -> `"ythmrh"` -> `"ythmrhay"` (starts with multiple consonants followed by `"y"`) diff --git a/exercises/practice/pig-latin/.docs/introduction.md b/exercises/practice/pig-latin/.docs/introduction.md new file mode 100644 index 0000000000..04baa47586 --- /dev/null +++ b/exercises/practice/pig-latin/.docs/introduction.md @@ -0,0 +1,8 @@ +# Introduction + +Your parents have challenged you and your sibling to a game of two-on-two basketball. +Confident they'll win, they let you score the first couple of points, but then start taking over the game. +Needing a little boost, you start speaking in [Pig Latin][pig-latin], which is a made-up children's language that's difficult for non-children to understand. +This will give you the edge to prevail over your parents! + +[pig-latin]: https://en.wikipedia.org/wiki/Pig_latin diff --git a/exercises/practice/pig-latin/package.json b/exercises/practice/pig-latin/package.json index 09231b3941..20dceb6f48 100644 --- a/exercises/practice/pig-latin/package.json +++ b/exercises/practice/pig-latin/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/pig-latin" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/point-mutations/package.json b/exercises/practice/point-mutations/package.json index 6dbc25aad6..013211ab13 100644 --- a/exercises/practice/point-mutations/package.json +++ b/exercises/practice/point-mutations/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/point-mutations" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/poker/package.json b/exercises/practice/poker/package.json index 9757ef4f85..02246c4e1b 100644 --- a/exercises/practice/poker/package.json +++ b/exercises/practice/poker/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/poker" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/prime-factors/package.json b/exercises/practice/prime-factors/package.json index 7f3cd5460f..914eed7f5c 100644 --- a/exercises/practice/prime-factors/package.json +++ b/exercises/practice/prime-factors/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/prime-factors" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/promises/package.json b/exercises/practice/promises/package.json index c5844acb7c..424b32cf66 100644 --- a/exercises/practice/promises/package.json +++ b/exercises/practice/promises/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/promises" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/protein-translation/package.json b/exercises/practice/protein-translation/package.json index 01470cdc7e..3543391802 100644 --- a/exercises/practice/protein-translation/package.json +++ b/exercises/practice/protein-translation/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/protein-translation" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/proverb/package.json b/exercises/practice/proverb/package.json index b5f7fa0a02..b65057c2c2 100644 --- a/exercises/practice/proverb/package.json +++ b/exercises/practice/proverb/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/proverb" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/pythagorean-triplet/package.json b/exercises/practice/pythagorean-triplet/package.json index a4f99d244f..169dbe65c9 100644 --- a/exercises/practice/pythagorean-triplet/package.json +++ b/exercises/practice/pythagorean-triplet/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/pythagorean-triplet" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/queen-attack/package.json b/exercises/practice/queen-attack/package.json index cce37e462e..a404f4051a 100644 --- a/exercises/practice/queen-attack/package.json +++ b/exercises/practice/queen-attack/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/queen-attack" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rail-fence-cipher/package.json b/exercises/practice/rail-fence-cipher/package.json index 83f3b34aca..c9ca80939b 100644 --- a/exercises/practice/rail-fence-cipher/package.json +++ b/exercises/practice/rail-fence-cipher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rail-fence-cipher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/raindrops/package.json b/exercises/practice/raindrops/package.json index e1eaba293b..ab0d887539 100644 --- a/exercises/practice/raindrops/package.json +++ b/exercises/practice/raindrops/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/raindrops" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rational-numbers/package.json b/exercises/practice/rational-numbers/package.json index e40fff52ad..2e9551108e 100644 --- a/exercises/practice/rational-numbers/package.json +++ b/exercises/practice/rational-numbers/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rational-numbers" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/react/package.json b/exercises/practice/react/package.json index 46b57978bc..d949dfc157 100644 --- a/exercises/practice/react/package.json +++ b/exercises/practice/react/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/react" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rectangles/package.json b/exercises/practice/rectangles/package.json index dcfdbbe9a9..78450d25b2 100644 --- a/exercises/practice/rectangles/package.json +++ b/exercises/practice/rectangles/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rectangles" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/resistor-color-duo/package.json b/exercises/practice/resistor-color-duo/package.json index 9ff2b3efd9..bc7873cd8c 100644 --- a/exercises/practice/resistor-color-duo/package.json +++ b/exercises/practice/resistor-color-duo/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/resistor-color-duo" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/resistor-color-trio/package.json b/exercises/practice/resistor-color-trio/package.json index 7d754c8d89..0b4e487b81 100644 --- a/exercises/practice/resistor-color-trio/package.json +++ b/exercises/practice/resistor-color-trio/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/resistor-color-trio" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/resistor-color/package.json b/exercises/practice/resistor-color/package.json index 6219db8c07..2d0708f22b 100644 --- a/exercises/practice/resistor-color/package.json +++ b/exercises/practice/resistor-color/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/resistor-color" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rest-api/package.json b/exercises/practice/rest-api/package.json index f79193c863..7bf5510f2a 100644 --- a/exercises/practice/rest-api/package.json +++ b/exercises/practice/rest-api/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rest-api" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/reverse-string/package.json b/exercises/practice/reverse-string/package.json index 4456929b32..d0e4525fb1 100644 --- a/exercises/practice/reverse-string/package.json +++ b/exercises/practice/reverse-string/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/reverse-string" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rna-transcription/package.json b/exercises/practice/rna-transcription/package.json index f4e827ce7a..5d8b1e9aaa 100644 --- a/exercises/practice/rna-transcription/package.json +++ b/exercises/practice/rna-transcription/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rna-transcription" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/robot-name/package.json b/exercises/practice/robot-name/package.json index 9e023ec5cc..4d02def53d 100644 --- a/exercises/practice/robot-name/package.json +++ b/exercises/practice/robot-name/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/robot-name" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/robot-simulator/package.json b/exercises/practice/robot-simulator/package.json index 43ffa2568a..0f41d20809 100644 --- a/exercises/practice/robot-simulator/package.json +++ b/exercises/practice/robot-simulator/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/robot-simulator" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/roman-numerals/package.json b/exercises/practice/roman-numerals/package.json index a0b47ce950..6860cafe6e 100644 --- a/exercises/practice/roman-numerals/package.json +++ b/exercises/practice/roman-numerals/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/roman-numerals" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/rotational-cipher/package.json b/exercises/practice/rotational-cipher/package.json index aa44f3cb33..cb02112b9a 100644 --- a/exercises/practice/rotational-cipher/package.json +++ b/exercises/practice/rotational-cipher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/rotational-cipher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/run-length-encoding/package.json b/exercises/practice/run-length-encoding/package.json index 07fbe4be97..51e1964cb8 100644 --- a/exercises/practice/run-length-encoding/package.json +++ b/exercises/practice/run-length-encoding/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/run-length-encoding" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/saddle-points/package.json b/exercises/practice/saddle-points/package.json index ad028de682..d5386b0097 100644 --- a/exercises/practice/saddle-points/package.json +++ b/exercises/practice/saddle-points/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/saddle-points" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/satellite/package.json b/exercises/practice/satellite/package.json index 151fc63333..8d48cfea28 100644 --- a/exercises/practice/satellite/package.json +++ b/exercises/practice/satellite/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/satellite" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/say/package.json b/exercises/practice/say/package.json index feb8a246d9..b1ef445cd7 100644 --- a/exercises/practice/say/package.json +++ b/exercises/practice/say/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/say" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/scale-generator/package.json b/exercises/practice/scale-generator/package.json index ac9a164b73..03a94243c7 100644 --- a/exercises/practice/scale-generator/package.json +++ b/exercises/practice/scale-generator/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/scale-generator" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/scrabble-score/package.json b/exercises/practice/scrabble-score/package.json index fbd2fccdad..cea827dfde 100644 --- a/exercises/practice/scrabble-score/package.json +++ b/exercises/practice/scrabble-score/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/scrabble-score" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/secret-handshake/package.json b/exercises/practice/secret-handshake/package.json index 5fca4d977c..d7cf4cd355 100644 --- a/exercises/practice/secret-handshake/package.json +++ b/exercises/practice/secret-handshake/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/secret-handshake" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/series/package.json b/exercises/practice/series/package.json index 0eb29d94b6..11f5f2b869 100644 --- a/exercises/practice/series/package.json +++ b/exercises/practice/series/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/series" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/sieve/package.json b/exercises/practice/sieve/package.json index f3b668a7d0..365a0f413a 100644 --- a/exercises/practice/sieve/package.json +++ b/exercises/practice/sieve/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/sieve" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/simple-cipher/package.json b/exercises/practice/simple-cipher/package.json index 7ba3bfad6a..8cc748cc45 100644 --- a/exercises/practice/simple-cipher/package.json +++ b/exercises/practice/simple-cipher/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/simple-cipher" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/simple-linked-list/package.json b/exercises/practice/simple-linked-list/package.json index 9f75b01918..ddffeeebd0 100644 --- a/exercises/practice/simple-linked-list/package.json +++ b/exercises/practice/simple-linked-list/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/simple-linked-list" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/space-age/package.json b/exercises/practice/space-age/package.json index ca4ef6297c..a7f3f9124a 100644 --- a/exercises/practice/space-age/package.json +++ b/exercises/practice/space-age/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/space-age" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/spiral-matrix/.docs/instructions.md b/exercises/practice/spiral-matrix/.docs/instructions.md index ba99e12c73..01e8a77f80 100644 --- a/exercises/practice/spiral-matrix/.docs/instructions.md +++ b/exercises/practice/spiral-matrix/.docs/instructions.md @@ -1,6 +1,6 @@ # Instructions -Given the size, return a square matrix of numbers in spiral order. +Your task is to return a square matrix of a given size. The matrix should be filled with natural numbers, starting from 1 in the top-left corner, increasing in an inward, clockwise spiral order, like these examples: diff --git a/exercises/practice/spiral-matrix/.docs/introduction.md b/exercises/practice/spiral-matrix/.docs/introduction.md new file mode 100644 index 0000000000..25c7eb595a --- /dev/null +++ b/exercises/practice/spiral-matrix/.docs/introduction.md @@ -0,0 +1,11 @@ +# Introduction + +In a small village near an ancient forest, there was a legend of a hidden treasure buried deep within the woods. +Despite numerous attempts, no one had ever succeeded in finding it. +This was about to change, however, thanks to a young explorer named Elara. +She had discovered an old document containing instructions on how to locate the treasure. +Using these instructions, Elara was able to draw a map that revealed the path to the treasure. + +To her surprise, the path followed a peculiar clockwise spiral. +It was no wonder no one had been able to find the treasure before! +With the map in hand, Elara embarks on her journey to uncover the hidden treasure. diff --git a/exercises/practice/spiral-matrix/package.json b/exercises/practice/spiral-matrix/package.json index 87167ac659..9d2ef2c039 100644 --- a/exercises/practice/spiral-matrix/package.json +++ b/exercises/practice/spiral-matrix/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/spiral-matrix" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/square-root/package.json b/exercises/practice/square-root/package.json index fbc409dda4..3eb0efda06 100644 --- a/exercises/practice/square-root/package.json +++ b/exercises/practice/square-root/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/square-root" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/state-of-tic-tac-toe/package.json b/exercises/practice/state-of-tic-tac-toe/package.json index 8e3f4468fa..820e7b88fd 100644 --- a/exercises/practice/state-of-tic-tac-toe/package.json +++ b/exercises/practice/state-of-tic-tac-toe/package.json @@ -15,13 +15,13 @@ "directory": "exercises/practice/state-of-tic-tac-toe" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", - "@types/jest": "^29.5.4", - "@types/node": "^20.5.6", + "@types/jest": "^29.5.12", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.32.2", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/strain/package.json b/exercises/practice/strain/package.json index 2172d45746..83332daeaf 100644 --- a/exercises/practice/strain/package.json +++ b/exercises/practice/strain/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/strain" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/sublist/package.json b/exercises/practice/sublist/package.json index f4c268d9b3..57640ca484 100644 --- a/exercises/practice/sublist/package.json +++ b/exercises/practice/sublist/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/sublist" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/sum-of-multiples/package.json b/exercises/practice/sum-of-multiples/package.json index 9d8e242a56..3407eff025 100644 --- a/exercises/practice/sum-of-multiples/package.json +++ b/exercises/practice/sum-of-multiples/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/sum-of-multiples" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/tournament/package.json b/exercises/practice/tournament/package.json index b78b219618..c4449543f0 100644 --- a/exercises/practice/tournament/package.json +++ b/exercises/practice/tournament/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/tournament" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/transpose/package.json b/exercises/practice/transpose/package.json index e450ae3182..f383bf08cd 100644 --- a/exercises/practice/transpose/package.json +++ b/exercises/practice/transpose/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/transpose" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/triangle/package.json b/exercises/practice/triangle/package.json index 1aad1d6f46..de73764481 100644 --- a/exercises/practice/triangle/package.json +++ b/exercises/practice/triangle/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/triangle" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/trinary/package.json b/exercises/practice/trinary/package.json index fa8fa7c3a4..5418756471 100644 --- a/exercises/practice/trinary/package.json +++ b/exercises/practice/trinary/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/trinary" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/twelve-days/package.json b/exercises/practice/twelve-days/package.json index 9499531718..0936d1ed2e 100644 --- a/exercises/practice/twelve-days/package.json +++ b/exercises/practice/twelve-days/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/twelve-days" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/two-bucket/package.json b/exercises/practice/two-bucket/package.json index 73afd6b4b6..e06a752810 100644 --- a/exercises/practice/two-bucket/package.json +++ b/exercises/practice/two-bucket/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/two-bucket" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/two-fer/package.json b/exercises/practice/two-fer/package.json index 2c0e6b58f0..cab4be1ff8 100644 --- a/exercises/practice/two-fer/package.json +++ b/exercises/practice/two-fer/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/two-fer" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/variable-length-quantity/package.json b/exercises/practice/variable-length-quantity/package.json index 3883aa4dac..966c08d8ab 100644 --- a/exercises/practice/variable-length-quantity/package.json +++ b/exercises/practice/variable-length-quantity/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/variable-length-quantity" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/word-count/package.json b/exercises/practice/word-count/package.json index fbbe2cb075..402230e79f 100644 --- a/exercises/practice/word-count/package.json +++ b/exercises/practice/word-count/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/word-count" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/word-search/package.json b/exercises/practice/word-search/package.json index a9541efebc..7597b3e768 100644 --- a/exercises/practice/word-search/package.json +++ b/exercises/practice/word-search/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/word-search" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/wordy/package.json b/exercises/practice/wordy/package.json index b79aa0e9a3..815457c4af 100644 --- a/exercises/practice/wordy/package.json +++ b/exercises/practice/wordy/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/wordy" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/yacht/package.json b/exercises/practice/yacht/package.json index a438b2782d..405ef2a363 100644 --- a/exercises/practice/yacht/package.json +++ b/exercises/practice/yacht/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/yacht" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/zebra-puzzle/package.json b/exercises/practice/zebra-puzzle/package.json index e70fefda37..e88f1e47b0 100644 --- a/exercises/practice/zebra-puzzle/package.json +++ b/exercises/practice/zebra-puzzle/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/zebra-puzzle" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/exercises/practice/zipper/package.json b/exercises/practice/zipper/package.json index 9e2449a98b..a32dd0aa3d 100644 --- a/exercises/practice/zipper/package.json +++ b/exercises/practice/zipper/package.json @@ -10,13 +10,13 @@ "directory": "exercises/practice/zipper" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.8", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "eslint": "^8.49.0", "jest": "^29.7.0" }, diff --git a/package-lock.json b/package-lock.json index 222cf0f9a0..09fe17a830 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,14 +7,14 @@ "name": "@exercism/javascript", "license": "MIT", "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.10", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", "chalk": "^4.1.2", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "diff": "^5.2.0", "eslint": "^8.49.0", "jest": "^29.7.0", @@ -58,12 +58,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" }, "engines": { @@ -71,30 +71,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -150,12 +150,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.24.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -190,13 +190,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -275,9 +275,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -296,25 +296,25 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -333,28 +333,28 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -419,12 +419,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -443,39 +443,39 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -497,26 +497,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -605,9 +604,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1789,33 +1788,33 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1824,13 +1823,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2563,9 +2562,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3167,9 +3166,9 @@ } }, "node_modules/core-js": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", - "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true, "hasInstallScript": true, "funding": { @@ -7094,37 +7093,37 @@ } }, "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "requires": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true }, "@babel/core": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz", + "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helpers": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/traverse": "^7.24.6", + "@babel/types": "^7.24.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7161,12 +7160,12 @@ } }, "@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", + "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", "dev": true, "requires": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.24.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -7192,13 +7191,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -7261,9 +7260,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true }, "@babel/helper-explode-assignable-expression": { @@ -7276,22 +7275,22 @@ } }, "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-member-expression-to-functions": { @@ -7304,25 +7303,25 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "requires": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" } }, "@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" } }, "@babel/helper-optimise-call-expression": { @@ -7366,12 +7365,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "requires": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -7384,30 +7383,30 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "requires": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true }, "@babel/helper-wrap-function": { @@ -7423,23 +7422,22 @@ } }, "@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz", + "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==", "dev": true, "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -7503,9 +7501,9 @@ } }, "@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -8294,42 +8292,42 @@ } }, "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", + "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.6", + "@babel/generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6", "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" } }, @@ -8923,9 +8921,9 @@ "dev": true }, "@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "requires": { "undici-types": "~5.26.4" @@ -9374,9 +9372,9 @@ } }, "core-js": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", - "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true }, "core-js-compat": { diff --git a/package.json b/package.json index 0fb61e0c47..9683b52617 100644 --- a/package.json +++ b/package.json @@ -13,14 +13,14 @@ "url": "https://github.com/exercism/javascript" }, "devDependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@exercism/babel-preset-javascript": "^0.2.1", "@exercism/eslint-config-javascript": "^0.6.0", "@types/jest": "^29.5.12", - "@types/node": "^20.12.10", + "@types/node": "^20.12.12", "babel-jest": "^29.6.4", "chalk": "^4.1.2", - "core-js": "~3.37.0", + "core-js": "~3.37.1", "diff": "^5.2.0", "eslint": "^8.49.0", "jest": "^29.7.0",