@nlabs/reaktor 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +5 -5
  2. package/src/config.ts +8 -2
  3. package/src/data/posts.ts +79 -60
  4. package/src/types/posts.ts +1 -0
  5. package/lib/config.d.ts +0 -21
  6. package/lib/config.js +0 -127
  7. package/lib/data/conversations.d.ts +0 -6
  8. package/lib/data/conversations.js +0 -197
  9. package/lib/data/dynamodb.d.ts +0 -8
  10. package/lib/data/dynamodb.js +0 -139
  11. package/lib/data/email.d.ts +0 -7
  12. package/lib/data/email.js +0 -163
  13. package/lib/data/files.d.ts +0 -16
  14. package/lib/data/files.js +0 -406
  15. package/lib/data/groups.d.ts +0 -13
  16. package/lib/data/groups.js +0 -354
  17. package/lib/data/images.d.ts +0 -12
  18. package/lib/data/images.js +0 -667
  19. package/lib/data/index.d.ts +0 -19
  20. package/lib/data/index.js +0 -24
  21. package/lib/data/ios.d.ts +0 -6
  22. package/lib/data/ios.js +0 -302
  23. package/lib/data/locations.d.ts +0 -3
  24. package/lib/data/locations.js +0 -132
  25. package/lib/data/messages.d.ts +0 -9
  26. package/lib/data/messages.js +0 -248
  27. package/lib/data/notifications.d.ts +0 -5
  28. package/lib/data/notifications.js +0 -42
  29. package/lib/data/payments.d.ts +0 -11
  30. package/lib/data/payments.js +0 -748
  31. package/lib/data/posts.d.ts +0 -16
  32. package/lib/data/posts.js +0 -540
  33. package/lib/data/reactions.d.ts +0 -6
  34. package/lib/data/reactions.js +0 -218
  35. package/lib/data/s3.d.ts +0 -6
  36. package/lib/data/s3.js +0 -103
  37. package/lib/data/search.d.ts +0 -3
  38. package/lib/data/search.js +0 -98
  39. package/lib/data/sms.d.ts +0 -3
  40. package/lib/data/sms.js +0 -59
  41. package/lib/data/subscription.d.ts +0 -7
  42. package/lib/data/subscription.js +0 -284
  43. package/lib/data/tags.d.ts +0 -14
  44. package/lib/data/tags.js +0 -304
  45. package/lib/data/users.d.ts +0 -12
  46. package/lib/data/users.js +0 -310
  47. package/lib/index.d.ts +0 -3
  48. package/lib/index.js +0 -8
  49. package/lib/types/apps.d.ts +0 -43
  50. package/lib/types/apps.js +0 -2
  51. package/lib/types/arangodb.d.ts +0 -17
  52. package/lib/types/arangodb.js +0 -2
  53. package/lib/types/auth.d.ts +0 -10
  54. package/lib/types/auth.js +0 -2
  55. package/lib/types/conversations.d.ts +0 -6
  56. package/lib/types/conversations.js +0 -2
  57. package/lib/types/email.d.ts +0 -12
  58. package/lib/types/email.js +0 -2
  59. package/lib/types/files.d.ts +0 -26
  60. package/lib/types/files.js +0 -2
  61. package/lib/types/google.d.ts +0 -27
  62. package/lib/types/google.js +0 -2
  63. package/lib/types/groups.d.ts +0 -21
  64. package/lib/types/groups.js +0 -2
  65. package/lib/types/images.d.ts +0 -24
  66. package/lib/types/images.js +0 -2
  67. package/lib/types/index.d.ts +0 -17
  68. package/lib/types/index.js +0 -22
  69. package/lib/types/locations.d.ts +0 -20
  70. package/lib/types/locations.js +0 -2
  71. package/lib/types/messages.d.ts +0 -12
  72. package/lib/types/messages.js +0 -2
  73. package/lib/types/notifications.d.ts +0 -19
  74. package/lib/types/notifications.js +0 -2
  75. package/lib/types/payments.d.ts +0 -114
  76. package/lib/types/payments.js +0 -2
  77. package/lib/types/posts.d.ts +0 -27
  78. package/lib/types/posts.js +0 -2
  79. package/lib/types/reactions.d.ts +0 -4
  80. package/lib/types/reactions.js +0 -2
  81. package/lib/types/tags.d.ts +0 -9
  82. package/lib/types/tags.js +0 -2
  83. package/lib/types/users.d.ts +0 -78
  84. package/lib/types/users.js +0 -2
  85. package/lib/utils/analytics.d.ts +0 -3
  86. package/lib/utils/analytics.js +0 -47
  87. package/lib/utils/arangodb.d.ts +0 -9
  88. package/lib/utils/arangodb.js +0 -98
  89. package/lib/utils/auth.d.ts +0 -7
  90. package/lib/utils/auth.js +0 -80
  91. package/lib/utils/graphql.d.ts +0 -1
  92. package/lib/utils/graphql.js +0 -7
  93. package/lib/utils/index.d.ts +0 -6
  94. package/lib/utils/index.js +0 -11
  95. package/lib/utils/objects.d.ts +0 -3
  96. package/lib/utils/objects.js +0 -34
  97. package/lib/utils/redis.d.ts +0 -1
  98. package/lib/utils/redis.js +0 -15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlabs/reaktor",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Reaktor",
5
5
  "main": "./index.js",
6
6
  "types": "./lib/index.d.js",
