3 Commits 04c3039651 ... 051ac21591

Author SHA1 Message Date
  Frederic G. MARAND 051ac21591 Basic dependencies update. 2 months ago
  Frédéric G. MARAND 04c3039651 Practice: two-fer. 2 months ago
  Frédéric G. MARAND 05e4ac36bc Practice: leap. 2 months ago

+ 1 - 2
.gitignore

@@ -2,6 +2,5 @@
 /vendor
 *.cache
 node_modules
-package-lock.json
 yarn-error.log
-.yarnrc.yml
+package-lock.json

+ 0 - 13
leap/.eslintignore

@@ -1,13 +0,0 @@
-!.meta
-
-# Protected or generated
-.git
-.vscode
-
-# When using npm
-node_modules/*
-
-# Configuration files
-.eslintrc.cjs
-babel.config.cjs
-jest.config.cjs

+ 0 - 38
leap/.eslintrc.cjs

@@ -1,38 +0,0 @@
-module.exports = {
-  root: true,
-  parserOptions: {
-    tsconfigRootDir: __dirname,
-    project: ['./tsconfig.json'],
-  },
-  overrides: [
-    // Student provided files
-    {
-      files: ['*.ts'],
-      excludedFiles: ['.meta/proof.ci.ts', '.meta/exemplar.ts', '*.test.ts'],
-      extends: '@exercism/eslint-config-typescript',
-    },
-    // Exercism given tests
-    {
-      files: ['*.test.ts'],
-      excludedFiles: ['custom.test.ts'],
-      env: {
-        jest: true,
-      },
-      extends: '@exercism/eslint-config-typescript/maintainers',
-    },
-    // Student provided tests
-    {
-      files: ['custom.test.ts'],
-      env: {
-        jest: true,
-      },
-      extends: '@exercism/eslint-config-typescript',
-    },
-    // Exercism provided files
-    {
-      files: ['.meta/proof.ci.ts', '.meta/exemplar.ts', '*.test.ts'],
-      excludedFiles: ['custom.test.ts'],
-      extends: '@exercism/eslint-config-typescript/maintainers',
-    },
-  ],
-}

+ 0 - 24
leap/.exercism/config.json

@@ -1,24 +0,0 @@
-{
-  "authors": [
-    "masters3d"
-  ],
-  "contributors": [
-    "DFXLuna",
-    "lukaszklis",
-    "SleeplessByte"
-  ],
-  "files": {
-    "solution": [
-      "leap.ts"
-    ],
-    "test": [
-      "leap.test.ts"
-    ],
-    "example": [
-      ".meta/proof.ci.ts"
-    ]
-  },
-  "blurb": "Determine whether a given year is a leap year.",
-  "source": "CodeRanch Cattle Drive, Assignment 3",
-  "source_url": "https://coderanch.com/t/718816/Leap"
-}

+ 0 - 1
leap/.exercism/metadata.json

@@ -1 +0,0 @@
-{"track":"typescript","exercise":"leap","id":"5122074728a34a0e99bc5bfc0e0e95e5","url":"https://exercism.org/tracks/typescript/exercises/leap","handle":"Fairgame","is_requester":true,"auto_approve":false}

File diff suppressed because it is too large
+ 0 - 3
leap/.yarn/releases/yarn-3.6.4.cjs


+ 0 - 1
leap/.yarnrc.yml

@@ -1 +0,0 @@
-yarnPath: .yarn/releases/yarn-3.6.4.cjs

+ 0 - 45
leap/HELP.md

@@ -1,45 +0,0 @@
-# Help
-
-## Running the tests
-
-Execute the tests with:
-
-```bash
-$ yarn test
-```
-
-## Skipped tests
-
-In the test suites all tests but the first have been skipped.
-
-Once you get a test passing, you can enable the next one by changing `xit` to
-`it`.
-
-## Submitting your solution
-
-You can submit your solution using the `exercism submit leap.ts` command.
-This command will upload your solution to the Exercism website and print the solution page's URL.
-
-It's possible to submit an incomplete solution which allows you to:
-
-- See how others have completed the exercise
-- Request help from a mentor
-
-## Need to get help?
-
-If you'd like help solving the exercise, check the following pages:
-
-- The [TypeScript track's documentation](https://exercism.org/docs/tracks/typescript)
-- The [TypeScript track's programming category on the forum](https://forum.exercism.org/c/programming/typescript)
-- [Exercism's programming category on the forum](https://forum.exercism.org/c/programming/5)
-- The [Frequently Asked Questions](https://exercism.org/docs/using/faqs)
-
-Should those resources not suffice, you could submit your (incomplete) solution to request mentoring.
-
-To get help if you're having trouble, you can use one of the following resources:
-
-- [TypeScript QuickStart](https://www.typescriptlang.org/docs/handbook/release-notes/overview.html)
-- [ECMAScript 2015 Language Specification](https://www.ecma-international.org/wp-content/uploads/ECMA-262_6th_edition_june_2015.pdf) (pdf)
-- [Mozilla JavaScript Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference)
-- [/r/typescript](https://www.reddit.com/r/typescript) is the TypeScript subreddit.
-- [StackOverflow](https://stackoverflow.com/questions/tagged/typescript) can be used to search for your problem and see if it has been answered already. You can also ask and answer questions.

+ 0 - 41
leap/README.md

@@ -1,41 +0,0 @@
-# Leap
-
-Welcome to Leap on Exercism's TypeScript Track.
-If you need help running the tests or submitting your code, check out `HELP.md`.
-
-## Introduction
-
-A leap year (in the Gregorian calendar) occurs:
-
-- In every year that is evenly divisible by 4.
-- Unless the year is evenly divisible by 100, in which case it's only a leap year if the year is also evenly divisible by 400.
-
-Some examples:
-
-- 1997 was not a leap year as it's not divisible by 4.
-- 1900 was not a leap year as it's not divisible by 400.
-- 2000 was a leap year!
-
-~~~~exercism/note
-For a delightful, four-minute explanation of the whole phenomenon of leap years, check out [this YouTube video](https://www.youtube.com/watch?v=xX96xng7sAE).
-~~~~
-
-## Instructions
-
-Your task is to determine whether a given year is a leap year.
-
-## Source
-
-### Created by
-
-- @masters3d
-
-### Contributed to by
-
-- @DFXLuna
-- @lukaszklis
-- @SleeplessByte
-
-### Based on
-
-CodeRanch Cattle Drive, Assignment 3 - https://coderanch.com/t/718816/Leap

+ 0 - 4
leap/babel.config.cjs

@@ -1,4 +0,0 @@
-module.exports = {
-  presets: ['@exercism/babel-preset-typescript'],
-  plugins: [],
-}

+ 0 - 19
leap/jest.config.cjs

@@ -1,19 +0,0 @@
-module.exports = {
-  verbose: true,
-  projects: ['<rootDir>'],
-  testMatch: [
-    '**/__tests__/**/*.[jt]s?(x)',
-    '**/test/**/*.[jt]s?(x)',
-    '**/?(*.)+(spec|test).[jt]s?(x)',
-  ],
-  testPathIgnorePatterns: [
-    '/(?:production_)?node_modules/',
-    '.d.ts$',
-    '<rootDir>/test/fixtures',
-    '<rootDir>/test/helpers',
-    '__mocks__',
-  ],
-  transform: {
-    '^.+\\.[jt]sx?$': 'babel-jest',
-  },
-}

