@remnawave/backend-contract 2.6.16 → 2.6.18

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 (49) hide show
  1. package/build/backend/commands/hosts/bulk/delete-many-hosts.command.d.ts +12 -0
  2. package/build/backend/commands/hosts/bulk/delete-many-hosts.command.d.ts.map +1 -1
  3. package/build/backend/commands/hosts/bulk/disable-many-hosts.command.d.ts +12 -0
  4. package/build/backend/commands/hosts/bulk/disable-many-hosts.command.d.ts.map +1 -1
  5. package/build/backend/commands/hosts/bulk/enable-many-hosts.command.d.ts +12 -0
  6. package/build/backend/commands/hosts/bulk/enable-many-hosts.command.d.ts.map +1 -1
  7. package/build/backend/commands/hosts/bulk/set-inbound-to-many-hosts.command.d.ts +12 -0
  8. package/build/backend/commands/hosts/bulk/set-inbound-to-many-hosts.command.d.ts.map +1 -1
  9. package/build/backend/commands/hosts/bulk/set-port-to-many-hosts.command.d.ts +12 -0
  10. package/build/backend/commands/hosts/bulk/set-port-to-many-hosts.command.d.ts.map +1 -1
  11. package/build/backend/commands/hosts/create.command.d.ts +22 -0
  12. package/build/backend/commands/hosts/create.command.d.ts.map +1 -1
  13. package/build/backend/commands/hosts/create.command.js +3 -0
  14. package/build/backend/commands/hosts/get-all.command.d.ts +12 -0
  15. package/build/backend/commands/hosts/get-all.command.d.ts.map +1 -1
  16. package/build/backend/commands/hosts/get-one.command.d.ts +12 -0
  17. package/build/backend/commands/hosts/get-one.command.d.ts.map +1 -1
  18. package/build/backend/commands/hosts/reorder.command.d.ts +8 -0
  19. package/build/backend/commands/hosts/reorder.command.d.ts.map +1 -1
  20. package/build/backend/commands/hosts/update.command.d.ts +30 -0
  21. package/build/backend/commands/hosts/update.command.d.ts.map +1 -1
  22. package/build/backend/commands/hosts/update.command.js +3 -0
  23. package/build/backend/commands/subscription-settings/get-subscription-settings.command.d.ts +11 -0
  24. package/build/backend/commands/subscription-settings/get-subscription-settings.command.d.ts.map +1 -1
  25. package/build/backend/commands/subscription-settings/update-subscription-settings.command.d.ts +20 -0
  26. package/build/backend/commands/subscription-settings/update-subscription-settings.command.d.ts.map +1 -1
  27. package/build/backend/commands/system/testers/test-srr-matcher.command.d.ts +18 -0
  28. package/build/backend/commands/system/testers/test-srr-matcher.command.d.ts.map +1 -1
  29. package/build/backend/models/hosts.schema.d.ts +10 -0
  30. package/build/backend/models/hosts.schema.d.ts.map +1 -1
  31. package/build/backend/models/hosts.schema.js +2 -0
  32. package/build/backend/models/response-rules/response-rule-modifications.schema.d.ts +3 -0
  33. package/build/backend/models/response-rules/response-rule-modifications.schema.d.ts.map +1 -1
  34. package/build/backend/models/response-rules/response-rule-modifications.schema.js +6 -0
  35. package/build/backend/models/response-rules/response-rule.schema.d.ts +10 -0
  36. package/build/backend/models/response-rules/response-rule.schema.d.ts.map +1 -1
  37. package/build/backend/models/response-rules/response-rules-config.schema.d.ts +7 -0
  38. package/build/backend/models/response-rules/response-rules-config.schema.d.ts.map +1 -1
  39. package/build/backend/models/subscription-settings.schema.d.ts +9 -0
  40. package/build/backend/models/subscription-settings.schema.d.ts.map +1 -1
  41. package/build/backend/models/xray-json-advanced/remnawave-injector.schema.d.ts +24 -8
  42. package/build/backend/models/xray-json-advanced/remnawave-injector.schema.d.ts.map +1 -1
  43. package/build/backend/models/xray-json-advanced/remnawave-injector.schema.js +3 -1
  44. package/build/frontend/commands/hosts/create.command.js +3 -0
  45. package/build/frontend/commands/hosts/update.command.js +3 -0
  46. package/build/frontend/models/hosts.schema.js +2 -0
  47. package/build/frontend/models/response-rules/response-rule-modifications.schema.js +6 -0
  48. package/build/frontend/models/xray-json-advanced/remnawave-injector.schema.js +3 -1
  49. package/package.json +1 -1
