@loadstrike/loadstrike-sdk 1.0.31601 → 1.0.33601

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.
Files changed (33) hide show
  1. package/README.md +14 -2
  2. package/dist/cjs/internal/prometheus-remote-write.js +37 -0
  3. package/dist/cjs/internal/reporting-sink-http-error.js +17 -0
  4. package/dist/cjs/internal/vendor-metric-payloads.js +390 -0
  5. package/dist/cjs/iteration-observations.js +24 -8
  6. package/dist/cjs/local.js +48 -63
  7. package/dist/cjs/reporting-containment.js +242 -0
  8. package/dist/cjs/runtime.js +83 -3
  9. package/dist/cjs/sinks.js +1337 -38
  10. package/dist/cjs/transports.js +1339 -151
  11. package/dist/esm/internal/prometheus-remote-write.js +31 -0
  12. package/dist/esm/internal/reporting-sink-http-error.js +13 -0
  13. package/dist/esm/internal/vendor-metric-payloads.js +382 -0
  14. package/dist/esm/iteration-observations.js +24 -8
  15. package/dist/esm/local.js +49 -64
  16. package/dist/esm/reporting-containment.js +238 -0
  17. package/dist/esm/runtime.js +85 -5
  18. package/dist/esm/sinks.js +1334 -35
  19. package/dist/esm/transports.js +1335 -151
  20. package/dist/types/contracts.d.ts +1 -0
  21. package/dist/types/index.d.ts +1 -1
  22. package/dist/types/internal/prometheus-remote-write.d.ts +2 -0
  23. package/dist/types/internal/reporting-sink-http-error.d.ts +6 -0
  24. package/dist/types/internal/vendor-metric-payloads.d.ts +48 -0
  25. package/dist/types/local.d.ts +0 -6
  26. package/dist/types/reporting-containment.d.ts +2 -0
  27. package/dist/types/runtime.d.ts +1 -0
  28. package/dist/types/sinks.d.ts +134 -17
  29. package/dist/types/transports.d.ts +2 -0
  30. package/package.json +9 -3
  31. package/dist/cjs/internal-build.js +0 -4
  32. package/dist/esm/internal-build.js +0 -1
  33. package/dist/types/internal-build.d.ts +0 -1
@@ -259,6 +259,7 @@ export interface LoadStrikeWebSocketEndpointOptions {
259
259
  ConnectTimeoutSeconds?: number;
260
260
  CloseTimeoutSeconds?: number;
261
261
  ConnectionMetadata?: Record<string, string>;
262
+ NativeClient?: Record<string, unknown>;
262
263
  }
