@nlabs/reaktor 0.4.6 → 0.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.
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/lambdas/actions/websockets.d.ts +6 -0
- package/lib/lambdas/actions/websockets.js +149 -0
- package/lib/lambdas/authorizer.d.ts +20 -0
- package/lib/lambdas/authorizer.js +72 -0
- package/lib/lambdas/connection.d.ts +12 -0
- package/lib/lambdas/connection.js +113 -0
- package/lib/lambdas/utils/message.d.ts +1 -0
- package/lib/lambdas/utils/message.js +36 -0
- package/lib/lambdas/utils/websocket.d.ts +7 -0
- package/lib/lambdas/utils/websocket.js +92 -0
- package/lib/types/websocket.d.ts +14 -0
- package/lib/types/websocket.js +4 -0
- package/package.json +2 -1
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -18,6 +18,8 @@ var __toModule = (module2) => {
|
|
|
18
18
|
};
|
|
19
19
|
__markAsModule(exports);
|
|
20
20
|
__reExport(exports, __toModule(require("./actions")));
|
|
21
|
+
__reExport(exports, __toModule(require("./lambdas/authorizer")));
|
|
22
|
+
__reExport(exports, __toModule(require("./lambdas/connection")));
|
|
21
23
|
__reExport(exports, __toModule(require("./utils")));
|
|
22
24
|
__reExport(exports, __toModule(require("./types")));
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGFtYmRhcy9hdXRob3JpemVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGFtYmRhcy9jb25uZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUlBLG9CQUFjO0FBQ2Qsb0JBQWM7QUFDZCxvQkFBYztBQUNkLG9CQUFjO0FBQ2Qsb0JBQWM7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ApiContext } from '../../types/auth';
|
|
2
|
+
export declare const addConnection: (connectionId: string, token: string) => Promise<any>;
|
|
3
|
+
export declare const getConnectionByUserId: (userId: string) => Promise<any>;
|
|
4
|
+
export declare const getConnectionById: (connectionId: string) => Promise<any>;
|
|
5
|
+
export declare const getConnectionByConvo: (context: ApiContext, convoId: string) => Promise<any>;
|
|
6
|
+
export declare const removeConnection: (connectionId: string) => Promise<any>;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __export = (target, all) => {
|
|
26
|
+
__markAsModule(target);
|
|
27
|
+
for (var name in all)
|
|
28
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
29
|
+
};
|
|
30
|
+
var __reExport = (target, module2, desc) => {
|
|
31
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
32
|
+
for (let key of __getOwnPropNames(module2))
|
|
33
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
34
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
35
|
+
}
|
|
36
|
+
return target;
|
|
37
|
+
};
|
|
38
|
+
var __toModule = (module2) => {
|
|
39
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
40
|
+
};
|
|
41
|
+
__export(exports, {
|
|
42
|
+
addConnection: () => addConnection,
|
|
43
|
+
getConnectionByConvo: () => getConnectionByConvo,
|
|
44
|
+
getConnectionById: () => getConnectionById,
|
|
45
|
+
getConnectionByUserId: () => getConnectionByUserId,
|
|
46
|
+
removeConnection: () => removeConnection
|
|
47
|
+
});
|
|
48
|
+
var import_utils = __toModule(require("@nlabs/utils"));
|
|
49
|
+
var import_arangojs = __toModule(require("arangojs"));
|
|
50
|
+
var import_isEmpty = __toModule(require("lodash/isEmpty"));
|
|
51
|
+
var import_arangodb = __toModule(require("../../utils/arangodb"));
|
|
52
|
+
var import_session = __toModule(require("../../utils/session"));
|
|
53
|
+
const { ARANGODB_DATABASE: database } = process.env;
|
|
54
|
+
const addConnection = async (connectionId, token) => {
|
|
55
|
+
const formatConnId = (0, import_utils.parseString)(connectionId, 32);
|
|
56
|
+
const { userId } = (0, import_session.getSession)(token);
|
|
57
|
+
if ((0, import_isEmpty.default)(userId)) {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const db = (0, import_arangodb.useDb)(database);
|
|
62
|
+
const update = {
|
|
63
|
+
connectionId: formatConnId,
|
|
64
|
+
modified: Date.now()
|
|
65
|
+
};
|
|
66
|
+
const insert = __spreadProps(__spreadValues({}, update), {
|
|
67
|
+
_key: (0, import_utils.createHash)(`connection-${formatConnId}`),
|
|
68
|
+
userId
|
|
69
|
+
});
|
|
70
|
+
const aqlQry = import_arangojs.aql`UPSERT {userId: ${insert.userId}}
|
|
71
|
+
INSERT ${insert}
|
|
72
|
+
UPDATE ${update}
|
|
73
|
+
IN connections RETURN NEW`;
|
|
74
|
+
return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
|
|
75
|
+
throw error;
|
|
76
|
+
});
|
|
77
|
+
} catch (error) {
|
|
78
|
+
console.log("parseContext::error", error);
|
|
79
|
+
throw new Error("Unauthorized Context");
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const getConnectionByUserId = (userId) => {
|
|
83
|
+
const formatUserId = (0, import_utils.parseId)(userId);
|
|
84
|
+
const db = (0, import_arangodb.useDb)(database);
|
|
85
|
+
const aqlQry = import_arangojs.aql`FOR c IN connections
|
|
86
|
+
FILTER c.userId == ${formatUserId}
|
|
87
|
+
LIMIT 1
|
|
88
|
+
RETURN c`;
|
|
89
|
+
return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
|
|
90
|
+
throw error;
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const getConnectionById = (connectionId) => {
|
|
94
|
+
const formatConnId = (0, import_utils.parseString)(connectionId, 32);
|
|
95
|
+
const db = (0, import_arangodb.useDb)(database);
|
|
96
|
+
const aqlQry = import_arangojs.aql`FOR c IN connections
|
|
97
|
+
FILTER c.connectionId == ${formatConnId}
|
|
98
|
+
LET user = FIRST(
|
|
99
|
+
FOR u IN users
|
|
100
|
+
FILTER u.userId == c.userId
|
|
101
|
+
LIMIT 1
|
|
102
|
+
RETURN u;
|
|
103
|
+
)
|
|
104
|
+
LIMIT 1
|
|
105
|
+
RETURN MERGE(c, {user:user}`;
|
|
106
|
+
return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
|
|
107
|
+
throw error;
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
const getConnectionByConvo = (context, convoId) => {
|
|
111
|
+
const { session: { userId: sessionId } } = context;
|
|
112
|
+
const sessionDocId = `users/${(0, import_utils.parseId)(sessionId)}`;
|
|
113
|
+
const convoDocId = `conversations/${(0, import_utils.parseId)(convoId)}`;
|
|
114
|
+
const db = (0, import_arangodb.useDb)(database);
|
|
115
|
+
const aqlQry = import_arangojs.aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversations
|
|
116
|
+
FILTER c._id == ${convoDocId}
|
|
117
|
+
LIMIT 1
|
|
118
|
+
LET u = (
|
|
119
|
+
FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversations
|
|
120
|
+
FOR n IN connections
|
|
121
|
+
FILTER inUser.userId == n.userId
|
|
122
|
+
RETURN n.connectionId
|
|
123
|
+
)
|
|
124
|
+
RETURN u`;
|
|
125
|
+
return db.query(aqlQry).then((cursor) => cursor.all()).catch((error) => {
|
|
126
|
+
throw error;
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
const removeConnection = (connectionId) => {
|
|
130
|
+
const formatConnId = (0, import_utils.parseString)(connectionId, 32);
|
|
131
|
+
const db = (0, import_arangodb.useDb)(database);
|
|
132
|
+
const aqlQry = import_arangojs.aql`FOR c IN connections
|
|
133
|
+
FILTER c.connectionId == ${formatConnId}
|
|
134
|
+
LIMIT 1
|
|
135
|
+
REMOVE c IN connections
|
|
136
|
+
RETURN OLD`;
|
|
137
|
+
return db.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
|
|
138
|
+
throw error;
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
142
|
+
0 && (module.exports = {
|
|
143
|
+
addConnection,
|
|
144
|
+
getConnectionByConvo,
|
|
145
|
+
getConnectionById,
|
|
146
|
+
getConnectionByUserId,
|
|
147
|
+
removeConnection
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvYWN0aW9ucy93ZWJzb2NrZXRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsLCBEYXRhYmFzZX0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5cbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi8uLi91dGlscy9hcmFuZ29kYic7XG5pbXBvcnQge2dldFNlc3Npb259IGZyb20gJy4uLy4uL3V0aWxzL3Nlc3Npb24nO1xuXG5jb25zdCB7QVJBTkdPREJfREFUQUJBU0U6IGRhdGFiYXNlfSA9IHByb2Nlc3MuZW52O1xuXG5leHBvcnQgY29uc3QgYWRkQ29ubmVjdGlvbiA9IGFzeW5jIChjb25uZWN0aW9uSWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIC8vIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IGZvcm1hdENvbm5JZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoY29ubmVjdGlvbklkLCAzMik7XG5cbiAgLy8gVmVyaWZpZXMgdG9rZW5cbiAgY29uc3Qge3VzZXJJZH0gPSBnZXRTZXNzaW9uKHRva2VuKTtcblxuICBpZihpc0VtcHR5KHVzZXJJZCkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICBjb25uZWN0aW9uSWQ6IGZvcm1hdENvbm5JZCxcbiAgICAgIG1vZGlmaWVkOiBEYXRlLm5vdygpXG4gICAgfTtcbiAgICBjb25zdCBpbnNlcnQgPSB7XG4gICAgICAuLi51cGRhdGUsXG4gICAgICBfa2V5OiBjcmVhdGVIYXNoKGBjb25uZWN0aW9uLSR7Zm9ybWF0Q29ubklkfWApLFxuICAgICAgdXNlcklkXG4gICAgfTtcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dXNlcklkOiAke2luc2VydC51c2VySWR9fVxuICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICAgVVBEQVRFICR7dXBkYXRlfVxuICAgICAgSU4gY29ubmVjdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygncGFyc2VDb250ZXh0OjplcnJvcicsIGVycm9yKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYXV0aG9yaXplZCBDb250ZXh0Jyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uQnlVc2VySWQgPSAodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy51c2VySWQgPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUlkID0gKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZm9ybWF0Q29ubklkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhjb25uZWN0aW9uSWQsIDMyKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICBGSUxURVIgYy5jb25uZWN0aW9uSWQgPT0gJHtmb3JtYXRDb25uSWR9XG4gICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgdS51c2VySWQgPT0gYy51c2VySWRcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiB1O1xuICAgIClcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyOnVzZXJ9YDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUNvbnZvID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHtzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7cGFyc2VJZChjb252b0lkKX1gO1xuICBjb25zdCBkYjogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gIEZJTFRFUiBjLl9pZCA9PSAke2NvbnZvRG9jSWR9XG4gIExJTUlUIDFcbiAgTEVUIHUgPSAoXG4gICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBGT1IgbiBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBpblVzZXIudXNlcklkID09IG4udXNlcklkXG4gICAgUkVUVVJOIG4uY29ubmVjdGlvbklkXG4gIClcbiAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVDb25uZWN0aW9uID0gKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgLy8gY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlJztcbiAgY29uc3QgZm9ybWF0Q29ubklkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhjb25uZWN0aW9uSWQsIDMyKTtcbiAgY29uc3QgZGI6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2UpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMgSU4gY29ubmVjdGlvbnNcbiAgICAgIEZJTFRFUiBjLmNvbm5lY3Rpb25JZCA9PSAke2Zvcm1hdENvbm5JZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSBjIElOIGNvbm5lY3Rpb25zXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBK0M7QUFDL0Msc0JBQTRCO0FBRzVCLHFCQUFvQjtBQUdwQixzQkFBb0I7QUFDcEIscUJBQXlCO0FBRXpCLE1BQU0sRUFBQyxtQkFBbUIsYUFBWSxRQUFRO0FBRXZDLE1BQU0sZ0JBQWdCLE9BQU8sY0FBc0IsVUFBZ0M7QUFFeEYsUUFBTSxlQUF1Qiw4QkFBWSxjQUFjO0FBR3ZELFFBQU0sRUFBQyxXQUFVLCtCQUFXO0FBRTVCLE1BQUcsNEJBQVEsU0FBUztBQUNsQixXQUFPO0FBQUE7QUFHVCxNQUFJO0FBQ0YsVUFBTSxLQUFlLDJCQUFNO0FBQzNCLFVBQU0sU0FBUztBQUFBLE1BQ2IsY0FBYztBQUFBLE1BQ2QsVUFBVSxLQUFLO0FBQUE7QUFFakIsVUFBTSxTQUFTLGlDQUNWLFNBRFU7QUFBQSxNQUViLE1BQU0sNkJBQVcsY0FBYztBQUFBLE1BQy9CO0FBQUE7QUFFRixVQUFNLFNBQW1CLHNDQUFzQixPQUFPO0FBQUEsZUFDM0M7QUFBQSxlQUNBO0FBQUE7QUFHWCxXQUFPLEdBQUcsTUFBTSxRQUNiLEtBQUssQ0FBQyxXQUFXLE9BQU8sUUFDeEIsTUFBTSxDQUFDLFVBQWlCO0FBQ3ZCLFlBQU07QUFBQTtBQUFBLFdBRUosT0FBTjtBQUNBLFlBQVEsSUFBSSx1QkFBdUI7QUFDbkMsVUFBTSxJQUFJLE1BQU07QUFBQTtBQUFBO0FBSWIsTUFBTSx3QkFBd0IsQ0FBQyxXQUFpQztBQUNyRSxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sS0FBZSwyQkFBTTtBQUMzQixRQUFNLFNBQVM7QUFBQSx5QkFDUTtBQUFBO0FBQUE7QUFJdkIsU0FBTyxHQUFHLE1BQU0sUUFDYixLQUFLLENBQUMsV0FBVyxPQUFPLFFBQ3hCLE1BQU0sQ0FBQyxVQUFpQjtBQUN2QixVQUFNO0FBQUE7QUFBQTtBQUlMLE1BQU0sb0JBQW9CLENBQUMsaUJBQXVDO0FBQ3ZFLFFBQU0sZUFBdUIsOEJBQVksY0FBYztBQUN2RCxRQUFNLEtBQWUsMkJBQU07QUFDM0IsUUFBTSxTQUFTO0FBQUEsK0JBQ2M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVTdCLFNBQU8sR0FBRyxNQUFNLFFBQ2IsS0FBSyxDQUFDLFdBQVcsT0FBTyxRQUN4QixNQUFNLENBQUMsVUFBaUI7QUFDdkIsVUFBTTtBQUFBO0FBQUE7QUFJTCxNQUFNLHVCQUF1QixDQUFDLFNBQXFCLFlBQWtDO0FBQzFGLFFBQU0sRUFBQyxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUN2QyxRQUFNLGVBQXVCLFNBQVMsMEJBQVE7QUFDOUMsUUFBTSxhQUFxQixpQkFBaUIsMEJBQVE7QUFDcEQsUUFBTSxLQUFlLDJCQUFNO0FBQzNCLFFBQU0sU0FBUyxnREFBZ0M7QUFBQSxvQkFDN0I7QUFBQTtBQUFBO0FBQUEseUNBR3FCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU92QyxTQUFPLEdBQUcsTUFBTSxRQUNiLEtBQUssQ0FBQyxXQUFXLE9BQU8sT0FDeEIsTUFBTSxDQUFDLFVBQWlCO0FBQ3ZCLFVBQU07QUFBQTtBQUFBO0FBSUwsTUFBTSxtQkFBbUIsQ0FBQyxpQkFBdUM7QUFFdEUsUUFBTSxlQUF1Qiw4QkFBWSxjQUFjO0FBQ3ZELFFBQU0sS0FBZSwyQkFBTTtBQUMzQixRQUFNLFNBQVM7QUFBQSxpQ0FDZ0I7QUFBQTtBQUFBO0FBQUE7QUFLL0IsU0FBTyxHQUFHLE1BQU0sUUFDYixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxNQUFNLENBQUMsVUFBaUI7QUFDdkIsVUFBTTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const generatePolicyDocument: (effect: any, methodArn: any) => {
|
|
2
|
+
Version: string;
|
|
3
|
+
Statement: {
|
|
4
|
+
Action: string;
|
|
5
|
+
Effect: any;
|
|
6
|
+
Resource: any;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare const generateAuthResponse: (principalId: any, effect: any, methodArn: any) => {
|
|
10
|
+
principalId: any;
|
|
11
|
+
policyDocument: {
|
|
12
|
+
Version: string;
|
|
13
|
+
Statement: {
|
|
14
|
+
Action: string;
|
|
15
|
+
Effect: any;
|
|
16
|
+
Resource: any;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const authorizer: (event: any, context: any, callback: any) => any;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
authorizer: () => authorizer,
|
|
26
|
+
generateAuthResponse: () => generateAuthResponse,
|
|
27
|
+
generatePolicyDocument: () => generatePolicyDocument
|
|
28
|
+
});
|
|
29
|
+
var import_isEmpty = __toModule(require("lodash/isEmpty"));
|
|
30
|
+
var import__ = __toModule(require(".."));
|
|
31
|
+
const generatePolicyDocument = (effect, methodArn) => {
|
|
32
|
+
if (!effect || !methodArn) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const policyDocument = {
|
|
36
|
+
Version: "2012-10-17",
|
|
37
|
+
Statement: [
|
|
38
|
+
{
|
|
39
|
+
Action: "execute-api:Invoke",
|
|
40
|
+
Effect: effect,
|
|
41
|
+
Resource: methodArn
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
};
|
|
45
|
+
return policyDocument;
|
|
46
|
+
};
|
|
47
|
+
const generateAuthResponse = (principalId, effect, methodArn) => {
|
|
48
|
+
const policyDocument = generatePolicyDocument(effect, methodArn);
|
|
49
|
+
return {
|
|
50
|
+
principalId,
|
|
51
|
+
policyDocument
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
const authorizer = (event, context, callback) => {
|
|
55
|
+
const { authorizationToken = "", methodArn } = event;
|
|
56
|
+
const token = authorizationToken.replace("Bearer", "").trim();
|
|
57
|
+
if ((0, import_isEmpty.default)(token) || (0, import_isEmpty.default)(methodArn)) {
|
|
58
|
+
return callback(null, "Unauthorized");
|
|
59
|
+
}
|
|
60
|
+
const session = (0, import__.getSession)(token);
|
|
61
|
+
if (session && session.id) {
|
|
62
|
+
return callback(null, generateAuthResponse(session.id, "Allow", methodArn));
|
|
63
|
+
}
|
|
64
|
+
return callback(null, generateAuthResponse(session.id, "Deny", methodArn));
|
|
65
|
+
};
|
|
66
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
67
|
+
0 && (module.exports = {
|
|
68
|
+
authorizer,
|
|
69
|
+
generateAuthResponse,
|
|
70
|
+
generatePolicyDocument
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xhbWJkYXMvYXV0aG9yaXplci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtnZXRTZXNzaW9ufSBmcm9tICcuLic7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVBvbGljeURvY3VtZW50ID0gKGVmZmVjdCwgbWV0aG9kQXJuKSA9PiB7XG4gIGlmKCFlZmZlY3QgfHwgIW1ldGhvZEFybikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcG9saWN5RG9jdW1lbnQgPSB7XG4gICAgVmVyc2lvbjogJzIwMTItMTAtMTcnLFxuICAgIFN0YXRlbWVudDogW1xuICAgICAge1xuICAgICAgICBBY3Rpb246ICdleGVjdXRlLWFwaTpJbnZva2UnLFxuICAgICAgICBFZmZlY3Q6IGVmZmVjdCxcbiAgICAgICAgUmVzb3VyY2U6IG1ldGhvZEFyblxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4gcG9saWN5RG9jdW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVBdXRoUmVzcG9uc2UgPSAocHJpbmNpcGFsSWQsIGVmZmVjdCwgbWV0aG9kQXJuKSA9PiB7XG4gIGNvbnN0IHBvbGljeURvY3VtZW50ID0gZ2VuZXJhdGVQb2xpY3lEb2N1bWVudChlZmZlY3QsIG1ldGhvZEFybik7XG5cbiAgcmV0dXJuIHtcbiAgICBwcmluY2lwYWxJZCxcbiAgICBwb2xpY3lEb2N1bWVudFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGF1dGhvcml6ZXIgPSAoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKSA9PiB7XG4gIGNvbnN0IHthdXRob3JpemF0aW9uVG9rZW4gPSAnJywgbWV0aG9kQXJufSA9IGV2ZW50O1xuICBjb25zdCB0b2tlbjogc3RyaW5nID0gYXV0aG9yaXphdGlvblRva2VuLnJlcGxhY2UoJ0JlYXJlcicsICcnKS50cmltKCk7XG5cbiAgaWYoaXNFbXB0eSh0b2tlbikgfHwgaXNFbXB0eShtZXRob2RBcm4pKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsICdVbmF1dGhvcml6ZWQnKTtcbiAgfVxuXG4gIC8vIFZlcmlmaWVzIHRva2VuXG4gIGNvbnN0IHNlc3Npb246IGFueSA9IGdldFNlc3Npb24odG9rZW4pO1xuXG4gIGlmKHNlc3Npb24gJiYgc2Vzc2lvbi5pZCkge1xuICAgIHJldHVybiBjYWxsYmFjayhudWxsLCBnZW5lcmF0ZUF1dGhSZXNwb25zZShzZXNzaW9uLmlkLCAnQWxsb3cnLCBtZXRob2RBcm4pKTtcbiAgfVxuXG4gIHJldHVybiBjYWxsYmFjayhudWxsLCBnZW5lcmF0ZUF1dGhSZXNwb25zZShzZXNzaW9uLmlkLCAnRGVueScsIG1ldGhvZEFybikpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLHFCQUFvQjtBQUVwQixlQUF5QjtBQUVsQixNQUFNLHlCQUF5QixDQUFDLFFBQVEsY0FBYztBQUMzRCxNQUFHLENBQUMsVUFBVSxDQUFDLFdBQVc7QUFDeEIsV0FBTztBQUFBO0FBR1QsUUFBTSxpQkFBaUI7QUFBQSxJQUNyQixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsTUFDVDtBQUFBLFFBQ0UsUUFBUTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUtoQixTQUFPO0FBQUE7QUFHRixNQUFNLHVCQUF1QixDQUFDLGFBQWEsUUFBUSxjQUFjO0FBQ3RFLFFBQU0saUJBQWlCLHVCQUF1QixRQUFRO0FBRXRELFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBO0FBQUE7QUFJRyxNQUFNLGFBQWEsQ0FBQyxPQUFPLFNBQVMsYUFBYTtBQUN0RCxRQUFNLEVBQUMscUJBQXFCLElBQUksY0FBYTtBQUM3QyxRQUFNLFFBQWdCLG1CQUFtQixRQUFRLFVBQVUsSUFBSTtBQUUvRCxNQUFHLDRCQUFRLFVBQVUsNEJBQVEsWUFBWTtBQUN2QyxXQUFPLFNBQVMsTUFBTTtBQUFBO0FBSXhCLFFBQU0sVUFBZSx5QkFBVztBQUVoQyxNQUFHLFdBQVcsUUFBUSxJQUFJO0FBQ3hCLFdBQU8sU0FBUyxNQUFNLHFCQUFxQixRQUFRLElBQUksU0FBUztBQUFBO0FBR2xFLFNBQU8sU0FBUyxNQUFNLHFCQUFxQixRQUFRLElBQUksUUFBUTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const connectHandler: (event: any) => Promise<{
|
|
2
|
+
statusCode: number;
|
|
3
|
+
} | {
|
|
4
|
+
message: any;
|
|
5
|
+
statusCode: number;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const defaultHandler: (event: any) => Promise<{
|
|
8
|
+
statusCode: number;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const messageHandler: (event: any) => Promise<{
|
|
11
|
+
statusCode: number;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __export = (target, all) => {
|
|
26
|
+
__markAsModule(target);
|
|
27
|
+
for (var name in all)
|
|
28
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
29
|
+
};
|
|
30
|
+
var __reExport = (target, module2, desc) => {
|
|
31
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
32
|
+
for (let key of __getOwnPropNames(module2))
|
|
33
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
34
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
35
|
+
}
|
|
36
|
+
return target;
|
|
37
|
+
};
|
|
38
|
+
var __toModule = (module2) => {
|
|
39
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
40
|
+
};
|
|
41
|
+
__export(exports, {
|
|
42
|
+
connectHandler: () => connectHandler,
|
|
43
|
+
defaultHandler: () => defaultHandler,
|
|
44
|
+
messageHandler: () => messageHandler
|
|
45
|
+
});
|
|
46
|
+
var import_isEmpty = __toModule(require("lodash/isEmpty"));
|
|
47
|
+
var import__ = __toModule(require(".."));
|
|
48
|
+
var import_websockets = __toModule(require("./actions/websockets"));
|
|
49
|
+
var import_message = __toModule(require("./utils/message"));
|
|
50
|
+
var import_websocket2 = __toModule(require("./utils/websocket"));
|
|
51
|
+
const successStatus = { statusCode: 200 };
|
|
52
|
+
const errorStatus = { statusCode: 500 };
|
|
53
|
+
const { ARANGODB_DATABASE: databaseName } = process.env;
|
|
54
|
+
const getBasicContext = (userId) => ({ database: (0, import__.useDb)(databaseName), session: { userId } });
|
|
55
|
+
const connectHandler = async (event) => {
|
|
56
|
+
import_websocket2.wsClient.setupClient(event);
|
|
57
|
+
const { queryStringParameters = {}, requestContext } = event;
|
|
58
|
+
const { connectionId, eventType } = requestContext;
|
|
59
|
+
const { token } = queryStringParameters;
|
|
60
|
+
try {
|
|
61
|
+
if (eventType === "CONNECT") {
|
|
62
|
+
await (0, import_websockets.addConnection)(connectionId, token);
|
|
63
|
+
return successStatus;
|
|
64
|
+
} else if (eventType === "DISCONNECT") {
|
|
65
|
+
await (0, import_websockets.removeConnection)(connectionId);
|
|
66
|
+
return successStatus;
|
|
67
|
+
}
|
|
68
|
+
return __spreadProps(__spreadValues({}, errorStatus), { message: "Unknown type" });
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return __spreadProps(__spreadValues({}, errorStatus), { message: error.message });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const defaultHandler = async (event) => {
|
|
74
|
+
await import_websocket2.wsClient.send(event, {
|
|
75
|
+
event: "error",
|
|
76
|
+
message: "invalid action type"
|
|
77
|
+
});
|
|
78
|
+
return successStatus;
|
|
79
|
+
};
|
|
80
|
+
const messageHandler = async (event) => {
|
|
81
|
+
const { body, requestContext } = event;
|
|
82
|
+
const { connectionId } = requestContext;
|
|
83
|
+
const message = JSON.parse(body).data;
|
|
84
|
+
const { conversationId, content } = message;
|
|
85
|
+
const formatContent = (0, import_message.parseMessage)(content);
|
|
86
|
+
const connection = await (0, import_websockets.getConnectionById)(connectionId);
|
|
87
|
+
const { user } = connection;
|
|
88
|
+
const { _key: userId } = user;
|
|
89
|
+
const authContext = getBasicContext(userId);
|
|
90
|
+
const conversation = await (0, import__.getConversation)(authContext, conversationId);
|
|
91
|
+
const { users = [] } = conversation;
|
|
92
|
+
await Promise.all(users.map(async (user2) => {
|
|
93
|
+
const { userId: userId2 } = user2;
|
|
94
|
+
const connection2 = await (0, import_websockets.getConnectionByUserId)(userId2);
|
|
95
|
+
if (connection2) {
|
|
96
|
+
const { connectionId: connectionId2 } = connection2;
|
|
97
|
+
if (!(0, import_isEmpty.default)(connectionId2)) {
|
|
98
|
+
import_websocket2.wsClient.send(connectionId2, {
|
|
99
|
+
action: "reaktorMessage",
|
|
100
|
+
data: formatContent
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
return successStatus;
|
|
106
|
+
};
|
|
107
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
108
|
+
0 && (module.exports = {
|
|
109
|
+
connectHandler,
|
|
110
|
+
defaultHandler,
|
|
111
|
+
messageHandler
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xhbWJkYXMvY29ubmVjdGlvbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcblxuaW1wb3J0IHtnZXRDb252ZXJzYXRpb24sIHVzZURifSBmcm9tICcuLic7XG5pbXBvcnQge1dlYnNvY2tldE1lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy93ZWJzb2NrZXQnO1xuaW1wb3J0IHthZGRDb25uZWN0aW9uLCBnZXRDb25uZWN0aW9uQnlJZCwgZ2V0Q29ubmVjdGlvbkJ5VXNlcklkLCByZW1vdmVDb25uZWN0aW9ufSBmcm9tICcuL2FjdGlvbnMvd2Vic29ja2V0cyc7XG5pbXBvcnQge3BhcnNlTWVzc2FnZX0gZnJvbSAnLi91dGlscy9tZXNzYWdlJztcbmltcG9ydCB7d3NDbGllbnR9IGZyb20gJy4vdXRpbHMvd2Vic29ja2V0JztcblxuY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IHtzdGF0dXNDb2RlOiAyMDB9O1xuY29uc3QgZXJyb3JTdGF0dXMgPSB7c3RhdHVzQ29kZTogNTAwfTtcbmNvbnN0IHtBUkFOR09EQl9EQVRBQkFTRTogZGF0YWJhc2VOYW1lfSA9IHByb2Nlc3MuZW52O1xuY29uc3QgZ2V0QmFzaWNDb250ZXh0ID0gKHVzZXJJZDogc3RyaW5nKSA9PiAoe2RhdGFiYXNlOiB1c2VEYihkYXRhYmFzZU5hbWUpLCBzZXNzaW9uOiB7dXNlcklkfX0pO1xuXG5leHBvcnQgY29uc3QgY29ubmVjdEhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgLy8gV2UgZG8gdGhpcyBzbyBmaXJzdCBjb25uZWN0IEVWRVIgc2V0cyB1cCBzb21lIG5lZWRlZCBjb25maWcgc3RhdGUgaW4gZGJcbiAgLy8gdGhpcyBnb2VzIGF3YXkgYWZ0ZXIgQ2xvdWRGb3JtYXRpb24gc3VwcG9ydCBpcyBhZGRlZCBmb3Igd2ViIHNvY2tldHNcbiAgd3NDbGllbnQuc2V0dXBDbGllbnQoZXZlbnQpO1xuICBjb25zdCB7cXVlcnlTdHJpbmdQYXJhbWV0ZXJzID0ge30sIHJlcXVlc3RDb250ZXh0fSA9IGV2ZW50O1xuICBjb25zdCB7Y29ubmVjdGlvbklkLCBldmVudFR5cGV9ID0gcmVxdWVzdENvbnRleHQ7XG4gIGNvbnN0IHt0b2tlbn0gPSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM7XG5cbiAgdHJ5IHtcbiAgICBpZihldmVudFR5cGUgPT09ICdDT05ORUNUJykge1xuICAgICAgYXdhaXQgYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uSWQsIHRva2VuKTtcbiAgICAgIHJldHVybiBzdWNjZXNzU3RhdHVzO1xuICAgIH0gZWxzZSBpZihldmVudFR5cGUgPT09ICdESVNDT05ORUNUJykge1xuICAgICAgYXdhaXQgcmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgICAgcmV0dXJuIHN1Y2Nlc3NTdGF0dXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogJ1Vua25vd24gdHlwZSd9O1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHsuLi5lcnJvclN0YXR1cywgbWVzc2FnZTogZXJyb3IubWVzc2FnZX07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0SGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge1xuICBhd2FpdCB3c0NsaWVudC5zZW5kKGV2ZW50LCB7XG4gICAgZXZlbnQ6ICdlcnJvcicsXG4gICAgbWVzc2FnZTogJ2ludmFsaWQgYWN0aW9uIHR5cGUnXG4gIH0pO1xuXG4gIHJldHVybiBzdWNjZXNzU3RhdHVzO1xufTtcblxuZXhwb3J0IGNvbnN0IG1lc3NhZ2VIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHtib2R5LCByZXF1ZXN0Q29udGV4dH0gPSBldmVudDtcbiAgY29uc3Qge2Nvbm5lY3Rpb25JZH0gPSByZXF1ZXN0Q29udGV4dDtcbiAgY29uc3QgbWVzc2FnZTogV2Vic29ja2V0TWVzc2FnZVR5cGUgPSBKU09OLnBhcnNlKGJvZHkpLmRhdGE7XG4gIGNvbnN0IHtjb252ZXJzYXRpb25JZCwgY29udGVudH0gPSBtZXNzYWdlO1xuICBjb25zdCBmb3JtYXRDb250ZW50OiBzdHJpbmcgPSBwYXJzZU1lc3NhZ2UoY29udGVudCk7XG5cbiAgLy8gR2V0IGN1cnJlbnQgdXNlciBieSBjb25uZWN0aW9uXG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBnZXRDb25uZWN0aW9uQnlJZChjb25uZWN0aW9uSWQpO1xuICBjb25zdCB7dXNlcn0gPSBjb25uZWN0aW9uO1xuICBjb25zdCB7X2tleTogdXNlcklkfSA9IHVzZXI7XG4gIGNvbnN0IGF1dGhDb250ZXh0ID0gZ2V0QmFzaWNDb250ZXh0KHVzZXJJZCk7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGF3YWl0IGdldENvbnZlcnNhdGlvbihhdXRoQ29udGV4dCwgY29udmVyc2F0aW9uSWQpO1xuICBjb25zdCB7dXNlcnMgPSBbXX0gPSBjb252ZXJzYXRpb247XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwodXNlcnMubWFwKGFzeW5jICh1c2VyKSA9PiB7XG4gICAgY29uc3Qge3VzZXJJZH0gPSB1c2VyO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBnZXRDb25uZWN0aW9uQnlVc2VySWQodXNlcklkKTtcblxuICAgIGlmKGNvbm5lY3Rpb24pIHtcbiAgICAgIGNvbnN0IHtjb25uZWN0aW9uSWR9ID0gY29ubmVjdGlvbjtcblxuICAgICAgaWYoIWlzRW1wdHkoY29ubmVjdGlvbklkKSkge1xuICAgICAgICB3c0NsaWVudC5zZW5kKGNvbm5lY3Rpb25JZCwge1xuICAgICAgICAgIGFjdGlvbjogJ3JlYWt0b3JNZXNzYWdlJyxcbiAgICAgICAgICBkYXRhOiBmb3JtYXRDb250ZW50XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSkpO1xuXG4gIHJldHVybiBzdWNjZXNzU3RhdHVzO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEscUJBQW9CO0FBRXBCLGVBQXFDO0FBRXJDLHdCQUF3RjtBQUN4RixxQkFBMkI7QUFDM0Isd0JBQXVCO0FBRXZCLE1BQU0sZ0JBQWdCLEVBQUMsWUFBWTtBQUNuQyxNQUFNLGNBQWMsRUFBQyxZQUFZO0FBQ2pDLE1BQU0sRUFBQyxtQkFBbUIsaUJBQWdCLFFBQVE7QUFDbEQsTUFBTSxrQkFBa0IsQ0FBQyxXQUFvQixHQUFDLFVBQVUsb0JBQU0sZUFBZSxTQUFTLEVBQUM7QUFFaEYsTUFBTSxpQkFBaUIsT0FBTyxVQUFVO0FBRzdDLDZCQUFTLFlBQVk7QUFDckIsUUFBTSxFQUFDLHdCQUF3QixJQUFJLG1CQUFrQjtBQUNyRCxRQUFNLEVBQUMsY0FBYyxjQUFhO0FBQ2xDLFFBQU0sRUFBQyxVQUFTO0FBRWhCLE1BQUk7QUFDRixRQUFHLGNBQWMsV0FBVztBQUMxQixZQUFNLHFDQUFjLGNBQWM7QUFDbEMsYUFBTztBQUFBLGVBQ0MsY0FBYyxjQUFjO0FBQ3BDLFlBQU0sd0NBQWlCO0FBQ3ZCLGFBQU87QUFBQTtBQUdULFdBQU8saUNBQUksY0FBSixFQUFpQixTQUFTO0FBQUEsV0FDM0IsT0FBTjtBQUNBLFdBQU8saUNBQUksY0FBSixFQUFpQixTQUFTLE1BQU07QUFBQTtBQUFBO0FBSXBDLE1BQU0saUJBQWlCLE9BQU8sVUFBVTtBQUM3QyxRQUFNLDJCQUFTLEtBQUssT0FBTztBQUFBLElBQ3pCLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQTtBQUdYLFNBQU87QUFBQTtBQUdGLE1BQU0saUJBQWlCLE9BQU8sVUFBVTtBQUM3QyxRQUFNLEVBQUMsTUFBTSxtQkFBa0I7QUFDL0IsUUFBTSxFQUFDLGlCQUFnQjtBQUN2QixRQUFNLFVBQWdDLEtBQUssTUFBTSxNQUFNO0FBQ3ZELFFBQU0sRUFBQyxnQkFBZ0IsWUFBVztBQUNsQyxRQUFNLGdCQUF3QixpQ0FBYTtBQUczQyxRQUFNLGFBQWEsTUFBTSx5Q0FBa0I7QUFDM0MsUUFBTSxFQUFDLFNBQVE7QUFDZixRQUFNLEVBQUMsTUFBTSxXQUFVO0FBQ3ZCLFFBQU0sY0FBYyxnQkFBZ0I7QUFDcEMsUUFBTSxlQUFlLE1BQU0sOEJBQWdCLGFBQWE7QUFDeEQsUUFBTSxFQUFDLFFBQVEsT0FBTTtBQUVyQixRQUFNLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxVQUFTO0FBQzFDLFVBQU0sRUFBQyxvQkFBVTtBQUNqQixVQUFNLGNBQWEsTUFBTSw2Q0FBc0I7QUFFL0MsUUFBRyxhQUFZO0FBQ2IsWUFBTSxFQUFDLGdDQUFnQjtBQUV2QixVQUFHLENBQUMsNEJBQVEsZ0JBQWU7QUFDekIsbUNBQVMsS0FBSyxlQUFjO0FBQUEsVUFDMUIsUUFBUTtBQUFBLFVBQ1IsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTWQsU0FBTztBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parseMessage: (content: string) => string;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
parseMessage: () => parseMessage
|
|
26
|
+
});
|
|
27
|
+
var import_sanitize_html = __toModule(require("sanitize-html"));
|
|
28
|
+
const parseMessage = (content) => (0, import_sanitize_html.default)(content, {
|
|
29
|
+
allowedAttributes: {},
|
|
30
|
+
allowedTags: ["ul", "ol", "b", "i", "em", "strike", "pre", "strong", "li"]
|
|
31
|
+
});
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
parseMessage
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvdXRpbHMvbWVzc2FnZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1odG1sJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlTWVzc2FnZSA9IChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4gc2FuaXRpemUoY29udGVudCwge1xuICBhbGxvd2VkQXR0cmlidXRlczoge30sXG4gIGFsbG93ZWRUYWdzOiBbJ3VsJywgJ29sJywgJ2InLCAnaScsICdlbScsICdzdHJpa2UnLCAncHJlJywgJ3N0cm9uZycsICdsaSddXG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBSUEsMkJBQXFCO0FBRWQsTUFBTSxlQUFlLENBQUMsWUFBNEIsa0NBQVMsU0FBUztBQUFBLEVBQ3pFLG1CQUFtQjtBQUFBLEVBQ25CLGFBQWEsQ0FBQyxNQUFNLE1BQU0sS0FBSyxLQUFLLE1BQU0sVUFBVSxPQUFPLFVBQVU7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
__markAsModule(target);
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toModule = (module2) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
__export(exports, {
|
|
25
|
+
WebsocketClient: () => WebsocketClient,
|
|
26
|
+
wsClient: () => wsClient
|
|
27
|
+
});
|
|
28
|
+
var import_aws_sdk = __toModule(require("aws-sdk"));
|
|
29
|
+
var import_isPlainObject = __toModule(require("lodash/isPlainObject"));
|
|
30
|
+
var import_websockets = __toModule(require("../actions/websockets"));
|
|
31
|
+
const { API_ID, DOMAIN_NAME, stage } = process.env;
|
|
32
|
+
class WebsocketClient {
|
|
33
|
+
constructor(config) {
|
|
34
|
+
if (config) {
|
|
35
|
+
this.setupClient(config);
|
|
36
|
+
} else {
|
|
37
|
+
this.setupClient({ requestContext: { apiId: API_ID, domainName: DOMAIN_NAME, stage } });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
setupClient(config) {
|
|
41
|
+
if (!this.client) {
|
|
42
|
+
const { requestContext } = config;
|
|
43
|
+
const { apiId, domainName, stage: stage2 } = requestContext;
|
|
44
|
+
let updatedDomainName = domainName;
|
|
45
|
+
if (apiId) {
|
|
46
|
+
updatedDomainName = `${apiId}.execute-api.${process.env.region}.amazonaws.com`;
|
|
47
|
+
}
|
|
48
|
+
let endpoint;
|
|
49
|
+
switch (stage2) {
|
|
50
|
+
case "prod":
|
|
51
|
+
endpoint = `https://${updatedDomainName}/prod`;
|
|
52
|
+
break;
|
|
53
|
+
case "dev":
|
|
54
|
+
endpoint = `https://${updatedDomainName}/dev`;
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
endpoint = "http://local.phantaze.com:3001";
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
this.client = new import_aws_sdk.ApiGatewayManagementApi({
|
|
61
|
+
apiVersion: "2018-11-29",
|
|
62
|
+
endpoint
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async send(connections, payload) {
|
|
67
|
+
const connectionIds = [];
|
|
68
|
+
if ((0, import_isPlainObject.default)(connections)) {
|
|
69
|
+
await this.setupClient(connections);
|
|
70
|
+
const { connectionId: connId } = connections.requestContext;
|
|
71
|
+
connectionIds.push(connId);
|
|
72
|
+
} else {
|
|
73
|
+
connectionIds.push(...connections);
|
|
74
|
+
}
|
|
75
|
+
if (this.client) {
|
|
76
|
+
await Promise.all(connectionIds.map((connectionId) => this.client.postToConnection({ ConnectionId: connectionId, Data: JSON.stringify(payload) }).promise().catch(async (postError) => {
|
|
77
|
+
console.log("WebsocketError::postError", JSON.stringify(postError));
|
|
78
|
+
if (postError.statusCode === 410) {
|
|
79
|
+
await (0, import_websockets.removeConnection)(connectionId);
|
|
80
|
+
}
|
|
81
|
+
})));
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const wsClient = new WebsocketClient();
|
|
87
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
88
|
+
0 && (module.exports = {
|
|
89
|
+
WebsocketClient,
|
|
90
|
+
wsClient
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvdXRpbHMvd2Vic29ja2V0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtBcGlHYXRld2F5TWFuYWdlbWVudEFwaX0gZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gvaXNQbGFpbk9iamVjdCc7XG5cbmltcG9ydCB7cmVtb3ZlQ29ubmVjdGlvbn0gZnJvbSAnLi4vYWN0aW9ucy93ZWJzb2NrZXRzJztcblxuY29uc3Qge0FQSV9JRCwgRE9NQUlOX05BTUUsIHN0YWdlfSA9IHByb2Nlc3MuZW52O1xuXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0Q2xpZW50IHtcbiAgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz8pIHtcbiAgICBpZihjb25maWcpIHtcbiAgICAgIHRoaXMuc2V0dXBDbGllbnQoY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cENsaWVudCh7cmVxdWVzdENvbnRleHQ6IHthcGlJZDogQVBJX0lELCBkb21haW5OYW1lOiBET01BSU5fTkFNRSwgc3RhZ2V9fSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWxsb3cganVzdCBwYXNzaW5nIGEgc2luZ2xlIGV2ZW50IHRvIHNldHVwIHRoZSBjbGllbnQgZm9yIGVhc2Ugb2YgdXNlXG4gIHNldHVwQ2xpZW50KGNvbmZpZykge1xuICAgIGlmKCF0aGlzLmNsaWVudCkge1xuICAgICAgY29uc3Qge3JlcXVlc3RDb250ZXh0fSA9IGNvbmZpZztcbiAgICAgIGNvbnN0IHthcGlJZCwgZG9tYWluTmFtZSwgc3RhZ2V9ID0gcmVxdWVzdENvbnRleHQ7XG4gICAgICBsZXQgdXBkYXRlZERvbWFpbk5hbWU6IHN0cmluZyA9IGRvbWFpbk5hbWU7XG5cbiAgICAgIGlmKGFwaUlkKSB7XG4gICAgICAgIHVwZGF0ZWREb21haW5OYW1lID0gYCR7YXBpSWR9LmV4ZWN1dGUtYXBpLiR7cHJvY2Vzcy5lbnYucmVnaW9ufS5hbWF6b25hd3MuY29tYDtcbiAgICAgIH1cblxuICAgICAgbGV0IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgICAgIHN3aXRjaChzdGFnZSkge1xuICAgICAgICBjYXNlICdwcm9kJzpcbiAgICAgICAgICBlbmRwb2ludCA9IGBodHRwczovLyR7dXBkYXRlZERvbWFpbk5hbWV9L3Byb2RgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZXYnOlxuICAgICAgICAgIGVuZHBvaW50ID0gYGh0dHBzOi8vJHt1cGRhdGVkRG9tYWluTmFtZX0vZGV2YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBlbmRwb2ludCA9ICdodHRwOi8vbG9jYWwucGhhbnRhemUuY29tOjMwMDEnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNsaWVudCA9IG5ldyBBcGlHYXRld2F5TWFuYWdlbWVudEFwaSh7XG4gICAgICAgIGFwaVZlcnNpb246ICcyMDE4LTExLTI5JyxcbiAgICAgICAgZW5kcG9pbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmQoY29ubmVjdGlvbnMsIHBheWxvYWQpIHtcbiAgICAvLyBDaGVhdCBhbmQgYWxsb3cgZXZlbnQgdG8gYmUgcGFzc2VkIGluIHRoaXMgYWxzbyBsZXRzIHVzIGRlZmF1bHQgdG8gc2V0dXBDbGllbnQgdG9vXG4gICAgY29uc3QgY29ubmVjdGlvbklkczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmKGlzUGxhaW5PYmplY3QoY29ubmVjdGlvbnMpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldHVwQ2xpZW50KGNvbm5lY3Rpb25zKTtcbiAgICAgIGNvbnN0IHtjb25uZWN0aW9uSWQ6IGNvbm5JZH0gPSBjb25uZWN0aW9ucy5yZXF1ZXN0Q29udGV4dDtcbiAgICAgIGNvbm5lY3Rpb25JZHMucHVzaChjb25uSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25uZWN0aW9uSWRzLnB1c2goLi4uY29ubmVjdGlvbnMpO1xuICAgIH1cblxuICAgIGlmKHRoaXMuY2xpZW50KSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgY29ubmVjdGlvbklkcy5tYXAoKGNvbm5lY3Rpb25JZDogc3RyaW5nKSA9PlxuICAgICAgICAgIHRoaXMuY2xpZW50LnBvc3RUb0Nvbm5lY3Rpb24oe0Nvbm5lY3Rpb25JZDogY29ubmVjdGlvbklkLCBEYXRhOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKX0pXG4gICAgICAgICAgICAucHJvbWlzZSgpXG4gICAgICAgICAgICAuY2F0Y2goYXN5bmMgKHBvc3RFcnJvcikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnV2Vic29ja2V0RXJyb3I6OnBvc3RFcnJvcicsIEpTT04uc3RyaW5naWZ5KHBvc3RFcnJvcikpO1xuXG4gICAgICAgICAgICAgIGlmKHBvc3RFcnJvci5zdGF0dXNDb2RlID09PSA0MTApIHtcbiAgICAgICAgICAgICAgICAvLyBEaXNjb25uZWN0IGNsaWVudFxuICAgICAgICAgICAgICAgIGF3YWl0IHJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd3NDbGllbnQgPSBuZXcgV2Vic29ja2V0Q2xpZW50KCk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEscUJBQXNDO0FBQ3RDLDJCQUEwQjtBQUUxQix3QkFBK0I7QUFFL0IsTUFBTSxFQUFDLFFBQVEsYUFBYSxVQUFTLFFBQVE7QUFFdEMsc0JBQXNCO0FBQUEsRUFHM0IsWUFBWSxRQUFTO0FBQ25CLFFBQUcsUUFBUTtBQUNULFdBQUssWUFBWTtBQUFBLFdBQ1o7QUFDTCxXQUFLLFlBQVksRUFBQyxnQkFBZ0IsRUFBQyxPQUFPLFFBQVEsWUFBWSxhQUFhO0FBQUE7QUFBQTtBQUFBLEVBSy9FLFlBQVksUUFBUTtBQUNsQixRQUFHLENBQUMsS0FBSyxRQUFRO0FBQ2YsWUFBTSxFQUFDLG1CQUFrQjtBQUN6QixZQUFNLEVBQUMsT0FBTyxZQUFZLGtCQUFTO0FBQ25DLFVBQUksb0JBQTRCO0FBRWhDLFVBQUcsT0FBTztBQUNSLDRCQUFvQixHQUFHLHFCQUFxQixRQUFRLElBQUk7QUFBQTtBQUcxRCxVQUFJO0FBRUosY0FBTztBQUFBLGFBQ0E7QUFDSCxxQkFBVyxXQUFXO0FBQ3RCO0FBQUEsYUFDRztBQUNILHFCQUFXLFdBQVc7QUFDdEI7QUFBQTtBQUVBLHFCQUFXO0FBQ1g7QUFBQTtBQUdKLFdBQUssU0FBUyxJQUFJLHVDQUF3QjtBQUFBLFFBQ3hDLFlBQVk7QUFBQSxRQUNaO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLQSxLQUFLLGFBQWEsU0FBUztBQUUvQixVQUFNLGdCQUEwQjtBQUVoQyxRQUFHLGtDQUFjLGNBQWM7QUFDN0IsWUFBTSxLQUFLLFlBQVk7QUFDdkIsWUFBTSxFQUFDLGNBQWMsV0FBVSxZQUFZO0FBQzNDLG9CQUFjLEtBQUs7QUFBQSxXQUNkO0FBQ0wsb0JBQWMsS0FBSyxHQUFHO0FBQUE7QUFHeEIsUUFBRyxLQUFLLFFBQVE7QUFDZCxZQUFNLFFBQVEsSUFDWixjQUFjLElBQUksQ0FBQyxpQkFDakIsS0FBSyxPQUFPLGlCQUFpQixFQUFDLGNBQWMsY0FBYyxNQUFNLEtBQUssVUFBVSxZQUM1RSxVQUNBLE1BQU0sT0FBTyxjQUFjO0FBQzFCLGdCQUFRLElBQUksNkJBQTZCLEtBQUssVUFBVTtBQUV4RCxZQUFHLFVBQVUsZUFBZSxLQUFLO0FBRS9CLGdCQUFNLHdDQUFpQjtBQUFBO0FBQUE7QUFBQTtBQU9uQyxXQUFPO0FBQUE7QUFBQTtBQUlKLE1BQU0sV0FBVyxJQUFJOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WebsocketMessageType {
|
|
2
|
+
readonly _id?: string;
|
|
3
|
+
readonly _key?: string;
|
|
4
|
+
readonly added?: number;
|
|
5
|
+
readonly content?: string;
|
|
6
|
+
readonly conversationId?: string;
|
|
7
|
+
readonly files?: string[];
|
|
8
|
+
readonly images?: string[];
|
|
9
|
+
readonly messageId?: string;
|
|
10
|
+
readonly modified?: number;
|
|
11
|
+
readonly read?: boolean;
|
|
12
|
+
readonly saved?: boolean;
|
|
13
|
+
readonly userId?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
+
__markAsModule(exports);
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3R5cGVzL3dlYnNvY2tldC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic29ja2V0TWVzc2FnZVR5cGUge1xuICByZWFkb25seSBfaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IF9rZXk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb250ZW50Pzogc3RyaW5nO1xuICByZWFkb25seSBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZmlsZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgaW1hZ2VzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1lc3NhZ2VJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJlYWQ/OiBib29sZWFuO1xuICByZWFkb25seSBzYXZlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7O0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/reaktor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Reaktor",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"module": "./lib/index.js",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"node-yelp": "^0.0.2",
|
|
62
62
|
"numeral": "^2.0.6",
|
|
63
63
|
"request-promise": "^4.2.6",
|
|
64
|
+
"sanitize-html": "^2.5.0",
|
|
64
65
|
"stripe": "^8.174.0",
|
|
65
66
|
"to": "^0.2.9",
|
|
66
67
|
"twilio": "^3.67.2",
|