@remnawave/backend-contract 2.1.80 → 2.1.82

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.
@@ -11,5 +11,8 @@ export declare const SYSTEM_ROUTES: {
11
11
  readonly ENCRYPT_HAPP_CRYPTO_LINK: "tools/happ/encrypt";
12
12
  };
13
13
  readonly HEALTH: "health";
14
+ readonly TESTERS: {
15
+ readonly SRR_MATCHER: "testers/srr-matcher";
16
+ };
14
17
  };
15
18
  //# sourceMappingURL=system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYhB,CAAC"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAehB,CAAC"}
@@ -14,4 +14,7 @@ exports.SYSTEM_ROUTES = {
14
14
  ENCRYPT_HAPP_CRYPTO_LINK: 'tools/happ/encrypt',
15
15
  },
16
16
  HEALTH: 'health',
17
+ TESTERS: {
18
+ SRR_MATCHER: 'testers/srr-matcher',
19
+ },
17
20
  };
@@ -118,6 +118,9 @@ export declare const REST_API: {
118
118
  readonly GENERATE_X25519: "/api/system/tools/x25519/generate";
119
119
  readonly ENCRYPT_HAPP_CRYPTO_LINK: "/api/system/tools/happ/encrypt";
120
120
  };
121
+ readonly TESTERS: {
122
+ readonly SRR_MATCHER: "/api/system/testers/srr-matcher";
123
+ };
121
124
  };
122
125
  readonly SUBSCRIPTION_TEMPLATE: {
123
126
  readonly GET: (templateType: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,WAAW,EAAG,SAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;gCAcE,MAAM;;;;;;;;;qCAYD,MAAM;;gCAGX,MAAM;;oCAIF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;;;;;iDAUM,MAAM;;;;;;;;gCAWvB,MAAM;qCAGD,MAAM;0CAED,MAAM;sDAEM,MAAM;;qCAMvB,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;6CAOV,MAAM;0CAIT,MAAM;2DAIW,MAAM;+CAIlB,MAAM;oCAIjB,MAAM;gCAIV,MAAM;;;;;;;;;;;;;;;gDAmBU,MAAM;;;;;;;kCAWpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAgCD,MAAM;;;;;;;;;;mDAaQ,MAAM;;;;;;;;0CAWf,MAAM;kCAId,MAAM;6CAIK,MAAM;iDAIF,MAAM;;;;;;;qCAUlB,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;0CAII,MAAM;;uCAKT,MAAM;0CAEH,MAAM;;;;;;;yCASP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;;;;;;;;;;;CAanC,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,WAAW,EAAG,SAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;gCAcE,MAAM;;;;;;;;;qCAYD,MAAM;;gCAGX,MAAM;;oCAIF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;;;;;iDAUM,MAAM;;;;;;;;gCAWvB,MAAM;qCAGD,MAAM;0CAED,MAAM;sDAEM,MAAM;;qCAMvB,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;6CAOV,MAAM;0CAIT,MAAM;2DAIW,MAAM;+CAIlB,MAAM;oCAIjB,MAAM;gCAIV,MAAM;;;;;;;;;;;;;;;gDAmBU,MAAM;;;;;;;kCAWpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAmCD,MAAM;;;;;;;;;;mDAaQ,MAAM;;;;;;;;0CAWf,MAAM;kCAId,MAAM;6CAIK,MAAM;iDAIF,MAAM;;;;;;;qCAUlB,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;0CAII,MAAM;;uCAKT,MAAM;0CAEH,MAAM;;;;;;;yCASP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;;;;;;;;;;;CAanC,CAAC"}
@@ -155,6 +155,9 @@ exports.REST_API = {
155
155
  GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
156
156
  ENCRYPT_HAPP_CRYPTO_LINK: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.ENCRYPT_HAPP_CRYPTO_LINK}`,
157
157
  },
158
+ TESTERS: {
159
+ SRR_MATCHER: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TESTERS.SRR_MATCHER}`,
160
+ },
158
161
  },
