@loadstrike/loadstrike-sdk 1.0.30001 → 1.0.30401

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.
@@ -1,4 +1,5 @@
1
1
  import type { ILoadStrikeReportingSink, LoadStrikeBaseContext, LoadStrikeMetricStats, LoadStrikeMetricValue, LoadStrikeNodeInfo, LoadStrikePluginData, LoadStrikeReportingSink, LoadStrikeRunResult, LoadStrikeScenarioStats, LoadStrikeSessionStartInfo, LoadStrikeSinkError, LoadStrikeStepStats, LoadStrikeTestInfo, LoadStrikeThresholdResult } from "./runtime.js";
2
+ import { type LoadStrikeIterationObservationBatchV1, type LoadStrikeIterationObservationStreamCompletionV1 } from "./iteration-observations.js";
2
3
  interface LoadStrikeNodeStats {
3
4
  startedUtc: string;
4
5
  completedUtc: string;
@@ -442,10 +443,15 @@ export declare class CompositeReportingSink implements LoadStrikeReportingSink {
442
443
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
443
444
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
444
445
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
446
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
447
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
448
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
449
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
445
450
  stop(): Promise<void>;
446
451
  Stop(): Promise<void>;
447
452
  }
448
453
  export declare class PortalReportingSink implements LoadStrikeReportingSink {
454
+ readonly iterationObservationPortalSink = true;
449
455
  readonly sinkName = "portal";
450
456
  readonly SinkName = "portal";
451
457
  readonly licenseFeature = "extensions.reporting_sinks.portal";
@@ -456,6 +462,7 @@ export declare class PortalReportingSink implements LoadStrikeReportingSink {
456
462
  private baseContext;
457
463
  private session;
458
464
  private runToken;
465
+ private runTokenProvider;
459
466
  private ingestUrl;
460
467
  constructor(options?: PortalReportingSinkOptionsInput);
461
468
  cloneForRun(): PortalReportingSink;
@@ -469,12 +476,18 @@ export declare class PortalReportingSink implements LoadStrikeReportingSink {
469
476
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
470
477
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
471
478
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
479
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
480
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
481
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
482
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
472
483
  stop(): void;
473
484
  Stop(): void;
474
485
  Dispose(): void;
475
486
  private getBaseContext;
476
487
  private getSession;
477
488
  private persistEvents;
489
+ private persistObservationPayload;
490
+ private currentRunToken;
478
491
  }
479
492
  export declare function cloneReportingSinkForRun(sink: LoadStrikeReportingSink): LoadStrikeReportingSink;
480
493
  export declare class InfluxDbReportingSink implements LoadStrikeReportingSink {
@@ -497,6 +510,10 @@ export declare class InfluxDbReportingSink implements LoadStrikeReportingSink {
497
510
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
498
511
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
499
512
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
513
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
514
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
515
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
516
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
500
517
  stop(): void;
501
518
  Stop(): void;
502
519
  Dispose(): void;
@@ -524,6 +541,10 @@ export declare class GrafanaLokiReportingSink implements LoadStrikeReportingSink
524
541
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
525
542
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
526
543
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
544
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
545
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
546
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
547
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
527
548
  stop(): void;
528
549
  Stop(): void;
529
550
  Dispose(): void;
@@ -552,6 +573,10 @@ export declare class TimescaleDbReportingSink implements LoadStrikeReportingSink
552
573
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
553
574
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
554
575
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
576
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
577
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
578
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
579
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
555
580
  stop(): Promise<void>;
556
581
  Stop(): Promise<void>;
557
582
  Dispose(): Promise<void>;
@@ -581,6 +606,10 @@ export declare class DatadogReportingSink implements LoadStrikeReportingSink {
581
606
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
582
607
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
583
608
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
609
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
610
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
611
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
612
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
584
613
  stop(): void;
585
614
  Stop(): void;
586
615
  Dispose(): void;
@@ -608,6 +637,10 @@ export declare class SplunkReportingSink implements LoadStrikeReportingSink {
608
637
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
609
638
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
610
639
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
640
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
641
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
642
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
643
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
611
644
  stop(): void;
612
645
  Stop(): void;
613
646
  Dispose(): void;
@@ -635,6 +668,10 @@ export declare class OtelCollectorReportingSink implements LoadStrikeReportingSi
635
668
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
636
669
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
637
670
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
671
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
672
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
673
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
674
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
638
675
  stop(): void;
639
676
  Stop(): void;
640
677
  Dispose(): void;
@@ -665,6 +702,7 @@ declare abstract class ExpandedEventReportingSink implements LoadStrikeReporting
665
702
  readonly licenseFeature: string;
666
703
  protected baseContext: LoadStrikeBaseContext | null;
667
704
  protected session: SinkSessionMetadata | null;
705
+ protected preservesRawIterationObservations: boolean;
668
706
  protected constructor(sinkName: string, licenseFeature: string);
669
707
  init(context: LoadStrikeBaseContext, _infraConfig: Record<string, unknown>): void;
670
708
  Init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
@@ -676,6 +714,10 @@ declare abstract class ExpandedEventReportingSink implements LoadStrikeReporting
676
714
  SaveRealtimeMetrics(metrics: LoadStrikeMetricStats): Promise<void>;
677
715
  saveRunResult(result: LoadStrikeRunResult): Promise<void>;
678
716
  SaveRunResult(result: LoadStrikeRunResult): Promise<void>;
717
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
718
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
719
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
720
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
679
721
  stop(): void;
680
722
  Stop(): void;
681
723
  Dispose(): void;
@@ -694,14 +736,20 @@ declare class ExpandedHttpJsonReportingSink extends ExpandedEventReportingSink {
694
736
  constructor(sinkName: string, licenseFeature: string, defaultEndpointPath: string, options?: ExpandedSinkOptionsInput);
695
737
  init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
696
738
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
739
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
740
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
741
+ protected persistCanonicalGzipPayload(payload: unknown): Promise<void>;
697
742
  }
698
743
  export declare class PrometheusRemoteWriteReportingSink extends ExpandedHttpJsonReportingSink {
744
+ readonly iterationObservationShapeLimited = true;
699
745
  constructor(options?: ExpandedSinkOptionsInput);
700
746
  }
701
747
  export declare class CloudWatchReportingSink extends ExpandedHttpJsonReportingSink {
748
+ readonly iterationObservationShapeLimited = true;
702
749
  constructor(options?: ExpandedSinkOptionsInput);
703
750
  }
704
751
  export declare class DynatraceReportingSink extends ExpandedHttpJsonReportingSink {
752
+ readonly iterationObservationShapeLimited = true;
705
753
  constructor(options?: ExpandedSinkOptionsInput);
706
754
  }
707
755
  export declare class ElasticsearchReportingSink extends ExpandedHttpJsonReportingSink {
@@ -711,10 +759,16 @@ export declare class OpenSearchReportingSink extends ExpandedHttpJsonReportingSi
711
759
  constructor(options?: ExpandedSinkOptionsInput);
712
760
  }
713
761
  export declare class NewRelicReportingSink extends ExpandedHttpJsonReportingSink {
762
+ readonly iterationObservationShapeLimited = true;
714
763
  constructor(options?: ExpandedSinkOptionsInput);
715
764
  }
716
765
  export declare class GenericWebhookReportingSink extends ExpandedHttpJsonReportingSink {
766
+ protected preservesRawIterationObservations: boolean;
717
767
  constructor(options?: ExpandedSinkOptionsInput);
768
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
769
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
770
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
771
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
718
772
  }
719
773
  export interface KafkaReportingSinkOptionsInput {
720
774
  Topic?: string;
@@ -731,7 +785,10 @@ export declare class KafkaReportingSink extends ExpandedEventReportingSink {
731
785
  private readonly staticTags;
732
786
  private readonly publishAsync?;
733
787
  constructor(options?: KafkaReportingSinkOptionsInput);
788
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
789
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
734
790
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
791
+ private publishCanonicalValue;
735
792
  }
736
793
  export interface StatsDReportingSinkOptionsInput {
737
794
  Prefix?: string;
@@ -746,6 +803,7 @@ export interface StatsDReportingSinkOptionsInput {
746
803
  sendLineAsync?: (line: string) => Promise<void> | void;
747
804
  }
748
805
  declare class StatsDReportingSinkBase extends ExpandedEventReportingSink {
806
+ readonly iterationObservationShapeLimited = true;
749
807
  private readonly prefix;
750
808
  private readonly host;
751
809
  private readonly port;
@@ -753,6 +811,8 @@ declare class StatsDReportingSinkBase extends ExpandedEventReportingSink {
753
811
  private readonly sendLineAsync?;
754
812
  private readonly dogStatsD;
755
813
  constructor(sinkName: string, licenseFeature: string, options?: StatsDReportingSinkOptionsInput, dogStatsD?: boolean);
814
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
815
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
756
816
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
757
817
  private formatPoint;
758
818
  private sendLine;
@@ -773,10 +833,17 @@ export interface JsonlFileReportingSinkOptionsInput {
773
833
  staticTags?: Record<string, string>;
774
834
  }
775
835
  export declare class JsonlFileReportingSink extends ExpandedEventReportingSink {
836
+ protected preservesRawIterationObservations: boolean;
776
837
  private readonly filePath;
777
838
  private readonly staticTags;
839
+ private writeTail;
778
840
  constructor(options?: JsonlFileReportingSinkOptionsInput);
779
841
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
842
+ saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
843
+ SaveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
844
+ completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
845
+ CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
846
+ private persistCanonicalPayload;
780
847
  }
781
848
  declare function createRealtimeStatsEvents(session: SinkSessionMetadata, scenarios: LoadStrikeScenarioStats[]): ReportingSinkEvent[];
782
849
  declare function createFinalStatsEvents(session: SinkSessionMetadata, stats: LoadStrikeNodeStats): ReportingSinkEvent[];
@@ -1087,11 +1087,8 @@ declare function parseBodyObject(body: unknown): Record<string, unknown> | null;
1087
1087
  declare function resolveConnectionMetadata(endpoint: EndpointDefinition): Record<string, string>;
1088
1088
  declare function canonicalizeHttpResponseSource(value: string): HttpResponseSource;
1089
1089
  declare function inferLegacyHttpResponseSource(value: string | undefined): HttpResponseSource | undefined;
1090
- declare function buildKafkaClientOptions(endpoint: EndpointDefinition): any;
1091
- declare function shouldUseConfluentKafkaClient(endpoint: EndpointDefinition): boolean;
1090
+ declare let kafkaClientFactoryForTests: ((endpoint: EndpointDefinition) => any | Promise<any>) | null;
1092
1091
  declare function buildConfluentKafkaClientOptions(endpoint: EndpointDefinition): Record<string, unknown>;
1093
- declare function resolveKafkaOAuthBearerToken(options: Record<string, unknown>): Promise<string>;
1094
- declare function mapKafkaSaslMechanism(mechanism: string): string;
1095
1092
  declare function mapConfluentKafkaSecurityProtocol(protocol: string): string;
1096
1093
  declare function mapConfluentKafkaSaslMechanism(mechanism: string): string;
1097
1094
  declare function toKafkaHeadersWithContentType(headers: Record<string, string>, contentType?: string): Record<string, Buffer>;
@@ -1140,7 +1137,6 @@ export declare const __loadstrikeTestExports: {
1140
1137
  applyHttpAuthHeaders: typeof applyHttpAuthHeaders;
1141
1138
  buildHttpRequestBody: typeof buildHttpRequestBody;
1142
1139
  buildConfluentKafkaClientOptions: typeof buildConfluentKafkaClientOptions;
1143
- buildKafkaClientOptions: typeof buildKafkaClientOptions;
1144
1140
  canonicalizeHttpResponseSource: typeof canonicalizeHttpResponseSource;
1145
1141
  createDelegateRequestEndpointView: typeof createDelegateRequestEndpointView;
1146
1142
  createNatsHeaders: typeof createNatsHeaders;
@@ -1156,7 +1152,6 @@ export declare const __loadstrikeTestExports: {
1156
1152
  injectTrackingValue: typeof injectTrackingValue;
1157
1153
  mapConfluentKafkaSaslMechanism: typeof mapConfluentKafkaSaslMechanism;
1158
1154
  mapConfluentKafkaSecurityProtocol: typeof mapConfluentKafkaSecurityProtocol;
1159
- mapKafkaSaslMechanism: typeof mapKafkaSaslMechanism;
1160
1155
  parseBodyObject: typeof parseBodyObject;
1161
1156
  partitionFromKey: typeof partitionFromKey;
1162
1157
  payloadBodyAsUtf8: typeof payloadBodyAsUtf8;
@@ -1164,15 +1159,14 @@ export declare const __loadstrikeTestExports: {
1164
1159
  protocolBus: unknown;
1165
1160
  readFirstRedisStreamEntry: typeof readFirstRedisStreamEntry;
1166
1161
  resolveConnectionMetadata: typeof resolveConnectionMetadata;
1167
- resolveKafkaOAuthBearerToken: typeof resolveKafkaOAuthBearerToken;
1168
1162
  serializePayloadBody: typeof serializePayloadBody;
1169
1163
  setJsonBodyValue: typeof setJsonBodyValue;
1170
- shouldUseConfluentKafkaClient: typeof shouldUseConfluentKafkaClient;
1171
1164
  toHeaderRecord: typeof toHeaderRecord;
1172
1165
  toKafkaHeadersWithContentType: typeof toKafkaHeadersWithContentType;
1173
1166
  toSqsMessageAttributes: typeof toSqsMessageAttributes;
1174
1167
  fromSqsMessageAttributes: typeof fromSqsMessageAttributes;
1175
1168
  setSqsClientFactoryForTests: (factory: typeof sqsClientFactoryForTests) => void;
1169
+ setKafkaClientFactoryForTests: (factory: typeof kafkaClientFactoryForTests) => void;
1176
1170
  validateHttpEndpoint: typeof validateHttpEndpoint;
1177
1171
  validateTrackingSelectorPath: typeof validateTrackingSelectorPath;
1178
1172
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadstrike/loadstrike-sdk",
3
- "version": "1.0.30001",
3
+ "version": "1.0.30401",
4
4
  "description": "TypeScript and JavaScript SDK for in-process load execution, traffic correlation, and reporting.",
5
5
  "keywords": [
6
6
  "load-testing",
@@ -66,7 +66,6 @@
66
66
  "@confluentinc/kafka-javascript": "^1.8.2",
67
67
  "@types/pg": "^8.18.0",
68
68
  "amqplib": "^0.10.9",
69
- "kafkajs": "^2.2.4",
70
69
  "nats": "^2.29.3",
71
70
  "pg": "^8.20.0",
72
71
  "redis": "^4.7.1"
@@ -82,7 +81,7 @@
82
81
  "typescript": "^5.9.2"
83
82
  },
84
83
  "overrides": {
85
- "brace-expansion": "5.0.6",
86
- "tar": "7.5.16"
84
+ "brace-expansion": "5.0.7",
85
+ "tar": "7.5.21"
87
86
  }
88
87
  }