autotel-aws 0.13.13 → 0.13.14

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 (205) hide show
  1. package/dist/attributes.cjs +155 -46
  2. package/dist/attributes.cjs.map +1 -1
  3. package/dist/attributes.d.cts +64 -62
  4. package/dist/attributes.d.cts.map +1 -0
  5. package/dist/attributes.d.ts +64 -62
  6. package/dist/attributes.d.ts.map +1 -0
  7. package/dist/attributes.js +146 -3
  8. package/dist/attributes.js.map +1 -1
  9. package/dist/cloudwatch.cjs +324 -358
  10. package/dist/cloudwatch.cjs.map +1 -1
  11. package/dist/cloudwatch.d.cts +126 -153
  12. package/dist/cloudwatch.d.cts.map +1 -0
  13. package/dist/cloudwatch.d.ts +126 -153
  14. package/dist/cloudwatch.d.ts.map +1 -0
  15. package/dist/cloudwatch.js +323 -356
  16. package/dist/cloudwatch.js.map +1 -1
  17. package/dist/config-D8QZwF1e.d.ts +123 -0
  18. package/dist/config-D8QZwF1e.d.ts.map +1 -0
  19. package/dist/config-SPkMWWXY.d.cts +123 -0
  20. package/dist/config-SPkMWWXY.d.cts.map +1 -0
  21. package/dist/dynamodb.cjs +89 -11
  22. package/dist/dynamodb.cjs.map +1 -1
  23. package/dist/dynamodb.d.cts +15 -63
  24. package/dist/dynamodb.d.cts.map +1 -0
  25. package/dist/dynamodb.d.ts +15 -63
  26. package/dist/dynamodb.d.ts.map +1 -0
  27. package/dist/dynamodb.js +90 -4
  28. package/dist/dynamodb.js.map +1 -1
  29. package/dist/eventbridge.cjs +423 -261
  30. package/dist/eventbridge.cjs.map +1 -1
  31. package/dist/eventbridge.d.cts +113 -174
  32. package/dist/eventbridge.d.cts.map +1 -0
  33. package/dist/eventbridge.d.ts +113 -174
  34. package/dist/eventbridge.d.ts.map +1 -0
  35. package/dist/eventbridge.js +422 -259
  36. package/dist/eventbridge.js.map +1 -1
  37. package/dist/index.cjs +117 -241
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.d.cts +42 -55
  40. package/dist/index.d.cts.map +1 -0
  41. package/dist/index.d.ts +42 -55
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +62 -41
  44. package/dist/index.js.map +1 -1
  45. package/dist/kinesis.cjs +485 -20
  46. package/dist/kinesis.cjs.map +1 -1
  47. package/dist/kinesis.d.cts +179 -226
  48. package/dist/kinesis.d.cts.map +1 -0
  49. package/dist/kinesis.d.ts +179 -226
  50. package/dist/kinesis.d.ts.map +1 -0
  51. package/dist/kinesis.js +484 -5
  52. package/dist/kinesis.js.map +1 -1
  53. package/dist/lambda-B0LQa5vS.d.ts +168 -0
  54. package/dist/lambda-B0LQa5vS.d.ts.map +1 -0
  55. package/dist/lambda-DR33vPpL.cjs +500 -0
  56. package/dist/lambda-DR33vPpL.cjs.map +1 -0
  57. package/dist/lambda-DYyKH-f-.js +453 -0
  58. package/dist/lambda-DYyKH-f-.js.map +1 -0
  59. package/dist/lambda-DnroO4Od.d.cts +168 -0
  60. package/dist/lambda-DnroO4Od.d.cts.map +1 -0
  61. package/dist/lambda-auto.cjs +33 -16
  62. package/dist/lambda-auto.cjs.map +1 -1
  63. package/dist/lambda-auto.d.cts +1 -2
  64. package/dist/lambda-auto.d.ts +1 -2
  65. package/dist/lambda-auto.js +35 -15
  66. package/dist/lambda-auto.js.map +1 -1
  67. package/dist/lambda.cjs +11 -42
  68. package/dist/lambda.d.cts +3 -231
  69. package/dist/lambda.d.ts +3 -231
  70. package/dist/lambda.js +3 -5
  71. package/dist/s3.cjs +70 -11
  72. package/dist/s3.cjs.map +1 -1
  73. package/dist/s3.d.cts +15 -51
  74. package/dist/s3.d.cts.map +1 -0
  75. package/dist/s3.d.ts +15 -51
  76. package/dist/s3.d.ts.map +1 -0
  77. package/dist/s3.js +71 -4
  78. package/dist/s3.js.map +1 -1
  79. package/dist/sdk-C-o7ngkk.js +198 -0
  80. package/dist/sdk-C-o7ngkk.js.map +1 -0
  81. package/dist/sdk-C9Nvlh7R.cjs +222 -0
  82. package/dist/sdk-C9Nvlh7R.cjs.map +1 -0
  83. package/dist/sdk-CXqc4o_q.d.ts +135 -0
  84. package/dist/sdk-CXqc4o_q.d.ts.map +1 -0
  85. package/dist/sdk-DkAItj4z.d.cts +135 -0
  86. package/dist/sdk-DkAItj4z.d.cts.map +1 -0
  87. package/dist/sdk-wrapper-BDrcyEQ_.cjs +161 -0
  88. package/dist/sdk-wrapper-BDrcyEQ_.cjs.map +1 -0
  89. package/dist/sdk-wrapper-BVr62EfA.js +120 -0
  90. package/dist/sdk-wrapper-BVr62EfA.js.map +1 -0
  91. package/dist/sdk.cjs +8 -31
  92. package/dist/sdk.d.cts +3 -156
  93. package/dist/sdk.d.ts +3 -156
  94. package/dist/sdk.js +3 -6
  95. package/dist/sns.cjs +305 -16
  96. package/dist/sns.cjs.map +1 -1
  97. package/dist/sns.d.cts +109 -155
  98. package/dist/sns.d.cts.map +1 -0
  99. package/dist/sns.d.ts +109 -155
  100. package/dist/sns.d.ts.map +1 -0
  101. package/dist/sns.js +305 -5
  102. package/dist/sns.js.map +1 -1
  103. package/dist/sqs.cjs +455 -20
  104. package/dist/sqs.cjs.map +1 -1
  105. package/dist/sqs.d.cts +191 -240
  106. package/dist/sqs.d.cts.map +1 -0
  107. package/dist/sqs.d.ts +191 -240
  108. package/dist/sqs.d.ts.map +1 -0
  109. package/dist/sqs.js +454 -5
  110. package/dist/sqs.js.map +1 -1
  111. package/dist/step-functions.cjs +557 -32
  112. package/dist/step-functions.cjs.map +1 -1
  113. package/dist/step-functions.d.cts +155 -210
  114. package/dist/step-functions.d.cts.map +1 -0
  115. package/dist/step-functions.d.ts +155 -210
  116. package/dist/step-functions.d.ts.map +1 -0
  117. package/dist/step-functions.js +553 -5
  118. package/dist/step-functions.js.map +1 -1
  119. package/dist/testing.cjs +60 -58
  120. package/dist/testing.cjs.map +1 -1
  121. package/dist/testing.d.cts +20 -23
  122. package/dist/testing.d.cts.map +1 -0
  123. package/dist/testing.d.ts +20 -23
  124. package/dist/testing.d.ts.map +1 -0
  125. package/dist/testing.js +59 -57
  126. package/dist/testing.js.map +1 -1
  127. package/dist/{types-B2Mi8Goj.d.cts → types-0uHbJsBN.d.ts} +5 -7
  128. package/dist/types-0uHbJsBN.d.ts.map +1 -0
  129. package/dist/types-DOUDks8I.d.cts +71 -0
  130. package/dist/types-DOUDks8I.d.cts.map +1 -0
  131. package/dist/types-DOUDks8I.d.ts +71 -0
  132. package/dist/types-DOUDks8I.d.ts.map +1 -0
  133. package/dist/{types-BqTI4s4V.d.ts → types-iyHj03Q1.d.cts} +5 -7
  134. package/dist/types-iyHj03Q1.d.cts.map +1 -0
  135. package/dist/xray-B46i6z6K.js +59 -0
  136. package/dist/xray-B46i6z6K.js.map +1 -0
  137. package/dist/xray-CG4jciQs.d.ts +19 -0
  138. package/dist/xray-CG4jciQs.d.ts.map +1 -0
  139. package/dist/xray-Cd2UiVRA.cjs +75 -0
  140. package/dist/xray-Cd2UiVRA.cjs.map +1 -0
  141. package/dist/xray-DDcKCKKo.d.cts +19 -0
  142. package/dist/xray-DDcKCKKo.d.cts.map +1 -0
  143. package/dist/xray.cjs +10 -23
  144. package/dist/xray.d.cts +3 -24
  145. package/dist/xray.d.ts +3 -24
  146. package/dist/xray.js +3 -5
  147. package/package.json +5 -5
  148. package/dist/chunk-35F3UBOO.cjs +0 -48
  149. package/dist/chunk-35F3UBOO.cjs.map +0 -1
  150. package/dist/chunk-4THGOYZL.js +0 -387
  151. package/dist/chunk-4THGOYZL.js.map +0 -1
  152. package/dist/chunk-CIGXV6HA.js +0 -192
  153. package/dist/chunk-CIGXV6HA.js.map +0 -1
  154. package/dist/chunk-DGUM43GV.js +0 -10
  155. package/dist/chunk-DGUM43GV.js.map +0 -1
  156. package/dist/chunk-DHHLKZHI.cjs +0 -23
  157. package/dist/chunk-DHHLKZHI.cjs.map +0 -1
  158. package/dist/chunk-HMTKKKKP.cjs +0 -390
  159. package/dist/chunk-HMTKKKKP.cjs.map +0 -1
  160. package/dist/chunk-I4CKQ4RD.js +0 -153
  161. package/dist/chunk-I4CKQ4RD.js.map +0 -1
  162. package/dist/chunk-JEQ2X3Z6.cjs +0 -12
  163. package/dist/chunk-JEQ2X3Z6.cjs.map +0 -1
  164. package/dist/chunk-JL33WEVE.js +0 -341
  165. package/dist/chunk-JL33WEVE.js.map +0 -1
  166. package/dist/chunk-JMSFE6FJ.js +0 -24
  167. package/dist/chunk-JMSFE6FJ.js.map +0 -1
  168. package/dist/chunk-JPDJPOIB.js +0 -78
  169. package/dist/chunk-JPDJPOIB.js.map +0 -1
  170. package/dist/chunk-KNRQYDAS.cjs +0 -394
  171. package/dist/chunk-KNRQYDAS.cjs.map +0 -1
  172. package/dist/chunk-NQ65Y5AI.cjs +0 -195
  173. package/dist/chunk-NQ65Y5AI.cjs.map +0 -1
  174. package/dist/chunk-OB4XTAVK.cjs +0 -345
  175. package/dist/chunk-OB4XTAVK.cjs.map +0 -1
  176. package/dist/chunk-OHFR7WX5.js +0 -341
  177. package/dist/chunk-OHFR7WX5.js.map +0 -1
  178. package/dist/chunk-PZGYL7XZ.js +0 -40
  179. package/dist/chunk-PZGYL7XZ.js.map +0 -1
  180. package/dist/chunk-Q3DMMQ7K.cjs +0 -164
  181. package/dist/chunk-Q3DMMQ7K.cjs.map +0 -1
  182. package/dist/chunk-SPC4VYOI.cjs +0 -350
  183. package/dist/chunk-SPC4VYOI.cjs.map +0 -1
  184. package/dist/chunk-UZEJV2YD.cjs +0 -139
  185. package/dist/chunk-UZEJV2YD.cjs.map +0 -1
  186. package/dist/chunk-VZHQH75L.cjs +0 -26
  187. package/dist/chunk-VZHQH75L.cjs.map +0 -1
  188. package/dist/chunk-X6BY6PCK.js +0 -386
  189. package/dist/chunk-X6BY6PCK.js.map +0 -1
  190. package/dist/chunk-XOF2H2PI.cjs +0 -84
  191. package/dist/chunk-XOF2H2PI.cjs.map +0 -1
  192. package/dist/chunk-YG56NRIO.js +0 -131
  193. package/dist/chunk-YG56NRIO.js.map +0 -1
  194. package/dist/chunk-ZPDRKCAR.js +0 -21
  195. package/dist/chunk-ZPDRKCAR.js.map +0 -1
  196. package/dist/config-DbZv4bpy.d.ts +0 -125
  197. package/dist/config-srkLBXZH.d.cts +0 -125
  198. package/dist/lambda.cjs.map +0 -1
  199. package/dist/lambda.js.map +0 -1
  200. package/dist/sdk.cjs.map +0 -1
  201. package/dist/sdk.js.map +0 -1
  202. package/dist/types-B9IaHmGa.d.cts +0 -73
  203. package/dist/types-B9IaHmGa.d.ts +0 -73
  204. package/dist/xray.cjs.map +0 -1
  205. package/dist/xray.js.map +0 -1