159
162
  SUBSCRIPTION_TEMPLATE: {
160
163
  GET: (templateType) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_ROUTES.GET(templateType)}`,
@@ -3,5 +3,6 @@ export * from './get-nodes-metrics.command';
3
3
  export * from './get-nodes-statistics';
4
4
  export * from './get-remnawave-health.command';
5
5
  export * from './get-stats.command';
6
+ export * from './testers';
6
7
  export * from './tools';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -19,4 +19,5 @@ __exportStar(require("./get-nodes-metrics.command"), exports);
19
19
  __exportStar(require("./get-nodes-statistics"), exports);
20
20
  __exportStar(require("./get-remnawave-health.command"), exports);
21
21
  __exportStar(require("./get-stats.command"), exports);
22
+ __exportStar(require("./testers"), exports);
22
23
  __exportStar(require("./tools"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './test-srr-matcher.command';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../commands/system/testers/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,17 @@
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
+ __exportStar(require("./test-srr-matcher.command"), exports);
@@ -0,0 +1,438 @@
1
+ import { z } from 'zod';
2
+ export declare namespace TestSrrMatcherCommand {
3
+ const url: "/api/system/testers/srr-matcher";
4
+ const TSQ_url: "/api/system/testers/srr-matcher";
5
+ const endpointDetails: import("../../../constants").EndpointDetails;
6
+ const RequestSchema: z.ZodObject<{
7
+ responseRules: z.ZodObject<{
8
+ version: z.ZodNativeEnum<{
9
+ readonly 1: "1";
10
+ }>;
11
+ rules: z.ZodArray<z.ZodObject<{
12
+ name: z.ZodString;
13
+ description: z.ZodOptional<z.ZodString>;
14
+ enabled: z.ZodBoolean;
15
+ operator: z.ZodNativeEnum<{
16
+ readonly AND: "AND";
17
+ readonly OR: "OR";
18
+ }>;
19
+ conditions: z.ZodArray<z.ZodObject<{
20
+ headerName: z.ZodString;
21
+ operator: z.ZodNativeEnum<{
22
+ readonly EQUALS: "EQUALS";
23
+ readonly NOT_EQUALS: "NOT_EQUALS";
24
+ readonly CONTAINS: "CONTAINS";
25
+ readonly NOT_CONTAINS: "NOT_CONTAINS";
26
+ readonly STARTS_WITH: "STARTS_WITH";
27
+ readonly NOT_STARTS_WITH: "NOT_STARTS_WITH";
28
+ readonly ENDS_WITH: "ENDS_WITH";
29
+ readonly NOT_ENDS_WITH: "NOT_ENDS_WITH";
30
+ readonly REGEX: "REGEX";
31
+ readonly NOT_REGEX: "NOT_REGEX";
32
+ }>;
33
+ value: z.ZodString;
34
+ caseSensitive: z.ZodBoolean;
35
+ }, "strip", z.ZodTypeAny, {
36
+ value: string;
37
+ headerName: string;
38
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
39
+ caseSensitive: boolean;
40
+ }, {
41
+ value: string;
42
+ headerName: string;
43
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
44
+ caseSensitive: boolean;
45
+ }>, "many">;
46
+ responseType: z.ZodNativeEnum<{
47
+ readonly BROWSER: "BROWSER";
48
+ readonly BLOCK: "BLOCK";
49
+ readonly STATUS_CODE_404: "STATUS_CODE_404";
50
+ readonly STATUS_CODE_451: "STATUS_CODE_451";
51
+ readonly SOCKET_DROP: "SOCKET_DROP";
52
+ readonly XRAY_JSON: "XRAY_JSON";
53
+ readonly XRAY_BASE64: "XRAY_BASE64";
54
+ readonly MIHOMO: "MIHOMO";
55
+ readonly STASH: "STASH";
56
+ readonly CLASH: "CLASH";
57
+ readonly SINGBOX: "SINGBOX";
58
+ }>;
59
+ responseModifications: z.ZodOptional<z.ZodObject<{
60
+ headers: z.ZodArray<z.ZodObject<{
61
+ key: z.ZodString;
62
+ value: z.ZodString;
63
+ }, "strip", z.ZodTypeAny, {
64
+ value: string;
65
+ key: string;
66
+ }, {
67
+ value: string;
68
+ key: string;
69
+ }>, "many">;
70
+ }, "strip", z.ZodTypeAny, {
71
+ headers: {
72
+ value: string;
73
+ key: string;
74
+ }[];
75
+ }, {
76
+ headers: {
77
+ value: string;
78
+ key: string;
79
+ }[];
80
+ }>>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ name: string;
83
+ operator: "AND" | "OR";
84
+ enabled: boolean;
85
+ conditions: {
86
+ value: string;
87
+ headerName: string;
88
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
89
+ caseSensitive: boolean;
90
+ }[];
91
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
92
+ description?: string | undefined;
93
+ responseModifications?: {
94
+ headers: {
95
+ value: string;
96
+ key: string;
97
+ }[];
98
+ } | undefined;
99
+ }, {
100
+ name: string;
101
+ operator: "AND" | "OR";
102
+ enabled: boolean;
103
+ conditions: {
104
+ value: string;
105
+ headerName: string;
106
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
107
+ caseSensitive: boolean;
108
+ }[];
109
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
110
+ description?: string | undefined;
111
+ responseModifications?: {
112
+ headers: {
113
+ value: string;
114
+ key: string;
115
+ }[];
116
+ } | undefined;
117
+ }>, "many">;
118
+ }, "strip", z.ZodTypeAny, {
119
+ version: "1";
120
+ rules: {
121
+ name: string;
122
+ operator: "AND" | "OR";
123
+ enabled: boolean;
124
+ conditions: {
125
+ value: string;
126
+ headerName: string;
127
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
128
+ caseSensitive: boolean;
129
+ }[];
130
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
131
+ description?: string | undefined;
132
+ responseModifications?: {
133
+ headers: {
134
+ value: string;
135
+ key: string;
136
+ }[];
137
+ } | undefined;
138
+ }[];
139
+ }, {
140
+ version: "1";
141
+ rules: {
142
+ name: string;
143
+ operator: "AND" | "OR";
144
+ enabled: boolean;
145
+ conditions: {
146
+ value: string;
147
+ headerName: string;
148
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
149
+ caseSensitive: boolean;
150
+ }[];
151
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
152
+ description?: string | undefined;
153
+ responseModifications?: {
154
+ headers: {
155
+ value: string;
156
+ key: string;
157
+ }[];
158
+ } | undefined;
159
+ }[];
160
+ }>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ responseRules: {
163
+ version: "1";
164
+ rules: {
165
+ name: string;
166
+ operator: "AND" | "OR";
167
+ enabled: boolean;
168
+ conditions: {
169
+ value: string;
170
+ headerName: string;
171
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
172
+ caseSensitive: boolean;
173
+ }[];
174
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
175
+ description?: string | undefined;
176
+ responseModifications?: {
177
+ headers: {
178
+ value: string;
179
+ key: string;
180
+ }[];
181
+ } | undefined;
182
+ }[];
183
+ };
184
+ }, {
185
+ responseRules: {
186
+ version: "1";
187
+ rules: {
188
+ name: string;
189
+ operator: "AND" | "OR";
190
+ enabled: boolean;
191
+ conditions: {
192
+ value: string;
193
+ headerName: string;
194
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
195
+ caseSensitive: boolean;
196
+ }[];
197
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
198
+ description?: string | undefined;
199
+ responseModifications?: {
200
+ headers: {
201
+ value: string;
202
+ key: string;
203
+ }[];
204
+ } | undefined;
205
+ }[];
206
+ };
207
+ }>;
208
+ type Request = z.infer<typeof RequestSchema>;
209
+ const ResponseSchema: z.ZodObject<{
210
+ response: z.ZodObject<{
211
+ matched: z.ZodBoolean;
212
+ responseType: z.ZodNativeEnum<{
213
+ readonly BROWSER: "BROWSER";
214
+ readonly BLOCK: "BLOCK";
215
+ readonly STATUS_CODE_404: "STATUS_CODE_404";
216
+ readonly STATUS_CODE_451: "STATUS_CODE_451";
217
+ readonly SOCKET_DROP: "SOCKET_DROP";
218
+ readonly XRAY_JSON: "XRAY_JSON";
219
+ readonly XRAY_BASE64: "XRAY_BASE64";
220
+ readonly MIHOMO: "MIHOMO";
221
+ readonly STASH: "STASH";
222
+ readonly CLASH: "CLASH";
223
+ readonly SINGBOX: "SINGBOX";
224
+ }>;
225
+ matchedRule: z.ZodNullable<z.ZodObject<{
226
+ name: z.ZodString;
227
+ description: z.ZodOptional<z.ZodString>;
228
+ enabled: z.ZodBoolean;
229
+ operator: z.ZodNativeEnum<{
230
+ readonly AND: "AND";
231
+ readonly OR: "OR";
232
+ }>;
233
+ conditions: z.ZodArray<z.ZodObject<{
234
+ headerName: z.ZodString;
235
+ operator: z.ZodNativeEnum<{
236
+ readonly EQUALS: "EQUALS";
237
+ readonly NOT_EQUALS: "NOT_EQUALS";
238
+ readonly CONTAINS: "CONTAINS";
239
+ readonly NOT_CONTAINS: "NOT_CONTAINS";
240
+ readonly STARTS_WITH: "STARTS_WITH";
241
+ readonly NOT_STARTS_WITH: "NOT_STARTS_WITH";
242
+ readonly ENDS_WITH: "ENDS_WITH";
243
+ readonly NOT_ENDS_WITH: "NOT_ENDS_WITH";
244
+ readonly REGEX: "REGEX";
245
+ readonly NOT_REGEX: "NOT_REGEX";
246
+ }>;
247
+ value: z.ZodString;
248
+ caseSensitive: z.ZodBoolean;
249
+ }, "strip", z.ZodTypeAny, {
250
+ value: string;
251
+ headerName: string;
252
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
253
+ caseSensitive: boolean;
254
+ }, {
255
+ value: string;
256
+ headerName: string;
257
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
258
+ caseSensitive: boolean;
259
+ }>, "many">;
260
+ responseType: z.ZodNativeEnum<{
261
+ readonly BROWSER: "BROWSER";
262
+ readonly BLOCK: "BLOCK";
263
+ readonly STATUS_CODE_404: "STATUS_CODE_404";
264
+ readonly STATUS_CODE_451: "STATUS_CODE_451";
265
+ readonly SOCKET_DROP: "SOCKET_DROP";
266
+ readonly XRAY_JSON: "XRAY_JSON";
267
+ readonly XRAY_BASE64: "XRAY_BASE64";
268
+ readonly MIHOMO: "MIHOMO";
269
+ readonly STASH: "STASH";
270
+ readonly CLASH: "CLASH";
271
+ readonly SINGBOX: "SINGBOX";
272
+ }>;
273
+ responseModifications: z.ZodOptional<z.ZodObject<{
274
+ headers: z.ZodArray<z.ZodObject<{
275
+ key: z.ZodString;
276
+ value: z.ZodString;
277
+ }, "strip", z.ZodTypeAny, {
278
+ value: string;
279
+ key: string;
280
+ }, {
281
+ value: string;
282
+ key: string;
283
+ }>, "many">;
284
+ }, "strip", z.ZodTypeAny, {
285
+ headers: {
286
+ value: string;
287
+ key: string;
288
+ }[];
289
+ }, {
290
+ headers: {
291
+ value: string;
292
+ key: string;
293
+ }[];
294
+ }>>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ name: string;
297
+ operator: "AND" | "OR";
298
+ enabled: boolean;
299
+ conditions: {
300
+ value: string;
301
+ headerName: string;
302
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
303
+ caseSensitive: boolean;
304
+ }[];
305
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
306
+ description?: string | undefined;
307
+ responseModifications?: {
308
+ headers: {
309
+ value: string;
310
+ key: string;
311
+ }[];
312
+ } | undefined;
313
+ }, {
314
+ name: string;
315
+ operator: "AND" | "OR";
316
+ enabled: boolean;
317
+ conditions: {
318
+ value: string;
319
+ headerName: string;
320
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
321
+ caseSensitive: boolean;
322
+ }[];
323
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
324
+ description?: string | undefined;
325
+ responseModifications?: {
326
+ headers: {
327
+ value: string;
328
+ key: string;
329
+ }[];
330
+ } | undefined;
331
+ }>>;
332
+ inputHeaders: z.ZodRecord<z.ZodString, z.ZodString>;
333
+ outputHeaders: z.ZodRecord<z.ZodString, z.ZodString>;
334
+ }, "strip", z.ZodTypeAny, {
335
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
336
+ matched: boolean;
337
+ matchedRule: {
338
+ name: string;
339
+ operator: "AND" | "OR";
340
+ enabled: boolean;
341
+ conditions: {
342
+ value: string;
343
+ headerName: string;
344
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
345
+ caseSensitive: boolean;
346
+ }[];
347
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
348
+ description?: string | undefined;
349
+ responseModifications?: {
350
+ headers: {
351
+ value: string;
352
+ key: string;
353
+ }[];
354
+ } | undefined;
355
+ } | null;
356
+ inputHeaders: Record<string, string>;
357
+ outputHeaders: Record<string, string>;
358
+ }, {
359
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
360
+ matched: boolean;
361
+ matchedRule: {
362
+ name: string;
363
+ operator: "AND" | "OR";
364
+ enabled: boolean;
365
+ conditions: {
366
+ value: string;
367
+ headerName: string;
368
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
369
+ caseSensitive: boolean;
370
+ }[];
371
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
372
+ description?: string | undefined;
373
+ responseModifications?: {
374
+ headers: {
375
+ value: string;
376
+ key: string;
377
+ }[];
378
+ } | undefined;
379
+ } | null;
380
+ inputHeaders: Record<string, string>;
381
+ outputHeaders: Record<string, string>;
382
+ }>;
383
+ }, "strip", z.ZodTypeAny, {
384
+ response: {
385
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
386
+ matched: boolean;
387
+ matchedRule: {
388
+ name: string;
389
+ operator: "AND" | "OR";
390
+ enabled: boolean;
391
+ conditions: {
392
+ value: string;
393
+ headerName: string;
394
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
395
+ caseSensitive: boolean;
396
+ }[];
397
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
398
+ description?: string | undefined;
399
+ responseModifications?: {
400
+ headers: {
401
+ value: string;
402
+ key: string;
403
+ }[];
404
+ } | undefined;
405
+ } | null;
406
+ inputHeaders: Record<string, string>;
407
+ outputHeaders: Record<string, string>;
408
+ };
409
+ }, {
410
+ response: {
411
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
412
+ matched: boolean;
413
+ matchedRule: {
414
+ name: string;
415
+ operator: "AND" | "OR";
416
+ enabled: boolean;
417
+ conditions: {
418
+ value: string;
419
+ headerName: string;
420
+ operator: "EQUALS" | "NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS" | "STARTS_WITH" | "NOT_STARTS_WITH" | "ENDS_WITH" | "NOT_ENDS_WITH" | "REGEX" | "NOT_REGEX";
421
+ caseSensitive: boolean;
422
+ }[];
423
+ responseType: "STASH" | "SINGBOX" | "MIHOMO" | "XRAY_JSON" | "CLASH" | "XRAY_BASE64" | "BROWSER" | "BLOCK" | "STATUS_CODE_404" | "STATUS_CODE_451" | "SOCKET_DROP";
424
+ description?: string | undefined;
425
+ responseModifications?: {
426
+ headers: {
427
+ value: string;
428
+ key: string;
429
+ }[];
430
+ } | undefined;
431
+ } | null;
432
+ inputHeaders: Record<string, string>;
433
+ outputHeaders: Record<string, string>;
434
+ };
435
+ }>;
436
+ type Response = z.infer<typeof ResponseSchema>;
437
+ }
438
+ //# sourceMappingURL=test-srr-matcher.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-srr-matcher.command.d.ts","sourceRoot":"","sources":["../../../../../commands/system/testers/test-srr-matcher.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,yBAAiB,qBAAqB,CAAC;IAC5B,MAAM,GAAG,mCAAsC,CAAC;IAChD,MAAM,OAAO,mCAAM,CAAC;IAEpB,MAAM,eAAe,8CAI3B,CAAC;IACK,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAExB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestSrrMatcherCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const models_1 = require("../../../models");
7
+ const api_1 = require("../../../api");
8
+ var TestSrrMatcherCommand;
9
+ (function (TestSrrMatcherCommand) {
10
+ TestSrrMatcherCommand.url = api_1.REST_API.SYSTEM.TESTERS.SRR_MATCHER;
11
+ TestSrrMatcherCommand.TSQ_url = TestSrrMatcherCommand.url;
12
+ TestSrrMatcherCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.TESTERS.SRR_MATCHER, 'post', 'Test SRR Matcher');
13
+ TestSrrMatcherCommand.RequestSchema = zod_1.z.object({
14
+ responseRules: models_1.ResponseRulesConfigSchema,
15
+ });
16
+ TestSrrMatcherCommand.ResponseSchema = zod_1.z.object({
17
+ response: zod_1.z.object({
18
+ matched: zod_1.z.boolean(),
19
+ responseType: zod_1.z.nativeEnum(constants_1.RESPONSE_RULES_RESPONSE_TYPES),
20
+ matchedRule: zod_1.z.nullable(models_1.ResponseRuleSchema),
21
+ inputHeaders: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
22
+ outputHeaders: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
23
+ }),
24
+ });
25
+ })(TestSrrMatcherCommand || (exports.TestSrrMatcherCommand = TestSrrMatcherCommand = {}));
@@ -14,4 +14,7 @@ exports.SYSTEM_ROUTES = {
14
14
  ENCRYPT_HAPP_CRYPTO_LINK: 'tools/happ/encrypt',
15
15
  },
16
16
  HEALTH: 'health',
17
+ TESTERS: {
18
+ SRR_MATCHER: 'testers/srr-matcher',
19
+ },
17
20
  };
@@ -155,6 +155,9 @@ exports.REST_API = {
155
155
  GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
156
156
  ENCRYPT_HAPP_CRYPTO_LINK: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.ENCRYPT_HAPP_CRYPTO_LINK}`,
