@remnawave/backend-contract 3.3.2 → 3.4.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 (67) hide show
  1. package/build/backend/api/controllers/node-plugins.d.ts +11 -0
  2. package/build/backend/api/controllers/node-plugins.d.ts.map +1 -1
  3. package/build/backend/api/controllers/node-plugins.js +12 -0
  4. package/build/backend/api/routes.d.ts +11 -0
  5. package/build/backend/api/routes.d.ts.map +1 -1
  6. package/build/backend/api/routes.js +11 -0
  7. package/build/backend/commands/node-plugins/actions/index.d.ts +1 -0
  8. package/build/backend/commands/node-plugins/actions/index.d.ts.map +1 -1
  9. package/build/backend/commands/node-plugins/actions/index.js +1 -0
  10. package/build/backend/commands/node-plugins/actions/sync-node-plugin.command.d.ts +11 -0
  11. package/build/backend/commands/node-plugins/actions/sync-node-plugin.command.d.ts.map +1 -0
  12. package/build/backend/commands/node-plugins/actions/sync-node-plugin.command.js +15 -0
  13. package/build/backend/commands/node-plugins/index.d.ts +1 -0
  14. package/build/backend/commands/node-plugins/index.d.ts.map +1 -1
  15. package/build/backend/commands/node-plugins/index.js +1 -0
  16. package/build/backend/commands/node-plugins/shared-lists/create-shared-list.command.d.ts +19 -0
  17. package/build/backend/commands/node-plugins/shared-lists/create-shared-list.command.d.ts.map +1 -0
  18. package/build/backend/commands/node-plugins/shared-lists/create-shared-list.command.js +20 -0
  19. package/build/backend/commands/node-plugins/shared-lists/delete-shared-list.command.d.ts +11 -0
  20. package/build/backend/commands/node-plugins/shared-lists/delete-shared-list.command.d.ts.map +1 -0
  21. package/build/backend/commands/node-plugins/shared-lists/delete-shared-list.command.js +16 -0
  22. package/build/backend/commands/node-plugins/shared-lists/get-shared-list.command.d.ts +18 -0
  23. package/build/backend/commands/node-plugins/shared-lists/get-shared-list.command.d.ts.map +1 -0
  24. package/build/backend/commands/node-plugins/shared-lists/get-shared-list.command.js +19 -0
  25. package/build/backend/commands/node-plugins/shared-lists/get-shared-lists.command.d.ts +18 -0
  26. package/build/backend/commands/node-plugins/shared-lists/get-shared-lists.command.d.ts.map +1 -0
  27. package/build/backend/commands/node-plugins/shared-lists/get-shared-lists.command.js +19 -0
  28. package/build/backend/commands/node-plugins/shared-lists/index.d.ts +7 -0
  29. package/build/backend/commands/node-plugins/shared-lists/index.d.ts.map +1 -0
  30. package/build/backend/commands/node-plugins/shared-lists/index.js +22 -0
  31. package/build/backend/commands/node-plugins/shared-lists/sync-shared-list.command.d.ts +11 -0
  32. package/build/backend/commands/node-plugins/shared-lists/sync-shared-list.command.d.ts.map +1 -0
  33. package/build/backend/commands/node-plugins/shared-lists/sync-shared-list.command.js +16 -0
  34. package/build/backend/commands/node-plugins/shared-lists/update-shared-list.command.d.ts +19 -0
  35. package/build/backend/commands/node-plugins/shared-lists/update-shared-list.command.d.ts.map +1 -0
  36. package/build/backend/commands/node-plugins/shared-lists/update-shared-list.command.js +20 -0
  37. package/build/backend/commands/subscriptions/get-by/get-raw-subscription-by-short-uuid.command.d.ts +126 -108
  38. package/build/backend/commands/subscriptions/get-by/get-raw-subscription-by-short-uuid.command.d.ts.map +1 -1
  39. package/build/backend/constants/errors/errors.d.ts +45 -0
  40. package/build/backend/constants/errors/errors.d.ts.map +1 -1
  41. package/build/backend/constants/errors/errors.js +45 -0
  42. package/build/backend/models/index.d.ts +1 -0
  43. package/build/backend/models/index.d.ts.map +1 -1
  44. package/build/backend/models/index.js +1 -0
  45. package/build/backend/models/resolved-proxy-config.schema.d.ts +207 -107
  46. package/build/backend/models/resolved-proxy-config.schema.d.ts.map +1 -1
  47. package/build/backend/models/resolved-proxy-config.schema.js +19 -35
  48. package/build/backend/models/shared-list.schema.d.ts +12 -0
  49. package/build/backend/models/shared-list.schema.d.ts.map +1 -0
  50. package/build/backend/models/shared-list.schema.js +21 -0
  51. package/build/frontend/api/controllers/node-plugins.js +12 -0
  52. package/build/frontend/api/routes.js +11 -0
  53. package/build/frontend/commands/node-plugins/actions/index.js +1 -0
  54. package/build/frontend/commands/node-plugins/actions/sync-node-plugin.command.js +15 -0
  55. package/build/frontend/commands/node-plugins/index.js +1 -0
  56. package/build/frontend/commands/node-plugins/shared-lists/create-shared-list.command.js +20 -0
  57. package/build/frontend/commands/node-plugins/shared-lists/delete-shared-list.command.js +16 -0
  58. package/build/frontend/commands/node-plugins/shared-lists/get-shared-list.command.js +19 -0
  59. package/build/frontend/commands/node-plugins/shared-lists/get-shared-lists.command.js +19 -0
  60. package/build/frontend/commands/node-plugins/shared-lists/index.js +22 -0
  61. package/build/frontend/commands/node-plugins/shared-lists/sync-shared-list.command.js +16 -0
  62. package/build/frontend/commands/node-plugins/shared-lists/update-shared-list.command.js +20 -0
  63. package/build/frontend/constants/errors/errors.js +45 -0
  64. package/build/frontend/models/index.js +1 -0
  65. package/build/frontend/models/resolved-proxy-config.schema.js +19 -35
  66. package/build/frontend/models/shared-list.schema.js +21 -0
  67. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SyncSharedListCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../../api");
