@tellescope/sdk 0.0.14 → 0.0.18

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 (48) hide show
  1. package/lib/cjs/enduser.d.ts +34 -5
  2. package/lib/cjs/enduser.d.ts.map +1 -1
  3. package/lib/cjs/enduser.js +5 -4
  4. package/lib/cjs/enduser.js.map +1 -1
  5. package/lib/cjs/sdk.d.ts +51 -16
  6. package/lib/cjs/sdk.d.ts.map +1 -1
  7. package/lib/cjs/sdk.js +10 -10
  8. package/lib/cjs/sdk.js.map +1 -1
  9. package/lib/cjs/session.d.ts +5 -21
  10. package/lib/cjs/session.d.ts.map +1 -1
  11. package/lib/cjs/session.js +12 -0
  12. package/lib/cjs/session.js.map +1 -1
  13. package/lib/cjs/tests/public_endpoint_tests.js +4 -4
  14. package/lib/cjs/tests/public_endpoint_tests.js.map +1 -1
  15. package/lib/cjs/tests/socket_tests.d.ts +1 -1
  16. package/lib/cjs/tests/socket_tests.d.ts.map +1 -1
  17. package/lib/cjs/tests/socket_tests.js +125 -8
  18. package/lib/cjs/tests/socket_tests.js.map +1 -1
  19. package/lib/cjs/tests/tests.js +207 -97
  20. package/lib/cjs/tests/tests.js.map +1 -1
  21. package/lib/esm/enduser.d.ts +34 -5
  22. package/lib/esm/enduser.d.ts.map +1 -1
  23. package/lib/esm/enduser.js +5 -4
  24. package/lib/esm/enduser.js.map +1 -1
  25. package/lib/esm/sdk.d.ts +51 -16
  26. package/lib/esm/sdk.d.ts.map +1 -1
  27. package/lib/esm/sdk.js +10 -10
  28. package/lib/esm/sdk.js.map +1 -1
  29. package/lib/esm/session.d.ts +5 -21
  30. package/lib/esm/session.d.ts.map +1 -1
  31. package/lib/esm/session.js +12 -0
  32. package/lib/esm/session.js.map +1 -1
  33. package/lib/esm/tests/public_endpoint_tests.js +4 -4
  34. package/lib/esm/tests/public_endpoint_tests.js.map +1 -1
  35. package/lib/esm/tests/socket_tests.d.ts +1 -1
  36. package/lib/esm/tests/socket_tests.d.ts.map +1 -1
  37. package/lib/esm/tests/socket_tests.js +123 -8
  38. package/lib/esm/tests/socket_tests.js.map +1 -1
  39. package/lib/esm/tests/tests.js +188 -97
  40. package/lib/esm/tests/tests.js.map +1 -1
  41. package/lib/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +10 -10
  43. package/src/enduser.ts +12 -8
  44. package/src/sdk.ts +31 -20
  45. package/src/session.ts +8 -18
  46. package/src/tests/public_endpoint_tests.ts +4 -4
  47. package/src/tests/socket_tests.ts +68 -5
  48. package/src/tests/tests.ts +116 -36
@@ -10,6 +10,25 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
13
32
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
33
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
34
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -48,6 +67,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
67
  };
49
68
  Object.defineProperty(exports, "__esModule", { value: true });
50
69
  require('source-map-support').install();
70
+ var buffer = __importStar(require("buffer")); // only node >=15.7.0
51
71
  var validation_1 = require("@tellescope/validation");
52
72
  var sdk_1 = require("../sdk");
53
73
  var constants_1 = require("@tellescope/constants");
@@ -72,7 +92,7 @@ var userId = '60398b0231a295e64f084fd9';
72
92
  // // delete an individual record
73
93
  // await sdk.api.endusers.deleteOne(enduser.id)
74
94
  // }
75
- var sdk = new sdk_1.Session();
95
+ var sdk = new sdk_1.Session({ host: host });
76
96
  var sdkOther = new sdk_1.Session({ host: host, apiKey: "ba745e25162bb95a795c5fa1af70df188d93c4d3aac9c48b34a5c8c9dd7b80f7" });
77
97
  var enduserSDK = new sdk_1.EnduserSession({ host: host });
78
98
  // const sdkOtherEmail = "sebass@tellescope.com"
@@ -90,15 +110,11 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
90
110
  case 0: return [4 /*yield*/, (0, testing_1.async_test)('test_online', sdk.test_online, { expectedResult: 'API V1 Online' })];