157
157
  },
158
+ TESTERS: {
159
+ SRR_MATCHER: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TESTERS.SRR_MATCHER}`,
160
+ },
158
161
  },
159
162
  SUBSCRIPTION_TEMPLATE: {
160
163
  GET: (templateType) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_ROUTES.GET(templateType)}`,
@@ -19,4 +19,5 @@ __exportStar(require("./get-nodes-metrics.command"), exports);
19
19
  __exportStar(require("./get-nodes-statistics"), exports);
20
20
  __exportStar(require("./get-remnawave-health.command"), exports);
21
21
  __exportStar(require("./get-stats.command"), exports);
22
+ __exportStar(require("./testers"), exports);
22
23
  __exportStar(require("./tools"), exports);
@@ -0,0 +1,17 @@
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
+ __exportStar(require("./test-srr-matcher.command"), exports);
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestSrrMatcherCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const models_1 = require("../../../models");
7
+ const api_1 = require("../../../api");
8
+ var TestSrrMatcherCommand;
9
+ (function (TestSrrMatcherCommand) {
10
+ TestSrrMatcherCommand.url = api_1.REST_API.SYSTEM.TESTERS.SRR_MATCHER;
11
+ TestSrrMatcherCommand.TSQ_url = TestSrrMatcherCommand.url;
12
+ TestSrrMatcherCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.TESTERS.SRR_MATCHER, 'post', 'Test SRR Matcher');
13
+ TestSrrMatcherCommand.RequestSchema = zod_1.z.object({
14
+ responseRules: models_1.ResponseRulesConfigSchema,
15
+ });
16
+ TestSrrMatcherCommand.ResponseSchema = zod_1.z.object({
17
+ response: zod_1.z.object({
18
+ matched: zod_1.z.boolean(),
19
+ responseType: zod_1.z.nativeEnum(constants_1.RESPONSE_RULES_RESPONSE_TYPES),
20
+ matchedRule: zod_1.z.nullable(models_1.ResponseRuleSchema),
21
+ inputHeaders: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
22
+ outputHeaders: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
23
+ }),
24
+ });
25
+ })(TestSrrMatcherCommand || (exports.TestSrrMatcherCommand = TestSrrMatcherCommand = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "2.1.80",
3
+ "version": "2.1.82",
4
4
  "public": true,
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "A contract library for Remnawave Backend. It can be used in backend and frontend.",