@igniter-js/caller 0.1.3 → 0.1.4

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,100 @@
1
+ import * as _igniter_js_telemetry from '@igniter-js/telemetry';
2
+ import { z } from 'zod';
3
+
4
+ /**
5
+ * Telemetry events registry for `@igniter-js/caller`.
6
+ */
7
+ declare const IgniterCallerTelemetryEvents: _igniter_js_telemetry.IgniterTelemetryEventsDescriptor<"igniter.caller", {
8
+ request: {
9
+ "execute.started": z.ZodObject<{
10
+ "ctx.request.method": z.ZodString;
11
+ "ctx.request.url": z.ZodString;
12
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
13
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
14
+ }, z.core.$strip>;
15
+ } & {
16
+ "execute.success": z.ZodObject<{
17
+ "ctx.request.method": z.ZodString;
18
+ "ctx.request.url": z.ZodString;
19
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
20
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
21
+ "ctx.request.durationMs": z.ZodNumber;
22
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
23
+ "ctx.response.contentType": z.ZodOptional<z.ZodString>;
24
+ "ctx.cache.hit": z.ZodOptional<z.ZodBoolean>;
25
+ "ctx.request.fallback": z.ZodOptional<z.ZodBoolean>;
26
+ }, z.core.$strip>;
27
+ } & {
28
+ "execute.error": z.ZodObject<{
29
+ "ctx.request.method": z.ZodString;
30
+ "ctx.request.url": z.ZodString;
31
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
32
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
33
+ "ctx.request.durationMs": z.ZodOptional<z.ZodNumber>;
34
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
35
+ "ctx.error.code": z.ZodString;
36
+ "ctx.error.message": z.ZodString;
37
+ }, z.core.$strip>;
38
+ } & {
39
+ "timeout.error": z.ZodObject<{
40
+ "ctx.request.method": z.ZodString;
41
+ "ctx.request.url": z.ZodString;
42
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
43
+ "ctx.request.timeoutMs": z.ZodNumber;
44
+ }, z.core.$strip>;
45
+ };
46
+ } & {
47
+ cache: {
48
+ "read.hit": z.ZodObject<{
49
+ "ctx.request.method": z.ZodString;
50
+ "ctx.request.url": z.ZodString;
51
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
52
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
53
+ "ctx.cache.key": z.ZodString;
54
+ "ctx.cache.staleTime": z.ZodOptional<z.ZodNumber>;
55
+ }, z.core.$strip>;
56
+ };
57
+ } & {
58
+ retry: {
59
+ "attempt.started": z.ZodObject<{
60
+ "ctx.request.method": z.ZodString;
61
+ "ctx.request.url": z.ZodString;
62
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
63
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
64
+ "ctx.retry.attempt": z.ZodNumber;
65
+ "ctx.retry.maxAttempts": z.ZodNumber;
66
+ "ctx.retry.delayMs": z.ZodNumber;
67
+ }, z.core.$strip>;
68
+ };
69
+ } & {
70
+ validation: {
71
+ "request.error": z.ZodObject<{
72
+ "ctx.request.method": z.ZodString;
73
+ "ctx.request.url": z.ZodString;
74
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
75
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
76
+ "ctx.validation.type": z.ZodEnum<{
77
+ request: "request";
78
+ response: "response";
79
+ }>;
80
+ "ctx.validation.error": z.ZodString;
81
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
82
+ }, z.core.$strip>;
83
+ } & {
84
+ "response.error": z.ZodObject<{
85
+ "ctx.request.method": z.ZodString;
86
+ "ctx.request.url": z.ZodString;
87
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
88
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
89
+ "ctx.validation.type": z.ZodEnum<{
90
+ request: "request";
91
+ response: "response";
92
+ }>;
93
+ "ctx.validation.error": z.ZodString;
94
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strip>;
96
+ };
97
+ }>;
98
+ type IgniterCallerTelemetryEvents = typeof IgniterCallerTelemetryEvents.$Infer.registry;
99
+
100
+ export { IgniterCallerTelemetryEvents };
@@ -0,0 +1,100 @@
1
+ import * as _igniter_js_telemetry from '@igniter-js/telemetry';
2
+ import { z } from 'zod';
3
+
4
+ /**
5
+ * Telemetry events registry for `@igniter-js/caller`.
6
+ */
7
+ declare const IgniterCallerTelemetryEvents: _igniter_js_telemetry.IgniterTelemetryEventsDescriptor<"igniter.caller", {
8
+ request: {
9
+ "execute.started": z.ZodObject<{
10
+ "ctx.request.method": z.ZodString;
11
+ "ctx.request.url": z.ZodString;
12
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
13
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
14
+ }, z.core.$strip>;
15
+ } & {
16
+ "execute.success": z.ZodObject<{
17
+ "ctx.request.method": z.ZodString;
18
+ "ctx.request.url": z.ZodString;
19
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
20
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
21
+ "ctx.request.durationMs": z.ZodNumber;
22
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
23
+ "ctx.response.contentType": z.ZodOptional<z.ZodString>;
24
+ "ctx.cache.hit": z.ZodOptional<z.ZodBoolean>;
25
+ "ctx.request.fallback": z.ZodOptional<z.ZodBoolean>;
26
+ }, z.core.$strip>;
27
+ } & {
28
+ "execute.error": z.ZodObject<{
29
+ "ctx.request.method": z.ZodString;
30
+ "ctx.request.url": z.ZodString;
31
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
32
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
33
+ "ctx.request.durationMs": z.ZodOptional<z.ZodNumber>;
34
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
35
+ "ctx.error.code": z.ZodString;
36
+ "ctx.error.message": z.ZodString;
37
+ }, z.core.$strip>;
38
+ } & {
39
+ "timeout.error": z.ZodObject<{
40
+ "ctx.request.method": z.ZodString;
41
+ "ctx.request.url": z.ZodString;
42
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
43
+ "ctx.request.timeoutMs": z.ZodNumber;
44
+ }, z.core.$strip>;
45
+ };
46
+ } & {
47
+ cache: {
48
+ "read.hit": z.ZodObject<{
49
+ "ctx.request.method": z.ZodString;
50
+ "ctx.request.url": z.ZodString;
51
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
52
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
53
+ "ctx.cache.key": z.ZodString;
54
+ "ctx.cache.staleTime": z.ZodOptional<z.ZodNumber>;
55
+ }, z.core.$strip>;
56
+ };
57
+ } & {
58
+ retry: {
59
+ "attempt.started": z.ZodObject<{
60
+ "ctx.request.method": z.ZodString;
61
+ "ctx.request.url": z.ZodString;
62
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
63
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
64
+ "ctx.retry.attempt": z.ZodNumber;
65
+ "ctx.retry.maxAttempts": z.ZodNumber;
66
+ "ctx.retry.delayMs": z.ZodNumber;
67
+ }, z.core.$strip>;
68
+ };
69
+ } & {
70
+ validation: {
71
+ "request.error": z.ZodObject<{
72
+ "ctx.request.method": z.ZodString;
73
+ "ctx.request.url": z.ZodString;
74
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
75
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
76
+ "ctx.validation.type": z.ZodEnum<{
77
+ request: "request";
78
+ response: "response";
79
+ }>;
80
+ "ctx.validation.error": z.ZodString;
81
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
82
+ }, z.core.$strip>;
83
+ } & {
84
+ "response.error": z.ZodObject<{
85
+ "ctx.request.method": z.ZodString;
86
+ "ctx.request.url": z.ZodString;
87
+ "ctx.request.baseUrl": z.ZodOptional<z.ZodString>;
88
+ "ctx.request.timeoutMs": z.ZodOptional<z.ZodNumber>;
89
+ "ctx.validation.type": z.ZodEnum<{
90
+ request: "request";
91
+ response: "response";
92
+ }>;
93
+ "ctx.validation.error": z.ZodString;
94
+ "ctx.response.status": z.ZodOptional<z.ZodNumber>;
95
+ }, z.core.$strip>;
96
+ };
97
+ }>;
98
+ type IgniterCallerTelemetryEvents = typeof IgniterCallerTelemetryEvents.$Infer.registry;
99
+
100
+ export { IgniterCallerTelemetryEvents };
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var telemetry = require('@igniter-js/telemetry');
4
+ var zod = require('zod');
5
+
6
+ // src/telemetry/index.ts
7
+ var RequestBaseSchema = zod.z.object({
8
+ "ctx.request.method": zod.z.string(),
9
+ "ctx.request.url": zod.z.string(),
10
+ "ctx.request.baseUrl": zod.z.string().optional(),
11
+ "ctx.request.timeoutMs": zod.z.number().optional()
12
+ });
13
+ var RequestSuccessSchema = RequestBaseSchema.extend({
14
+ "ctx.request.durationMs": zod.z.number(),
15
+ "ctx.response.status": zod.z.number().optional(),
16
+ "ctx.response.contentType": zod.z.string().optional(),
17
+ "ctx.cache.hit": zod.z.boolean().optional(),
18
+ "ctx.request.fallback": zod.z.boolean().optional()
19
+ });
20
+ var RequestErrorSchema = RequestBaseSchema.extend({
21
+ "ctx.request.durationMs": zod.z.number().optional(),
22
+ "ctx.response.status": zod.z.number().optional(),
23
+ "ctx.error.code": zod.z.string(),
24
+ "ctx.error.message": zod.z.string()
25
+ });
26
+ var CacheHitSchema = RequestBaseSchema.extend({
27
+ "ctx.cache.key": zod.z.string(),
28
+ "ctx.cache.staleTime": zod.z.number().optional()
29
+ });
30
+ var RetryAttemptSchema = RequestBaseSchema.extend({
31
+ "ctx.retry.attempt": zod.z.number(),
32
+ "ctx.retry.maxAttempts": zod.z.number(),
33
+ "ctx.retry.delayMs": zod.z.number()
34
+ });
35
+ var ValidationErrorSchema = RequestBaseSchema.extend({
36
+ "ctx.validation.type": zod.z.enum(["request", "response"]),
37
+ "ctx.validation.error": zod.z.string(),
38
+ "ctx.response.status": zod.z.number().optional()
39
+ });
40
+ var IgniterCallerTelemetryEvents = telemetry.IgniterTelemetryEvents.namespace(
41
+ "igniter.caller"
42
+ ).group(
43
+ "request",
44
+ (g) => g.event("execute.started", RequestBaseSchema).event("execute.success", RequestSuccessSchema).event("execute.error", RequestErrorSchema).event("timeout.error", RequestBaseSchema.extend({
45
+ "ctx.request.timeoutMs": zod.z.number()
46
+ }))
47
+ ).group("cache", (g) => g.event("read.hit", CacheHitSchema)).group("retry", (g) => g.event("attempt.started", RetryAttemptSchema)).group(
48
+ "validation",
49
+ (g) => g.event("request.error", ValidationErrorSchema).event("response.error", ValidationErrorSchema)
50
+ ).build();
51
+
52
+ exports.IgniterCallerTelemetryEvents = IgniterCallerTelemetryEvents;
53
+ //# sourceMappingURL=index.js.map
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/index.ts"],"names":["z","IgniterTelemetryEvents"],"mappings":";;;;;;AAeA,IAAM,iBAAA,GAAoBA,MAAE,MAAA,CAAO;AAAA,EACjC,oBAAA,EAAsBA,MAAE,MAAA,EAAO;AAAA,EAC/B,iBAAA,EAAmBA,MAAE,MAAA,EAAO;AAAA,EAC5B,qBAAA,EAAuBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,uBAAA,EAAyBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtC,CAAC,CAAA;AAKD,IAAM,oBAAA,GAAuB,kBAAkB,MAAA,CAAO;AAAA,EACpD,wBAAA,EAA0BA,MAAE,MAAA,EAAO;AAAA,EACnC,qBAAA,EAAuBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,0BAAA,EAA4BA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChD,eAAA,EAAiBA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACtC,sBAAA,EAAwBA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACtC,CAAC,CAAA;AAKD,IAAM,kBAAA,GAAqB,kBAAkB,MAAA,CAAO;AAAA,EAClD,wBAAA,EAA0BA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9C,qBAAA,EAAuBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,gBAAA,EAAkBA,MAAE,MAAA,EAAO;AAAA,EAC3B,mBAAA,EAAqBA,MAAE,MAAA;AACzB,CAAC,CAAA;AAKD,IAAM,cAAA,GAAiB,kBAAkB,MAAA,CAAO;AAAA,EAC9C,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,EAC1B,qBAAA,EAAuBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpC,CAAC,CAAA;AAKD,IAAM,kBAAA,GAAqB,kBAAkB,MAAA,CAAO;AAAA,EAClD,mBAAA,EAAqBA,MAAE,MAAA,EAAO;AAAA,EAC9B,uBAAA,EAAyBA,MAAE,MAAA,EAAO;AAAA,EAClC,mBAAA,EAAqBA,MAAE,MAAA;AACzB,CAAC,CAAA;AAKD,IAAM,qBAAA,GAAwB,kBAAkB,MAAA,CAAO;AAAA,EACrD,uBAAuBA,KAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,UAAU,CAAC,CAAA;AAAA,EACrD,sBAAA,EAAwBA,MAAE,MAAA,EAAO;AAAA,EACjC,qBAAA,EAAuBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpC,CAAC,CAAA;AAKM,IAAM,+BAA+BC,gCAAA,CAAuB,SAAA;AAAA,EACjE;AACF,CAAA,CAIG,KAAA;AAAA,EAAM,SAAA;AAAA,EAAW,CAAC,CAAA,KACjB,CAAA,CACG,MAAM,iBAAA,EAAmB,iBAAiB,EAC1C,KAAA,CAAM,iBAAA,EAAmB,oBAAoB,CAAA,CAC7C,MAAM,eAAA,EAAiB,kBAAkB,EACzC,KAAA,CAAM,eAAA,EAAiB,kBAAkB,MAAA,CAAO;AAAA,IAC/C,uBAAA,EAAyBD,MAAE,MAAA;AAAO,GACnC,CAAC;AACN,CAAA,CAIC,MAAM,OAAA,EAAS,CAAC,MAAM,CAAA,CAAE,KAAA,CAAM,YAAY,cAAc,CAAC,EAIzD,KAAA,CAAM,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,iBAAA,EAAmB,kBAAkB,CAAC,CAAA,CAIpE,KAAA;AAAA,EAAM,YAAA;AAAA,EAAc,CAAC,MACpB,CAAA,CACG,KAAA,CAAM,iBAAiB,qBAAqB,CAAA,CAC5C,KAAA,CAAM,gBAAA,EAAkB,qBAAqB;AAClD,CAAA,CACC,KAAA","file":"index.js","sourcesContent":["/**\n * @fileoverview Telemetry events for @igniter-js/caller\n * @module @igniter-js/caller/telemetry\n *\n * @description\n * Defines all telemetry events for request execution, caching, retry, and validation.\n * Events follow the `igniter.caller.<group>.<event>` convention.\n */\n\nimport { IgniterTelemetryEvents } from \"@igniter-js/telemetry\";\nimport { z } from \"zod\";\n\n/**\n * Base attributes for request-level telemetry.\n */\nconst RequestBaseSchema = z.object({\n \"ctx.request.method\": z.string(),\n \"ctx.request.url\": z.string(),\n \"ctx.request.baseUrl\": z.string().optional(),\n \"ctx.request.timeoutMs\": z.number().optional(),\n});\n\n/**\n * Attributes for successful request completion.\n */\nconst RequestSuccessSchema = RequestBaseSchema.extend({\n \"ctx.request.durationMs\": z.number(),\n \"ctx.response.status\": z.number().optional(),\n \"ctx.response.contentType\": z.string().optional(),\n \"ctx.cache.hit\": z.boolean().optional(),\n \"ctx.request.fallback\": z.boolean().optional(),\n});\n\n/**\n * Attributes for failed request completion.\n */\nconst RequestErrorSchema = RequestBaseSchema.extend({\n \"ctx.request.durationMs\": z.number().optional(),\n \"ctx.response.status\": z.number().optional(),\n \"ctx.error.code\": z.string(),\n \"ctx.error.message\": z.string(),\n});\n\n/**\n * Attributes for cache hits.\n */\nconst CacheHitSchema = RequestBaseSchema.extend({\n \"ctx.cache.key\": z.string(),\n \"ctx.cache.staleTime\": z.number().optional(),\n});\n\n/**\n * Attributes for retry attempts.\n */\nconst RetryAttemptSchema = RequestBaseSchema.extend({\n \"ctx.retry.attempt\": z.number(),\n \"ctx.retry.maxAttempts\": z.number(),\n \"ctx.retry.delayMs\": z.number(),\n});\n\n/**\n * Attributes for validation errors.\n */\nconst ValidationErrorSchema = RequestBaseSchema.extend({\n \"ctx.validation.type\": z.enum([\"request\", \"response\"]),\n \"ctx.validation.error\": z.string(),\n \"ctx.response.status\": z.number().optional(),\n});\n\n/**\n * Telemetry events registry for `@igniter-js/caller`.\n */\nexport const IgniterCallerTelemetryEvents = IgniterTelemetryEvents.namespace(\n \"igniter.caller\",\n)\n // ============================================================================\n // REQUEST EVENTS\n // ============================================================================\n .group(\"request\", (g) =>\n g\n .event(\"execute.started\", RequestBaseSchema)\n .event(\"execute.success\", RequestSuccessSchema)\n .event(\"execute.error\", RequestErrorSchema)\n .event(\"timeout.error\", RequestBaseSchema.extend({\n \"ctx.request.timeoutMs\": z.number(),\n })),\n )\n // ============================================================================\n // CACHE EVENTS\n // ============================================================================\n .group(\"cache\", (g) => g.event(\"read.hit\", CacheHitSchema))\n // ============================================================================\n // RETRY EVENTS\n // ============================================================================\n .group(\"retry\", (g) => g.event(\"attempt.started\", RetryAttemptSchema))\n // ============================================================================\n // VALIDATION EVENTS\n // ============================================================================\n .group(\"validation\", (g) =>\n g\n .event(\"request.error\", ValidationErrorSchema)\n .event(\"response.error\", ValidationErrorSchema),\n )\n .build();\n\nexport type IgniterCallerTelemetryEvents =\n typeof IgniterCallerTelemetryEvents.$Infer.registry;\n"]}
@@ -0,0 +1,52 @@
1
+ import { IgniterTelemetryEvents } from '@igniter-js/telemetry';
2
+ import { z } from 'zod';
3
+
4
+ // src/telemetry/index.ts
5
+ var RequestBaseSchema = z.object({
6
+ "ctx.request.method": z.string(),
7
+ "ctx.request.url": z.string(),
8
+ "ctx.request.baseUrl": z.string().optional(),
9
+ "ctx.request.timeoutMs": z.number().optional()
10
+ });
11
+ var RequestSuccessSchema = RequestBaseSchema.extend({
12
+ "ctx.request.durationMs": z.number(),
13
+ "ctx.response.status": z.number().optional(),
14
+ "ctx.response.contentType": z.string().optional(),
15
+ "ctx.cache.hit": z.boolean().optional(),
16
+ "ctx.request.fallback": z.boolean().optional()
17
+ });
18
+ var RequestErrorSchema = RequestBaseSchema.extend({
19
+ "ctx.request.durationMs": z.number().optional(),
20
+ "ctx.response.status": z.number().optional(),
21
+ "ctx.error.code": z.string(),
22
+ "ctx.error.message": z.string()
23
+ });
24
+ var CacheHitSchema = RequestBaseSchema.extend({
25
+ "ctx.cache.key": z.string(),
26
+ "ctx.cache.staleTime": z.number().optional()
27
+ });
28
+ var RetryAttemptSchema = RequestBaseSchema.extend({
29
+ "ctx.retry.attempt": z.number(),
30
+ "ctx.retry.maxAttempts": z.number(),
31
+ "ctx.retry.delayMs": z.number()
32
+ });
33
+ var ValidationErrorSchema = RequestBaseSchema.extend({
34
+ "ctx.validation.type": z.enum(["request", "response"]),
35
+ "ctx.validation.error": z.string(),
36
+ "ctx.response.status": z.number().optional()
37
+ });
38
+ var IgniterCallerTelemetryEvents = IgniterTelemetryEvents.namespace(
39
+ "igniter.caller"
40
+ ).group(
41
+ "request",
42
+ (g) => g.event("execute.started", RequestBaseSchema).event("execute.success", RequestSuccessSchema).event("execute.error", RequestErrorSchema).event("timeout.error", RequestBaseSchema.extend({
43
+ "ctx.request.timeoutMs": z.number()
44
+ }))
45
+ ).group("cache", (g) => g.event("read.hit", CacheHitSchema)).group("retry", (g) => g.event("attempt.started", RetryAttemptSchema)).group(
46
+ "validation",
47
+ (g) => g.event("request.error", ValidationErrorSchema).event("response.error", ValidationErrorSchema)
48
+ ).build();
49
+
50
+ export { IgniterCallerTelemetryEvents };
51
+ //# sourceMappingURL=index.mjs.map
52
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/index.ts"],"names":[],"mappings":";;;;AAeA,IAAM,iBAAA,GAAoB,EAAE,MAAA,CAAO;AAAA,EACjC,oBAAA,EAAsB,EAAE,MAAA,EAAO;AAAA,EAC/B,iBAAA,EAAmB,EAAE,MAAA,EAAO;AAAA,EAC5B,qBAAA,EAAuB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,uBAAA,EAAyB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtC,CAAC,CAAA;AAKD,IAAM,oBAAA,GAAuB,kBAAkB,MAAA,CAAO;AAAA,EACpD,wBAAA,EAA0B,EAAE,MAAA,EAAO;AAAA,EACnC,qBAAA,EAAuB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,0BAAA,EAA4B,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChD,eAAA,EAAiB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACtC,sBAAA,EAAwB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACtC,CAAC,CAAA;AAKD,IAAM,kBAAA,GAAqB,kBAAkB,MAAA,CAAO;AAAA,EAClD,wBAAA,EAA0B,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9C,qBAAA,EAAuB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3C,gBAAA,EAAkB,EAAE,MAAA,EAAO;AAAA,EAC3B,mBAAA,EAAqB,EAAE,MAAA;AACzB,CAAC,CAAA;AAKD,IAAM,cAAA,GAAiB,kBAAkB,MAAA,CAAO;AAAA,EAC9C,eAAA,EAAiB,EAAE,MAAA,EAAO;AAAA,EAC1B,qBAAA,EAAuB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpC,CAAC,CAAA;AAKD,IAAM,kBAAA,GAAqB,kBAAkB,MAAA,CAAO;AAAA,EAClD,mBAAA,EAAqB,EAAE,MAAA,EAAO;AAAA,EAC9B,uBAAA,EAAyB,EAAE,MAAA,EAAO;AAAA,EAClC,mBAAA,EAAqB,EAAE,MAAA;AACzB,CAAC,CAAA;AAKD,IAAM,qBAAA,GAAwB,kBAAkB,MAAA,CAAO;AAAA,EACrD,uBAAuB,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,UAAU,CAAC,CAAA;AAAA,EACrD,sBAAA,EAAwB,EAAE,MAAA,EAAO;AAAA,EACjC,qBAAA,EAAuB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpC,CAAC,CAAA;AAKM,IAAM,+BAA+B,sBAAA,CAAuB,SAAA;AAAA,EACjE;AACF,CAAA,CAIG,KAAA;AAAA,EAAM,SAAA;AAAA,EAAW,CAAC,CAAA,KACjB,CAAA,CACG,MAAM,iBAAA,EAAmB,iBAAiB,EAC1C,KAAA,CAAM,iBAAA,EAAmB,oBAAoB,CAAA,CAC7C,MAAM,eAAA,EAAiB,kBAAkB,EACzC,KAAA,CAAM,eAAA,EAAiB,kBAAkB,MAAA,CAAO;AAAA,IAC/C,uBAAA,EAAyB,EAAE,MAAA;AAAO,GACnC,CAAC;AACN,CAAA,CAIC,MAAM,OAAA,EAAS,CAAC,MAAM,CAAA,CAAE,KAAA,CAAM,YAAY,cAAc,CAAC,EAIzD,KAAA,CAAM,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,iBAAA,EAAmB,kBAAkB,CAAC,CAAA,CAIpE,KAAA;AAAA,EAAM,YAAA;AAAA,EAAc,CAAC,MACpB,CAAA,CACG,KAAA,CAAM,iBAAiB,qBAAqB,CAAA,CAC5C,KAAA,CAAM,gBAAA,EAAkB,qBAAqB;AAClD,CAAA,CACC,KAAA","file":"index.mjs","sourcesContent":["/**\n * @fileoverview Telemetry events for @igniter-js/caller\n * @module @igniter-js/caller/telemetry\n *\n * @description\n * Defines all telemetry events for request execution, caching, retry, and validation.\n * Events follow the `igniter.caller.<group>.<event>` convention.\n */\n\nimport { IgniterTelemetryEvents } from \"@igniter-js/telemetry\";\nimport { z } from \"zod\";\n\n/**\n * Base attributes for request-level telemetry.\n */\nconst RequestBaseSchema = z.object({\n \"ctx.request.method\": z.string(),\n \"ctx.request.url\": z.string(),\n \"ctx.request.baseUrl\": z.string().optional(),\n \"ctx.request.timeoutMs\": z.number().optional(),\n});\n\n/**\n * Attributes for successful request completion.\n */\nconst RequestSuccessSchema = RequestBaseSchema.extend({\n \"ctx.request.durationMs\": z.number(),\n \"ctx.response.status\": z.number().optional(),\n \"ctx.response.contentType\": z.string().optional(),\n \"ctx.cache.hit\": z.boolean().optional(),\n \"ctx.request.fallback\": z.boolean().optional(),\n});\n\n/**\n * Attributes for failed request completion.\n */\nconst RequestErrorSchema = RequestBaseSchema.extend({\n \"ctx.request.durationMs\": z.number().optional(),\n \"ctx.response.status\": z.number().optional(),\n \"ctx.error.code\": z.string(),\n \"ctx.error.message\": z.string(),\n});\n\n/**\n * Attributes for cache hits.\n */\nconst CacheHitSchema = RequestBaseSchema.extend({\n \"ctx.cache.key\": z.string(),\n \"ctx.cache.staleTime\": z.number().optional(),\n});\n\n/**\n * Attributes for retry attempts.\n */\nconst RetryAttemptSchema = RequestBaseSchema.extend({\n \"ctx.retry.attempt\": z.number(),\n \"ctx.retry.maxAttempts\": z.number(),\n \"ctx.retry.delayMs\": z.number(),\n});\n\n/**\n * Attributes for validation errors.\n */\nconst ValidationErrorSchema = RequestBaseSchema.extend({\n \"ctx.validation.type\": z.enum([\"request\", \"response\"]),\n \"ctx.validation.error\": z.string(),\n \"ctx.response.status\": z.number().optional(),\n});\n\n/**\n * Telemetry events registry for `@igniter-js/caller`.\n */\nexport const IgniterCallerTelemetryEvents = IgniterTelemetryEvents.namespace(\n \"igniter.caller\",\n)\n // ============================================================================\n // REQUEST EVENTS\n // ============================================================================\n .group(\"request\", (g) =>\n g\n .event(\"execute.started\", RequestBaseSchema)\n .event(\"execute.success\", RequestSuccessSchema)\n .event(\"execute.error\", RequestErrorSchema)\n .event(\"timeout.error\", RequestBaseSchema.extend({\n \"ctx.request.timeoutMs\": z.number(),\n })),\n )\n // ============================================================================\n // CACHE EVENTS\n // ============================================================================\n .group(\"cache\", (g) => g.event(\"read.hit\", CacheHitSchema))\n // ============================================================================\n // RETRY EVENTS\n // ============================================================================\n .group(\"retry\", (g) => g.event(\"attempt.started\", RetryAttemptSchema))\n // ============================================================================\n // VALIDATION EVENTS\n // ============================================================================\n .group(\"validation\", (g) =>\n g\n .event(\"request.error\", ValidationErrorSchema)\n .event(\"response.error\", ValidationErrorSchema),\n )\n .build();\n\nexport type IgniterCallerTelemetryEvents =\n typeof IgniterCallerTelemetryEvents.$Infer.registry;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igniter-js/caller",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Type-safe HTTP client for Igniter.js with interceptors, retries, caching, and StandardSchema validation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,8 +14,18 @@
14
14
  "exports": {
15
15
  ".": {
16
16
  "types": "./dist/index.d.ts",
17
- "import": "./dist/index.js",
17
+ "import": "./dist/index.mjs",
18
18
  "require": "./dist/index.js"
19
+ },
20
+ "./telemetry": {
21
+ "types": "./dist/telemetry/index.d.ts",
22
+ "import": "./dist/telemetry/index.mjs",
23
+ "require": "./dist/telemetry/index.js"
24
+ },
25
+ "./adapters": {
26
+ "types": "./dist/adapters/index.d.ts",
27
+ "import": "./dist/adapters/index.mjs",
28
+ "require": "./dist/adapters/index.js"
19
29
  }
20
30
  },
21
31
  "scripts": {
@@ -52,17 +62,27 @@
52
62
  "url": "https://github.com/felipebarcelospro/igniter-js/issues"
53
63
  },
54
64
  "homepage": "https://igniterjs.com",
65
+ "dependencies": {
66
+ "@igniter-js/telemetry": ">=0.1.12"
67
+ },
55
68
  "devDependencies": {
56
69
  "@igniter-js/core": "*",
70
+ "@igniter-js/telemetry": "*",
57
71
  "@types/node": "^22.7.5",
58
72
  "tsup": "^8.3.0",
59
73
  "typescript": "^5.6.3",
60
74
  "vitest": "^2.1.4",
61
- "zod": "^3.23.8"
75
+ "zod": "^4.2.1"
62
76
  },
63
77
  "peerDependencies": {
64
78
  "@igniter-js/core": "*",
65
- "zod": "^3.0.0"
79
+ "@igniter-js/telemetry": ">=0.1.12",
80
+ "zod": ">=4.2.1"
81
+ },
82
+ "peerDependenciesMeta": {
83
+ "zod": {
84
+ "optional": true
85
+ }
66
86
  },
67
87
  "publishConfig": {
68
88
  "access": "public"