@qnsp/storage-sdk 0.0.1 → 0.0.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.
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ export declare const eventMetadataSchema: z.ZodObject<{
3
+ correlationId: z.ZodOptional<z.ZodString>;
4
+ causationId: z.ZodOptional<z.ZodString>;
5
+ tenantId: z.ZodOptional<z.ZodString>;
6
+ timestamp: z.ZodDefault<z.ZodString>;
7
+ requestId: z.ZodOptional<z.ZodString>;
8
+ sourceService: z.ZodOptional<z.ZodString>;
9
+ traceId: z.ZodOptional<z.ZodString>;
10
+ spanId: z.ZodOptional<z.ZodString>;
11
+ userId: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export declare const eventEnvelopeSchema: z.ZodObject<{
14
+ id: z.ZodDefault<z.ZodString>;
15
+ topic: z.ZodString;
16
+ version: z.ZodDefault<z.ZodString>;
17
+ occuredAt: z.ZodDefault<z.ZodString>;
18
+ payload: z.ZodUnknown;
19
+ metadata: z.ZodDefault<z.ZodObject<{
20
+ correlationId: z.ZodOptional<z.ZodString>;
21
+ causationId: z.ZodOptional<z.ZodString>;
22
+ tenantId: z.ZodOptional<z.ZodString>;
23
+ timestamp: z.ZodDefault<z.ZodString>;
24
+ requestId: z.ZodOptional<z.ZodString>;
25
+ sourceService: z.ZodOptional<z.ZodString>;
26
+ traceId: z.ZodOptional<z.ZodString>;
27
+ spanId: z.ZodOptional<z.ZodString>;
28
+ userId: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>>;
30
+ }, z.core.$strip>;
31
+ export type EventMetadata = z.infer<typeof eventMetadataSchema>;
32
+ export type EventEnvelope<TPayload = unknown> = z.infer<typeof eventEnvelopeSchema> & {
33
+ payload: TPayload;
34
+ };
35
+ export interface CreateEventEnvelopeOptions<TPayload> {
36
+ readonly topic: string;
37
+ readonly version?: string;
38
+ readonly metadata?: EventMetadata;
39
+ readonly payload: TPayload;
40
+ }
41
+ export declare function createEventEnvelope<TPayload>(options: CreateEventEnvelopeOptions<TPayload>): EventEnvelope<TPayload>;
42
+ //# sourceMappingURL=event-envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-envelope.d.ts","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAe9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG;IACrF,OAAO,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,QAAQ;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAC3C,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC3C,aAAa,CAAC,QAAQ,CAAC,CASzB"}
@@ -0,0 +1,42 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { z } from "zod";
3
+ export const eventMetadataSchema = z.object({
4
+ correlationId: z.string().uuid().optional(),
5
+ causationId: z.string().uuid().optional(),
6
+ tenantId: z.string().optional(),
7
+ timestamp: z
8
+ .string()
9
+ .datetime({ offset: true })
10
+ .default(() => new Date().toISOString()),
11
+ requestId: z.string().optional(),
12
+ sourceService: z.string().optional(),
13
+ traceId: z.string().optional(),
14
+ spanId: z.string().optional(),
15
+ userId: z.string().optional(),
16
+ });
17
+ export const eventEnvelopeSchema = z.object({
18
+ id: z
19
+ .string()
20
+ .uuid()
21
+ .default(() => randomUUID()),
22
+ topic: z.string().min(1),
23
+ version: z.string().min(1).default("1"),
24
+ occuredAt: z
25
+ .string()
26
+ .datetime({ offset: true })
27
+ .default(() => new Date().toISOString()),
28
+ payload: z.unknown(),
29
+ metadata: eventMetadataSchema.default(() => ({
30
+ timestamp: new Date().toISOString(),
31
+ })),
32
+ });
33
+ export function createEventEnvelope(options) {
34
+ const envelope = eventEnvelopeSchema.parse({
35
+ topic: options.topic,
36
+ version: options.version,
37
+ payload: options.payload,
38
+ metadata: options.metadata,
39
+ });
40
+ return envelope;
41
+ }
42
+ //# sourceMappingURL=event-envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-envelope.js","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC;SACH,MAAM,EAAE;SACR,IAAI,EAAE;SACN,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC,CAAC;CACH,CAAC,CAAC;AAcH,MAAM,UAAU,mBAAmB,CAClC,OAA6C;IAE7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,OAAO,QAAmC,CAAC;AAC5C,CAAC"}
package/dist/events.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { EventEnvelope } from "@qnsp/events";
1
+ import type { EventEnvelope } from "./event-envelope.js";
2
2
  import type { StorageClientTelemetry, StorageClientTelemetryConfig } from "./observability.js";
3
3
  type DocumentSearchEvent = EventEnvelope<{
4
4
  documentId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EACX,sBAAsB,EACtB,4BAA4B,EAE5B,MAAM,oBAAoB,CAAC;AAG5B,KAAK,mBAAmB,GAAG,aAAa,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,KAAK,UAAU,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,YAAY,GAAG,aAAa,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,4BAA4B,CAAC;CAC3E;AAQD,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,mBAAmB;IAoBjC,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,YAAY,EAAE,CAAC;IAuG1B,OAAO,CAAC,oBAAoB;CAM5B"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EACX,sBAAsB,EACtB,4BAA4B,EAE5B,MAAM,oBAAoB,CAAC;AAG5B,KAAK,mBAAmB,GAAG,aAAa,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,KAAK,UAAU,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,YAAY,GAAG,aAAa,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,4BAA4B,CAAC;CAC3E;AAQD,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,mBAAmB;IAoBjC,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,YAAY,EAAE,CAAC;IAuG1B,OAAO,CAAC,oBAAoB;CAM5B"}
package/dist/events.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { performance } from "node:perf_hooks";
2
- import { createEventEnvelope } from "@qnsp/events";
2
+ import { createEventEnvelope } from "./event-envelope.js";
3
3
  import { createStorageClientTelemetry, isStorageClientTelemetry } from "./observability.js";
4
4
  export class StorageEventsClient {
5
5
  config;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AA6C5F,MAAM,OAAO,mBAAmB;IACd,MAAM,CAA8B;IACpC,SAAS,CAAgC;IACzC,aAAa,CAAS;IAEvC,YAAY,MAA2B;QACtC,IAAI,CAAC,MAAM,GAAG;YACb,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;SACrC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;YAChC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC;QAER,IAAI,CAAC;YACJ,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;QACxC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,KAAa,EACb,OAA4C;QAE5C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,4BAA4B,kBAAkB,CAAC,KAAK,CAAC,GACtF,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAClC,EAAE,CAAC;QACH,MAAM,OAAO,GAA2B;YACvC,MAAM,EAAE,kBAAkB;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,MAAM,GAAmB,IAAI,CAAC;QAClC,IAAI,UAA8B,CAAC;QACnC,IAAI,YAAgC,CAAC;QACrC,IAAI,aAAiC,CAAC;QACtC,MAAM,KAAK,GAAG,iCAAiC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACjC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,GAAG,OAAO,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;gBACrE,YAAY,GAAG,SAAS,CAAC;gBACzB,MAAM,IAAI,KAAK,CACd,uBAAuB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAC9E,CAAC;YACH,CAAC;YACD,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKpC,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,cAAc,GACnB,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnF,MAAM,kBAAkB,GACvB,cAAc,KAAK,SAAS;oBAC3B,CAAC,CAAC;wBACA,SAAS,EACR,OAAO,cAAc,CAAC,WAAW,CAAC,KAAK,QAAQ;4BAC9C,CAAC,CAAE,cAAc,CAAC,WAAW,CAAY;4BACzC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC5B,GAAG,CAAC,OAAO,cAAc,CAAC,eAAe,CAAC,KAAK,QAAQ;4BACtD,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,eAAe,CAAW,EAAE;4BAC9D,CAAC,CAAC,EAAE,CAAC;wBACN,GAAG,CAAC,OAAO,cAAc,CAAC,aAAa,CAAC,KAAK,QAAQ;4BACpD,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,aAAa,CAAW,EAAE;4BAC1D,CAAC,CAAC,EAAE,CAAC;wBACN,GAAG,CAAC,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,QAAQ;4BACjD,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAW,EAAE;4BACpD,CAAC,CAAC,EAAE,CAAC;qBACN;oBACF,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5C,OAAO,mBAAmB,CAAC;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,kBAAkB;iBAC5B,CAAiB,CAAC;YACpB,CAAC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,GAAG,OAAO,CAAC;YACjB,IAAI,CAAC,YAAY,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC7C,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3D,YAAY,GAAG,iBAAiB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;gBAAS,CAAC;YACV,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC7C,MAAM,KAAK,GAAgC;gBAC1C,SAAS,EAAE,eAAe,KAAK,GAAG;gBAClC,MAAM,EAAE,KAAK;gBACb,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,MAAM;gBACN,UAAU;gBACV,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpF,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAEO,oBAAoB,CAAC,KAAkC;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS/D,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,YAAY,CAAC;CAC9C;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,4BAA4B,GAClC,sBAAsB,CAwFxB;AAED,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,sBAAsB,GAAG,4BAA4B,GAC1D,KAAK,IAAI,sBAAsB,CAEjC"}
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA6C/D,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,YAAY,CAAC;CAC9C;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,4BAA4B,GAClC,sBAAsB,CAwFxB;AAED,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,sBAAsB,GAAG,4BAA4B,GAC1D,KAAK,IAAI,sBAAsB,CAEjC"}
@@ -1,5 +1,23 @@
1
1
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
2
- import { ConsoleMetricExporter, createCounter, createHistogram, createMeterProvider, PeriodicExportingMetricReader, } from "@qnsp/observability";
2
+ import { resourceFromAttributes } from "@opentelemetry/resources";
3
+ import { ConsoleMetricExporter, MeterProvider, PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics";
4
+ function createMeterProvider(options, readers = []) {
5
+ const attributes = {
6
+ "service.name": options.serviceName,
7
+ ...(options.serviceVersion ? { "service.version": options.serviceVersion } : {}),
8
+ "deployment.environment": options.environment ?? "development",
9
+ };
10
+ return new MeterProvider({
11
+ resource: resourceFromAttributes(attributes),
12
+ readers: [...readers],
13
+ });
14
+ }
15
+ function createCounter(provider, name, options) {
16
+ return provider.getMeter("qnsp").createCounter(name, options);
17
+ }
18
+ function createHistogram(provider, name, options) {
19
+ return provider.getMeter("qnsp").createHistogram(name, options);
20
+ }
3
21
  export function createStorageClientTelemetry(config) {
4
22
  const interval = config.metricsIntervalMs ?? 60_000;
5
23
  const timeout = config.metricsTimeoutMs ?? 15_000;
@@ -1 +1 @@
1
- {"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,40 +1,39 @@
1
1
  {
2
- "name": "@qnsp/storage-sdk",
3
- "version": "0.0.1",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "type": "module",
8
- "description": "TypeScript SDK client for the QNSP storage-service API.",
9
- "exports": {
10
- "./package.json": "./package.json",
11
- ".": {
12
- "types": "./dist/index.d.ts",
13
- "default": "./dist/index.js"
14
- }
15
- },
16
- "dependencies": {
17
- "@opentelemetry/api": "^1.9.0",
18
- "@opentelemetry/exporter-metrics-otlp-http": "^0.208.0",
19
- "@opentelemetry/sdk-metrics": "^2.2.0",
20
- "@qnsp/events": "^0.0.1",
21
- "@qnsp/observability": "^0.0.1",
22
- "undici": "^7.16.0",
23
- "zod": "^4.1.12"
24
- },
25
- "devDependencies": {
26
- "@types/node": "^22.13.14",
27
- "tsx": "^4.20.6",
28
- "vitest": "^4.0.10"
29
- },
30
- "engines": {
31
- "node": "24.12.0"
32
- },
33
- "scripts": {
34
- "build": "tsc --project tsconfig.build.json",
35
- "dev": "tsx watch src/index.ts",
36
- "lint": "biome check .",
37
- "test": "vitest run",
38
- "typecheck": "tsc --project tsconfig.json --noEmit"
39
- }
40
- }
2
+ "name": "@qnsp/storage-sdk",
3
+ "version": "0.0.2",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "type": "module",
8
+ "description": "TypeScript SDK client for the QNSP storage-service API.",
9
+ "exports": {
10
+ "./package.json": "./package.json",
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "scripts": {
17
+ "build": "tsc --project tsconfig.build.json",
18
+ "dev": "tsx watch src/index.ts",
19
+ "lint": "biome check .",
20
+ "test": "vitest run",
21
+ "typecheck": "tsc --project tsconfig.json --noEmit"
22
+ },
23
+ "dependencies": {
24
+ "@opentelemetry/api": "^1.9.0",
25
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.208.0",
26
+ "@opentelemetry/resources": "^2.0.0",
27
+ "@opentelemetry/sdk-metrics": "^2.2.0",
28
+ "undici": "^7.16.0",
29
+ "zod": "^4.1.12"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^22.13.14",
33
+ "tsx": "^4.20.6",
34
+ "vitest": "^4.0.10"
35
+ },
36
+ "engines": {
37
+ "node": "24.12.0"
38
+ }
39
+ }
@@ -0,0 +1,59 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { z } from "zod";
3
+
4
+ export const eventMetadataSchema = z.object({
5
+ correlationId: z.string().uuid().optional(),
6
+ causationId: z.string().uuid().optional(),
7
+ tenantId: z.string().optional(),
8
+ timestamp: z
9
+ .string()
10
+ .datetime({ offset: true })
11
+ .default(() => new Date().toISOString()),
12
+ requestId: z.string().optional(),
13
+ sourceService: z.string().optional(),
14
+ traceId: z.string().optional(),
15
+ spanId: z.string().optional(),
16
+ userId: z.string().optional(),
17
+ });
18
+
19
+ export const eventEnvelopeSchema = z.object({
20
+ id: z
21
+ .string()
22
+ .uuid()
23
+ .default(() => randomUUID()),
24
+ topic: z.string().min(1),
25
+ version: z.string().min(1).default("1"),
26
+ occuredAt: z
27
+ .string()
28
+ .datetime({ offset: true })
29
+ .default(() => new Date().toISOString()),
30
+ payload: z.unknown(),
31
+ metadata: eventMetadataSchema.default(() => ({
32
+ timestamp: new Date().toISOString(),
33
+ })),
34
+ });
35
+
36
+ export type EventMetadata = z.infer<typeof eventMetadataSchema>;
37
+ export type EventEnvelope<TPayload = unknown> = z.infer<typeof eventEnvelopeSchema> & {
38
+ payload: TPayload;
39
+ };
40
+
41
+ export interface CreateEventEnvelopeOptions<TPayload> {
42
+ readonly topic: string;
43
+ readonly version?: string;
44
+ readonly metadata?: EventMetadata;
45
+ readonly payload: TPayload;
46
+ }
47
+
48
+ export function createEventEnvelope<TPayload>(
49
+ options: CreateEventEnvelopeOptions<TPayload>,
50
+ ): EventEnvelope<TPayload> {
51
+ const envelope = eventEnvelopeSchema.parse({
52
+ topic: options.topic,
53
+ version: options.version,
54
+ payload: options.payload,
55
+ metadata: options.metadata,
56
+ });
57
+
58
+ return envelope as EventEnvelope<TPayload>;
59
+ }
package/src/events.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { performance } from "node:perf_hooks";
2
2
 
3
- import type { EventEnvelope } from "@qnsp/events";
4
- import { createEventEnvelope } from "@qnsp/events";
3
+ import type { EventEnvelope } from "./event-envelope.js";
4
+ import { createEventEnvelope } from "./event-envelope.js";
5
5
  import type {
6
6
  StorageClientTelemetry,
7
7
  StorageClientTelemetryConfig,
@@ -1,13 +1,50 @@
1
1
  import type { Attributes } from "@opentelemetry/api";
2
2
  import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
3
+ import { resourceFromAttributes } from "@opentelemetry/resources";
3
4
  import type { MetricReader } from "@opentelemetry/sdk-metrics";
4
5
  import {
5
6
  ConsoleMetricExporter,
6
- createCounter,
7
- createHistogram,
8
- createMeterProvider,
7
+ MeterProvider,
9
8
  PeriodicExportingMetricReader,
10
- } from "@qnsp/observability";
9
+ } from "@opentelemetry/sdk-metrics";
10
+
11
+ type TelemetryResourceOptions = {
12
+ readonly serviceName: string;
13
+ readonly serviceVersion?: string;
14
+ readonly environment?: string;
15
+ };
16
+
17
+ function createMeterProvider(
18
+ options: TelemetryResourceOptions,
19
+ readers: readonly MetricReader[] = [],
20
+ ): MeterProvider {
21
+ const attributes: Record<string, string | number | boolean> = {
22
+ "service.name": options.serviceName,
23
+ ...(options.serviceVersion ? { "service.version": options.serviceVersion } : {}),
24
+ "deployment.environment": options.environment ?? "development",
25
+ };
26
+
27
+ return new MeterProvider({
28
+ resource: resourceFromAttributes(attributes),
29
+ readers: [...readers],
30
+ });
31
+ }
32
+
33
+ function createCounter(
34
+ provider: MeterProvider,
35
+ name: string,
36
+ options?: Parameters<ReturnType<MeterProvider["getMeter"]>["createCounter"]>[1],
37
+ ) {
38
+ return provider.getMeter("qnsp").createCounter(name, options);
39
+ }
40
+
41
+ function createHistogram(
42
+ provider: MeterProvider,
43
+ name: string,
44
+ options?: Parameters<ReturnType<MeterProvider["getMeter"]>["createHistogram"]>[1],
45
+ ) {
46
+ return provider.getMeter("qnsp").createHistogram(name, options);
47
+ }
11
48
 
12
49
  export interface StorageClientTelemetryConfig {
13
50
  readonly serviceName: string;