@conduitplatform/grpc-sdk 0.14.6 → 0.15.0-rc.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/dist/classes/ConduitActiveSchema.d.ts +12 -12
- package/dist/classes/ConduitActiveSchema.js +2 -2
- package/dist/classes/ConduitActiveSchema.js.map +1 -1
- package/dist/classes/ConduitModule.js.map +1 -1
- package/dist/classes/ConduitParser.d.ts +5 -2
- package/dist/classes/ConduitParser.js +8 -5
- package/dist/classes/ConduitParser.js.map +1 -1
- package/dist/classes/ConduitSchema.d.ts +3 -4
- package/dist/classes/ConduitSchema.js +2 -9
- package/dist/classes/ConduitSchema.js.map +1 -1
- package/dist/classes/ConduitServiceModule.js +29 -3
- package/dist/classes/ConduitServiceModule.js.map +1 -1
- package/dist/classes/GrpcServer.js +1 -3
- package/dist/classes/GrpcServer.js.map +1 -1
- package/dist/classes/HealthCheck.js +4 -1
- package/dist/classes/HealthCheck.js.map +1 -1
- package/dist/classes/ManagedModule.d.ts +12 -1
- package/dist/classes/ManagedModule.js +32 -14
- package/dist/classes/ManagedModule.js.map +1 -1
- package/dist/classes/ModuleManager.js +27 -21
- package/dist/classes/ModuleManager.js.map +1 -1
- package/dist/classes/index.d.ts +0 -7
- package/dist/classes/index.js +0 -7
- package/dist/classes/index.js.map +1 -1
- package/dist/helpers/index.d.ts +0 -2
- package/dist/helpers/index.js +0 -2
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/wrapGrpcFunctions.js +32 -15
- package/dist/helpers/wrapGrpcFunctions.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +27 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces/ConduitSchemaExtension.d.ts +5 -0
- package/dist/interfaces/ConduitSchemaExtension.js +3 -0
- package/dist/interfaces/ConduitSchemaExtension.js.map +1 -0
- package/dist/interfaces/Indexable.d.ts +1 -0
- package/dist/interfaces/Model.d.ts +1 -1
- package/dist/interfaces/index.d.ts +1 -3
- package/dist/interfaces/index.js +1 -3
- package/dist/interfaces/index.js.map +1 -1
- package/dist/metrics/MetricsServer.d.ts +9 -0
- package/dist/metrics/MetricsServer.js +94 -0
- package/dist/metrics/MetricsServer.js.map +1 -0
- package/dist/metrics/clientMiddleware.d.ts +2 -0
- package/dist/metrics/clientMiddleware.js +265 -0
- package/dist/metrics/clientMiddleware.js.map +1 -0
- package/dist/metrics/config/defaults.d.ts +61 -0
- package/dist/metrics/config/defaults.js +63 -0
- package/dist/metrics/config/defaults.js.map +1 -0
- package/dist/metrics/index.d.ts +26 -0
- package/dist/metrics/index.js +176 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/modules/admin/index.d.ts +3 -9
- package/dist/modules/admin/index.js +1 -92
- package/dist/modules/admin/index.js.map +1 -1
- package/dist/modules/authorization/index.d.ts +13 -0
- package/dist/modules/authorization/index.js +53 -0
- package/dist/modules/authorization/index.js.map +1 -0
- package/dist/modules/config/index.d.ts +1 -3
- package/dist/modules/config/index.js +2 -19
- package/dist/modules/config/index.js.map +1 -1
- package/dist/modules/database/index.d.ts +27 -18
- package/dist/modules/database/index.js +23 -25
- package/dist/modules/database/index.js.map +1 -1
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +2 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/router/index.d.ts +2 -2
- package/dist/modules/router/index.js.map +1 -1
- package/dist/protoUtils/authentication.d.ts +2 -2
- package/dist/protoUtils/authentication.js +47 -57
- package/dist/protoUtils/authentication.js.map +1 -1
- package/dist/protoUtils/authorization.d.ts +293 -0
- package/dist/protoUtils/authorization.js +727 -0
- package/dist/protoUtils/authorization.js.map +1 -0
- package/dist/protoUtils/chat.d.ts +1 -1
- package/dist/protoUtils/chat.js +44 -58
- package/dist/protoUtils/chat.js.map +1 -1
- package/dist/protoUtils/core.d.ts +2 -41
- package/dist/protoUtils/core.js +124 -169
- package/dist/protoUtils/core.js.map +1 -1
- package/dist/protoUtils/database.d.ts +29 -65
- package/dist/protoUtils/database.js +160 -351
- package/dist/protoUtils/database.js.map +1 -1
- package/dist/protoUtils/email.d.ts +1 -1
- package/dist/protoUtils/email.js +54 -81
- package/dist/protoUtils/email.js.map +1 -1
- package/dist/protoUtils/forms.d.ts +1 -1
- package/dist/protoUtils/forms.js +12 -16
- package/dist/protoUtils/forms.js.map +1 -1
- package/dist/protoUtils/grpc_health_check.d.ts +1 -1
- package/dist/protoUtils/grpc_health_check.js +21 -28
- package/dist/protoUtils/grpc_health_check.js.map +1 -1
- package/dist/protoUtils/push-notifications.d.ts +1 -1
- package/dist/protoUtils/push-notifications.js +46 -61
- package/dist/protoUtils/push-notifications.js.map +1 -1
- package/dist/protoUtils/router.d.ts +1 -1
- package/dist/protoUtils/router.js +56 -75
- package/dist/protoUtils/router.js.map +1 -1
- package/dist/protoUtils/sms.d.ts +1 -1
- package/dist/protoUtils/sms.js +44 -62
- package/dist/protoUtils/sms.js.map +1 -1
- package/dist/protoUtils/storage.d.ts +1 -1
- package/dist/protoUtils/storage.js +63 -71
- package/dist/protoUtils/storage.js.map +1 -1
- package/dist/{classes → routing}/ConduitRouteReturn.d.ts +1 -1
- package/dist/{classes → routing}/ConduitRouteReturn.js +9 -1
- package/dist/routing/ConduitRouteReturn.js.map +1 -0
- package/dist/{classes/Routing → routing}/RouteBuilder.d.ts +5 -8
- package/dist/{classes/Routing → routing}/RouteBuilder.js +1 -1
- package/dist/routing/RouteBuilder.js.map +1 -0
- package/dist/routing/RoutingJsonConstructor.d.ts +3 -0
- package/dist/routing/RoutingJsonConstructor.js +29 -0
- package/dist/routing/RoutingJsonConstructor.js.map +1 -0
- package/dist/{classes/Routing → routing}/RoutingManager.d.ts +11 -6
- package/dist/{classes/Routing → routing}/RoutingManager.js +43 -58
- package/dist/routing/RoutingManager.js.map +1 -0
- package/dist/routing/RoutingUtilities.d.ts +15 -0
- package/dist/{helpers → routing}/RoutingUtilities.js +14 -10
- package/dist/routing/RoutingUtilities.js.map +1 -0
- package/dist/routing/index.d.ts +7 -0
- package/dist/routing/index.js +24 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/interfaces/ConduitMiddleware.d.ts +11 -0
- package/dist/routing/interfaces/ConduitMiddleware.js +3 -0
- package/dist/routing/interfaces/ConduitMiddleware.js.map +1 -0
- package/dist/routing/interfaces/ConduitRoute.d.ts +8 -0
- package/dist/routing/interfaces/ConduitRoute.js +3 -0
- package/dist/routing/interfaces/ConduitRoute.js.map +1 -0
- package/dist/routing/interfaces/ConduitSocket.d.ts +5 -0
- package/dist/routing/interfaces/ConduitSocket.js +3 -0
- package/dist/routing/interfaces/ConduitSocket.js.map +1 -0
- package/dist/{interfaces → routing/interfaces}/Route.d.ts +7 -4
- package/dist/{interfaces → routing/interfaces}/Route.js +0 -0
- package/dist/routing/interfaces/Route.js.map +1 -0
- package/dist/{interfaces → routing/interfaces}/Socket.d.ts +3 -3
- package/dist/{interfaces/Middleware.js → routing/interfaces/Socket.js} +1 -1
- package/dist/routing/interfaces/Socket.js.map +1 -0
- package/dist/routing/interfaces/index.d.ts +6 -0
- package/dist/routing/interfaces/index.js +23 -0
- package/dist/routing/interfaces/index.js.map +1 -0
- package/dist/routing/interfaces/types.d.ts +32 -0
- package/dist/routing/interfaces/types.js +3 -0
- package/dist/routing/interfaces/types.js.map +1 -0
- package/dist/{helpers → routing}/wrapRouterFunctions.d.ts +2 -3
- package/dist/{helpers → routing}/wrapRouterFunctions.js +22 -22
- package/dist/routing/wrapRouterFunctions.js.map +1 -0
- package/dist/types/db.d.ts +24 -0
- package/dist/types/db.js +3 -0
- package/dist/types/db.js.map +1 -0
- package/dist/types/index.d.ts +8 -29
- package/dist/types/index.js +8 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +5 -1
- package/dist/classes/ConduitMiddleware.d.ts +0 -8
- package/dist/classes/ConduitMiddleware.js +0 -26
- package/dist/classes/ConduitMiddleware.js.map +0 -1
- package/dist/classes/ConduitRoute.d.ts +0 -12
- package/dist/classes/ConduitRoute.js +0 -44
- package/dist/classes/ConduitRoute.js.map +0 -1
- package/dist/classes/ConduitRouteReturn.js.map +0 -1
- package/dist/classes/ConduitSchemaExtension.d.ts +0 -7
- package/dist/classes/ConduitSchemaExtension.js +0 -19
- package/dist/classes/ConduitSchemaExtension.js.map +0 -1
- package/dist/classes/ConduitSocket.d.ts +0 -9
- package/dist/classes/ConduitSocket.js +0 -27
- package/dist/classes/ConduitSocket.js.map +0 -1
- package/dist/classes/Routing/RouteBuilder.js.map +0 -1
- package/dist/classes/Routing/RoutingManager.js.map +0 -1
- package/dist/helpers/RoutingJsonConstructor.d.ts +0 -9
- package/dist/helpers/RoutingJsonConstructor.js +0 -89
- package/dist/helpers/RoutingJsonConstructor.js.map +0 -1
- package/dist/helpers/RoutingUtilities.d.ts +0 -13
- package/dist/helpers/RoutingUtilities.js.map +0 -1
- package/dist/helpers/wrapRouterFunctions.js.map +0 -1
- package/dist/interfaces/Middleware.d.ts +0 -7
- package/dist/interfaces/Middleware.js.map +0 -1
- package/dist/interfaces/Route.js.map +0 -1
- package/dist/interfaces/Socket.js +0 -9
- package/dist/interfaces/Socket.js.map +0 -1
|
@@ -37,101 +37,67 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.RoutingManager = void 0;
|
|
40
|
-
var
|
|
41
|
-
var RoutingUtilities_1 = require("../../helpers/RoutingUtilities");
|
|
40
|
+
var modules_1 = require("../modules");
|
|
42
41
|
var RouteBuilder_1 = require("./RouteBuilder");
|
|
42
|
+
var RoutingUtilities_1 = require("./RoutingUtilities");
|
|
43
|
+
var Route_1 = require("./interfaces/Route");
|
|
43
44
|
var RoutingManager = /** @class */ (function () {
|
|
44
45
|
function RoutingManager(_router, _server) {
|
|
45
46
|
this._router = _router;
|
|
46
47
|
this._server = _server;
|
|
47
48
|
this._moduleRoutes = {};
|
|
48
49
|
this._routeHandlers = {};
|
|
50
|
+
this.isAdmin = false;
|
|
51
|
+
if (_router instanceof modules_1.Admin) {
|
|
52
|
+
this.isAdmin = true;
|
|
53
|
+
}
|
|
49
54
|
}
|
|
50
55
|
RoutingManager.prototype.get = function (path) {
|
|
51
|
-
return new RouteBuilder_1.RouteBuilder(this).method(
|
|
56
|
+
return new RouteBuilder_1.RouteBuilder(this).method(Route_1.ConduitRouteActions.GET).path(path);
|
|
52
57
|
};
|
|
53
58
|
RoutingManager.prototype.post = function (path) {
|
|
54
|
-
return new RouteBuilder_1.RouteBuilder(this).method(
|
|
59
|
+
return new RouteBuilder_1.RouteBuilder(this).method(Route_1.ConduitRouteActions.POST).path(path);
|
|
55
60
|
};
|
|
56
61
|
RoutingManager.prototype.delete = function (path) {
|
|
57
|
-
return new RouteBuilder_1.RouteBuilder(this).method(
|
|
62
|
+
return new RouteBuilder_1.RouteBuilder(this).method(Route_1.ConduitRouteActions.DELETE).path(path);
|
|
58
63
|
};
|
|
59
64
|
RoutingManager.prototype.update = function (path) {
|
|
60
|
-
return new RouteBuilder_1.RouteBuilder(this).method(
|
|
65
|
+
return new RouteBuilder_1.RouteBuilder(this).method(Route_1.ConduitRouteActions.UPDATE).path(path);
|
|
61
66
|
};
|
|
62
67
|
RoutingManager.prototype.patch = function (path) {
|
|
63
|
-
return new RouteBuilder_1.RouteBuilder(this).method(
|
|
68
|
+
return new RouteBuilder_1.RouteBuilder(this).method(Route_1.ConduitRouteActions.PATCH).path(path);
|
|
64
69
|
};
|
|
65
70
|
RoutingManager.prototype.clear = function () {
|
|
66
71
|
this._moduleRoutes = {};
|
|
67
72
|
this._routeHandlers = {};
|
|
68
73
|
};
|
|
69
74
|
RoutingManager.prototype.middleware = function (input, handler) {
|
|
70
|
-
var routeObject = {
|
|
75
|
+
var routeObject = this.parseRouteObject({
|
|
71
76
|
options: input,
|
|
72
77
|
grpcFunction: input.name,
|
|
73
|
-
};
|
|
74
|
-
if (!routeObject.options.middlewares) {
|
|
75
|
-
routeObject.options.middlewares = [];
|
|
76
|
-
}
|
|
77
|
-
for (var option in routeObject.options) {
|
|
78
|
-
if (!routeObject.options.hasOwnProperty(option))
|
|
79
|
-
continue;
|
|
80
|
-
if (option === 'middlewares')
|
|
81
|
-
continue;
|
|
82
|
-
if (typeof routeObject.options[option] === 'string' ||
|
|
83
|
-
routeObject.options[option] instanceof String)
|
|
84
|
-
continue;
|
|
85
|
-
routeObject.options[option] = JSON.stringify(routeObject.options[option]);
|
|
86
|
-
}
|
|
78
|
+
});
|
|
87
79
|
this._moduleRoutes[routeObject.grpcFunction] = routeObject;
|
|
88
80
|
this._routeHandlers[routeObject.grpcFunction] = handler;
|
|
89
81
|
};
|
|
90
82
|
RoutingManager.prototype.route = function (input, type, handler) {
|
|
91
|
-
var routeObject = {
|
|
83
|
+
var routeObject = this.parseRouteObject({
|
|
92
84
|
options: input,
|
|
93
85
|
returns: {
|
|
94
86
|
name: type.name,
|
|
95
87
|
fields: JSON.stringify(type.fields),
|
|
96
88
|
},
|
|
97
89
|
grpcFunction: this.generateGrpcName(input),
|
|
98
|
-
};
|
|
99
|
-
if (!routeObject.options.middlewares) {
|
|
100
|
-
routeObject.options.middlewares = [];
|
|
101
|
-
}
|
|
102
|
-
for (var option in routeObject.options) {
|
|
103
|
-
if (!routeObject.options.hasOwnProperty(option))
|
|
104
|
-
continue;
|
|
105
|
-
if (option === 'middlewares')
|
|
106
|
-
continue;
|
|
107
|
-
if (typeof routeObject.options[option] === 'string' ||
|
|
108
|
-
routeObject.options[option] instanceof String)
|
|
109
|
-
continue;
|
|
110
|
-
routeObject.options[option] = JSON.stringify(routeObject.options[option]);
|
|
111
|
-
}
|
|
90
|
+
});
|
|
112
91
|
this._moduleRoutes[routeObject.grpcFunction] = routeObject;
|
|
113
92
|
this._routeHandlers[routeObject.grpcFunction] = handler;
|
|
114
93
|
};
|
|
115
94
|
RoutingManager.prototype.socket = function (input, events) {
|
|
116
95
|
var _this = this;
|
|
117
|
-
var
|
|
96
|
+
var eventsObj = {};
|
|
97
|
+
var routeObject = this.parseRouteObject({
|
|
118
98
|
options: input,
|
|
119
99
|
events: '',
|
|
120
|
-
};
|
|
121
|
-
var eventsObj = {};
|
|
122
|
-
if (!routeObject.options.middlewares) {
|
|
123
|
-
routeObject.options.middlewares = [];
|
|
124
|
-
}
|
|
125
|
-
for (var option in routeObject.options) {
|
|
126
|
-
if (!routeObject.options.hasOwnProperty(option))
|
|
127
|
-
continue;
|
|
128
|
-
if (option === 'middlewares')
|
|
129
|
-
continue;
|
|
130
|
-
if (typeof routeObject.options[option] === 'string' ||
|
|
131
|
-
routeObject.options[option] instanceof String)
|
|
132
|
-
continue;
|
|
133
|
-
routeObject.options[option] = JSON.stringify(routeObject.options[option]);
|
|
134
|
-
}
|
|
100
|
+
});
|
|
135
101
|
var primary;
|
|
136
102
|
Object.keys(events).forEach(function (eventName) {
|
|
137
103
|
var _a, _b, _c;
|
|
@@ -153,18 +119,21 @@ var RoutingManager = /** @class */ (function () {
|
|
|
153
119
|
};
|
|
154
120
|
RoutingManager.prototype.registerRoutes = function () {
|
|
155
121
|
return __awaiter(this, void 0, void 0, function () {
|
|
156
|
-
var modifiedFunctions, protoDescriptions;
|
|
122
|
+
var modifiedFunctions, protoDescriptions, paths;
|
|
157
123
|
return __generator(this, function (_a) {
|
|
158
124
|
switch (_a.label) {
|
|
159
125
|
case 0:
|
|
160
126
|
if (Object.keys(this._routeHandlers).length === 0)
|
|
161
127
|
return [2 /*return*/];
|
|
162
|
-
modifiedFunctions = (0, RoutingUtilities_1.wrapFunctionsAsync)(this._routeHandlers);
|
|
163
|
-
protoDescriptions = (0, RoutingUtilities_1.constructProtoFile)(this._router.moduleName, Object.values(this._moduleRoutes));
|
|
164
|
-
return [4 /*yield*/, this._server.addService(protoDescriptions.path, protoDescriptions.name + '.router.Router', modifiedFunctions)];
|
|
128
|
+
modifiedFunctions = (0, RoutingUtilities_1.wrapFunctionsAsync)(this._routeHandlers, this.isAdmin ? 'admin' : 'client');
|
|
129
|
+
protoDescriptions = (0, RoutingUtilities_1.constructProtoFile)(this._router.moduleName, Object.values(this._moduleRoutes), this.isAdmin);
|
|
130
|
+
return [4 /*yield*/, this._server.addService(protoDescriptions.path, protoDescriptions.name + (this.isAdmin ? '.admin.Admin' : '.router.Router'), modifiedFunctions)];
|
|
165
131
|
case 1:
|
|
166
132
|
_a.sent();
|
|
167
|
-
|
|
133
|
+
paths = Object.values(this._moduleRoutes);
|
|
134
|
+
return [2 /*return*/, this._router.register(this.isAdmin
|
|
135
|
+
? paths
|
|
136
|
+
: paths, protoDescriptions.file)];
|
|
168
137
|
}
|
|
169
138
|
});
|
|
170
139
|
});
|
|
@@ -187,6 +156,22 @@ var RoutingManager = /** @class */ (function () {
|
|
|
187
156
|
.map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); })
|
|
188
157
|
.join('');
|
|
189
158
|
};
|
|
159
|
+
RoutingManager.prototype.parseRouteObject = function (routeObject) {
|
|
160
|
+
if (!routeObject.options.middlewares) {
|
|
161
|
+
routeObject.options.middlewares = [];
|
|
162
|
+
}
|
|
163
|
+
for (var option in routeObject.options) {
|
|
164
|
+
if (!routeObject.options.hasOwnProperty(option))
|
|
165
|
+
continue;
|
|
166
|
+
if (option === 'middlewares')
|
|
167
|
+
continue;
|
|
168
|
+
if (typeof routeObject.options[option] === 'string' ||
|
|
169
|
+
routeObject.options[option] instanceof String)
|
|
170
|
+
continue;
|
|
171
|
+
routeObject.options[option] = JSON.stringify(routeObject.options[option]);
|
|
172
|
+
}
|
|
173
|
+
return routeObject;
|
|
174
|
+
};
|
|
190
175
|
return RoutingManager;
|
|
191
176
|
}());
|
|
192
177
|
exports.RoutingManager = RoutingManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingManager.js","sourceRoot":"","sources":["../../src/routing/RoutingManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RequestHandlers } from './wrapRouterFunctions';
|
|
2
|
+
import { ConduitRouteObject } from './interfaces/Route';
|
|
3
|
+
import { SocketProtoDescription } from './interfaces/Socket';
|
|
4
|
+
import { Indexable } from '../interfaces';
|
|
5
|
+
export declare function constructProtoFile(moduleName: string, paths: (ConduitRouteObject | SocketProtoDescription)[], isAdmin?: boolean): {
|
|
6
|
+
path: string;
|
|
7
|
+
name: string;
|
|
8
|
+
file: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function wrapFunctionsAsync(functions: {
|
|
11
|
+
[name: string]: RequestHandlers;
|
|
12
|
+
}, routerType: 'admin' | 'client'): {
|
|
13
|
+
[name: string]: (call: Indexable, callback?: Indexable) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare function createProtoFunctions(paths: (ConduitRouteObject | SocketProtoDescription)[], isAdmin: boolean): string;
|
|
@@ -7,11 +7,13 @@ exports.createProtoFunctions = exports.wrapFunctionsAsync = exports.constructPro
|
|
|
7
7
|
var wrapRouterFunctions_1 = require("./wrapRouterFunctions");
|
|
8
8
|
var path_1 = __importDefault(require("path"));
|
|
9
9
|
var fs_1 = __importDefault(require("fs"));
|
|
10
|
-
var protofile_template = "\nsyntax = \"proto3\";\npackage MODULE_NAME.router;\n\nservice Router {\n MODULE_FUNCTIONS\n}\n\nmessage RouterRequest {\n string params = 1;\n string path = 2;\n string headers = 3;\n string context = 4;\n}\n\nmessage RouterResponse {\n string result = 1;\n string redirect = 2;\n repeated Cookie setCookies = 3;\n repeated Cookie removeCookies = 4;\n}\n\nmessage SocketRequest {\n string event = 1;\n string socketId = 2;\n string params = 3;\n string context = 4;\n}\n\nmessage Cookie {\n string name = 1;\n optional string value = 2;\n Options options = 3;\n}\n\nmessage Options {\n bool httpOnly = 1;\n bool secure = 2;\n bool signed = 3;\n int32 maxAge = 4;\n string path = 5;\n string domain = 6;\n string sameSite = 7;\n \n}\nmessage SocketResponse {\n string event = 1;\n string data = 2;\n repeated string receivers = 3;\n repeated string rooms = 4;\n}\n";
|
|
11
|
-
|
|
10
|
+
var protofile_template = "\nsyntax = \"proto3\";\npackage MODULE_NAME.router;\n\nservice Router {\n MODULE_FUNCTIONS\n}\n\nmessage RouterRequest {\n string params = 1;\n string path = 2;\n string headers = 3;\n string context = 4;\n string cookies = 5;\n}\n\nmessage RouterResponse {\n string result = 1;\n string redirect = 2;\n repeated Cookie setCookies = 3;\n repeated Cookie removeCookies = 4;\n}\n\nmessage SocketRequest {\n string event = 1;\n string socketId = 2;\n string params = 3;\n string context = 4;\n}\n\nmessage Cookie {\n string name = 1;\n optional string value = 2;\n Options options = 3;\n}\n\nmessage Options {\n bool httpOnly = 1;\n bool secure = 2;\n bool signed = 3;\n int32 maxAge = 4;\n string path = 5;\n string domain = 6;\n string sameSite = 7;\n \n}\nmessage SocketResponse {\n string event = 1;\n string data = 2;\n repeated string receivers = 3;\n repeated string rooms = 4;\n}\n";
|
|
11
|
+
var admin_protofile_template = "\nsyntax = \"proto3\";\npackage MODULE_NAME.admin;\n\nservice Admin {\n MODULE_FUNCTIONS\n}\n\nmessage AdminRequest {\n string params = 1;\n string path = 2;\n string headers = 3;\n string context = 4;\n string cookies = 5;\n}\n\nmessage AdminResponse {\n string result = 1;\n string redirect = 2;\n repeated Cookie setCookies = 3;\n repeated Cookie removeCookies = 4;\n}\n\nmessage SocketRequest {\n string event = 1;\n string socketId = 2;\n string params = 3;\n string context = 4;\n}\n\nmessage Cookie {\n string name = 1;\n optional string value = 2;\n Options options = 3;\n}\n\nmessage Options {\n bool httpOnly = 1;\n bool secure = 2;\n bool signed = 3;\n int32 maxAge = 4;\n string path = 5;\n string domain = 6;\n string sameSite = 7;\n \n}\nmessage SocketResponse {\n string event = 1;\n string data = 2;\n repeated string receivers = 3;\n repeated string rooms = 4;\n}\n";
|
|
12
|
+
function constructProtoFile(moduleName, paths, isAdmin) {
|
|
13
|
+
if (isAdmin === void 0) { isAdmin = false; }
|
|
12
14
|
var formattedModuleName = getFormattedModuleName(moduleName);
|
|
13
|
-
var protoFunctions = createProtoFunctions(paths);
|
|
14
|
-
var protoFile = protofile_template
|
|
15
|
+
var protoFunctions = createProtoFunctions(paths, isAdmin);
|
|
16
|
+
var protoFile = (isAdmin ? admin_protofile_template : protofile_template)
|
|
15
17
|
.toString()
|
|
16
18
|
.replace('MODULE_FUNCTIONS', protoFunctions);
|
|
17
19
|
protoFile = protoFile.replace('MODULE_NAME', formattedModuleName);
|
|
@@ -23,22 +25,22 @@ exports.constructProtoFile = constructProtoFile;
|
|
|
23
25
|
function getFormattedModuleName(moduleName) {
|
|
24
26
|
return moduleName.replace('-', '_');
|
|
25
27
|
}
|
|
26
|
-
function wrapFunctionsAsync(functions) {
|
|
28
|
+
function wrapFunctionsAsync(functions, routerType) {
|
|
27
29
|
var modifiedFunctions = {};
|
|
28
30
|
Object.keys(functions).forEach(function (key) {
|
|
29
|
-
modifiedFunctions[key] = (0, wrapRouterFunctions_1.wrapRouterGrpcFunction)(functions[key]);
|
|
31
|
+
modifiedFunctions[key] = (0, wrapRouterFunctions_1.wrapRouterGrpcFunction)(functions[key], routerType);
|
|
30
32
|
});
|
|
31
33
|
return modifiedFunctions;
|
|
32
34
|
}
|
|
33
35
|
exports.wrapFunctionsAsync = wrapFunctionsAsync;
|
|
34
|
-
function createProtoFunctions(paths) {
|
|
36
|
+
function createProtoFunctions(paths, isAdmin) {
|
|
35
37
|
var protoFunctions = '';
|
|
36
38
|
paths.forEach(function (r) {
|
|
37
39
|
if (r.hasOwnProperty('events')) {
|
|
38
40
|
protoFunctions += createProtoFunctionsForSocket(r, protoFunctions);
|
|
39
41
|
}
|
|
40
42
|
else {
|
|
41
|
-
protoFunctions += createProtoFunctionForRoute(r, protoFunctions);
|
|
43
|
+
protoFunctions += createProtoFunctionForRoute(r, protoFunctions, isAdmin);
|
|
42
44
|
}
|
|
43
45
|
});
|
|
44
46
|
return protoFunctions;
|
|
@@ -56,12 +58,14 @@ function createProtoFunctionsForSocket(path, protoFunctions) {
|
|
|
56
58
|
});
|
|
57
59
|
return newFunctions;
|
|
58
60
|
}
|
|
59
|
-
function createProtoFunctionForRoute(path, protoFunctions) {
|
|
61
|
+
function createProtoFunctionForRoute(path, protoFunctions, isAdmin) {
|
|
60
62
|
var newFunction = createGrpcFunctionName(path.grpcFunction);
|
|
61
63
|
if (protoFunctions.indexOf("rpc ".concat(newFunction, "(")) !== -1) {
|
|
62
64
|
return '';
|
|
63
65
|
}
|
|
64
|
-
return
|
|
66
|
+
return isAdmin
|
|
67
|
+
? "rpc ".concat(newFunction, "(AdminRequest) returns (AdminResponse);\n")
|
|
68
|
+
: "rpc ".concat(newFunction, "(RouterRequest) returns (RouterResponse);\n");
|
|
65
69
|
}
|
|
66
70
|
function createGrpcFunctionName(grpcFunction) {
|
|
67
71
|
return grpcFunction.charAt(0).toUpperCase() + grpcFunction.slice(1);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingUtilities.js","sourceRoot":"","sources":["../../src/routing/RoutingUtilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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("./interfaces"), exports);
|
|
18
|
+
__exportStar(require("./ConduitRouteReturn"), exports);
|
|
19
|
+
__exportStar(require("./RouteBuilder"), exports);
|
|
20
|
+
__exportStar(require("./RoutingJsonConstructor"), exports);
|
|
21
|
+
__exportStar(require("./RoutingManager"), exports);
|
|
22
|
+
__exportStar(require("./RoutingUtilities"), exports);
|
|
23
|
+
__exportStar(require("./wrapRouterFunctions"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC;AACrC,iDAA+B;AAC/B,2DAAyC;AACzC,mDAAiC;AACjC,qDAAmC;AACnC,wDAAsC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConduitRouteActions } from './Route';
|
|
2
|
+
export interface ConduitMiddlewareOptions {
|
|
3
|
+
action?: ConduitRouteActions;
|
|
4
|
+
path?: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConduitMiddleware {
|
|
9
|
+
_input: ConduitMiddlewareOptions;
|
|
10
|
+
_handler: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConduitMiddleware.js","sourceRoot":"","sources":["../../../src/routing/interfaces/ConduitMiddleware.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConduitRouteReturnDefinition } from '../ConduitRouteReturn';
|
|
2
|
+
import { ConduitRouteOptions } from './Route';
|
|
3
|
+
import { RequestHandlers } from '../wrapRouterFunctions';
|
|
4
|
+
export interface ConduitRoute {
|
|
5
|
+
returnType: ConduitRouteReturnDefinition;
|
|
6
|
+
input: ConduitRouteOptions;
|
|
7
|
+
handler: RequestHandlers;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConduitRoute.js","sourceRoot":"","sources":["../../../src/routing/interfaces/ConduitRoute.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConduitSocket.js","sourceRoot":"","sources":["../../../src/routing/interfaces/ConduitSocket.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import { ConduitModel } from './Model';
|
|
3
|
-
import { IncomingHttpHeaders } from 'http';
|
|
1
|
+
import { ConduitModel } from '../../interfaces';
|
|
4
2
|
export interface ConduitRouteParameters {
|
|
5
3
|
params?: {
|
|
6
4
|
[field: string]: any;
|
|
7
5
|
};
|
|
8
6
|
path?: string;
|
|
9
|
-
headers:
|
|
7
|
+
headers: {
|
|
8
|
+
[field: string]: any;
|
|
9
|
+
};
|
|
10
10
|
context?: {
|
|
11
11
|
[field: string]: any;
|
|
12
12
|
};
|
|
13
|
+
cookies?: {
|
|
14
|
+
[field: string]: any;
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
17
|
export declare enum RouteOptionType {
|
|
15
18
|
String = "String",
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/routing/interfaces/Route.ts"],"names":[],"mappings":";;;AAUA,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,wCAAqB,CAAA;IACrB,gCAAa,CAAA;AACf,CAAC,EAPW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAO1B;AAgBD,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,kCAAW,CAAA;IACX,oCAAa,CAAA;IACb,qCAAc,CAAA;IACd,sCAAe,CAAA;IACf,wCAAiB,CAAA;AACnB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ConduitRouteReturnDefinition } from '../ConduitRouteReturn';
|
|
2
|
+
import { RequestHandlers } from '../wrapRouterFunctions';
|
|
3
|
+
import { TYPE } from '../../interfaces';
|
|
4
4
|
export declare type ConduitSocketParamTypes = (TYPE | ConduitSocketParamTypes)[];
|
|
5
5
|
export interface ConduitSocketOptions {
|
|
6
6
|
path: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../../src/routing/interfaces/Socket.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
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("./ConduitMiddleware"), exports);
|
|
18
|
+
__exportStar(require("./ConduitRoute"), exports);
|
|
19
|
+
__exportStar(require("./ConduitSocket"), exports);
|
|
20
|
+
__exportStar(require("./Route"), exports);
|
|
21
|
+
__exportStar(require("./Socket"), exports);
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,iDAA+B;AAC/B,kDAAgC;AAChC,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Context, Cookies, Headers, Indexable, Params } from '../../interfaces';
|
|
2
|
+
import { GrpcRequest } from '../../types';
|
|
3
|
+
export declare type ParsedRouterRequest = GrpcRequest<{
|
|
4
|
+
params: Params;
|
|
5
|
+
path: string;
|
|
6
|
+
headers: Headers;
|
|
7
|
+
context: Context;
|
|
8
|
+
cookies: Cookies;
|
|
9
|
+
}>;
|
|
10
|
+
export declare type UnparsedRouterResponse = {
|
|
11
|
+
result?: Indexable;
|
|
12
|
+
redirect?: string;
|
|
13
|
+
setCookies: Indexable;
|
|
14
|
+
removeCookies: Indexable;
|
|
15
|
+
} | Indexable | string;
|
|
16
|
+
export declare type ParsedSocketRequest = GrpcRequest<{
|
|
17
|
+
event: string;
|
|
18
|
+
socketId: string;
|
|
19
|
+
params: string[];
|
|
20
|
+
context: Context;
|
|
21
|
+
cookies: Cookies;
|
|
22
|
+
}>;
|
|
23
|
+
declare type EventResponse = {
|
|
24
|
+
event: string;
|
|
25
|
+
data: Indexable;
|
|
26
|
+
receivers?: string[];
|
|
27
|
+
};
|
|
28
|
+
export declare type UnparsedSocketResponse = EventResponse | JoinRoomResponse;
|
|
29
|
+
declare type JoinRoomResponse = {
|
|
30
|
+
rooms: string[];
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routing/interfaces/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { ParsedRouterRequest, ParsedSocketRequest, UnparsedRouterResponse, UnparsedSocketResponse } from '
|
|
1
|
+
import { ParsedRouterRequest, ParsedSocketRequest, UnparsedRouterResponse, UnparsedSocketResponse } from './interfaces/types';
|
|
2
2
|
import { Indexable } from '../interfaces';
|
|
3
3
|
export declare type RouterRequestHandler = (call: ParsedRouterRequest) => Promise<UnparsedRouterResponse>;
|
|
4
4
|
export declare type SocketRequestHandler = (call: ParsedSocketRequest) => Promise<UnparsedSocketResponse>;
|
|
5
5
|
export declare type RequestHandlers = RouterRequestHandler | SocketRequestHandler;
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function wrapRouterGrpcFunction(fun: RequestHandlers): (call: Indexable, callback: any) => void;
|
|
6
|
+
export declare function wrapRouterGrpcFunction(fun: RequestHandlers, routerType: string): (call: Indexable, callback: any) => void;
|
|
@@ -14,30 +14,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.wrapRouterGrpcFunction =
|
|
17
|
+
exports.wrapRouterGrpcFunction = void 0;
|
|
18
18
|
var grpc_js_1 = require("@grpc/grpc-js");
|
|
19
19
|
var index_1 = __importDefault(require("../index"));
|
|
20
|
-
function wrapCallObjectForRouter(call) {
|
|
21
|
-
return {
|
|
22
|
-
request: {
|
|
23
|
-
params: call.request,
|
|
24
|
-
path: '',
|
|
25
|
-
headers: {},
|
|
26
|
-
context: {},
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
exports.wrapCallObjectForRouter = wrapCallObjectForRouter;
|
|
31
20
|
function generateLog(routerRequest, requestReceive, call, status) {
|
|
21
|
+
var _a, _b;
|
|
32
22
|
var log = '';
|
|
23
|
+
var latency = Date.now() - requestReceive;
|
|
33
24
|
if (routerRequest) {
|
|
34
25
|
log += "Request: ".concat(call.request.path);
|
|
35
26
|
}
|
|
36
27
|
else {
|
|
37
28
|
log += "Socket: ".concat(call.request.event, " socket: ").concat(call.request.socket);
|
|
38
29
|
}
|
|
39
|
-
log += " ".concat(status !== null && status !== void 0 ? status : '200', " ").concat(
|
|
30
|
+
log += " ".concat(status !== null && status !== void 0 ? status : '200', " ").concat(latency);
|
|
40
31
|
index_1.default.Logger.log(log);
|
|
32
|
+
(_a = index_1.default.Metrics) === null || _a === void 0 ? void 0 : _a.set('grpc_request_latency_seconds', latency / 1000);
|
|
33
|
+
var successStatus = !status || status.toString().charAt(0) === '2';
|
|
34
|
+
(_b = index_1.default.Metrics) === null || _b === void 0 ? void 0 : _b.increment('grpc_response_statuses_total', 1, {
|
|
35
|
+
success: successStatus ? 'true' : 'false',
|
|
36
|
+
});
|
|
41
37
|
}
|
|
42
38
|
function parseRequestData(data) {
|
|
43
39
|
if (typeof data === 'string' && data.length !== 0) {
|
|
@@ -47,25 +43,28 @@ function parseRequestData(data) {
|
|
|
47
43
|
return {};
|
|
48
44
|
}
|
|
49
45
|
}
|
|
50
|
-
function wrapRouterGrpcFunction(fun) {
|
|
46
|
+
function wrapRouterGrpcFunction(fun, routerType) {
|
|
51
47
|
return function (call, callback) {
|
|
52
|
-
var _a, _b;
|
|
48
|
+
var _a, _b, _c, _d;
|
|
53
49
|
var requestReceive = Date.now();
|
|
54
50
|
var routerRequest = true;
|
|
51
|
+
(_a = index_1.default.Metrics) === null || _a === void 0 ? void 0 : _a.increment("".concat(routerType, "_grpc_requests_total"));
|
|
55
52
|
try {
|
|
56
53
|
call.request.context = parseRequestData(call.request.context);
|
|
57
54
|
call.request.params = parseRequestData(call.request.params);
|
|
55
|
+
call.request.cookies = parseRequestData(call.request.cookies);
|
|
58
56
|
routerRequest = !call.request.hasOwnProperty('event');
|
|
59
57
|
if (routerRequest) {
|
|
60
58
|
call.request.headers = parseRequestData(call.request.headers);
|
|
61
59
|
}
|
|
62
60
|
}
|
|
63
61
|
catch (e) {
|
|
62
|
+
(_b = index_1.default.Metrics) === null || _b === void 0 ? void 0 : _b.increment("".concat(routerType, "_grpc_errors_total"));
|
|
64
63
|
generateLog(routerRequest, requestReceive, call, grpc_js_1.status.INTERNAL);
|
|
65
|
-
index_1.default.Logger.error((
|
|
64
|
+
index_1.default.Logger.error((_c = e.message) !== null && _c !== void 0 ? _c : 'Something went wrong');
|
|
66
65
|
return callback({
|
|
67
66
|
code: grpc_js_1.status.INTERNAL,
|
|
68
|
-
message: (
|
|
67
|
+
message: (_d = e.message) !== null && _d !== void 0 ? _d : 'Something went wrong',
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
70
|
fun(call)
|
|
@@ -101,12 +100,13 @@ function wrapRouterGrpcFunction(fun) {
|
|
|
101
100
|
generateLog(routerRequest, requestReceive, call, undefined);
|
|
102
101
|
})
|
|
103
102
|
.catch(function (error) {
|
|
104
|
-
var _a, _b, _c, _d;
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
var _a, _b, _c, _d, _e;
|
|
104
|
+
(_a = index_1.default.Metrics) === null || _a === void 0 ? void 0 : _a.increment("".concat(routerType, "_grpc_errors_total"));
|
|
105
|
+
generateLog(routerRequest, requestReceive, call, (_b = error.code) !== null && _b !== void 0 ? _b : grpc_js_1.status.INTERNAL);
|
|
106
|
+
index_1.default.Logger.error((_c = error.message) !== null && _c !== void 0 ? _c : 'Something went wrong');
|
|
107
107
|
callback({
|
|
108
|
-
code: (
|
|
109
|
-
message: (
|
|
108
|
+
code: (_d = error.code) !== null && _d !== void 0 ? _d : grpc_js_1.status.INTERNAL,
|
|
109
|
+
message: (_e = error.message) !== null && _e !== void 0 ? _e : 'Something went wrong',
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapRouterFunctions.js","sourceRoot":"","sources":["../../src/routing/wrapRouterFunctions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,yCAAuC;AAGvC,mDAAsC;AAUtC,SAAS,WAAW,CAClB,aAAsB,EACtB,cAAsB,EACtB,IAAe,EACf,MAAe;;IAEf,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC5C,IAAI,aAAa,EAAE;QACjB,GAAG,IAAI,mBAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;KACxC;SAAM;QACL,GAAG,IAAI,kBAAW,IAAI,CAAC,OAAO,CAAC,KAAK,sBAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;KACvE;IACD,GAAG,IAAI,WAAI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,cAAI,OAAO,CAAE,CAAC;IAExC,eAAc,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAA,eAAc,CAAC,OAAO,0CAAE,GAAG,CAAC,8BAA8B,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAE5E,IAAM,aAAa,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IACrE,MAAA,eAAc,CAAC,OAAO,0CAAE,SAAS,CAAC,8BAA8B,EAAE,CAAC,EAAE;QACnE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED,SAAgB,sBAAsB,CACpC,GAAoB,EACpB,UAAkB;IAElB,OAAO,UAAC,IAAS,EAAE,QAAa;;QAC9B,IAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAA,eAAc,CAAC,OAAO,0CAAE,SAAS,CAAC,UAAG,UAAU,yBAAsB,CAAC,CAAC;QACvE,IAAI;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE9D,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAC/D;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAA,eAAc,CAAC,OAAO,0CAAE,SAAS,CAAC,UAAG,UAAU,uBAAoB,CAAC,CAAC;YACrE,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAM,CAAC,QAAQ,CAAC,CAAC;YAClE,eAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAC,CAAW,CAAC,OAAO,mCAAI,sBAAsB,CAAC,CAAC;YAC5E,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,gBAAM,CAAC,QAAQ;gBACrB,OAAO,EAAE,MAAC,CAAW,CAAC,OAAO,mCAAI,sBAAsB;aACxD,CAAC,CAAC;SACJ;QAED,GAAG,CAAC,IAAI,CAAC;aACN,IAAI,CAAC,UAAA,CAAC;;YACL,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,IAAI,aAAa,EAAE;gBACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACzB,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC/B;qBAAM;oBACL,IAAI,UAAU,SAAA,CAAC;oBACf,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,UAAU,EAAE;wBACnC,UAAU,GAAG;4BACX,aAAa,EAAE,CAAC,CAAC,aAAa;4BAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;yBACzB,CAAC;qBACH;oBACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE;wBAC1B,QAAQ,CAAC,IAAI,wBACR,UAAU,KACb,QAAQ,EAAE,MAAA,CAAC,CAAC,QAAQ,mCAAI,SAAS,EACjC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IACvD,CAAC;qBACJ;yBAAM;wBACL,QAAQ,CAAC,IAAI,wBAAO,UAAU,KAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAG,CAAC;qBAC9D;iBACF;aACF;iBAAM;gBACL,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;oBAAG,CAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,CAAS,CAAC,IAAI,CAAC,CAAC;gBAChF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACnB;YACD,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC;aACD,KAAK,CAAC,UAAA,KAAK;;YACV,MAAA,eAAc,CAAC,OAAO,0CAAE,SAAS,CAAC,UAAG,UAAU,uBAAoB,CAAC,CAAC;YACrE,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,gBAAM,CAAC,QAAQ,CAAC,CAAC;YAChF,eAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,sBAAsB,CAAC,CAAC;YACrE,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,gBAAM,CAAC,QAAQ;gBACnC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,sBAAsB;aACjD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACJ,CAAC;AAnED,wDAmEC"}
|