@gigapay-dev/contracts 3.0.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/domains/orders/commands.d.ts +15 -4
  2. package/build/domains/orders/commands.d.ts.map +1 -1
  3. package/build/domains/orders/dtos.d.ts +7 -2
  4. package/build/domains/orders/dtos.d.ts.map +1 -1
  5. package/build/domains/orders/events.d.ts +1 -0
  6. package/build/domains/orders/events.d.ts.map +1 -1
  7. package/build/domains/orders/index.d.ts +25 -8
  8. package/build/domains/orders/index.d.ts.map +1 -1
  9. package/build/domains/orders/queries.d.ts +36 -12
  10. package/build/domains/orders/queries.d.ts.map +1 -1
  11. package/build/domains/payments/index.d.ts +48 -0
  12. package/build/domains/payments/index.d.ts.map +1 -1
  13. package/build/domains/payments/index.js +15 -1
  14. package/build/domains/payments/index.js.map +1 -1
  15. package/build/domains/products/commands.d.ts +38 -0
  16. package/build/domains/products/commands.d.ts.map +1 -1
  17. package/build/domains/products/commands.js +16 -1
  18. package/build/domains/products/commands.js.map +1 -1
  19. package/build/domains/products/dtos.d.ts +3 -0
  20. package/build/domains/products/dtos.d.ts.map +1 -1
  21. package/build/domains/products/index.d.ts +23 -0
  22. package/build/domains/products/index.d.ts.map +1 -1
  23. package/build/domains/products/queries.d.ts +14 -0
  24. package/build/domains/products/queries.d.ts.map +1 -1
  25. package/build/domains/stats/index.d.ts +15 -0
  26. package/build/domains/stats/index.d.ts.map +1 -1
  27. package/build/domains/telemetry/dtos.d.ts +26 -0
  28. package/build/domains/telemetry/dtos.d.ts.map +1 -0
  29. package/build/domains/telemetry/dtos.js +21 -0
  30. package/build/domains/telemetry/dtos.js.map +1 -0
  31. package/build/domains/telemetry/index.d.ts +74 -0
  32. package/build/domains/telemetry/index.d.ts.map +1 -0
  33. package/build/domains/telemetry/index.js +36 -0
  34. package/build/domains/telemetry/index.js.map +1 -0
  35. package/build/domains/telemetry/route-normalizer.d.ts +3 -0
  36. package/build/domains/telemetry/route-normalizer.d.ts.map +1 -0
  37. package/build/domains/telemetry/route-normalizer.js +44 -0
  38. package/build/domains/telemetry/route-normalizer.js.map +1 -0
  39. package/build/index.d.ts +104 -8
  40. package/build/index.d.ts.map +1 -1
  41. package/build/index.js +3 -0
  42. package/build/index.js.map +1 -1
  43. package/build/shared/money.d.ts +3 -2
  44. package/build/shared/money.d.ts.map +1 -1
  45. package/build/shared/money.js +4 -2
  46. package/build/shared/money.js.map +1 -1
  47. package/package.json +1 -1
@@ -10,6 +10,7 @@ export declare const ListProductsQuerySchema: z.ZodObject<{
10
10
  USD: "USD";
11
11
  RUB: "RUB";
12
12
  UAH: "UAH";
13
+ KZT: "KZT";
13
14
  }>>;
14
15
  }, z.core.$strip>;
15
16
  export declare const ListProductsEndpoint: {
@@ -26,6 +27,7 @@ export declare const ListProductsEndpoint: {
26
27
  USD: "USD";
27
28
  RUB: "RUB";
28
29
  UAH: "UAH";
30
+ KZT: "KZT";
29
31
  }>>;
30
32
  }, z.core.$strip>;
