From 0fd044a4e7c63597b91df65e3a7c590847279f0f Mon Sep 17 00:00:00 2001 From: ItsOnlyBinary Date: Thu, 29 Aug 2024 20:12:36 +0100 Subject: [PATCH] Update eslint, tests --- .eslintrc.js | 28 - .github/workflows/release.yml | 2 +- .github/workflows/tests.yml | 2 +- eslint.config.js | 55 ++ package.json | 18 +- src/commands/numerics.js | 1 - test/{casefolding.js => casefolding.mjs} | 12 +- .../handlers/{misc.test.js => misc.test.mjs} | 29 +- test/{helper.test.js => helper.test.mjs} | 10 +- ...eParser.test.js => ircLineParser.test.mjs} | 318 +++++------ test/{messagetags.js => messagetags.mjs} | 12 +- test/mocks.js | 38 -- test/mocks.mjs | 40 ++ ...tworkinfo.test.js => networkinfo.test.mjs} | 33 +- test/{servertime.js => servertime.mjs} | 20 +- test/{setEncoding.js => setEncoding.mjs} | 10 +- .../{stringToChunks.js => stringToChunks.mjs} | 20 +- yarn.lock | 521 ++++++++---------- 18 files changed, 571 insertions(+), 598 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.js rename test/{casefolding.js => casefolding.mjs} (96%) rename test/commands/handlers/{misc.test.js => misc.test.mjs} (77%) rename test/{helper.test.js => helper.test.mjs} (90%) rename test/{ircLineParser.test.js => ircLineParser.test.mjs} (91%) rename test/{messagetags.js => messagetags.mjs} (94%) delete mode 100644 test/mocks.js create mode 100644 test/mocks.mjs rename test/{networkinfo.test.js => networkinfo.test.mjs} (91%) rename test/{servertime.js => servertime.mjs} (86%) rename test/{setEncoding.js => setEncoding.mjs} (90%) rename test/{stringToChunks.js => stringToChunks.mjs} (95%) diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 3ca1cb46..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - root: true, - extends: [ - 'eslint:recommended', - 'standard' - ], - parserOptions: { - sourceType: 'script', - }, - env: { - 'browser': true, - 'node': true, - }, - 'rules': { - 'camelcase': 0, - 'comma-dangle': 0, - 'indent': ['error', 4], - 'new-cap': 0, - 'no-shadow': ['error'], - 'no-var': ['error'], - 'operator-linebreak': ['error', 'after'], - 'semi': ['error', 'always'], - 'space-before-function-paren': ['error', 'never'], - 'standard/no-callback-literal': 0, - 'n/no-callback-literal': 0, - "object-shorthand": 0, - } -}; diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b2578ef..a7fcb926 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: '22.x' registry-url: 'https://registry.npmjs.org/' - name: Install diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c0c67843..bbbb4243 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x, 20.x, 22.x] + node-version: [18.x, 20.x, 22.x] steps: - uses: actions/checkout@v4 diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..d4a06be1 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,55 @@ +const globals = require('globals'); + +const eslintJS = require('@eslint/js'); +const { FlatCompat } = require('@eslint/eslintrc'); + +const compat = new FlatCompat({ + baseDirectory: __dirname +}); + +module.exports = [ + eslintJS.configs.recommended, + ...compat.extends('eslint-config-standard'), + { + languageOptions: { + sourceType: 'script', + globals: { + ...globals.browser, + ...globals.node, + } + }, + rules: { + 'camelcase': 0, + 'comma-dangle': 0, + 'indent': ['error', 4], + 'new-cap': 0, + 'no-shadow': ['error'], + 'no-var': ['error'], + 'object-shorthand': ['warn', 'consistent'], + 'operator-linebreak': ['error', 'after'], + 'quote-props': ['error', 'consistent-as-needed'], + 'semi': ['error', 'always'], + 'space-before-function-paren': ['error', 'never'], + }, + }, + { + files: ['test/**/*.mjs'], + languageOptions: { + sourceType: 'module', + globals: { + it: 'readonly', + describe: 'readonly', + }, + }, + rules: { + 'no-unused-expressions': 0, + 'comma-dangle': ['error', { + arrays: 'always-multiline', + objects: 'always-multiline', + imports: 'never', + exports: 'never', + functions: 'ignore', + }], + }, + }, +]; diff --git a/package.json b/package.json index f99f3979..7fdc6016 100644 --- a/package.json +++ b/package.json @@ -22,21 +22,21 @@ "@babel/cli": "^7.25.6", "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.4", - "chai": "^4.5.0", + "chai": "^5.1.1", "chai-subset": "^1.6.0", - "compression-webpack-plugin": "^10.0.0", - "eslint": "^8.57.0", + "compression-webpack-plugin": "^11.1.0", + "eslint": "^9.9.1", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.6.0", + "eslint-plugin-n": "^17.10.2", + "eslint-plugin-promise": "^7.1.0", + "globals": "^15.9.0", "mocha": "^10.7.3", "npm-run-all": "^4.1.5", - "nyc": "^15.1.0", + "nyc": "^17.0.0", "shx": "^0.3.4", - "sinon": "^15.2.0", - "sinon-chai": "^3.7.0", + "sinon": "^18.0.0", + "sinon-chai": "^4.0.0", "webpack": "^5.94.0", "webpack-cli": "^5.1.4" }, diff --git a/src/commands/numerics.js b/src/commands/numerics.js index 927474f4..7d2bca98 100644 --- a/src/commands/numerics.js +++ b/src/commands/numerics.js @@ -1,6 +1,5 @@ 'use strict'; -/* eslint-disable quote-props */ module.exports = { '001': 'RPL_WELCOME', '002': 'RPL_YOURHOST', diff --git a/test/casefolding.js b/test/casefolding.mjs similarity index 96% rename from test/casefolding.js rename to test/casefolding.mjs index e251186f..981d9063 100644 --- a/test/casefolding.js +++ b/test/casefolding.mjs @@ -1,10 +1,11 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const IrcClient = require('../src/client'); -const expect = chai.expect; -chai.use(require('chai-subset')); +import { expect, use } from 'chai'; +import chaiSubset from 'chai-subset'; + +import IrcClient from '../src/client.js'; + +use(chaiSubset); describe('src/client.js', function() { describe('caseLower', function() { @@ -69,7 +70,6 @@ describe('src/client.js', function() { }); }); - /* eslint-disable no-unused-expressions */ describe('caseCompare', function() { it('CASEMAPPING=rfc1459', function() { const client = new IrcClient(); diff --git a/test/commands/handlers/misc.test.js b/test/commands/handlers/misc.test.mjs similarity index 77% rename from test/commands/handlers/misc.test.js rename to test/commands/handlers/misc.test.mjs index 5aea2899..ec1d6d66 100644 --- a/test/commands/handlers/misc.test.js +++ b/test/commands/handlers/misc.test.mjs @@ -1,15 +1,14 @@ 'use strict'; -/* globals describe, it */ -/* eslint-disable no-unused-expressions */ -const chai = require('chai'); -const expect = chai.expect; -const mocks = require('../../mocks'); -const sinonChai = require('sinon-chai'); -const misc = require('../../../src/commands/handlers/misc'); -const IrcCommand = require('../../../src/commands/command'); +import { expect, use } from 'chai'; +import sinonChai from 'sinon-chai'; -chai.use(sinonChai); +import * as mocks from '../../mocks.mjs'; + +import misc from '../../../src/commands/handlers/misc.js'; +import IrcCommand from '../../../src/commands/command.js'; + +use(sinonChai); describe('src/commands/handlers/misc.js', function() { describe('PING handler', function() { @@ -18,7 +17,7 @@ describe('src/commands/handlers/misc.js', function() { params: ['example.com'], tags: { time: '2021-06-29T16:42:00Z', - } + }, }); mock.handlers.PING(cmd, mock.spies); @@ -33,8 +32,8 @@ describe('src/commands/handlers/misc.js', function() { message: undefined, time: 1624984920000, tags: { - time: '2021-06-29T16:42:00Z' - } + time: '2021-06-29T16:42:00Z', + }, }); }); }); @@ -46,7 +45,7 @@ describe('src/commands/handlers/misc.js', function() { params: ['one.example.com', 'two.example.com'], tags: { time: '2011-10-10T14:48:00Z', - } + }, }); mock.handlers.PONG(cmd, mock.spies); expect(mock.spies.network.addServerTimeOffset).to.have.been.calledOnce; @@ -55,8 +54,8 @@ describe('src/commands/handlers/misc.js', function() { message: 'two.example.com', time: 1318258080000, tags: { - time: '2011-10-10T14:48:00Z' - } + time: '2011-10-10T14:48:00Z', + }, }); }); }); diff --git a/test/helper.test.js b/test/helper.test.mjs similarity index 90% rename from test/helper.test.js rename to test/helper.test.mjs index bfede794..6965be8f 100644 --- a/test/helper.test.js +++ b/test/helper.test.mjs @@ -1,11 +1,11 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const Helper = require('../src/helpers'); -const expect = chai.expect; +import { expect, use } from 'chai'; +import chaiSubset from 'chai-subset'; -chai.use(require('chai-subset')); +import Helper from '../src/helpers.js'; + +use(chaiSubset); describe('src/irclineparser.js', function() { describe('mask parsing', function() { diff --git a/test/ircLineParser.test.js b/test/ircLineParser.test.mjs similarity index 91% rename from test/ircLineParser.test.js rename to test/ircLineParser.test.mjs index faae599b..fa7adf11 100644 --- a/test/ircLineParser.test.js +++ b/test/ircLineParser.test.mjs @@ -1,11 +1,11 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const parseIrcLine = require('../src/irclineparser'); -const expect = chai.expect; +import { expect, use } from 'chai'; +import chaiSubset from 'chai-subset'; -chai.use(require('chai-subset')); +import parseIrcLine from '../src/irclineparser.js'; + +use(chaiSubset); describe('src/irclineparser.js', function() { describe('message parsing', function() { @@ -22,7 +22,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo'] + params: ['foo'], }); }); @@ -31,7 +31,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo'] + params: ['foo'], }); }); @@ -40,7 +40,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: [''] + params: [''], }); }); @@ -49,7 +49,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo:bar'] + params: ['foo:bar'], }); }); @@ -58,7 +58,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo:bar'] + params: ['foo:bar'], }); }); @@ -67,7 +67,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo :bar'] + params: ['foo :bar'], }); }); @@ -76,7 +76,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -85,7 +85,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -94,7 +94,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: 'TEST', - params: ['hello world'] + params: ['hello world'], }); }); @@ -128,7 +128,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ nick: 'nick', hostname: 'irc.example.org', - command: 'TEST' + command: 'TEST', }); }); @@ -139,7 +139,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'irc.example.org', - command: 'TEST' + command: 'TEST', }); }); @@ -148,7 +148,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', - command: 'TEST' + command: 'TEST', }); }); @@ -214,7 +214,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -225,7 +225,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', hostname: 'example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -237,7 +237,7 @@ describe('src/irclineparser.js', function() { ident: 'ident', hostname: 'example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -247,7 +247,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -258,7 +258,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', hostname: 'example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -270,7 +270,7 @@ describe('src/irclineparser.js', function() { ident: 'ident', hostname: 'example.org', command: 'TEST', - params: ['foo', 'bar'] + params: ['foo', 'bar'], }); }); @@ -280,7 +280,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', command: 'TEST', - params: ['hello world'] + params: ['hello world'], }); }); @@ -291,7 +291,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', hostname: 'example.org', command: 'TEST', - params: ['hello world'] + params: ['hello world'], }); }); @@ -303,7 +303,7 @@ describe('src/irclineparser.js', function() { ident: 'ident', hostname: 'example.org', command: 'TEST', - params: ['hello world'] + params: ['hello world'], }); }); @@ -324,7 +324,7 @@ describe('src/irclineparser.js', function() { tags: { foo: '', }, - command: 'TEST' + command: 'TEST', }); }); @@ -333,9 +333,9 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'bar' + foo: 'bar', }, - command: 'TEST' + command: 'TEST', }); }); @@ -344,9 +344,9 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: '' + foo: '', }, - command: 'TEST' + command: 'TEST', }); }); @@ -355,9 +355,9 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: '' + foo: '', }, - command: 'TEST' + command: 'TEST', }); }); @@ -369,7 +369,7 @@ describe('src/irclineparser.js', function() { foo: '', bar: '', }, - command: 'TEST' + command: 'TEST', }); }); @@ -381,7 +381,7 @@ describe('src/irclineparser.js', function() { foo: 'bar', baz: '', }, - command: 'TEST' + command: 'TEST', }); }); @@ -393,7 +393,7 @@ describe('src/irclineparser.js', function() { foo: '', }, command: '', - prefix: 'irc.example.org' + prefix: 'irc.example.org', }); }); @@ -405,7 +405,7 @@ describe('src/irclineparser.js', function() { foo: '', }, command: 'TEST', - prefix: 'irc.example.org' + prefix: 'irc.example.org', }); }); @@ -418,7 +418,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', nick: 'nick', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -432,7 +432,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', ident: 'ident', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -441,10 +441,10 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'bar' + foo: 'bar', }, command: 'TEST', - prefix: 'irc.example.org' + prefix: 'irc.example.org', }); }); @@ -453,11 +453,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'bar' + foo: 'bar', }, command: 'TEST', nick: 'nick', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -466,11 +466,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'bar' + foo: 'bar', }, command: 'TEST', nick: 'nick', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -483,7 +483,7 @@ describe('src/irclineparser.js', function() { bar: '', }, command: 'TEST', - prefix: 'irc.example.org' + prefix: 'irc.example.org', }); }); @@ -497,7 +497,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', nick: 'nick', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -512,7 +512,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', ident: 'ident', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -525,7 +525,7 @@ describe('src/irclineparser.js', function() { baz: '', }, command: 'TEST', - prefix: 'irc.example.org' + prefix: 'irc.example.org', }); }); @@ -539,7 +539,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', nick: 'nick', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -554,7 +554,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', ident: 'ident', - hostname: 'example.org' + hostname: 'example.org', }); }); @@ -567,7 +567,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -580,7 +580,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -593,7 +593,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -606,7 +606,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: [''] + params: [''], }); }); @@ -619,7 +619,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -632,7 +632,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -645,7 +645,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -659,7 +659,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -673,7 +673,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -687,7 +687,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -701,7 +701,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -715,7 +715,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -729,7 +729,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -743,7 +743,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -758,7 +758,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -773,7 +773,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -788,7 +788,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -803,7 +803,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -818,7 +818,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -833,7 +833,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -848,7 +848,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -857,11 +857,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -870,11 +870,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -883,11 +883,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -896,11 +896,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: [''] + params: [''], }); }); @@ -909,11 +909,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -922,11 +922,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -935,11 +935,11 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', prefix: 'irc.example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -948,12 +948,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -962,12 +962,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -976,12 +976,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -990,12 +990,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1004,12 +1004,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1018,12 +1018,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); it('should parse a message that has a tag with a value, a "trailing" parameter that has spaces and a nick@hostname prefix', function() { @@ -1031,12 +1031,12 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1045,13 +1045,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1060,13 +1060,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1075,13 +1075,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1090,13 +1090,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1105,13 +1105,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1120,13 +1120,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1135,13 +1135,13 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ tags: { - foo: 'testvalue' + foo: 'testvalue', }, command: 'TEST', nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1155,7 +1155,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1169,7 +1169,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1183,7 +1183,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1197,7 +1197,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: [''] + params: [''], }); }); @@ -1211,7 +1211,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1225,7 +1225,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1239,7 +1239,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1254,7 +1254,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1269,7 +1269,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1284,7 +1284,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1299,7 +1299,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1314,7 +1314,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1329,7 +1329,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); it('should parse a message that has multiple tags with no values, a "trailing" parameter that has spaces and a nick@hostname prefix', function() { @@ -1343,7 +1343,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1359,7 +1359,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1375,7 +1375,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1391,7 +1391,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1407,7 +1407,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1423,7 +1423,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1439,7 +1439,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1455,7 +1455,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1469,7 +1469,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1483,7 +1483,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1497,7 +1497,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1511,7 +1511,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: [''] + params: [''], }); }); @@ -1525,7 +1525,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1539,7 +1539,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1553,7 +1553,7 @@ describe('src/irclineparser.js', function() { }, command: 'TEST', prefix: 'irc.example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1568,7 +1568,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1583,7 +1583,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1598,7 +1598,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1613,7 +1613,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1628,7 +1628,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1643,7 +1643,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1658,7 +1658,7 @@ describe('src/irclineparser.js', function() { command: 'TEST', nick: 'nick', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1674,7 +1674,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1690,7 +1690,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1706,7 +1706,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar'] + params: ['bar'], }); }); @@ -1722,7 +1722,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: [''] + params: [''], }); }); @@ -1738,7 +1738,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1754,7 +1754,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['bar', 'baz'] + params: ['bar', 'baz'], }); }); @@ -1770,7 +1770,7 @@ describe('src/irclineparser.js', function() { nick: 'nick', ident: 'ident', hostname: 'example.org', - params: ['hello world'] + params: ['hello world'], }); }); @@ -1780,7 +1780,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ command: '005', hostname: 'irc.example.org', - params: ['nick', 'SECURELIST', 'SILENCE=32', 'SSL=[::]:6697', 'STATUSMSG=!@%+', 'TOPICLEN=1000', 'UHNAMES', 'USERIP', 'VBANLIST', 'WALLCHOPS', 'WALLVOICES', 'WATCH=64', 'are supported by this server'] + params: ['nick', 'SECURELIST', 'SILENCE=32', 'SSL=[::]:6697', 'STATUSMSG=!@%+', 'TOPICLEN=1000', 'UHNAMES', 'USERIP', 'VBANLIST', 'WALLCHOPS', 'WALLVOICES', 'WATCH=64', 'are supported by this server'], }); }); @@ -1790,7 +1790,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', command: 'TEST', - params: ['foo', 'bar '] + params: ['foo', 'bar '], }); }); @@ -1800,7 +1800,7 @@ describe('src/irclineparser.js', function() { expect(msgObj).to.containSubset({ prefix: 'irc.example.org', command: 'TEST', - params: ['foo', 'bar '] + params: ['foo', 'bar '], }); }); }); diff --git a/test/messagetags.js b/test/messagetags.mjs similarity index 94% rename from test/messagetags.js rename to test/messagetags.mjs index 745d2af4..2fcc85b8 100644 --- a/test/messagetags.js +++ b/test/messagetags.mjs @@ -1,11 +1,11 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const MessageTags = require('../src/messagetags'); -const expect = chai.expect; -const assert = chai.assert; -chai.use(require('chai-subset')); +import { assert, expect, use } from 'chai'; +import chaiSubset from 'chai-subset'; + +import MessageTags from '../src/messagetags.js'; + +use(chaiSubset); describe('src/messagetags.js', function() { describe('value encoding', function() { diff --git a/test/mocks.js b/test/mocks.js deleted file mode 100644 index f016e2e3..00000000 --- a/test/mocks.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -const sinon = require('sinon'); -const _ = require('lodash'); - -module.exports = { - IrcCommandHandler: function(modules) { - const handlers = {}; - modules.map(function(m) { - return m({ - addHandler: function(command, handler) { - handlers[command] = handler; - } - }); - }); - const stubs = { - emit: sinon.stub(), - connection: { - write: sinon.stub() - }, - network: { - addServerTimeOffset: sinon.stub() - }, - }; - const handler = _.mapValues(stubs, function spyify(value) { - if (_.isFunction(value)) { - return sinon.spy(value); - } else if (_.isObject(value)) { - return _.mapValues(value, spyify); - } - }); - return { - handlers: handlers, - stubs: stubs, - spies: handler - }; - } -}; diff --git a/test/mocks.mjs b/test/mocks.mjs new file mode 100644 index 00000000..1b677e0c --- /dev/null +++ b/test/mocks.mjs @@ -0,0 +1,40 @@ +'use strict'; + +import _ from 'lodash'; +import sinon from 'sinon'; + +export function IrcCommandHandler(modules) { + const handlers = {}; + + modules.map(function(m) { + return m({ + addHandler: function(command, handler) { + handlers[command] = handler; + }, + }); + }); + + const stubs = { + emit: sinon.stub(), + connection: { + write: sinon.stub(), + }, + network: { + addServerTimeOffset: sinon.stub(), + }, + }; + + const handler = _.mapValues(stubs, function spyify(value) { + if (_.isFunction(value)) { + return sinon.spy(value); + } else if (_.isObject(value)) { + return _.mapValues(value, spyify); + } + }); + + return { + handlers: handlers, + stubs: stubs, + spies: handler, + }; +} diff --git a/test/networkinfo.test.js b/test/networkinfo.test.mjs similarity index 91% rename from test/networkinfo.test.js rename to test/networkinfo.test.mjs index 44a4254b..7bdbca81 100644 --- a/test/networkinfo.test.js +++ b/test/networkinfo.test.mjs @@ -1,10 +1,9 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const assert = chai.assert; -const NetworkInfo = require('../src/networkinfo'); -const IrcCommandHandler = require('../src/commands/handler'); +import { assert } from 'chai'; + +import NetworkInfo from '../src/networkinfo.js'; +import IrcCommandHandler from '../src/commands/handler.js'; function newMockClient() { const handler = new IrcCommandHandler({ network: new NetworkInfo() }); @@ -26,7 +25,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CHANTYPES=#&'], - tags: [] + tags: [], }); const results = names.map(name => client.network.isChannelName(name)); assert.deepEqual(results, [false, true, false, false, true, false]); @@ -37,7 +36,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CHANTYPES=%'], - tags: [] + tags: [], }); const results = names.map(name => client.network.isChannelName(name)); assert.deepEqual(results, [false, false, false, true, false, true]); @@ -48,7 +47,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CHANTYPES='], - tags: [] + tags: [], }); const results = names.map(name => client.network.isChannelName(name)); assert.deepEqual(results, [false, false, false, false, false, false]); @@ -61,7 +60,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=a,b,c'], - tags: [] + tags: [], }); assert.deepEqual(client.network.options.CLIENTTAGDENY, ['a', 'b', 'c']); }); @@ -71,7 +70,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=*,-a,-b'], - tags: [] + tags: [], }); assert.deepEqual(client.network.options.CLIENTTAGDENY, ['*', '-a', '-b']); }); @@ -81,7 +80,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY='], - tags: [] + tags: [], }); assert.isArray(client.network.options.CLIENTTAGDENY); assert.isEmpty(client.network.options.CLIENTTAGDENY); @@ -92,7 +91,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', ''], - tags: [] + tags: [], }); assert.isUndefined(client.network.options.CLIENTTAGDENY); }); @@ -102,7 +101,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=*,-a,-b'], - tags: [] + tags: [], }); assert.isFalse(client.network.supportsTag('a')); assert.isFalse(client.network.supportsTag('b')); @@ -114,7 +113,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY='], - tags: [] + tags: [], }); assert.isTrue(client.network.supportsTag('a')); assert.isTrue(client.network.supportsTag('b')); @@ -126,7 +125,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=*'], - tags: [] + tags: [], }); assert.isFalse(client.network.supportsTag('a')); assert.isFalse(client.network.supportsTag('b')); @@ -138,7 +137,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=*,-a'], - tags: [] + tags: [], }); assert.isTrue(client.network.supportsTag('a')); assert.isFalse(client.network.supportsTag('b')); @@ -150,7 +149,7 @@ describe('src/networkinfo.js', function() { client.dispatch({ command: '005', params: ['nick', 'CLIENTTAGDENY=b'], - tags: [] + tags: [], }); assert.isTrue(client.network.supportsTag('a')); assert.isFalse(client.network.supportsTag('b')); diff --git a/test/servertime.js b/test/servertime.mjs similarity index 86% rename from test/servertime.js rename to test/servertime.mjs index f531d55a..6db6043c 100644 --- a/test/servertime.js +++ b/test/servertime.mjs @@ -1,8 +1,8 @@ 'use strict'; -/* globals describe, it */ -const chai = require('chai'); -const IrcCommand = require('../src/commands/command'); -const expect = chai.expect; + +import { expect } from 'chai'; + +import IrcCommand from '../src/commands/command.js'; describe('src/commands/command.js', function() { describe('getServerTime parsing', function() { @@ -10,7 +10,7 @@ describe('src/commands/command.js', function() { const cmd = new IrcCommand('', { tags: { time: '2011-10-10T14:48:00Z', - } + }, }); expect(cmd.getServerTime()).to.equal(1318258080000); @@ -20,7 +20,7 @@ describe('src/commands/command.js', function() { const cmd = new IrcCommand('', { tags: { time: '1318258080', - } + }, }); expect(cmd.getServerTime()).to.equal(1318258080000); @@ -30,7 +30,7 @@ describe('src/commands/command.js', function() { const cmd = new IrcCommand('', { tags: { time: '1318258080.1234', - } + }, }); expect(cmd.getServerTime()).to.equal(1318258080123); @@ -38,7 +38,7 @@ describe('src/commands/command.js', function() { it('should return undefined for missing time', function() { const cmd = new IrcCommand('', { - tags: {} + tags: {}, }); expect(cmd.getServerTime()).to.equal(undefined); @@ -48,7 +48,7 @@ describe('src/commands/command.js', function() { const cmd = new IrcCommand('', { tags: { time: '', - } + }, }); expect(cmd.getServerTime()).to.equal(undefined); @@ -58,7 +58,7 @@ describe('src/commands/command.js', function() { const cmd = new IrcCommand('', { tags: { time: 'definetelyNotAtimestamp', - } + }, }); expect(cmd.getServerTime()).to.equal(undefined); diff --git a/test/setEncoding.js b/test/setEncoding.mjs similarity index 90% rename from test/setEncoding.js rename to test/setEncoding.mjs index 6376a158..d3c52ea1 100644 --- a/test/setEncoding.js +++ b/test/setEncoding.mjs @@ -1,11 +1,11 @@ 'use strict'; -/* globals describe, it */ -const Connection = require('../src/transports/net'); -const chai = require('chai'); -const assert = chai.assert; +import { assert, use } from 'chai'; +import chaiSubset from 'chai-subset'; -chai.use(require('chai-subset')); +import Connection from '../src/transports/net.js'; + +use(chaiSubset); describe('src/transports/net.js', function() { describe('setEncoding', function() { diff --git a/test/stringToChunks.js b/test/stringToChunks.mjs similarity index 95% rename from test/stringToChunks.js rename to test/stringToChunks.mjs index d881803d..edc3efa8 100644 --- a/test/stringToChunks.js +++ b/test/stringToChunks.mjs @@ -1,15 +1,17 @@ 'use strict'; /* globals describe, it */ -const chai = require('chai'); -const { + +import { expect, use } from 'chai'; +import chaiSubset from 'chai-subset'; + +import { lineBreak, WordTooLargeForLineError, GraphemeTooLargeForLineError, - CodepointTooLargeForLineError, -} = require('../src/linebreak'); -const expect = chai.expect; + CodepointTooLargeForLineError +} from '../src/linebreak.js'; -chai.use(require('chai-subset')); +use(chaiSubset); describe('src/client.js', function() { describe('lineBreak', function() { @@ -29,7 +31,7 @@ describe('src/client.js', function() { family, family, 'test string', - family + family, ]; expect( @@ -64,7 +66,7 @@ describe('src/client.js', function() { 'just a normal', 'string, testing', 'word splitting', - ':)' + ':)', ]; expect( @@ -137,7 +139,7 @@ describe('src/client.js', function() { '\u200d\u200d', '\u200d\u200d', '\u200d\u200d', - '\u200d\u200d' + '\u200d\u200d', ]; expect([...lineBreak(plain, { diff --git a/yarn.lock b/yarn.lock index 5e54aa7f..eaa9df28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== -"@babel/core@^7.25.2", "@babel/core@^7.7.5": +"@babel/core@^7.23.9", "@babel/core@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== @@ -243,7 +243,7 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.25.0", "@babel/parser@^7.25.6": +"@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6": version "7.25.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== @@ -960,56 +960,61 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.11.0": version "4.11.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@9.9.1": + version "9.9.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06" + integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ== -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -1022,7 +1027,7 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== @@ -1100,20 +1105,13 @@ dependencies: type-detect "4.0.8" -"@sinonjs/commons@^3.0.0": +"@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.3.0": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers@^11.2.2": version "11.2.2" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" @@ -1153,18 +1151,13 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/node@*": version "15.12.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26" integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA== -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -1321,7 +1314,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.12.0, acorn@^8.7.1, acorn@^8.8.2: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== @@ -1496,10 +1489,10 @@ arraybuffer.prototype.slice@^1.0.3: is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== available-typed-arrays@^1.0.7: version "1.0.7" @@ -1597,13 +1590,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtins@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" - integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== - dependencies: - semver "^7.0.0" - caching-transform@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" @@ -1650,18 +1636,16 @@ chai-subset@^1.6.0: resolved "https://registry.yarnpkg.com/chai-subset/-/chai-subset-1.6.0.tgz#a5d0ca14e329a79596ed70058b6646bd6988cfe9" integrity sha1-pdDKFOMpp5WW7XAFi2ZGvWmIz+k= -chai@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== dependencies: - assertion-error "^1.1.0" - check-error "^1.0.3" - deep-eql "^4.1.3" - get-func-name "^2.0.2" - loupe "^2.3.6" - pathval "^1.1.1" - type-detect "^4.1.0" + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1680,12 +1664,10 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" @@ -1790,13 +1772,13 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compression-webpack-plugin@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-10.0.0.tgz#3496af1b0dc792e13efc474498838dbff915c823" - integrity sha512-wLXLIBwpul/ALcm7Aj+69X0pYT3BYt6DdPn3qrgBIh9YejV9Bju9ShhlAsjujLyWMo6SAweFIWaUoFmXZNuNrg== +compression-webpack-plugin@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-11.1.0.tgz#ee340d2029cf99ccecdea9ad1410b377d15b48b3" + integrity sha512-zDOQYp10+upzLxW+VRSjEpRRwBXJdsb5lBMlRxx1g8hckIFBpe3DTI0en2w7h+beuq89576RVzfiXrkdPGrHhA== dependencies: - schema-utils "^4.0.0" - serialize-javascript "^6.0.0" + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" concat-map@0.0.1: version "0.0.1" @@ -1898,12 +1880,10 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-is@^0.1.3: version "0.1.3" @@ -1935,7 +1915,7 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -diff@^5.1.0, diff@^5.2.0: +diff@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== @@ -1947,13 +1927,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - electron-to-chromium@^1.5.4: version "1.5.13" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" @@ -1964,7 +1937,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.17.1: +enhanced-resolve@^5.17.0, enhanced-resolve@^5.17.1: version "5.17.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== @@ -2105,6 +2078,13 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== + dependencies: + semver "^7.5.4" + eslint-config-standard@^17.1.0: version "17.1.0" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" @@ -2120,27 +2100,20 @@ eslint-import-resolver-node@^0.3.9: resolve "^1.22.4" eslint-module-utils@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" - integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + version "2.8.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz#2ecad69d71e1fa81f17f7f24d5d3e46b168de663" + integrity sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg== dependencies: debug "^3.2.7" -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== +eslint-plugin-es-x@^7.5.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz#a207aa08da37a7923f2a9599e6d3eb73f3f92b74" + integrity sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ== dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.11.0" + eslint-compat-utils "^0.5.1" eslint-plugin-import@^2.29.1: version "2.29.1" @@ -2165,36 +2138,24 @@ eslint-plugin-import@^2.29.1: semver "^6.3.1" tsconfig-paths "^3.15.0" -eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" - integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.11.0" - minimatch "^3.1.2" - resolve "^1.22.1" - semver "^7.3.8" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-promise@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" - integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== +eslint-plugin-n@^17.10.2: + version "17.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.10.2.tgz#16d8d7d0b1dc076c03513bfea096f8ce1b0bcca8" + integrity sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + enhanced-resolve "^5.17.0" + eslint-plugin-es-x "^7.5.0" + get-tsconfig "^4.7.0" + globals "^15.8.0" + ignore "^5.2.4" + minimatch "^9.0.5" + semver "^7.5.3" + +eslint-plugin-promise@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz#06b3ad6d36b3c3ef3ec201c8a8d97049cf5dbb20" + integrity sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ== eslint-scope@5.1.1: version "5.1.1" @@ -2204,78 +2165,55 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" + integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0: version "3.4.3" 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.57.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.9.1: + version "9.9.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec" + integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.18.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.9.1" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.0.2" + eslint-visitor-keys "^4.0.0" + espree "^10.1.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -2285,21 +2223,21 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== dependencies: - acorn "^8.9.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: +esquery@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== @@ -2375,12 +2313,12 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" fill-range@^7.1.1: version "7.1.1" @@ -2414,14 +2352,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flat@^5.0.2: version "5.0.2" @@ -2498,7 +2435,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.1, get-func-name@^2.0.2: +get-func-name@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== @@ -2528,6 +2465,13 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" +get-tsconfig@^4.7.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.0.tgz#125dc13a316f61650a12b20c97c11b8fd996fedd" + integrity sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw== + dependencies: + resolve-pkg-maps "^1.0.0" + glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -2575,12 +2519,15 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^15.8.0, globals@^15.9.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.9.0.tgz#e9de01771091ffbc37db5714dab484f9f69ff399" + integrity sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== globalthis@^1.0.3: version "1.0.3" @@ -2606,11 +2553,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -2692,10 +2634,10 @@ ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.1, ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== import-fresh@^3.2.1: version "3.3.0" @@ -2807,10 +2749,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" - integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" @@ -2965,7 +2907,7 @@ isomorphic-textencoder@^1.0.1: dependencies: fast-text-encoding "^1.0.0" -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1, istanbul-lib-coverage@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== @@ -2977,15 +2919,16 @@ istanbul-lib-hook@^3.0.0: dependencies: append-transform "^2.0.0" -istanbul-lib-instrument@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== +istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" istanbul-lib-processinfo@^2.0.2: version "2.0.2" @@ -3117,7 +3060,7 @@ just-extend@^6.2.0: resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -3199,10 +3142,10 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== +loupe@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54" + integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== dependencies: get-func-name "^2.0.1" @@ -3255,7 +3198,7 @@ mime-types@^2.1.27: dependencies: mime-db "1.48.0" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3269,10 +3212,17 @@ minimatch@^5.0.1, minimatch@^5.1.6: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mocha@^10.7.3: version "10.7.3" @@ -3325,10 +3275,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^5.1.4: - version "5.1.9" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" - integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== +nise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-6.0.0.tgz#ae56fccb5d912037363c3b3f29ebbfa28bde8b48" + integrity sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers" "^11.2.2" @@ -3378,10 +3328,10 @@ npm-run-all@^4.1.5: shell-quote "^1.6.1" string.prototype.padend "^3.0.0" -nyc@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" - integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== +nyc@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd" + integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" @@ -3395,7 +3345,7 @@ nyc@^15.1.0: glob "^7.1.6" istanbul-lib-coverage "^3.0.0" istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^6.0.2" istanbul-lib-processinfo "^2.0.2" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" @@ -3580,10 +3530,10 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" @@ -3729,11 +3679,6 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" -regexpp@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -3792,7 +3737,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -3806,7 +3756,7 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3863,7 +3813,7 @@ schema-utils@^3.1.1, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0: +schema-utils@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== @@ -3874,21 +3824,21 @@ schema-utils@^4.0.0: ajv-keywords "^5.1.0" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.8: +semver@^7.5.3, semver@^7.5.4: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: +serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== @@ -3989,22 +3939,22 @@ signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -sinon-chai@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" - integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== +sinon-chai@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-4.0.0.tgz#77d59d9f4a833f0d3a88249b4637acc72656fdfa" + integrity sha512-cWqO7O2I4XfJDWyWElAQ9D/dtdh5Mo0RHndsfiiYyjWnlPzBJdIvjCVURO4EjyYaC3BjV+ISNXCfTXPXTEIEWA== -sinon@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.2.0.tgz#5e44d4bc5a9b5d993871137fd3560bebfac27565" - integrity sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw== +sinon@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" + integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^10.3.0" + "@sinonjs/commons" "^3.0.1" + "@sinonjs/fake-timers" "^11.2.2" "@sinonjs/samsam" "^8.0.0" - diff "^5.1.0" - nise "^5.1.4" - supports-color "^7.2.0" + diff "^5.2.0" + nise "^6.0.0" + supports-color "^7" slash@^2.0.0: version "2.0.0" @@ -4175,7 +4125,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4273,16 +4223,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-detect@^4.0.0, type-detect@^4.0.8, type-detect@^4.1.0: +type-detect@^4.0.8: version "4.1.0" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.8.0: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"