+ 0 - 41
leap/leap.test.ts

@@ -1,41 +0,0 @@
-import { isLeap } from './leap'
-
-// eslint-disable-next-line no-global-assign
-xit = it
-describe('A leap year', () => {
-  it('year not divisible by 4 in common year', () => {
-    expect(isLeap(2015)).toBe(false)
-  })
-
-  xit('year divisible by 2, not divisible by 4 in common year', () => {
-    expect(isLeap(1970)).toBe(false)
-  })
-
-  xit('year divisible by 4, not divisible by 100 in leap year', () => {
-    expect(isLeap(1996)).toBe(true)
-  })
-
-  xit('year divisible by 4 and 5 is still a leap year', () => {
-    expect(isLeap(1960)).toBe(true)
-  })
-
-  xit('year divisible by 100, not divisible by 400 in common year', () => {
-    expect(isLeap(2100)).toBe(false)
-  })
-
-  xit('year divisible by 100 but not by 3 is still not a leap year', () => {
-    expect(isLeap(1900)).toBe(false)
-  })
-
-  xit('year divisible by 400 in leap year', () => {
-    expect(isLeap(2000)).toBe(true)
-  })
-
-  xit('year divisible by 400 but not by 125 is still a leap year', () => {
-    expect(isLeap(2400)).toBe(true)
-  })
-
-  xit('year divisible by 200, not divisible by 400 in common year', () => {
-    expect(isLeap(1800)).toBe(false)
-  })
-})