91
111
  case 1:
92
112
  _a.sent();
93
- return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })
94
- // console.log(await sdk.api.api_keys.createOne({}))
95
- ];
113
+ return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
96
114
  case 2:
97
115
  _a.sent();
98
- // console.log(await sdk.api.api_keys.createOne({}))
99
116
  return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated (with API Key)', (new sdk_1.Session({ host: host, apiKey: '3n5q0SCBT_iUvZz-b9BJtX7o7HQUVJ9v132PgHJNJsg.' /* local test key */ })).test_authenticated, { expectedResult: 'Authenticated!' })];
100
117
  case 3:
101
- // console.log(await sdk.api.api_keys.createOne({}))
102
118
  _a.sent();
103
119
  return [4 /*yield*/, sdk.logout()];
104
120
  case 4:
@@ -106,7 +122,7 @@ var setup_tests = function () { return __awaiter(void 0, void 0, void 0, functio
106
122
  return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated - (logout invalidates jwt)', sdk.test_authenticated, { shouldError: true, onError: function (e) { return e === 'Unauthenticated'; } })];
107
123
  case 5:
108
124
  _a.sent();
109
- return [4 /*yield*/, sdk.authenticate(email, password, host)];
125
+ return [4 /*yield*/, sdk.authenticate(email, password)];
110
126
  case 6:
111
127
  _a.sent();
112
128
  return [4 /*yield*/, (0, testing_1.async_test)('test_authenticated (re-authenticated)', sdk.test_authenticated, { expectedResult: 'Authenticated!' })];
@@ -235,11 +251,26 @@ var threadKeyTests = function () { return __awaiter(void 0, void 0, void 0, func
235
251
  }
236
252
  });
237
253
  }); };
254
+ var badInputTests = function () { return __awaiter(void 0, void 0, void 0, function () {
255
+ return __generator(this, function (_a) {
256
+ switch (_a.label) {
257
+ case 0:
258
+ (0, testing_1.log_header)("Bad Input Tests");
259
+ return [4 /*yield*/, (0, testing_1.async_test)("_-prefixed fields are not allowed", function () { return sdk.api.endusers.createOne({ email: 'failure@tellescope.com', fields: { "_notallowed": 'hello' } }); }, { shouldError: true, onError: function (e) { return e.message === "Error parsing field fields: Fields that start with '_' are not allowed"; } })];
260
+ case 1:
261
+ _a.sent();
262
+ return [4 /*yield*/, (0, testing_1.async_test)("_-prefixed fields are not allowed", function () { return sdk.api.notes.createOne({ enduserId: constants_1.PLACEHOLDER_ID, fields: { "_notallowed": 'hello' } }); }, { shouldError: true, onError: function (e) { return e.message === "Error parsing field fields: Fields that start with '_' are not allowed"; } })];
263
+ case 2:
264
+ _a.sent();
265
+ return [2 /*return*/];
266
+ }
267
+ });
268
+ }); };
238
269
  var filterTests = function () { return __awaiter(void 0, void 0, void 0, function () {
239
270
  var enduser, otherEnduser;
240
271
  return __generator(this, function (_a) {
241
272
  switch (_a.label) {
242
- case 0: return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'filtertests@tellescope.com', fname: 'test' })];
273
+ case 0: return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'filtertests@tellescope.com', fname: 'test', fields: { field1: 'value1', field2: 'value2' } })];
243
274
  case 1:
244
275
  enduser = _a.sent();
