@@ -160,6 +160,11 @@ export interface INdjsonOptions {
160160 readonly maxRecordBytes? : number ;
161161}
162162
163+ // @beta
164+ export class InvalidReporterHelloError extends Error {
165+ constructor (reason : string );
166+ }
167+
163168// @beta
164169export interface IOldEngineOutputAdapterOptions {
165170 readonly maxChunkBytes? : number ;
@@ -378,15 +383,15 @@ export interface IScopedMessageOptions {
378383// @beta
379384export interface IScopedReporter {
380385 emitDiagnostic(diagnostic : IRushDiagnostic ): string ;
381- emitExtension< TPayload > (name : ReporterExtensionEventName , payload : TPayload ): string ;
386+ emitExtension(name : ReporterExtensionEventName , payload : ReporterJsonValue ): string ;
382387 emitMessage(options : IScopedMessageOptions ): string ;
383388}
384389
385390// @beta
386391export function isReporterEventRequired(type : ReporterEventType ): boolean ;
387392
388393// @beta
389- export function isReporterExtensionEventName(name : string ): boolean ;
394+ export function isReporterExtensionEventName(name : string ): name is ReporterExtensionEventName ;
390395
391396// @beta
392397export function isReporterProtocolCompatible(consumer : IReporterProtocolVersion , producer : IReporterProtocolVersion ): boolean ;
@@ -416,14 +421,22 @@ export class NdjsonDecoder {
416421 flush(): unknown [];
417422}
418423
424+ // @beta
425+ export class NdjsonInvalidRecordError extends Error {
426+ constructor (decodedRecords : readonly unknown [], parseError : Error );
427+ readonly decodedRecords: readonly unknown [];
428+ readonly parseError: Error ;
429+ }
430+
419431// @beta
420432export class NdjsonRecordTooLargeError extends Error {
421- constructor (maxRecordBytes : number );
433+ constructor (maxRecordBytes : number , decodedRecords ? : readonly unknown []);
434+ readonly decodedRecords: readonly unknown [];
422435 readonly maxRecordBytes: number ;
423436}
424437
425438// @beta
426- export function negotiateReporterHello(hello : IReporterHello , options : IReporterHandshakeOptions ): IReporterHandshakeResult ;
439+ export function negotiateReporterHello(helloValue : unknown , options : IReporterHandshakeOptions ): IReporterHandshakeResult ;
427440
428441// @beta
429442export class OldEngineOutputAdapter {
@@ -432,11 +445,17 @@ export class OldEngineOutputAdapter {
432445}
433446
434447// @beta
435- export type OneOrMoreRushDiagnosticCodeSegments <S extends string = RushDiagnosticCodeSegment > = S extends string ? S | ` ${ S }${ RushDiagnosticCodeSegment } ` : never ;
448+ export type OneOrMoreRushDiagnosticCodeSegments <TSegments extends string = string > = string extends TSegments ? ` _${ Uppercase < string >} ` : TSegments extends ` _${ infer Segments } ` ? Segments extends ' ' ? never : TSegments extends Uppercase < TSegments > ? TSegments : never : never ;
436449
437450// @beta
438451export function parseEarlyReporterControls(argv : readonly string [], env : Record <string , string | undefined >): IEarlyReporterControls ;
439452
453+ // @beta
454+ export function parseReporterExtensionEventName(name : string ): ReporterExtensionEventName ;
455+
456+ // @beta
457+ export function parseReporterHello(value : unknown ): IReporterHello ;
458+
440459// @beta
441460export function readBootstrapHandoffFileAsync(filePath : string ): Promise <{
442461 header: IBootstrapHandoffHeader | undefined ;
@@ -468,7 +487,9 @@ export type ReporterCompatibilityMode = 'structured' | 'new-frontend-old-engine'
468487export type ReporterEventType = (typeof REPORTER_EVENT_TYPES )[number ];
469488
470489// @beta
471- export type ReporterExtensionEventName = ` ${Lowercase <string >}.${Lowercase <string >} ` ;
490+ export type ReporterExtensionEventName = ` ${string }.${string } ` & {
491+ readonly __reporterExtensionEventNameBrand: ' ReporterExtensionEventName' ;
492+ };
472493
473494// @beta
474495export class ReporterHost {
@@ -592,13 +613,13 @@ export const RUSH_REPORTER_BOOTSTRAP_NONCE_ENV_VAR: '_RUSH_REPORTER_BOOTSTRAP_NO
592613export type RushDiagnosticCategory = KnownRushDiagnosticCategory | (string & {});
593614
594615// @beta
595- export type RushDiagnosticCode = ` RUSH${ RushDiagnosticCodeSegment }${ OneOrMoreRushDiagnosticCodeSegments } ` ;
616+ export type RushDiagnosticCode < TCode extends string = string > = string extends TCode ? ` RUSH_${ Uppercase < string >}_${ Uppercase < string >} ` : TCode extends ` RUSH_${ infer Domain }_${ infer Name } ` ? Domain extends ' ' ? never : Name extends ' ' ? never : TCode extends Uppercase < TCode > ? TCode : never : never ;
596617
597618// @beta
598619export type RushDiagnosticCodes = (typeof RUSH_DIAGNOSTIC_CODE_DEFINITIONS )[number ][' code' ];
599620
600621// @beta
601- export type RushDiagnosticCodeSegment = ` _${Uppercase <string >} ` ;
622+ export type RushDiagnosticCodeSegment < TSegment extends string = string > = string extends TSegment ? ` _${Uppercase <string >} ` : TSegment extends ` _${ infer Segment } ` ? Segment extends ' ' ? never : TSegment extends Uppercase < TSegment > ? TSegment : never : never ;
602623
603624// @beta
604625export type RushDiagnosticDetailKey = ` diagnostic.${RushDiagnosticCode }.detail ` ;
0 commit comments