+ 0 - 12
leap/leap.ts

@@ -1,12 +0,0 @@
-export function isLeap(year: number): boolean {
-  if (year % 4 !== 0) {
-    return false;
-  }
-  if (year%400 === 0) {
-    return true;
-  }
-  if (year% 100 === 0) {
-    return false;
-  }
-  return true;
-}

+ 0 - 32
leap/package.json

@@ -1,32 +0,0 @@
-{
-  "name": "@exercism/typescript-leap",
-  "version": "1.0.0",
-  "description": "Exercism exercises in Typescript.",
-  "private": true,
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/exercism/typescript"
-  },
-  "type": "module",
-  "engines": {
-    "node": "^18.16.0 || >=20.0.0"
-  },
-  "devDependencies": {
-    "@exercism/babel-preset-typescript": "^0.4.0",
-    "@exercism/eslint-config-typescript": "^0.5.0",
-    "@types/jest": "^29.5.2",
-    "@types/node": "~18.16.16",
-    "babel-jest": "^29.5.0",
-    "core-js": "~3.30.2",
-    "eslint": "^8.42.0",
-    "jest": "^29.5.0",
-    "typescript": "~5.0.4"
-  },
-  "scripts": {
-    "test": "yarn lint:types && jest --no-cache",
-    "lint": "yarn lint:types && yarn lint:ci",
-    "lint:types": "yarn tsc --noEmit -p .",
-    "lint:ci": "eslint . --ext .tsx,.ts"
-  },
-  "packageManager": "yarn@3.6.4"
-}

+ 0 - 28
leap/tsconfig.json

@@ -1,28 +0,0 @@
-{
-  "display": "Configuration for Exercism TypeScript Exercises",
-  "compilerOptions": {
-    // Allows you to use the newest syntax, and have access to console.log
-    // https://www.typescriptlang.org/tsconfig#lib
-    "lib": ["ESNEXT", "dom"],
-    // Make sure typescript is configured to output ESM
-    // https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#how-can-i-make-my-typescript-project-output-esm
-    "module": "ES2020",
-    // Since this project is using babel, TypeScript may target something very
-    // high, and babel will make sure it runs on your local Node version.
-    // https://babeljs.io/docs/en/
-    "target": "ESNext", // ESLint doesn't support this yet: "es2022",
-
-    "strict": true,
-    "esModuleInterop": true,
-    "skipLibCheck": true,
-    "forceConsistentCasingInFileNames": true,
-
-    // Because we'll be using babel: ensure that Babel can safely transpile
-    // files in the TypeScript project.
-    //
-    // https://babeljs.io/docs/en/babel-plugin-transform-typescript/#caveats
-    "isolatedModules": true
-  },
-  "include": ["*.ts", "*.tsx", ".meta/*.ts", ".meta/*.tsx"],
-  "exclude": ["node_modules"]
-}

+ 8 - 9
package.json

@@ -11,20 +11,19 @@
   },
   "devDependencies": {
     "@exercism/babel-preset-typescript": "^0.4.0",
-    "@exercism/eslint-config-typescript": "^0.5.0",
+    "@exercism/eslint-config-typescript": "^0.6.0",
     "@types/jest": "^29.5.12",
-    "@types/node": "~18.16.16",
-    "babel-jest": "^29.5.0",
-    "core-js": "~3.30.2",
-    "eslint": "^8.42.0",
+    "@types/node": "^20.11.24",
+    "babel-jest": "^29.7.0",
+    "core-js": "^3.36.0",
+    "eslint": "^8.57.0",
     "jest": "^29.7.0",
     "typescript": "^5.3.3"
   },
   "scripts": {
     "test": "yarn lint:types && jest --no-cache",
     "lint": "yarn lint:types && yarn lint:ci",
-    "lint:types": "yarn tsc --noEmit -p .",
-    "lint:ci": "eslint . --ext .tsx,.ts"
-  },
-  "packageManager": "yarn@3.6.4"
+    "lint:types": "yarn tsc --noEmit -p */.",
+    "lint:ci": "eslint */. --ext .tsx,.ts"
+  }
 }

