tstyche 3.0.0-beta.0 → 3.0.0-beta.2

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/README.md CHANGED
@@ -39,8 +39,8 @@ To organize, debug and plan tests TSTyche has:
39
39
  The assertions can be used to write type tests (like in the above example) or mixed in your functional tests:
40
40
 
41
41
  ```ts
42
- import assert from "node:assert/strict";
43
- import { test } from "node:test";
42
+ import assert from "node:assert";
43
+ import test from "node:test";
44
44
  import * as tstyche from "tstyche";
45
45
 
46
46
  function secondItem<T>(target: Array<T>): T | undefined {
@@ -1,16 +1,5 @@
1
1
  import type ts from 'typescript';
2
2
 
3
- declare class StoreService {
4
- #private;
5
- constructor();
6
- getSupportedTags(): Promise<Array<string>>;
7
- install(tag: string): Promise<string | undefined>;
8
- load(tag: string): Promise<typeof ts | undefined>;
9
- open(): Promise<void>;
10
- update(): Promise<void>;
11
- validateTag(tag: string): Promise<boolean | undefined>;
12
- }
13
-
14
3
  declare enum OptionBrand {
15
4
  String = "string",
16
5
  Number = "number",
@@ -18,41 +7,41 @@ declare enum OptionBrand {
18
7
  BareTrue = "bareTrue",// a boolean option that does not take a value and when specified is interpreted as 'true'
19
8
  List = "list"
20
9
  }
10
+
21
11
  declare enum OptionGroup {
22
12
  CommandLine = 2,
23
13
  ConfigFile = 4
24
14
  }
25
15
 
26
- interface ItemDefinition {
27
- brand: OptionBrand.String;
28
- name: string;
29
- pattern?: string;
30
- }
31
- type OptionDefinition = PrimitiveTypeOptionDefinition | ListTypeOptionDefinition;
32
- interface BaseOptionDefinition {
33
- brand: OptionBrand;
34
- description: string;
35
- group: OptionGroup;
36
- name: string;
37
- }
38
- interface PrimitiveTypeOptionDefinition extends BaseOptionDefinition {
39
- brand: OptionBrand.String | OptionBrand.Number | OptionBrand.Boolean | OptionBrand.BareTrue;
40
- }
41
- interface ListTypeOptionDefinition extends BaseOptionDefinition {
42
- brand: OptionBrand.List;
43
- items: ItemDefinition;
16
+ declare class ConfigDiagnosticText {
17
+ #private;
18
+ static expected(element: string): string;
19
+ static expectsListItemType(optionName: string, optionBrand: OptionBrand): string;
20
+ static expectsValue(optionName: string, optionGroup: OptionGroup): string;
21
+ static fileDoesNotExist(filePath: string): string;
22
+ static seen(element: string): string;
23
+ static testFileMatchCannotStartWith(segment: string): Array<string>;
24
+ static requiresValueType(optionName: string, optionBrand: OptionBrand, optionGroup: OptionGroup): string;
25
+ static unknownOption(optionName: string): string;
26
+ static versionIsNotSupported(value: string): string;
27
+ static watchCannotBeEnabled(): string;
44
28
  }
45
- declare class OptionDefinitionsMap {
29
+
30
+ declare class StoreService {
46
31
  #private;
47
- static for(optionGroup: OptionGroup): Map<string, OptionDefinition>;
32
+ constructor();
33
+ getSupportedTags(): Promise<Array<string> | undefined>;
34
+ install(tag: string): Promise<void>;
35
+ load(tag: string): Promise<typeof ts | undefined>;
36
+ open(): Promise<void>;
37
+ prune(): Promise<void>;
38
+ update(): Promise<void>;
39
+ validateTag(tag: string): Promise<boolean | undefined>;
48
40
  }
49
41
 
50
- declare class TestTree {
51
- diagnostics: Set<ts.Diagnostic>;
52
- members: Array<TestMember | Assertion>;
53
- sourceFile: ts.SourceFile;
54
- constructor(diagnostics: Set<ts.Diagnostic>, sourceFile: ts.SourceFile);
55
- get hasOnly(): boolean;
42
+ declare enum DiagnosticCategory {
43
+ Error = "error",
44
+ Warning = "warning"
56
45
  }
57
46
 
58
47
  declare enum TestMemberBrand {
@@ -60,6 +49,7 @@ declare enum TestMemberBrand {
60
49
  Test = "test",
61
50
  Expect = "expect"
62
51
  }
52
+
63
53
  declare enum TestMemberFlags {
64
54
  None = 0,
65
55
  Fail = 1,
@@ -68,6 +58,14 @@ declare enum TestMemberFlags {
68
58
  Todo = 8
69
59
  }
70
60
 
61
+ declare class TestTree {
62
+ diagnostics: Set<ts.Diagnostic>;
63
+ members: Array<TestMember | Assertion>;
64
+ sourceFile: ts.SourceFile;
65
+ constructor(diagnostics: Set<ts.Diagnostic>, sourceFile: ts.SourceFile);
66
+ get hasOnly(): boolean;
67
+ }
68
+
71
69
  declare class TestMember {
72
70
  #private;
73
71
  brand: TestMemberBrand;
@@ -101,22 +99,28 @@ declare class CollectService {
101
99
  createTestTree(sourceFile: ts.SourceFile, semanticDiagnostics?: Array<ts.Diagnostic>): TestTree;
102
100
  }
103
101
 
102
+ declare class SourceFile {
103
+ #private;
104
+ fileName: string;
105
+ text: string;
106
+ constructor(fileName: string, text: string);
107
+ getLineStarts(): Array<number>;
108
+ getLineAndCharacterOfPosition(position: number): {
109
+ line: number;
110
+ character: number;
111
+ };
112
+ }
113
+
104
114
  declare class DiagnosticOrigin {
105
115
  assertion: Assertion | undefined;
106
116
  end: number;
107
- sourceFile: ts.SourceFile;
117
+ sourceFile: SourceFile | ts.SourceFile;
108
118
  start: number;
109
- constructor(start: number, end: number, sourceFile: ts.SourceFile, assertion?: Assertion);
119
+ constructor(start: number, end: number, sourceFile: SourceFile | ts.SourceFile, assertion?: Assertion);
110
120
  static fromAssertion(assertion: Assertion): DiagnosticOrigin;
111
- static fromJsonNode(node: ts.Node, sourceFile: ts.SourceFile, skipTrivia: (position: number, sourceFile: ts.SourceFile) => number): DiagnosticOrigin;
112
121
  static fromNode(node: ts.Node, assertion?: Assertion): DiagnosticOrigin;
113
122
  }
114
123
 
115
- declare enum DiagnosticCategory {
116
- Error = "error",
117
- Warning = "warning"
118
- }
119
-
120
124
  declare class Diagnostic {
121
125
  #private;
122
126
  category: DiagnosticCategory;
@@ -135,6 +139,28 @@ declare class Diagnostic {
135
139
  static warning(text: string | Array<string>, origin?: DiagnosticOrigin): Diagnostic;
136
140
  }
137
141
 
142
+ /**
143
+ * Options loaded from the configuration file.
144
+ */
145
+ interface ConfigFileOptions {
146
+ /**
147
+ * Stop running tests after the first failed assertion.
148
+ */
149
+ failFast?: boolean;
150
+ /**
151
+ * The path to a directory containing files of a test project.
152
+ */
153
+ rootPath?: string;
154
+ /**
155
+ * The list of TypeScript versions to be tested on.
156
+ */
157
+ target?: Array<string>;
158
+ /**
159
+ * The list of glob patterns matching the test files.
160
+ */
161
+ testFileMatch?: Array<string>;
162
+ }
163
+
138
164
  /**
139
165
  * Options passed through the command line.
140
166
  */
@@ -193,42 +219,38 @@ interface CommandLineOptions {
193
219
  watch?: boolean;
194
220
  }
195
221
 
196
- declare class ConfigDiagnosticText {
197
- #private;
198
- static doubleQuotesExpected(): string;
199
- static expectsListItemType(optionName: string, optionBrand: OptionBrand): string;
200
- static expectsValue(optionName: string, optionGroup: OptionGroup): string;
201
- static fileDoesNotExist(filePath: string): string;
202
- static testFileMatchCannotStartWith(segment: string): Array<string>;
203
- static requiresValueType(optionName: string, optionBrand: OptionBrand, optionGroup: OptionGroup): string;
204
- static unknownOption(optionName: string): string;
205
- static versionIsNotSupported(value: string): string;
206
- static watchCannotBeEnabled(): string;
207
- }
208
-
209
- /**
210
- * Options loaded from the configuration file.
211
- */
212
- interface ConfigFileOptions {
222
+ interface EnvironmentOptions {
213
223
  /**
214
- * Stop running tests after the first failed assertion.
224
+ * Is `true` if the process is running in a continuous integration environment.
215
225
  */
216
- failFast?: boolean;
226
+ isCi: boolean;
217
227
  /**
218
- * The path to a directory containing files of a test project.
228
+ * Specifies whether color should be disabled in the output.
219
229
  */
220
- rootPath?: string;
230
+ noColor: boolean;
221
231
  /**
222
- * The list of TypeScript versions to be tested on.
232
+ * Specifies whether interactive elements should be disabled in the output.
223
233
  */
224
- target?: Array<string>;
234
+ noInteractive: boolean;
225
235
  /**
226
- * The list of glob patterns matching the test files.
236
+ * The base URL of the 'npm' registry to use.
227
237
  */
228
- testFileMatch?: Array<string>;
238
+ npmRegistry: string;
239
+ /**
240
+ * The directory where to store the 'typescript' packages.
241
+ */
242
+ storePath: string;
243
+ /**
244
+ * The number of seconds to wait before giving up stale operations.
245
+ */
246
+ timeout: number;
247
+ /**
248
+ * The path to the currently installed TypeScript module.
249
+ */
250
+ typescriptPath: string | undefined;
229
251
  }
230
252
 
231
- interface ResolvedConfig extends Omit<CommandLineOptions, keyof ConfigFileOptions | "config">, Required<ConfigFileOptions> {
253
+ interface ResolvedConfig extends EnvironmentOptions, Omit<CommandLineOptions, keyof ConfigFileOptions | "config">, Required<ConfigFileOptions> {
232
254
  /**
233
255
  * The path to a TSTyche configuration file.
234
256
  */
@@ -238,15 +260,41 @@ interface ResolvedConfig extends Omit<CommandLineOptions, keyof ConfigFileOption
238
260
  */
239
261
  pathMatch: Array<string>;
240
262
  }
241
- declare const defaultOptions: Required<ConfigFileOptions>;
242
263
  declare class ConfigService {
243
264
  #private;
244
- constructor(compiler: typeof ts, storeService: StoreService);
245
- parseCommandLine(commandLineArgs: Array<string>): Promise<void>;
246
- readConfigFile(): Promise<void>;
265
+ parseCommandLine(commandLineArgs: Array<string>, storeService: StoreService): Promise<void>;
266
+ readConfigFile(storeService: StoreService): Promise<void>;
247
267
  resolveConfig(): ResolvedConfig;
248
268
  }
249
269
 
270
+ interface ItemDefinition {
271
+ brand: OptionBrand.String;
272
+ name: string;
273
+ pattern?: string;
274
+ }
275
+ type OptionDefinition = PrimitiveTypeOptionDefinition | ListTypeOptionDefinition;
276
+ interface BaseOptionDefinition {
277
+ brand: OptionBrand;
278
+ description: string;
279
+ group: OptionGroup;
280
+ name: string;
281
+ }
282
+ interface PrimitiveTypeOptionDefinition extends BaseOptionDefinition {
283
+ brand: OptionBrand.String | OptionBrand.Number | OptionBrand.Boolean | OptionBrand.BareTrue;
284
+ }
285
+ interface ListTypeOptionDefinition extends BaseOptionDefinition {
286
+ brand: OptionBrand.List;
287
+ items: ItemDefinition;
288
+ }
289
+ declare class OptionDefinitionsMap {
290
+ #private;
291
+ static for(optionGroup: OptionGroup): Map<string, OptionDefinition>;
292
+ }
293
+
294
+ declare const defaultOptions: Required<ConfigFileOptions>;
295
+
296
+ declare const environmentOptions: EnvironmentOptions;
297
+
250
298
  declare enum Color {
251
299
  Reset = "0",
252
300
  Red = "31",
@@ -304,19 +352,12 @@ interface TextProps {
304
352
  }
305
353
  declare function Text({ children, color, indent }: TextProps): ScribblerJsx.Element;
306
354
 
307
- declare function addsPackageStepText(packageVersion: string, packagePath: string): ScribblerJsx.Element;
355
+ declare function addsPackageText(packageVersion: string, packagePath: string): ScribblerJsx.Element;
308
356
 
309
357
  declare function describeNameText(name: string, indent?: number): ScribblerJsx.Element;
310
358
 
311
359
  declare function diagnosticText(diagnostic: Diagnostic): ScribblerJsx.Element;
312
360
 
313
- declare class TestFile {
314
- #private;
315
- path: string;
316
- position: number | undefined;
317
- constructor(identifier: string | URL, position?: number);
318
- }
319
-
320
361
  declare class ResultTiming {
321
362
  end: number;
322
363
  start: number;
@@ -367,23 +408,30 @@ declare class DescribeResult {
367
408
  constructor(describe: TestMember, parent?: DescribeResult);
368
409
  }
369
410
 
370
- type FileResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
371
- declare class FileResult {
411
+ declare class Task {
412
+ #private;
413
+ filePath: string;
414
+ position: number | undefined;
415
+ constructor(filePath: string | URL, position?: number);
416
+ }
417
+
418
+ type TaskResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus.Failed;
419
+ declare class TaskResult {
372
420
  diagnostics: Array<Diagnostic>;
373
421
  expectCount: ResultCount;
374
422
  results: Array<DescribeResult | TestResult | ExpectResult>;
375
- status: FileResultStatus;
423
+ status: TaskResultStatus;
424
+ task: Task;
376
425
  testCount: ResultCount;
377
- testFile: TestFile;
378
426
  timing: ResultTiming;
379
- constructor(testFile: TestFile);
427
+ constructor(task: Task);
380
428
  }
381
429
 
382
430
  declare class ProjectResult {
383
431
  compilerVersion: string;
384
432
  diagnostics: Array<Diagnostic>;
385
433
  projectConfigFilePath: string | undefined;
386
- results: Array<FileResult>;
434
+ results: Array<TaskResult>;
387
435
  constructor(compilerVersion: string, projectConfigFilePath: string | undefined);
388
436
  }
389
437
 
@@ -391,10 +439,10 @@ type TargetResultStatus = ResultStatus.Runs | ResultStatus.Passed | ResultStatus
391
439
  declare class TargetResult {
392
440
  results: Map<string | undefined, ProjectResult>;
393
441
  status: TargetResultStatus;
394
- testFiles: Array<TestFile>;
442
+ tasks: Array<Task>;
395
443
  timing: ResultTiming;
396
444
  versionTag: string;
397
- constructor(versionTag: string, testFiles: Array<TestFile>);
445
+ constructor(versionTag: string, tasks: Array<Task>);
398
446
  }
399
447
 
400
448
  declare class Result {
@@ -403,13 +451,13 @@ declare class Result {
403
451
  resolvedConfig: ResolvedConfig;
404
452
  results: Array<TargetResult>;
405
453
  targetCount: ResultCount;
454
+ tasks: Array<Task>;
406
455
  testCount: ResultCount;
407
- testFiles: Array<TestFile>;
408
456
  timing: ResultTiming;
409
- constructor(resolvedConfig: ResolvedConfig, testFiles: Array<TestFile>);
457
+ constructor(resolvedConfig: ResolvedConfig, tasks: Array<Task>);
410
458
  }
411
459
 
412
- declare function fileStatusText(status: FileResultStatus, testFile: TestFile): ScribblerJsx.Element;
460
+ declare function taskStatusText(status: TaskResultStatus, task: Task): ScribblerJsx.Element;
413
461
 
414
462
  declare function fileViewText(lines: Array<ScribblerJsx.Element>, addEmptyFinalLine: boolean): ScribblerJsx.Element;
415
463
 
@@ -417,17 +465,9 @@ declare function formattedText(input: string | Array<string> | Record<string, un
417
465
 
418
466
  declare function helpText(optionDefinitions: Map<string, OptionDefinition>, tstycheVersion: string): ScribblerJsx.Element;
419
467
 
420
- interface WriteStream {
421
- write: (chunk: string) => void;
422
- }
423
- interface OutputServiceOptions {
424
- noColor?: boolean;
425
- stderr?: WriteStream;
426
- stdout?: WriteStream;
427
- }
428
468
  declare class OutputService {
429
469
  #private;
430
- constructor(options?: OutputServiceOptions);
470
+ constructor();
431
471
  clearTerminal(): void;
432
472
  eraseLastLine(): void;
433
473
  writeError(element: ScribblerJsx.Element | Array<ScribblerJsx.Element>): void;
@@ -448,7 +488,7 @@ declare function summaryText({ duration, expectCount, fileCount, onlyMatch, path
448
488
 
449
489
  declare function testNameText(status: "fail" | "pass" | "skip" | "todo", name: string, indent?: number): ScribblerJsx.Element;
450
490
 
451
- declare function usesCompilerStepText(compilerVersion: string, tsconfigFilePath: string | undefined, options?: {
491
+ declare function usesCompilerText(compilerVersion: string, projectConfigFilePath: string | undefined, options?: {
452
492
  prependEmptyLine: boolean;
453
493
  }): ScribblerJsx.Element;
454
494
 
@@ -497,49 +537,15 @@ declare class Cli {
497
537
  run(commandLineArguments: Array<string>, cancellationToken?: CancellationToken): Promise<void>;
498
538
  }
499
539
 
500
- declare class Environment {
501
- #private;
502
- /**
503
- * Is `true` if the process is running in a continuous integration environment.
504
- */
505
- static get isCi(): boolean;
506
- /**
507
- * Specifies whether color should be disabled in the output.
508
- */
509
- static get noColor(): boolean;
510
- /**
511
- * Specifies whether interactive elements should be disabled in the output.
512
- */
513
- static get noInteractive(): boolean;
514
- /**
515
- * The base URL of the 'npm' registry to use.
516
- */
517
- static get npmRegistry(): string;
518
- /**
519
- * The directory where to store the 'typescript' packages.
520
- */
521
- static get storePath(): string;
522
- /**
523
- * The number of seconds to wait before giving up stale operations.
524
- */
525
- static get timeout(): number;
526
- /**
527
- * The path to the currently installed TypeScript module.
528
- */
529
- static get typescriptPath(): string | undefined;
530
- }
531
-
532
540
  type Event = ["config:error", {
533
541
  diagnostics: Array<Diagnostic>;
534
- }] | ["deprecation:info", {
535
- diagnostics: Array<Diagnostic>;
536
542
  }] | ["select:error", {
537
543
  diagnostics: Array<Diagnostic>;
538
544
  }] | ["run:start", {
539
545
  result: Result;
540
546
  }] | ["run:end", {
541
547
  result: Result;
542
- }] | ["store:info", {
548
+ }] | ["store:adds", {
543
549
  packagePath: string;
544
550
  packageVersion: string;
545
551
  }] | ["store:error", {
@@ -548,18 +554,18 @@ type Event = ["config:error", {
548
554
  result: TargetResult;
549
555
  }] | ["target:end", {
550
556
  result: TargetResult;
551
- }] | ["project:info", {
557
+ }] | ["project:uses", {
552
558
  compilerVersion: string;
553
559
  projectConfigFilePath: string | undefined;
554
560
  }] | ["project:error", {
555
561
  diagnostics: Array<Diagnostic>;
556
- }] | ["file:start", {
557
- result: FileResult;
558
- }] | ["file:error", {
562
+ }] | ["task:start", {
563
+ result: TaskResult;
564
+ }] | ["task:error", {
559
565
  diagnostics: Array<Diagnostic>;
560
- result: FileResult;
561
- }] | ["file:end", {
562
- result: FileResult;
566
+ result: TaskResult;
567
+ }] | ["task:end", {
568
+ result: TaskResult;
563
569
  }] | ["describe:start", {
564
570
  result: DescribeResult;
565
571
  }] | ["describe:end", {
@@ -793,19 +799,9 @@ declare class WatchReporter extends Reporter implements EventHandler {
793
799
  }
794
800
 
795
801
  type InputHandler = (chunk: string) => void;
796
- interface ReadStream {
797
- addListener: (event: "data", handler: InputHandler) => this;
798
- removeListener: (event: "data", handler: InputHandler) => this;
799
- setEncoding: (encoding: "utf8") => this;
800
- setRawMode?: (mode: boolean) => this;
801
- unref: () => this;
802
- }
803
- interface InputServiceOptions {
804
- stdin?: ReadStream;
805
- }
806
802
  declare class InputService {
807
803
  #private;
808
- constructor(onInput: InputHandler, options?: InputServiceOptions);
804
+ constructor(onInput: InputHandler);
809
805
  close(): void;
810
806
  }
811
807
 
@@ -826,11 +822,11 @@ declare class ProjectService {
826
822
  openFile(filePath: string, sourceText?: string | undefined, projectRootPath?: string | undefined): void;
827
823
  }
828
824
 
829
- declare class TaskRunner {
825
+ declare class Runner {
830
826
  #private;
831
827
  constructor(resolvedConfig: ResolvedConfig, selectService: SelectService, storeService: StoreService);
832
828
  close(): void;
833
- run(testFiles: Array<TestFile>, cancellationToken?: CancellationToken): Promise<void>;
829
+ run(tasks: Array<Task>, cancellationToken?: CancellationToken): Promise<void>;
834
830
  }
835
831
 
836
832
  declare class Version {
@@ -858,8 +854,8 @@ declare class FileWatcher extends Watcher {
858
854
 
859
855
  declare class WatchService {
860
856
  #private;
861
- constructor(resolvedConfig: ResolvedConfig, selectService: SelectService, testFiles: Array<TestFile>);
862
- watch(cancellationToken: CancellationToken): AsyncIterable<Array<TestFile>>;
857
+ constructor(resolvedConfig: ResolvedConfig, selectService: SelectService, tasks: Array<Task>);
858
+ watch(cancellationToken: CancellationToken): AsyncIterable<Array<Task>>;
863
859
  }
864
860
 
865
- export { Assertion, CancellationHandler, CancellationReason, CancellationToken, Cli, CollectService, Color, type CommandLineOptions, ConfigDiagnosticText, type ConfigFileOptions, ConfigService, DescribeResult, Diagnostic, DiagnosticCategory, DiagnosticOrigin, Environment, type Event, EventEmitter, type EventHandler, ExitCodeHandler, ExpectResult, ExpectService, FileResult, type FileResultStatus, type FileWatchHandler, FileWatcher, type InputHandler, InputService, type InputServiceOptions, type ItemDefinition, Line, type MatchResult, OptionBrand, type OptionDefinition, OptionDefinitionsMap, OptionGroup, OutputService, type OutputServiceOptions, Path, ProjectResult, ProjectService, type ReadStream, type ResolvedConfig, Result, ResultCount, ResultHandler, ResultStatus, ResultTiming, RunReporter, Scribbler, ScribblerJsx, type ScribblerOptions, SelectDiagnosticText, SelectService, SetupReporter, StoreService, SummaryReporter, TSTyche, TargetResult, type TargetResultStatus, TaskRunner, TestFile, TestMember, TestMemberBrand, TestMemberFlags, TestResult, TestTree, Text, type TypeChecker, Version, type WatchHandler, WatchReporter, WatchService, Watcher, type WatcherOptions, type WriteStream, addsPackageStepText, defaultOptions, describeNameText, diagnosticText, fileStatusText, fileViewText, formattedText, helpText, summaryText, testNameText, usesCompilerStepText, waitingForFileChangesText, watchUsageText };
861
+ export { Assertion, CancellationHandler, CancellationReason, CancellationToken, Cli, CollectService, Color, type CommandLineOptions, ConfigDiagnosticText, type ConfigFileOptions, ConfigService, DescribeResult, Diagnostic, DiagnosticCategory, DiagnosticOrigin, type Event, EventEmitter, type EventHandler, ExitCodeHandler, ExpectResult, ExpectService, type FileWatchHandler, FileWatcher, type InputHandler, InputService, type ItemDefinition, Line, type MatchResult, OptionBrand, type OptionDefinition, OptionDefinitionsMap, OptionGroup, OutputService, Path, ProjectResult, ProjectService, type ResolvedConfig, Result, ResultCount, ResultHandler, ResultStatus, ResultTiming, RunReporter, Runner, Scribbler, ScribblerJsx, type ScribblerOptions, SelectDiagnosticText, SelectService, SetupReporter, SourceFile, StoreService, SummaryReporter, TSTyche, TargetResult, type TargetResultStatus, Task, TaskResult, type TaskResultStatus, TestMember, TestMemberBrand, TestMemberFlags, TestResult, TestTree, Text, type TypeChecker, Version, type WatchHandler, WatchReporter, WatchService, Watcher, type WatcherOptions, addsPackageText, defaultOptions, describeNameText, diagnosticText, environmentOptions, fileViewText, formattedText, helpText, summaryText, taskStatusText, testNameText, usesCompilerText, waitingForFileChangesText, watchUsageText };