245
276
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'other@tellescope.com' })];
@@ -248,20 +279,46 @@ var filterTests = function () { return __awaiter(void 0, void 0, void 0, functio
248
279
  return [4 /*yield*/, (0, testing_1.async_test)("find enduser by filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com' } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
249
280
  case 3:
250
281
  _a.sent();
251
- return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'test' } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
282
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by _exists filter", function () { return sdk.api.endusers.getSome({ filter: { fname: { _exists: true } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
252
283
  case 4:
253
284
  _a.sent();
254
- return [4 /*yield*/, (0, testing_1.async_test)("nothing found by invalid compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'nottest' } }); }, { onResult: function (es) { return es.length === 0; } })];
285
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by _exists filter (findOne)",
286
+ // () => sdk.api.endusers.getOne({ fname: { _exists: true } }),
287
+ function () { return sdk.api.endusers.getOne({ fname: { _exists: true } }); }, { onResult: function (e) { return e.id === enduser.id; } })];
255
288
  case 5:
256
289
  _a.sent();
257
- return [4 /*yield*/, (0, testing_1.async_test)("nothing found for invalid filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'doesnotexist@tellescope.com' } }); }, { onResult: function (es) { return es.length === 0; } })];
290
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'test' } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
258
291
  case 6:
259
292
  _a.sent();
260
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
293
+ return [4 /*yield*/, (0, testing_1.async_test)("nothing found by invalid compound filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fname: 'nottest' } }); }, { onResult: function (es) { return es.length === 0; } })];
261
294
  case 7:
262
295
  _a.sent();
263
- return [4 /*yield*/, sdk.api.endusers.deleteOne(otherEnduser.id)];
296
+ return [4 /*yield*/, (0, testing_1.async_test)("nothing found for invalid filter", function () { return sdk.api.endusers.getSome({ filter: { email: 'doesnotexist@tellescope.com' } }); }, { onResult: function (es) { return es.length === 0; } })];
264
297
  case 8:
298
+ _a.sent();
299
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'value1' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
300
+ case 9:
301
+ _a.sent();
302
+ return [4 /*yield*/, (0, testing_1.async_test)("nothing found by invalid nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'not a nested field value' } } }); }, { onResult: function (es) { return es.length === 0; } })];
303
+ case 10:
304
+ _a.sent();
305
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
306
+ case 11:
307
+ _a.sent();
308
+ return [4 /*yield*/, (0, testing_1.async_test)("nothing found by compound invalid nested filter", function () { return sdk.api.endusers.getSome({ filter: { fields: { field1: 'not a nested field value', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 0; } })];
309
+ case 12:
310
+ _a.sent();
311
+ return [4 /*yield*/, (0, testing_1.async_test)("find enduser by compound nested filter with non-nested field as well", function () { return sdk.api.endusers.getSome({ filter: { email: 'filtertests@tellescope.com', fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 1 && es[0].id === enduser.id; } })];
312
+ case 13:
313
+ _a.sent();
314
+ return [4 /*yield*/, (0, testing_1.async_test)("nothing found for compound nested filter with non-nested field as well", function () { return sdk.api.endusers.getSome({ filter: { email: 'doesnotexist@tellescope.com', fields: { field1: 'value1', field2: 'value2' } } }); }, { onResult: function (es) { return es.length === 0; } })];
315
+ case 14:
316
+ _a.sent();
317
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
318
+ case 15:
319
+ _a.sent();
320
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(otherEnduser.id)];
321
+ case 16:
265
322
  _a.sent();
266
323
  return [2 /*return*/];
267
324
  }
@@ -299,24 +356,40 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
299
356
  });
300
357
  }); };
301
358
  var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
302
- var enduser, authToken, isAuthenticated;
303
- return __generator(this, function (_a) {
304
- switch (_a.label) {
359
+ var e, _a, authToken, enduser, isAuthenticated;
360
+ return __generator(this, function (_b) {
361
+ switch (_b.label) {
305
362
  case 0:
306
363
  (0, testing_1.log_header)("Generated Enduser authToken Tests");
307
- return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com' })];
364
+ return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: '1029f9v9sjd0as' })];
308
365
  case 1:
309
- enduser = _a.sent();
310
- return [4 /*yield*/, sdk.api.endusers.generateAuthToken({ id: enduser.id })];
366
+ e = _b.sent();
367
+ return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
311
368
  case 2:
312
- authToken = (_a.sent()).authToken;
313
- return [4 /*yield*/, sdk.api.endusers.isAuthenticated({ id: enduser.id, authToken: authToken })];
369
+ _a = _b.sent(), authToken = _a.authToken, enduser = _a.enduser;
370
+ (0, testing_1.assert)(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
371
+ return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
314
372
  case 3:
315
- isAuthenticated = (_a.sent()).isAuthenticated;
373
+ isAuthenticated = (_b.sent()).isAuthenticated;
316
374
  (0, testing_1.assert)(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
317
- return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
375
+ return [4 /*yield*/, (0, testing_1.async_test)("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
318
376
  case 4:
319
- _a.sent();
377
+ _b.sent();
378
+ return [4 /*yield*/, (0, testing_1.async_test)("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
379
+ case 5:
380
+ _b.sent();
381
+ return [4 /*yield*/, (0, testing_1.async_test)("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
382
+ case 6:
383
+ _b.sent();
384
+ return [4 /*yield*/, (0, testing_1.async_test)("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
385
+ case 7:
386
+ _b.sent();
387
+ return [4 /*yield*/, (0, testing_1.async_test)("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
388
+ case 8:
389
+ _b.sent();
390
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
391
+ case 9:
392
+ _b.sent();
320
393
  return [2 /*return*/];
321
394
  }
322
395
  });
@@ -439,7 +512,7 @@ var run_generated_tests = function (_a) {
439
512
  case 7:
440
513
  _c.sent();
441
514
  _c.label = 8;
442
- case 8: return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName), function () { return queries.getOne(_id, filter); }, { onResult: function (d) {
515
+ case 8: return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName), function () { return queries.getOne(_id); }, { onResult: function (d) {
443
516
  if (!(d === null || d === void 0 ? void 0 : d.id))
444
517
  return false;
445
518
  for (var k in instance) {
@@ -468,7 +541,7 @@ var run_generated_tests = function (_a) {
468
541
  return [4 /*yield*/, (0, testing_1.async_test)("delete-".concat(singularName), function () { return queries.deleteOne(_id); }, passOnVoid)];
469
542
  case 11:
470
543
  _c.sent();
471
- return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id, filter); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
544
+ return [4 /*yield*/, (0, testing_1.async_test)("get-".concat(singularName, " (verify delete)"), function () { return queries.getOne(_id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
472
545
  case 12:
473
546
  _c.sent();
474
547
  return [2 /*return*/];
@@ -663,7 +736,7 @@ var journey_tests = function (queries) {
663
736
  return [4 /*yield*/, (0, testing_1.async_test)("journey-update - insert new state at front", function () { return queries.getOne(journey.id); }, { onResult: function (j) { return (0, utilities_1.objects_equivalent)(j.states, [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }]); } })];
664
737
  case 24:
665
738
  _g.sent();
666
- return [4 /*yield*/, (0, testing_1.async_test)("journey-updateState", function () { return queries.updateState({ id: journey.id, name: 'Added', updates: { name: 'Updated', priority: 'N/A' } }); }, passOnVoid)];
739
+ return [4 /*yield*/, (0, testing_1.async_test)("journey-updateState", function () { return queries.update_state({ id: journey.id, name: 'Added', updates: { name: 'Updated', priority: 'N/A' } }); }, passOnVoid)];
667
740
  case 25:
668
741
  _g.sent();
669
742
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 25)]; // wait for side effects to update endusers
@@ -893,23 +966,30 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
893
966
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello!" })];
894
967
  case 3:
895
968
  chat = _a.sent();
896
- return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })];
969
+ return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, message: "Hello..." })
970
+ // await async_test(
971
+ // `get-chat (without filter)`,
972
+ // () => sdk.api.chats.getOne(chat.id),
973
+ // { shouldError: true, onError: () => true }
974
+ // )
975
+ ];
897
976
  case 4:
898
977
  chat2 = _a.sent();
899
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (without filter)", function () { return sdk.api.chats.getOne(chat.id); }, { shouldError: true, onError: function () { return true; } })];
900
- case 5:
901
- _a.sent();
978
+ // await async_test(
979
+ // `get-chat (without filter)`,
980
+ // () => sdk.api.chats.getOne(chat.id),
981
+ // { shouldError: true, onError: () => true }
982
+ // )
902
983
  return [4 /*yield*/, (0, testing_1.async_test)("get-chats (without filter)", function () { return sdk.api.chats.getSome({}); }, { shouldError: true, onError: function () { return true; } })];
903
- case 6:
904
- _a.sent();
905
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (with filter)", function () { return sdk.api.chats.getOne(chat.id, { roomId: room.id }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.id) === chat.id; } })];
906
- case 7:
984
+ case 5:
985
+ // await async_test(
986
+ // `get-chat (without filter)`,
987
+ // () => sdk.api.chats.getOne(chat.id),
988
+ // { shouldError: true, onError: () => true }
989
+ // )
907
990
  _a.sent();
908
991
  return [4 /*yield*/, (0, testing_1.async_test)("get-chats (with filter)", function () { return sdk.api.chats.getSome({ filter: { roomId: room.id } }); }, { onResult: function (c) { return (c === null || c === void 0 ? void 0 : c.length) === 2; } })];
909
- case 8:
910
- _a.sent();
911
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat not allowed", function () { return sdk2.api.chats.getOne(chat.id, { roomId: room.id }); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })];
912
- case 9:
992
+ case 6:
913
993
  _a.sent();
914
994
  return [4 /*yield*/, (0, testing_1.async_test)("get-chats not allowed", function () { return sdk2.api.chats.getSome({ filter: { roomId: room.id } }); }, { shouldError: true, onError: function (e) { return e.message === 'You do not have permission to access this resource'; } })
915
995
  // currently disabled endpoint altogether
@@ -919,7 +999,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
919
999
  // { shouldError: true, onError: e => e.message === 'You do not have permission to access this resource' }
920
1000
  // )
921
1001
  ];
922
- case 10:
1002
+ case 7:
923
1003
  _a.sent();
924
1004
  // currently disabled endpoint altogether
925
1005
  // await async_test(
@@ -935,7 +1015,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
935
1015
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
936
1016
  // )
937
1017
  ];
938
- case 11:
1018
+ case 8:
939
1019
  // currently disabled endpoint altogether
940
1020
  // await async_test(
941
1021
  // `update-chat not allowed`,
@@ -950,7 +1030,7 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
950
1030
  // { shouldError: true, onError: e => e.message === 'Error parsing field updates: roomId is not valid for updates' }
951
1031
  // )
952
1032
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
953
- case 12:
1033
+ case 9:
954
1034
  // currently disabled endpoint altogether
955
1035
  // await async_test(
956
1036
  // `update-chat can't update roomId`,
@@ -959,51 +1039,51 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
959
1039
  // )
960
1040
  _a.sent();
961
1041
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 25)];
962
- case 13:
1042
+ case 10:
963
1043
  _a.sent();
964
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id, { roomId: room.id }); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
965
- case 14:
1044
+ return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 1)", function () { return sdk.api.chats.getOne(chat.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
1045
+ case 11:
966
1046
  _a.sent();
967
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id, { roomId: room.id }); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
968
- case 15:
1047
+ return [4 /*yield*/, (0, testing_1.async_test)("get-chat (deleted as dependency of room 2)", function () { return sdk.api.chats.getOne(chat2.id); }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a record for the given id'; } })];
1048
+ case 12:
969
1049
  _a.sent();
970
1050
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId, sdk2.userInfo.id] })];
971
- case 16:
1051
+ case 13:
972
1052
  sharedRoom = _a.sent();
973
1053
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello!", })];
974
- case 17:
1054
+ case 14:
975
1055
  sharedChat = _a.sent();
976
1056
  return [4 /*yield*/, sdk2.api.chats.createOne({ roomId: sharedRoom.id, message: "Hello there!", })];
977
- case 18:
1057
+ case 15:
978
1058
  sharedChat2 = _a.sent();
979
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id, { roomId: sharedRoom.id }); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
980
- case 19:
1059
+ return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user1)", function () { return sdk.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
1060
+ case 16:
981
1061
  _a.sent();
982
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id, { roomId: sharedRoom.id }); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
983
- case 20:
1062
+ return [4 /*yield*/, (0, testing_1.async_test)("get-chat (shared, user2)", function () { return sdk2.api.chats.getOne(sharedChat.id); }, { onResult: function (r) { return r.id === sharedChat.id; } })];
1063
+ case 17:
984
1064
  _a.sent();
985
1065
  return [4 /*yield*/, (0, testing_1.async_test)("get-chats (shared, user1)", function () { return sdk.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })];
986
- case 21:
1066
+ case 18:
987
1067
  _a.sent();
988
1068
  return [4 /*yield*/, (0, testing_1.async_test)("get-chats (shared, user2)", function () { return sdk2.api.chats.getSome({ filter: { roomId: sharedRoom.id } }); }, { onResult: function (cs) { return cs.length === 2 && !!cs.find(function (c) { return c.id === sharedChat.id; }) && !!cs.find(function (c) { return c.id === sharedChat2.id; }); } })
989
1069
  // test setNull dependency
990
1070
  ];
991
- case 22:
1071
+ case 19:
992
1072
  _a.sent();
993
1073
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId] })];
994
- case 23:
1074
+ case 20:
995
1075
  roomNull = _a.sent();
996
1076
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello!" })];
997
- case 24:
1077
+ case 21:
998
1078
  chatNull = _a.sent();
999
1079
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomNull.id, message: "Hello...", replyId: chatNull.id })];
1000
- case 25:
1080
+ case 22:
1001
1081
  chat2Null = _a.sent();
