@suprsend/node-sdk 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +2 -8
- package/dist/event.js +2 -2
- package/dist/events_bulk.js +2 -2
- package/dist/index.js +21 -0
- package/dist/object_edit.js +6 -12
- package/dist/object_edit_internal_helper.js +40 -301
- package/dist/objects_api.js +193 -242
- package/dist/request_json/workflow.json +7 -29
- package/dist/request_json/workflow_trigger.json +7 -29
- package/dist/subscriber.js +10 -27
- package/dist/subscriber_helper.js +33 -291
- package/dist/subscriber_list.js +2 -2
- package/dist/user_edit.js +412 -0
- package/dist/user_edit_internal_helper.js +363 -0
- package/dist/users_api.js +400 -98
- package/dist/users_edit_bulk.js +312 -0
- package/dist/workflow.js +2 -2
- package/dist/workflow_request.js +2 -2
- package/dist/workflow_trigger_bulk.js +2 -2
- package/dist/workflows_bulk.js +2 -2
- package/package.json +1 -1
- package/src/constants.js +0 -4
- package/src/event.js +4 -5
- package/src/events_bulk.js +3 -5
- package/src/index.js +6 -0
- package/src/object_edit.js +6 -6
- package/src/object_edit_internal_helper.js +37 -295
- package/src/objects_api.js +97 -93
- package/src/request_json/workflow.json +7 -29
- package/src/request_json/workflow_trigger.json +7 -29
- package/src/subscriber.js +8 -20
- package/src/subscriber_helper.js +34 -284
- package/src/subscriber_list.js +4 -4
- package/src/user_edit.js +360 -0
- package/src/user_edit_internal_helper.js +297 -0
- package/src/users_api.js +207 -27
- package/src/users_edit_bulk.js +211 -0
- package/src/workflow.js +4 -5
- package/src/workflow_request.js +4 -4
- package/src/workflow_trigger_bulk.js +2 -4
- package/src/workflows_bulk.js +3 -5
- package/types/index.d.ts +113 -8
- package/dist/language_codes.js +0 -197
- package/src/language_codes.js +0 -188
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { is_object, has_special_char, is_empty, is_string } from "./utils";
|
|
2
|
-
import ALL_LANG_CODES from "./language_codes";
|
|
3
2
|
|
|
4
3
|
// ---------- Identity keys
|
|
5
4
|
const IDENT_KEY_EMAIL = "$email";
|
|
@@ -26,48 +25,6 @@ const KEY_ID_PROVIDER = "$id_provider";
|
|
|
26
25
|
const KEY_PREFERRED_LANGUAGE = "$preferred_language";
|
|
27
26
|
const KEY_TIMEZONE = "$timezone";
|
|
28
27
|
|
|
29
|
-
const OTHER_RESERVED_KEYS = [
|
|
30
|
-
"$messenger",
|
|
31
|
-
"$inbox",
|
|
32
|
-
KEY_ID_PROVIDER,
|
|
33
|
-
"$device_id",
|
|
34
|
-
"$insert_id",
|
|
35
|
-
"$time",
|
|
36
|
-
"$set",
|
|
37
|
-
"$set_once",
|
|
38
|
-
"$add",
|
|
39
|
-
"$append",
|
|
40
|
-
"$remove",
|
|
41
|
-
"$unset",
|
|
42
|
-
"$identify",
|
|
43
|
-
"$anon_id",
|
|
44
|
-
"$identified_id",
|
|
45
|
-
KEY_PREFERRED_LANGUAGE,
|
|
46
|
-
KEY_TIMEZONE,
|
|
47
|
-
"$notification_delivered",
|
|
48
|
-
"$notification_dismiss",
|
|
49
|
-
"$notification_clicked",
|
|
50
|
-
];
|
|
51
|
-
|
|
52
|
-
const SUPER_PROPERTY_KEYS = [
|
|
53
|
-
"$app_version_string",
|
|
54
|
-
"$app_build_number",
|
|
55
|
-
"$brand",
|
|
56
|
-
"$carrier",
|
|
57
|
-
"$manufacturer",
|
|
58
|
-
"$model",
|
|
59
|
-
"$os",
|
|
60
|
-
"$ss_sdk_version",
|
|
61
|
-
"$insert_id",
|
|
62
|
-
"$time",
|
|
63
|
-
];
|
|
64
|
-
|
|
65
|
-
const ALL_RESERVED_KEYS = [
|
|
66
|
-
...SUPER_PROPERTY_KEYS,
|
|
67
|
-
...OTHER_RESERVED_KEYS,
|
|
68
|
-
...IDENT_KEYS_ALL,
|
|
69
|
-
];
|
|
70
|
-
|
|
71
28
|
export default class _ObjectEditInternalHelper {
|
|
72
29
|
constructor() {
|
|
73
30
|
this.__dict_set = {};
|
|
@@ -146,18 +103,6 @@ export default class _ObjectEditInternalHelper {
|
|
|
146
103
|
return [key, true];
|
|
147
104
|
}
|
|
148
105
|
|
|
149
|
-
__validate_key_prefix(key, caller) {
|
|
150
|
-
if (!ALL_RESERVED_KEYS.includes(key)) {
|
|
151
|
-
if (has_special_char(key)) {
|
|
152
|
-
this.__info.push(
|
|
153
|
-
`[${caller}] skipping key: ${key}. key starting with [$,ss_] are reserved`
|
|
154
|
-
);
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
106
|
__is_identity_key(key) {
|
|
162
107
|
return IDENT_KEYS_ALL.includes(key);
|
|
163
108
|
}
|
|
@@ -170,10 +115,7 @@ export default class _ObjectEditInternalHelper {
|
|
|
170
115
|
if (this.__is_identity_key(validated_key)) {
|
|
171
116
|
this.__add_identity(validated_key, value, args, caller);
|
|
172
117
|
} else {
|
|
173
|
-
|
|
174
|
-
if (is_k_valid) {
|
|
175
|
-
this.__dict_append[validated_key] = value;
|
|
176
|
-
}
|
|
118
|
+
this.__dict_append[validated_key] = value;
|
|
177
119
|
}
|
|
178
120
|
}
|
|
179
121
|
|
|
@@ -182,10 +124,7 @@ export default class _ObjectEditInternalHelper {
|
|
|
182
124
|
if (!is_k_valid) {
|
|
183
125
|
return;
|
|
184
126
|
} else {
|
|
185
|
-
|
|
186
|
-
if (is_k_valid) {
|
|
187
|
-
this.__dict_set[validated_key] = value;
|
|
188
|
-
}
|
|
127
|
+
this.__dict_set[validated_key] = value;
|
|
189
128
|
}
|
|
190
129
|
}
|
|
191
130
|
|
|
@@ -194,10 +133,7 @@ export default class _ObjectEditInternalHelper {
|
|
|
194
133
|
if (!is_k_valid) {
|
|
195
134
|
return;
|
|
196
135
|
} else {
|
|
197
|
-
|
|
198
|
-
if (is_k_valid) {
|
|
199
|
-
this.__dict_set_once[validated_key] = value;
|
|
200
|
-
}
|
|
136
|
+
this.__dict_set_once[validated_key] = value;
|
|
201
137
|
}
|
|
202
138
|
}
|
|
203
139
|
|
|
@@ -206,10 +142,7 @@ export default class _ObjectEditInternalHelper {
|
|
|
206
142
|
if (!is_k_valid) {
|
|
207
143
|
return;
|
|
208
144
|
} else {
|
|
209
|
-
|
|
210
|
-
if (is_k_valid) {
|
|
211
|
-
this.__dict_increment[validated_key] = value;
|
|
212
|
-
}
|
|
145
|
+
this.__dict_increment[validated_key] = value;
|
|
213
146
|
}
|
|
214
147
|
}
|
|
215
148
|
|
|
@@ -221,10 +154,7 @@ export default class _ObjectEditInternalHelper {
|
|
|
221
154
|
if (this.__is_identity_key(validated_key)) {
|
|
222
155
|
this.__remove_identity(validated_key, value, args, caller);
|
|
223
156
|
} else {
|
|
224
|
-
|
|
225
|
-
if (is_k_valid) {
|
|
226
|
-
this.__dict_remove[validated_key] = value;
|
|
227
|
-
}
|
|
157
|
+
this.__dict_remove[validated_key] = value;
|
|
228
158
|
}
|
|
229
159
|
}
|
|
230
160
|
|
|
@@ -237,10 +167,6 @@ export default class _ObjectEditInternalHelper {
|
|
|
237
167
|
}
|
|
238
168
|
|
|
239
169
|
_set_preferred_language(lang_code, caller) {
|
|
240
|
-
if (!ALL_LANG_CODES.includes(lang_code)) {
|
|
241
|
-
this.__info.push(`[${caller}] invalid value ${lang_code}`);
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
170
|
this.__dict_set[KEY_PREFERRED_LANGUAGE] = lang_code;
|
|
245
171
|
}
|
|
246
172
|
|
|
@@ -327,264 +253,80 @@ export default class _ObjectEditInternalHelper {
|
|
|
327
253
|
}
|
|
328
254
|
|
|
329
255
|
// email methods
|
|
330
|
-
__validate_email(value, caller) {
|
|
331
|
-
const [email, is_valid] = this.__check_ident_val_string(value, caller);
|
|
332
|
-
if (!is_valid) {
|
|
333
|
-
return [email, false];
|
|
334
|
-
}
|
|
335
|
-
return [email, true];
|
|
336
|
-
}
|
|
337
|
-
|
|
338
256
|
_add_email(email, caller) {
|
|
339
|
-
|
|
340
|
-
if (!is_valid) {
|
|
341
|
-
return;
|
|
342
|
-
}
|
|
343
|
-
this.__dict_append[IDENT_KEY_EMAIL] = value;
|
|
257
|
+
this.__dict_append[IDENT_KEY_EMAIL] = email;
|
|
344
258
|
}
|
|
345
259
|
|
|
346
260
|
_remove_email(email, caller) {
|
|
347
|
-
|
|
348
|
-
if (!is_valid) {
|
|
349
|
-
return;
|
|
350
|
-
}
|
|
351
|
-
this.__dict_remove[IDENT_KEY_EMAIL] = value;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
// mobile methods
|
|
355
|
-
__validate_mobile_no(value, caller) {
|
|
356
|
-
const [mobile, is_valid] = this.__check_ident_val_string(value, caller);
|
|
357
|
-
if (!is_valid) {
|
|
358
|
-
return [mobile, false];
|
|
359
|
-
}
|
|
360
|
-
return [mobile, true];
|
|
261
|
+
this.__dict_remove[IDENT_KEY_EMAIL] = email;
|
|
361
262
|
}
|
|
362
263
|
|
|
264
|
+
// sms methods
|
|
363
265
|
_add_sms(mobile_no, caller) {
|
|
364
|
-
|
|
365
|
-
if (!is_valid) {
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
this.__dict_append[IDENT_KEY_SMS] = value;
|
|
266
|
+
this.__dict_append[IDENT_KEY_SMS] = mobile_no;
|
|
369
267
|
}
|
|
370
268
|
|
|
371
269
|
_remove_sms(mobile_no, caller) {
|
|
372
|
-
|
|
373
|
-
if (!is_valid) {
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
this.__dict_remove[IDENT_KEY_SMS] = value;
|
|
270
|
+
this.__dict_remove[IDENT_KEY_SMS] = mobile_no;
|
|
377
271
|
}
|
|
378
272
|
|
|
273
|
+
// whatsapp methods
|
|
379
274
|
_add_whatsapp(mobile_no, caller) {
|
|
380
|
-
|
|
381
|
-
if (!is_valid) {
|
|
382
|
-
return;
|
|
383
|
-
}
|
|
384
|
-
this.__dict_append[IDENT_KEY_WHATSAPP] = value;
|
|
275
|
+
this.__dict_append[IDENT_KEY_WHATSAPP] = mobile_no;
|
|
385
276
|
}
|
|
386
277
|
|
|
387
278
|
_remove_whatsapp(mobile_no, caller) {
|
|
388
|
-
|
|
389
|
-
if (!is_valid) {
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
this.__dict_remove[IDENT_KEY_WHATSAPP] = value;
|
|
279
|
+
this.__dict_remove[IDENT_KEY_WHATSAPP] = mobile_no;
|
|
393
280
|
}
|
|
394
281
|
|
|
395
282
|
// android push methods
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
return [push_token, provider, false];
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
let [validated_provider, is_provider_valid] = this.__check_ident_val_string(
|
|
403
|
-
value,
|
|
404
|
-
caller
|
|
405
|
-
);
|
|
406
|
-
if (!is_provider_valid) {
|
|
407
|
-
return [push_token, provider, false];
|
|
408
|
-
}
|
|
409
|
-
provider = validated_provider.toLocaleLowerCase();
|
|
410
|
-
|
|
411
|
-
return [push_token, provider, true];
|
|
283
|
+
_add_androidpush(push_token, provider, caller) {
|
|
284
|
+
this.__dict_append[IDENT_KEY_ANDROIDPUSH] = push_token;
|
|
285
|
+
this.__dict_append[KEY_ID_PROVIDER] = provider;
|
|
412
286
|
}
|
|
413
287
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
provider,
|
|
418
|
-
caller
|
|
419
|
-
);
|
|
420
|
-
if (!is_valid) {
|
|
421
|
-
return;
|
|
422
|
-
}
|
|
423
|
-
this.__dict_append[IDENT_KEY_ANDROIDPUSH] = value;
|
|
424
|
-
this.__dict_append[KEY_ID_PROVIDER] = vendor;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
_remove_androidpush(push_token, provider = "fcm") {
|
|
428
|
-
const caller = "remove_androidpush";
|
|
429
|
-
const [value, vendor, is_valid] = this.__check_androidpush_value(
|
|
430
|
-
push_token,
|
|
431
|
-
provider,
|
|
432
|
-
caller
|
|
433
|
-
);
|
|
434
|
-
if (!is_valid) {
|
|
435
|
-
return;
|
|
436
|
-
}
|
|
437
|
-
this.__dict_remove[IDENT_KEY_ANDROIDPUSH] = value;
|
|
438
|
-
this.__dict_remove[KEY_ID_PROVIDER] = vendor;
|
|
288
|
+
_remove_androidpush(push_token, provider) {
|
|
289
|
+
this.__dict_remove[IDENT_KEY_ANDROIDPUSH] = push_token;
|
|
290
|
+
this.__dict_remove[KEY_ID_PROVIDER] = provider;
|
|
439
291
|
}
|
|
440
292
|
|
|
441
293
|
// ios push methods
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
return [push_token, provider, false];
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
let [validated_provider, is_provider_valid] = this.__check_ident_val_string(
|
|
449
|
-
value,
|
|
450
|
-
caller
|
|
451
|
-
);
|
|
452
|
-
if (!is_provider_valid) {
|
|
453
|
-
return [push_token, provider, false];
|
|
454
|
-
}
|
|
455
|
-
provider = validated_provider.toLocaleLowerCase();
|
|
456
|
-
|
|
457
|
-
return [push_token, provider, true];
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
_add_iospush(push_token, provider = "apns", caller) {
|
|
461
|
-
const [value, vendor, is_valid] = this.__check_iospush_value(
|
|
462
|
-
push_token,
|
|
463
|
-
provider,
|
|
464
|
-
caller
|
|
465
|
-
);
|
|
466
|
-
if (!is_valid) {
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
this.__dict_append[IDENT_KEY_IOSPUSH] = value;
|
|
470
|
-
this.__dict_append[KEY_ID_PROVIDER] = vendor;
|
|
294
|
+
_add_iospush(push_token, provider, caller) {
|
|
295
|
+
this.__dict_append[IDENT_KEY_IOSPUSH] = push_token;
|
|
296
|
+
this.__dict_append[KEY_ID_PROVIDER] = provider;
|
|
471
297
|
}
|
|
472
298
|
|
|
473
|
-
_remove_iospush(push_token, provider
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
provider,
|
|
477
|
-
caller
|
|
478
|
-
);
|
|
479
|
-
if (!is_valid) {
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
this.__dict_remove[IDENT_KEY_IOSPUSH] = value;
|
|
483
|
-
this.__dict_remove[KEY_ID_PROVIDER] = vendor;
|
|
299
|
+
_remove_iospush(push_token, provider, caller) {
|
|
300
|
+
this.__dict_remove[IDENT_KEY_IOSPUSH] = push_token;
|
|
301
|
+
this.__dict_remove[KEY_ID_PROVIDER] = provider;
|
|
484
302
|
}
|
|
485
303
|
|
|
486
304
|
// web push methods
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
`[${caller}] value must be a valid dict representing webpush-token`
|
|
491
|
-
);
|
|
492
|
-
return [value, provider, false];
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
let [validated_provider, is_provider_valid] = this.__check_ident_val_string(
|
|
496
|
-
value,
|
|
497
|
-
caller
|
|
498
|
-
);
|
|
499
|
-
if (!is_provider_valid) {
|
|
500
|
-
return [value, provider, false];
|
|
501
|
-
}
|
|
502
|
-
provider = validated_provider.toLocaleLowerCase();
|
|
503
|
-
|
|
504
|
-
return [value, provider, true];
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
_add_webpush(push_token, provider = "vapid", caller) {
|
|
508
|
-
const [value, vendor, is_valid] = this.__check_webpush_dict(
|
|
509
|
-
push_token,
|
|
510
|
-
provider,
|
|
511
|
-
caller
|
|
512
|
-
);
|
|
513
|
-
if (!is_valid) {
|
|
514
|
-
return;
|
|
515
|
-
}
|
|
516
|
-
this.__dict_append[IDENT_KEY_WEBPUSH] = value;
|
|
517
|
-
this.__dict_append[KEY_ID_PROVIDER] = vendor;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
_remove_webpush(push_token, provider = "vapid", caller) {
|
|
521
|
-
const [value, vendor, is_valid] = this.__check_webpush_dict(
|
|
522
|
-
push_token,
|
|
523
|
-
provider,
|
|
524
|
-
caller
|
|
525
|
-
);
|
|
526
|
-
if (!is_valid) {
|
|
527
|
-
return;
|
|
528
|
-
}
|
|
529
|
-
this.__dict_remove[IDENT_KEY_WEBPUSH] = value;
|
|
530
|
-
this.__dict_remove[KEY_ID_PROVIDER] = vendor;
|
|
305
|
+
_add_webpush(push_token, provider, caller) {
|
|
306
|
+
this.__dict_append[IDENT_KEY_WEBPUSH] = push_token;
|
|
307
|
+
this.__dict_append[KEY_ID_PROVIDER] = provider;
|
|
531
308
|
}
|
|
532
309
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
this.__errors.push(`[${caller}] ${msg}`);
|
|
537
|
-
return [value, false];
|
|
538
|
-
} else {
|
|
539
|
-
return [value, true];
|
|
540
|
-
}
|
|
310
|
+
_remove_webpush(push_token, provider, caller) {
|
|
311
|
+
this.__dict_remove[IDENT_KEY_WEBPUSH] = push_token;
|
|
312
|
+
this.__dict_remove[KEY_ID_PROVIDER] = provider;
|
|
541
313
|
}
|
|
542
314
|
|
|
315
|
+
// slack methods
|
|
543
316
|
_add_slack(value, caller) {
|
|
544
|
-
|
|
545
|
-
if (!is_valid) {
|
|
546
|
-
return;
|
|
547
|
-
}
|
|
548
|
-
this.__dict_append[IDENT_KEY_SLACK] = validated_value;
|
|
317
|
+
this.__dict_append[IDENT_KEY_SLACK] = value;
|
|
549
318
|
}
|
|
550
319
|
|
|
551
320
|
_remove_slack(value, caller) {
|
|
552
|
-
|
|
553
|
-
if (!is_valid) {
|
|
554
|
-
return;
|
|
555
|
-
}
|
|
556
|
-
this.__dict_remove[IDENT_KEY_SLACK] = validated_value;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
__check_ms_teams_dict(value, caller) {
|
|
560
|
-
const msg = "value must be a valid dict/json with proper keys";
|
|
561
|
-
if (!(value && value instanceof Object)) {
|
|
562
|
-
this.__errors.push(`[${caller}] ${msg}`);
|
|
563
|
-
return [value, false];
|
|
564
|
-
} else {
|
|
565
|
-
return [value, true];
|
|
566
|
-
}
|
|
321
|
+
this.__dict_remove[IDENT_KEY_SLACK] = value;
|
|
567
322
|
}
|
|
568
323
|
|
|
324
|
+
// ms teams methods
|
|
569
325
|
_add_ms_teams(value, caller) {
|
|
570
|
-
|
|
571
|
-
value,
|
|
572
|
-
caller
|
|
573
|
-
);
|
|
574
|
-
if (!is_valid) {
|
|
575
|
-
return;
|
|
576
|
-
}
|
|
577
|
-
this.__dict_append[IDENT_KEY_MS_TEAMS] = validated_value;
|
|
326
|
+
this.__dict_append[IDENT_KEY_MS_TEAMS] = value;
|
|
578
327
|
}
|
|
579
328
|
|
|
580
329
|
_remove_ms_teams(value, caller) {
|
|
581
|
-
|
|
582
|
-
value,
|
|
583
|
-
caller
|
|
584
|
-
);
|
|
585
|
-
if (!is_valid) {
|
|
586
|
-
return;
|
|
587
|
-
}
|
|
588
|
-
this.__dict_remove[IDENT_KEY_MS_TEAMS] = validated_value;
|
|
330
|
+
this.__dict_remove[IDENT_KEY_MS_TEAMS] = value;
|
|
589
331
|
}
|
|
590
332
|
}
|