6
+ const constants_1 = require("../../../constants");
7
+ const models_1 = require("../../../models");
8
+ var SyncSharedListCommand;
9
+ (function (SyncSharedListCommand) {
10
+ SyncSharedListCommand.url = api_1.REST_API.NODE_PLUGINS.SHARED_LISTS.ACTIONS.SYNC;
11
+ SyncSharedListCommand.TSQ_url = SyncSharedListCommand.url;
12
+ SyncSharedListCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.NODE_PLUGINS_ROUTES.SHARED_LISTS.ACTIONS.SYNC, 'post', 'Sync Shared List to nodes', { scope: 'shared-lists-sync', kind: 'write' }, 'Push every plugin referencing this shared list to the nodes it is active on.');
13
+ SyncSharedListCommand.RequestBodySchema = zod_1.z.object({
14
+ name: models_1.SharedListNameSchema,
15
+ });
16
+ })(SyncSharedListCommand || (exports.SyncSharedListCommand = SyncSharedListCommand = {}));
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateSharedListCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../../api");
6
+ const constants_1 = require("../../../constants");
7
+ const models_1 = require("../../../models");
8
+ var UpdateSharedListCommand;
9
+ (function (UpdateSharedListCommand) {
10
+ UpdateSharedListCommand.url = api_1.REST_API.NODE_PLUGINS.SHARED_LISTS.UPDATE;
11
+ UpdateSharedListCommand.TSQ_url = UpdateSharedListCommand.url;
12
+ UpdateSharedListCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.NODE_PLUGINS_ROUTES.SHARED_LISTS.UPDATE, 'patch', 'Update Shared List', { scope: 'shared-lists-update', kind: 'write' });
13
+ UpdateSharedListCommand.RequestBodySchema = zod_1.z.object({
14
+ name: models_1.SharedListNameSchema,
15
+ config: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
16
+ });
17
+ UpdateSharedListCommand.ResponseSchema = zod_1.z.object({
18
+ response: models_1.SharedListsSchema,
19
+ });
20
+ })(UpdateSharedListCommand || (exports.UpdateSharedListCommand = UpdateSharedListCommand = {}));
@@ -1225,4 +1225,49 @@ exports.ERRORS = {
1225
1225
  message: 'Node integration name already exists',
1226
1226
  httpCode: 400,
1227
1227
  },
1228
+ SHARED_LIST_NOT_FOUND: {
1229
+ code: 'A245',
1230
+ message: 'Shared list not found',
1231
+ httpCode: 404,
1232
+ },
1233
+ SHARED_LIST_NAME_ALREADY_EXISTS: {
1234
+ code: 'A246',
1235
+ message: 'Shared list name already exists',
1236
+ httpCode: 400,
1237
+ },
1238
+ GET_ALL_SHARED_LISTS_ERROR: {
1239
+ code: 'A247',
1240
+ message: 'Get all shared lists error',
1241
+ httpCode: 500,
1242
+ },
1243
+ GET_SHARED_LIST_BY_NAME_ERROR: {
1244
+ code: 'A248',
1245
+ message: 'Get shared list by name error',
1246
+ httpCode: 500,
1247
+ },
1248
+ CREATE_SHARED_LIST_ERROR: {
1249
+ code: 'A249',
1250
+ message: 'Create shared list error',
1251
+ httpCode: 500,
1252
+ },
1253
+ UPDATE_SHARED_LIST_ERROR: {
1254
+ code: 'A250',
1255
+ message: 'Update shared list error',
1256
+ httpCode: 500,
1257
+ },
1258
+ DELETE_SHARED_LIST_ERROR: {
1259
+ code: 'A251',
1260
+ message: 'Delete shared list error',
1261
+ httpCode: 500,
1262
+ },
1263
+ INVALID_SHARED_LIST_CONFIG: {
1264
+ code: 'A252',
1265
+ message: 'Invalid shared list config',
1266
+ httpCode: 400,
1267
+ withMessage: (message) => ({
1268
+ code: 'A252',
1269
+ message,
1270
+ httpCode: 400,
1271
+ }),
1272
+ },
1228
1273
  };
