tstyche 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.0] - 2024-02-20
4
+
5
+ _Stable release based on [1.0.0-rc.2]._
6
+
3
7
  ## [1.0.0-rc.2] - 2024-02-14
4
8
 
5
9
  ### Fixed
@@ -136,6 +140,7 @@
136
140
 
137
141
  _First pre-release._
138
142
 
143
+ [1.0.0]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0
139
144
  [1.0.0-rc.2]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-rc.2
140
145
  [1.0.0-rc.1]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-rc.1
141
146
  [1.0.0-rc]: https://github.com/tstyche/tstyche/releases/tag/v1.0.0-rc
@@ -51,7 +51,6 @@ declare enum OptionBrand {
51
51
  True = "true",// an option which does not take a value
52
52
  List = "list"
53
53
  }
54
-
55
54
  declare enum OptionGroup {
56
55
  CommandLine = 2,
57
56
  ConfigFile = 4
@@ -179,7 +178,7 @@ declare class ConfigService {
179
178
  declare class TSTyche {
180
179
  #private;
181
180
  readonly resolvedConfig: ResolvedConfig;
182
- static readonly version = "1.0.0-rc.2";
181
+ static readonly version = "1.0.0";
183
182
  constructor(resolvedConfig: ResolvedConfig, storeService: StoreService);
184
183
  run(testFiles: Array<string | URL>): Promise<void>;
185
184
  }
@@ -195,7 +194,6 @@ declare enum TestMemberBrand {
195
194
  Test = "test",
196
195
  Expect = "expect"
197
196
  }
198
-
199
197
  declare enum TestMemberFlags {
200
198
  None = 0,
201
199
  Fail = 1,
@@ -282,7 +280,6 @@ declare class ResultTiming {
282
280
  get duration(): number;
283
281
  }
284
282
 
285
- type FileResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
286
283
  declare enum ResultStatus {
287
284
  Runs = "runs",
288
285
  Passed = "passed",
@@ -327,6 +324,7 @@ declare class DescribeResult {
327
324
  constructor(describe: TestMember, parent: DescribeResult | undefined);
328
325
  }
329
326
 
327
+ type FileResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
330
328
  declare class FileResult {
331
329
  testFile: URL;
332
330
  diagnostics: Array<Diagnostic>;
@@ -346,11 +344,12 @@ declare class ProjectResult {
346
344
  constructor(compilerVersion: string, projectConfigFilePath: string | undefined);
347
345
  }
348
346
 
347
+ type TargetResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
349
348
  declare class TargetResult {
350
349
  versionTag: string;
351
350
  testFiles: Array<URL>;
352
351
  results: Map<string | undefined, ProjectResult>;
353
- status: ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
352
+ status: TargetResultStatus;
354
353
  timing: ResultTiming;
355
354
  constructor(versionTag: string, testFiles: Array<URL>);
356
355
  }
@@ -454,24 +453,30 @@ interface TypeChecker extends ts.TypeChecker {
454
453
  declare class PrimitiveTypeMatcher {
455
454
  #private;
456
455
  typeChecker: TypeChecker;
457
- constructor(typeChecker: TypeChecker, targetTypeFlag: ts.TypeFlags, targetTypeText: string);
458
- match(sourceType: ts.Type, isNot: boolean): MatchResult;
456
+ constructor(typeChecker: TypeChecker, targetTypeFlag: ts.TypeFlags);
457
+ match(sourceType: ts.Type): MatchResult;
459
458
  }
460
459
 
461
- declare class ToBeAssignable {
462
- #private;
460
+ declare abstract class RelationMatcherBase {
463
461
  typeChecker: TypeChecker;
462
+ abstract relation: Relation;
463
+ abstract relationExplanationText: string;
464
464
  constructor(typeChecker: TypeChecker);
465
+ protected explain(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): Array<Diagnostic>;
465
466
  match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
466
467
  }
467
468
 
468
- declare class ToEqual {
469
- #private;
470
- typeChecker: TypeChecker;
471
- constructor(typeChecker: TypeChecker);
469
+ declare class ToBeAssignable extends RelationMatcherBase {
470
+ relation: Relation;
471
+ relationExplanationText: string;
472
472
  match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
473
473
  }
474
474
 
475
+ declare class ToEqual extends RelationMatcherBase {
476
+ relation: Relation;
477
+ relationExplanationText: string;
478
+ }
479
+
475
480
  declare class ToHaveProperty {
476
481
  #private;
477
482
  compiler: typeof ts;
@@ -480,11 +485,9 @@ declare class ToHaveProperty {
480
485
  match(sourceType: ts.Type, targetType: ts.StringLiteralType | ts.NumberLiteralType | ts.UniqueESSymbolType, isNot: boolean): MatchResult;
481
486
  }
482
487
 
483
- declare class ToMatch {
484
- #private;
485
- typeChecker: TypeChecker;
486
- constructor(typeChecker: TypeChecker);
487
- match(sourceType: ts.Type, targetType: ts.Type, isNot: boolean): MatchResult;
488
+ declare class ToMatch extends RelationMatcherBase {
489
+ relation: Relation;
490
+ relationExplanationText: string;
488
491
  }
489
492
 
490
493
  declare class ToRaiseError {
@@ -746,4 +749,4 @@ declare class Version {
746
749
  static isVersionTag(target: string): boolean;
747
750
  }
748
751
 
749
- export { Assertion, Cli, CollectService, Color, type CommandLineOptions, type ConfigFileOptions, ConfigService, DescribeResult, Diagnostic, DiagnosticCategory, type DiagnosticOrigin, Environment, type Event, EventEmitter, type EventHandler, Expect, ExpectResult, FileResult, type FileResultStatus, type ItemDefinition, Line, Logger, type LoggerOptions, type MatchResult, OptionBrand, type OptionDefinition, OptionDefinitionsMap, OptionGroup, Path, ProjectResult, ProjectService, Reporter, type ResolvedConfig, Result, ResultCount, ResultManager, ResultStatus, ResultTiming, Scribbler, type ScribblerOptions, StoreService, SummaryReporter, TSTyche, TargetResult, TaskRunner, TestMember, TestMemberBrand, TestMemberFlags, TestResult, TestTree, Text, ThoroughReporter, type TypeChecker, Version, type WriteStream, addsPackageStepText, describeNameText, diagnosticText, fileStatusText, fileViewText, formattedText, helpText, summaryText, testNameText, usesCompilerStepText };
752
+ export { Assertion, Cli, CollectService, Color, type CommandLineOptions, type ConfigFileOptions, ConfigService, DescribeResult, Diagnostic, DiagnosticCategory, type DiagnosticOrigin, Environment, type Event, EventEmitter, type EventHandler, Expect, ExpectResult, FileResult, type FileResultStatus, type ItemDefinition, Line, Logger, type LoggerOptions, type MatchResult, OptionBrand, type OptionDefinition, OptionDefinitionsMap, OptionGroup, Path, ProjectResult, ProjectService, Reporter, type ResolvedConfig, Result, ResultCount, ResultManager, ResultStatus, ResultTiming, Scribbler, type ScribblerOptions, StoreService, SummaryReporter, TSTyche, TargetResult, type TargetResultStatus, TaskRunner, TestMember, TestMemberBrand, TestMemberFlags, TestResult, TestTree, Text, ThoroughReporter, type TypeChecker, Version, type WriteStream, addsPackageStepText, describeNameText, diagnosticText, fileStatusText, fileViewText, formattedText, helpText, summaryText, testNameText, usesCompilerStepText };
package/build/tstyche.js CHANGED
@@ -999,6 +999,15 @@ class DescribeResult {
999
999
  }
1000
1000
  }
1001
1001
 
1002
+ var ResultStatus;
1003
+ (function (ResultStatus) {
1004
+ ResultStatus["Runs"] = "runs";
1005
+ ResultStatus["Passed"] = "passed";
1006
+ ResultStatus["Failed"] = "failed";
1007
+ ResultStatus["Skipped"] = "skipped";
1008
+ ResultStatus["Todo"] = "todo";
1009
+ })(ResultStatus || (ResultStatus = {}));
1010
+
1002
1011
  class ExpectResult {
1003
1012
  assertion;
1004
1013
  parent;
@@ -1254,15 +1263,6 @@ class ResultManager {
1254
1263
  }
1255
1264
  }
1256
1265
 
1257
- var ResultStatus;
1258
- (function (ResultStatus) {
1259
- ResultStatus["Runs"] = "runs";
1260
- ResultStatus["Passed"] = "passed";
1261
- ResultStatus["Failed"] = "failed";
1262
- ResultStatus["Skipped"] = "skipped";
1263
- ResultStatus["Todo"] = "todo";
1264
- })(ResultStatus || (ResultStatus = {}));
1265
-
1266
1266
  class TargetResult {
1267
1267
  versionTag;
1268
1268
  testFiles;
@@ -1695,7 +1695,6 @@ var TestMemberBrand;
1695
1695
  TestMemberBrand["Test"] = "test";
1696
1696
  TestMemberBrand["Expect"] = "expect";
1697
1697
  })(TestMemberBrand || (TestMemberBrand = {}));
1698
-
1699
1698
  var TestMemberFlags;
1700
1699
  (function (TestMemberFlags) {
1701
1700
  TestMemberFlags[TestMemberFlags["None"] = 0] = "None";
@@ -1708,69 +1707,61 @@ var TestMemberFlags;
1708
1707
  class PrimitiveTypeMatcher {
1709
1708
  typeChecker;
1710
1709
  #targetTypeFlag;
1711
- #targetTypeText;
1712
- constructor(typeChecker, targetTypeFlag, targetTypeText) {
1710
+ constructor(typeChecker, targetTypeFlag) {
1713
1711
  this.typeChecker = typeChecker;
1714
1712
  this.#targetTypeFlag = targetTypeFlag;
1715
- this.#targetTypeText = targetTypeText;
1716
1713
  }
1717
- #explain(sourceType, isNot) {
1714
+ #explain(sourceType) {
1718
1715
  const sourceTypeText = this.typeChecker.typeToString(sourceType);
1719
- return isNot
1720
- ? [Diagnostic.error(`Type '${this.#targetTypeText}' is identical to type '${sourceTypeText}'.`)]
1721
- : [Diagnostic.error(`Type '${this.#targetTypeText}' is not identical to type '${sourceTypeText}'.`)];
1716
+ return [Diagnostic.error(`The source type is '${sourceTypeText}'.`)];
1722
1717
  }
1723
- match(sourceType, isNot) {
1718
+ match(sourceType) {
1724
1719
  const isMatch = Boolean(sourceType.flags & this.#targetTypeFlag);
1725
1720
  return {
1726
- explain: () => this.#explain(sourceType, isNot),
1721
+ explain: () => this.#explain(sourceType),
1727
1722
  isMatch,
1728
1723
  };
1729
1724
  }
1730
1725
  }
1731
1726
 
1732
- class ToBeAssignable {
1727
+ class RelationMatcherBase {
1733
1728
  typeChecker;
1734
1729
  constructor(typeChecker) {
1735
1730
  this.typeChecker = typeChecker;
1736
1731
  }
1737
- #explain(sourceType, targetType, isNot) {
1732
+ explain(sourceType, targetType, isNot) {
1738
1733
  const sourceTypeText = this.typeChecker.typeToString(sourceType);
1739
1734
  const targetTypeText = this.typeChecker.typeToString(targetType);
1740
1735
  return isNot
1741
- ? [Diagnostic.error(`Type '${targetTypeText}' is assignable to type '${sourceTypeText}'.`)]
1742
- : [Diagnostic.error(`Type '${targetTypeText}' is not assignable to type '${sourceTypeText}'.`)];
1736
+ ? [Diagnostic.error(`Type '${targetTypeText}' is ${this.relationExplanationText} type '${sourceTypeText}'.`)]
1737
+ : [Diagnostic.error(`Type '${targetTypeText}' is not ${this.relationExplanationText} type '${sourceTypeText}'.`)];
1743
1738
  }
1744
1739
  match(sourceType, targetType, isNot) {
1745
- const isMatch = this.typeChecker.isTypeRelatedTo(targetType, sourceType, this.typeChecker.relation.assignable);
1740
+ const isMatch = this.typeChecker.isTypeRelatedTo(sourceType, targetType, this.relation);
1746
1741
  return {
1747
- explain: () => this.#explain(sourceType, targetType, isNot),
1742
+ explain: () => this.explain(sourceType, targetType, isNot),
1748
1743
  isMatch,
1749
1744
  };
1750
1745
  }
1751
1746
  }
1752
1747
 
1753
- class ToEqual {
1754
- typeChecker;
1755
- constructor(typeChecker) {
1756
- this.typeChecker = typeChecker;
1757
- }
1758
- #explain(sourceType, targetType, isNot) {
1759
- const sourceTypeText = this.typeChecker.typeToString(sourceType);
1760
- const targetTypeText = this.typeChecker.typeToString(targetType);
1761
- return isNot
1762
- ? [Diagnostic.error(`Type '${targetTypeText}' is identical to type '${sourceTypeText}'.`)]
1763
- : [Diagnostic.error(`Type '${targetTypeText}' is not identical to type '${sourceTypeText}'.`)];
1764
- }
1748
+ class ToBeAssignable extends RelationMatcherBase {
1749
+ relation = this.typeChecker.relation.assignable;
1750
+ relationExplanationText = "assignable to";
1765
1751
  match(sourceType, targetType, isNot) {
1766
- const isMatch = this.typeChecker.isTypeRelatedTo(sourceType, targetType, this.typeChecker.relation.identity);
1752
+ const isMatch = this.typeChecker.isTypeRelatedTo(targetType, sourceType, this.relation);
1767
1753
  return {
1768
- explain: () => this.#explain(sourceType, targetType, isNot),
1754
+ explain: () => this.explain(sourceType, targetType, isNot),
1769
1755
  isMatch,
1770
1756
  };
1771
1757
  }
1772
1758
  }
1773
1759
 
1760
+ class ToEqual extends RelationMatcherBase {
1761
+ relation = this.typeChecker.relation.identity;
1762
+ relationExplanationText = "identical to";
1763
+ }
1764
+
1774
1765
  class ToHaveProperty {
1775
1766
  compiler;
1776
1767
  typeChecker;
@@ -1812,25 +1803,9 @@ class ToHaveProperty {
1812
1803
  }
1813
1804
  }
1814
1805
 
1815
- class ToMatch {
1816
- typeChecker;
1817
- constructor(typeChecker) {
1818
- this.typeChecker = typeChecker;
1819
- }
1820
- #explain(sourceType, targetType, isNot) {
1821
- const sourceTypeText = this.typeChecker.typeToString(sourceType);
1822
- const targetTypeText = this.typeChecker.typeToString(targetType);
1823
- return isNot
1824
- ? [Diagnostic.error(`Type '${targetTypeText}' is a subtype of type '${sourceTypeText}'.`)]
1825
- : [Diagnostic.error(`Type '${targetTypeText}' is not a subtype of type '${sourceTypeText}'.`)];
1826
- }
1827
- match(sourceType, targetType, isNot) {
1828
- const isMatch = this.typeChecker.isTypeRelatedTo(sourceType, targetType, this.typeChecker.relation.subtype);
1829
- return {
1830
- explain: () => this.#explain(sourceType, targetType, isNot),
1831
- isMatch,
1832
- };
1833
- }
1806
+ class ToMatch extends RelationMatcherBase {
1807
+ relation = this.typeChecker.relation.subtype;
1808
+ relationExplanationText = "a subtype of";
1834
1809
  }
1835
1810
 
1836
1811
  class ToRaiseError {
@@ -1952,19 +1927,19 @@ class Expect {
1952
1927
  constructor(compiler, typeChecker) {
1953
1928
  this.compiler = compiler;
1954
1929
  this.typeChecker = typeChecker;
1955
- this.toBeAny = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Any, "any");
1930
+ this.toBeAny = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Any);
1956
1931
  this.toBeAssignable = new ToBeAssignable(this.typeChecker);
1957
- this.toBeBigInt = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.BigInt, "bigint");
1958
- this.toBeBoolean = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Boolean, "boolean");
1959
- this.toBeNever = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Never, "never");
1960
- this.toBeNull = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Null, "null");
1961
- this.toBeNumber = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Number, "number");
1962
- this.toBeString = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.String, "string");
1963
- this.toBeSymbol = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.ESSymbol, "symbol");
1964
- this.toBeUndefined = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Undefined, "undefined");
1965
- this.toBeUniqueSymbol = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.UniqueESSymbol, "unique symbol");
1966
- this.toBeUnknown = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Unknown, "unknown");
1967
- this.toBeVoid = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Void, "void");
1932
+ this.toBeBigInt = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.BigInt);
1933
+ this.toBeBoolean = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Boolean);
1934
+ this.toBeNever = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Never);
1935
+ this.toBeNull = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Null);
1936
+ this.toBeNumber = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Number);
1937
+ this.toBeString = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.String);
1938
+ this.toBeSymbol = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.ESSymbol);
1939
+ this.toBeUndefined = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Undefined);
1940
+ this.toBeUniqueSymbol = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.UniqueESSymbol);
1941
+ this.toBeUnknown = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Unknown);
1942
+ this.toBeVoid = new PrimitiveTypeMatcher(this.typeChecker, this.compiler.TypeFlags.Void);
1968
1943
  this.toEqual = new ToEqual(this.typeChecker);