@@ -1,69 +1,20 @@
1
- import { TraceContext } from 'autotel';
2
-
3
- /**
4
- * DynamoDB-specific instrumentation
5
- *
6
- * Provides semantic helpers for tracing DynamoDB operations with proper OpenTelemetry
7
- * semantic conventions. Automatically sets `db.*` and `aws.dynamodb.*` attributes.
8
- *
9
- * @example Basic usage with factory pattern
10
- * ```typescript
11
- * import { traceDynamoDB } from 'autotel-aws/dynamodb';
12
- * import { DynamoDBClient, GetItemCommand } from '@aws-sdk/client-dynamodb';
13
- *
14
- * const dynamodb = new DynamoDBClient({});
15
- *
16
- * export const getUser = traceDynamoDB({
17
- * operation: 'GetItem',
18
- * table: 'users'
19
- * })(ctx => async (userId: string) => {
20
- * ctx.setAttribute('db.statement', 'GetItem WHERE id = :id');
21
- * return await dynamodb.send(new GetItemCommand({
22
- * TableName: 'users',
23
- * Key: { id: { S: userId } }
24
- * }));
25
- * });
26
- *
27
- * // Usage: await getUser('user-123');
28
- * ```
29
- *
30
- * @example Query with consumed capacity tracking
31
- * ```typescript
32
- * export const queryOrders = traceDynamoDB({
33
- * operation: 'Query',
34
- * table: 'orders'
35
- * })(ctx => async (customerId: string, limit: number) => {
36
- * const result = await dynamodb.send(new QueryCommand({
37
- * TableName: 'orders',
38
- * KeyConditionExpression: 'customerId = :cid',
39
- * ExpressionAttributeValues: { ':cid': { S: customerId } },
40
- * Limit: limit,
41
- * ReturnConsumedCapacity: 'TOTAL'
42
- * }));
43
- *
44
- * if (result.ConsumedCapacity?.CapacityUnits) {
45
- * ctx.setAttribute('aws.dynamodb.consumed_capacity', result.ConsumedCapacity.CapacityUnits);
46
- * }
47
- *
48
- * return result.Items;
49
- * });
50
- * ```
51
- */
1
+ import { TraceContext } from "autotel";
52
2
 
