@rockcarver/frodo-lib 2.0.0-3 → 2.0.0-4

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 (149) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/AgentApi.js +64 -16
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/ApiTypes.js +0 -55
  5. package/cjs/api/ApiTypes.js.map +1 -1
  6. package/cjs/api/BaseApi.js +21 -11
  7. package/cjs/api/BaseApi.js.map +1 -1
  8. package/cjs/api/cloud/SecretsApi.js +7 -14
  9. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  10. package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
  11. package/cjs/ops/AdminOps.js +254 -60
  12. package/cjs/ops/AdminOps.js.map +1 -1
  13. package/cjs/ops/AgentOps.js +352 -108
  14. package/cjs/ops/AgentOps.js.map +1 -1
  15. package/cjs/ops/AuthenticateOps.js +253 -60
  16. package/cjs/ops/AuthenticateOps.js.map +1 -1
  17. package/cjs/ops/CirclesOfTrustOps.js +16 -4
  18. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  19. package/cjs/ops/ConnectionProfileOps.js +163 -40
  20. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  21. package/cjs/ops/EmailTemplateOps.js +7 -1
  22. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  23. package/cjs/ops/IdpOps.js +55 -12
  24. package/cjs/ops/IdpOps.js.map +1 -1
  25. package/cjs/ops/JourneyOps.js +645 -136
  26. package/cjs/ops/JourneyOps.js.map +1 -1
  27. package/cjs/ops/NodeOps.js +96 -24
  28. package/cjs/ops/NodeOps.js.map +1 -1
  29. package/cjs/ops/OAuth2ClientOps.js +45 -11
  30. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  31. package/cjs/ops/OpsTypes.js +0 -23
  32. package/cjs/ops/OpsTypes.js.map +1 -1
  33. package/cjs/ops/OrganizationOps.js +44 -10
  34. package/cjs/ops/OrganizationOps.js.map +1 -1
  35. package/cjs/ops/PolicyOps.js +86 -24
  36. package/cjs/ops/PolicyOps.js.map +1 -1
  37. package/cjs/ops/PolicySetOps.js +72 -18
  38. package/cjs/ops/PolicySetOps.js.map +1 -1
  39. package/cjs/ops/ResourceTypeOps.js +24 -6
  40. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  41. package/cjs/ops/Saml2Ops.js +120 -33
  42. package/cjs/ops/Saml2Ops.js.map +1 -1
  43. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  44. package/cjs/ops/ScriptOps.js +73 -17
  45. package/cjs/ops/ScriptOps.js.map +1 -1
  46. package/cjs/ops/ServiceOps.js +152 -35
  47. package/cjs/ops/ServiceOps.js.map +1 -1
  48. package/cjs/ops/ThemeOps.js +20 -5
  49. package/cjs/ops/ThemeOps.js.map +1 -1
  50. package/cjs/ops/cloud/FeatureOps.js +4 -1
  51. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  52. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  53. package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
  54. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  55. package/cjs/ops/cloud/StartupOps.js +55 -11
  56. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  57. package/cjs/ops/utils/Console.js +47 -22
  58. package/cjs/ops/utils/Console.js.map +1 -1
  59. package/cjs/ops/utils/DataProtection.js +12 -5
  60. package/cjs/ops/utils/DataProtection.js.map +1 -1
  61. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  62. package/cjs/ops/utils/ExportImportUtils.js +15 -8
  63. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  64. package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
  65. package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
  66. package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  67. package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
  68. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  69. package/esm/api/AgentApi.mjs +64 -16
  70. package/esm/api/ApiTypes.mjs +1 -50
  71. package/esm/api/BaseApi.mjs +21 -11
  72. package/esm/api/cloud/SecretsApi.mjs +0 -5
  73. package/esm/api/cloud/SecretsApi.test.mjs +3 -3
  74. package/esm/ops/AdminOps.mjs +254 -60
  75. package/esm/ops/AgentOps.mjs +352 -104
  76. package/esm/ops/AuthenticateOps.mjs +253 -60
  77. package/esm/ops/CirclesOfTrustOps.mjs +16 -4
  78. package/esm/ops/ConnectionProfileOps.mjs +163 -40
  79. package/esm/ops/EmailTemplateOps.mjs +5 -0
  80. package/esm/ops/IdpOps.mjs +55 -12
  81. package/esm/ops/JourneyOps.mjs +639 -132
  82. package/esm/ops/NodeOps.mjs +90 -19
  83. package/esm/ops/OAuth2ClientOps.mjs +45 -11
  84. package/esm/ops/OpsTypes.mjs +1 -22
  85. package/esm/ops/OrganizationOps.mjs +44 -10
  86. package/esm/ops/PolicyOps.mjs +86 -24
  87. package/esm/ops/PolicySetOps.mjs +72 -18
  88. package/esm/ops/ResourceTypeOps.mjs +24 -6
  89. package/esm/ops/Saml2Ops.mjs +120 -33
  90. package/esm/ops/Saml2Ops.test.mjs +10 -11
  91. package/esm/ops/ScriptOps.mjs +73 -17
  92. package/esm/ops/ServiceOps.mjs +152 -35
  93. package/esm/ops/ThemeOps.mjs +20 -5
  94. package/esm/ops/cloud/FeatureOps.mjs +4 -1
  95. package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
  96. package/esm/ops/cloud/StartupOps.mjs +55 -11
  97. package/esm/ops/utils/Console.mjs +33 -9
  98. package/esm/ops/utils/DataProtection.mjs +9 -2
  99. package/esm/ops/utils/DataProtection.test.mjs +8 -2
  100. package/esm/ops/utils/ExportImportUtils.mjs +15 -8
  101. package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
  102. package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
  103. package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
  104. package/package.json +1 -1
  105. package/types/api/AgentApi.d.ts +6 -6
  106. package/types/api/AgentApi.d.ts.map +1 -1
  107. package/types/api/ApiTypes.d.ts +12 -49
  108. package/types/api/ApiTypes.d.ts.map +1 -1
  109. package/types/api/BaseApi.d.ts.map +1 -1
  110. package/types/api/cloud/SecretsApi.d.ts +1 -4
  111. package/types/api/cloud/SecretsApi.d.ts.map +1 -1
  112. package/types/ops/AdminOps.d.ts.map +1 -1
  113. package/types/ops/AgentOps.d.ts +3 -6
  114. package/types/ops/AgentOps.d.ts.map +1 -1
  115. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  116. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  117. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  118. package/types/ops/EmailTemplateOps.d.ts +4 -0
  119. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  120. package/types/ops/IdpOps.d.ts.map +1 -1
  121. package/types/ops/JourneyOps.d.ts +10 -4
  122. package/types/ops/JourneyOps.d.ts.map +1 -1
  123. package/types/ops/NodeOps.d.ts +10 -4
  124. package/types/ops/NodeOps.d.ts.map +1 -1
  125. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  126. package/types/ops/OpsTypes.d.ts +2 -12
  127. package/types/ops/OpsTypes.d.ts.map +1 -1
  128. package/types/ops/OrganizationOps.d.ts.map +1 -1
  129. package/types/ops/PolicyOps.d.ts.map +1 -1
  130. package/types/ops/PolicySetOps.d.ts.map +1 -1
  131. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  132. package/types/ops/Saml2Ops.d.ts.map +1 -1
  133. package/types/ops/ScriptOps.d.ts.map +1 -1
  134. package/types/ops/ServiceOps.d.ts.map +1 -1
  135. package/types/ops/ThemeOps.d.ts.map +1 -1
  136. package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
  137. package/types/ops/cloud/SecretsOps.d.ts +1 -1
  138. package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
  139. package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
  140. package/types/ops/cloud/StartupOps.d.ts.map +1 -1
  141. package/types/ops/utils/Console.d.ts +34 -7
  142. package/types/ops/utils/Console.d.ts.map +1 -1
  143. package/types/ops/utils/DataProtection.d.ts +5 -1
  144. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  145. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  146. package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
  147. package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
  148. package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
  149. package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
