@remnawave/backend-contract 2.4.1 → 2.5.1

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 (31) hide show
  1. package/build/backend/commands/infra-billing/create-billing-node.command.d.ts +27 -27
  2. package/build/backend/commands/infra-billing/delete-billing-node-by-uuid.command.d.ts +27 -27
  3. package/build/backend/commands/infra-billing/get-billing-nodes.command.d.ts +27 -27
  4. package/build/backend/commands/infra-billing/update-billing-node.command.d.ts +27 -27
  5. package/build/backend/commands/subscription/get-subscription-info-by-short-uuid.command.d.ts +8 -8
  6. package/build/backend/commands/subscriptions/get-all-subscriptions.command.d.ts +12 -12
  7. package/build/backend/commands/subscriptions/get-by/get-raw-subscription-by-short-uuid.command.d.ts +4 -4
  8. package/build/backend/commands/subscriptions/get-by/get-subscription-by-short-uuid-protected.command.d.ts +8 -8
  9. package/build/backend/commands/subscriptions/get-by/get-subscription-by-username.command.d.ts +8 -8
  10. package/build/backend/commands/subscriptions/get-by/get-subscription-by-uuid.command.d.ts +8 -8
  11. package/build/backend/commands/system/get-nodes-metrics.command.d.ts +6 -6
  12. package/build/backend/commands/system/get-stats.command.d.ts +4 -4
  13. package/build/backend/constants/events/events.d.ts +9 -0
  14. package/build/backend/constants/events/events.d.ts.map +1 -1
  15. package/build/backend/constants/events/events.js +9 -1
  16. package/build/backend/models/index.d.ts +1 -0
  17. package/build/backend/models/index.d.ts.map +1 -1
  18. package/build/backend/models/index.js +1 -0
  19. package/build/backend/models/infra-billing-node.schema.d.ts +7 -7
  20. package/build/backend/models/subscription-info.schema.d.ts +4 -4
  21. package/build/backend/models/webhook/index.d.ts +2 -0
  22. package/build/backend/models/webhook/index.d.ts.map +1 -0
  23. package/build/backend/models/webhook/index.js +17 -0
  24. package/build/backend/models/webhook/webhook.schema.d.ts +2178 -0
  25. package/build/backend/models/webhook/webhook.schema.d.ts.map +1 -0
  26. package/build/backend/models/webhook/webhook.schema.js +105 -0
  27. package/build/frontend/constants/events/events.js +9 -1
  28. package/build/frontend/models/index.js +1 -0
  29. package/build/frontend/models/webhook/index.js +17 -0
  30. package/build/frontend/models/webhook/webhook.schema.js +105 -0
  31. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.schema.d.ts","sourceRoot":"","sources":["../../../../models/webhook/webhook.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
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.RemnawaveWebhookEventSchema = exports.RemnawaveWebhookCrmEvents = exports.RemnawaveWebhookErrorsEvents = exports.RemnawaveWebhookServiceEvents = exports.RemnawaveWebhookNodeEvents = exports.RemnawaveWebhookUserHwidDevicesEvents = exports.RemnawaveWebhookUserEvents = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ const hwid_user_device_schema_1 = require("../hwid-user-device.schema");
9
+ const extended_users_schema_1 = require("../extended-users.schema");
10
+ const constants_1 = require("../../constants");
11
+ const nodes_schema_1 = require("../nodes.schema");
12
+ exports.RemnawaveWebhookUserEvents = zod_1.default.object({
13
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.USER),
14
+ event: zod_1.default.enum([constants_1.EVENTS.USER.CREATED, ...Object.values(constants_1.EVENTS.USER)]),
15
+ timestamp: zod_1.default
16
+ .string()
17
+ .datetime()
18
+ .transform((str) => new Date(str)),
19
+ data: extended_users_schema_1.ExtendedUsersSchema,
20
+ meta: zod_1.default
21
+ .object({
22
+ notConnectedAfterHours: zod_1.default.number().int().nullable().optional(),
23
+ })
24
+ .nullable(),
25
+ });
26
+ exports.RemnawaveWebhookUserHwidDevicesEvents = zod_1.default.object({
27
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.USER_HWID_DEVICES),
28
+ event: zod_1.default.enum([constants_1.EVENTS.USER_HWID_DEVICES.ADDED, ...Object.values(constants_1.EVENTS.USER_HWID_DEVICES)]),
29
+ timestamp: zod_1.default
30
+ .string()
31
+ .datetime()
32
+ .transform((str) => new Date(str)),
33
+ data: zod_1.default.object({
34
+ user: extended_users_schema_1.ExtendedUsersSchema,
35
+ hwidUserDevice: hwid_user_device_schema_1.HwidUserDeviceSchema,
36
+ }),
37
+ });
38
+ exports.RemnawaveWebhookNodeEvents = zod_1.default.object({
39
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.NODE),
40
+ event: zod_1.default.enum([constants_1.EVENTS.NODE.CREATED, ...Object.values(constants_1.EVENTS.NODE)]),
41
+ timestamp: zod_1.default
42
+ .string()
43
+ .datetime()
44
+ .transform((str) => new Date(str)),
45
+ data: nodes_schema_1.NodesSchema,
46
+ });
47
+ exports.RemnawaveWebhookServiceEvents = zod_1.default.object({
48
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.SERVICE),
49
+ event: zod_1.default.enum([constants_1.EVENTS.SERVICE.PANEL_STARTED, ...Object.values(constants_1.EVENTS.SERVICE)]),
50
+ timestamp: zod_1.default
51
+ .string()
52
+ .datetime()
53
+ .transform((str) => new Date(str)),
54
+ data: zod_1.default.object({
55
+ loginAttempt: zod_1.default
56
+ .object({
57
+ username: zod_1.default.string(),
58
+ ip: zod_1.default.string(),
59
+ userAgent: zod_1.default.string(),
60
+ description: zod_1.default.string().optional(),
61
+ password: zod_1.default.string().optional(),
62
+ })
63
+ .optional(),
64
+ panelVersion: zod_1.default.string().optional(),
65
+ }),
66
+ });
67
+ exports.RemnawaveWebhookErrorsEvents = zod_1.default.object({
68
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.ERRORS),
69
+ event: zod_1.default.enum([
70
+ constants_1.EVENTS.ERRORS.BANDWIDTH_USAGE_THRESHOLD_REACHED_MAX_NOTIFICATIONS,
71
+ ...Object.values(constants_1.EVENTS.ERRORS),
72
+ ]),
73
+ timestamp: zod_1.default
74
+ .string()
75
+ .datetime()
76
+ .transform((str) => new Date(str)),
77
+ data: zod_1.default.object({
78
+ description: zod_1.default.string(),
79
+ }),
80
+ });
81
+ exports.RemnawaveWebhookCrmEvents = zod_1.default.object({
82
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.CRM),
83
+ event: zod_1.default.enum([constants_1.EVENTS.CRM.INFRA_BILLING_NODE_PAYMENT_IN_7_DAYS, ...Object.values(constants_1.EVENTS.CRM)]),
84
+ timestamp: zod_1.default
85
+ .string()
86
+ .datetime()
87
+ .transform((str) => new Date(str)),
88
+ data: zod_1.default.object({
89
+ providerName: zod_1.default.string(),
90
+ nodeName: zod_1.default.string(),
91
+ nextBillingAt: zod_1.default
92
+ .string()
93
+ .datetime()
94
+ .transform((str) => new Date(str)),
95
+ loginUrl: zod_1.default.string(),
96
+ }),
97
+ });
98
+ exports.RemnawaveWebhookEventSchema = zod_1.default.discriminatedUnion('scope', [
99
+ exports.RemnawaveWebhookUserEvents,
100
+ exports.RemnawaveWebhookUserHwidDevicesEvents,
101
+ exports.RemnawaveWebhookNodeEvents,
102
+ exports.RemnawaveWebhookServiceEvents,
103
+ exports.RemnawaveWebhookErrorsEvents,
104
+ exports.RemnawaveWebhookCrmEvents,
105
+ ]);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVENTS = void 0;
3
+ exports.EVENTS_SCOPES = exports.EVENTS = void 0;
4
4
  exports.EVENTS = {
5
5
  USER: {
6
6
  CREATED: 'user.created',
@@ -71,3 +71,11 @@ exports.EVENTS = {
71
71
  CATCH_ALL_ERRORS_EVENTS: 'errors.*',
72
72
  CATCH_ALL_CRM_EVENTS: 'crm.*',
73
73
  };
74
+ exports.EVENTS_SCOPES = {
75
+ USER: 'user',
76
+ USER_HWID_DEVICES: 'user_hwid_devices',
77
+ NODE: 'node',
78
+ SERVICE: 'service',
79
+ ERRORS: 'errors',
80
+ CRM: 'crm',
81
+ };
@@ -43,3 +43,4 @@ __exportStar(require("./subscription-settings.schema"), exports);
43
43
  __exportStar(require("./subscription-template.schema"), exports);
44
44
  __exportStar(require("./tanstack-query"), exports);
45
45
  __exportStar(require("./users.schema"), exports);
46
+ __exportStar(require("./webhook"), 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("./webhook.schema"), exports);
@@ -0,0 +1,105 @@
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.RemnawaveWebhookEventSchema = exports.RemnawaveWebhookCrmEvents = exports.RemnawaveWebhookErrorsEvents = exports.RemnawaveWebhookServiceEvents = exports.RemnawaveWebhookNodeEvents = exports.RemnawaveWebhookUserHwidDevicesEvents = exports.RemnawaveWebhookUserEvents = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ const hwid_user_device_schema_1 = require("../hwid-user-device.schema");
9
+ const extended_users_schema_1 = require("../extended-users.schema");
10
+ const constants_1 = require("../../constants");
11
+ const nodes_schema_1 = require("../nodes.schema");
12
+ exports.RemnawaveWebhookUserEvents = zod_1.default.object({
13
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.USER),
14
+ event: zod_1.default.enum([constants_1.EVENTS.USER.CREATED, ...Object.values(constants_1.EVENTS.USER)]),
15
+ timestamp: zod_1.default
16
+ .string()
17
+ .datetime()
18
+ .transform((str) => new Date(str)),
19
+ data: extended_users_schema_1.ExtendedUsersSchema,
20
+ meta: zod_1.default
21
+ .object({
22
+ notConnectedAfterHours: zod_1.default.number().int().nullable().optional(),
23
+ })
24
+ .nullable(),
25
+ });
26
+ exports.RemnawaveWebhookUserHwidDevicesEvents = zod_1.default.object({
27
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.USER_HWID_DEVICES),
28
+ event: zod_1.default.enum([constants_1.EVENTS.USER_HWID_DEVICES.ADDED, ...Object.values(constants_1.EVENTS.USER_HWID_DEVICES)]),
29
+ timestamp: zod_1.default
30
+ .string()
31
+ .datetime()
32
+ .transform((str) => new Date(str)),
33
+ data: zod_1.default.object({
34
+ user: extended_users_schema_1.ExtendedUsersSchema,
35
+ hwidUserDevice: hwid_user_device_schema_1.HwidUserDeviceSchema,
36
+ }),
37
+ });
38
+ exports.RemnawaveWebhookNodeEvents = zod_1.default.object({
39
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.NODE),
40
+ event: zod_1.default.enum([constants_1.EVENTS.NODE.CREATED, ...Object.values(constants_1.EVENTS.NODE)]),
41
+ timestamp: zod_1.default
42
+ .string()
43
+ .datetime()
44
+ .transform((str) => new Date(str)),
45
+ data: nodes_schema_1.NodesSchema,
46
+ });
47
+ exports.RemnawaveWebhookServiceEvents = zod_1.default.object({
48
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.SERVICE),
49
+ event: zod_1.default.enum([constants_1.EVENTS.SERVICE.PANEL_STARTED, ...Object.values(constants_1.EVENTS.SERVICE)]),
50
+ timestamp: zod_1.default
51
+ .string()
52
+ .datetime()
53
+ .transform((str) => new Date(str)),
54
+ data: zod_1.default.object({
55
+ loginAttempt: zod_1.default
56
+ .object({
57
+ username: zod_1.default.string(),
58
+ ip: zod_1.default.string(),
59
+ userAgent: zod_1.default.string(),
60
+ description: zod_1.default.string().optional(),
61
+ password: zod_1.default.string().optional(),
62
+ })
63
+ .optional(),
64
+ panelVersion: zod_1.default.string().optional(),
65
+ }),
66
+ });
67
+ exports.RemnawaveWebhookErrorsEvents = zod_1.default.object({
68
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.ERRORS),
69
+ event: zod_1.default.enum([
70
+ constants_1.EVENTS.ERRORS.BANDWIDTH_USAGE_THRESHOLD_REACHED_MAX_NOTIFICATIONS,
71
+ ...Object.values(constants_1.EVENTS.ERRORS),
72
+ ]),
73
+ timestamp: zod_1.default
74
+ .string()
75
+ .datetime()
76
+ .transform((str) => new Date(str)),
77
+ data: zod_1.default.object({
78
+ description: zod_1.default.string(),
79
+ }),
80
+ });
81
+ exports.RemnawaveWebhookCrmEvents = zod_1.default.object({
82
+ scope: zod_1.default.literal(constants_1.EVENTS_SCOPES.CRM),
83
+ event: zod_1.default.enum([constants_1.EVENTS.CRM.INFRA_BILLING_NODE_PAYMENT_IN_7_DAYS, ...Object.values(constants_1.EVENTS.CRM)]),
84
+ timestamp: zod_1.default
85
+ .string()
86
+ .datetime()
87
+ .transform((str) => new Date(str)),
88
+ data: zod_1.default.object({
89
+ providerName: zod_1.default.string(),
90
+ nodeName: zod_1.default.string(),
91
+ nextBillingAt: zod_1.default
92
+ .string()
93
+ .datetime()
94
+ .transform((str) => new Date(str)),
95
+ loginUrl: zod_1.default.string(),
96
+ }),
97
+ });
98
+ exports.RemnawaveWebhookEventSchema = zod_1.default.discriminatedUnion('scope', [
99
+ exports.RemnawaveWebhookUserEvents,
100
+ exports.RemnawaveWebhookUserHwidDevicesEvents,
101
+ exports.RemnawaveWebhookNodeEvents,
102
+ exports.RemnawaveWebhookServiceEvents,
103
+ exports.RemnawaveWebhookErrorsEvents,
104
+ exports.RemnawaveWebhookCrmEvents,
105
+ ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "2.4.1",
3
+ "version": "2.5.1",
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.",