+ 0 - 13
two-fer/.eslintignore

@@ -1,13 +0,0 @@
-!.meta
-
-# Protected or generated
-.git
-.vscode
-
-# When using npm
-node_modules/*
-
-# Configuration files
-.eslintrc.cjs
-babel.config.cjs
-jest.config.cjs

+ 0 - 38
two-fer/.eslintrc.cjs

@@ -1,38 +0,0 @@
-module.exports = {
-  root: true,
-  parserOptions: {
-    tsconfigRootDir: __dirname,
-    project: ['./tsconfig.json'],
-  },
-  overrides: [
-    // Student provided files
-    {
-      files: ['*.ts'],
-      excludedFiles: ['.meta/proof.ci.ts', '.meta/exemplar.ts', '*.test.ts'],
-      extends: '@exercism/eslint-config-typescript',
-    },
-    // Exercism given tests
-    {
-      files: ['*.test.ts'],
-      excludedFiles: ['custom.test.ts'],
-      env: {
-        jest: true,
-      },
-      extends: '@exercism/eslint-config-typescript/maintainers',
-    },
-    // Student provided tests
-    {
-      files: ['custom.test.ts'],
-      env: {
-        jest: true,
-      },
-      extends: '@exercism/eslint-config-typescript',
-    },
-    // Exercism provided files
-    {
-      files: ['.meta/proof.ci.ts', '.meta/exemplar.ts', '*.test.ts'],
-      excludedFiles: ['custom.test.ts'],
-      extends: '@exercism/eslint-config-typescript/maintainers',
-    },
-  ],
-}

+ 0 - 22
two-fer/.exercism/config.json

@@ -1,22 +0,0 @@
-{
-  "authors": [
-    "CRivasGomez"
-  ],
-  "contributors": [
-    "masters3d",
-    "SleeplessByte"
-  ],
-  "files": {
-    "solution": [
-      "two-fer.ts"
-    ],
-    "test": [
-      "two-fer.test.ts"
-    ],
-    "example": [
-      ".meta/proof.ci.ts"
-    ]
-  },
-  "blurb": "Create a sentence of the form \"One for X, one for me.\".",
-  "source_url": "https://github.com/exercism/problem-specifications/issues/757"
-}

+ 0 - 1
two-fer/.exercism/metadata.json

@@ -1 +0,0 @@
-{"track":"typescript","exercise":"two-fer","id":"a491ab5e9959457b8c6c867a84f21659","url":"https://exercism.org/tracks/typescript/exercises/two-fer","handle":"Fairgame","is_requester":true,"auto_approve":false}

File diff suppressed because it is too large
+ 0 - 3
two-fer/.yarn/releases/yarn-3.6.4.cjs


+ 0 - 1
two-fer/.yarnrc.yml

@@ -1 +0,0 @@
-yarnPath: .yarn/releases/yarn-3.6.4.cjs

+ 0 - 45
two-fer/HELP.md

@@ -1,45 +0,0 @@
-# Help
-
-## Running the tests
-
-Execute the tests with:
-
-```bash
-$ yarn test
-```
-
-## Skipped tests
-
-In the test suites all tests but the first have been skipped.
-
-Once you get a test passing, you can enable the next one by changing `xit` to
-`it`.
-
-## Submitting your solution
-
-You can submit your solution using the `exercism submit two-fer.ts` command.
-This command will upload your solution to the Exercism website and print the solution page's URL.
-
-It's possible to submit an incomplete solution which allows you to:
-
-- See how others have completed the exercise
-- Request help from a mentor
-
-## Need to get help?
-
-If you'd like help solving the exercise, check the following pages:
-
-- The [TypeScript track's documentation](https://exercism.org/docs/tracks/typescript)
-- The [TypeScript track's programming category on the forum](https://forum.exercism.org/c/programming/typescript)
-- [Exercism's programming category on the forum](https://forum.exercism.org/c/programming/5)
-- The [Frequently Asked Questions](https://exercism.org/docs/using/faqs)
-
-Should those resources not suffice, you could submit your (incomplete) solution to request mentoring.
-
-To get help if you're having trouble, you can use one of the following resources:
-
-- [TypeScript QuickStart](https://www.typescriptlang.org/docs/handbook/release-notes/overview.html)
-- [ECMAScript 2015 Language Specification](https://www.ecma-international.org/wp-content/uploads/ECMA-262_6th_edition_june_2015.pdf) (pdf)
-- [Mozilla JavaScript Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference)
-- [/r/typescript](https://www.reddit.com/r/typescript) is the TypeScript subreddit.
-- [StackOverflow](https://stackoverflow.com/questions/tagged/typescript) can be used to search for your problem and see if it has been answered already. You can also ask and answer questions.

+ 0 - 54
two-fer/README.md

@@ -1,54 +0,0 @@
-# Two Fer
-
-Welcome to Two Fer on Exercism's TypeScript Track.
-If you need help running the tests or submitting your code, check out `HELP.md`.
-
-## Introduction
-
-In some English accents, when you say "two for" quickly, it sounds like "two fer".
-Two-for-one is a way of saying that if you buy one, you also get one for free.
-So the phrase "two-fer" often implies a two-for-one offer.
-
-Imagine a bakery that has a holiday offer where you can buy two cookies for the price of one ("two-fer one!").
-You go for the offer and (very generously) decide to give the extra cookie to a friend.
-
-## Instructions
-
-Your task is to determine what you will say as you give away the extra cookie.
-
-If your friend likes cookies, and is named Do-yun, then you will say:
-
-```text
-One for Do-yun, one for me.
-```
-
-If your friend doesn't like cookies, you give the cookie to the next person in line at the bakery.
-Since you don't know their name, you will say _you_ instead.
-
-```text
-One for you, one for me.
-```
-
-Here are some examples:
-
-| Name   | Dialogue                    |
-| :----- | :-------------------------- |
-| Alice  | One for Alice, one for me.  |
-| Bohdan | One for Bohdan, one for me. |
-|        | One for you, one for me.    |
-| Zaphod | One for Zaphod, one for me. |
-
-## Source
-
-### Created by
-
-- @CRivasGomez
-
-### Contributed to by
-
-- @masters3d
-- @SleeplessByte
-
-### Based on
-
-https://github.com/exercism/problem-specifications/issues/757

+ 0 - 4
two-fer/babel.config.cjs

@@ -1,4 +0,0 @@
-module.exports = {
-  presets: ['@exercism/babel-preset-typescript'],
-  plugins: [],
-}

+ 0 - 19
two-fer/jest.config.cjs

@@ -1,19 +0,0 @@
-module.exports = {
-  verbose: true,
-  projects: ['<rootDir>'],
-  testMatch: [
-    '**/__tests__/**/*.[jt]s?(x)',
-    '**/test/**/*.[jt]s?(x)',
-    '**/?(*.)+(spec|test).[jt]s?(x)',
-  ],
-  testPathIgnorePatterns: [
-    '/(?:production_)?node_modules/',
-    '.d.ts$',
-    '<rootDir>/test/fixtures',
-    '<rootDir>/test/helpers',
-    '__mocks__',
-  ],
-  transform: {
-    '^.+\\.[jt]sx?$': 'babel-jest',
-  },
-}

