@ciq-dev/neoiq-foundation-node 1.0.1-beta.1 → 1.0.1-beta.2
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/README.md +40 -1
- package/dist/index.d.mts +271 -10
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +269 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +719 -123
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +716 -122
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -2
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@ Node.js observability foundation for CommerceIQ services. Integrates with **Grou
|
|
|
24
24
|
- **Type-Safe Configuration**: Zod validation with helpful error messages
|
|
25
25
|
- **Fastify Plugin**: One-line integration for request lifecycle
|
|
26
26
|
- **HTTP Client**: Axios wrapper with retry, circuit breaker, and trace propagation
|
|
27
|
+
- **Object Store Adapter**: Provider-agnostic wrapper for cloud object storage (e.g. S3) to avoid direct SDK coupling
|
|
27
28
|
|
|
28
29
|
---
|
|
29
30
|
|
|
@@ -39,6 +40,9 @@ npm install zod @opentelemetry/api @opentelemetry/sdk-node @opentelemetry/sdk-me
|
|
|
39
40
|
@opentelemetry/exporter-trace-otlp-grpc @opentelemetry/exporter-metrics-otlp-grpc \
|
|
40
41
|
@opentelemetry/auto-instrumentations-node @opentelemetry/resources @opentelemetry/semantic-conventions \
|
|
41
42
|
pino pino-pretty axios axios-retry opossum fastify-plugin
|
|
43
|
+
|
|
44
|
+
# Optional (only if you want AWS S3 implementation of ObjectStore)
|
|
45
|
+
npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner
|
|
42
46
|
```
|
|
43
47
|
|
|
44
48
|
### 2. Initialize (First Line of the App)
|
|
@@ -318,6 +322,40 @@ process.on('SIGTERM', async () => {
|
|
|
318
322
|
|
|
319
323
|
---
|
|
320
324
|
|
|
325
|
+
## Object Store Adapter (S3 / Cloud Abstraction)
|
|
326
|
+
|
|
327
|
+
Use this when you want to **decouple application code** from `aws-sdk` / cloud vendor SDKs.
|
|
328
|
+
|
|
329
|
+
### AWS S3 (optional peer deps)
|
|
330
|
+
|
|
331
|
+
```typescript
|
|
332
|
+
import { AwsS3ObjectStore } from '@ciq-dev/neoiq-foundation-node';
|
|
333
|
+
|
|
334
|
+
const store = new AwsS3ObjectStore({
|
|
335
|
+
clientOptions: { region: process.env.AWS_REGION || 'us-east-1' },
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
const ref = { bucket: 'my-bucket', key: 'path/to/file.json' };
|
|
339
|
+
|
|
340
|
+
// Upload
|
|
341
|
+
await store.putObject(ref, JSON.stringify({ ok: true }), { contentType: 'application/json' });
|
|
342
|
+
|
|
343
|
+
// Presigned PUT URL (browser upload)
|
|
344
|
+
const uploadUrl = await store.presignPutObject(ref, { expiresInSeconds: 60, contentType: 'application/json' });
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### In-memory (local/tests)
|
|
348
|
+
|
|
349
|
+
```typescript
|
|
350
|
+
import { InMemoryObjectStore } from '@ciq-dev/neoiq-foundation-node';
|
|
351
|
+
|
|
352
|
+
const store = new InMemoryObjectStore();
|
|
353
|
+
await store.putObject({ bucket: 'b', key: 'k' }, 'hello');
|
|
354
|
+
const obj = await store.getObject({ bucket: 'b', key: 'k' });
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
321
359
|
## Complete Example
|
|
322
360
|
|
|
323
361
|
```typescript
|
|
@@ -422,7 +460,8 @@ src/
|
|
|
422
460
|
│ └── metrics.ts # OTEL meter provider
|
|
423
461
|
└── integrations/
|
|
424
462
|
├── fastify-plugin.ts # Fastify observability plugin
|
|
425
|
-
|
|
463
|
+
├── http-client.ts # Axios wrapper with observability
|
|
464
|
+
└── object-store/ # Cloud object store abstraction (S3, etc.)
|
|
426
465
|
```
|
|
427
466
|
|
|
428
467
|
---
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import * as _opentelemetry_api1 from "@opentelemetry/api";
|
|
3
|
+
import { Meter, SpanStatusCode, Tracer, context, metrics, propagation, trace } from "@opentelemetry/api";
|
|
2
4
|
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
5
|
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
|
|
6
|
+
import { Readable } from "node:stream";
|
|
6
7
|
import { FastifyPluginAsync } from "fastify";
|
|
7
8
|
|
|
8
9
|
//#region src/config.d.ts
|
|
@@ -166,6 +167,25 @@ declare const RequestLoggingConfigSchema: z.ZodObject<{
|
|
|
166
167
|
redactHeaders?: string[] | undefined;
|
|
167
168
|
}>;
|
|
168
169
|
type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;
|
|
170
|
+
declare const RedactionConfigSchema: z.ZodObject<{
|
|
171
|
+
additionalPaths: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
|
|
172
|
+
}, "strip", z.ZodTypeAny, {
|
|
173
|
+
additionalPaths?: string[] | undefined;
|
|
174
|
+
}, {
|
|
175
|
+
additionalPaths?: string[] | undefined;
|
|
176
|
+
}>;
|
|
177
|
+
type RedactionConfig = z.infer<typeof RedactionConfigSchema>;
|
|
178
|
+
declare const ShutdownConfigSchema: z.ZodObject<{
|
|
179
|
+
flushOnCrash: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
180
|
+
flushTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
181
|
+
}, "strip", z.ZodTypeAny, {
|
|
182
|
+
flushOnCrash?: boolean | undefined;
|
|
183
|
+
flushTimeoutMs?: number | undefined;
|
|
184
|
+
}, {
|
|
185
|
+
flushOnCrash?: boolean | undefined;
|
|
186
|
+
flushTimeoutMs?: number | undefined;
|
|
187
|
+
}>;
|
|
188
|
+
type ShutdownConfig = z.infer<typeof ShutdownConfigSchema>;
|
|
169
189
|
declare const FoundationConfigSchema: z.ZodObject<{
|
|
170
190
|
serviceName: z.ZodString;
|
|
171
191
|
serviceVersion: z.ZodDefault<z.ZodString>;
|
|
@@ -288,6 +308,23 @@ declare const FoundationConfigSchema: z.ZodObject<{
|
|
|
288
308
|
maxBodySize?: number | undefined;
|
|
289
309
|
redactHeaders?: string[] | undefined;
|
|
290
310
|
}>>;
|
|
311
|
+
redaction: z.ZodDefault<z.ZodObject<{
|
|
312
|
+
additionalPaths: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
|
|
313
|
+
}, "strip", z.ZodTypeAny, {
|
|
314
|
+
additionalPaths?: string[] | undefined;
|
|
315
|
+
}, {
|
|
316
|
+
additionalPaths?: string[] | undefined;
|
|
317
|
+
}>>;
|
|
318
|
+
shutdown: z.ZodDefault<z.ZodObject<{
|
|
319
|
+
flushOnCrash: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
320
|
+
flushTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
321
|
+
}, "strip", z.ZodTypeAny, {
|
|
322
|
+
flushOnCrash?: boolean | undefined;
|
|
323
|
+
flushTimeoutMs?: number | undefined;
|
|
324
|
+
}, {
|
|
325
|
+
flushOnCrash?: boolean | undefined;
|
|
326
|
+
flushTimeoutMs?: number | undefined;
|
|
327
|
+
}>>;
|
|
291
328
|
}, "strip", z.ZodTypeAny, {
|
|
292
329
|
logging: {
|
|
293
330
|
level?: "debug" | "info" | "warn" | "error" | undefined;
|
|
@@ -326,6 +363,13 @@ declare const FoundationConfigSchema: z.ZodObject<{
|
|
|
326
363
|
maxBodySize?: number | undefined;
|
|
327
364
|
redactHeaders?: string[] | undefined;
|
|
328
365
|
};
|
|
366
|
+
redaction: {
|
|
367
|
+
additionalPaths?: string[] | undefined;
|
|
368
|
+
};
|
|
369
|
+
shutdown: {
|
|
370
|
+
flushOnCrash?: boolean | undefined;
|
|
371
|
+
flushTimeoutMs?: number | undefined;
|
|
372
|
+
};
|
|
329
373
|
}, {
|
|
330
374
|
serviceName: string;
|
|
331
375
|
logging?: {
|
|
@@ -364,6 +408,13 @@ declare const FoundationConfigSchema: z.ZodObject<{
|
|
|
364
408
|
maxBodySize?: number | undefined;
|
|
365
409
|
redactHeaders?: string[] | undefined;
|
|
366
410
|
} | undefined;
|
|
411
|
+
redaction?: {
|
|
412
|
+
additionalPaths?: string[] | undefined;
|
|
413
|
+
} | undefined;
|
|
414
|
+
shutdown?: {
|
|
415
|
+
flushOnCrash?: boolean | undefined;
|
|
416
|
+
flushTimeoutMs?: number | undefined;
|
|
417
|
+
} | undefined;
|
|
367
418
|
}>;
|
|
368
419
|
type FoundationConfig = z.infer<typeof FoundationConfigSchema>;
|
|
369
420
|
type FoundationConfigInput = Partial<FoundationConfig> & {
|
|
@@ -377,13 +428,18 @@ declare function getDefaultOtelEndpoint(): string; //#endregion
|
|
|
377
428
|
|
|
378
429
|
//# sourceMappingURL=config.d.ts.map
|
|
379
430
|
/**
|
|
380
|
-
* Context Manager
|
|
431
|
+
* Context Manager
|
|
432
|
+
*
|
|
433
|
+
* Uses OTEL Baggage as the primary store for correlationId when tracing
|
|
434
|
+
* is active. Falls back to AsyncLocalStorage when tracing is disabled,
|
|
435
|
+
* ensuring correlation IDs work regardless of OTEL state.
|
|
381
436
|
*/
|
|
382
437
|
interface RequestContext {
|
|
383
438
|
correlationId?: string;
|
|
384
439
|
traceId?: string;
|
|
385
440
|
spanId?: string;
|
|
386
441
|
startTime?: number;
|
|
442
|
+
contextData?: Record<string, unknown>;
|
|
387
443
|
[key: string]: unknown;
|
|
388
444
|
}
|
|
389
445
|
interface ContextManager {
|
|
@@ -391,6 +447,16 @@ interface ContextManager {
|
|
|
391
447
|
run<T>(context: RequestContext, fn: () => T): T;
|
|
392
448
|
get<K extends keyof RequestContext>(key: K): RequestContext[K] | undefined;
|
|
393
449
|
update(updates: Partial<RequestContext>): RequestContext | undefined;
|
|
450
|
+
/** Set an arbitrary context value (e.g. tenant_id, user_id) — auto-injected into every log line */
|
|
451
|
+
setContextValue(key: string, value: unknown): void;
|
|
452
|
+
/** Get a single context value by key */
|
|
453
|
+
getContextValue(key: string): unknown;
|
|
454
|
+
/** Get all arbitrary context data */
|
|
455
|
+
getContextData(): Record<string, unknown>;
|
|
456
|
+
/** Bulk-set multiple context values */
|
|
457
|
+
setContextData(data: Record<string, unknown>): void;
|
|
458
|
+
/** Clear all arbitrary context data */
|
|
459
|
+
clearContextData(): void;
|
|
394
460
|
}
|
|
395
461
|
/** Create a new context manager instance */
|
|
396
462
|
declare function createContextManager(): ContextManager;
|
|
@@ -405,6 +471,7 @@ interface LoggerOptions {
|
|
|
405
471
|
level: 'debug' | 'info' | 'warn' | 'error';
|
|
406
472
|
prettyPrint: boolean;
|
|
407
473
|
contextManager?: ContextManager;
|
|
474
|
+
additionalRedactPaths?: string[];
|
|
408
475
|
}
|
|
409
476
|
interface Logger {
|
|
410
477
|
debug: (obj: object, msg?: string) => void;
|
|
@@ -437,7 +504,7 @@ declare function setupTracing(options: TracingOptions): void;
|
|
|
437
504
|
/** Shutdown tracing gracefully */
|
|
438
505
|
declare function shutdownTracing(): Promise<void>;
|
|
439
506
|
declare function getTracer(name: string): Tracer;
|
|
440
|
-
declare function getActiveSpan():
|
|
507
|
+
declare function getActiveSpan(): _opentelemetry_api1.Span | undefined;
|
|
441
508
|
declare function getTraceContext(): {
|
|
442
509
|
traceId?: string;
|
|
443
510
|
spanId?: string;
|
|
@@ -488,7 +555,6 @@ interface FastifyPluginOptions {
|
|
|
488
555
|
}
|
|
489
556
|
declare module 'fastify' {
|
|
490
557
|
interface FastifyRequest {
|
|
491
|
-
__span?: Span;
|
|
492
558
|
__requestContext?: PluginRequestContext;
|
|
493
559
|
}
|
|
494
560
|
}
|
|
@@ -537,30 +603,67 @@ interface ComponentHealth {
|
|
|
537
603
|
status: 'up' | 'down' | 'disabled';
|
|
538
604
|
message?: string;
|
|
539
605
|
}
|
|
540
|
-
interface
|
|
541
|
-
readonly config: FoundationConfig;
|
|
606
|
+
interface ObservabilityModule {
|
|
542
607
|
readonly logger: Logger;
|
|
543
|
-
readonly context: ContextManager;
|
|
544
608
|
readonly tracer: Tracer | null;
|
|
545
609
|
readonly meter: Meter | null;
|
|
546
|
-
|
|
610
|
+
getTracer(name?: string): Tracer;
|
|
611
|
+
getMeter(name: string, version?: string): Meter;
|
|
612
|
+
getTraceContext(): {
|
|
613
|
+
traceId?: string;
|
|
614
|
+
spanId?: string;
|
|
615
|
+
};
|
|
616
|
+
getActiveSpan(): ReturnType<typeof getActiveSpan>;
|
|
617
|
+
trace<T>(name: string, fn: () => T | Promise<T>): Promise<T>;
|
|
618
|
+
}
|
|
619
|
+
interface HttpModule {
|
|
620
|
+
createClient(options: Omit<HttpClientOptions, 'foundation'>): HttpClient;
|
|
621
|
+
}
|
|
622
|
+
interface LifecycleModule {
|
|
623
|
+
health(): HealthStatus;
|
|
624
|
+
isReady(): boolean;
|
|
625
|
+
shutdown(): Promise<void>;
|
|
626
|
+
safeRun<T>(fn: () => T | Promise<T>, fallback?: T): Promise<T | undefined>;
|
|
627
|
+
}
|
|
628
|
+
interface FoundationInstance {
|
|
629
|
+
readonly config: FoundationConfig;
|
|
547
630
|
readonly features: {
|
|
548
631
|
tracing: boolean;
|
|
549
632
|
metrics: boolean;
|
|
550
633
|
logging: boolean;
|
|
551
634
|
};
|
|
635
|
+
readonly observability: ObservabilityModule;
|
|
636
|
+
readonly http: HttpModule;
|
|
637
|
+
readonly lifecycle: LifecycleModule;
|
|
638
|
+
readonly logger: Logger;
|
|
639
|
+
readonly context: ContextManager;
|
|
640
|
+
readonly fastifyPlugin: ReturnType<typeof createObservabilityPlugin>;
|
|
641
|
+
/** @deprecated Use `foundation.observability.tracer` */
|
|
642
|
+
readonly tracer: Tracer | null;
|
|
643
|
+
/** @deprecated Use `foundation.observability.meter` */
|
|
644
|
+
readonly meter: Meter | null;
|
|
645
|
+
/** @deprecated Use `foundation.observability.getTracer()` */
|
|
552
646
|
getTracer: (name?: string) => Tracer;
|
|
647
|
+
/** @deprecated Use `foundation.observability.getMeter()` */
|
|
553
648
|
getMeter: (name: string, version?: string) => Meter;
|
|
649
|
+
/** @deprecated Use `foundation.observability.getTraceContext()` */
|
|
554
650
|
getTraceContext: () => {
|
|
555
651
|
traceId?: string;
|
|
556
652
|
spanId?: string;
|
|
557
653
|
};
|
|
654
|
+
/** @deprecated Use `foundation.observability.getActiveSpan()` */
|
|
558
655
|
getActiveSpan: () => ReturnType<typeof getActiveSpan>;
|
|
656
|
+
/** @deprecated Use `foundation.http.createClient()` */
|
|
559
657
|
createHttpClient: (options: Omit<HttpClientOptions, 'foundation'>) => HttpClient;
|
|
658
|
+
/** @deprecated Use `foundation.lifecycle.shutdown()` */
|
|
560
659
|
shutdown: () => Promise<void>;
|
|
660
|
+
/** @deprecated Use `foundation.lifecycle.isReady()` */
|
|
561
661
|
isReady: () => boolean;
|
|
662
|
+
/** @deprecated Use `foundation.lifecycle.health()` */
|
|
562
663
|
health: () => HealthStatus;
|
|
664
|
+
/** @deprecated Use `foundation.observability.trace()` */
|
|
563
665
|
trace: <T>(name: string, fn: () => T | Promise<T>) => Promise<T>;
|
|
666
|
+
/** @deprecated Use `foundation.lifecycle.safeRun()` */
|
|
564
667
|
safeRun: <T>(fn: () => T | Promise<T>, fallback?: T) => Promise<T | undefined>;
|
|
565
668
|
}
|
|
566
669
|
/** Create a fully configured observability foundation */
|
|
@@ -569,5 +672,163 @@ declare function createFoundation(input: FoundationConfigInput): FoundationInsta
|
|
|
569
672
|
declare const setupObservability: typeof createFoundation;
|
|
570
673
|
|
|
571
674
|
//#endregion
|
|
572
|
-
|
|
675
|
+
//#region src/features/redaction.d.ts
|
|
676
|
+
/**
|
|
677
|
+
* Log Redaction & PII Sanitization
|
|
678
|
+
*
|
|
679
|
+
* Two-layer approach:
|
|
680
|
+
* - Layer A: Pino native `redact` (fast-redact) for key-based redaction on every log call.
|
|
681
|
+
* Compiled at init, near-zero runtime cost.
|
|
682
|
+
* - Layer B: Deep-traverse sanitizer for value-pattern detection (JWTs, AWS keys, etc.).
|
|
683
|
+
* Only used for request/response body logging — NOT on every log call.
|
|
684
|
+
*/
|
|
685
|
+
/**
|
|
686
|
+
* Key names that Pino's fast-redact will censor automatically.
|
|
687
|
+
* Supports wildcards: '*.password' matches nested keys one level deep.
|
|
688
|
+
*/
|
|
689
|
+
declare const REDACT_PATHS: ReadonlyArray<string>;
|
|
690
|
+
/**
|
|
691
|
+
* Deep-traverse sanitizer for request/response bodies.
|
|
692
|
+
* Checks both key names (deny-list) and value patterns (JWT, AWS keys, etc.).
|
|
693
|
+
* NOT intended for every log call — use Pino native `redact` for that.
|
|
694
|
+
*/
|
|
695
|
+
declare function sanitizeBody<T>(body: T): T;
|
|
696
|
+
/** Build the Pino `redact` config object for fast-redact integration */
|
|
697
|
+
declare function buildPinoRedactConfig(additionalPaths?: string[]): {
|
|
698
|
+
paths: string[];
|
|
699
|
+
censor: string;
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
//#endregion
|
|
703
|
+
//#region src/integrations/object-store/types.d.ts
|
|
704
|
+
//# sourceMappingURL=redaction.d.ts.map
|
|
705
|
+
type ObjectStoreProvider = 'aws-s3' | 'gcp-gcs' | 'azure-blob' | 'in-memory';
|
|
706
|
+
interface ObjectRef {
|
|
707
|
+
bucket: string;
|
|
708
|
+
key: string;
|
|
709
|
+
}
|
|
710
|
+
type ObjectBody = string | Uint8Array | Buffer | Readable;
|
|
711
|
+
interface PutObjectOptions {
|
|
712
|
+
contentType?: string;
|
|
713
|
+
cacheControl?: string;
|
|
714
|
+
metadata?: Record<string, string>;
|
|
715
|
+
}
|
|
716
|
+
interface PutObjectResult {
|
|
717
|
+
etag?: string;
|
|
718
|
+
versionId?: string;
|
|
719
|
+
}
|
|
720
|
+
interface HeadObjectResult {
|
|
721
|
+
exists: boolean;
|
|
722
|
+
contentType?: string;
|
|
723
|
+
contentLength?: number;
|
|
724
|
+
etag?: string;
|
|
725
|
+
versionId?: string;
|
|
726
|
+
metadata?: Record<string, string>;
|
|
727
|
+
lastModified?: Date;
|
|
728
|
+
}
|
|
729
|
+
interface GetObjectResult {
|
|
730
|
+
body: Readable;
|
|
731
|
+
contentType?: string;
|
|
732
|
+
contentLength?: number;
|
|
733
|
+
etag?: string;
|
|
734
|
+
versionId?: string;
|
|
735
|
+
metadata?: Record<string, string>;
|
|
736
|
+
lastModified?: Date;
|
|
737
|
+
}
|
|
738
|
+
interface ListObjectsOptions {
|
|
739
|
+
bucket: string;
|
|
740
|
+
prefix?: string;
|
|
741
|
+
continuationToken?: string;
|
|
742
|
+
maxKeys?: number;
|
|
743
|
+
}
|
|
744
|
+
interface ListObjectsResult {
|
|
745
|
+
objects: Array<{
|
|
746
|
+
key: string;
|
|
747
|
+
size?: number;
|
|
748
|
+
etag?: string;
|
|
749
|
+
lastModified?: Date;
|
|
750
|
+
}>;
|
|
751
|
+
nextContinuationToken?: string;
|
|
752
|
+
}
|
|
753
|
+
interface PresignGetObjectOptions {
|
|
754
|
+
expiresInSeconds: number;
|
|
755
|
+
responseContentType?: string;
|
|
756
|
+
}
|
|
757
|
+
interface PresignPutObjectOptions {
|
|
758
|
+
expiresInSeconds: number;
|
|
759
|
+
contentType?: string;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
//#endregion
|
|
763
|
+
//#region src/integrations/object-store/object-store.d.ts
|
|
764
|
+
//# sourceMappingURL=types.d.ts.map
|
|
765
|
+
/**
|
|
766
|
+
* ObjectStore - provider-agnostic interface to wrap AWS S3 / GCS / etc.
|
|
767
|
+
*
|
|
768
|
+
* Downstream services should depend on this interface, not on cloud SDKs directly.
|
|
769
|
+
*/
|
|
770
|
+
interface ObjectStore {
|
|
771
|
+
readonly provider: string;
|
|
772
|
+
putObject(ref: ObjectRef, body: ObjectBody, options?: PutObjectOptions): Promise<PutObjectResult>;
|
|
773
|
+
getObject(ref: ObjectRef): Promise<GetObjectResult>;
|
|
774
|
+
headObject(ref: ObjectRef): Promise<HeadObjectResult>;
|
|
775
|
+
deleteObject(ref: ObjectRef): Promise<void>;
|
|
776
|
+
listObjects(options: ListObjectsOptions): Promise<ListObjectsResult>;
|
|
777
|
+
presignGetObject(ref: ObjectRef, options: PresignGetObjectOptions): Promise<string>;
|
|
778
|
+
presignPutObject(ref: ObjectRef, options: PresignPutObjectOptions): Promise<string>;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
//#endregion
|
|
782
|
+
//#region src/integrations/object-store/aws-s3.d.ts
|
|
783
|
+
//# sourceMappingURL=object-store.d.ts.map
|
|
784
|
+
type AwsS3Client = any;
|
|
785
|
+
interface AwsS3ObjectStoreOptions {
|
|
786
|
+
/** Provide an existing S3 client instance (advanced use). */
|
|
787
|
+
client?: AwsS3Client;
|
|
788
|
+
/** Options forwarded to `new S3Client(...)` when `client` isn't provided. */
|
|
789
|
+
clientOptions?: Record<string, unknown>;
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* AwsS3ObjectStore - wraps AWS S3 behind the provider-agnostic `ObjectStore` interface.
|
|
793
|
+
*
|
|
794
|
+
* This implementation uses dynamic imports so `neoiq-foundation-node` can be used without AWS SDK.
|
|
795
|
+
*/
|
|
796
|
+
declare class AwsS3ObjectStore implements ObjectStore {
|
|
797
|
+
readonly provider = "aws-s3";
|
|
798
|
+
private readonly clientPromise;
|
|
799
|
+
private readonly awsPromise;
|
|
800
|
+
constructor(options?: AwsS3ObjectStoreOptions);
|
|
801
|
+
private client;
|
|
802
|
+
putObject(ref: ObjectRef, body: ObjectBody, options?: PutObjectOptions): Promise<PutObjectResult>;
|
|
803
|
+
getObject(ref: ObjectRef): Promise<GetObjectResult>;
|
|
804
|
+
headObject(ref: ObjectRef): Promise<HeadObjectResult>;
|
|
805
|
+
deleteObject(ref: ObjectRef): Promise<void>;
|
|
806
|
+
listObjects(options: ListObjectsOptions): Promise<ListObjectsResult>;
|
|
807
|
+
presignGetObject(ref: ObjectRef, options: PresignGetObjectOptions): Promise<string>;
|
|
808
|
+
presignPutObject(ref: ObjectRef, options: PresignPutObjectOptions): Promise<string>;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
//#endregion
|
|
812
|
+
//#region src/integrations/object-store/in-memory.d.ts
|
|
813
|
+
/**
|
|
814
|
+
* InMemoryObjectStore - useful for local dev, unit tests, and as a safe default.
|
|
815
|
+
* NOTE: presign* methods are not meaningful here and will throw.
|
|
816
|
+
*/
|
|
817
|
+
declare class InMemoryObjectStore implements ObjectStore {
|
|
818
|
+
readonly provider = "in-memory";
|
|
819
|
+
private readonly buckets;
|
|
820
|
+
private bucketMap;
|
|
821
|
+
putObject(ref: ObjectRef, body: ObjectBody, options?: PutObjectOptions): Promise<PutObjectResult>;
|
|
822
|
+
getObject(ref: ObjectRef): Promise<GetObjectResult>;
|
|
823
|
+
headObject(ref: ObjectRef): Promise<HeadObjectResult>;
|
|
824
|
+
deleteObject(ref: ObjectRef): Promise<void>;
|
|
825
|
+
listObjects(options: ListObjectsOptions): Promise<ListObjectsResult>;
|
|
826
|
+
presignGetObject(_ref: ObjectRef, _options: PresignGetObjectOptions): Promise<string>;
|
|
827
|
+
presignPutObject(_ref: ObjectRef, _options: PresignPutObjectOptions): Promise<string>;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
//#endregion
|
|
831
|
+
//# sourceMappingURL=in-memory.d.ts.map
|
|
832
|
+
|
|
833
|
+
export { AutoInstrumentationConfig, AutoInstrumentationConfigSchema, AwsS3ObjectStore, AwsS3ObjectStoreOptions, AxiosInstance, AxiosRequestConfig, AxiosResponse, ComponentHealth, ContextManager, FastifyPluginOptions, FeaturesConfig, FeaturesConfigSchema, FoundationConfig, FoundationConfigInput, FoundationConfigSchema, FoundationInstance, GetObjectResult, HeadObjectResult, HealthStatus, HttpClient, HttpClientOptions, HttpModule, InMemoryObjectStore, LifecycleModule, ListObjectsOptions, ListObjectsResult, Logger, LoggerOptions, LoggingConfig, LoggingConfigSchema, Meter, MetricsOptions, ObjectBody, ObjectRef, ObjectStore, ObjectStoreProvider, ObservabilityModule, OtelConfig, OtelConfigSchema, PresignGetObjectOptions, PresignPutObjectOptions, PutObjectOptions, PutObjectResult, REDACT_PATHS, RedactionConfig, RedactionConfigSchema, RequestContext, RequestLoggingConfig, RequestLoggingConfigSchema, ShutdownConfig, ShutdownConfigSchema, SpanStatusCode, Tracer, TracingOptions, buildPinoRedactConfig, context, createContextManager, createFallbackLogger, createFoundation, createHttpClient, createLogger, createObservabilityPlugin, getActiveSpan, getDefaultOtelEndpoint, getGlobalLogger, getMeter, getTraceContext, getTracer, isMetricsEnabled, isTracingEnabled, metrics, parseConfig, propagation, sanitizeBody, setGlobalLogger, setupMetrics, setupObservability, setupTracing, shutdownMetrics, shutdownTracing, trace };
|
|
573
834
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","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":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","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","../src/features/redaction.ts","../src/integrations/object-store/types.ts","../src/integrations/object-store/object-store.ts","../src/integrations/object-store/aws-s3.ts","../src/integrations/object-store/in-memory.ts"],"sourcesContent":null,"mappings":"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"}
|