3
+ //#region src/dynamodb/index.d.ts
53
4
  /**
54
5
  * DynamoDB operation configuration
55
6
  */
56
7
  interface TraceDynamoDBConfig {
57
- /**
58
- * DynamoDB operation name (e.g., 'GetItem', 'PutItem', 'Query', 'Scan')
59
- * Used to generate the span name: `dynamodb.{operation}`
60
- */
61
- operation: string;
62
- /**
63
- * DynamoDB table name.
64
- * Sets `db.name` and `aws.dynamodb.table_names` attributes.
65
- */
66
- table: string;
8
+ /**
9
+ * DynamoDB operation name (e.g., 'GetItem', 'PutItem', 'Query', 'Scan')
10
+ * Used to generate the span name: `dynamodb.{operation}`
11
+ */
12
+ operation: string;
13
+ /**
14
+ * DynamoDB table name.
15
+ * Sets `db.name` and `aws.dynamodb.table_names` attributes.
16
+ */
17
+ table: string;
67
18
  }
68
19
  /**
69
20
  * Trace DynamoDB operations with semantic attributes
@@ -89,5 +40,6 @@ interface TraceDynamoDBConfig {
89
40
  * @see https://opentelemetry.io/docs/specs/semconv/database/dynamodb/
90
41
  */