@@ -106,6 +106,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
106
106
  applyHeadersToEnd: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
107
107
  subscriptionTemplate: z.ZodOptional<z.ZodString>;
108
108
  ignoreHostXrayJsonTemplate: z.ZodOptional<z.ZodBoolean>;
109
+ ignoreServeJsonAtBaseSubscription: z.ZodOptional<z.ZodBoolean>;
109
110
  }, "strip", z.ZodTypeAny, {
110
111
  headers?: {
111
112
  value: string;
@@ -114,6 +115,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
114
115
  applyHeadersToEnd?: boolean | undefined;
115
116
  subscriptionTemplate?: string | undefined;
116
117
  ignoreHostXrayJsonTemplate?: boolean | undefined;
118
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
117
119
  }, {
118
120
  headers?: {
119
121
  value: string;
@@ -122,6 +124,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
122
124
  applyHeadersToEnd?: boolean | undefined;
123
125
  subscriptionTemplate?: string | undefined;
124
126
  ignoreHostXrayJsonTemplate?: boolean | undefined;
127
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
125
128
  }>>;
126
129
  }, "strip", z.ZodTypeAny, {
127
130
  enabled: boolean;
@@ -143,6 +146,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
143
146
  applyHeadersToEnd?: boolean | undefined;
144
147
  subscriptionTemplate?: string | undefined;
145
148
  ignoreHostXrayJsonTemplate?: boolean | undefined;
149
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
146
150
  } | undefined;
147
151
  }, {
148
152
  enabled: boolean;
@@ -164,6 +168,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
164
168
  applyHeadersToEnd?: boolean | undefined;
165
169
  subscriptionTemplate?: string | undefined;
166
170
  ignoreHostXrayJsonTemplate?: boolean | undefined;
171
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
167
172
  } | undefined;
168
173
  }>, "many">;
169
174
  }, "strip", z.ZodTypeAny, {
@@ -188,6 +193,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
188
193
  applyHeadersToEnd?: boolean | undefined;
189
194
  subscriptionTemplate?: string | undefined;
190
195
  ignoreHostXrayJsonTemplate?: boolean | undefined;
196
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
191
197
  } | undefined;
192
198
  }[];
193
199
  settings?: {
@@ -215,6 +221,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
215
221
  applyHeadersToEnd?: boolean | undefined;
216
222
  subscriptionTemplate?: string | undefined;
217
223
  ignoreHostXrayJsonTemplate?: boolean | undefined;
224
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
218
225
  } | undefined;
219
226
  }[];
220
227
  settings?: {
@@ -280,6 +287,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
280
287
  applyHeadersToEnd?: boolean | undefined;
281
288
  subscriptionTemplate?: string | undefined;
282
289
  ignoreHostXrayJsonTemplate?: boolean | undefined;
290
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
283
291
  } | undefined;
284
292
  }[];
285
293
  settings?: {
@@ -335,6 +343,7 @@ export declare const SubscriptionSettingsSchema: z.ZodObject<{
335
343
  applyHeadersToEnd?: boolean | undefined;
336
344
  subscriptionTemplate?: string | undefined;
337
345
  ignoreHostXrayJsonTemplate?: boolean | undefined;
346
+ ignoreServeJsonAtBaseSubscription?: boolean | undefined;
338
347
  } | undefined;
339
348
  }[];
