@ciq-dev/neoiq-foundation-node 1.0.0 → 1.0.1-beta.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.
package/dist/index.d.ts CHANGED
@@ -1,12 +1,573 @@
1
+ import { z } from "zod";
2
+ import { Logger as Logger$1 } from "pino";
3
+ import * as _opentelemetry_api0 from "@opentelemetry/api";
4
+ import { Meter, Span, SpanStatusCode, Tracer, context, metrics, propagation, trace } from "@opentelemetry/api";
5
+ import { FastifyPluginAsync } from "fastify";
6
+ import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
7
+
8
+ //#region src/config.d.ts
9
+ declare const AutoInstrumentationConfigSchema: z.ZodObject<{
10
+ http: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
11
+ fastify: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
12
+ express: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
13
+ mongodb: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
14
+ pg: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
15
+ mysql: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
+ redis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
17
+ ioredis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
18
+ grpc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
19
+ fs: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
20
+ dns: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ http?: boolean | undefined;
23
+ fastify?: boolean | undefined;
24
+ express?: boolean | undefined;
25
+ mongodb?: boolean | undefined;
26
+ pg?: boolean | undefined;
27
+ mysql?: boolean | undefined;
28
+ redis?: boolean | undefined;
29
+ ioredis?: boolean | undefined;
30
+ grpc?: boolean | undefined;
31
+ fs?: boolean | undefined;
32
+ dns?: boolean | undefined;
33
+ }, {
34
+ http?: boolean | undefined;
35
+ fastify?: boolean | undefined;
36
+ express?: boolean | undefined;
37
+ mongodb?: boolean | undefined;
38
+ pg?: boolean | undefined;
39
+ mysql?: boolean | undefined;
40
+ redis?: boolean | undefined;
41
+ ioredis?: boolean | undefined;
42
+ grpc?: boolean | undefined;
43
+ fs?: boolean | undefined;
44
+ dns?: boolean | undefined;
45
+ }>;
46
+ type AutoInstrumentationConfig = z.infer<typeof AutoInstrumentationConfigSchema>;
47
+ declare const FeaturesConfigSchema: z.ZodObject<{
48
+ tracing: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
49
+ metrics: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
50
+ logging: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
51
+ autoInstrumentation: z.ZodOptional<z.ZodDefault<z.ZodObject<{
52
+ http: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
53
+ fastify: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
54
+ express: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
55
+ mongodb: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
56
+ pg: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
57
+ mysql: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
58
+ redis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
59
+ ioredis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
60
+ grpc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
61
+ fs: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
62
+ dns: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ http?: boolean | undefined;
65
+ fastify?: boolean | undefined;
66
+ express?: boolean | undefined;
67
+ mongodb?: boolean | undefined;
68
+ pg?: boolean | undefined;
69
+ mysql?: boolean | undefined;
70
+ redis?: boolean | undefined;
71
+ ioredis?: boolean | undefined;
72
+ grpc?: boolean | undefined;
73
+ fs?: boolean | undefined;
74
+ dns?: boolean | undefined;
75
+ }, {
76
+ http?: boolean | undefined;
77
+ fastify?: boolean | undefined;
78
+ express?: boolean | undefined;
79
+ mongodb?: boolean | undefined;
80
+ pg?: boolean | undefined;
81
+ mysql?: boolean | undefined;
82
+ redis?: boolean | undefined;
83
+ ioredis?: boolean | undefined;
84
+ grpc?: boolean | undefined;
85
+ fs?: boolean | undefined;
86
+ dns?: boolean | undefined;
87
+ }>>>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ tracing?: boolean | undefined;
90
+ metrics?: boolean | undefined;
91
+ logging?: boolean | undefined;
92
+ autoInstrumentation?: {
93
+ http?: boolean | undefined;
94
+ fastify?: boolean | undefined;
95
+ express?: boolean | undefined;
96
+ mongodb?: boolean | undefined;
97
+ pg?: boolean | undefined;
98
+ mysql?: boolean | undefined;
99
+ redis?: boolean | undefined;
100
+ ioredis?: boolean | undefined;
101
+ grpc?: boolean | undefined;
102
+ fs?: boolean | undefined;
103
+ dns?: boolean | undefined;
104
+ } | undefined;
105
+ }, {
106
+ tracing?: boolean | undefined;
107
+ metrics?: boolean | undefined;
108
+ logging?: boolean | undefined;
109
+ autoInstrumentation?: {
110
+ http?: boolean | undefined;
111
+ fastify?: boolean | undefined;
112
+ express?: boolean | undefined;
113
+ mongodb?: boolean | undefined;
114
+ pg?: boolean | undefined;
115
+ mysql?: boolean | undefined;
116
+ redis?: boolean | undefined;
117
+ ioredis?: boolean | undefined;
118
+ grpc?: boolean | undefined;
119
+ fs?: boolean | undefined;
120
+ dns?: boolean | undefined;
121
+ } | undefined;
122
+ }>;
123
+ type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;
124
+ declare const OtelConfigSchema: z.ZodObject<{
125
+ endpoint: z.ZodOptional<z.ZodDefault<z.ZodString>>;
126
+ metricsIntervalMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
127
+ traceSampleRate: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ endpoint?: string | undefined;
130
+ metricsIntervalMs?: number | undefined;
131
+ traceSampleRate?: number | undefined;
132
+ }, {
133
+ endpoint?: string | undefined;
134
+ metricsIntervalMs?: number | undefined;
135
+ traceSampleRate?: number | undefined;
136
+ }>;
137
+ type OtelConfig = z.infer<typeof OtelConfigSchema>;
138
+ declare const LoggingConfigSchema: z.ZodObject<{
139
+ level: z.ZodOptional<z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>>;
140
+ prettyPrint: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ level?: "debug" | "info" | "warn" | "error" | undefined;
143
+ prettyPrint?: boolean | undefined;
144
+ }, {
145
+ level?: "debug" | "info" | "warn" | "error" | undefined;
146
+ prettyPrint?: boolean | undefined;
147
+ }>;
148
+ type LoggingConfig = z.infer<typeof LoggingConfigSchema>;
149
+ declare const RequestLoggingConfigSchema: z.ZodObject<{
150
+ logHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
151
+ logBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
152
+ logResponseBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
153
+ maxBodySize: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
154
+ redactHeaders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ logHeaders?: boolean | undefined;
157
+ logBody?: boolean | undefined;
158
+ logResponseBody?: boolean | undefined;
159
+ maxBodySize?: number | undefined;
160
+ redactHeaders?: string[] | undefined;
161
+ }, {
162
+ logHeaders?: boolean | undefined;
163
+ logBody?: boolean | undefined;
164
+ logResponseBody?: boolean | undefined;
165
+ maxBodySize?: number | undefined;
166
+ redactHeaders?: string[] | undefined;
167
+ }>;
168
+ type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;
169
+ declare const FoundationConfigSchema: z.ZodObject<{
170
+ serviceName: z.ZodString;
171
+ serviceVersion: z.ZodDefault<z.ZodString>;
172
+ environment: z.ZodDefault<z.ZodEnum<["development", "staging", "qa", "production"]>>;
173
+ features: z.ZodDefault<z.ZodObject<{
174
+ tracing: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
175
+ metrics: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
176
+ logging: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
177
+ autoInstrumentation: z.ZodOptional<z.ZodDefault<z.ZodObject<{
178
+ http: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
179
+ fastify: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
180
+ express: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
181
+ mongodb: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
182
+ pg: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
183
+ mysql: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
184
+ redis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
185
+ ioredis: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
186
+ grpc: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
187
+ fs: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
188
+ dns: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
189
+ }, "strip", z.ZodTypeAny, {
190
+ http?: boolean | undefined;
191
+ fastify?: boolean | undefined;
192
+ express?: boolean | undefined;
193
+ mongodb?: boolean | undefined;
194
+ pg?: boolean | undefined;
195
+ mysql?: boolean | undefined;
196
+ redis?: boolean | undefined;
197
+ ioredis?: boolean | undefined;
198
+ grpc?: boolean | undefined;
199
+ fs?: boolean | undefined;
200
+ dns?: boolean | undefined;
201
+ }, {
202
+ http?: boolean | undefined;
203
+ fastify?: boolean | undefined;
204
+ express?: boolean | undefined;
205
+ mongodb?: boolean | undefined;
206
+ pg?: boolean | undefined;
207
+ mysql?: boolean | undefined;
208
+ redis?: boolean | undefined;
209
+ ioredis?: boolean | undefined;
210
+ grpc?: boolean | undefined;
211
+ fs?: boolean | undefined;
212
+ dns?: boolean | undefined;
213
+ }>>>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ tracing?: boolean | undefined;
216
+ metrics?: boolean | undefined;
217
+ logging?: boolean | undefined;
218
+ autoInstrumentation?: {
219
+ http?: boolean | undefined;
220
+ fastify?: boolean | undefined;
221
+ express?: boolean | undefined;
222
+ mongodb?: boolean | undefined;
223
+ pg?: boolean | undefined;
224
+ mysql?: boolean | undefined;
225
+ redis?: boolean | undefined;
226
+ ioredis?: boolean | undefined;
227
+ grpc?: boolean | undefined;
228
+ fs?: boolean | undefined;
229
+ dns?: boolean | undefined;
230
+ } | undefined;
231
+ }, {
232
+ tracing?: boolean | undefined;
233
+ metrics?: boolean | undefined;
234
+ logging?: boolean | undefined;
235
+ autoInstrumentation?: {
236
+ http?: boolean | undefined;
237
+ fastify?: boolean | undefined;
238
+ express?: boolean | undefined;
239
+ mongodb?: boolean | undefined;
240
+ pg?: boolean | undefined;
241
+ mysql?: boolean | undefined;
242
+ redis?: boolean | undefined;
243
+ ioredis?: boolean | undefined;
244
+ grpc?: boolean | undefined;
245
+ fs?: boolean | undefined;
246
+ dns?: boolean | undefined;
247
+ } | undefined;
248
+ }>>;
249
+ otel: z.ZodDefault<z.ZodObject<{
250
+ endpoint: z.ZodOptional<z.ZodDefault<z.ZodString>>;
251
+ metricsIntervalMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
252
+ traceSampleRate: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
253
+ }, "strip", z.ZodTypeAny, {
254
+ endpoint?: string | undefined;
255
+ metricsIntervalMs?: number | undefined;
256
+ traceSampleRate?: number | undefined;
257
+ }, {
258
+ endpoint?: string | undefined;
259
+ metricsIntervalMs?: number | undefined;
260
+ traceSampleRate?: number | undefined;
261
+ }>>;
262
+ logging: z.ZodDefault<z.ZodObject<{
263
+ level: z.ZodOptional<z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>>;
264
+ prettyPrint: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
265
+ }, "strip", z.ZodTypeAny, {
266
+ level?: "debug" | "info" | "warn" | "error" | undefined;
267
+ prettyPrint?: boolean | undefined;
268
+ }, {
269
+ level?: "debug" | "info" | "warn" | "error" | undefined;
270
+ prettyPrint?: boolean | undefined;
271
+ }>>;
272
+ requestLogging: z.ZodDefault<z.ZodObject<{
273
+ logHeaders: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
274
+ logBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
275
+ logResponseBody: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
276
+ maxBodySize: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
277
+ redactHeaders: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ logHeaders?: boolean | undefined;
280
+ logBody?: boolean | undefined;
281
+ logResponseBody?: boolean | undefined;
282
+ maxBodySize?: number | undefined;
283
+ redactHeaders?: string[] | undefined;
284
+ }, {
285
+ logHeaders?: boolean | undefined;
286
+ logBody?: boolean | undefined;
287
+ logResponseBody?: boolean | undefined;
288
+ maxBodySize?: number | undefined;
289
+ redactHeaders?: string[] | undefined;
290
+ }>>;
291
+ }, "strip", z.ZodTypeAny, {
292
+ logging: {
293
+ level?: "debug" | "info" | "warn" | "error" | undefined;
294
+ prettyPrint?: boolean | undefined;
295
+ };
296
+ serviceName: string;
297
+ serviceVersion: string;
298
+ environment: "development" | "staging" | "qa" | "production";
299
+ features: {
300
+ tracing?: boolean | undefined;
301
+ metrics?: boolean | undefined;
302
+ logging?: boolean | undefined;
303
+ autoInstrumentation?: {
304
+ http?: boolean | undefined;
305
+ fastify?: boolean | undefined;
306
+ express?: boolean | undefined;
307
+ mongodb?: boolean | undefined;
308
+ pg?: boolean | undefined;
309
+ mysql?: boolean | undefined;
310
+ redis?: boolean | undefined;
311
+ ioredis?: boolean | undefined;
312
+ grpc?: boolean | undefined;
313
+ fs?: boolean | undefined;
314
+ dns?: boolean | undefined;
315
+ } | undefined;
316
+ };
317
+ otel: {
318
+ endpoint?: string | undefined;
319
+ metricsIntervalMs?: number | undefined;
320
+ traceSampleRate?: number | undefined;
321
+ };
322
+ requestLogging: {
323
+ logHeaders?: boolean | undefined;
324
+ logBody?: boolean | undefined;
325
+ logResponseBody?: boolean | undefined;
326
+ maxBodySize?: number | undefined;
327
+ redactHeaders?: string[] | undefined;
328
+ };
329
+ }, {
330
+ serviceName: string;
331
+ logging?: {
332
+ level?: "debug" | "info" | "warn" | "error" | undefined;
333
+ prettyPrint?: boolean | undefined;
334
+ } | undefined;
335
+ serviceVersion?: string | undefined;
336
+ environment?: "development" | "staging" | "qa" | "production" | undefined;
337
+ features?: {
338
+ tracing?: boolean | undefined;
339
+ metrics?: boolean | undefined;
340
+ logging?: boolean | undefined;
341
+ autoInstrumentation?: {
342
+ http?: boolean | undefined;
343
+ fastify?: boolean | undefined;
344
+ express?: boolean | undefined;
345
+ mongodb?: boolean | undefined;
346
+ pg?: boolean | undefined;
347
+ mysql?: boolean | undefined;
348
+ redis?: boolean | undefined;
349
+ ioredis?: boolean | undefined;
350
+ grpc?: boolean | undefined;
351
+ fs?: boolean | undefined;
352
+ dns?: boolean | undefined;
353
+ } | undefined;
354
+ } | undefined;
355
+ otel?: {
356
+ endpoint?: string | undefined;
357
+ metricsIntervalMs?: number | undefined;
358
+ traceSampleRate?: number | undefined;
359
+ } | undefined;
360
+ requestLogging?: {
361
+ logHeaders?: boolean | undefined;
362
+ logBody?: boolean | undefined;
363
+ logResponseBody?: boolean | undefined;
364
+ maxBodySize?: number | undefined;
365
+ redactHeaders?: string[] | undefined;
366
+ } | undefined;
367
+ }>;
368
+ type FoundationConfig = z.infer<typeof FoundationConfigSchema>;
369
+ type FoundationConfigInput = Partial<FoundationConfig> & {
370
+ serviceName: string;
371
+ };
372
+ /** Parse and validate configuration */
373
+ declare function parseConfig(input: FoundationConfigInput): FoundationConfig;
374
+ /** Get default OTEL endpoint */
375
+ declare function getDefaultOtelEndpoint(): string; //#endregion
376
+ //#region src/features/context.d.ts
377
+
378
+ //# sourceMappingURL=config.d.ts.map
1
379
  /**
2
- * @commerceiq/neoiq-foundation-node
3
- *
4
- * Node.js observability foundation for CommerceIQ services.
5
- * Integrates with Groundcover via OpenTelemetry.
6
- *
7
- * Flow: App → OpenTelemetry SDK → OTEL Collector → Groundcover
380
+ * Context Manager - AsyncLocalStorage for request context propagation
8
381
  */