91
42
  declare function traceDynamoDB(config: TraceDynamoDBConfig): <TArgs extends unknown[], TReturn>(fn: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>) => (...args: TArgs) => Promise<TReturn>;
92
-
93
- export { type TraceDynamoDBConfig, traceDynamoDB };
43
+ //#endregion
44
+ export { TraceDynamoDBConfig, traceDynamoDB };
45
+ //# sourceMappingURL=dynamodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb.d.ts","names":[],"sources":["../src/dynamodb/index.ts"],"mappings":";;;;;;UAwDiB,mBAAA;;;;;EAKf,SAAA;;;;;EAMA,KAAK;AAAA;;;;;;;;;;;;;;;;;;;;;;;;iBA0BS,aAAA,CAAc,MAAA,EAAQ,mBAAA,sCAElC,EAAA,GAAK,GAAA,EAAK,YAAA,SAAqB,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA,UAClD,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,OAAA"}
package/dist/dynamodb.js CHANGED
@@ -1,5 +1,91 @@
1
- export { traceDynamoDB } from './chunk-JMSFE6FJ.js';
2
- import './chunk-I4CKQ4RD.js';
3
- import './chunk-DGUM43GV.js';
4
- //# sourceMappingURL=dynamodb.js.map
1
+ import { buildDynamoDBAttributes } from "./attributes.js";
2
+ import { trace } from "autotel";
3
+
4
+ //#region src/dynamodb/index.ts
5
+ /**
6
+ * DynamoDB-specific instrumentation
7
+ *
8
+ * Provides semantic helpers for tracing DynamoDB operations with proper OpenTelemetry
9
+ * semantic conventions. Automatically sets `db.*` and `aws.dynamodb.*` attributes.
10
+ *
11
+ * @example Basic usage with factory pattern
12
+ * ```typescript
13
+ * import { traceDynamoDB } from 'autotel-aws/dynamodb';
14
+ * import { DynamoDBClient, GetItemCommand } from '@aws-sdk/client-dynamodb';
15
+ *
16
+ * const dynamodb = new DynamoDBClient({});
17
+ *
18
+ * export const getUser = traceDynamoDB({
19
+ * operation: 'GetItem',
20
+ * table: 'users'
21
+ * })(ctx => async (userId: string) => {
22
+ * ctx.setAttribute('db.statement', 'GetItem WHERE id = :id');
23
+ * return await dynamodb.send(new GetItemCommand({
24
+ * TableName: 'users',
25
+ * Key: { id: { S: userId } }
26
+ * }));
27
+ * });
28
+ *
29
+ * // Usage: await getUser('user-123');
30
+ * ```
31
+ *
32
+ * @example Query with consumed capacity tracking
33
+ * ```typescript
34
+ * export const queryOrders = traceDynamoDB({
35
+ * operation: 'Query',
36
+ * table: 'orders'
37
+ * })(ctx => async (customerId: string, limit: number) => {
38
+ * const result = await dynamodb.send(new QueryCommand({
39
+ * TableName: 'orders',
40
+ * KeyConditionExpression: 'customerId = :cid',
41
+ * ExpressionAttributeValues: { ':cid': { S: customerId } },
42
+ * Limit: limit,
43
+ * ReturnConsumedCapacity: 'TOTAL'
44
+ * }));
45
+ *
46
+ * if (result.ConsumedCapacity?.CapacityUnits) {
47
+ * ctx.setAttribute('aws.dynamodb.consumed_capacity', result.ConsumedCapacity.CapacityUnits);
48
+ * }
49
+ *
50
+ * return result.Items;
51
+ * });
52
+ * ```
53
+ */
54
+ /**
55
+ * Trace DynamoDB operations with semantic attributes
56
+ *
57
+ * Creates a traced function that automatically sets DynamoDB semantic attributes
58
+ * following OpenTelemetry database semantic conventions.
59
+ *
60
+ * @param config - DynamoDB operation configuration
61
+ * @returns A higher-order function that wraps your DynamoDB operation with tracing
62
+ *
63
+ * @remarks
64
+ * Semantic attributes set automatically:
65
+ * - `db.system` - 'dynamodb'
66
+ * - `db.operation` - The operation name (GetItem, PutItem, etc.)
67
+ * - `db.name` - Table name
68
+ * - `aws.dynamodb.table_names` - Array containing the table name
69
+ *
70
+ * Additional attributes you should set in your handler:
71
+ * - `db.statement` - Query/operation description
72
+ * - `aws.dynamodb.consumed_capacity` - Consumed capacity units
73
+ * - `aws.dynamodb.index_name` - GSI/LSI name if applicable
74
+ *
75
+ * @see https://opentelemetry.io/docs/specs/semconv/database/dynamodb/
76
+ */
77
+ function traceDynamoDB(config) {
78
+ return function wrapper(fn) {
79
+ return trace(`dynamodb.${config.operation}`, (ctx) => async (...args) => {
80
+ ctx.setAttributes(buildDynamoDBAttributes({
81
+ tableName: config.table,
82
+ operation: config.operation
83
+ }));
84
+ return fn(ctx)(...args);
85
+ });
86
+ };
87
+ }
88
+
89
+ //#endregion
90
+ export { traceDynamoDB };
5
91
  //# sourceMappingURL=dynamodb.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"dynamodb.js"}