@@ -40,6 +40,7 @@ __exportStar(require("./nodes.schema"), exports);
40
40
  __exportStar(require("./remnawave-settings"), exports);
41
41
  __exportStar(require("./resolved-proxy-config.schema"), exports);
42
42
  __exportStar(require("./response-rules"), exports);
43
+ __exportStar(require("./shared-list.schema"), exports);
43
44
  __exportStar(require("./snippets.schema"), exports);
44
45
  __exportStar(require("./subscripion-page-config.schema"), exports);
45
46
  __exportStar(require("./subscription-info.schema"), exports);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResolvedProxyConfigSchema = exports.ProxyEntryMetadataSchema = exports.SecurityVariantSchema = exports.TransportVariantSchema = exports.ProtocolVariantSchema = exports.RealitySecurityOptionsSchema = exports.TlsSecurityOptionsSchema = exports.HysteriaTransportOptionsSchema = exports.HysteriaProtocolOptionsSchema = exports.KcpTransportOptionsSchema = exports.GrpcTransportOptionsSchema = exports.HttpUpgradeTransportOptionsSchema = exports.WsTransportOptionsSchema = exports.XhttpTransportOptionsSchema = exports.TcpTransportOptionsSchema = exports.ShadowsocksProtocolOptionsSchema = exports.TrojanProtocolOptionsSchema = exports.VlessProtocolOptionsSchema = void 0;
3
+ exports.ResolvedProxyConfigSchema = exports.ResolvedProxyConfigBaseSchema = exports.ProxyEntryMetadataSchema = exports.SecurityVariantSchema = exports.TransportVariantSchema = exports.ProtocolVariantSchema = exports.RealitySecurityOptionsSchema = exports.TlsSecurityOptionsSchema = exports.HysteriaTransportOptionsSchema = exports.HysteriaProtocolOptionsSchema = exports.KcpTransportOptionsSchema = exports.GrpcTransportOptionsSchema = exports.HttpUpgradeTransportOptionsSchema = exports.WsTransportOptionsSchema = exports.XhttpTransportOptionsSchema = exports.TcpTransportOptionsSchema = exports.ShadowsocksProtocolOptionsSchema = exports.TrojanProtocolOptionsSchema = exports.VlessProtocolOptionsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
6
  const host_mapper_1 = require("./host-mapper");
@@ -113,10 +113,10 @@ const HysteriaProtocolSchema = zod_1.z.object({
113
113
  protocolOptions: exports.HysteriaProtocolOptionsSchema,
114
114
  });
115
115
  exports.ProtocolVariantSchema = zod_1.z.discriminatedUnion('protocol', [
116
- VlessProtocolSchema,
117
- TrojanProtocolSchema,
118
- ShadowsocksProtocolSchema,
119
- HysteriaProtocolSchema,
116
+ VlessProtocolSchema.meta({ title: 'vless' }),
117
+ TrojanProtocolSchema.meta({ title: 'trojan' }),
118
+ ShadowsocksProtocolSchema.meta({ title: 'shadowsocks' }),
119
+ HysteriaProtocolSchema.meta({ title: 'hysteria' }),
120
120
  ]);