340
349
  settings?: {
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-settings.schema.d.ts","sourceRoot":"","sources":["../../../models/subscription-settings.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCrC,CAAC"}
1
+ {"version":3,"file":"subscription-settings.schema.d.ts","sourceRoot":"","sources":["../../../models/subscription-settings.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCrC,CAAC"}
@@ -69,7 +69,9 @@ declare const InjectHostsEntrySchema: z.ZodObject<{
69
69
  type: "sameTagAsRecipient";
70
70
  }>]>;
71
71
  selectFrom: z.ZodOptional<z.ZodEnum<["ALL", "HIDDEN", "NOT_HIDDEN"]>>;
72
- tagPrefix: z.ZodString;
72
+ tagPrefix: z.ZodOptional<z.ZodString>;
73
+ useHostRemarkAsTag: z.ZodOptional<z.ZodBoolean>;
74
+ useHostTagAsTag: z.ZodOptional<z.ZodBoolean>;
73
75
  }, "strip", z.ZodTypeAny, {
74
76
  selector: {
75
77
  values: string[];
@@ -83,8 +85,10 @@ declare const InjectHostsEntrySchema: z.ZodObject<{
83
85
  } | {
84
86
  type: "sameTagAsRecipient";
85
87
  };
86
- tagPrefix: string;
87
88
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
89
+ tagPrefix?: string | undefined;
90
+ useHostRemarkAsTag?: boolean | undefined;
91
+ useHostTagAsTag?: boolean | undefined;
88
92
  }, {
89
93
  selector: {
90
94
  values: string[];
@@ -98,8 +102,10 @@ declare const InjectHostsEntrySchema: z.ZodObject<{
98
102
  } | {
99
103
  type: "sameTagAsRecipient";
100
104
  };
101
- tagPrefix: string;
102
105
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
106
+ tagPrefix?: string | undefined;
107
+ useHostRemarkAsTag?: boolean | undefined;
108
+ useHostTagAsTag?: boolean | undefined;
103
109
  }>;
104
110
  export declare const RemnawaveInjectorSchema: z.ZodObject<{
105
111
  injectHosts: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -138,7 +144,9 @@ export declare const RemnawaveInjectorSchema: z.ZodObject<{
138
144
  type: "sameTagAsRecipient";
139
145
  }>]>;
140
146
  selectFrom: z.ZodOptional<z.ZodEnum<["ALL", "HIDDEN", "NOT_HIDDEN"]>>;
141
- tagPrefix: z.ZodString;
147
+ tagPrefix: z.ZodOptional<z.ZodString>;
148
+ useHostRemarkAsTag: z.ZodOptional<z.ZodBoolean>;
149
+ useHostTagAsTag: z.ZodOptional<z.ZodBoolean>;
142
150
  }, "strip", z.ZodTypeAny, {
143
151
  selector: {
144
152
  values: string[];
@@ -152,8 +160,10 @@ export declare const RemnawaveInjectorSchema: z.ZodObject<{
152
160
  } | {
153
161
  type: "sameTagAsRecipient";
154
162
  };
155
- tagPrefix: string;
156
163
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
164
+ tagPrefix?: string | undefined;
165
+ useHostRemarkAsTag?: boolean | undefined;
166
+ useHostTagAsTag?: boolean | undefined;
157
167
  }, {
158
168
  selector: {
159
169
  values: string[];
@@ -167,8 +177,10 @@ export declare const RemnawaveInjectorSchema: z.ZodObject<{
167
177
  } | {
168
178
  type: "sameTagAsRecipient";
169
179
  };
170
- tagPrefix: string;
171
180
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
181
+ tagPrefix?: string | undefined;
182
+ useHostRemarkAsTag?: boolean | undefined;
183
+ useHostTagAsTag?: boolean | undefined;
172
184
  }>, "many">>;
173
185
  }, "strip", z.ZodTypeAny, {
174
186
  injectHosts?: {
@@ -184,8 +196,10 @@ export declare const RemnawaveInjectorSchema: z.ZodObject<{
184
196
  } | {
185
197
  type: "sameTagAsRecipient";
186
198
  };
187
- tagPrefix: string;
188
199
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
200
+ tagPrefix?: string | undefined;
201
+ useHostRemarkAsTag?: boolean | undefined;
202
+ useHostTagAsTag?: boolean | undefined;
189
203
  }[] | undefined;
190
204
  }, {
191
205
  injectHosts?: {
@@ -201,8 +215,10 @@ export declare const RemnawaveInjectorSchema: z.ZodObject<{
201
215
  } | {
202
216
  type: "sameTagAsRecipient";
203
217
  };
204
- tagPrefix: string;
205
218
  selectFrom?: "ALL" | "HIDDEN" | "NOT_HIDDEN" | undefined;
219
+ tagPrefix?: string | undefined;
220
+ useHostRemarkAsTag?: boolean | undefined;
221
+ useHostTagAsTag?: boolean | undefined;
206
222
  }[] | undefined;
207
223
  }>;
208
224
  export type TRemnawaveInjector = z.infer<typeof RemnawaveInjectorSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"remnawave-injector.schema.d.ts","sourceRoot":"","sources":["../../../../models/xray-json-advanced/remnawave-injector.schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBtB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACzE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"remnawave-injector.schema.d.ts","sourceRoot":"","sources":["../../../../models/xray-json-advanced/remnawave-injector.schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBtB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACzE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC,YAAY,CAAC,CAAC"}
@@ -25,7 +25,9 @@ const HostSelectorSchema = zod_1.default.discriminatedUnion('type', [
25
25
  const InjectHostsEntrySchema = zod_1.default.object({
26
26
  selector: HostSelectorSchema,
27
27
  selectFrom: zod_1.default.enum(['ALL', 'HIDDEN', 'NOT_HIDDEN']).optional(),
28
- tagPrefix: zod_1.default.string().min(1),
28
+ tagPrefix: zod_1.default.string().min(1).optional(),
29
+ useHostRemarkAsTag: zod_1.default.boolean().optional(),
30
+ useHostTagAsTag: zod_1.default.boolean().optional(),
29
31
  });
30
32
  exports.RemnawaveInjectorSchema = zod_1.default.object({
31
33
  injectHosts: zod_1.default.array(InjectHostsEntrySchema).optional(),
@@ -68,6 +68,9 @@ var CreateHostCommand;
68
68
  excludedInternalSquads: zod_1.z
69
69
  .optional(zod_1.z.array(zod_1.z.string().uuid()))
70
70
  .describe('Optional. Internal squads from which the host will be excluded.'),
71
+ excludeFromSubscriptionTypes: zod_1.z
72
+ .optional(zod_1.z.array(zod_1.z.nativeEnum(constants_1.SUBSCRIPTION_TEMPLATE_TYPE)))
73
+ .describe('Optional. Subscription types from which the host will be excluded from.'),
71
74
  });
72
75
  CreateHostCommand.ResponseSchema = zod_1.z.object({
73
76
  response: models_1.HostsSchema,
@@ -73,6 +73,9 @@ var UpdateHostCommand;
73
73
  excludedInternalSquads: zod_1.z
74
74
  .optional(zod_1.z.array(zod_1.z.string().uuid()))
75
75
  .describe('Optional. Internal squads from which the host will be excluded.'),
76
+ excludeFromSubscriptionTypes: zod_1.z
77
+ .optional(zod_1.z.array(zod_1.z.nativeEnum(constants_1.SUBSCRIPTION_TEMPLATE_TYPE)))
78
+ .describe('Optional. Subscription types from which the host will be excluded from.'),
76
79
  });
77
80
  UpdateHostCommand.ResponseSchema = zod_1.z.object({
78
81
  response: models_1.HostsSchema,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HostsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const constants_1 = require("../constants");
5
6
  const hosts_1 = require("../constants/hosts");
6
7
  exports.HostsSchema = zod_1.z.object({
7
8
  uuid: zod_1.z.string().uuid(),
@@ -35,4 +36,5 @@ exports.HostsSchema = zod_1.z.object({
35
36
  nodes: zod_1.z.array(zod_1.z.string().uuid()),
36
37
  xrayJsonTemplateUuid: zod_1.z.string().uuid().nullable(),
37
38
  excludedInternalSquads: zod_1.z.array(zod_1.z.string().uuid()),
39
+ excludeFromSubscriptionTypes: zod_1.z.array(zod_1.z.nativeEnum(constants_1.SUBSCRIPTION_TEMPLATE_TYPE)).optional(),
38
40
  });
@@ -62,6 +62,12 @@ exports.ResponseRuleModificationsSchema = zod_1.default
62
62
  .describe(JSON.stringify({
63
63
  markdownDescription: "Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**",
64
64
  })),
65
+ ignoreServeJsonAtBaseSubscription: zod_1.default
66
+ .boolean()
67
+ .optional()
68
+ .describe(JSON.stringify({
69
+ markdownDescription: 'If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).',
70
+ })),
65
71
  })
66
72
  .optional()
67
73
  .describe(JSON.stringify({
@@ -25,7 +25,9 @@ const HostSelectorSchema = zod_1.default.discriminatedUnion('type', [
25
25
  const InjectHostsEntrySchema = zod_1.default.object({
26
26
  selector: HostSelectorSchema,
27
27
  selectFrom: zod_1.default.enum(['ALL', 'HIDDEN', 'NOT_HIDDEN']).optional(),
28
- tagPrefix: zod_1.default.string().min(1),
28
+ tagPrefix: zod_1.default.string().min(1).optional(),
29
+ useHostRemarkAsTag: zod_1.default.boolean().optional(),
30
+ useHostTagAsTag: zod_1.default.boolean().optional(),
29
31
  });
30
32
  exports.RemnawaveInjectorSchema = zod_1.default.object({
31
33
  injectHosts: zod_1.default.array(InjectHostsEntrySchema).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "2.6.16",
3
+ "version": "2.6.18",
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.",