@pingops/core 0.1.0 → 0.1.1

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.
@@ -27,4 +27,16 @@ export declare const PINGOPS_TAGS: symbol;
27
27
  * Used to propagate metadata object to all spans in the context.
28
28
  */
29
29
  export declare const PINGOPS_METADATA: symbol;
30
+ /**
31
+ * Context key for capturing request body.
32
+ * When set, controls whether request bodies should be captured for HTTP spans.
33
+ * This allows wrapHttp to control body capture per-request.
34
+ */
35
+ export declare const PINGOPS_CAPTURE_REQUEST_BODY: symbol;
36
+ /**
37
+ * Context key for capturing response body.
38
+ * When set, controls whether response bodies should be captured for HTTP spans.
39
+ * This allows wrapHttp to control body capture per-request.
40
+ */
41
+ export declare const PINGOPS_CAPTURE_RESPONSE_BODY: symbol;
30
42
  //# sourceMappingURL=context-keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-keys.d.ts","sourceRoot":"","sources":["../src/context-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAA2C,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAsC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAmC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAuC,CAAC"}
1
+ {"version":3,"file":"context-keys.d.ts","sourceRoot":"","sources":["../src/context-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAA2C,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAsC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAmC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAExC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAEzC,CAAC"}
@@ -28,4 +28,16 @@ export const PINGOPS_TAGS = createContextKey("pingops-tags");
28
28
  * Used to propagate metadata object to all spans in the context.
29
29
  */
30
30
  export const PINGOPS_METADATA = createContextKey("pingops-metadata");
31
+ /**
32
+ * Context key for capturing request body.
33
+ * When set, controls whether request bodies should be captured for HTTP spans.
34
+ * This allows wrapHttp to control body capture per-request.
35
+ */
36
+ export const PINGOPS_CAPTURE_REQUEST_BODY = createContextKey("pingops-capture-request-body");
37
+ /**
38
+ * Context key for capturing response body.
39
+ * When set, controls whether response bodies should be captured for HTTP spans.
40
+ * This allows wrapHttp to control body capture per-request.
41
+ */
42
+ export const PINGOPS_CAPTURE_RESPONSE_BODY = createContextKey("pingops-capture-response-body");
31
43
  //# sourceMappingURL=context-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-keys.js","sourceRoot":"","sources":["../src/context-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"context-keys.js","sourceRoot":"","sources":["../src/context-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAC1D,8BAA8B,CAC/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,gBAAgB,CAC3D,+BAA+B,CAChC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -6,6 +6,8 @@ export interface DomainRule {
6
6
  paths?: string[];
7
7
  headersAllowList?: string[];
8
8
  headersDenyList?: string[];
9
+ captureRequestBody?: boolean;
10
+ captureResponseBody?: boolean;
9
11
  }
10
12
  export interface SpanPayload {
11
13
  traceId: string;
@@ -30,5 +32,15 @@ export interface WrapHttpAttributes {
30
32
  sessionId?: string;
31
33
  tags?: string[];
32
34
  metadata?: Record<string, string>;
35
+ /**
36
+ * Whether to capture request body for HTTP spans in this context.
37
+ * Takes precedence over domain-specific rules and global config.
38
+ */
39
+ captureRequestBody?: boolean;
40
+ /**
41
+ * Whether to capture response body for HTTP spans in this context.
42
+ * Takes precedence over domain-specific rules and global config.
43
+ */
44
+ captureResponseBody?: boolean;
33
45
  }
34
46
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
@@ -6,5 +6,5 @@ import type { DomainRule, SpanPayload } from "../types";
6
6
  /**
7
7
  * Extracts structured payload from a span
8
8
  */
9
- export declare function extractSpanPayload(span: ReadableSpan, domainAllowList?: DomainRule[], globalHeadersAllowList?: string[], globalHeadersDenyList?: string[]): SpanPayload | null;
9
+ export declare function extractSpanPayload(span: ReadableSpan, domainAllowList?: DomainRule[], globalHeadersAllowList?: string[], globalHeadersDenyList?: string[], globalCaptureRequestBody?: boolean, globalCaptureResponseBody?: boolean): SpanPayload | null;
10
10
  //# sourceMappingURL=span-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"span-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/span-extractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2CxD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,eAAe,CAAC,EAAE,UAAU,EAAE,EAC9B,sBAAsB,CAAC,EAAE,MAAM,EAAE,EACjC,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAC/B,WAAW,GAAG,IAAI,CAwIpB"}
1
+ {"version":3,"file":"span-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/span-extractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAsExD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,eAAe,CAAC,EAAE,UAAU,EAAE,EAC9B,sBAAsB,CAAC,EAAE,MAAM,EAAE,EACjC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAChC,wBAAwB,CAAC,EAAE,OAAO,EAClC,yBAAyB,CAAC,EAAE,OAAO,GAClC,WAAW,GAAG,IAAI,CA6JpB"}
@@ -32,10 +32,31 @@ function getDomainRule(url, domainAllowList) {
32
32
  }
33
33
  return undefined;
34
34
  }