121
121
  const TcpTransportSchema = zod_1.z.object({
122
122
  transport: zod_1.z.literal('tcp'),
@@ -147,13 +147,13 @@ const HysteriaTransportSchema = zod_1.z.object({
147
147
  transportOptions: exports.HysteriaTransportOptionsSchema,
148
148
  });
149
149
  exports.TransportVariantSchema = zod_1.z.discriminatedUnion('transport', [
150
- TcpTransportSchema,
151
- XHttpTransportSchema,
152
- WsTransportSchema,
153
- HttpUpgradeTransportSchema,
154
- GrpcTransportSchema,
155
- KcpTransportSchema,
156
- HysteriaTransportSchema,
150
+ TcpTransportSchema.meta({ title: 'tcp' }),
151
+ XHttpTransportSchema.meta({ title: 'xhttp' }),
152
+ WsTransportSchema.meta({ title: 'ws' }),
153
+ HttpUpgradeTransportSchema.meta({ title: 'httpupgrade' }),
154
+ GrpcTransportSchema.meta({ title: 'grpc' }),
155
+ KcpTransportSchema.meta({ title: 'kcp' }),
156
+ HysteriaTransportSchema.meta({ title: 'hysteria' }),
157
157
  ]);
158
158
  const TlsSecuritySchema = zod_1.z.object({
159
159
  security: zod_1.z.literal('tls'),
@@ -167,9 +167,9 @@ const NoneSecuritySchema = zod_1.z.object({
167
167
  security: zod_1.z.literal('none'),
168
168
  });
169
169
  exports.SecurityVariantSchema = zod_1.z.discriminatedUnion('security', [
170
- TlsSecuritySchema,
171
- RealitySecuritySchema,
172
- NoneSecuritySchema,
170
+ TlsSecuritySchema.meta({ title: 'tls' }),
171
+ RealitySecuritySchema.meta({ title: 'reality' }),
172
+ NoneSecuritySchema.meta({ title: 'none' }),
173
173
  ]);
174
174
  exports.ProxyEntryMetadataSchema = zod_1.z.object({
175
175
  uuid: zod_1.z.uuid(),
@@ -185,29 +185,10 @@ exports.ProxyEntryMetadataSchema = zod_1.z.object({
185
185
  vlessRouteId: zod_1.z.int().nullable(),
186
186
  rawInbound: zod_1.z.nullable(zod_1.z.unknown()),
187
187
  });
188
- exports.ResolvedProxyConfigSchema = zod_1.z.object({
188
+ exports.ResolvedProxyConfigBaseSchema = zod_1.z.object({
189
189
  finalRemark: zod_1.z.string(),
190
190
  address: zod_1.z.string(),
191
191
  port: zod_1.z.int().positive(),
192
- protocol: zod_1.z.enum(['vless', 'trojan', 'shadowsocks', 'hysteria']),
193
- protocolOptions: zod_1.z.union([
194
- exports.VlessProtocolOptionsSchema,
195
- exports.TrojanProtocolOptionsSchema,
196
- exports.ShadowsocksProtocolOptionsSchema,
197
- exports.HysteriaProtocolOptionsSchema,
198
- ]),
199
- transport: zod_1.z.enum(['tcp', 'xhttp', 'ws', 'httpupgrade', 'grpc', 'kcp', 'hysteria']),
200
- transportOptions: zod_1.z.union([
201
- exports.TcpTransportOptionsSchema,
202
- exports.XhttpTransportOptionsSchema,
203
- exports.WsTransportOptionsSchema,
204
- exports.HttpUpgradeTransportOptionsSchema,
205
- exports.GrpcTransportOptionsSchema,
206
- exports.KcpTransportOptionsSchema,
207
- exports.HysteriaTransportOptionsSchema,
208
- ]),
209
- security: zod_1.z.enum(['tls', 'reality', 'none']),
210
- securityOptions: zod_1.z.union([exports.TlsSecurityOptionsSchema, exports.RealitySecurityOptionsSchema]).optional(),
211
192
  streamOverrides: zod_1.z.object({
212
193
  finalMask: zod_1.z.nullable(zod_1.z.unknown()),
213
194
  sockopt: zod_1.z.nullable(zod_1.z.unknown()),
@@ -223,3 +204,6 @@ exports.ResolvedProxyConfigSchema = zod_1.z.object({
223
204
  }),
224
205
  metadata: exports.ProxyEntryMetadataSchema,
225
206
  });
207
+ exports.ResolvedProxyConfigSchema = exports.ResolvedProxyConfigBaseSchema.and(exports.ProtocolVariantSchema)
208
+ .and(exports.TransportVariantSchema)
209
+ .and(exports.SecurityVariantSchema);
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SharedListPreviewSchema = exports.SharedListsSchema = exports.SharedListNameSchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ exports.SharedListNameSchema = zod_1.default
9
+ .string()
10
+ .min(2, 'Name must be at least 2 characters')
11
+ .max(255, 'Name must be less than 255 characters')
12
+ .regex(/^[A-Za-z0-9_-]+$/, 'Name can only contain letters, numbers, underscores and dashes. The "ext:" prefix is added automatically');
13
+ exports.SharedListsSchema = zod_1.default.object({
14
+ name: exports.SharedListNameSchema,
15
+ config: zod_1.default.record(zod_1.default.string(), zod_1.default.unknown()),
16
+ });
17
+ exports.SharedListPreviewSchema = zod_1.default.object({
18
+ name: exports.SharedListNameSchema,
19
+ type: zod_1.default.string(),
20
+ itemsCount: zod_1.default.number(),
21
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "3.3.2",
3
+ "version": "3.4.0",
4
4
  "description": "A contract library for Remnawave Backend. It can be used in backend and frontend.",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/remnawave",