autotel-aws 0.2.0

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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +540 -0
  3. package/dist/attributes.cjs +49 -0
  4. package/dist/attributes.cjs.map +1 -0
  5. package/dist/attributes.d.cts +117 -0
  6. package/dist/attributes.d.ts +117 -0
  7. package/dist/attributes.js +4 -0
  8. package/dist/attributes.js.map +1 -0
  9. package/dist/chunk-35F3UBOO.cjs +48 -0
  10. package/dist/chunk-35F3UBOO.cjs.map +1 -0
  11. package/dist/chunk-4TGVGEUN.cjs +84 -0
  12. package/dist/chunk-4TGVGEUN.cjs.map +1 -0
  13. package/dist/chunk-CIGXV6HA.js +192 -0
  14. package/dist/chunk-CIGXV6HA.js.map +1 -0
  15. package/dist/chunk-D5INYMRP.cjs +350 -0
  16. package/dist/chunk-D5INYMRP.cjs.map +1 -0
  17. package/dist/chunk-DF5PT3JK.js +387 -0
  18. package/dist/chunk-DF5PT3JK.js.map +1 -0
  19. package/dist/chunk-DGUM43GV.js +10 -0
  20. package/dist/chunk-DGUM43GV.js.map +1 -0
  21. package/dist/chunk-DHHLKZHI.cjs +23 -0
  22. package/dist/chunk-DHHLKZHI.cjs.map +1 -0
  23. package/dist/chunk-FKZOELBT.js +78 -0
  24. package/dist/chunk-FKZOELBT.js.map +1 -0
  25. package/dist/chunk-HMTKKKKP.cjs +390 -0
  26. package/dist/chunk-HMTKKKKP.cjs.map +1 -0
  27. package/dist/chunk-I4CKQ4RD.js +153 -0
  28. package/dist/chunk-I4CKQ4RD.js.map +1 -0
  29. package/dist/chunk-JEQ2X3Z6.cjs +12 -0
  30. package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
  31. package/dist/chunk-JMSFE6FJ.js +24 -0
  32. package/dist/chunk-JMSFE6FJ.js.map +1 -0
  33. package/dist/chunk-KUIOI74B.cjs +394 -0
  34. package/dist/chunk-KUIOI74B.cjs.map +1 -0
  35. package/dist/chunk-NQ65Y5AI.cjs +195 -0
  36. package/dist/chunk-NQ65Y5AI.cjs.map +1 -0
  37. package/dist/chunk-OB4XTAVK.cjs +345 -0
  38. package/dist/chunk-OB4XTAVK.cjs.map +1 -0
  39. package/dist/chunk-OHFR7WX5.js +341 -0
  40. package/dist/chunk-OHFR7WX5.js.map +1 -0
  41. package/dist/chunk-PZGYL7XZ.js +40 -0
  42. package/dist/chunk-PZGYL7XZ.js.map +1 -0
  43. package/dist/chunk-Q3DMMQ7K.cjs +164 -0
  44. package/dist/chunk-Q3DMMQ7K.cjs.map +1 -0
  45. package/dist/chunk-UZEJV2YD.cjs +139 -0
  46. package/dist/chunk-UZEJV2YD.cjs.map +1 -0
  47. package/dist/chunk-V4IQWFYN.js +341 -0
  48. package/dist/chunk-V4IQWFYN.js.map +1 -0
  49. package/dist/chunk-VZHQH75L.cjs +26 -0
  50. package/dist/chunk-VZHQH75L.cjs.map +1 -0
  51. package/dist/chunk-X6BY6PCK.js +386 -0
  52. package/dist/chunk-X6BY6PCK.js.map +1 -0
  53. package/dist/chunk-YG56NRIO.js +131 -0
  54. package/dist/chunk-YG56NRIO.js.map +1 -0
  55. package/dist/chunk-ZPDRKCAR.js +21 -0
  56. package/dist/chunk-ZPDRKCAR.js.map +1 -0
  57. package/dist/config-C7zV8Zm6.d.cts +125 -0
  58. package/dist/config-DxjTT8jd.d.ts +125 -0
  59. package/dist/dynamodb.cjs +14 -0
  60. package/dist/dynamodb.cjs.map +1 -0
  61. package/dist/dynamodb.d.cts +93 -0
  62. package/dist/dynamodb.d.ts +93 -0
  63. package/dist/dynamodb.js +5 -0
  64. package/dist/dynamodb.js.map +1 -0
  65. package/dist/eventbridge.cjs +279 -0
  66. package/dist/eventbridge.cjs.map +1 -0
  67. package/dist/eventbridge.d.cts +360 -0
  68. package/dist/eventbridge.d.ts +360 -0
  69. package/dist/eventbridge.js +273 -0
  70. package/dist/eventbridge.js.map +1 -0
  71. package/dist/index.cjs +251 -0
  72. package/dist/index.cjs.map +1 -0
  73. package/dist/index.d.cts +126 -0
  74. package/dist/index.d.ts +126 -0
  75. package/dist/index.js +48 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/kinesis.cjs +23 -0
  78. package/dist/kinesis.cjs.map +1 -0
  79. package/dist/kinesis.d.cts +360 -0
  80. package/dist/kinesis.d.ts +360 -0
  81. package/dist/kinesis.js +6 -0
  82. package/dist/kinesis.js.map +1 -0
  83. package/dist/lambda-auto.cjs +19 -0
  84. package/dist/lambda-auto.cjs.map +1 -0
  85. package/dist/lambda-auto.d.cts +2 -0
  86. package/dist/lambda-auto.d.ts +2 -0
  87. package/dist/lambda-auto.js +17 -0
  88. package/dist/lambda-auto.js.map +1 -0
  89. package/dist/lambda.cjs +42 -0
  90. package/dist/lambda.cjs.map +1 -0
  91. package/dist/lambda.d.cts +231 -0
  92. package/dist/lambda.d.ts +231 -0
  93. package/dist/lambda.js +5 -0
  94. package/dist/lambda.js.map +1 -0
  95. package/dist/s3.cjs +14 -0
  96. package/dist/s3.cjs.map +1 -0
  97. package/dist/s3.d.cts +77 -0
  98. package/dist/s3.d.ts +77 -0
  99. package/dist/s3.js +5 -0
  100. package/dist/s3.js.map +1 -0
  101. package/dist/sdk.cjs +31 -0
  102. package/dist/sdk.cjs.map +1 -0
  103. package/dist/sdk.d.cts +155 -0
  104. package/dist/sdk.d.ts +155 -0
  105. package/dist/sdk.js +6 -0
  106. package/dist/sdk.js.map +1 -0
  107. package/dist/sns.cjs +19 -0
  108. package/dist/sns.cjs.map +1 -0
  109. package/dist/sns.d.cts +256 -0
  110. package/dist/sns.d.ts +256 -0
  111. package/dist/sns.js +6 -0
  112. package/dist/sns.js.map +1 -0
  113. package/dist/sqs.cjs +23 -0
  114. package/dist/sqs.cjs.map +1 -0
  115. package/dist/sqs.d.cts +384 -0
  116. package/dist/sqs.d.ts +384 -0
  117. package/dist/sqs.js +6 -0
  118. package/dist/sqs.js.map +1 -0
  119. package/dist/step-functions.cjs +35 -0
  120. package/dist/step-functions.cjs.map +1 -0
  121. package/dist/step-functions.d.cts +423 -0
  122. package/dist/step-functions.d.ts +423 -0
  123. package/dist/step-functions.js +6 -0
  124. package/dist/step-functions.js.map +1 -0
  125. package/dist/testing.cjs +61 -0
  126. package/dist/testing.cjs.map +1 -0
  127. package/dist/testing.d.cts +39 -0
  128. package/dist/testing.d.ts +39 -0
  129. package/dist/testing.js +58 -0
  130. package/dist/testing.js.map +1 -0
  131. package/dist/types-3_ak5jhy.d.cts +76 -0
  132. package/dist/types-3_ak5jhy.d.ts +76 -0
  133. package/dist/types-UiBv_I_M.d.ts +16 -0
  134. package/dist/types-kTFVdSqO.d.cts +16 -0
  135. package/dist/xray.cjs +26 -0
  136. package/dist/xray.cjs.map +1 -0
  137. package/dist/xray.d.cts +23 -0
  138. package/dist/xray.d.ts +23 -0
  139. package/dist/xray.js +5 -0
  140. package/dist/xray.js.map +1 -0
  141. package/package.json +184 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eventbridge/index.ts"],"names":[],"mappings":"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","file":"eventbridge.js","sourcesContent":["/**\n * EventBridge instrumentation\n *\n * Provides helpers for tracing Amazon EventBridge operations with\n * automatic W3C Trace Context propagation for distributed tracing.\n *\n * @example Publish events with trace context\n * ```typescript\n * import { EventBridgePublisher } from 'autotel-aws/eventbridge';\n * import { EventBridgeClient } from '@aws-sdk/client-eventbridge';\n *\n * const client = new EventBridgeClient({ region: 'us-east-1' });\n * const publisher = new EventBridgePublisher(client, {\n * eventBusName: 'my-event-bus',\n * source: 'com.myapp.orders'\n * });\n *\n * // Publish with automatic trace context injection\n * await publisher.putEvent({\n * detailType: 'OrderCreated',\n * detail: { orderId: '123', customerId: 'abc' }\n * });\n * ```\n *\n * @example Extract context in Lambda triggered by EventBridge\n * ```typescript\n * import { extractEventBridgeContext } from 'autotel-aws/eventbridge';\n * import { wrapHandler } from 'autotel-aws/lambda';\n *\n * export const handler = wrapHandler(async (event) => {\n * // Extract trace context from EventBridge event detail\n * const parentContext = extractEventBridgeContext(event);\n *\n * // Process the event\n * const { orderId, customerId } = event.detail;\n * await processOrder(orderId, customerId);\n *\n * return { statusCode: 200 };\n * });\n * ```\n *\n * @example Trace EventBridge operations with helper\n * ```typescript\n * import { traceEventBridge } from 'autotel-aws/eventbridge';\n *\n * export const publishOrderEvent = traceEventBridge({\n * eventBus: 'orders-bus',\n * source: 'order-service',\n * detailType: 'OrderCreated'\n * })(ctx => async (order: Order) => {\n * ctx.setAttribute('order.id', order.id);\n * await eventBridge.send(new PutEventsCommand({\n * Entries: [{\n * EventBusName: 'orders-bus',\n * Source: 'order-service',\n * DetailType: 'OrderCreated',\n * Detail: JSON.stringify(injectEventBridgeContext(order))\n * }]\n * }));\n * });\n * ```\n */\n\nimport { trace, type TraceContext } from 'autotel';\nimport { context, propagation, SpanStatusCode } from '@opentelemetry/api';\nimport type { SpanContext } from '@opentelemetry/api';\nimport { buildEventBridgeAttributes } from '../attributes';\nimport { wrapSDKClient } from '../common/sdk-wrapper';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * EventBridge operation configuration for traceEventBridge helper\n */\nexport interface TraceEventBridgeConfig {\n /**\n * Event bus name or ARN\n */\n eventBus: string;\n\n /**\n * Event source (e.g., 'com.myapp.orders')\n */\n source: string;\n\n /**\n * Event detail type (e.g., 'OrderCreated')\n */\n detailType: string;\n}\n\n/**\n * Configuration for EventBridgePublisher\n */\nexport interface EventBridgePublisherConfig {\n /**\n * Event bus name or ARN\n * @default 'default' (the account's default event bus)\n */\n eventBusName?: string;\n\n /**\n * Event source (e.g., 'com.myapp.orders')\n */\n source: string;\n\n /**\n * Inject W3C Trace Context into event detail\n * @default true\n */\n injectTraceContext?: boolean;\n\n /**\n * Optional service name for tracing\n */\n service?: string;\n}\n\n/**\n * Event to publish via EventBridgePublisher\n */\nexport interface EventBridgeEvent<T = Record<string, unknown>> {\n /**\n * Event detail type (e.g., 'OrderCreated', 'UserSignedUp')\n */\n detailType: string;\n\n /**\n * Event detail (the actual payload)\n */\n detail: T;\n\n /**\n * Optional resources ARNs associated with the event\n */\n resources?: string[];\n\n /**\n * Optional time for the event (defaults to current time)\n */\n time?: Date;\n\n /**\n * Optional trace header (for X-Ray integration)\n */\n traceHeader?: string;\n}\n\n/**\n * Trace context fields injected into EventBridge detail\n */\ninterface TraceContextFields {\n _traceContext?: {\n traceparent: string;\n tracestate?: string;\n baggage?: string;\n };\n}\n\n/**\n * EventBridge event structure (Lambda event format)\n */\nexport interface EventBridgeLambdaEvent {\n version?: string;\n id?: string;\n 'detail-type'?: string;\n source?: string;\n account?: string;\n time?: string;\n region?: string;\n resources?: string[];\n detail?: Record<string, unknown> & TraceContextFields;\n}\n\n// ============================================================================\n// Context Propagation Helpers\n// ============================================================================\n\n/**\n * Inject W3C Trace Context into EventBridge event detail\n *\n * Adds `_traceContext` field with traceparent, tracestate, and baggage.\n * This enables distributed tracing from the publisher to all event consumers.\n *\n * @param detail - The event detail object\n * @returns Detail with trace context injected\n *\n * @example\n * ```typescript\n * const detail = { orderId: '123', status: 'created' };\n * const detailWithContext = injectEventBridgeContext(detail);\n * // { orderId: '123', status: 'created', _traceContext: { traceparent: '...' } }\n *\n * await eventBridge.send(new PutEventsCommand({\n * Entries: [{\n * EventBusName: 'my-bus',\n * Source: 'my-app',\n * DetailType: 'OrderCreated',\n * Detail: JSON.stringify(detailWithContext)\n * }]\n * }));\n * ```\n */\nexport function injectEventBridgeContext<T extends Record<string, unknown>>(\n detail: T,\n): T & TraceContextFields {\n const carrier: Record<string, string> = {};\n propagation.inject(context.active(), carrier);\n\n if (!carrier.traceparent) {\n return detail;\n }\n\n return {\n ...detail,\n _traceContext: {\n traceparent: carrier.traceparent,\n ...(carrier.tracestate && { tracestate: carrier.tracestate }),\n ...(carrier.baggage && { baggage: carrier.baggage }),\n },\n };\n}\n\n/**\n * Extract W3C Trace Context from EventBridge Lambda event\n *\n * Extracts the `_traceContext` field from the event detail.\n * Works with the Lambda event format from EventBridge rules.\n *\n * @param event - EventBridge Lambda event\n * @returns SpanContext if trace context was found, undefined otherwise\n *\n * @example\n * ```typescript\n * // In a Lambda triggered by EventBridge\n * export const handler = async (event: EventBridgeLambdaEvent) => {\n * const parentContext = extractEventBridgeContext(event);\n * // Use parentContext to link traces...\n *\n * // Access detail without trace context\n * const cleanDetail = stripEventBridgeContext(event.detail);\n * };\n * ```\n */\nexport function extractEventBridgeContext(\n event: EventBridgeLambdaEvent,\n): SpanContext | undefined {\n if (!event.detail || typeof event.detail !== 'object') {\n return undefined;\n }\n\n const traceContext = event.detail._traceContext;\n if (!traceContext?.traceparent) {\n return undefined;\n }\n\n // Use W3C Trace Context propagator to extract\n const carrier: Record<string, string> = {\n traceparent: traceContext.traceparent,\n ...(traceContext.tracestate && { tracestate: traceContext.tracestate }),\n ...(traceContext.baggage && { baggage: traceContext.baggage }),\n };\n\n const extractedContext = propagation.extract(context.active(), carrier);\n const span = extractedContext.getValue(Symbol.for('OpenTelemetry Context Key SPAN'));\n\n // Handle both Span and SpanContext\n if (span && typeof span === 'object') {\n if ('spanContext' in span && typeof span.spanContext === 'function') {\n return span.spanContext() as SpanContext;\n }\n // Might already be a SpanContext\n if ('traceId' in span && 'spanId' in span) {\n return span as SpanContext;\n }\n }\n\n return undefined;\n}\n\n/**\n * Strip trace context fields from EventBridge event detail\n *\n * Returns the detail without `_traceContext` field for cleaner processing.\n *\n * @param detail - EventBridge event detail with optional trace context\n * @returns Detail without trace context fields\n *\n * @example\n * ```typescript\n * const detail = { orderId: '123', _traceContext: { ... } };\n * const cleanDetail = stripEventBridgeContext(detail);\n * // { orderId: '123' }\n * ```\n */\nexport function stripEventBridgeContext<T extends Record<string, unknown>>(\n detail: T,\n): Omit<T, '_traceContext'> {\n const { _traceContext: _, ...rest } = detail as T & TraceContextFields;\n return rest as Omit<T, '_traceContext'>;\n}\n\n// ============================================================================\n// Trace Helper (Original API)\n// ============================================================================\n\n/**\n * Trace EventBridge operations with semantic attributes\n *\n * Creates a traced function that automatically sets EventBridge attributes.\n *\n * @param config - EventBridge operation configuration\n * @returns A higher-order function that wraps your EventBridge operation with tracing\n *\n * @remarks\n * Semantic attributes set automatically:\n * - `aws.eventbridge.event_bus` - Event bus name\n * - `aws.eventbridge.source` - Event source\n * - `aws.eventbridge.detail_type` - Event detail type\n *\n * @example\n * ```typescript\n * export const publishOrderEvent = traceEventBridge({\n * eventBus: 'orders-bus',\n * source: 'order-service',\n * detailType: 'OrderCreated'\n * })(ctx => async (order: Order) => {\n * ctx.setAttribute('order.id', order.id);\n *\n * const detail = injectEventBridgeContext(order);\n * await eventBridge.send(new PutEventsCommand({\n * Entries: [{\n * EventBusName: 'orders-bus',\n * Source: 'order-service',\n * DetailType: 'OrderCreated',\n * Detail: JSON.stringify(detail)\n * }]\n * }));\n * });\n * ```\n */\nexport function traceEventBridge(config: TraceEventBridgeConfig) {\n return function wrapper<TArgs extends unknown[], TReturn>(\n fn: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>,\n ): (...args: TArgs) => Promise<TReturn> {\n // Use autotel's trace() which properly handles the factory pattern\n return trace(\n `eventbridge.${config.detailType}`,\n (ctx: TraceContext) =>\n async (...args: TArgs): Promise<TReturn> => {\n // Set EventBridge semantic attributes\n ctx.setAttributes(\n buildEventBridgeAttributes({\n eventBus: config.eventBus,\n source: config.source,\n detailType: config.detailType,\n }),\n );\n\n // Get the user's handler and execute with forwarded arguments\n const handler = fn(ctx);\n return handler(...args);\n },\n );\n };\n}\n\n// ============================================================================\n// EventBridgePublisher Class\n// ============================================================================\n\n/**\n * EventBridge Publisher with automatic trace context injection\n *\n * Wraps an EventBridge client to automatically:\n * - Create spans for PutEvents operations\n * - Inject W3C Trace Context into event detail\n * - Set proper semantic attributes\n *\n * @example Basic usage\n * ```typescript\n * import { EventBridgePublisher } from 'autotel-aws/eventbridge';\n * import { EventBridgeClient } from '@aws-sdk/client-eventbridge';\n *\n * const client = new EventBridgeClient({ region: 'us-east-1' });\n * const publisher = new EventBridgePublisher(client, {\n * eventBusName: 'my-event-bus',\n * source: 'com.myapp.orders'\n * });\n *\n * // Publish single event\n * const result = await publisher.putEvent({\n * detailType: 'OrderCreated',\n * detail: { orderId: '123', customerId: 'abc' }\n * });\n * console.log('Event ID:', result.eventId);\n * ```\n *\n * @example Batch publish multiple events\n * ```typescript\n * const results = await publisher.putEvents([\n * { detailType: 'OrderCreated', detail: { orderId: '1' } },\n * { detailType: 'OrderCreated', detail: { orderId: '2' } },\n * { detailType: 'OrderCreated', detail: { orderId: '3' } }\n * ]);\n *\n * console.log(`Published ${results.successful.length} events`);\n * console.log(`Failed ${results.failed.length} events`);\n * ```\n *\n * @example Multiple sources\n * ```typescript\n * // Create publishers for different event sources\n * const ordersPublisher = new EventBridgePublisher(client, {\n * source: 'com.myapp.orders'\n * });\n *\n * const usersPublisher = new EventBridgePublisher(client, {\n * source: 'com.myapp.users'\n * });\n *\n * await ordersPublisher.putEvent({ detailType: 'OrderCreated', detail: {...} });\n * await usersPublisher.putEvent({ detailType: 'UserSignedUp', detail: {...} });\n * ```\n */\nexport class EventBridgePublisher<\n \n TClient extends { send: (command: any) => Promise<any> } = any,\n> {\n private client: TClient;\n private config: Required<Pick<EventBridgePublisherConfig, 'source'>> &\n EventBridgePublisherConfig;\n\n constructor(client: TClient, config: EventBridgePublisherConfig) {\n this.client = wrapSDKClient(client as any, config.service) as TClient;\n this.config = {\n eventBusName: 'default',\n injectTraceContext: true,\n ...config,\n };\n }\n\n /**\n * Publish a single event to EventBridge\n *\n * @param event - Event to publish\n * @returns Promise with event ID (if successful)\n */\n async putEvent<T extends Record<string, unknown>>(\n event: EventBridgeEvent<T>,\n ): Promise<{\n eventId?: string;\n failedEntryCount?: number;\n }> {\n return trace(`eventbridge.PutEvents`, async (ctx: TraceContext) => {\n ctx.setAttributes(\n buildEventBridgeAttributes({\n eventBus: this.config.eventBusName || 'default',\n source: this.config.source,\n detailType: event.detailType,\n }),\n );\n\n // Optionally inject trace context\n const detail = this.config.injectTraceContext\n ? injectEventBridgeContext(event.detail)\n : event.detail;\n\n const entry = {\n EventBusName: this.config.eventBusName,\n Source: this.config.source,\n DetailType: event.detailType,\n Detail: JSON.stringify(detail),\n Resources: event.resources,\n Time: event.time,\n TraceHeader: event.traceHeader,\n };\n\n try {\n const { PutEventsCommand } = await import('@aws-sdk/client-eventbridge');\n const result = await this.client.send(\n new PutEventsCommand({ Entries: [entry] }),\n );\n\n const firstEntry = result.Entries?.[0];\n if (firstEntry?.EventId) {\n ctx.setAttribute('aws.eventbridge.event_id', firstEntry.EventId);\n }\n\n if (result.FailedEntryCount && result.FailedEntryCount > 0) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: firstEntry?.ErrorMessage || 'PutEvents failed',\n });\n } else {\n ctx.setStatus({ code: SpanStatusCode.OK });\n }\n\n return {\n eventId: firstEntry?.EventId,\n failedEntryCount: result.FailedEntryCount,\n };\n } catch (error) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'PutEvents failed',\n });\n throw error;\n }\n });\n }\n\n /**\n * Publish multiple events in a batch\n *\n * @param events - Array of events to publish (max 10 per API call)\n * @returns Promise with successful and failed event results\n */\n async putEvents<T extends Record<string, unknown>>(\n events: EventBridgeEvent<T>[],\n ): Promise<{\n successful: Array<{ eventId?: string; detailType: string }>;\n failed: Array<{ errorCode?: string; errorMessage?: string; detailType: string }>;\n failedEntryCount: number;\n }> {\n return trace(`eventbridge.PutEvents.batch`, async (ctx: TraceContext) => {\n ctx.setAttributes(\n buildEventBridgeAttributes({\n eventBus: this.config.eventBusName || 'default',\n source: this.config.source,\n detailType: 'batch',\n }),\n );\n ctx.setAttribute('aws.eventbridge.batch_size', events.length);\n\n const entries = events.map((event) => {\n const detail = this.config.injectTraceContext\n ? injectEventBridgeContext(event.detail)\n : event.detail;\n\n return {\n EventBusName: this.config.eventBusName,\n Source: this.config.source,\n DetailType: event.detailType,\n Detail: JSON.stringify(detail),\n Resources: event.resources,\n Time: event.time,\n TraceHeader: event.traceHeader,\n };\n });\n\n try {\n const { PutEventsCommand } = await import('@aws-sdk/client-eventbridge');\n const result = await this.client.send(\n new PutEventsCommand({ Entries: entries }),\n );\n\n const successful: Array<{ eventId?: string; detailType: string }> = [];\n const failed: Array<{ errorCode?: string; errorMessage?: string; detailType: string }> =\n [];\n\n if (result.Entries) {\n for (const [index, entry] of result.Entries.entries()) {\n const typedEntry = entry as {\n EventId?: string;\n ErrorCode?: string;\n ErrorMessage?: string;\n };\n if (typedEntry.EventId) {\n successful.push({\n eventId: typedEntry.EventId,\n detailType: events[index].detailType,\n });\n } else {\n failed.push({\n errorCode: typedEntry.ErrorCode,\n errorMessage: typedEntry.ErrorMessage,\n detailType: events[index].detailType,\n });\n }\n }\n }\n\n ctx.setAttribute('aws.eventbridge.successful_count', successful.length);\n ctx.setAttribute('aws.eventbridge.failed_count', failed.length);\n\n if (failed.length > 0) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: `${failed.length} events failed`,\n });\n } else {\n ctx.setStatus({ code: SpanStatusCode.OK });\n }\n\n return {\n successful,\n failed,\n failedEntryCount: result.FailedEntryCount || 0,\n };\n } catch (error) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'PutEvents batch failed',\n });\n throw error;\n }\n });\n }\n\n /**\n * Publish event with override source\n *\n * Use when you need to publish to a different source than the default.\n *\n * @param event - Event with source override\n * @returns Promise with event ID\n */\n async putEventWithSource<T extends Record<string, unknown>>(\n event: EventBridgeEvent<T> & { source: string },\n ): Promise<{\n eventId?: string;\n failedEntryCount?: number;\n }> {\n return trace(`eventbridge.PutEvents`, async (ctx: TraceContext) => {\n ctx.setAttributes(\n buildEventBridgeAttributes({\n eventBus: this.config.eventBusName || 'default',\n source: event.source,\n detailType: event.detailType,\n }),\n );\n\n // Optionally inject trace context\n const detail = this.config.injectTraceContext\n ? injectEventBridgeContext(event.detail)\n : event.detail;\n\n const entry = {\n EventBusName: this.config.eventBusName,\n Source: event.source, // Use override source\n DetailType: event.detailType,\n Detail: JSON.stringify(detail),\n Resources: event.resources,\n Time: event.time,\n TraceHeader: event.traceHeader,\n };\n\n try {\n const { PutEventsCommand } = await import('@aws-sdk/client-eventbridge');\n const result = await this.client.send(\n new PutEventsCommand({ Entries: [entry] }),\n );\n\n const firstEntry = result.Entries?.[0];\n if (firstEntry?.EventId) {\n ctx.setAttribute('aws.eventbridge.event_id', firstEntry.EventId);\n }\n\n if (result.FailedEntryCount && result.FailedEntryCount > 0) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: firstEntry?.ErrorMessage || 'PutEvents failed',\n });\n } else {\n ctx.setStatus({ code: SpanStatusCode.OK });\n }\n\n return {\n eventId: firstEntry?.EventId,\n failedEntryCount: result.FailedEntryCount,\n };\n } catch (error) {\n ctx.setStatus({\n code: SpanStatusCode.ERROR,\n message: error instanceof Error ? error.message : 'PutEvents failed',\n });\n throw error;\n }\n });\n }\n}\n"]}