31
33
  readonly response: z.ZodObject<{
@@ -56,6 +58,7 @@ export declare const ListProductsEndpoint: {
56
58
  usd: z.ZodString;
57
59
  rub: z.ZodString;
58
60
  uah: z.ZodString;
61
+ kzt: z.ZodString;
59
62
  }, z.core.$strip>;
60
63
  variants: z.ZodArray<z.ZodObject<{
61
64
  id: z.ZodNumber;
@@ -66,6 +69,7 @@ export declare const ListProductsEndpoint: {
66
69
  usd: z.ZodString;
67
70
  rub: z.ZodString;
68
71
  uah: z.ZodString;
72
+ kzt: z.ZodString;
69
73
  }, z.core.$strip>;
70
74
  deliveryType: z.ZodEnum<{
71
75
  AUTOMATIC: "AUTOMATIC";
@@ -92,6 +96,7 @@ export declare const GetProductBySlugQuerySchema: z.ZodObject<{
92
96
  USD: "USD";
93
97
  RUB: "RUB";
94
98
  UAH: "UAH";
99
+ KZT: "KZT";
95
100
  }>>;
96
101
  }, z.core.$strip>;
97
102
  export declare const GetProductBySlugEndpoint: {
@@ -105,6 +110,7 @@ export declare const GetProductBySlugEndpoint: {
105
110
  USD: "USD";
106
111
  RUB: "RUB";
107
112
  UAH: "UAH";
113
+ KZT: "KZT";
108
114
  }>>;
109
115
  }, z.core.$strip>;
110
116
  readonly response: z.ZodObject<{
@@ -134,6 +140,7 @@ export declare const GetProductBySlugEndpoint: {
134
140
  usd: z.ZodString;
135
141
  rub: z.ZodString;
136
142
  uah: z.ZodString;
143
+ kzt: z.ZodString;
137
144
  }, z.core.$strip>;
138
145
  variants: z.ZodArray<z.ZodObject<{
139
146
  id: z.ZodNumber;
@@ -144,6 +151,7 @@ export declare const GetProductBySlugEndpoint: {
144
151
  usd: z.ZodString;
145
152
  rub: z.ZodString;
146
153
  uah: z.ZodString;
154
+ kzt: z.ZodString;
147
155
  }, z.core.$strip>;
148
156
  deliveryType: z.ZodEnum<{
149
157
  AUTOMATIC: "AUTOMATIC";
@@ -189,6 +197,7 @@ export declare const ProductQueries: {
189
197
  USD: "USD";
190
198
  RUB: "RUB";
191
199
  UAH: "UAH";
200
+ KZT: "KZT";
192
201
  }>>;
193
202
  }, z.core.$strip>;
194
203
  readonly response: z.ZodObject<{
@@ -219,6 +228,7 @@ export declare const ProductQueries: {
219
228
  usd: z.ZodString;
220
229
  rub: z.ZodString;
221
230
  uah: z.ZodString;
231
+ kzt: z.ZodString;
222
232
  }, z.core.$strip>;
223
233
  variants: z.ZodArray<z.ZodObject<{
224
234
  id: z.ZodNumber;
@@ -229,6 +239,7 @@ export declare const ProductQueries: {
229
239
  usd: z.ZodString;
230
240
  rub: z.ZodString;
231
241
  uah: z.ZodString;
242
+ kzt: z.ZodString;
232
243
  }, z.core.$strip>;
233
244
  deliveryType: z.ZodEnum<{
234
245
  AUTOMATIC: "AUTOMATIC";
@@ -261,6 +272,7 @@ export declare const ProductQueries: {
261
272
  USD: "USD";
262
273
  RUB: "RUB";
263
274
  UAH: "UAH";
275
+ KZT: "KZT";
264
276
  }>>;
265
277
  }, z.core.$strip>;
266
278
  readonly response: z.ZodObject<{
@@ -290,6 +302,7 @@ export declare const ProductQueries: {
290
302
  usd: z.ZodString;
291
303
  rub: z.ZodString;
292
304
  uah: z.ZodString;
305
+ kzt: z.ZodString;
293
306
  }, z.core.$strip>;
294
307
  variants: z.ZodArray<z.ZodObject<{
295
308
  id: z.ZodNumber;
@@ -300,6 +313,7 @@ export declare const ProductQueries: {
300
313
  usd: z.ZodString;
301
314
  rub: z.ZodString;
302
315
  uah: z.ZodString;
316
+ kzt: z.ZodString;
303
317
  }, z.core.$strip>;
304
318
  deliveryType: z.ZodEnum<{
305
319
  AUTOMATIC: "AUTOMATIC";
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/domains/products/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAMlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKI,CAAC;AAEtC,eAAO,MAAM,2BAA2B;;;;;;iBAAwD,CAAC;AACjG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMA,CAAC;AAEtC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAKC,CAAC;AAEtC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjB,CAAC"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/domains/products/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;iBAMlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKI,CAAC;AAEtC,eAAO,MAAM,2BAA2B;;;;;;;iBAAwD,CAAC;AACjG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMA,CAAC;AAEtC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAKC,CAAC;AAEtC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjB,CAAC"}
@@ -28,26 +28,31 @@ export declare const StatsOverviewResponseSchema: z.ZodObject<{
28
28
  usd: z.ZodString;
29
29
  rub: z.ZodString;
30
30
  uah: z.ZodString;
31
+ kzt: z.ZodString;
31
32
  }, z.core.$strip>;
32
33
  totalRevenue: z.ZodObject<{
33
34
  usd: z.ZodString;
34
35
  rub: z.ZodString;
35
36
  uah: z.ZodString;
37
+ kzt: z.ZodString;
36
38
  }, z.core.$strip>;
37
39
  acquiringFee: z.ZodObject<{
38
40
  usd: z.ZodString;
39
41
  rub: z.ZodString;
40
42
  uah: z.ZodString;
43
+ kzt: z.ZodString;
41
44
  }, z.core.$strip>;
42
45
  serviceFee: z.ZodObject<{
43
46
  usd: z.ZodString;
44
47
  rub: z.ZodString;
45
48
  uah: z.ZodString;
49
+ kzt: z.ZodString;
46
50
  }, z.core.$strip>;
47
51
  discountsGranted: z.ZodObject<{
48
52
  usd: z.ZodString;
49
53
  rub: z.ZodString;
50
54
  uah: z.ZodString;
55
+ kzt: z.ZodString;
51
56
  }, z.core.$strip>;
52
57
  aov: z.ZodString;
53
58
  }, z.core.$strip>;
@@ -98,26 +103,31 @@ export declare const GetStatsOverviewEndpoint: {
98
103
  usd: z.ZodString;
99
104
  rub: z.ZodString;
100
105
  uah: z.ZodString;
106
+ kzt: z.ZodString;
101
107
  }, z.core.$strip>;
102
108
  totalRevenue: z.ZodObject<{
103
109
  usd: z.ZodString;
104
110
  rub: z.ZodString;
105
111
  uah: z.ZodString;
112
+ kzt: z.ZodString;
106
113
  }, z.core.$strip>;
107
114
  acquiringFee: z.ZodObject<{
108
115
  usd: z.ZodString;
109
116
  rub: z.ZodString;
110
117
  uah: z.ZodString;
118
+ kzt: z.ZodString;
111
119
  }, z.core.$strip>;
112
120
  serviceFee: z.ZodObject<{
113
121
  usd: z.ZodString;
114
122
  rub: z.ZodString;
115
123
  uah: z.ZodString;
124
+ kzt: z.ZodString;
116
125
  }, z.core.$strip>;
117
126
  discountsGranted: z.ZodObject<{
118
127
  usd: z.ZodString;
119
128
  rub: z.ZodString;
120
129
  uah: z.ZodString;
130
+ kzt: z.ZodString;
121
131
  }, z.core.$strip>;
122
132
  aov: z.ZodString;
123
133
  }, z.core.$strip>;
@@ -197,26 +207,31 @@ export declare const StatsEndpoints: {
197
207
  usd: z.ZodString;
198
208
  rub: z.ZodString;
199
209
  uah: z.ZodString;
210
+ kzt: z.ZodString;
200
211
  }, z.core.$strip>;
201
212
  totalRevenue: z.ZodObject<{
202
213
  usd: z.ZodString;
203
214
  rub: z.ZodString;
204
215
  uah: z.ZodString;
216
+ kzt: z.ZodString;
205
217
  }, z.core.$strip>;
206
218
  acquiringFee: z.ZodObject<{
207
219
  usd: z.ZodString;
208
220
  rub: z.ZodString;
209
221
  uah: z.ZodString;
222
+ kzt: z.ZodString;
210
223
  }, z.core.$strip>;
211
224
  serviceFee: z.ZodObject<{
212
225
  usd: z.ZodString;
213
226
  rub: z.ZodString;
214
227
  uah: z.ZodString;
228
+ kzt: z.ZodString;
215
229
  }, z.core.$strip>;
216
230
  discountsGranted: z.ZodObject<{
217
231
  usd: z.ZodString;
218
232
  rub: z.ZodString;
219
233
  uah: z.ZodString;
234
+ kzt: z.ZodString;
220
235
  }, z.core.$strip>;
221
236
  aov: z.ZodString;
222
237
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/stats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;EAAqD,CAAC;AACpF,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;kBAiBzB,CAAC;AAEb,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOA,CAAC;AAEtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAOG,CAAC;AAEtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;CAOG,CAAC;AAEtC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/stats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,iBAAiB;;;;;;EAAqD,CAAC;AACpF,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;kBAiBzB,CAAC;AAEb,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOA,CAAC;AAEtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAOG,CAAC;AAEtC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;CAOG,CAAC;AAEtC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ export declare const WebVitalsPayloadSchema: z.ZodObject<{
3
+ service: z.ZodEnum<{
4
+ "gigapay-web": "gigapay-web";
5
+ "gigapay-admin": "gigapay-admin";
6
+ "gigapay-tma": "gigapay-tma";
7
+ }>;
8
+ env: z.ZodString;
9
+ version: z.ZodOptional<z.ZodString>;
10
+ route: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
11
+ metric: z.ZodEnum<{
12
+ LCP: "LCP";
13
+ CLS: "CLS";
14
+ INP: "INP";
15
+ FCP: "FCP";
16
+ TTFB: "TTFB";
17
+ }>;
18
+ value: z.ZodNumber;
19
+ rating: z.ZodEnum<{
20
+ good: "good";
21
+ "needs-improvement": "needs-improvement";
22
+ poor: "poor";
23
+ }>;
24
+ }, z.core.$strip>;
25
+ export type WebVitalsPayload = z.infer<typeof WebVitalsPayloadSchema>;
26
+ //# sourceMappingURL=dtos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dtos.d.ts","sourceRoot":"","sources":["../../../src/domains/telemetry/dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebVitalsPayloadSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const route_normalizer_1 = require("./route-normalizer");
6
+ exports.WebVitalsPayloadSchema = zod_1.z.object({
7
+ service: zod_1.z.enum(["gigapay-web", "gigapay-admin", "gigapay-tma"]),
8
+ env: zod_1.z.string().trim().min(1).max(32).regex(/^[a-z0-9_-]+$/i),
9
+ version: zod_1.z.string().trim().min(1).max(64).optional(),
10
+ route: zod_1.z
11
+ .string()
12
+ .trim()
13
+ .min(1)
14
+ .max(256)
15
+ .refine(route_normalizer_1.isSafeRelativeRoute, "route must be a relative path without query params")
16
+ .transform(route => (0, route_normalizer_1.normalizeRoutePath)(route)),
17
+ metric: zod_1.z.enum(["LCP", "CLS", "INP", "FCP", "TTFB"]),
18
+ value: zod_1.z.number().finite().nonnegative().max(60_000),
19
+ rating: zod_1.z.enum(["good", "needs-improvement", "poor"]),
20
+ });
21
+ //# sourceMappingURL=dtos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dtos.js","sourceRoot":"","sources":["../../../src/domains/telemetry/dtos.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,yDAA6E;AAEhE,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;IAChE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC7D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpD,KAAK,EAAE,OAAC;SACN,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,MAAM,CAAC,sCAAmB,EAAE,oDAAoD,CAAC;SACjF,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,qCAAkB,EAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;IACpD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+ export * from "./dtos";
3
+ export { isSafeRelativeRoute, normalizeRoutePath } from "./route-normalizer";
4
+ export declare const RecordWebVitalsEndpoint: {
5
+ readonly method: "POST";
6
+ readonly path: "/api/telemetry/web-vitals";
7
+ readonly request: z.ZodObject<{
8
+ service: z.ZodEnum<{
9
+ "gigapay-web": "gigapay-web";
10
+ "gigapay-admin": "gigapay-admin";
11
+ "gigapay-tma": "gigapay-tma";
12
+ }>;
13
+ env: z.ZodString;
14
+ version: z.ZodOptional<z.ZodString>;
15
+ route: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
16
+ metric: z.ZodEnum<{
17
+ LCP: "LCP";
18
+ CLS: "CLS";
19
+ INP: "INP";
20
+ FCP: "FCP";
21
+ TTFB: "TTFB";
22
+ }>;
23
+ value: z.ZodNumber;
24
+ rating: z.ZodEnum<{
25
+ good: "good";
26
+ "needs-improvement": "needs-improvement";
27
+ poor: "poor";
28
+ }>;
29
+ }, z.core.$strip>;
30
+ readonly response: z.ZodObject<{
31
+ ok: z.ZodLiteral<true>;
32
+ }, z.core.$strip>;
33
+ readonly rateLimit: {
34
+ readonly limit: 60;
35
+ readonly ttlSec: 60;
36
+ };
37
+ };
38
+ export declare const TelemetryEndpoints: {
39
+ readonly recordWebVitals: {
40
+ readonly method: "POST";
41
+ readonly path: "/api/telemetry/web-vitals";
42
+ readonly request: z.ZodObject<{
43
+ service: z.ZodEnum<{
44
+ "gigapay-web": "gigapay-web";
45
+ "gigapay-admin": "gigapay-admin";
46
+ "gigapay-tma": "gigapay-tma";
47
+ }>;
48
+ env: z.ZodString;
49
+ version: z.ZodOptional<z.ZodString>;
50
+ route: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
51
+ metric: z.ZodEnum<{
52
+ LCP: "LCP";
53
+ CLS: "CLS";
54
+ INP: "INP";
55
+ FCP: "FCP";
56
+ TTFB: "TTFB";
57
+ }>;
58
+ value: z.ZodNumber;
59
+ rating: z.ZodEnum<{
60
+ good: "good";
61
+ "needs-improvement": "needs-improvement";
62
+ poor: "poor";
63
+ }>;
64
+ }, z.core.$strip>;
65
+ readonly response: z.ZodObject<{
66
+ ok: z.ZodLiteral<true>;
67
+ }, z.core.$strip>;
68
+ readonly rateLimit: {
69
+ readonly limit: 60;
70
+ readonly ttlSec: 60;
71
+ };
72
+ };
73
+ };
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/telemetry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMC,CAAC;AAEtC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAErB,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TelemetryEndpoints = exports.RecordWebVitalsEndpoint = exports.normalizeRoutePath = exports.isSafeRelativeRoute = void 0;
18
+ const zod_1 = require("zod");
19
+ const common_1 = require("../../shared/common");
20
+ const dtos_1 = require("./dtos");
21
+ __exportStar(require("./dtos"), exports);
22
+ var route_normalizer_1 = require("./route-normalizer");
23
+ Object.defineProperty(exports, "isSafeRelativeRoute", { enumerable: true, get: function () { return route_normalizer_1.isSafeRelativeRoute; } });
24
+ Object.defineProperty(exports, "normalizeRoutePath", { enumerable: true, get: function () { return route_normalizer_1.normalizeRoutePath; } });
25
+ exports.RecordWebVitalsEndpoint = {
26
+ method: "POST",
27
+ path: "/api/telemetry/web-vitals",
28
+ request: dtos_1.WebVitalsPayloadSchema,
29
+ response: common_1.SuccessResponseSchema,
30
+ rateLimit: { limit: 60, ttlSec: 60 },
31
+ };
32
+ exports.TelemetryEndpoints = {
33
+ recordWebVitals: exports.RecordWebVitalsEndpoint,
34
+ };
35
+ void zod_1.z;
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/telemetry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6BAAwB;AAExB,gDAA4D;AAC5D,iCAAgD;AAEhD,yCAAuB;AACvB,uDAA6E;AAApE,uHAAA,mBAAmB,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AAEnC,QAAA,uBAAuB,GAAG;IACtC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,6BAAsB;IAC/B,QAAQ,EAAE,8BAAqB;IAC/B,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;CACA,CAAC;AAEzB,QAAA,kBAAkB,GAAG;IACjC,eAAe,EAAE,+BAAuB;CAC/B,CAAC;AAEX,KAAK,OAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function normalizeRoutePath(route: string | undefined, fallback?: string): string;
2
+ export declare function isSafeRelativeRoute(route: string): boolean;
3
+ //# sourceMappingURL=route-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-normalizer.d.ts","sourceRoot":"","sources":["../../../src/domains/telemetry/route-normalizer.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAa,GAAG,MAAM,CAkB3F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeRoutePath = normalizeRoutePath;
4
+ exports.isSafeRelativeRoute = isSafeRelativeRoute;
5
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
6
+ const HEX_RE = /^[0-9a-f]{16,}$/i;
7
+ const NUMERIC_RE = /^\d+$/;
8
+ const SLUG_WITH_ID_RE = /^[a-z0-9-]*\d[a-z0-9-]*$/i;
9
+ function normalizeRoutePath(route, fallback = "/unknown") {
10
+ if (!route)
11
+ return fallback;
12
+ const path = route.split("?")[0]?.split("#")[0] ?? "";
13
+ if (!path || /^https?:\/\//i.test(path))
14
+ return fallback;
15
+ const normalized = path.startsWith("/") ? path : `/${path}`;
16
+ const segments = normalized
17
+ .split("/")
18
+ .filter(Boolean)
19
+ .slice(0, 8)
20
+ .map(segment => {
21
+ if (segment.startsWith(":"))
22
+ return segment;
23
+ const decoded = safeDecode(segment);
24
+ if (isDynamicSegment(decoded))
25
+ return ":param";
26
+ return decoded.slice(0, 64);
27
+ });
28
+ return segments.length > 0 ? `/${segments.join("/")}` : "/";
29
+ }
30
+ function isSafeRelativeRoute(route) {
31
+ return route.startsWith("/") && !route.includes("?") && !route.includes("#") && !/^https?:\/\//i.test(route);
32
+ }
33
+ function isDynamicSegment(segment) {
34
+ return NUMERIC_RE.test(segment) || UUID_RE.test(segment) || HEX_RE.test(segment) || SLUG_WITH_ID_RE.test(segment);
35
+ }
36
+ function safeDecode(segment) {
37
+ try {
38
+ return decodeURIComponent(segment);
39
+ }
40
+ catch {
41
+ return segment;
42
+ }
43
+ }
44
+ //# sourceMappingURL=route-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-normalizer.js","sourceRoot":"","sources":["../../../src/domains/telemetry/route-normalizer.ts"],"names":[],"mappings":";;AAKA,gDAkBC;AAED,kDAEC;AA3BD,MAAM,OAAO,GAAG,4EAA4E,CAAC;AAC7F,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAEpD,SAAgB,kBAAkB,CAAC,KAAyB,EAAE,QAAQ,GAAG,UAAU;IAClF,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAG,UAAU;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,OAAO,CAAC,EAAE;QACd,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,gBAAgB,CAAC,OAAO,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEJ,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa;IAChD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACxC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAClC,IAAI,CAAC;QACJ,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,OAAO,CAAC;IAChB,CAAC;AACF,CAAC"}