@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.
- package/build/domains/orders/commands.d.ts +15 -4
- package/build/domains/orders/commands.d.ts.map +1 -1
- package/build/domains/orders/dtos.d.ts +7 -2
- package/build/domains/orders/dtos.d.ts.map +1 -1
- package/build/domains/orders/events.d.ts +1 -0
- package/build/domains/orders/events.d.ts.map +1 -1
- package/build/domains/orders/index.d.ts +25 -8
- package/build/domains/orders/index.d.ts.map +1 -1
- package/build/domains/orders/queries.d.ts +36 -12
- package/build/domains/orders/queries.d.ts.map +1 -1
- package/build/domains/payments/index.d.ts +48 -0
- package/build/domains/payments/index.d.ts.map +1 -1
- package/build/domains/payments/index.js +15 -1
- package/build/domains/payments/index.js.map +1 -1
- package/build/domains/products/commands.d.ts +38 -0
- package/build/domains/products/commands.d.ts.map +1 -1
- package/build/domains/products/commands.js +16 -1
- package/build/domains/products/commands.js.map +1 -1
- package/build/domains/products/dtos.d.ts +3 -0
- package/build/domains/products/dtos.d.ts.map +1 -1
- package/build/domains/products/index.d.ts +23 -0
- package/build/domains/products/index.d.ts.map +1 -1
- package/build/domains/products/queries.d.ts +14 -0
- package/build/domains/products/queries.d.ts.map +1 -1
- package/build/domains/stats/index.d.ts +15 -0
- package/build/domains/stats/index.d.ts.map +1 -1
- package/build/domains/telemetry/dtos.d.ts +26 -0
- package/build/domains/telemetry/dtos.d.ts.map +1 -0
- package/build/domains/telemetry/dtos.js +21 -0
- package/build/domains/telemetry/dtos.js.map +1 -0
- package/build/domains/telemetry/index.d.ts +74 -0
- package/build/domains/telemetry/index.d.ts.map +1 -0
- package/build/domains/telemetry/index.js +36 -0
- package/build/domains/telemetry/index.js.map +1 -0
- package/build/domains/telemetry/route-normalizer.d.ts +3 -0
- package/build/domains/telemetry/route-normalizer.d.ts.map +1 -0
- package/build/domains/telemetry/route-normalizer.js +44 -0
- package/build/domains/telemetry/route-normalizer.js.map +1 -0
- package/build/index.d.ts +104 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -0
- package/build/index.js.map +1 -1
- package/build/shared/money.d.ts +3 -2
- package/build/shared/money.d.ts.map +1 -1
- package/build/shared/money.js +4 -2
- package/build/shared/money.js.map +1 -1
- 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
|
|
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
|
|
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 @@
|
|
|
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"}
|