package/dist/index.cjs ADDED
@@ -0,0 +1,251 @@
1
+ 'use strict';
2
+
3
+ var chunkHMTKKKKP_cjs = require('./chunk-HMTKKKKP.cjs');
4
+ var chunkKUIOI74B_cjs = require('./chunk-KUIOI74B.cjs');
5
+ var chunk35F3UBOO_cjs = require('./chunk-35F3UBOO.cjs');
6
+ var chunkD5INYMRP_cjs = require('./chunk-D5INYMRP.cjs');
7
+ var chunk4TGVGEUN_cjs = require('./chunk-4TGVGEUN.cjs');
8
+ var chunkDHHLKZHI_cjs = require('./chunk-DHHLKZHI.cjs');
9
+ var chunkVZHQH75L_cjs = require('./chunk-VZHQH75L.cjs');
10
+ var chunkOB4XTAVK_cjs = require('./chunk-OB4XTAVK.cjs');
11
+ var chunkNQ65Y5AI_cjs = require('./chunk-NQ65Y5AI.cjs');
12
+ var chunkUZEJV2YD_cjs = require('./chunk-UZEJV2YD.cjs');
13
+ var chunkQ3DMMQ7K_cjs = require('./chunk-Q3DMMQ7K.cjs');
14
+ require('./chunk-JEQ2X3Z6.cjs');
15
+
16
+ // src/index.ts
17
+ async function init(config) {
18
+ const { init: autotelInit } = await import('autotel');
19
+ autotelInit({
20
+ service: config.service,
21
+ endpoint: config.endpoint,
22
+ resourceAttributes: {
23
+ "cloud.provider": "aws",
24
+ "cloud.region": config.region || process.env.AWS_REGION || "",
25
+ ...config.resourceAttributes
26
+ }
27
+ // Note: autotel's init() doesn't directly accept resourceDetectors
28
+ // AWS resource detection is handled automatically by autotel if
29
+ // @opentelemetry/resource-detector-aws is installed
30
+ // Users can call getAWSResourceDetectors() separately if needed
31
+ });
32
+ }
33
+ async function getAWSResourceDetectors() {
34
+ try {
35
+ const awsDetectors = await import('@opentelemetry/resource-detector-aws');
36
+ return [
37
+ awsDetectors.awsEc2Detector,
38
+ awsDetectors.awsEcsDetector,
39
+ awsDetectors.awsEksDetector
40
+ // Note: awsLambdaDetector may not exist in the package
41
+ // Lambda metadata is typically extracted from environment variables
42
+ ];
43
+ } catch {
44
+ return [];
45
+ }
46
+ }
47
+
48
+ Object.defineProperty(exports, "KinesisConsumer", {
49
+ enumerable: true,
50
+ get: function () { return chunkHMTKKKKP_cjs.KinesisConsumer; }
51
+ });
52
+ Object.defineProperty(exports, "KinesisProducer", {
53
+ enumerable: true,
54
+ get: function () { return chunkHMTKKKKP_cjs.KinesisProducer; }
55
+ });
56
+ Object.defineProperty(exports, "traceKinesis", {
57
+ enumerable: true,
58
+ get: function () { return chunkHMTKKKKP_cjs.traceKinesis; }
59
+ });
60
+ Object.defineProperty(exports, "StepFunctionsActivityWorker", {
61
+ enumerable: true,
62
+ get: function () { return chunkKUIOI74B_cjs.StepFunctionsActivityWorker; }
63
+ });
64
+ Object.defineProperty(exports, "StepFunctionsExecutor", {
65
+ enumerable: true,
66
+ get: function () { return chunkKUIOI74B_cjs.StepFunctionsExecutor; }
67
+ });
68
+ Object.defineProperty(exports, "extractStepFunctionsContext", {
69
+ enumerable: true,
70
+ get: function () { return chunkKUIOI74B_cjs.extractStepFunctionsContext; }
71
+ });
72
+ Object.defineProperty(exports, "injectTraceContext", {
73
+ enumerable: true,
74
+ get: function () { return chunkKUIOI74B_cjs.injectTraceContext; }
75
+ });
76
+ Object.defineProperty(exports, "stripTraceContext", {
77
+ enumerable: true,
78
+ get: function () { return chunkKUIOI74B_cjs.stripTraceContext; }
79
+ });
80
+ Object.defineProperty(exports, "traceStepFunction", {
81
+ enumerable: true,
82
+ get: function () { return chunkKUIOI74B_cjs.traceStepFunction; }
83
+ });
84
+ Object.defineProperty(exports, "XRayPropagator", {
85
+ enumerable: true,
86
+ get: function () { return chunk35F3UBOO_cjs.AWSXRayPropagator; }
87
+ });
88
+ Object.defineProperty(exports, "configureXRay", {
89
+ enumerable: true,
90
+ get: function () { return chunk35F3UBOO_cjs.configureXRay; }
91
+ });
92
+ Object.defineProperty(exports, "setXRayAnnotation", {
93
+ enumerable: true,
94
+ get: function () { return chunk35F3UBOO_cjs.setXRayAnnotation; }
95
+ });
96
+ Object.defineProperty(exports, "setXRayMetadata", {
97
+ enumerable: true,
98
+ get: function () { return chunk35F3UBOO_cjs.setXRayMetadata; }
99
+ });
100
+ Object.defineProperty(exports, "LambdaMiddleware", {
101
+ enumerable: true,
102
+ get: function () { return chunkD5INYMRP_cjs.LambdaMiddleware; }
103
+ });
104
+ Object.defineProperty(exports, "detectTriggerType", {
105
+ enumerable: true,
106
+ get: function () { return chunkD5INYMRP_cjs.detectTriggerType; }
107
+ });
108
+ Object.defineProperty(exports, "extractTraceContext", {
109
+ enumerable: true,
110
+ get: function () { return chunkD5INYMRP_cjs.extractTraceContext; }
111
+ });
112
+ Object.defineProperty(exports, "getContextFromRequest", {
113
+ enumerable: true,
114
+ get: function () { return chunkD5INYMRP_cjs.getContextFromRequest; }
115
+ });
116
+ Object.defineProperty(exports, "getSpanFromRequest", {
117
+ enumerable: true,
118
+ get: function () { return chunkD5INYMRP_cjs.getSpanFromRequest; }
119
+ });
120
+ Object.defineProperty(exports, "traceLambda", {
121
+ enumerable: true,
122
+ get: function () { return chunkD5INYMRP_cjs.traceLambda; }
123
+ });
124
+ Object.defineProperty(exports, "tracingMiddleware", {
125
+ enumerable: true,
126
+ get: function () { return chunkD5INYMRP_cjs.tracingMiddleware; }
127
+ });
128
+ Object.defineProperty(exports, "wrapHandler", {
129
+ enumerable: true,
130
+ get: function () { return chunkD5INYMRP_cjs.wrapHandler; }
131
+ });
132
+ Object.defineProperty(exports, "autoInstrumentAWS", {
133
+ enumerable: true,
134
+ get: function () { return chunk4TGVGEUN_cjs.autoInstrumentAWS; }
135
+ });
136
+ Object.defineProperty(exports, "createTracedClient", {
137
+ enumerable: true,
138
+ get: function () { return chunk4TGVGEUN_cjs.createTracedClient; }
139
+ });
140
+ Object.defineProperty(exports, "disableAutoInstrumentAWS", {
141
+ enumerable: true,
142
+ get: function () { return chunk4TGVGEUN_cjs.disableAutoInstrumentAWS; }
143
+ });
144
+ Object.defineProperty(exports, "instrumentSDK", {
145
+ enumerable: true,
146
+ get: function () { return chunk4TGVGEUN_cjs.instrumentSDK; }
147
+ });
148
+ Object.defineProperty(exports, "isAutoInstrumentEnabled", {
149
+ enumerable: true,
150
+ get: function () { return chunk4TGVGEUN_cjs.isAutoInstrumentEnabled; }
151
+ });
152
+ Object.defineProperty(exports, "traceS3", {
153
+ enumerable: true,
154
+ get: function () { return chunkDHHLKZHI_cjs.traceS3; }
155
+ });
156
+ Object.defineProperty(exports, "traceDynamoDB", {
157
+ enumerable: true,
158
+ get: function () { return chunkVZHQH75L_cjs.traceDynamoDB; }
159
+ });
160
+ Object.defineProperty(exports, "SQSConsumer", {
161
+ enumerable: true,
162
+ get: function () { return chunkOB4XTAVK_cjs.SQSConsumer; }
163
+ });
164
+ Object.defineProperty(exports, "SQSProducer", {
165
+ enumerable: true,
166
+ get: function () { return chunkOB4XTAVK_cjs.SQSProducer; }
167
+ });
168
+ Object.defineProperty(exports, "traceSQS", {
169
+ enumerable: true,
170
+ get: function () { return chunkOB4XTAVK_cjs.traceSQS; }
171
+ });
172
+ Object.defineProperty(exports, "SNSPublisher", {
173
+ enumerable: true,
174
+ get: function () { return chunkNQ65Y5AI_cjs.SNSPublisher; }
175
+ });
176
+ Object.defineProperty(exports, "traceSNS", {
177
+ enumerable: true,
178
+ get: function () { return chunkNQ65Y5AI_cjs.traceSNS; }
179
+ });
180
+ Object.defineProperty(exports, "classifyAWSError", {
181
+ enumerable: true,
182
+ get: function () { return chunkUZEJV2YD_cjs.classifyAWSError; }
183
+ });
184
+ Object.defineProperty(exports, "extractErrorAttributes", {
185
+ enumerable: true,
186
+ get: function () { return chunkUZEJV2YD_cjs.extractErrorAttributes; }
187
+ });
188
+ Object.defineProperty(exports, "extractOperationName", {
189
+ enumerable: true,
190
+ get: function () { return chunkUZEJV2YD_cjs.extractOperationName; }
191
+ });
192
+ Object.defineProperty(exports, "extractRequestMetadata", {
193
+ enumerable: true,
194
+ get: function () { return chunkUZEJV2YD_cjs.extractRequestMetadata; }
195
+ });
196
+ Object.defineProperty(exports, "extractResponseMetadata", {
197
+ enumerable: true,
198
+ get: function () { return chunkUZEJV2YD_cjs.extractResponseMetadata; }
199
+ });
200
+ Object.defineProperty(exports, "extractServiceName", {
201
+ enumerable: true,
202
+ get: function () { return chunkUZEJV2YD_cjs.extractServiceName; }
203
+ });
204
+ Object.defineProperty(exports, "wrapSDKClient", {
205
+ enumerable: true,
206
+ get: function () { return chunkUZEJV2YD_cjs.wrapSDKClient; }
207
+ });
208
+ Object.defineProperty(exports, "AWS_ATTRS", {
209
+ enumerable: true,
210
+ get: function () { return chunkQ3DMMQ7K_cjs.AWS_ATTRS; }
211
+ });
212
+ Object.defineProperty(exports, "buildDynamoDBAttributes", {
213
+ enumerable: true,
214
+ get: function () { return chunkQ3DMMQ7K_cjs.buildDynamoDBAttributes; }
215
+ });
216
+ Object.defineProperty(exports, "buildEventBridgeAttributes", {
217
+ enumerable: true,
218
+ get: function () { return chunkQ3DMMQ7K_cjs.buildEventBridgeAttributes; }
219
+ });
220
+ Object.defineProperty(exports, "buildKinesisAttributes", {
221
+ enumerable: true,
222
+ get: function () { return chunkQ3DMMQ7K_cjs.buildKinesisAttributes; }
223
+ });
224
+ Object.defineProperty(exports, "buildLambdaAttributes", {
225
+ enumerable: true,
226
+ get: function () { return chunkQ3DMMQ7K_cjs.buildLambdaAttributes; }
227
+ });
228
+ Object.defineProperty(exports, "buildS3Attributes", {
229
+ enumerable: true,
230
+ get: function () { return chunkQ3DMMQ7K_cjs.buildS3Attributes; }
231
+ });
232
+ Object.defineProperty(exports, "buildSDKAttributes", {
233
+ enumerable: true,
234
+ get: function () { return chunkQ3DMMQ7K_cjs.buildSDKAttributes; }
235
+ });
236
+ Object.defineProperty(exports, "buildSNSAttributes", {
237
+ enumerable: true,
238
+ get: function () { return chunkQ3DMMQ7K_cjs.buildSNSAttributes; }
239
+ });
240
+ Object.defineProperty(exports, "buildSQSAttributes", {
241
+ enumerable: true,
242
+ get: function () { return chunkQ3DMMQ7K_cjs.buildSQSAttributes; }
243
+ });
244
+ Object.defineProperty(exports, "buildStepFunctionsAttributes", {
245
+ enumerable: true,
246
+ get: function () { return chunkQ3DMMQ7K_cjs.buildStepFunctionsAttributes; }
247
+ });
248
+ exports.getAWSResourceDetectors = getAWSResourceDetectors;
249
+ exports.init = init;
250
+ //# sourceMappingURL=index.cjs.map
251
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAoEA,eAAsB,KAAK,MAAA,EAAyD;AAClF,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAY,GAAI,MAAM,OAAO,SAAS,CAAA;AAEpD,EAAA,WAAA,CAAY;AAAA,IACV,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,kBAAA,EAAoB;AAAA,MAClB,gBAAA,EAAkB,KAAA;AAAA,MAClB,cAAA,EAAgB,MAAA,CAAO,MAAA,IAAU,OAAA,CAAQ,IAAI,UAAA,IAAc,EAAA;AAAA,MAC3D,GAAG,MAAA,CAAO;AAAA;AACZ;AAAA;AAAA;AAAA;AAAA,GAKD,CAAA;AACH;AAeA,eAAsB,uBAAA,GAA8C;AAClE,EAAA,IAAI;AAGF,IAAA,MAAM,YAAA,GAAe,MAAM,OAAO,sCAAsC,CAAA;AACxE,IAAA,OAAO;AAAA,MACL,YAAA,CAAa,cAAA;AAAA,MACb,YAAA,CAAa,cAAA;AAAA,MACb,YAAA,CAAa;AAAA;AAAA;AAAA,KAGf;AAAA,EACF,CAAA,CAAA,MAAQ;AAEN,IAAA,OAAO,EAAC;AAAA,EACV;AACF","file":"index.cjs","sourcesContent":["/**\n * autotel-aws\n *\n * OpenTelemetry instrumentation for AWS services\n *\n * Features:\n * - Lambda handler instrumentation\n * - AWS SDK v3 auto-instrumentation\n * - Service-specific semantic helpers (S3, DynamoDB, SQS, SNS, Kinesis)\n * - X-Ray compatibility layer\n * - Vendor-agnostic (works with any OTLP backend)\n *\n * @example\n * ```typescript\n * import { init } from 'autotel-aws';\n * import { wrapHandler } from 'autotel-aws/lambda';\n * import { instrumentSDK } from 'autotel-aws/sdk';\n *\n * init({ service: 'my-service', autoDetectResources: true });\n *\n * const s3 = instrumentSDK(new S3Client({}));\n *\n * export const handler = wrapHandler(async (event) => {\n * await s3.send(new GetObjectCommand({ Bucket: 'my-bucket', Key: 'file.txt' }));\n * return { statusCode: 200 };\n * });\n * ```\n */\n\n// Re-export types\nexport type * from './types';\nexport type * from './config';\n\n// Re-export attribute builders\nexport * from './attributes';\n\n// Re-export common utilities\nexport * from './common/error-handlers';\nexport * from './common/request-builder';\nexport * from './common/response-builder';\nexport * from './common/sdk-wrapper';\n\n// Re-export service-specific modules\nexport * from './lambda';\nexport * from './sdk';\nexport * from './s3';\nexport * from './dynamodb';\nexport * from './sqs';\nexport * from './sns';\nexport * from './kinesis';\nexport * from './step-functions';\nexport * from './xray';\n\n/**\n * Initialize autotel-aws with AWS resource detection\n *\n * @example\n * ```typescript\n * import { init } from 'autotel-aws';\n * import { init as autotelInit } from 'autotel';\n *\n * const detectors = getAWSResourceDetectors();\n * autotelInit({\n * service: 'my-service',\n * resourceDetectors: detectors,\n * });\n * ```\n */\nexport async function init(config: import('./config').AWSInitConfig): Promise<void> {\n const { init: autotelInit } = await import('autotel');\n\n autotelInit({\n service: config.service,\n endpoint: config.endpoint,\n resourceAttributes: {\n 'cloud.provider': 'aws',\n 'cloud.region': config.region || process.env.AWS_REGION || '',\n ...config.resourceAttributes,\n },\n // Note: autotel's init() doesn't directly accept resourceDetectors\n // AWS resource detection is handled automatically by autotel if\n // @opentelemetry/resource-detector-aws is installed\n // Users can call getAWSResourceDetectors() separately if needed\n });\n}\n\n/**\n * Get AWS resource detectors\n *\n * Returns resource detectors for EC2, ECS, EKS, and Lambda\n * Uses @opentelemetry/resource-detector-aws if available\n *\n * @example\n * ```typescript\n * import { getAWSResourceDetectors } from 'autotel-aws';\n * const detectors = await getAWSResourceDetectors();\n * // Use detectors with your OpenTelemetry SDK configuration\n * ```\n */\nexport async function getAWSResourceDetectors(): Promise<unknown[]> {\n try {\n // Use dynamic import to handle optional dependency\n // @ts-expect-error - Optional peer dependency, may not be installed\n const awsDetectors = await import('@opentelemetry/resource-detector-aws');\n return [\n awsDetectors.awsEc2Detector,\n awsDetectors.awsEcsDetector,\n awsDetectors.awsEksDetector,\n // Note: awsLambdaDetector may not exist in the package\n // Lambda metadata is typically extracted from environment variables\n ];\n } catch {\n // Package not installed, return empty array\n return [];\n }\n}\n"]}
@@ -0,0 +1,126 @@
1
+ import { A as AWSInitConfig } from './config-C7zV8Zm6.cjs';
2
+ export { a as AWSResourceDetectorConfig, L as LambdaInstrumentationConfig, S as SDKInstrumentationConfig, X as XRayConfig, m as mergeServiceConfig } from './config-C7zV8Zm6.cjs';
3
+ import { b as AWSCommandMetadata } from './types-3_ak5jhy.cjs';
4
+ export { A as AWSServiceConfig, E as ExtractedTraceContext, a as LambdaContext, L as LambdaEvent, X as XRayAnnotation } from './types-3_ak5jhy.cjs';
5
+ export { AWS_ATTRS, buildDynamoDBAttributes, buildEventBridgeAttributes, buildKinesisAttributes, buildLambdaAttributes, buildS3Attributes, buildSDKAttributes, buildSNSAttributes, buildSQSAttributes, buildStepFunctionsAttributes } from './attributes.cjs';
6
+ import { Client } from '@aws-sdk/smithy-client';
7
+ export { LambdaMiddleware, detectTriggerType, extractTraceContext, getContextFromRequest, getSpanFromRequest, traceLambda, tracingMiddleware, wrapHandler } from './lambda.cjs';
8
+ export { L as LambdaHandler, a as LambdaTrigger } from './types-kTFVdSqO.cjs';
9
+ export { autoInstrumentAWS, createTracedClient, disableAutoInstrumentAWS, instrumentSDK, isAutoInstrumentEnabled } from './sdk.cjs';
10
+ export { TraceS3Config, traceS3 } from './s3.cjs';
11
+ export { TraceDynamoDBConfig, traceDynamoDB } from './dynamodb.cjs';
12
+ export { MessageProcessor, ReceivedSQSMessage, SQSConsumer, SQSConsumerConfig, SQSMessage, SQSProducer, SQSProducerConfig, TraceSQSConfig, traceSQS } from './sqs.cjs';
13
+ export { SNSPublishMessage, SNSPublisher, SNSPublisherConfig, TraceSNSConfig, traceSNS } from './sns.cjs';
14
+ export { KinesisConsumer, KinesisConsumerConfig, KinesisProducer, KinesisProducerConfig, KinesisRecord, KinesisRecordProcessor, ReceivedKinesisRecord, TraceKinesisConfig, traceKinesis } from './kinesis.cjs';
15
+ export { ExecutionInput, StepFunctionsActivityWorker, StepFunctionsActivityWorkerConfig, StepFunctionsExecutor, StepFunctionsExecutorConfig, TraceStepFunctionConfig, extractStepFunctionsContext, injectTraceContext, stripTraceContext, traceStepFunction } from './step-functions.cjs';
16
+ export { configureXRay, setXRayAnnotation, setXRayMetadata } from './xray.cjs';
17
+ export { AWSXRayPropagator as XRayPropagator } from '@opentelemetry/propagator-aws-xray';
18
+ import '@opentelemetry/api';
19
+ import 'autotel';
20
+ import '@middy/core';
21
+ import 'aws-lambda';
22
+
23
+ /**
24
+ * AWS error classification and handling
25
+ */
26
+ /**
27
+ * AWS error types
28
+ */
29
+ interface AWSError {
30
+ name: string;
31
+ message: string;
32
+ $metadata?: {
33
+ httpStatusCode?: number;
34
+ requestId?: string;
35
+ };
36
+ Code?: string;
37
+ StatusCode?: number;
38
+ }
39
+ /**
40
+ * Classify AWS error for span status
41
+ */
42
+ declare function classifyAWSError(error: unknown): {
43
+ isError: boolean;
44
+ statusCode?: number;
45
+ errorCode?: string;
46
+ };
47
+ /**
48
+ * Extract error attributes from AWS error
49
+ */
50
+ declare function extractErrorAttributes(error: unknown): Record<string, string | number>;
51
+
52
+ /**
53
+ * Request metadata extraction utilities
54
+ */
55
+
56
+ /**
57
+ * Extract request metadata from AWS SDK v3 command
58
+ */
59
+ declare function extractRequestMetadata(command: {
60
+ constructor: {
61
+ name: string;
62
+ };
63
+ }, context: {
64
+ clientName: string;
65
+ }): AWSCommandMetadata;
66
+ /**
67
+ * Extract service name from AWS SDK client
68
+ */
69
+ declare function extractServiceName(clientName: string): string;
70
+ /**
71
+ * Extract operation name from command
72
+ */
73
+ declare function extractOperationName(commandName: string): string;
74
+
75
+ /**
76
+ * Response metadata extraction utilities
77
+ */
78
+
79
+ /**
80
+ * Extract response metadata from AWS SDK v3 response
81
+ */
82
+ declare function extractResponseMetadata(response: {
83
+ $metadata?: Record<string, unknown>;
84
+ }): Partial<AWSCommandMetadata>;
85
+
86
+ /**
87
+ * Generic AWS SDK v3 client wrapper utilities
88
+ */
89
+
90
+ /**
91
+ * Wrap AWS SDK v3 client with OpenTelemetry instrumentation
92
+ */
93
+ declare function wrapSDKClient<T extends Client<any, any, any, any>>(client: T, serviceName?: string): T;
94
+
95
+ /**
96
+ * Initialize autotel-aws with AWS resource detection
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * import { init } from 'autotel-aws';
101
+ * import { init as autotelInit } from 'autotel';
102
+ *
103
+ * const detectors = getAWSResourceDetectors();
104
+ * autotelInit({
105
+ * service: 'my-service',
106
+ * resourceDetectors: detectors,
107
+ * });
108
+ * ```
109
+ */
110
+ declare function init(config: AWSInitConfig): Promise<void>;
111
+ /**
112
+ * Get AWS resource detectors
113
+ *
114
+ * Returns resource detectors for EC2, ECS, EKS, and Lambda
115
+ * Uses @opentelemetry/resource-detector-aws if available
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * import { getAWSResourceDetectors } from 'autotel-aws';
120
+ * const detectors = await getAWSResourceDetectors();
121
+ * // Use detectors with your OpenTelemetry SDK configuration
122
+ * ```
123
+ */
124
+ declare function getAWSResourceDetectors(): Promise<unknown[]>;
125
+
126
+ export { AWSCommandMetadata, type AWSError, AWSInitConfig, classifyAWSError, extractErrorAttributes, extractOperationName, extractRequestMetadata, extractResponseMetadata, extractServiceName, getAWSResourceDetectors, init, wrapSDKClient };
@@ -0,0 +1,126 @@
1
+ import { A as AWSInitConfig } from './config-DxjTT8jd.js';
2
+ export { a as AWSResourceDetectorConfig, L as LambdaInstrumentationConfig, S as SDKInstrumentationConfig, X as XRayConfig, m as mergeServiceConfig } from './config-DxjTT8jd.js';
3
+ import { b as AWSCommandMetadata } from './types-3_ak5jhy.js';
4
+ export { A as AWSServiceConfig, E as ExtractedTraceContext, a as LambdaContext, L as LambdaEvent, X as XRayAnnotation } from './types-3_ak5jhy.js';
5
+ export { AWS_ATTRS, buildDynamoDBAttributes, buildEventBridgeAttributes, buildKinesisAttributes, buildLambdaAttributes, buildS3Attributes, buildSDKAttributes, buildSNSAttributes, buildSQSAttributes, buildStepFunctionsAttributes } from './attributes.js';
6
+ import { Client } from '@aws-sdk/smithy-client';
7
+ export { LambdaMiddleware, detectTriggerType, extractTraceContext, getContextFromRequest, getSpanFromRequest, traceLambda, tracingMiddleware, wrapHandler } from './lambda.js';
8
+ export { L as LambdaHandler, a as LambdaTrigger } from './types-UiBv_I_M.js';
9
+ export { autoInstrumentAWS, createTracedClient, disableAutoInstrumentAWS, instrumentSDK, isAutoInstrumentEnabled } from './sdk.js';
10
+ export { TraceS3Config, traceS3 } from './s3.js';
11
+ export { TraceDynamoDBConfig, traceDynamoDB } from './dynamodb.js';
12
+ export { MessageProcessor, ReceivedSQSMessage, SQSConsumer, SQSConsumerConfig, SQSMessage, SQSProducer, SQSProducerConfig, TraceSQSConfig, traceSQS } from './sqs.js';
13
+ export { SNSPublishMessage, SNSPublisher, SNSPublisherConfig, TraceSNSConfig, traceSNS } from './sns.js';
14
+ export { KinesisConsumer, KinesisConsumerConfig, KinesisProducer, KinesisProducerConfig, KinesisRecord, KinesisRecordProcessor, ReceivedKinesisRecord, TraceKinesisConfig, traceKinesis } from './kinesis.js';
15
+ export { ExecutionInput, StepFunctionsActivityWorker, StepFunctionsActivityWorkerConfig, StepFunctionsExecutor, StepFunctionsExecutorConfig, TraceStepFunctionConfig, extractStepFunctionsContext, injectTraceContext, stripTraceContext, traceStepFunction } from './step-functions.js';
16
+ export { configureXRay, setXRayAnnotation, setXRayMetadata } from './xray.js';
17
+ export { AWSXRayPropagator as XRayPropagator } from '@opentelemetry/propagator-aws-xray';
18
+ import '@opentelemetry/api';
19
+ import 'autotel';
20
+ import '@middy/core';
21
+ import 'aws-lambda';
22
+
23
+ /**
24
+ * AWS error classification and handling
25
+ */
26
+ /**
27
+ * AWS error types
28
+ */
29
+ interface AWSError {
30
+ name: string;
31
+ message: string;
32
+ $metadata?: {
33
+ httpStatusCode?: number;
34
+ requestId?: string;
35
+ };
36
+ Code?: string;
37
+ StatusCode?: number;
38
+ }
39
+ /**
40
+ * Classify AWS error for span status
41
+ */
42
+ declare function classifyAWSError(error: unknown): {
43
+ isError: boolean;
44
+ statusCode?: number;
45
+ errorCode?: string;
46
+ };
47
+ /**
48
+ * Extract error attributes from AWS error
49
+ */
50
+ declare function extractErrorAttributes(error: unknown): Record<string, string | number>;
51
+
52
+ /**
53
+ * Request metadata extraction utilities
54
+ */
55
+
56
+ /**
57
+ * Extract request metadata from AWS SDK v3 command
58
+ */
59
+ declare function extractRequestMetadata(command: {
60
+ constructor: {
61
+ name: string;
62
+ };
63
+ }, context: {
64
+ clientName: string;
65
+ }): AWSCommandMetadata;
66
+ /**
67
+ * Extract service name from AWS SDK client
68
+ */
69
+ declare function extractServiceName(clientName: string): string;
70
+ /**
71
+ * Extract operation name from command
72
+ */
73
+ declare function extractOperationName(commandName: string): string;
74
+
75
+ /**
76
+ * Response metadata extraction utilities
77
+ */
78
+
79
+ /**
80
+ * Extract response metadata from AWS SDK v3 response
81
+ */
82
+ declare function extractResponseMetadata(response: {
83
+ $metadata?: Record<string, unknown>;
84
+ }): Partial<AWSCommandMetadata>;
85
+
86
+ /**
87
+ * Generic AWS SDK v3 client wrapper utilities
88
+ */
89
+
90
+ /**
91
+ * Wrap AWS SDK v3 client with OpenTelemetry instrumentation
92
+ */
93
+ declare function wrapSDKClient<T extends Client<any, any, any, any>>(client: T, serviceName?: string): T;
94
+
95
+ /**
96
+ * Initialize autotel-aws with AWS resource detection
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * import { init } from 'autotel-aws';
101
+ * import { init as autotelInit } from 'autotel';
102
+ *
103
+ * const detectors = getAWSResourceDetectors();
104
+ * autotelInit({
105
+ * service: 'my-service',
106
+ * resourceDetectors: detectors,
107
+ * });
108
+ * ```
109
+ */
110
+ declare function init(config: AWSInitConfig): Promise<void>;
111
+ /**
112
+ * Get AWS resource detectors
113
+ *
114
+ * Returns resource detectors for EC2, ECS, EKS, and Lambda
115
+ * Uses @opentelemetry/resource-detector-aws if available
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * import { getAWSResourceDetectors } from 'autotel-aws';
120
+ * const detectors = await getAWSResourceDetectors();
121
+ * // Use detectors with your OpenTelemetry SDK configuration
122
+ * ```
123
+ */
124
+ declare function getAWSResourceDetectors(): Promise<unknown[]>;
125
+
126
+ export { AWSCommandMetadata, type AWSError, AWSInitConfig, classifyAWSError, extractErrorAttributes, extractOperationName, extractRequestMetadata, extractResponseMetadata, extractServiceName, getAWSResourceDetectors, init, wrapSDKClient };
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ export { KinesisConsumer, KinesisProducer, traceKinesis } from './chunk-X6BY6PCK.js';
2
+ export { StepFunctionsActivityWorker, StepFunctionsExecutor, extractStepFunctionsContext, injectTraceContext, stripTraceContext, traceStepFunction } from './chunk-DF5PT3JK.js';
3
+ export { AWSXRayPropagator as XRayPropagator, configureXRay, setXRayAnnotation, setXRayMetadata } from './chunk-PZGYL7XZ.js';
4
+ export { LambdaMiddleware, detectTriggerType, extractTraceContext, getContextFromRequest, getSpanFromRequest, traceLambda, tracingMiddleware, wrapHandler } from './chunk-V4IQWFYN.js';
5
+ export { autoInstrumentAWS, createTracedClient, disableAutoInstrumentAWS, instrumentSDK, isAutoInstrumentEnabled } from './chunk-FKZOELBT.js';
6
+ export { traceS3 } from './chunk-ZPDRKCAR.js';
7
+ export { traceDynamoDB } from './chunk-JMSFE6FJ.js';
8
+ export { SQSConsumer, SQSProducer, traceSQS } from './chunk-OHFR7WX5.js';
9
+ export { SNSPublisher, traceSNS } from './chunk-CIGXV6HA.js';
10
+ export { classifyAWSError, extractErrorAttributes, extractOperationName, extractRequestMetadata, extractResponseMetadata, extractServiceName, wrapSDKClient } from './chunk-YG56NRIO.js';
11
+ export { AWS_ATTRS, buildDynamoDBAttributes, buildEventBridgeAttributes, buildKinesisAttributes, buildLambdaAttributes, buildS3Attributes, buildSDKAttributes, buildSNSAttributes, buildSQSAttributes, buildStepFunctionsAttributes } from './chunk-I4CKQ4RD.js';
12
+ import './chunk-DGUM43GV.js';
13
+
14
+ // src/index.ts
15
+ async function init(config) {
16
+ const { init: autotelInit } = await import('autotel');
17
+ autotelInit({
18
+ service: config.service,
19
+ endpoint: config.endpoint,
20
+ resourceAttributes: {
21
+ "cloud.provider": "aws",
22
+ "cloud.region": config.region || process.env.AWS_REGION || "",
23
+ ...config.resourceAttributes
24
+ }
25
+ // Note: autotel's init() doesn't directly accept resourceDetectors
26
+ // AWS resource detection is handled automatically by autotel if
27
+ // @opentelemetry/resource-detector-aws is installed
28
+ // Users can call getAWSResourceDetectors() separately if needed
29
+ });
30
+ }
31
+ async function getAWSResourceDetectors() {
32
+ try {
33
+ const awsDetectors = await import('@opentelemetry/resource-detector-aws');
34
+ return [
35
+ awsDetectors.awsEc2Detector,
36
+ awsDetectors.awsEcsDetector,
37
+ awsDetectors.awsEksDetector
38
+ // Note: awsLambdaDetector may not exist in the package
39
+ // Lambda metadata is typically extracted from environment variables
40
+ ];
41
+ } catch {
42
+ return [];
43
+ }
44
+ }
45
+
46
+ export { getAWSResourceDetectors, init };
47
+ //# sourceMappingURL=index.js.map
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAoEA,eAAsB,KAAK,MAAA,EAAyD;AAClF,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAY,GAAI,MAAM,OAAO,SAAS,CAAA;AAEpD,EAAA,WAAA,CAAY;AAAA,IACV,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,kBAAA,EAAoB;AAAA,MAClB,gBAAA,EAAkB,KAAA;AAAA,MAClB,cAAA,EAAgB,MAAA,CAAO,MAAA,IAAU,OAAA,CAAQ,IAAI,UAAA,IAAc,EAAA;AAAA,MAC3D,GAAG,MAAA,CAAO;AAAA;AACZ;AAAA;AAAA;AAAA;AAAA,GAKD,CAAA;AACH;AAeA,eAAsB,uBAAA,GAA8C;AAClE,EAAA,IAAI;AAGF,IAAA,MAAM,YAAA,GAAe,MAAM,OAAO,sCAAsC,CAAA;AACxE,IAAA,OAAO;AAAA,MACL,YAAA,CAAa,cAAA;AAAA,MACb,YAAA,CAAa,cAAA;AAAA,MACb,YAAA,CAAa;AAAA;AAAA;AAAA,KAGf;AAAA,EACF,CAAA,CAAA,MAAQ;AAEN,IAAA,OAAO,EAAC;AAAA,EACV;AACF","file":"index.js","sourcesContent":["/**\n * autotel-aws\n *\n * OpenTelemetry instrumentation for AWS services\n *\n * Features:\n * - Lambda handler instrumentation\n * - AWS SDK v3 auto-instrumentation\n * - Service-specific semantic helpers (S3, DynamoDB, SQS, SNS, Kinesis)\n * - X-Ray compatibility layer\n * - Vendor-agnostic (works with any OTLP backend)\n *\n * @example\n * ```typescript\n * import { init } from 'autotel-aws';\n * import { wrapHandler } from 'autotel-aws/lambda';\n * import { instrumentSDK } from 'autotel-aws/sdk';\n *\n * init({ service: 'my-service', autoDetectResources: true });\n *\n * const s3 = instrumentSDK(new S3Client({}));\n *\n * export const handler = wrapHandler(async (event) => {\n * await s3.send(new GetObjectCommand({ Bucket: 'my-bucket', Key: 'file.txt' }));\n * return { statusCode: 200 };\n * });\n * ```\n */\n\n// Re-export types\nexport type * from './types';\nexport type * from './config';\n\n// Re-export attribute builders\nexport * from './attributes';\n\n// Re-export common utilities\nexport * from './common/error-handlers';\nexport * from './common/request-builder';\nexport * from './common/response-builder';\nexport * from './common/sdk-wrapper';\n\n// Re-export service-specific modules\nexport * from './lambda';\nexport * from './sdk';\nexport * from './s3';\nexport * from './dynamodb';\nexport * from './sqs';\nexport * from './sns';\nexport * from './kinesis';\nexport * from './step-functions';\nexport * from './xray';\n\n/**\n * Initialize autotel-aws with AWS resource detection\n *\n * @example\n * ```typescript\n * import { init } from 'autotel-aws';\n * import { init as autotelInit } from 'autotel';\n *\n * const detectors = getAWSResourceDetectors();\n * autotelInit({\n * service: 'my-service',\n * resourceDetectors: detectors,\n * });\n * ```\n */\nexport async function init(config: import('./config').AWSInitConfig): Promise<void> {\n const { init: autotelInit } = await import('autotel');\n\n autotelInit({\n service: config.service,\n endpoint: config.endpoint,\n resourceAttributes: {\n 'cloud.provider': 'aws',\n 'cloud.region': config.region || process.env.AWS_REGION || '',\n ...config.resourceAttributes,\n },\n // Note: autotel's init() doesn't directly accept resourceDetectors\n // AWS resource detection is handled automatically by autotel if\n // @opentelemetry/resource-detector-aws is installed\n // Users can call getAWSResourceDetectors() separately if needed\n });\n}\n\n/**\n * Get AWS resource detectors\n *\n * Returns resource detectors for EC2, ECS, EKS, and Lambda\n * Uses @opentelemetry/resource-detector-aws if available\n *\n * @example\n * ```typescript\n * import { getAWSResourceDetectors } from 'autotel-aws';\n * const detectors = await getAWSResourceDetectors();\n * // Use detectors with your OpenTelemetry SDK configuration\n * ```\n */\nexport async function getAWSResourceDetectors(): Promise<unknown[]> {\n try {\n // Use dynamic import to handle optional dependency\n // @ts-expect-error - Optional peer dependency, may not be installed\n const awsDetectors = await import('@opentelemetry/resource-detector-aws');\n return [\n awsDetectors.awsEc2Detector,\n awsDetectors.awsEcsDetector,\n awsDetectors.awsEksDetector,\n // Note: awsLambdaDetector may not exist in the package\n // Lambda metadata is typically extracted from environment variables\n ];\n } catch {\n // Package not installed, return empty array\n return [];\n }\n}\n"]}