35
+ /**
36
+ * Determines if body should be captured based on priority:
37
+ * domain rule > global config > default (false)
38
+ */
39
+ function shouldCaptureBody(domainRule, globalConfig, bodyType) {
40
+ // Check domain-specific rule first
41
+ if (domainRule) {
42
+ const domainValue = bodyType === "request"
43
+ ? domainRule.captureRequestBody
44
+ : domainRule.captureResponseBody;
45
+ if (domainValue !== undefined) {
46
+ return domainValue;
47
+ }
48
+ }
49
+ // Fall back to global config
50
+ if (globalConfig !== undefined) {
51
+ return globalConfig;
52
+ }
53
+ // Default to false
54
+ return false;
55
+ }
35
56
  /**
36
57
  * Extracts structured payload from a span
37
58
  */
38
- export function extractSpanPayload(span, domainAllowList, globalHeadersAllowList, globalHeadersDenyList) {
59
+ export function extractSpanPayload(span, domainAllowList, globalHeadersAllowList, globalHeadersDenyList, globalCaptureRequestBody, globalCaptureResponseBody) {
39
60
  const attributes = span.attributes;
40
61
  const url = attributes["http.url"] || attributes["url.full"];
41
62
  // Get domain-specific rule if available
@@ -43,6 +64,9 @@ export function extractSpanPayload(span, domainAllowList, globalHeadersAllowList
43
64
  // Merge global and domain-specific header rules
44
65
  const headersAllowList = domainRule?.headersAllowList ?? globalHeadersAllowList;
45
66
  const headersDenyList = domainRule?.headersDenyList ?? globalHeadersDenyList;
67
+ // Determine if bodies should be captured
68
+ const shouldCaptureReqBody = shouldCaptureBody(domainRule, globalCaptureRequestBody, "request");
69
+ const shouldCaptureRespBody = shouldCaptureBody(domainRule, globalCaptureResponseBody, "response");
46
70
  // Extract HTTP headers if available
47
71
  let requestHeaders = {};
48
72
  let responseHeaders = {};
@@ -99,6 +123,13 @@ export function extractSpanPayload(span, domainAllowList, globalHeadersAllowList
99
123
  if (Object.keys(responseHeaders).length > 0) {
100
124
  extractedAttributes["http.response.header"] = responseHeaders;
101
125
  }
126
+ // Remove body attributes if capture is disabled
127
+ if (!shouldCaptureReqBody) {
128
+ delete extractedAttributes["http.request.body"];
129
+ }
130
+ if (!shouldCaptureRespBody) {
131
+ delete extractedAttributes["http.response.body"];
132
+ }
102
133
  // Build span payload
103
134
  const spanContext = span.spanContext();
104
135
  // parentSpanId may not be available in all versions of ReadableSpan
@@ -1 +1 @@
1
- {"version":3,"file":"span-extractor.js","sourceRoot":"","sources":["../../src/utils/span-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"span-extractor.js","sourceRoot":"","sources":["../../src/utils/span-extractor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-http.d.ts","sourceRoot":"","sources":["../src/wrap-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC;;;OAGG;IACH,8BAA8B,EAAE,MAAM,OAAO,CAAC;IAC9C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAoDhB"}
1
+ {"version":3,"file":"wrap-http.d.ts","sourceRoot":"","sources":["../src/wrap-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC;;;OAGG;IACH,8BAA8B,EAAE,MAAM,OAAO,CAAC;IAC9C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAoDhB"}
package/dist/wrap-http.js CHANGED
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import { context } from "@opentelemetry/api";
14
14
  import { createLogger } from "./logger";
15
- import { PINGOPS_HTTP_ENABLED, PINGOPS_USER_ID, PINGOPS_SESSION_ID, PINGOPS_TAGS, PINGOPS_METADATA, } from "./context-keys";
15
+ import { PINGOPS_HTTP_ENABLED, PINGOPS_USER_ID, PINGOPS_SESSION_ID, PINGOPS_TAGS, PINGOPS_METADATA, PINGOPS_CAPTURE_REQUEST_BODY, PINGOPS_CAPTURE_RESPONSE_BODY, } from "./context-keys";
16
16
  const logger = createLogger("[PingOps wrapHttp]");
17
17
  /**
18
18
  * Wraps a function to set attributes on HTTP spans created within the wrapped block.
@@ -103,6 +103,12 @@ function executeWrapHttpWithContext(options, fn) {
103
103
  if (attributes.metadata !== undefined) {
104
104
  contextWithAttributes = contextWithAttributes.setValue(PINGOPS_METADATA, attributes.metadata);
105
105
  }
106
+ if (attributes.captureRequestBody !== undefined) {
107
+ contextWithAttributes = contextWithAttributes.setValue(PINGOPS_CAPTURE_REQUEST_BODY, attributes.captureRequestBody);
108
+ }
109
+ if (attributes.captureResponseBody !== undefined) {
110
+ contextWithAttributes = contextWithAttributes.setValue(PINGOPS_CAPTURE_RESPONSE_BODY, attributes.captureResponseBody);
111
+ }
106
112
  }
107
113
  // Run user code inside the context with attributes
108
114
  return context.with(contextWithAttributes, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-http.js","sourceRoot":"","sources":["../src/wrap-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrap-http.js","sourceRoot":"","sources":["../src/wrap-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAwBlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,QAAQ,CACtB,OAAwB,EACxB,EAAwB;IAExB,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;QAC9B,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;QACnC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM;QACvC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS;QAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI;QACnC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ;KAC5C,CAAC,CAAC;IAEH,mFAAmF;IACnF,oEAAoE;IACpE,MAAM,iBAAiB,GACrB,kBAAkB,IAAI,OAAO,IAAI,gCAAgC,IAAI,OAAO;QAC1E,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,KAAK,CACb,sIAAsI,CACvI,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEX,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC;IAElE,0EAA0E;IAC1E,gDAAgD;IAChD,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,0DAA0D;IAC1D,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CACV,gEAAgE,CACjE,CAAC;QACF,OAAO,iBAAiB,EAAE;aACvB,IAAI,CAAC,GAAG,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;gBACpD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,KAAK,CACV,oFAAoF,CACrF,CAAC;IACF,OAAO,0BAA0B,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAwB,EACxB,EAAwB;IAExB,MAAM,EAAE,UAAU,EAAE,8BAA8B,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,4BAA4B,GAAG,8BAA8B,EAAE,CAAC;IAEtE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;QACzC,aAAa,EAAE,CAAC,CAAC,UAAU;QAC3B,4BAA4B;KAC7B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEvC,wEAAwE;IACxE,+EAA+E;IAC/E,IAAI,qBAAqB,GAAG,aAAa,CAAC;IAC1C,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAClC,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,oBAAoB,EACpB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,4EAA4E;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,eAAe,EACf,UAAU,CAAC,MAAM,CAClB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACvC,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,kBAAkB,EAClB,UAAU,CAAC,SAAS,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,YAAY,EACZ,UAAU,CAAC,IAAI,CAChB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtC,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,gBAAgB,EAChB,UAAU,CAAC,QAAQ,CACpB,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAChD,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,4BAA4B,EAC5B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACjD,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,CACpD,6BAA6B,EAC7B,UAAU,CAAC,mBAAmB,CAC/B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;YAEpB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;wBAChD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;oBACH,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBAC/C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingops/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Internal shared utilities for PingOps SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,46 +0,0 @@
1
- /**
2
- * HTTP transport client for sending spans to PingOps backend
3
- * Fire-and-forget, batched, with error handling
4
- */
5
- import type { SpanPayload } from '../types';
6
- export interface TransportConfig {
7
- apiKey?: string;
8
- baseUrl: string;
9
- batchSize?: number;
10
- batchTimeout?: number;
11
- debug?: boolean;
12
- }
13
- /**
14
- * HTTP client for PingOps backend
15
- */
16
- export declare class PingopsTransportClient {
17
- private config;
18
- private batch;
19
- private batchTimeoutId;
20
- constructor(config: TransportConfig);
21
- /**
22
- * Adds a span to the batch and sends if batch is full
23
- */
24
- addSpan(payload: SpanPayload): void;
25
- /**
26
- * Sends a span immediately (for immediate export mode)
27
- */
28
- sendSpanImmediately(payload: SpanPayload): Promise<void>;
29
- /**
30
- * Schedules a flush after batchTimeout
31
- */
32
- private scheduleFlush;
33
- /**
34
- * Flushes the current batch to the backend
35
- */
36
- flush(): void;
37
- /**
38
- * Sends a batch of spans to the backend
39
- */
40
- private sendBatch;
41
- /**
42
- * Forces a flush and waits for completion (for shutdown)
43
- */
44
- shutdown(): Promise<void>;
45
- }
46
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/transport/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,cAAc,CAA+B;gBAEzC,MAAM,EAAE,eAAe;IAanC;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAY1C;;OAEG;IACU,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACI,KAAK,IAAI,IAAI;IAsBpB;;OAEG;YACW,SAAS;IA4BvB;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKvC"}
@@ -1,110 +0,0 @@
1
- /**
2
- * HTTP transport client for sending spans to PingOps backend
3
- * Fire-and-forget, batched, with error handling
4
- */
5
- /**
6
- * HTTP client for PingOps backend
7
- */
8
- export class PingopsTransportClient {
9
- config;
10
- batch = [];
11
- batchTimeoutId = null;
12
- constructor(config) {
13
- // Get API key from config or environment
14
- const apiKey = config.apiKey || process.env.PINGOPS_API_KEY || '';
15
- this.config = {
16
- apiKey,
17
- baseUrl: config.baseUrl,
18
- batchSize: config.batchSize ?? 50,
19
- batchTimeout: config.batchTimeout ?? 5000, // 5 seconds
20
- debug: config.debug ?? false,
21
- };
22
- }
23
- /**
24
- * Adds a span to the batch and sends if batch is full
25
- */
26
- addSpan(payload) {
27
- this.batch.push(payload);
28
- // Send immediately if batch is full
29
- if (this.batch.length >= this.config.batchSize) {
30
- this.flush();
31
- }
32
- else {
33
- // Set timeout for sending batch
34
- this.scheduleFlush();
35
- }
36
- }
37
- /**
38
- * Sends a span immediately (for immediate export mode)
39
- */
40
- async sendSpanImmediately(payload) {
41
- await this.sendBatch([payload]);
42
- }
43
- /**
44
- * Schedules a flush after batchTimeout
45
- */
46
- scheduleFlush() {
47
- if (this.batchTimeoutId) {
48
- return; // Already scheduled
49
- }
50
- this.batchTimeoutId = setTimeout(() => {
51
- this.batchTimeoutId = null;
52
- this.flush();
53
- }, this.config.batchTimeout);
54
- }
55
- /**
56
- * Flushes the current batch to the backend
57
- */
58
- flush() {
59
- if (this.batch.length === 0) {
60
- return;
61
- }
62
- const batchToSend = [...this.batch];
63
- this.batch = [];
64
- if (this.batchTimeoutId) {
65
- clearTimeout(this.batchTimeoutId);
66
- this.batchTimeoutId = null;
67
- }
68
- // Fire-and-forget: don't await
69
- this.sendBatch(batchToSend).catch((error) => {
70
- // Error handling: log but don't crash
71
- if (this.config.debug) {
72
- console.error('[PingOps] Failed to send batch:', error);
73
- }
74
- });
75
- }
76
- /**
77
- * Sends a batch of spans to the backend
78
- */
79
- async sendBatch(spans) {
80
- const url = `${this.config.baseUrl}/api/v1/spans`;
81
- const headers = {
82
- 'Content-Type': 'application/json',
83
- };
84
- if (this.config.apiKey) {
85
- headers['Authorization'] = `Bearer ${this.config.apiKey}`;
86
- }
87
- // Use native fetch (Node 20+) or fallback to undici if available
88
- const response = await fetch(url, {
89
- method: 'POST',
90
- headers,
91
- body: JSON.stringify({ spans }),
92
- });
93
- if (!response.ok) {
94
- const errorText = await response.text().catch(() => 'Unknown error');
95
- throw new Error(`PingOps API error: ${response.status} ${response.statusText} - ${errorText}`);
96
- }
97
- if (this.config.debug) {
98
- console.log(`[PingOps] Sent ${spans.length} spans successfully`);
99
- }
100
- }
101
- /**
102
- * Forces a flush and waits for completion (for shutdown)
103
- */
104
- async shutdown() {
105
- this.flush();
106
- // Give a small delay for the async send to complete
107
- await new Promise((resolve) => setTimeout(resolve, 100));
108
- }
109
- }
110
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/transport/client.ts"],"names":[],"mappings":"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"}