+ 0 - 32
two-fer/package.json

@@ -1,32 +0,0 @@
-  {
-  "name": "@exercism/typescript-two-fer",
-  "version": "1.0.0",
-  "description": "Exercism exercises in Typescript.",
-  "private": true,
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/exercism/typescript"
-  },
-  "type": "module",
-  "engines": {
-    "node": "^18.16.0 || >=20.0.0"
-  },
-  "devDependencies": {
-    "@exercism/babel-preset-typescript": "^0.4.0",
-    "@exercism/eslint-config-typescript": "^0.5.0",
-    "@types/jest": "^29.5.2",
-    "@types/node": "~18.16.16",
-    "babel-jest": "^29.5.0",
-    "core-js": "~3.30.2",
-    "eslint": "^8.42.0",
-    "jest": "^29.5.0",
-    "typescript": "~5.0.4"
-  },
-  "scripts": {
-    "test": "yarn lint:types && jest --no-cache",
-    "lint": "yarn lint:types && yarn lint:ci",
-    "lint:types": "yarn tsc --noEmit -p .",
-    "lint:ci": "eslint . --ext .tsx,.ts"
-  },
-  "packageManager": "yarn@3.6.4"
-}

+ 0 - 28
two-fer/tsconfig.json

@@ -1,28 +0,0 @@
-{
-  "display": "Configuration for Exercism TypeScript Exercises",
-  "compilerOptions": {
-    // Allows you to use the newest syntax, and have access to console.log
-    // https://www.typescriptlang.org/tsconfig#lib
-    "lib": ["ESNEXT", "dom"],
-    // Make sure typescript is configured to output ESM
-    // https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#how-can-i-make-my-typescript-project-output-esm
-    "module": "ES2020",
-    // Since this project is using babel, TypeScript may target something very
-    // high, and babel will make sure it runs on your local Node version.
-    // https://babeljs.io/docs/en/
-    "target": "ESNext", // ESLint doesn't support this yet: "es2022",
-
-    "strict": true,
-    "esModuleInterop": true,
-    "skipLibCheck": true,
-    "forceConsistentCasingInFileNames": true,
-
-    // Because we'll be using babel: ensure that Babel can safely transpile
-    // files in the TypeScript project.
-    //
-    // https://babeljs.io/docs/en/babel-plugin-transform-typescript/#caveats
-    "isolatedModules": true
-  },
-  "include": ["*.ts", "*.tsx", ".meta/*.ts", ".meta/*.tsx"],
-  "exclude": ["node_modules"]
-}