@@ -35,13 +35,13 @@
35
35
  "dependencies": {
36
36
  "@nlabs/arkhamjs": "^3.11.11",
37
37
  "@nlabs/rip-hunter": "^2.0.1",
38
- "@nlabs/utils": "^1.2.1",
38
+ "@nlabs/utils": "^1.2.2",
39
39
  "apn": "^2.2.0",
40
40
  "arangojs": "^6.0.0",
41
- "aws-sdk": "^2.420.0",
41
+ "aws-sdk": "^2.421.0",
42
42
  "gm": "^1.23.1",
43
43
  "google-libphonenumber": "^3.0.10",
44
- "googleapis": "^37.2.0",
44
+ "googleapis": "^38.0.0",
45
45
  "graphql": "^14.0.2",
46
46
  "graphql-errors": "^2.1.0",
47
47
  "graphql-fields": "^2.0.3",
@@ -64,7 +64,7 @@
64
64
  "@types/history": "^4.6.2",
65
65
  "@types/jest": "^24.0.11",
66
66
  "@types/luxon": "^1.11.0",
67
- "@types/node": "^11.11.2",
67
+ "@types/node": "^11.11.3",
68
68
  "@types/twilio": "^0.0.10",
69
69
  "eslint": "^5.15.1",
70
70
  "eslint-config-styleguidejs": "^1.0.8",
package/src/config.ts CHANGED
@@ -26,7 +26,13 @@ export interface EnvConfig {
26
26
 
27
27
  const appPackage: any = require('../package.json');
28
28
 
29
- const {arangodbDatabase, arangodbPassword, arangodbPort = '8529', arangodbUrl, arangodbUsername} = process.env;
29
+ const {
30
+ arangodbDatabase = 'reaktor',
31
+ arangodbPassword,
32
+ arangodbPort = '8529',
33
+ arangodbUrl = 'db.reaktor.io',
34
+ arangodbUsername = 'reaktor'
35
+ } = process.env;
30
36
 
31
37
  export class Config {
32
38
  static values: EnvConfig = {
@@ -37,7 +43,7 @@ export class Config {
37
43
  version: appPackage.version
38
44
  },
39
45
  arangodb: {
40
- apiUrl: `http://${arangodbUsername}:${arangodbPassword}@${arangodbUrl}:${arangodbPort}`,
46
+ apiUrl: `http://${arangodbUrl}:${arangodbPort}`,
41
47
  database: arangodbDatabase,
42
48
  dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
43
49
  password: arangodbPassword,
package/src/data/posts.ts CHANGED
@@ -9,7 +9,7 @@ import {ArrayCursor} from 'arangojs/lib/cjs/cursor';
9
9
  import flatten from 'lodash/flatten';
10
10
  import uniqBy from 'lodash/uniqBy';
11
11
 
12
- import {ApiContext, ArangoDBLimit, FileType, GroupType, PostOptions, PostType, TagType} from '../types';
12
+ import {ApiContext, FileType, GroupType, PostOptions, PostType, TagType} from '../types';
13
13
  import {getLimit, useDb} from '../utils';
14
14
  import {updateFiles} from './files';
15
15
  import {extractTags} from './tags';
@@ -17,6 +17,24 @@ import {extractTags} from './tags';
17
17
  // const eventCategory: string = 'posts';
18
18
  const MAX_CONTENT_LENGTH: number = 100000;
19
19
 
20
+ export const parsePostOptions = (options: PostOptions = {}) => {
21
+ const {
22
+ from = 0,
23
+ latitude,
24
+ longitude,
25
+ to = 30,
26
+ type = 'default'
27
+ } = options;
28
+
29
+
30
+ return {
31
+ latitude: parseNum(latitude, 32),
32
+ longitude: parseNum(longitude, 32),
33
+ limit: getLimit(from, to),
34
+ type: parseChar(type, 32)
35
+ };
36
+ };
37
+
20
38
  export const getPostOptional = (fields: string[]) =>
21
39
  fields.reduce((selects: any, field: string) => {
22
40
  switch(field) {
@@ -53,13 +71,13 @@ export const getPostOptional = (fields: string[]) =>
53
71
  }
54
72
  }, {objects: [], queries: []});
55
73
 
56
- export const getPostList = (context: ApiContext, from: number, to: number): Promise<PostType[]> => {
74
+ export const getPostList = (context: ApiContext, options?: PostOptions): Promise<PostType[]> => {
57
75
  // const action: string = 'getListByApp';
58
76
  const {database, fields} = context;
59
- const limit: ArangoDBLimit = getLimit(from, to);
77
+ const {limit, type} = parsePostOptions(options);
60
78
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
61
79
  const aqlQry: string = `FOR p IN posts
62
- FILTER p.privacy == "public" && p.parent == null
80
+ FILTER p.type == "${type}" && p.privacy == "public" && p.parent == null
63
81
  ${selectQueries.join('\n')}
64
82
  ${limit.aql}
65
83
  SORT p.added
@@ -72,7 +90,7 @@ export const getPostList = (context: ApiContext, from: number, to: number): Prom
72
90
  });
73
91
  };
74
92
 
75
- export const getPostListByGroup = (context: ApiContext, groupId: string, from: number, to: number): Promise<PostType[]> => {
93
+ export const getPostListByGroup = (context: ApiContext, groupId: string, options?: PostOptions): Promise<PostType[]> => {
76
94
  // const action: string = 'getListByGroup';
77
95
  const {database, fields, userId: sessionId} = context;
78
96
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
@@ -88,9 +106,9 @@ export const getPostListByGroup = (context: ApiContext, groupId: string, from: n
88
106
  .then((cursor: ArrayCursor) => cursor.all())
89
107
  .then((groups: GroupType[] = []) => {
90
108
  if(groups.length) {
91
- const limit: ArangoDBLimit = getLimit(from, to);
109
+ const {limit, type} = parsePostOptions(options);
92
110
  const postAqlQry: string = `FOR p IN posts
93
- FILTER p.groupId == "${formatGroupId}" && p.parent == null
111
+ FILTER p.type == "${type}" && p.groupId == "${formatGroupId}" && p.parent == null
94
112
  ${selectQueries.join('\n')}
95
113
  ${limit.aql}
96
114
  SORT p.added
@@ -110,13 +128,13 @@ export const getPostListByGroup = (context: ApiContext, groupId: string, from: n
110
128
  });
111
129
  };
112
130
 
113
- export const getPostListByLatest = (context: ApiContext, from: number, to: number): Promise<PostType[]> => {
131
+ export const getPostListByLatest = (context: ApiContext, options?: PostOptions): Promise<PostType[]> => {
114
132
  // const action: string = 'getListByLatest';
115
133
  const {database, fields} = context;
116
- const limit: ArangoDBLimit = getLimit(from, to);
134
+ const {limit, type} = parsePostOptions(options);
117
135
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
118
136
  const aqlQry: string = `FOR p IN posts
119
- FILTER p.privacy == "public" && p.parent == null
137
+ FILTER p.type == "${type}" && p.privacy == "public" && p.parent == null
120
138
  ${selectQueries.join('\n')}
121
139
  ${limit.aql}
122
140
  SORT p.added
@@ -132,11 +150,11 @@ export const getPostListByLatest = (context: ApiContext, from: number, to: numbe
132
150
  export const getPostListByTags = (
133
151
  context: ApiContext,
134
152
  tagNames: string[],
135
- options: PostOptions
153
+ options?: PostOptions
136
154
  ): Promise<PostType[]> => {
137
155
  // const action: string = 'getListByTags';
138
156
  const {database, fields} = context;
139
- const {latitude, longitude, from = 0, to = 30} = options;
157
+ const {latitude, longitude, limit, type} = parsePostOptions(options);
140
158
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
141
159
  const sortBy: string[] = [];
142
160
 
@@ -157,12 +175,11 @@ export const getPostListByTags = (
157
175
 
158
176
  return Promise.all(
159
177
  tagNames.map((tagName: string) => {
160
- const limit: ArangoDBLimit = getLimit(from, to);
161
178
  const aqlQry: string = `FOR targetTag IN tags
162
179
  FILTER targetTag.name == "${tagName}"
163
180
  FOR p, e IN OUTBOUND targetTag._id isTagged
164
181
  ${selectQueries.join('\n')}
165
- FILTER p.privacy == "public" && e.type == 'posts'
182
+ FILTER p.type = "${type}" && p.privacy == "public" && e.type == 'posts'
166
183
  ${limit.aql}
167
184
  SORT ${sortBy.join(', ')}
168
185
  RETURN DISTINCT MERGE(p, {${selectObjects.join(', ')}})`;
@@ -178,15 +195,14 @@ export const getPostListByTags = (
178
195
  });
179
196
  };
180
197
 
181
- export const getPostListByUser = (context: ApiContext, userId: string, options): Promise<PostType[]> => {
198
+ export const getPostListByUser = (context: ApiContext, userId: string, options?: PostOptions): Promise<PostType[]> => {
182
199
  // const action: string = 'getListByUser';
183
200
  const {database, fields} = context;
184
- const {from = 0, to = 30} = options;
201
+ const {limit, type} = parsePostOptions(options);
185
202
  const formatUserId: string = parseId(userId);
186
- const limit: ArangoDBLimit = getLimit(from, to);
187
203
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
188
204
  const aqlQry: string = `FOR p IN posts
189
- FILTER p.userId == "${formatUserId}" && p.privacy == "public" && p.parent == null
205
+ FILTER p.userId == "${formatUserId}" && p.type == "${type}" && p.privacy == "public" && p.parent == null
190
206
  ${selectQueries.join('\n')}
191
207
  ${limit.aql}
192
208
  SORT p.added
@@ -203,14 +219,13 @@ export const getPostListByArea = (
203
219
  context: ApiContext,
204
220
  latitude: number,
205
221
  longitude: number,
206
- from: number,
207
- to: number
222
+ options?: PostOptions
208
223
  ): Promise<PostType[]> => {
209
224
  // const action: string = 'getListByUser';
210
225
  const {database, fields} = context;
226
+ const {limit, type} = parsePostOptions(options);
211
227
  const formatLatitude: number = parseNum(latitude);
212
228
  const formatLongitude: number = parseNum(longitude);
213
- const limit: ArangoDBLimit = getLimit(from, to);
214
229
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
215
230
  selectQueries.push(`LET distance = DISTANCE(
216
231
  ${formatLatitude},
@@ -222,7 +237,7 @@ export const getPostListByArea = (
222
237
 
223
238
  const aqlQry: string = `FOR p IN posts
224
239
  ${selectQueries.join('\n')}
225
- FILTER p.privacy == "public" && p.parentId == null
240
+ FILTER p.type == "${type}" && p.privacy == "public" && p.parentId == null
226
241
  ${limit.aql}
227
242
  SORT distance, p.added
228
243
  RETURN DISTINCT MERGE(p, {${selectObjects.join(', ')}})`;
@@ -241,9 +256,9 @@ export const getPost = (context: ApiContext, itemId: string): Promise<PostType>
241
256
  const db = useDb(database);
242
257
  const {objects: selectObjects, queries: selectQueries} = getPostOptional(fields);
243
258
  const aqlQry: AqlQuery = aql`FOR p IN posts
244
- FILTER p._key == ${formatItemId}
245
- LIMIT 1
246
- RETURN p`;
259
+ FILTER p._key == ${formatItemId}
260
+ LIMIT 1
261
+ RETURN p`;
247
262
 
248
263
  return db.query(aqlQry)
249
264
  .then((cursor: ArrayCursor) => cursor.next())
@@ -291,17 +306,18 @@ export const getPost = (context: ApiContext, itemId: string): Promise<PostType>
291
306
  });
292
307
  };
293
308
 
294
- export const getPostComments = (context: ApiContext, itemId: string, from: number, to: number): Promise<PostType[]> => {
309
+ export const getPostComments = (context: ApiContext, itemId: string, options?: PostOptions): Promise<PostType[]> => {
295
310
  // const action: string = 'getComments';
296
311
  const {database, userId: sessionId} = context;
312
+ const {limit, type} = parsePostOptions(options);
297
313
  const formatItemId: string = parseId(itemId);
298
314
 
299
315
  // Get the parent post to get restrictions
300
316
  const db = useDb(database);
301
317
  const aqlQry: AqlQuery = aql`FOR p IN posts
302
- FILTER p._key == ${formatItemId}
303
- LIMIT 1
304
- RETURN p`;
318
+ FILTER p.type == ${type} && p._key == ${formatItemId}
319
+ LIMIT 1
320
+ RETURN p`;
305
321
 
306
322
  return db.query(aqlQry)
307
323
  .then((cursor: ArrayCursor) => cursor.next())
@@ -314,36 +330,35 @@ export const getPostComments = (context: ApiContext, itemId: string, from: numbe
314
330
 
315
331
  // Query based on privacy level
316
332
  let privacyAqlQry: string;
317
- const limit = getLimit(from, to);
318
333
 
319
334
  if(groupId && privacy === 'group') {
320
335
  privacyAqlQry = `FOR p IN posts
321
- FOR user IN users
322
- FILTER p.parent == "${_key}" && user._key == p.userId
323
- LET reactions = (
324
- FOR post, r IN INBOUND p._id reactions
325
- COLLECT reactionName = r.value INTO reactionItems
326
- RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
327
- )
328
- FOR group IN groups
329
- FILTER group._key == p.groupId
330
- FOR u, e IN OUTBOUND group._id isGrouped
331
- FILTER u._key == "${sessionId}"
332
- SORT p.added
333
- ${limit.aql}
334
- RETURN MERGE(p, {user: user, reactions: reactions})`;
336
+ FOR user IN users
337
+ FILTER p.parent == "${_key}" && user._key == p.userId
338
+ LET reactions = (
339
+ FOR post, r IN INBOUND p._id reactions
340
+ COLLECT reactionName = r.value INTO reactionItems
341
+ RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
342
+ )
343
+ FOR group IN groups
344
+ FILTER group._key == p.groupId
345
+ FOR u, e IN OUTBOUND group._id isGrouped
346
+ FILTER u._key == "${sessionId}"
347
+ SORT p.added
348
+ ${limit.aql}
349
+ RETURN MERGE(p, {user: user, reactions: reactions})`;
335
350
  } else if(privacy === 'public') {
336
351
  privacyAqlQry = `FOR p IN posts
337
- FOR user IN users
338
- FILTER p.parent == "${_key}" && user._key == p.userId
339
- LET reactions = (
340
- FOR post, r IN INBOUND p._id reactions
341
- COLLECT reactionName = r.value INTO reactionItems
342
- RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
343
- )
344
- SORT p.added
345
- ${limit.aql}
346
- RETURN MERGE(p, {user: user, reactions: reactions})`;
352
+ FOR user IN users
353
+ FILTER p.parent == "${_key}" && user._key == p.userId
354
+ LET reactions = (
355
+ FOR post, r IN INBOUND p._id reactions
356
+ COLLECT reactionName = r.value INTO reactionItems
357
+ RETURN {name: reactionName, count: LENGTH(reactionItems[*].r.value)}
358
+ )
359
+ SORT p.added
360
+ ${limit.aql}
361
+ RETURN MERGE(p, {user: user, reactions: reactions})`;
347
362
  }
348
363
 
349
364
  if(privacyAqlQry) {
@@ -373,7 +388,8 @@ export const addPost = (context: ApiContext, item: PostType): Promise<PostType>
373
388
  longitude,
374
389
  name = '',
375
390
  parentId = null,
376
- privacy = 'public'
391
+ privacy = 'public',
392
+ type = 'default'
377
393
  }: PostType = item;
378
394
 
379
395
  const now: number = Date.now();
@@ -390,6 +406,7 @@ export const addPost = (context: ApiContext, item: PostType): Promise<PostType>
390
406
  name: parseString(name, 160),
391
407
  parentId: parentId ? parseId(parentId) : undefined,
392
408
  privacy: privacy ? parseVarChar(privacy, 16) : undefined,
409
+ type: parseChar(type, 32),
393
410
  userId: sessionId
394
411
  };
395
412
 
@@ -423,7 +440,8 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
423
440
  name,
424
441
  parentId,
425
442
  postId,
426
- privacy
443
+ privacy,
444
+ type
427
445
  }: PostType = item;
428
446
 
429
447
  const update: PostType = {
@@ -432,6 +450,7 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
432
450
  name: name ? parseString(name, 160) : undefined,
433
451
  parentId: parentId ? parseString(parentId, 160) : undefined,
434
452
  privacy: privacy ? parseVarChar(privacy, 16) : undefined,
453
+ type: type !== undefined ? parseChar(type, 16) : undefined
435
454
  };
436
455
 
437
456
  let formatId: string = parseId(postId);
@@ -447,9 +466,9 @@ export const updatePost = (context: ApiContext, item: PostType): Promise<PostTyp
447
466
  };
448
467
  const db: Database = useDb(database);
449
468
  const aqlQry: AqlQuery = aql`UPSERT {_key: ${formatId}, userId: ${sessionId}}
450
- INSERT ${insert}
451
- UPDATE ${update}
452
- IN posts RETURN NEW`;
469
+ INSERT ${insert}
470
+ UPDATE ${update}
471
+ IN posts RETURN NEW`;
453
472
 
454
473
  return db.query(aqlQry)
455
474
  .then((cursor: ArrayCursor) => cursor.next())
@@ -528,7 +547,7 @@ export const deletePost = (context: ApiContext, itemId: string): Promise<PostTyp
528
547
  export const cleanPosts = (database: string): Promise<number> => {
529
548
  // Remove all messages that are over 60 days and not saved
530
549
  const aqlQry: AqlQuery = aql`FOR p IN posts
531
- FILTER p.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && p.type == 1
550
+ FILTER p.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && p.type == "default"
532
551
  REMOVE p IN posts
533
552
  RETURN OLD`;
534
553
 
@@ -30,4 +30,5 @@ export interface PostOptions {
30
30
  readonly longitude?: number;
31
31
  readonly from?: number;
32
32
  readonly to?: number;
33
+ readonly type?: string;
33
34
  }
package/lib/config.d.ts DELETED
@@ -1,21 +0,0 @@
1
- export interface AppConfig {
2
- readonly app?: object;
3
- readonly arangodb?: object;
4
- readonly aws?: object;
5
- readonly giphy?: object;
6
- readonly google?: object;
7
- readonly image?: object;
8
- readonly redis?: object;
9
- readonly stripe?: object;
10
- readonly twilio?: object;
11
- }
12
- export interface EnvConfig {
13
- readonly default: AppConfig;
14
- readonly development: AppConfig;
15
- readonly production: AppConfig;
16
- readonly test: AppConfig;
17
- }
18
- export declare class Config {
19
- static values: EnvConfig;
20
- static get(path: string | string[]): any;
21
- }
package/lib/config.js DELETED
@@ -1,127 +0,0 @@
1
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
-
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4
-
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6
-
7
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
-
9
- /**
10
- * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
11
- * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
12
- */
13
- import _get from 'lodash/get';
14
- import merge from 'lodash/merge';
15
-
16
- var appPackage = require('../package.json');
17
-
18
- var _process$env = process.env,
19
- arangodbDatabase = _process$env.arangodbDatabase,
20
- arangodbPassword = _process$env.arangodbPassword,
21
- _process$env$arangodb = _process$env.arangodbPort,
22
- arangodbPort = _process$env$arangodb === void 0 ? '8529' : _process$env$arangodb,
23
- arangodbUrl = _process$env.arangodbUrl,
24
- arangodbUsername = _process$env.arangodbUsername;
25
- export var Config =
26
- /*#__PURE__*/
27
- function () {
28
- function Config() {
29
- _classCallCheck(this, Config);
30
- }
31
-
32
- _createClass(Config, null, [{
33
- key: "get",
34
- value: function get(path) {
35
- var environment = process.env.stage || 'development';
36
- var configValues = merge(this.values.default, this.values[environment], {
37
- environment: environment
38
- });
39
- return _get(configValues, path);
40
- }
41
- }]);
42
-
43
- return Config;
44
- }();
45
-
46
- _defineProperty(Config, "values", {
47
- default: {
48
- app: {
49
- name: 'reaktor',
50
- url: 'reaktor.io',
51
- version: appPackage.version
52
- },
53
- arangodb: {
54
- apiUrl: "http://".concat(arangodbUsername, ":").concat(arangodbPassword, "@").concat(arangodbUrl, ":").concat(arangodbPort),
55
- database: arangodbDatabase,
56
- dump: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangodump',
57
- password: arangodbPassword,
58
- port: arangodbPort,
59
- restore: '/Applications/ArangoDB-CLI.app/Contents/MacOS/arangorestore',
60
- url: arangodbUrl,
61
- username: arangodbUsername
62
- },
63
- aws: {
64
- Bucket: 'dev.reaktor.io',
65
- accessKeyId: 'AKIAJIYDT3EA2ZFMTJNA',
66
- maxRetries: 3,
67
- region: 'us-east-1',
68
- secretAccessKey: 'bUssQRtJTZC7geF9RDH5KCn8CalVnf2VT34yqS+9',
69
- signatureVersion: 'v4'
70
- },
71
- giphy: {
72
- key: 'dc6zaTOxFJmzC'
73
- },
74
- google: {
75
- analytics: {
76
- accountId: '78158717',
77
- trackingId: 'UA-78158717-1'
78
- },
79
- geocode: {
80
- key: 'AIzaSyBwjmpBjWhiJoBCZiYzRurM9m4WnCxslv0',
81
- url: 'https://maps.googleapis.com/maps/api/geocode/json'
82
- },
83
- key: 'AIzaSyC3_f2Us3y0qjbyMJ-4t5ObtCzfq_FHIgQ'
84
- },
85
- image: {
86
- imgQuality: 90,
87
- imgSize: 1500,
88
- thmQuality: 80,
89
- thmSize: 150
90
- },
91
- redis: {
92
- host: '127.0.0.1',
93
- port: 6379
94
- },
95
- stripe: {
96
- token: 'sk_test_LS956be57YUXTB5a4sLGb5BQ'
97
- },
98
- twilio: {
99
- number: '+15005550006',
100
- sid: 'AC6bd7f513cbed2e5134c650be06cc732e',
101
- token: '520ae739e761bab759b147f1ad28278f'
102
- }
103
- },
104
- development: {},
105
- production: {
106
- arangodb: {
107
- dump: '/usr/bin/arangodump',
108
- restore: '/usr/bin/arangorestore'
109
- },
110
- aws: {
111
- Bucket: 'box.reaktor.io'
112
- },
113
- redis: {
114
- host: 'reaktor-redis.ehcvnt.0001.use1.cache.amazonaws.com'
115
- },
116
- stripe: {
117
- token: 'sk_live_bElZl8RLhMCJy33KG4lyLD4o'
118
- },
119
- twilio: {
120
- number: '+18554165227',
121
- sid: 'AC90b0528a911e652d643329a4d7b4d2c7',
122
- token: 'a7941d173bd4846d0966a186e9865b72'
123
- }
124
- },
125
- test: {}
126
- });
127
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOlsiZ2V0IiwibWVyZ2UiLCJhcHBQYWNrYWdlIiwicmVxdWlyZSIsInByb2Nlc3MiLCJlbnYiLCJhcmFuZ29kYkRhdGFiYXNlIiwiYXJhbmdvZGJQYXNzd29yZCIsImFyYW5nb2RiUG9ydCIsImFyYW5nb2RiVXJsIiwiYXJhbmdvZGJVc2VybmFtZSIsIkNvbmZpZyIsInBhdGgiLCJlbnZpcm9ubWVudCIsInN0YWdlIiwiY29uZmlnVmFsdWVzIiwidmFsdWVzIiwiZGVmYXVsdCIsImFwcCIsIm5hbWUiLCJ1cmwiLCJ2ZXJzaW9uIiwiYXJhbmdvZGIiLCJhcGlVcmwiLCJkYXRhYmFzZSIsImR1bXAiLCJwYXNzd29yZCIsInBvcnQiLCJyZXN0b3JlIiwidXNlcm5hbWUiLCJhd3MiLCJCdWNrZXQiLCJhY2Nlc3NLZXlJZCIsIm1heFJldHJpZXMiLCJyZWdpb24iLCJzZWNyZXRBY2Nlc3NLZXkiLCJzaWduYXR1cmVWZXJzaW9uIiwiZ2lwaHkiLCJrZXkiLCJnb29nbGUiLCJhbmFseXRpY3MiLCJhY2NvdW50SWQiLCJ0cmFja2luZ0lkIiwiZ2VvY29kZSIsImltYWdlIiwiaW1nUXVhbGl0eSIsImltZ1NpemUiLCJ0aG1RdWFsaXR5IiwidGhtU2l6ZSIsInJlZGlzIiwiaG9zdCIsInN0cmlwZSIsInRva2VuIiwidHdpbGlvIiwibnVtYmVyIiwic2lkIiwiZGV2ZWxvcG1lbnQiLCJwcm9kdWN0aW9uIiwidGVzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUlBLE9BQU9BLElBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGNBQWxCOztBQXFCQSxJQUFNQyxVQUFlLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUEvQjs7bUJBRW1HQyxPQUFPLENBQUNDLEc7SUFBcEdDLGdCLGdCQUFBQSxnQjtJQUFrQkMsZ0IsZ0JBQUFBLGdCO3lDQUFrQkMsWTtJQUFBQSxZLHNDQUFlLE07SUFBUUMsVyxnQkFBQUEsVztJQUFhQyxnQixnQkFBQUEsZ0I7QUFFL0UsV0FBYUMsTUFBYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLHdCQXFGYUMsSUFyRmIsRUFxRjJDO0FBQ3ZDLFVBQU1DLFdBQW1CLEdBQUdULE9BQU8sQ0FBQ0MsR0FBUixDQUFZUyxLQUFaLElBQXFCLGFBQWpEO0FBQ0EsVUFBTUMsWUFBb0IsR0FBR2QsS0FBSyxDQUFDLEtBQUtlLE1BQUwsQ0FBWUMsT0FBYixFQUFzQixLQUFLRCxNQUFMLENBQVlILFdBQVosQ0FBdEIsRUFBZ0Q7QUFBQ0EsUUFBQUEsV0FBVyxFQUFYQTtBQUFELE9BQWhELENBQWxDO0FBQ0EsYUFBT2IsSUFBRyxDQUFDZSxZQUFELEVBQWVILElBQWYsQ0FBVjtBQUNEO0FBekZIOztBQUFBO0FBQUE7O2dCQUFhRCxNLFlBQ2dCO0FBQ3pCTSxFQUFBQSxPQUFPLEVBQUU7QUFDUEMsSUFBQUEsR0FBRyxFQUFFO0FBQ0hDLE1BQUFBLElBQUksRUFBRSxTQURIO0FBRUhDLE1BQUFBLEdBQUcsRUFBRSxZQUZGO0FBR0hDLE1BQUFBLE9BQU8sRUFBRW5CLFVBQVUsQ0FBQ21CO0FBSGpCLEtBREU7QUFNUEMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLE1BQU0sbUJBQVliLGdCQUFaLGNBQWdDSCxnQkFBaEMsY0FBb0RFLFdBQXBELGNBQW1FRCxZQUFuRSxDQURFO0FBRVJnQixNQUFBQSxRQUFRLEVBQUVsQixnQkFGRjtBQUdSbUIsTUFBQUEsSUFBSSxFQUFFLDBEQUhFO0FBSVJDLE1BQUFBLFFBQVEsRUFBRW5CLGdCQUpGO0FBS1JvQixNQUFBQSxJQUFJLEVBQUVuQixZQUxFO0FBTVJvQixNQUFBQSxPQUFPLEVBQUUsNkRBTkQ7QUFPUlIsTUFBQUEsR0FBRyxFQUFFWCxXQVBHO0FBUVJvQixNQUFBQSxRQUFRLEVBQUVuQjtBQVJGLEtBTkg7QUFnQlBvQixJQUFBQSxHQUFHLEVBQUU7QUFDSEMsTUFBQUEsTUFBTSxFQUFFLGdCQURMO0FBRUhDLE1BQUFBLFdBQVcsRUFBRSxzQkFGVjtBQUdIQyxNQUFBQSxVQUFVLEVBQUUsQ0FIVDtBQUlIQyxNQUFBQSxNQUFNLEVBQUUsV0FKTDtBQUtIQyxNQUFBQSxlQUFlLEVBQUUsMENBTGQ7QUFNSEMsTUFBQUEsZ0JBQWdCLEVBQUU7QUFOZixLQWhCRTtBQXdCUEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLEdBQUcsRUFBRTtBQURBLEtBeEJBO0FBMkJQQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsU0FBUyxFQUFFO0FBQ1RDLFFBQUFBLFNBQVMsRUFBRSxVQURGO0FBRVRDLFFBQUFBLFVBQVUsRUFBRTtBQUZILE9BREw7QUFLTkMsTUFBQUEsT0FBTyxFQUFFO0FBQ1BMLFFBQUFBLEdBQUcsRUFBRSx5Q0FERTtBQUVQbEIsUUFBQUEsR0FBRyxFQUFFO0FBRkUsT0FMSDtBQVNOa0IsTUFBQUEsR0FBRyxFQUFFO0FBVEMsS0EzQkQ7QUFzQ1BNLElBQUFBLEtBQUssRUFBRTtBQUNMQyxNQUFBQSxVQUFVLEVBQUUsRUFEUDtBQUVMQyxNQUFBQSxPQUFPLEVBQUUsSUFGSjtBQUdMQyxNQUFBQSxVQUFVLEVBQUUsRUFIUDtBQUlMQyxNQUFBQSxPQUFPLEVBQUU7QUFKSixLQXRDQTtBQTRDUEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRSxXQUREO0FBRUx2QixNQUFBQSxJQUFJLEVBQUU7QUFGRCxLQTVDQTtBQWdEUHdCLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxLQUFLLEVBQUU7QUFERCxLQWhERDtBQW1EUEMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLE1BQU0sRUFBRSxjQURGO0FBRU5DLE1BQUFBLEdBQUcsRUFBRSxvQ0FGQztBQUdOSCxNQUFBQSxLQUFLLEVBQUU7QUFIRDtBQW5ERCxHQURnQjtBQTBEekJJLEVBQUFBLFdBQVcsRUFBRSxFQTFEWTtBQTREekJDLEVBQUFBLFVBQVUsRUFBRTtBQUNWbkMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JHLE1BQUFBLElBQUksRUFBRSxxQkFERTtBQUVSRyxNQUFBQSxPQUFPLEVBQUU7QUFGRCxLQURBO0FBS1ZFLElBQUFBLEdBQUcsRUFBRTtBQUNIQyxNQUFBQSxNQUFNLEVBQUU7QUFETCxLQUxLO0FBUVZrQixJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFO0FBREQsS0FSRztBQVdWQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsS0FBSyxFQUFFO0FBREQsS0FYRTtBQWNWQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsTUFBTSxFQUFFLGNBREY7QUFFTkMsTUFBQUEsR0FBRyxFQUFFLG9DQUZDO0FBR05ILE1BQUFBLEtBQUssRUFBRTtBQUhEO0FBZEUsR0E1RGE7QUFnRnpCTSxFQUFBQSxJQUFJLEVBQUU7QUFoRm1CLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XG4gIHJlYWRvbmx5IGFwcD86IG9iamVjdDtcbiAgcmVhZG9ubHkgYXJhbmdvZGI/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGF3cz86IG9iamVjdDtcbiAgcmVhZG9ubHkgZ2lwaHk/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IGdvb2dsZT86IG9iamVjdDtcbiAgcmVhZG9ubHkgaW1hZ2U/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHJlZGlzPzogb2JqZWN0O1xuICByZWFkb25seSBzdHJpcGU/OiBvYmplY3Q7XG4gIHJlYWRvbmx5IHR3aWxpbz86IG9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZDb25maWcge1xuICByZWFkb25seSBkZWZhdWx0OiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IGRldmVsb3BtZW50OiBBcHBDb25maWc7XG4gIHJlYWRvbmx5IHByb2R1Y3Rpb246IEFwcENvbmZpZztcbiAgcmVhZG9ubHkgdGVzdDogQXBwQ29uZmlnO1xufVxuXG5jb25zdCBhcHBQYWNrYWdlOiBhbnkgPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3Qge2FyYW5nb2RiRGF0YWJhc2UsIGFyYW5nb2RiUGFzc3dvcmQsIGFyYW5nb2RiUG9ydCA9ICc4NTI5JywgYXJhbmdvZGJVcmwsIGFyYW5nb2RiVXNlcm5hbWV9ID0gcHJvY2Vzcy5lbnY7XG5cbmV4cG9ydCBjbGFzcyBDb25maWcge1xuICBzdGF0aWMgdmFsdWVzOiBFbnZDb25maWcgPSB7XG4gICAgZGVmYXVsdDoge1xuICAgICAgYXBwOiB7XG4gICAgICAgIG5hbWU6ICdyZWFrdG9yJyxcbiAgICAgICAgdXJsOiAncmVha3Rvci5pbycsXG4gICAgICAgIHZlcnNpb246IGFwcFBhY2thZ2UudmVyc2lvblxuICAgICAgfSxcbiAgICAgIGFyYW5nb2RiOiB7XG4gICAgICAgIGFwaVVybDogYGh0dHA6Ly8ke2FyYW5nb2RiVXNlcm5hbWV9OiR7YXJhbmdvZGJQYXNzd29yZH1AJHthcmFuZ29kYlVybH06JHthcmFuZ29kYlBvcnR9YCxcbiAgICAgICAgZGF0YWJhc2U6IGFyYW5nb2RiRGF0YWJhc2UsXG4gICAgICAgIGR1bXA6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvZHVtcCcsXG4gICAgICAgIHBhc3N3b3JkOiBhcmFuZ29kYlBhc3N3b3JkLFxuICAgICAgICBwb3J0OiBhcmFuZ29kYlBvcnQsXG4gICAgICAgIHJlc3RvcmU6ICcvQXBwbGljYXRpb25zL0FyYW5nb0RCLUNMSS5hcHAvQ29udGVudHMvTWFjT1MvYXJhbmdvcmVzdG9yZScsXG4gICAgICAgIHVybDogYXJhbmdvZGJVcmwsXG4gICAgICAgIHVzZXJuYW1lOiBhcmFuZ29kYlVzZXJuYW1lXG4gICAgICB9LFxuICAgICAgYXdzOiB7XG4gICAgICAgIEJ1Y2tldDogJ2Rldi5yZWFrdG9yLmlvJyxcbiAgICAgICAgYWNjZXNzS2V5SWQ6ICdBS0lBSklZRFQzRUEyWkZNVEpOQScsXG4gICAgICAgIG1heFJldHJpZXM6IDMsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2JVc3NRUnRKVFpDN2dlRjlSREg1S0NuOENhbFZuZjJWVDM0eXFTKzknLFxuICAgICAgICBzaWduYXR1cmVWZXJzaW9uOiAndjQnXG4gICAgICB9LFxuICAgICAgZ2lwaHk6IHtcbiAgICAgICAga2V5OiAnZGM2emFUT3hGSm16QydcbiAgICAgIH0sXG4gICAgICBnb29nbGU6IHtcbiAgICAgICAgYW5hbHl0aWNzOiB7XG4gICAgICAgICAgYWNjb3VudElkOiAnNzgxNTg3MTcnLFxuICAgICAgICAgIHRyYWNraW5nSWQ6ICdVQS03ODE1ODcxNy0xJ1xuICAgICAgICB9LFxuICAgICAgICBnZW9jb2RlOiB7XG4gICAgICAgICAga2V5OiAnQUl6YVN5QndqbXBCaldoaUpvQkNaaVl6UnVyTTltNFduQ3hzbHYwJyxcbiAgICAgICAgICB1cmw6ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvZ2VvY29kZS9qc29uJ1xuICAgICAgICB9LFxuICAgICAgICBrZXk6ICdBSXphU3lDM19mMlVzM3kwcWpieU1KLTR0NU9idEN6ZnFfRkhJZ1EnXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1nUXVhbGl0eTogOTAsXG4gICAgICAgIGltZ1NpemU6IDE1MDAsXG4gICAgICAgIHRobVF1YWxpdHk6IDgwLFxuICAgICAgICB0aG1TaXplOiAxNTBcbiAgICAgIH0sXG4gICAgICByZWRpczoge1xuICAgICAgICBob3N0OiAnMTI3LjAuMC4xJyxcbiAgICAgICAgcG9ydDogNjM3OVxuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX3Rlc3RfTFM5NTZiZTU3WVVYVEI1YTRzTEdiNUJRJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTUwMDU1NTAwMDYnLFxuICAgICAgICBzaWQ6ICdBQzZiZDdmNTEzY2JlZDJlNTEzNGM2NTBiZTA2Y2M3MzJlJyxcbiAgICAgICAgdG9rZW46ICc1MjBhZTczOWU3NjFiYWI3NTliMTQ3ZjFhZDI4Mjc4ZidcbiAgICAgIH1cbiAgICB9LFxuICAgIGRldmVsb3BtZW50OiB7XG4gICAgfSxcbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICBhcmFuZ29kYjoge1xuICAgICAgICBkdW1wOiAnL3Vzci9iaW4vYXJhbmdvZHVtcCcsXG4gICAgICAgIHJlc3RvcmU6ICcvdXNyL2Jpbi9hcmFuZ29yZXN0b3JlJyxcbiAgICAgIH0sXG4gICAgICBhd3M6IHtcbiAgICAgICAgQnVja2V0OiAnYm94LnJlYWt0b3IuaW8nXG4gICAgICB9LFxuICAgICAgcmVkaXM6IHtcbiAgICAgICAgaG9zdDogJ3JlYWt0b3ItcmVkaXMuZWhjdm50LjAwMDEudXNlMS5jYWNoZS5hbWF6b25hd3MuY29tJ1xuICAgICAgfSxcbiAgICAgIHN0cmlwZToge1xuICAgICAgICB0b2tlbjogJ3NrX2xpdmVfYkVsWmw4UkxoTUNKeTMzS0c0bHlMRDRvJ1xuICAgICAgfSxcbiAgICAgIHR3aWxpbzoge1xuICAgICAgICBudW1iZXI6ICcrMTg1NTQxNjUyMjcnLFxuICAgICAgICBzaWQ6ICdBQzkwYjA1MjhhOTExZTY1MmQ2NDMzMjlhNGQ3YjRkMmM3JyxcbiAgICAgICAgdG9rZW46ICdhNzk0MWQxNzNiZDQ4NDZkMDk2NmExODZlOTg2NWI3MidcbiAgICAgIH1cbiAgICB9LFxuICAgIHRlc3Q6IHtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldChwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnQ6IHN0cmluZyA9IHByb2Nlc3MuZW52LnN0YWdlIHx8ICdkZXZlbG9wbWVudCc7XG4gICAgY29uc3QgY29uZmlnVmFsdWVzOiBvYmplY3QgPSBtZXJnZSh0aGlzLnZhbHVlcy5kZWZhdWx0LCB0aGlzLnZhbHVlc1tlbnZpcm9ubWVudF0sIHtlbnZpcm9ubWVudH0pO1xuICAgIHJldHVybiBnZXQoY29uZmlnVmFsdWVzLCBwYXRoKTtcbiAgfVxufVxuIl19
@@ -1,6 +0,0 @@
1
- import { ApiContext } from 'types/auth';
2
- import { ConversationType } from '../types';
3
- export declare const getConversationList: (context: ApiContext, from: number, to: number) => Promise<ConversationType[]>;
4
- export declare const getDirectConversation: (context: ApiContext, userId: string) => Promise<ConversationType>;
5
- export declare const getConversation: (context: ApiContext, convoId: string) => Promise<ConversationType>;
6
- export declare const updateConversation: (context: ApiContext, item: any) => Promise<ConversationType>;