9
- export { init, logger, getTracer, getMeter, getRequestContext, runWithContext, getTraceContext, shutdown, als, SpanStatusCode, type InitOptions, type RequestContext, } from './observability';
10
- export { observabilityPlugin, type PluginOptions } from './plugin';
11
- export { createHttpClient, type HttpClientOptions } from './http-client';
382
+ interface RequestContext {
383
+ correlationId?: string;
384
+ traceId?: string;
385
+ spanId?: string;
386
+ startTime?: number;
387
+ [key: string]: unknown;
388
+ }
389
+ interface ContextManager {
390
+ getContext(): RequestContext | undefined;
391
+ run<T>(context: RequestContext, fn: () => T): T;
392
+ get<K extends keyof RequestContext>(key: K): RequestContext[K] | undefined;
393
+ update(updates: Partial<RequestContext>): RequestContext | undefined;
394
+ }
395
+ /** Create a new context manager instance */
396
+ declare function createContextManager(): ContextManager;
397
+
398
+ //#endregion
399
+ //#region src/features/logging.d.ts
400
+ //# sourceMappingURL=context.d.ts.map
401
+ interface LoggerOptions {
402
+ serviceName: string;
403
+ serviceVersion: string;
404
+ environment: string;
405
+ level: 'debug' | 'info' | 'warn' | 'error';
406
+ prettyPrint: boolean;
407
+ contextManager?: ContextManager;
408
+ }
409
+ interface Logger {
410
+ debug: (obj: object, msg?: string) => void;
411
+ info: (obj: object, msg?: string) => void;
412
+ warn: (obj: object, msg?: string) => void;
413
+ error: (obj: object, msg?: string) => void;
414
+ child: (bindings: object) => Logger;
415
+ readonly pino: Logger$1;
416
+ }
417
+ /** Create a structured logger with automatic trace context injection */
418
+ declare function createLogger(options: LoggerOptions): Logger;
419
+ /** Fallback logger when Pino is not available */
420
+ declare function createFallbackLogger(serviceName?: string): Logger;
421
+ declare function setGlobalLogger(logger: Logger): void;
422
+ declare function getGlobalLogger(): Logger;
423
+
424
+ //#endregion
425
+ //#region src/features/tracing.d.ts
426
+ //# sourceMappingURL=logging.d.ts.map
427
+ interface TracingOptions {
428
+ serviceName: string;
429
+ serviceVersion: string;
430
+ environment: string;
431
+ endpoint?: string;
432
+ sampleRate?: number;
433
+ autoInstrumentation?: AutoInstrumentationConfig;
434
+ }
435
+ /** Initialize OpenTelemetry tracing */
436
+ declare function setupTracing(options: TracingOptions): void;
437
+ /** Shutdown tracing gracefully */
438
+ declare function shutdownTracing(): Promise<void>;
439
+ declare function getTracer(name: string): Tracer;
440
+ declare function getActiveSpan(): _opentelemetry_api0.Span | undefined;
441
+ declare function getTraceContext(): {
442
+ traceId?: string;
443
+ spanId?: string;
444
+ };
445
+ declare function isTracingEnabled(): boolean;
446
+
447
+ //#endregion
448
+ //#region src/features/metrics.d.ts
449
+ interface MetricsOptions {
450
+ serviceName: string;
451
+ serviceVersion: string;
452
+ environment: string;
453
+ endpoint?: string;
454
+ intervalMs?: number;
455
+ }
456
+ /** Initialize OpenTelemetry metrics */
457
+ declare function setupMetrics(options: MetricsOptions): void;
458
+ /** Shutdown metrics gracefully */
459
+ declare function shutdownMetrics(): Promise<void>;
460
+ declare function getMeter(name: string, version?: string): Meter;
461
+ declare function isMetricsEnabled(): boolean;
462
+
463
+ //#endregion
464
+ //#region src/integrations/fastify-plugin.d.ts
465
+ interface PluginRequestContext {
466
+ correlationId: string;
467
+ traceId: string;
468
+ spanId: string;
469
+ startTime: number;
470
+ [key: string]: unknown;
471
+ }
472
+ interface RequestLoggingOptions {
473
+ logHeaders?: boolean;
474
+ logBody?: boolean;
475
+ logResponseBody?: boolean;
476
+ maxBodySize?: number;
477
+ redactHeaders?: string[];
478
+ }
479
+ interface FastifyPluginOptions {
480
+ serviceName: string;
481
+ logger?: Logger;
482
+ contextManager?: ContextManager;
483
+ tracingEnabled?: boolean;
484
+ metricsEnabled?: boolean;
485
+ excludeRoutes?: string[];
486
+ /** Request/response logging options */
487
+ requestLogging?: RequestLoggingOptions;
488
+ }
489
+ declare module 'fastify' {
490
+ interface FastifyRequest {
491
+ __span?: Span;
492
+ __requestContext?: PluginRequestContext;
493
+ }
494
+ }
495
+ /** Create a configured Fastify observability plugin */
496
+ declare function createObservabilityPlugin(options: FastifyPluginOptions): FastifyPluginAsync<Partial<FastifyPluginOptions>>;
497
+
498
+ //#endregion
499
+ //#region src/integrations/http-client.d.ts
500
+ interface HttpClientOptions {
501
+ baseURL: string;
502
+ serviceName: string;
503
+ timeout?: number;
504
+ retry?: {
505
+ retries?: number;
506
+ retryDelay?: number;
507
+ retryStatusCodes?: number[];
508
+ };
509
+ circuitBreaker?: {
510
+ enabled?: boolean;
511
+ resetTimeout?: number;
512
+ errorThresholdPercentage?: number;
513
+ };
514
+ headers?: Record<string, string>;
515
+ foundation?: FoundationInstance;
516
+ }
517
+ type HttpClient = AxiosInstance;
518
+ /** Create a configured HTTP client with full observability */
519
+ declare function createHttpClient(options: HttpClientOptions): HttpClient;
520
+
521
+ //#endregion
522
+ //#region src/foundation.d.ts
523
+ interface HealthStatus {
524
+ status: 'healthy' | 'degraded' | 'unhealthy';
525
+ timestamp: string;
526
+ service: string;
527
+ version: string;
528
+ uptime: number;
529
+ components: {
530
+ tracing: ComponentHealth;
531
+ metrics: ComponentHealth;
532
+ logging: ComponentHealth;
533
+ };
534
+ }
535
+ interface ComponentHealth {
536
+ enabled: boolean;
537
+ status: 'up' | 'down' | 'disabled';
538
+ message?: string;
539
+ }
540
+ interface FoundationInstance {
541
+ readonly config: FoundationConfig;
542
+ readonly logger: Logger;
543
+ readonly context: ContextManager;
544
+ readonly tracer: Tracer | null;
545
+ readonly meter: Meter | null;
546
+ readonly fastifyPlugin: ReturnType<typeof createObservabilityPlugin>;
547
+ readonly features: {
548
+ tracing: boolean;
549
+ metrics: boolean;
550
+ logging: boolean;
551
+ };
552
+ getTracer: (name?: string) => Tracer;
553
+ getMeter: (name: string, version?: string) => Meter;
554
+ getTraceContext: () => {
555
+ traceId?: string;
556
+ spanId?: string;
557
+ };
558
+ getActiveSpan: () => ReturnType<typeof getActiveSpan>;
559
+ createHttpClient: (options: Omit<HttpClientOptions, 'foundation'>) => HttpClient;
560
+ shutdown: () => Promise<void>;
561
+ isReady: () => boolean;
562
+ health: () => HealthStatus;
563
+ trace: <T>(name: string, fn: () => T | Promise<T>) => Promise<T>;
564
+ safeRun: <T>(fn: () => T | Promise<T>, fallback?: T) => Promise<T | undefined>;
565
+ }
566
+ /** Create a fully configured observability foundation */
567
+ declare function createFoundation(input: FoundationConfigInput): FoundationInstance;
568
+ /** Alias for createFoundation */
569
+ declare const setupObservability: typeof createFoundation;
570
+
571
+ //#endregion
572
+ export { AutoInstrumentationConfig, AutoInstrumentationConfigSchema, AxiosInstance, AxiosRequestConfig, AxiosResponse, ComponentHealth, ContextManager, FastifyPluginOptions, FeaturesConfig, FeaturesConfigSchema, FoundationConfig, FoundationConfigInput, FoundationConfigSchema, FoundationInstance, HealthStatus, HttpClient, HttpClientOptions, Logger, LoggerOptions, LoggingConfig, LoggingConfigSchema, Meter, MetricsOptions, OtelConfig, OtelConfigSchema, RequestContext, RequestLoggingConfig, RequestLoggingConfigSchema, SpanStatusCode, Tracer, TracingOptions, context, createContextManager, createFallbackLogger, createFoundation, createHttpClient, createLogger, createObservabilityPlugin, getActiveSpan, getDefaultOtelEndpoint, getGlobalLogger, getMeter, getTraceContext, getTracer, isMetricsEnabled, isTracingEnabled, metrics, parseConfig, propagation, setGlobalLogger, setupMetrics, setupObservability, setupTracing, shutdownMetrics, shutdownTracing, trace };
12
573
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,GAAG,EACH,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/features/context.ts","../src/features/logging.ts","../src/features/tracing.ts","../src/features/metrics.ts","../src/integrations/fastify-plugin.ts","../src/integrations/http-client.ts","../src/foundation.ts"],"sourcesContent":null,"mappings":"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"}