1002
1082
  return [4 /*yield*/, sdk.api.chats.deleteOne(chatNull.id)];
1003
- case 26:
1083
+ case 23:
1004
1084
  _a.sent();
1005
- return [4 /*yield*/, (0, testing_1.async_test)("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id, { roomId: roomNull.id }); }, { onResult: function (c) { return c.replyId === null; } })];
1006
- case 27:
1085
+ return [4 /*yield*/, (0, testing_1.async_test)("get-chat (setNull working)", function () { return sdk.api.chats.getOne(chat2Null.id); }, { onResult: function (c) { return c.replyId === null; } })];
1086
+ case 24:
1007
1087
  _a.sent();
1008
1088
  return [2 /*return*/];
1009
1089
  }
@@ -1020,7 +1100,7 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1020
1100
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1021
1101
  case 1:
1022
1102
  enduser = _j.sent();
1023
- return [4 /*yield*/, sdk.api.endusers.setPassword({ id: enduser.id, password: password }).catch(console.error)];
1103
+ return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1024
1104
  case 2:
1025
1105
  _j.sent();
1026
1106
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
@@ -1118,6 +1198,31 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1118
1198
  }
1119
1199
  });
1120
1200
  }); };
1201
+ var files_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1202
+ var buff, _a, presignedUpload, file, downloadURL, downloaded;
1203
+ return __generator(this, function (_b) {
1204
+ switch (_b.label) {
1205
+ case 0:
1206
+ buff = buffer.Buffer.from('test file data');
1207
+ return [4 /*yield*/, sdk.api.files.prepare_file_upload({
1208
+ name: 'Test File', size: buff.byteLength, type: 'text/plain'
1209
+ })];
1210
+ case 1:
1211
+ _a = _b.sent(), presignedUpload = _a.presignedUpload, file = _a.file;
1212
+ return [4 /*yield*/, sdk.UPLOAD(presignedUpload, undefined, buff)];
1213
+ case 2:
1214
+ _b.sent();
1215
+ return [4 /*yield*/, sdk.api.files.file_download_URL({ secureName: file.secureName })];
1216
+ case 3:
1217
+ downloadURL = (_b.sent()).downloadURL;
1218
+ return [4 /*yield*/, sdk.DOWNLOAD(downloadURL)];
1219
+ case 4:
1220
+ downloaded = _b.sent();
1221
+ (0, testing_1.assert)(downloaded === buff.toString(), 'downloaded file does not match uploaded file', 'upload, download comparison');
1222
+ return [2 /*return*/];
1223
+ }
1224
+ });
1225
+ }); };
1121
1226
  var tests = {
1122
1227
  chats: chat_tests,
1123
1228
  endusers: enduser_tests,
@@ -1130,58 +1235,63 @@ var tests = {
1130
1235
  chat_rooms: chat_room_tests,
1131
1236
  users: function () { },
1132
1237
  templates: function () { },
1133
- files: function () { },
1238
+ files: files_tests,
1134
1239
  tickets: function () { },
1135
1240
  meetings: function () { },
1241
+ notes: function () { },
1136
1242
  };
1137
1243
  (function () { return __awaiter(void 0, void 0, void 0, function () {
1138
1244
  var err_1, n, _a, _b, _i, returnValidation, t, _c, _d, _e, err_2;
1139
1245
  var _f, _g;
1140
1246
  return __generator(this, function (_h) {
1141
1247
  switch (_h.label) {
1142
- case 0: return [4 /*yield*/, sdk.authenticate(email, password, host)];
1143
- case 1:
1144
- _h.sent();
1248
+ case 0:
1145
1249
  (0, testing_1.log_header)("API");
1146
- _h.label = 2;
1250
+ _h.label = 1;
1251
+ case 1:
1252
+ _h.trys.push([1, 11, , 12]);
1253
+ return [4 /*yield*/, sdk.authenticate(email, password)];
1147
1254
  case 2:
1148
- _h.trys.push([2, 10, , 11]);
1255
+ _h.sent();
1149
1256
  return [4 /*yield*/, setup_tests()];
1150
1257
  case 3:
1151
1258
  _h.sent();
1152
1259
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
1153
1260
  case 4:
1154
1261
  _h.sent(); // should come right after setup tests
1155
- return [4 /*yield*/, filterTests()];
1262
+ return [4 /*yield*/, badInputTests()];
1156
1263
  case 5:
1157
1264
  _h.sent();
1158
- return [4 /*yield*/, updatesTests()];
1265
+ return [4 /*yield*/, filterTests()];
1159
1266
  case 6:
1160
1267
  _h.sent();
1161
- return [4 /*yield*/, threadKeyTests()];
1268
+ return [4 /*yield*/, updatesTests()];
1162
1269
  case 7:
1163
1270
  _h.sent();
1164
- return [4 /*yield*/, enduserAccessTests()];
1271
+ return [4 /*yield*/, threadKeyTests()];
1165
1272
  case 8:
1166
1273
  _h.sent();
1167
- return [4 /*yield*/, generateEnduserAuthTests()];
1274
+ return [4 /*yield*/, enduserAccessTests()];
1168
1275
  case 9:
1169
1276
  _h.sent();
1170
- return [3 /*break*/, 11];
1277
+ return [4 /*yield*/, generateEnduserAuthTests()];
1171
1278
  case 10:
1279
+ _h.sent();
1280
+ return [3 /*break*/, 12];
1281
+ case 11:
1172
1282
  err_1 = _h.sent();
1173
1283
  console.error("Failed during custom test");
1174
1284
  console.error(err_1);
1175
1285
  process.exit();
1176
- return [3 /*break*/, 11];
1177
- case 11:
1286
+ return [3 /*break*/, 12];
1287
+ case 12:
1178
1288
  _a = [];
1179
1289
  for (_b in schema_1.schema)
1180
1290
  _a.push(_b);
1181
1291
  _i = 0;
1182
- _h.label = 12;
1183
- case 12:
1184
- if (!(_i < _a.length)) return [3 /*break*/, 15];
1292
+ _h.label = 13;
1293
+ case 13:
1294
+ if (!(_i < _a.length)) return [3 /*break*/, 16];
1185
1295
  n = _a[_i];
1186
1296
  returnValidation = (_g = (_f = schema_1.schema[n].customActions) === null || _f === void 0 ? void 0 : _f.create) === null || _g === void 0 ? void 0 : _g.returns;
1187
1297
  return [4 /*yield*/, run_generated_tests({
@@ -1192,37 +1302,37 @@ var tests = {
1192
1302
  create: returnValidation,
1193
1303
  }
1194
1304
  })];
1195
- case 13:
1196
- _h.sent();
1197
- _h.label = 14;
1198
1305
  case 14:
1199
- _i++;
1200
- return [3 /*break*/, 12];
1306
+ _h.sent();
1307
+ _h.label = 15;
1201
1308
  case 15:
1309
+ _i++;
1310
+ return [3 /*break*/, 13];
1311
+ case 16:
1202
1312
  _c = [];
1203
1313
  for (_d in tests)
1204
1314
  _c.push(_d);
1205
1315
  _e = 0;
1206
- _h.label = 16;
1207
- case 16:
1208
- if (!(_e < _c.length)) return [3 /*break*/, 21];
1209
- t = _c[_e];
1210
1316
  _h.label = 17;
1211
1317
  case 17:
1212
- _h.trys.push([17, 19, , 20]);
1213
- return [4 /*yield*/, tests[t]()];
1318
+ if (!(_e < _c.length)) return [3 /*break*/, 22];
1319
+ t = _c[_e];
1320
+ _h.label = 18;
1214
1321
  case 18:
1215
- _h.sent();
1216
- return [3 /*break*/, 20];
1322
+ _h.trys.push([18, 20, , 21]);
1323
+ return [4 /*yield*/, tests[t]()];
1217
1324
  case 19:
1325
+ _h.sent();
1326
+ return [3 /*break*/, 21];
1327
+ case 20:
1218
1328
  err_2 = _h.sent();
1219
1329
  console.error("Error running test:");
1220
1330
  console.error(err_2);
1221
- return [3 /*break*/, 20];
1222
- case 20:
1223
- _e++;
1224
- return [3 /*break*/, 16];
1331
+ return [3 /*break*/, 21];
1225
1332
  case 21:
1333
+ _e++;
1334
+ return [3 /*break*/, 17];
1335
+ case 22:
1226
1336
  process.exit();
1227
1337
  return [2 /*return*/];
1228
1338
  }