1969
1944
  this.toHaveProperty = new ToHaveProperty(this.compiler, this.typeChecker);
1970
1945
  this.toMatch = new ToMatch(this.typeChecker);
@@ -2021,7 +1996,7 @@ class Expect {
2021
1996
  this.#onSourceArgumentMustBeProvided(assertion, expectResult);
2022
1997
  return;
2023
1998
  }
2024
- return this[matcherNameText].match(this.#getType(assertion.source[0]), assertion.isNot);
1999
+ return this[matcherNameText].match(this.#getType(assertion.source[0]));
2025
2000
  case "toHaveProperty": {
2026
2001
  if (assertion.source[0] == null) {
2027
2002
  this.#onSourceArgumentMustBeProvided(assertion, expectResult);
@@ -2580,7 +2555,7 @@ class TSTyche {
2580
2555
  #abortController = new AbortController();
2581
2556
  #storeService;
2582
2557
  #taskRunner;
2583
- static version = "1.0.0-rc.2";
2558
+ static version = "1.0.0";
2584
2559
  constructor(resolvedConfig, storeService) {
2585
2560
  this.resolvedConfig = resolvedConfig;
2586
2561
  this.#storeService = storeService;
@@ -3194,7 +3169,6 @@ var OptionBrand;
3194
3169
  OptionBrand["True"] = "true";
3195
3170
  OptionBrand["List"] = "list";
3196
3171
  })(OptionBrand || (OptionBrand = {}));
3197
-
3198
3172
  var OptionGroup;
3199
3173
  (function (OptionGroup) {
3200
3174
  OptionGroup[OptionGroup["CommandLine"] = 2] = "CommandLine";
@@ -3589,7 +3563,7 @@ class StoreService {
3589
3563
  `The resolution of the '${tag}' tag may be outdated.`,
3590
3564
  ]));
3591
3565
  }
3592
- return this.#manifest.versions.includes(tag) || tag in this.#manifest.resolutions || tag === "current";
3566
+ return tag in this.#manifest.resolutions || this.#manifest.versions.includes(tag);
3593
3567
  }
3594
3568
  }
3595
3569
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tstyche",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0",
4
4
  "description": "The Essential Type Testing Tool.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -50,35 +50,38 @@
50
50
  "lint": "eslint ./ --config eslint.config.json --ext .js,.cts,.ts,.tsx",
51
51
  "prepack": "yarn clean && yarn build",
52
52
  "prepublish": "yarn test",
53
- "test": "NODE_OPTIONS='--experimental-vm-modules --no-warnings' jest --config jest.config.js",
53
+ "test": "yarn test:unit && yarn test:e2e",
54
54
  "test:coverage": "yarn build --sourcemap && c8 --config c8.config.json yarn test:e2e",
55
- "test:e2e": "yarn test --testMatch '**/tests/*.test.js'",
55
+ "test:e2e": "NODE_OPTIONS='--experimental-vm-modules --no-warnings' jest --config jest.config.js",
56
56
  "test:examples": "tstyche examples",
57
57
  "test:types": "tstyche tests",
58
- "test:unit": "yarn test --testMatch '**/source/**/__tests__/*.test.ts?(x)'"
58
+ "test:unit": "mocha --config mocha.config.json"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@jest/globals": "29.7.0",
62
62
  "@rollup/plugin-typescript": "11.1.6",
63
- "@types/node": "20.11.17",
64
- "@typescript-eslint/eslint-plugin": "7.0.1",
65
- "@typescript-eslint/parser": "7.0.1",
63
+ "@types/chai": "4.3.11",
64
+ "@types/mocha": "10.0.6",
65
+ "@types/node": "20.11.19",
66
+ "@typescript-eslint/eslint-plugin": "7.0.2",
67
+ "@typescript-eslint/parser": "7.0.2",
66
68
  "ajv": "8.12.0",
67
69
  "c8": "9.1.0",
68
- "cspell": "8.3.2",
70
+ "chai": "5.1.0",
71
+ "cspell": "8.4.0",
69
72
  "dprint": "0.45.0",
70
73
  "eslint": "8.56.0",
71
74
  "eslint-import-resolver-typescript": "3.6.1",
72
75
  "eslint-plugin-import": "2.29.1",
73
- "eslint-plugin-jest": "27.8.0",
76
+ "eslint-plugin-jest": "27.9.0",
74
77
  "eslint-plugin-jest-formatting": "3.1.0",
75
78
  "eslint-plugin-simple-import-sort": "12.0.0",
76
79
  "jest": "29.7.0",
77
- "jest-serializer-ansi-escapes": "2.0.1",
78
80
  "magic-string": "0.30.7",
79
- "rollup": "4.10.0",
81
+ "mocha": "10.3.0",
82
+ "pretty-ansi": "1.0.0",
83
+ "rollup": "4.12.0",
80
84
  "rollup-plugin-dts": "6.1.0",
81
- "ts-node": "10.9.2",
82
85
  "tslib": "2.6.2",
83
86
  "typescript": "5.3.3"
84
87
  },