@@ -32,7 +32,8 @@ export default class ConnectionProfileOps {
32
32
  findConnectionProfiles(connectionProfiles, host) {
33
33
  return findConnectionProfiles({
34
34
  connectionProfiles,
35
- host
35
+ host,
36
+ state: this.state
36
37
  });
37
38
  }
38
39
 
@@ -129,13 +130,20 @@ export function getConnectionProfilesPath({
129
130
  */
130
131
  function findConnectionProfiles({
131
132
  connectionProfiles,
132
- host
133
+ host,
134
+ state
133
135
  }) {
134
136
  const profiles = [];
135
137
  for (const tenant in connectionProfiles) {
136
- debugMessage(`ConnectionProfileOps.findConnectionProfiles: tenant=${tenant}`);
138
+ debugMessage({
139
+ message: `ConnectionProfileOps.findConnectionProfiles: tenant=${tenant}`,
140
+ state
141
+ });
137
142
  if (tenant.includes(host)) {
138
- debugMessage(`ConnectionProfileOps.findConnectionProfiles: '${host}' identifies '${tenant}', including in result set`);
143
+ debugMessage({
144
+ message: `ConnectionProfileOps.findConnectionProfiles: '${host}' identifies '${tenant}', including in result set`,
145
+ state
146
+ });
139
147
  const foundProfile = {
140
148
  ...connectionProfiles[tenant]
141
149
  };
@@ -176,7 +184,10 @@ function migrateFromLegacyProfile() {
176
184
  export async function initConnectionProfiles({
177
185
  state
178
186
  }) {
179
- const dataProtection = new DataProtection(state.getMasterKeyPath());
187
+ const dataProtection = new DataProtection({
188
+ pathToMasterKey: state.getMasterKeyPath(),
189
+ state
190
+ });
180
191
  // create connections.json file if it doesn't exist
181
192
  const filename = getConnectionProfilesPath({
182
193
  state
@@ -230,25 +241,45 @@ export async function getConnectionProfileByHost({
230
241
  state
231
242
  }) {
232
243
  try {
233
- const dataProtection = new DataProtection(state.getMasterKeyPath());
244
+ const dataProtection = new DataProtection({
245
+ pathToMasterKey: state.getMasterKeyPath(),
246
+ state
247
+ });
234
248
  const filename = getConnectionProfilesPath({
235
249
  state
236
250
  });
237
251
  const connectionsData = JSON.parse(fs.readFileSync(filename, 'utf8'));
238
252
  const profiles = findConnectionProfiles({
239
253
  connectionProfiles: connectionsData,
240
- host
254
+ host,
255
+ state
241
256
  });
242
257
  if (profiles.length == 0) {
243
- printMessage(`Profile for ${host} not found. Please specify credentials on command line`, 'error');
258
+ printMessage({
259
+ message: `Profile for ${host} not found. Please specify credentials on command line`,
260
+ type: 'error',
261
+ state
262
+ });
244
263
  return null;
245
264
  }
246
265
  if (profiles.length > 1) {
247
- printMessage(`Multiple matching profiles found.`, 'error');
266
+ printMessage({
267
+ message: `Multiple matching profiles found.`,
268
+ type: 'error',
269
+ state
270
+ });
248
271
  profiles.forEach(p => {
249
- printMessage(`- ${p.tenant}`, 'error');
272
+ printMessage({
273
+ message: `- ${p.tenant}`,
274
+ type: 'error',
275
+ state
276
+ });
277
+ });
278
+ printMessage({
279
+ message: `Please specify a unique sub-string`,
280
+ type: 'error',
281
+ state
250
282
  });
251
- printMessage(`Please specify a unique sub-string`, 'error');
252
283
  return null;
253
284
  }
254
285
  return {
@@ -264,7 +295,11 @@ export async function getConnectionProfileByHost({
264
295
  svcacctJwk: profiles[0].encodedSvcacctJwk ? await dataProtection.decrypt(profiles[0].encodedSvcacctJwk) : null
265
296
  };
266
297
  } catch (e) {
267
- printMessage(`Can not read saved connection info, please specify credentials on command line: ${e}`, 'error');
298
+ printMessage({
299
+ message: `Can not read saved connection info, please specify credentials on command line: ${e}`,
300
+ type: 'error',
301
+ state
302
+ });
268
303
  return null;
269
304
  }
270
305
  }
@@ -291,12 +326,21 @@ export async function saveConnectionProfile({
291
326
  host,
292
327
  state
293
328
  }) {
294
- debugMessage(`ConnectionProfileOps.saveConnectionProfile: start`);
295
- const dataProtection = new DataProtection(state.getMasterKeyPath());
329
+ debugMessage({
330
+ message: `ConnectionProfileOps.saveConnectionProfile: start`,
331
+ state
332
+ });
333
+ const dataProtection = new DataProtection({
334
+ pathToMasterKey: state.getMasterKeyPath(),
335
+ state
336
+ });
296
337
  const filename = getConnectionProfilesPath({
297
338
  state
298
339
  });
299
- debugMessage(`Saving connection profile in ${filename}`);
340
+ debugMessage({
341
+ message: `Saving connection profile in ${filename}`,
342
+ state
343
+ });
300
344
  let profiles = {};
301
345
  let profile = {
302
346
  tenant: ''
@@ -309,30 +353,50 @@ export async function saveConnectionProfile({
309
353
  // find tenant
310
354
  const found = findConnectionProfiles({
311
355
  connectionProfiles: profiles,
312
- host
356
+ host,
357
+ state
313
358
  });
314
359
 
315
360
  // replace tenant in session with real tenant url if necessary
316
361
  if (found.length === 1) {
317
362
  profile = found[0];
318
363
  state.setHost(profile.tenant);
319
- verboseMessage(`Existing profile: ${profile.tenant}`);
320
- debugMessage(profile);
364
+ verboseMessage({
365
+ message: `Existing profile: ${profile.tenant}`,
366
+ state
367
+ });
368
+ debugMessage({
369
+ message: profile,
370
+ state
371
+ });
321
372
  }
322
373
 
323
374
  // connection profile not found, validate host is a real URL
324
375
  if (found.length === 0) {
325
376
  if (isValidUrl(host)) {
326
377
  state.setHost(host);
327
- debugMessage(`New profile: ${host}`);
378
+ debugMessage({
379
+ message: `New profile: ${host}`,
380
+ state
381
+ });
328
382
  } else {
329
- printMessage(`No existing profile found matching '${host}'. Provide a valid URL as the host argument to create a new profile.`, 'error');
330
- debugMessage(`ConnectionProfileOps.saveConnectionProfile: end [false]`);
383
+ printMessage({
384
+ message: `No existing profile found matching '${host}'. Provide a valid URL as the host argument to create a new profile.`,
385
+ type: 'error',
386
+ state
387
+ });
388
+ debugMessage({
389
+ message: `ConnectionProfileOps.saveConnectionProfile: end [false]`,
390
+ state
391
+ });
331
392
  return false;
332
393
  }
333
394
  }
334
395
  } catch (error) {
335
- debugMessage(`New profiles file ${filename} with new profile ${host}`);
396
+ debugMessage({
397
+ message: `New profiles file ${filename} with new profile ${host}`,
398
+ state
399
+ });
336
400
  }
337
401
 
338
402
  // user account
@@ -358,18 +422,33 @@ export async function saveConnectionProfile({
358
422
  serviceAccountId: profile.svcacctId,
359
423
  state
360
424
  })).name;
361
- debugMessage(`ConnectionProfileOps.saveConnectionProfile: added missing service account name`);
425
+ debugMessage({
426
+ message: `ConnectionProfileOps.saveConnectionProfile: added missing service account name`,
427
+ state
428
+ });
362
429
  }
363
430
 
364
431
  // advanced settings
365
432
  if (state.getAuthenticationService()) {
366
433
  profile.authenticationService = state.getAuthenticationService();
367
- printMessage('Advanced setting: Authentication Service: ' + state.getAuthenticationService(), 'info');
434
+ printMessage({
435
+ message: 'Advanced setting: Authentication Service: ' + state.getAuthenticationService(),
436
+ type: 'info',
437
+ state
438
+ });
368
439
  }
369
440
  if (state.getAuthenticationHeaderOverrides() && Object.entries(state.getAuthenticationHeaderOverrides()).length) {
370
441
  profile.authenticationHeaderOverrides = state.getAuthenticationHeaderOverrides();
371
- printMessage('Advanced setting: Authentication Header Overrides: ', 'info');
372
- printMessage(state.getAuthenticationHeaderOverrides(), 'info');
442
+ printMessage({
443
+ message: 'Advanced setting: Authentication Header Overrides: ',
444
+ type: 'info',
445
+ state
446
+ });
447
+ printMessage({
448
+ message: state.getAuthenticationHeaderOverrides(),
449
+ type: 'info',
450
+ state
451
+ });
373
452
  }
374
453
 
375
454
  // remove the helper key 'tenant'
@@ -391,8 +470,14 @@ export async function saveConnectionProfile({
391
470
  includeMeta: false,
392
471
  state
393
472
  });
394
- verboseMessage(`Saved connection profile ${state.getHost()} in ${filename}`);
395
- debugMessage(`ConnectionProfileOps.saveConnectionProfile: end [true]`);
473
+ verboseMessage({
474
+ message: `Saved connection profile ${state.getHost()} in ${filename}`,
475
+ state
476
+ });
477
+ debugMessage({
478
+ message: `ConnectionProfileOps.saveConnectionProfile: end [true]`,
479
+ state
480
+ });
396
481
  return true;
397
482
  }
398
483
 
@@ -414,28 +499,54 @@ export function deleteConnectionProfile({
414
499
  connectionsData = JSON.parse(data);
415
500
  const profiles = findConnectionProfiles({
416
501
  connectionProfiles: connectionsData,
417
- host
502
+ host,
503
+ state
418
504
  });
419
505
  if (profiles.length == 1) {
420
506
  delete connectionsData[profiles[0].tenant];
421
507
  fs.writeFileSync(filename, JSON.stringify(connectionsData, null, 2));
422
- printMessage(`Deleted connection profile ${profiles[0].tenant}`);
508
+ printMessage({
509
+ message: `Deleted connection profile ${profiles[0].tenant}`,
510
+ state
511
+ });
423
512
  } else {
424
513
  if (profiles.length > 1) {
425
- printMessage(`Multiple matching profiles found.`, 'error');
514
+ printMessage({
515
+ message: `Multiple matching profiles found.`,
516
+ type: 'error',
517
+ state
518
+ });
426
519
  profiles.forEach(p => {
427
- printMessage(`- ${p.tenant}`, 'error');
520
+ printMessage({
521
+ message: `- ${p.tenant}`,
522
+ type: 'error',
523
+ state
524
+ });
525
+ });
526
+ printMessage({
527
+ message: `Please specify a unique sub-string`,
528
+ type: 'error',
529
+ state
428
530
  });
429
- printMessage(`Please specify a unique sub-string`, 'error');
430
531
  return null;
431
532
  } else {
432
- printMessage(`No connection profile ${host} found`);
533
+ printMessage({
534
+ message: `No connection profile ${host} found`,
535
+ state
536
+ });
433
537
  }
434
538
  }
435
539
  } else if (err.code === 'ENOENT') {
436
- printMessage(`Connection profile file ${filename} not found`);
540
+ printMessage({
541
+ message: `Connection profile file ${filename} not found`,
542
+ state
543
+ });
437
544
  } else {
438
- printMessage(`Error in deleting connection profile: ${err.code}`, 'error');
545
+ printMessage({
546
+ message: `Error in deleting connection profile: ${err.code}`,
547
+ type: 'error',
548
+ state
549
+ });
439
550
  }
440
551
  });
441
552
  }
@@ -447,9 +558,15 @@ export function deleteConnectionProfile({
447
558
  export async function addNewServiceAccount({
448
559
  state
449
560
  }) {
450
- debugMessage(`ConnectionProfileOps.addNewServiceAccount: start`);
561
+ debugMessage({
562
+ message: `ConnectionProfileOps.addNewServiceAccount: start`,
563
+ state
564
+ });
451
565
  const name = `Frodo-SA-${new Date().getTime()}`;
452
- debugMessage(`ConnectionProfileOps.addNewServiceAccount: name=${name}...`);
566
+ debugMessage({
567
+ message: `ConnectionProfileOps.addNewServiceAccount: name=${name}...`,
568
+ state
569
+ });
453
570
  const description = `${state.getUsername()}'s Frodo Service Account`;
454
571
  const scope = ['fr:am:*', 'fr:idm:*', 'fr:idc:esv:*'];
455
572
  const jwkPrivate = await createJwkRsa();
@@ -463,10 +580,16 @@ export async function addNewServiceAccount({
463
580
  jwks,
464
581
  state
465
582
  });
466
- debugMessage(`ConnectionProfileOps.addNewServiceAccount: id=${sa._id}`);
583
+ debugMessage({
584
+ message: `ConnectionProfileOps.addNewServiceAccount: id=${sa._id}`,
585
+ state
586
+ });
467
587
  state.setServiceAccountId(sa._id);
468
588
  state.setServiceAccountJwk(jwkPrivate);
469
- debugMessage(`ConnectionProfileOps.addNewServiceAccount: end`);
589
+ debugMessage({
590
+ message: `ConnectionProfileOps.addNewServiceAccount: end`,
591
+ state
592
+ });
470
593
  return sa;
471
594
  }
472
595
  //# sourceMappingURL=ConnectionProfileOps.js.map
@@ -4,6 +4,11 @@ export default class EmailTemplateOps {
4
4
  this.state = state;
5
5
  }
6
6
 
7
+ /**
8
+ * Email template type key used to build the IDM id: 'emailTemplate/<id>'
9
+ */
10
+ EMAIL_TEMPLATE_TYPE = EMAIL_TEMPLATE_TYPE;
11
+
7
12
  /**
8
13
  * Get all email templates
9
14
  * @returns {Promise} a promise that resolves to an array of email template objects
@@ -168,7 +168,10 @@ export async function putProviderByTypeAndId({
168
168
  providerData,
169
169
  state
170
170
  }) {
171
- debugMessage(`IdpOps.putProviderByTypeAndId: start`);
171
+ debugMessage({
172
+ message: `IdpOps.putProviderByTypeAndId: start`,
173
+ state
174
+ });
172
175
  try {
173
176
  const response = await _putProviderByTypeAndId({
174
177
  type: providerType,
@@ -176,7 +179,10 @@ export async function putProviderByTypeAndId({
176
179
  providerData,
177
180
  state
178
181
  });
179
- debugMessage(`IdpOps.putProviderByTypeAndId: end`);
182
+ debugMessage({
183
+ message: `IdpOps.putProviderByTypeAndId: end`,
184
+ state
185
+ });
180
186
  return response;
181
187
  } catch (importError) {
182
188
  var _importError$response, _importError$response2, _importError$response3;
@@ -187,18 +193,31 @@ export async function putProviderByTypeAndId({
187
193
  validAttributes.push('_id', '_type');
188
194
  for (const attribute of Object.keys(providerData)) {
189
195
  if (!validAttributes.includes(attribute)) {
190
- if (state.getVerbose()) printMessage(`\nRemoving invalid attribute: ${attribute}`, 'warn', false);
196
+ if (state.getVerbose()) printMessage({
197
+ message: `\nRemoving invalid attribute: ${attribute}`,
198
+ type: 'warn',
199
+ newline: false,
200
+ state
201
+ });
191
202
  delete providerData[attribute];
192
203
  }
193
204
  }
194
- if (state.getVerbose()) printMessage('\n', 'warn', false);
205
+ if (state.getVerbose()) printMessage({
206
+ message: '\n',
207
+ type: 'warn',
208
+ newline: false,
209
+ state
210
+ });
195
211
  const response = await _putProviderByTypeAndId({
196
212
  type: providerType,
197
213
  id: providerId,
198
214
  providerData,
199
215
  state
200
216
  });
201
- debugMessage(`IdpOps.putProviderByTypeAndId: end (after retry)`);
217
+ debugMessage({
218
+ message: `IdpOps.putProviderByTypeAndId: end (after retry)`,
219
+ state
220
+ });
202
221
  return response;
203
222
  } else {
204
223
  // re-throw unhandleable error
@@ -243,7 +262,10 @@ export async function exportSocialProvider({
243
262
  providerId,
244
263
  state
245
264
  }) {
246
- debugMessage(`IdpOps.exportSocialProvider: start`);
265
+ debugMessage({
266
+ message: `IdpOps.exportSocialProvider: start`,
267
+ state
268
+ });
247
269
  const idpData = await getSocialProvider({
248
270
  providerId,
249
271
  state
@@ -260,7 +282,10 @@ export async function exportSocialProvider({
260
282
  scriptData.script = convertBase64TextToArray(scriptData.script);
261
283
  exportData.script[idpData.transform] = scriptData;
262
284
  }
263
- debugMessage(`IdpOps.exportSocialProvider: end`);
285
+ debugMessage({
286
+ message: `IdpOps.exportSocialProvider: end`,
287
+ state
288
+ });
264
289
  return exportData;
265
290
  }
266
291
 
@@ -277,9 +302,16 @@ export async function exportSocialProviders({
277
302
  const allIdpsData = await getSocialIdentityProviders({
278
303
  state
279
304
  });
280
- createProgressIndicator(allIdpsData.length, 'Exporting providers');
305
+ createProgressIndicator({
306
+ total: allIdpsData.length,
307
+ message: 'Exporting providers',
308
+ state
309
+ });
281
310
  for (const idpData of allIdpsData) {
282
- updateProgressIndicator(`Exporting provider ${idpData._id}`);
311
+ updateProgressIndicator({
312
+ message: `Exporting provider ${idpData._id}`,
313
+ state
314
+ });
283
315
  exportData.idp[idpData._id] = idpData;
284
316
  if (idpData.transform) {
285
317
  const scriptData = await getScript({
@@ -290,7 +322,10 @@ export async function exportSocialProviders({
290
322
  exportData.script[idpData.transform] = scriptData;
291
323
  }
292
324
  }
293
- stopProgressIndicator(`${allIdpsData.length} providers exported.`);
325
+ stopProgressIndicator({
326
+ message: `${allIdpsData.length} providers exported.`,
327
+ state
328
+ });
294
329
  return exportData;
295
330
  }
296
331
 
@@ -389,8 +424,16 @@ export async function importSocialProviders({
389
424
  });
390
425
  } catch (error) {
391
426
  var _error$response;
392
- printMessage(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error, 'error');
393
- printMessage(`\nError importing provider ${idpId}`, 'error');
427
+ printMessage({
428
+ message: ((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error,
429
+ type: 'error',
430
+ state
431
+ });
432
+ printMessage({
433
+ message: `\nError importing provider ${idpId}`,
434
+ type: 'error',
435
+ state
436
+ });
394
437
  outcome = false;
395
438
  }
396
439
  }