+ 0 - 18
two-fer/two-fer.test.ts

@@ -1,18 +0,0 @@
-import { twoFer } from './two-fer'
-
-describe('TwoFer', () => {
-  it('no name given', () => {
-    const expected = 'One for you, one for me.'
-    expect(twoFer()).toEqual(expected)
-  })
-
-  xit('a name given', () => {
-    const expected = 'One for Alice, one for me.'
-    expect(twoFer('Alice')).toEqual(expected)
-  })
-
-  xit('another name given', () => {
-    const expected = 'One for Bob, one for me.'
-    expect(twoFer('Bob')).toEqual(expected)
-  })
-})

+ 0 - 10
two-fer/two-fer.ts

@@ -1,10 +0,0 @@
-/**
- * This stub is provided to make it straightforward to get started.
- */
-
-export function twoFer(whom: string): string {
-    if (typeof whom !== 'string' || whom === "") {
-        whom = "you";
-    }
-    return `One for ${whom}, one for me.`;
-}

+ 31 - 36
yarn.lock

@@ -8,12 +8,12 @@
   integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
 
 "@ampproject/remapping@^2.2.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
-  integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+  integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
   dependencies:
-    "@jridgewell/gen-mapping" "^0.3.5"
-    "@jridgewell/trace-mapping" "^0.3.24"
+    "@jridgewell/gen-mapping" "^0.3.0"
+    "@jridgewell/trace-mapping" "^0.3.9"
 
 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5":
   version "7.23.5"
@@ -1060,13 +1060,13 @@
     "@babel/preset-typescript" "^7.21.5"
     core-js "~3.30.2"
 
-"@exercism/eslint-config-typescript@^0.5.0":
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/@exercism/eslint-config-typescript/-/eslint-config-typescript-0.5.0.tgz#2684139f8f67820d47ea907fb2e055a0589b4b5c"
-  integrity sha512-PY4GEPXC+3OBtBnIVPjPaAWw+EXLQlmcxvC8FM3L1JyDCs9pPVerI+zIzUcCUhLxqnnsDxcnoT75mva7CIjfUA==
+"@exercism/eslint-config-typescript@^0.6.0":
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/@exercism/eslint-config-typescript/-/eslint-config-typescript-0.6.0.tgz#2d338f9ae4163ad52042849aafb5638f2196f9bd"
+  integrity sha512-jwxMO/z756BkvrpCdkGWhy7YNx8ojMD3VeLqMEOUm1S/BJlTmPQwTufebkQxyNQWxN72L11PCrBNPmDPUrLNKQ==
   dependencies:
-    "@typescript-eslint/eslint-plugin" "^5.59.9"
-    "@typescript-eslint/parser" "^5.59.9"
+    "@typescript-eslint/eslint-plugin" "^5.61.0"
+    "@typescript-eslint/parser" "^5.61.0"
     eslint-config-prettier "^8.8.0"
     eslint-plugin-import "^2.27.5"
 