1
+ {"version":3,"file":"dynamodb.js","names":[],"sources":["../src/dynamodb/index.ts"],"sourcesContent":["/**\n * DynamoDB-specific instrumentation\n *\n * Provides semantic helpers for tracing DynamoDB operations with proper OpenTelemetry\n * semantic conventions. Automatically sets `db.*` and `aws.dynamodb.*` attributes.\n *\n * @example Basic usage with factory pattern\n * ```typescript\n * import { traceDynamoDB } from 'autotel-aws/dynamodb';\n * import { DynamoDBClient, GetItemCommand } from '@aws-sdk/client-dynamodb';\n *\n * const dynamodb = new DynamoDBClient({});\n *\n * export const getUser = traceDynamoDB({\n * operation: 'GetItem',\n * table: 'users'\n * })(ctx => async (userId: string) => {\n * ctx.setAttribute('db.statement', 'GetItem WHERE id = :id');\n * return await dynamodb.send(new GetItemCommand({\n * TableName: 'users',\n * Key: { id: { S: userId } }\n * }));\n * });\n *\n * // Usage: await getUser('user-123');\n * ```\n *\n * @example Query with consumed capacity tracking\n * ```typescript\n * export const queryOrders = traceDynamoDB({\n * operation: 'Query',\n * table: 'orders'\n * })(ctx => async (customerId: string, limit: number) => {\n * const result = await dynamodb.send(new QueryCommand({\n * TableName: 'orders',\n * KeyConditionExpression: 'customerId = :cid',\n * ExpressionAttributeValues: { ':cid': { S: customerId } },\n * Limit: limit,\n * ReturnConsumedCapacity: 'TOTAL'\n * }));\n *\n * if (result.ConsumedCapacity?.CapacityUnits) {\n * ctx.setAttribute('aws.dynamodb.consumed_capacity', result.ConsumedCapacity.CapacityUnits);\n * }\n *\n * return result.Items;\n * });\n * ```\n */\n\nimport { trace, type TraceContext } from 'autotel';\nimport { buildDynamoDBAttributes } from '../attributes';\n\n/**\n * DynamoDB operation configuration\n */\nexport interface TraceDynamoDBConfig {\n /**\n * DynamoDB operation name (e.g., 'GetItem', 'PutItem', 'Query', 'Scan')\n * Used to generate the span name: `dynamodb.{operation}`\n */\n operation: string;\n\n /**\n * DynamoDB table name.\n * Sets `db.name` and `aws.dynamodb.table_names` attributes.\n */\n table: string;\n}\n\n/**\n * Trace DynamoDB operations with semantic attributes\n *\n * Creates a traced function that automatically sets DynamoDB semantic attributes\n * following OpenTelemetry database semantic conventions.\n *\n * @param config - DynamoDB operation configuration\n * @returns A higher-order function that wraps your DynamoDB operation with tracing\n *\n * @remarks\n * Semantic attributes set automatically:\n * - `db.system` - 'dynamodb'\n * - `db.operation` - The operation name (GetItem, PutItem, etc.)\n * - `db.name` - Table name\n * - `aws.dynamodb.table_names` - Array containing the table name\n *\n * Additional attributes you should set in your handler:\n * - `db.statement` - Query/operation description\n * - `aws.dynamodb.consumed_capacity` - Consumed capacity units\n * - `aws.dynamodb.index_name` - GSI/LSI name if applicable\n *\n * @see https://opentelemetry.io/docs/specs/semconv/database/dynamodb/\n */\nexport function traceDynamoDB(config: TraceDynamoDBConfig) {\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 `dynamodb.${config.operation}`,\n (ctx: TraceContext) =>\n async (...args: TArgs): Promise<TReturn> => {\n // Set DynamoDB semantic attributes\n ctx.setAttributes(\n buildDynamoDBAttributes({\n tableName: config.table,\n operation: config.operation,\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FA,SAAgB,cAAc,QAA6B;CACzD,OAAO,SAAS,QACd,IACsC;EAEtC,OAAO,MACL,YAAY,OAAO,cAClB,QACC,OAAO,GAAG,SAAkC;GAE1C,IAAI,cACF,wBAAwB;IACtB,WAAW,OAAO;IAClB,WAAW,OAAO;GACpB,CAAC,CACH;GAIA,OADgB,GAAG,GACN,CAAC,CAAC,GAAG,IAAI;EACxB,CACJ;CACF;AACF"}