263
264
  export interface LoadStrikeReportingSinkSpec {
264
265
  Kind: string;
@@ -11,4 +11,4 @@ export type { CorrelationEntry, DestinationConsumeResult, GatheredRow, Correlati
11
11
  export { LOADSTRIKE_TRACE_ID_HEADER, LOADSTRIKE_TRACE_ID_TRACKING_FIELD, TrafficEndpointDefinition, HttpEndpointDefinition, KafkaEndpointDefinition, KafkaSaslOptions, RabbitMqEndpointDefinition, NatsEndpointDefinition, RedisStreamsEndpointDefinition, AzureEventHubsEndpointDefinition, SqsEndpointDefinition, DelegateStreamEndpointDefinition, PushDiffusionEndpointDefinition, GrpcEndpointDefinition, GrpcMethodTypes, GrpcNativeClientOptions, GrpcStatusMapper, ProtocolMetricSnapshot, WebSocketEndpointDefinition, WebSocketExpectedMessage, WebSocketMessageSpec, WebSocketNativeClientOptions, WebSocketReconnectPolicy, HttpOAuth2ClientCredentialsOptions, HttpAuthOptions } from "./transports.js";
12
12
  export type { EndpointAdapter, EndpointDefinition, EndpointDefinitionInput, EndpointKind, EndpointMode, DotNetDelegateEndpointOptions, DotNetEndpointDefinition, DotNetHttpAuthOptions, DotNetHttpEndpointOptions, DotNetHttpOAuth2ClientCredentialsOptions, HttpAuthMode, HttpAuthType, HttpRequestBodyType, HttpResponseSource, HttpTrackingPayloadSource, KafkaSaslMechanismType, KafkaSecurityProtocolType, HttpEndpointOptions, KafkaEndpointOptions, RabbitMqEndpointOptions, NatsEndpointOptions, RedisStreamsEndpointOptions, AzureEventHubsEndpointOptions, SqsEndpointOptions, PushDiffusionEndpointOptions, GrpcEndpointOptions, WebSocketEndpointOptions, GrpcEndpointDefinition as GrpcEndpointDefinitionShape, WebSocketEndpointDefinition as WebSocketEndpointDefinitionShape, TrackingFieldSelectorInput, TrackingRunMode, TrafficEndpointKind, TrafficEndpointMode, ProducedMessageRequest, ProducedMessageResult, ConsumedMessage, DelegateConsumeAsync, DelegateConsumeStreamHandler, DelegateEndpointOptions } from "./transports.js";
13
13
  export { DatadogReportingSink, DatadogReportingSinkOptions, DogStatsDReportingSink, CloudWatchReportingSink, DynatraceReportingSink, ElasticsearchReportingSink, GrafanaLokiReportingSink, GrafanaLokiReportingSinkOptions, GenericWebhookReportingSink, InfluxDbReportingSink, InfluxDbReportingSinkOptions, JsonlFileReportingSink, KafkaReportingSink, NetdataStatsDReportingSink, NewRelicReportingSink, OtelCollectorReportingSink, OtelCollectorReportingSinkOptions, OpenSearchReportingSink, PortalReportingSink, PrometheusRemoteWriteReportingSink, SplunkReportingSink, SplunkReportingSinkOptions, StatsDReportingSink, TimescaleDbReportingSink, TimescaleDbReportingSinkOptions } from "./sinks.js";
14
- export type { DatadogSinkOptions, ExpandedSinkOptionsInput, GrafanaLokiSinkOptions, InfluxDbSinkOptions, JsonlFileReportingSinkOptionsInput, KafkaReportingSinkOptionsInput, OtelCollectorSinkOptions, PortalReportingSinkOptionsInput, SplunkSinkOptions, StatsDReportingSinkOptionsInput, TimescaleDbSinkOptions } from "./sinks.js";
14
+ export type { CloudWatchReportingSinkOptionsInput, DatadogSinkOptions, DynatraceReportingSinkOptionsInput, ElasticsearchReportingSinkOptionsInput, ExpandedSinkOptionsInput, GrafanaLokiSinkOptions, InfluxDbSinkOptions, JsonlFileReportingSinkOptionsInput, KafkaReportingSinkOptionsInput, NewRelicReportingSinkOptionsInput, OpenSearchReportingSinkOptionsInput, OtelCollectorSinkOptions, PortalReportingSinkOptionsInput, PrometheusRemoteWriteReportingSinkOptionsInput, SplunkSinkOptions, StatsDReportingSinkOptionsInput, TimescaleDbSinkOptions } from "./sinks.js";
@@ -0,0 +1,2 @@
1
+ import { type EncodedProtocolPayload, type ProtocolMetricPoint } from "./vendor-metric-payloads.js";
2
+ export declare function encodePrometheusRemoteWrite(points: readonly ProtocolMetricPoint[], staticLabels?: Readonly<Record<string, string>>): EncodedProtocolPayload;
@@ -0,0 +1,6 @@
1
+ export declare class ReportingSinkHttpError extends Error {
2
+ readonly status: number;
3
+ readonly statusText: string;
4
+ readonly requestId: string;
5
+ constructor(sinkName: string, status: number, statusText: string, requestId: string);
6
+ }
@@ -0,0 +1,48 @@
1
+ export type ProtocolMetricKind = "count" | "gauge";
2
+ export interface ProtocolMetricPoint {
3
+ metricName: string;
4
+ metricKind: ProtocolMetricKind;
5
+ occurredUtc: Date;
6
+ value: number;
7
+ unitOfMeasure?: string;
8
+ scenario: string;
9
+ status: string;
10
+ runId?: string;
11
+ intervalMs?: number | bigint;
12
+ }
13
+ export interface EncodedProtocolPayload {
14
+ contentType: string;
15
+ body: Uint8Array;
16
+ }
17
+ export interface CloudWatchDimension {
18
+ Name: string;
19
+ Value: string;
20
+ }
21
+ export interface CloudWatchMetricDatum {
22
+ MetricName: string;
23
+ Dimensions: CloudWatchDimension[];
24
+ Value: number;
25
+ Unit?: string;
26
+ Timestamp: Date;
27
+ }
28
+ export interface CloudWatchPutMetricData {
29
+ Namespace: string;
30
+ MetricData: CloudWatchMetricDatum[];
31
+ }
32
+ type ProtocolSink = "prometheus" | "cloudwatch" | "dynatrace" | "newrelic";
33
+ export interface PreparedProtocolMetricPoint {
34
+ metricName: string;
35
+ metricKind: ProtocolMetricKind;
36
+ occurredUtc: Date;
37
+ value: number;
38
+ unitOfMeasure?: string;
39
+ intervalMs?: bigint;
40
+ attributes: Array<readonly [string, string]>;
41
+ }
42
+ export declare function createCloudWatchMetricData(namespace: string, points: readonly ProtocolMetricPoint[], staticDimensions?: Readonly<Record<string, string>>): CloudWatchPutMetricData;
43
+ export declare function encodeDynatraceMetrics(points: readonly ProtocolMetricPoint[], staticDimensions?: Readonly<Record<string, string>>): EncodedProtocolPayload;
44
+ export declare function encodeDynatraceMetricBatches(points: readonly ProtocolMetricPoint[], staticDimensions?: Readonly<Record<string, string>>, maximumBodyBytesExclusive?: number): EncodedProtocolPayload[];
45
+ export declare function encodeNewRelicMetricBatch(points: readonly ProtocolMetricPoint[], staticAttributes?: Readonly<Record<string, string>>): EncodedProtocolPayload;
46
+ export declare function encodeNewRelicMetricBatches(points: readonly ProtocolMetricPoint[], staticAttributes?: Readonly<Record<string, string>>, maximumBodyBytesExclusive?: number): EncodedProtocolPayload[];
47
+ export declare function prepareProtocolMetricPoints(sink: ProtocolSink, points: readonly ProtocolMetricPoint[], staticAttributes?: Readonly<Record<string, string>>): PreparedProtocolMetricPoint[];
48
+ export {};
@@ -43,9 +43,6 @@ export declare class LoadStrikeLocalClient {
43
43
  private getLicensingRequest;
44
44
  }
45
45
  declare function sanitizeRequest(request: LoadStrikeRunRequest): LoadStrikeRunRequest;
46
- declare function normalizeLicensingApiBaseUrl(value: string | undefined): string;
47
- declare function resolveLicensingApiBaseUrl(): string;
48
- declare function setDevelopmentLicensingApiBaseUrlOverride(value: string | undefined): void;
49
46
  declare function normalizeTimeoutMs(value: number | undefined): number;
50
47
  declare function collectRequestedFeatures(request: LoadStrikeRunRequest): string[];
51
48
  declare function mapEnvironmentClassification(value: string): number;
@@ -146,8 +143,6 @@ export declare const __loadstrikeTestExports: {
146
143
  mapEnvironmentClassification: typeof mapEnvironmentClassification;
147
144
  mapEndpointSpec: typeof mapEndpointSpec;
148
145
  normalizeEndpointPayloadValue: typeof normalizeEndpointPayloadValue;
149
- normalizeLicensingApiBaseUrl: typeof normalizeLicensingApiBaseUrl;
150
- resolveLicensingApiBaseUrl: typeof resolveLicensingApiBaseUrl;
151
146
  normalizeNodeType: typeof normalizeNodeType;
152
147
  normalizePayload: typeof normalizePayload;
153
148
  normalizeStringArray: typeof normalizeStringArray;
@@ -166,7 +161,6 @@ export declare const __loadstrikeTestExports: {
166
161
  sanitizeLooseJson: typeof sanitizeLooseJson;
167
162
  sanitizeRequest: typeof sanitizeRequest;
168
163
  setJsonPathValue: typeof setJsonPathValue;
169
- setDevelopmentLicensingApiBaseUrlOverride: typeof setDevelopmentLicensingApiBaseUrlOverride;
170
164
  sleep: typeof sleep;
171
165
  stringOrDefault: typeof stringOrDefault;
172
166
  toBoolean: typeof toBoolean;
@@ -0,0 +1,2 @@
1
+ export declare function assertNoUnsupportedReportingInfraConfig(infraConfig: unknown, sinks?: readonly unknown[]): void;
2
+ export declare function assertNoUnsupportedReportingSinkGraph(sinks: readonly unknown[]): void;
@@ -2514,6 +2514,7 @@ declare class ManagedScenarioTrackingRuntime {
2514
2514
  dispose(): Promise<void>;
2515
2515
  private executeSourceOnly;
2516
2516
  private observeExistingTraffic;
2517
+ private interruptEndpointAdapters;
2517
2518
  private consumeSourceLoop;
2518
2519
  private consumeDestinationLoop;
2519
2520
  private runTimeoutSweepLoop;
@@ -1,5 +1,8 @@
1
1
  import type { ILoadStrikeReportingSink, LoadStrikeBaseContext, LoadStrikeMetricStats, LoadStrikeMetricValue, LoadStrikeNodeInfo, LoadStrikePluginData, LoadStrikeReportingSink, LoadStrikeRunResult, LoadStrikeScenarioStats, LoadStrikeSessionStartInfo, LoadStrikeSinkError, LoadStrikeStepStats, LoadStrikeTestInfo, LoadStrikeThresholdResult } from "./runtime.js";
2
2
  import { type LoadStrikeIterationObservationBatchV1, type LoadStrikeIterationObservationStreamCompletionV1 } from "./iteration-observations.js";
3
+ import { type ProtocolMetricPoint } from "./internal/vendor-metric-payloads.js";
4
+ declare const SEND_DIRECT_VENDOR_PROTOCOL_POINTS: unique symbol;
5
+ declare const CLONE_DIRECT_VENDOR_FOR_RUN: unique symbol;
3
6
  interface LoadStrikeNodeStats {
4
7
  startedUtc: string;
5
8
  completedUtc: string;
@@ -489,7 +492,7 @@ export declare class PortalReportingSink implements LoadStrikeReportingSink {
489
492
  private persistObservationPayload;
490
493
  private currentRunToken;
491
494
  }
492
- export declare function cloneReportingSinkForRun(sink: LoadStrikeReportingSink): LoadStrikeReportingSink;
495
+ export declare function cloneReportingSinkForRun(sink: LoadStrikeReportingSink, infraConfig?: Record<string, unknown>, environment?: Readonly<Record<string, string | undefined>>): LoadStrikeReportingSink;
493
496
  export declare class InfluxDbReportingSink implements LoadStrikeReportingSink {
494
497
  readonly sinkName = "influxdb";
495
498
  readonly SinkName = "influxdb";
@@ -680,6 +683,8 @@ export declare class OtelCollectorReportingSink implements LoadStrikeReportingSi
680
683
  private persistEvents;
681
684
  }
682
685
  export interface ExpandedSinkOptionsInput {
686
+ ConfigurationSectionPath?: string;
687
+ configurationSectionPath?: string;
683
688
  BaseUrl?: string;
684
689
  baseUrl?: string;
685
690
  EndpointPath?: string;
@@ -695,6 +700,20 @@ export interface ExpandedSinkOptionsInput {
695
700
  FetchImpl?: SinkFetch;
696
701
  fetchImpl?: SinkFetch;
697
702
  }
703
+ export interface ElasticsearchReportingSinkOptionsInput extends ExpandedSinkOptionsInput {
704
+ IndexName?: string;
705
+ indexName?: string;
706
+ ApiKey?: string;
707
+ apiKey?: string;
708
+ }
709
+ export interface OpenSearchReportingSinkOptionsInput extends ExpandedSinkOptionsInput {
710
+ IndexName?: string;
711
+ indexName?: string;
712
+ Username?: string;
713
+ username?: string;
714
+ Password?: string;
715
+ password?: string;
716
+ }
698
717
  declare abstract class ExpandedEventReportingSink implements LoadStrikeReportingSink {
699
718
  readonly SinkName: string;
700
719
  readonly sinkName: string;
@@ -729,38 +748,128 @@ declare abstract class ExpandedEventReportingSink implements LoadStrikeReporting
729
748
  declare class ExpandedHttpJsonReportingSink extends ExpandedEventReportingSink {
730
749
  private readonly fetchImpl;
731
750
  private readonly baseUrl;
751
+ private readonly exactUrl;
732
752
  private readonly endpointPath;
733
753
  private readonly headers;
734
754
  private readonly staticTags;
735
755
  private readonly timeoutMs;
736
- constructor(sinkName: string, licenseFeature: string, defaultEndpointPath: string, options?: ExpandedSinkOptionsInput);
756
+ constructor(sinkName: string, licenseFeature: string, defaultEndpointPath: string, options?: ExpandedSinkOptionsInput, bindingOptions?: ExpandedSinkOptionsInput);
737
757
  init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
738
758
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
739
759
  saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
740
760
  completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
741
761
  protected persistCanonicalGzipPayload(payload: unknown): Promise<void>;
762
+ private requestUrl;
742
763
  }
743
- export declare class PrometheusRemoteWriteReportingSink extends ExpandedHttpJsonReportingSink {
744
- readonly iterationObservationShapeLimited = true;
745
- constructor(options?: ExpandedSinkOptionsInput);
764
+ interface DirectVendorMetricSinkOptionsInput extends ExpandedSinkOptionsInput {
765
+ RunId?: string;
766
+ runId?: string;
767
+ ReportingIntervalSeconds?: number;
768
+ reportingIntervalSeconds?: number;
746
769
  }
747
- export declare class CloudWatchReportingSink extends ExpandedHttpJsonReportingSink {
748
- readonly iterationObservationShapeLimited = true;
749
- constructor(options?: ExpandedSinkOptionsInput);
770
+ export interface PrometheusRemoteWriteReportingSinkOptionsInput extends DirectVendorMetricSinkOptionsInput {
771
+ BearerToken?: string;
772
+ bearerToken?: string;
773
+ }
774
+ export interface CloudWatchReportingSinkOptionsInput extends DirectVendorMetricSinkOptionsInput {
775
+ Namespace?: string;
776
+ namespace?: string;
777
+ Region?: string;
778
+ region?: string;
779
+ AccessKeyId?: string;
780
+ accessKeyId?: string;
781
+ SecretAccessKey?: string;
782
+ secretAccessKey?: string;
783
+ SessionToken?: string;
784
+ sessionToken?: string;
785
+ EndpointUrl?: string;
786
+ endpointUrl?: string;
787
+ }
788
+ export interface DynatraceReportingSinkOptionsInput extends DirectVendorMetricSinkOptionsInput {
789
+ ApiToken?: string;
790
+ apiToken?: string;
750
791
  }
751
- export declare class DynatraceReportingSink extends ExpandedHttpJsonReportingSink {
792
+ export interface NewRelicReportingSinkOptionsInput extends DirectVendorMetricSinkOptionsInput {
793
+ LicenseKey?: string;
794
+ licenseKey?: string;
795
+ ApiKey?: string;
796
+ apiKey?: string;
797
+ }
798
+ declare abstract class DirectVendorMetricReportingSink extends ExpandedEventReportingSink {
752
799
  readonly iterationObservationShapeLimited = true;
753
- constructor(options?: ExpandedSinkOptionsInput);
800
+ protected readonly fetchImpl: SinkFetch;
801
+ protected readonly baseUrl: string;
802
+ protected readonly endpointPath: string;
803
+ protected readonly headers: Record<string, string>;
804
+ protected readonly staticTags: Record<string, string>;
805
+ protected readonly timeoutMs: number;
806
+ private readonly configuredRunId;
807
+ private readonly requireBaseUrl;
808
+ private configuredFirstIntervalMs;
809
+ private runStartedUtc;
810
+ private previousCounts;
811
+ private previousCountTimes;
812
+ private stateGeneration;
813
+ private stateQueue;
814
+ protected constructor(sinkName: string, licenseFeature: string, defaultEndpointPath: string, options: DirectVendorMetricSinkOptionsInput, requireBaseUrl?: boolean);
815
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
816
+ start(session: LoadStrikeSessionStartInfo): void;
817
+ stop(): void;
818
+ protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
819
+ protected abstract [SEND_DIRECT_VENDOR_PROTOCOL_POINTS](points: readonly ProtocolMetricPoint[]): Promise<void>;
820
+ abstract [CLONE_DIRECT_VENDOR_FOR_RUN](): DirectVendorMetricReportingSink;
821
+ private prepareStatefulPoints;
822
+ }
823
+ export declare class PrometheusRemoteWriteReportingSink extends DirectVendorMetricReportingSink {
824
+ private readonly bearerToken;
825
+ private readonly cloneOptions;
826
+ constructor(options?: PrometheusRemoteWriteReportingSinkOptionsInput);
827
+ [CLONE_DIRECT_VENDOR_FOR_RUN](): PrometheusRemoteWriteReportingSink;
828
+ protected [SEND_DIRECT_VENDOR_PROTOCOL_POINTS](points: readonly ProtocolMetricPoint[]): Promise<void>;
829
+ }
830
+ export declare class CloudWatchReportingSink extends DirectVendorMetricReportingSink {
831
+ private readonly namespace;
832
+ private readonly region;
833
+ private readonly accessKeyId;
834
+ private readonly secretAccessKey;
835
+ private readonly sessionToken;
836
+ private readonly cloneOptions;
837
+ private cloudWatchClient;
838
+ constructor(options?: CloudWatchReportingSinkOptionsInput);
839
+ [CLONE_DIRECT_VENDOR_FOR_RUN](): CloudWatchReportingSink;
840
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
841
+ Dispose(): void;
842
+ protected [SEND_DIRECT_VENDOR_PROTOCOL_POINTS](points: readonly ProtocolMetricPoint[]): Promise<void>;
843
+ }
844
+ export declare class DynatraceReportingSink extends DirectVendorMetricReportingSink {
845
+ private readonly apiToken;
846
+ private readonly cloneOptions;
847
+ constructor(options?: DynatraceReportingSinkOptionsInput);
848
+ [CLONE_DIRECT_VENDOR_FOR_RUN](): DynatraceReportingSink;
849
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
850
+ protected [SEND_DIRECT_VENDOR_PROTOCOL_POINTS](points: readonly ProtocolMetricPoint[]): Promise<void>;
851
+ }
852
+ export declare class NewRelicReportingSink extends DirectVendorMetricReportingSink {
853
+ private readonly licenseKey;
854
+ private readonly cloneOptions;
855
+ constructor(options?: NewRelicReportingSinkOptionsInput);
856
+ [CLONE_DIRECT_VENDOR_FOR_RUN](): NewRelicReportingSink;
857
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
858
+ protected [SEND_DIRECT_VENDOR_PROTOCOL_POINTS](points: readonly ProtocolMetricPoint[]): Promise<void>;
754
859
  }
755
860
  export declare class ElasticsearchReportingSink extends ExpandedHttpJsonReportingSink {
756
- constructor(options?: ExpandedSinkOptionsInput);
861
+ private readonly indexName;
862
+ private readonly usesIndexName;
863
+ constructor(options?: ElasticsearchReportingSinkOptionsInput);
864
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
757
865
  }
758
866
  export declare class OpenSearchReportingSink extends ExpandedHttpJsonReportingSink {
759
- constructor(options?: ExpandedSinkOptionsInput);
760
- }
761
- export declare class NewRelicReportingSink extends ExpandedHttpJsonReportingSink {
762
- readonly iterationObservationShapeLimited = true;
763
- constructor(options?: ExpandedSinkOptionsInput);
867
+ private readonly indexName;
868
+ private readonly usesIndexName;
869
+ private readonly username;
870
+ private readonly password;
871
+ constructor(options?: OpenSearchReportingSinkOptionsInput);
872
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
764
873
  }
765
874
  export declare class GenericWebhookReportingSink extends ExpandedHttpJsonReportingSink {
766
875
  protected preservesRawIterationObservations: boolean;
@@ -771,6 +880,8 @@ export declare class GenericWebhookReportingSink extends ExpandedHttpJsonReporti
771
880
  CompleteIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
772
881
  }
773
882
  export interface KafkaReportingSinkOptionsInput {
883
+ ConfigurationSectionPath?: string;
884
+ configurationSectionPath?: string;
774
885
  Topic?: string;
775
886
  topic?: string;
776
887
  BootstrapServers?: string;
@@ -782,15 +893,19 @@ export interface KafkaReportingSinkOptionsInput {
782
893
  }
783
894
  export declare class KafkaReportingSink extends ExpandedEventReportingSink {
784
895
  private readonly topic;
896
+ private readonly bootstrapServers;
785
897
  private readonly staticTags;
786
898
  private readonly publishAsync?;
787
899
  constructor(options?: KafkaReportingSinkOptionsInput);
900
+ init(context: LoadStrikeBaseContext, infraConfig: Record<string, unknown>): void;
788
901
  saveIterationBatch(batch: LoadStrikeIterationObservationBatchV1): Promise<void>;
789
902
  completeIterationObservationStream(completion: LoadStrikeIterationObservationStreamCompletionV1): Promise<void>;
790
903
  protected persistEvents(events: ReportingSinkEvent[]): Promise<void>;
791
904
  private publishCanonicalValue;
792
905
  }
793
906
  export interface StatsDReportingSinkOptionsInput {
907
+ ConfigurationSectionPath?: string;
908
+ configurationSectionPath?: string;
794
909
  Prefix?: string;
795
910
  prefix?: string;
796
911
  Host?: string;
@@ -827,6 +942,8 @@ export declare class NetdataStatsDReportingSink extends StatsDReportingSinkBase
827
942
  constructor(options?: StatsDReportingSinkOptionsInput);
828
943
  }
829
944
  export interface JsonlFileReportingSinkOptionsInput {
945
+ ConfigurationSectionPath?: string;
946
+ configurationSectionPath?: string;
830
947
  FilePath?: string;
831
948
  filePath?: string;
832
949
  StaticTags?: Record<string, string>;
@@ -886,7 +1003,7 @@ declare function cloneSessionStartInfo(session: LoadStrikeSessionStartInfo): Loa
886
1003
  declare function cloneMetricStats(metrics: LoadStrikeMetricStats): LoadStrikeMetricStats;
887
1004
  declare function cloneScenarioStats(value: LoadStrikeScenarioStats): LoadStrikeScenarioStats;
888
1005
  declare function cloneNodeStats(result: LoadStrikeNodeStats): LoadStrikeNodeStats;
889
- declare function postWithTimeout(fetchImpl: SinkFetch, url: string, init: RequestInit, timeoutMs: number, sinkName: string): Promise<string>;
1006
+ declare function postWithTimeout(fetchImpl: SinkFetch, url: string, init: RequestInit, timeoutMs: number, sinkName: string, ignoreSuccessfulResponseBody?: boolean): Promise<string>;
890
1007
  export declare const __loadstrikeTestExports: {
891
1008
  GrafanaLokiReportingSink: typeof GrafanaLokiReportingSink;
892
1009
  InfluxDbReportingSink: typeof InfluxDbReportingSink;
@@ -1009,6 +1009,7 @@ export interface EndpointAdapter {
1009
1009
  initialize?(): Promise<void>;
1010
1010
  produce(payload?: TrackingPayload): Promise<TrackingPayload | null>;
1011
1011
  consume(): Promise<TrackingPayload | null>;
1012
+ interrupt?(): void;
1012
1013
  dispose?(): Promise<void>;
1013
1014
  }
1014
1015
  declare class CallbackAdapter implements EndpointAdapter {
@@ -1068,6 +1069,7 @@ declare class SqsEndpointAdapter extends CallbackAdapter {
1068
1069
  export declare class EndpointAdapterFactory {
1069
1070
  static create(endpoint: EndpointDefinitionInput): EndpointAdapter;
1070
1071
  }
1072
+ export declare function validateNativeEndpointExecutionSupport(endpoint: EndpointDefinitionInput): void;
1071
1073
  declare function validateTrackingSelectorPath(expression: string, fieldName: "TrackingField" | "GatherByField"): void;
1072
1074
  declare function validateHttpEndpoint(endpoint: EndpointDefinition, mode: EndpointMode, hasModeDelegate: boolean): void;
1073
1075
  declare function applyHttpAuthHeaders(headers: Record<string, string>, options: HttpEndpointOptions, resolveOAuthToken: () => Promise<string>): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadstrike/loadstrike-sdk",
3
- "version": "1.0.31601",
3
+ "version": "1.0.33601",
4
4
  "description": "TypeScript and JavaScript SDK for in-process load execution, traffic correlation, and reporting.",
5
5
  "keywords": [
6
6
  "load-testing",
@@ -61,6 +61,7 @@
61
61
  "test:broker": "node --test --test-concurrency=1 tests/broker-integration.test.mjs tests/broker-distributed.test.mjs"
62
62
  },
63
63
  "dependencies": {
64
+ "@aws-sdk/client-cloudwatch": "^3.1045.0",
64
65
  "@aws-sdk/client-sqs": "^3.1045.0",
65
66
  "@azure/event-hubs": "^5.12.2",
66
67
  "@confluentinc/kafka-javascript": "^1.8.2",
@@ -68,7 +69,10 @@
68
69
  "amqplib": "^0.10.9",
69
70
  "nats": "^2.29.3",
70
71
  "pg": "^8.20.0",
71
- "redis": "^4.7.1"
72
+ "protobufjs": "^8.7.1",
73
+ "redis": "^4.7.1",
74
+ "snappyjs": "^0.7.0",
75
+ "ws": "^8.21.1"
72
76
  },
73
77
  "publishConfig": {
74
78
  "access": "public"
@@ -76,12 +80,14 @@
76
80
  "devDependencies": {
77
81
  "@types/amqplib": "^0.10.7",
78
82
  "@types/node": "^20.19.37",
83
+ "@types/snappyjs": "^0.7.1",
84
+ "@types/ws": "^8.18.1",
79
85
  "c8": "^11.0.0",
80
86
  "rimraf": "^6.0.1",
81
87
  "typescript": "^5.9.2"
82
88
  },
83
89
  "overrides": {
84
- "brace-expansion": "5.0.8",
90
+ "brace-expansion": "5.0.9",
85
91
  "tar": "7.5.21"
86
92
  }
87
93
  }
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BLACKBOX_LICENSING_API_BASE_URL_TOKEN = void 0;
4
- exports.BLACKBOX_LICENSING_API_BASE_URL_TOKEN = "";
@@ -1 +0,0 @@
1
- export const BLACKBOX_LICENSING_API_BASE_URL_TOKEN = "";
@@ -1 +0,0 @@
1
- export declare const BLACKBOX_LICENSING_API_BASE_URL_TOKEN = "";