@@ -1297,21 +1297,21 @@
     "@types/yargs" "^17.0.8"
     chalk "^4.0.0"
 
-"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
-  version "0.3.5"
-  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
-  integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+  version "0.3.4"
+  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz#9b18145d26cf33d08576cf4c7665b28554480ed7"
+  integrity sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==
   dependencies:
-    "@jridgewell/set-array" "^1.2.1"
+    "@jridgewell/set-array" "^1.0.1"
     "@jridgewell/sourcemap-codec" "^1.4.10"
-    "@jridgewell/trace-mapping" "^0.3.24"
+    "@jridgewell/trace-mapping" "^0.3.9"
 
 "@jridgewell/resolve-uri@^3.1.0":
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
   integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
 
-"@jridgewell/set-array@^1.2.1":
+"@jridgewell/set-array@^1.0.1":
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
   integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
@@ -1321,10 +1321,10 @@
   resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
   integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24":
-  version "0.3.25"
-  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
-  integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
+  version "0.3.23"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz#afc96847f3f07841477f303eed687707a5aacd80"
+  integrity sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==
   dependencies:
     "@jridgewell/resolve-uri" "^3.1.0"
     "@jridgewell/sourcemap-codec" "^1.4.14"
@@ -1446,18 +1446,13 @@
   resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
   integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
 
-"@types/node@*":
+"@types/node@*", "@types/node@^20.11.24":
   version "20.11.24"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792"
   integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==
   dependencies:
     undici-types "~5.26.4"
 
-"@types/node@~18.16.16":
-  version "18.16.20"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.20.tgz#b27be1ceb267bfb47d8bac024ff6379998f62207"
-  integrity sha512-nL54VfDjThdP2UXJXZao5wp76CDiDw4zSRO8d4Tk7UgDqNKGKVEQB0/t3ti63NS+YNNkIQDvwEAF04BO+WYu7Q==
-
 "@types/semver@^7.3.12":
   version "7.5.8"
   resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
@@ -1480,7 +1475,7 @@
   dependencies:
     "@types/yargs-parser" "*"
 
-"@typescript-eslint/eslint-plugin@^5.59.9":
+"@typescript-eslint/eslint-plugin@^5.61.0":
   version "5.62.0"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
   integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
@@ -1496,7 +1491,7 @@
     semver "^7.3.7"
     tsutils "^3.21.0"
 
-"@typescript-eslint/parser@^5.59.9":
+"@typescript-eslint/parser@^5.61.0":
   version "5.62.0"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
   integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
@@ -1738,7 +1733,7 @@ available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7:
   dependencies:
     possible-typed-array-names "^1.0.0"
 
-babel-jest@^29.5.0, babel-jest@^29.7.0:
+babel-jest@^29.7.0:
   version "29.7.0"
   resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
   integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
@@ -2006,7 +2001,7 @@ core-js-compat@^3.31.0, core-js-compat@^3.34.0:
   dependencies:
     browserslist "^4.22.3"
 
-core-js@^3.30.2:
+core-js@^3.30.2, core-js@^3.36.0:
   version "3.36.0"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.0.tgz#e752fa0b0b462a0787d56e9d73f80b0f7c0dde68"
   integrity sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==
@@ -2117,9 +2112,9 @@ doctrine@^3.0.0:
     esutils "^2.0.2"
 
 electron-to-chromium@^1.4.668:
-  version "1.4.690"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz#dd5145d45c49c08a9a6f7454127e660bdf9a3fa7"
-  integrity sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==
+  version "1.4.688"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.688.tgz#a5dade91d948c4ec1e3b5ab0e9dea95c3b787294"
+  integrity sha512-3/tHg2ChPF00eukURIB8cSVt3/9oeS1oTUIEt3ivngBInUaEcBhG2VdyEDejhwQdR6SLqaiEAEc0dHS0V52pOw==
 
 emittery@^0.13.1:
   version "0.13.1"
@@ -2312,7 +2307,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
   integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
 
-eslint@^8.42.0:
+eslint@^8.57.0:
   version "8.57.0"
   resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
   integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==

Some files were not shown because too many files changed in this diff