@resolveio/client-lib-core 15.0.2 → 15.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.
@@ -463,7 +463,7 @@ function toDataURL(url, callback) {
463
463
  xhr.responseType = 'blob';
464
464
  xhr.send();
465
465
  }
466
- function getDeepDiffDetails(obj1, obj2) {
466
+ function deepDiffDetails(obj1, obj2) {
467
467
  let diff = detailedDiff(obj2, obj1);
468
468
  let diffString = '';
469
469
  const formatValue = (value) => {
@@ -472,10 +472,31 @@ function getDeepDiffDetails(obj1, obj2) {
472
472
  }
473
473
  return typeof value === 'string' ? `"${value}"` : String(value);
474
474
  };
475
+ const formatArrayDiff = (arr1, arr2) => {
476
+ let maxLength = Math.max(arr1.length, arr2.length);
477
+ let arrayDiff = [];
478
+ for (let i = 0; i < maxLength; i++) {
479
+ if (i >= arr1.length) {
480
+ arrayDiff.push(`added: ${formatValue(arr2[i])}`);
481
+ continue;
482
+ }
483
+ if (i >= arr2.length) {
484
+ arrayDiff.push(`removed: ${formatValue(arr1[i])}`);
485
+ continue;
486
+ }
487
+ if (arr1[i] !== arr2[i]) {
488
+ arrayDiff.push(`from: ${formatValue(arr1[i])} to: ${formatValue(arr2[i])}`);
489
+ }
490
+ }
491
+ return `[${arrayDiff.join(', ')}]`;
492
+ };
475
493
  const formatObjectDiff = (obj1, obj2) => {
476
494
  if (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {
477
495
  return `from: ${formatValue(obj1)} to: ${formatValue(obj2)}`;
478
496
  }
497
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
498
+ return formatArrayDiff(obj1, obj2);
499
+ }
479
500
  return Object.keys(obj1).map(key => {
480
501
  if (typeof obj1[key] === 'object' && obj1[key] !== null && obj2[key] !== null) {
481
502
  return `${toTitleCase(key)}: {${formatObjectDiff(obj1[key], obj2[key])}}`;
@@ -483,14 +504,26 @@ function getDeepDiffDetails(obj1, obj2) {
483
504
  return `${toTitleCase(key)}: from: ${formatValue(obj1[key])} to: ${formatValue(obj2[key])}`;
484
505
  }).join(', ');
485
506
  };
486
- if (Object.keys(diff.updated).length > 0) {
487
- diffString += 'Updated:\n';
488
- const updates = Object.keys(diff.updated)
489
- .filter(key => key.substr(0, 2) !== 'id' && diff.updated[key] !== obj2[key])
490
- .map(key => `${toTitleCase(key)}: {${formatObjectDiff(diff.updated[key], obj2[key])}}`)
491
- .join(',\n');
492
- diffString += updates ? `${updates}\n` : '';
493
- }
507
+ const handleDiffType = (diffObj, obj, key) => {
508
+ if (Array.isArray(diffObj[key])) {
509
+ return `${toTitleCase(key)}: ${formatArrayDiff(obj1[key] || [], obj2[key] || [])}`;
510
+ }
511
+ else if (typeof diffObj[key] === 'object') {
512
+ return `${toTitleCase(key)}: {${formatObjectDiff(obj1[key], obj2[key])}}`;
513
+ }
514
+ else {
515
+ return `${toTitleCase(key)}: from: ${formatValue(obj1[key])} to: ${formatValue(obj2[key])}`;
516
+ }
517
+ };
518
+ ['added', 'deleted', 'updated'].forEach(diffType => {
519
+ if (Object.keys(diff[diffType]).length > 0) {
520
+ diffString += `${toTitleCase(diffType)}:\n`;
521
+ const updates = Object.keys(diff[diffType])
522
+ .map(key => handleDiffType(diff[diffType], diffType === 'deleted' ? obj1 : obj2, key))
523
+ .join(',\n');
524
+ diffString += updates ? `${updates}\n` : '';
525
+ }
526
+ });
494
527
  return diffString;
495
528
  }
496
529
  function generateCronStringFromDate(date) {
@@ -8771,5 +8804,5 @@ const SuperAdminModulePermission = {
8771
8804
  * Generated bundle index. Do not edit.
8772
8805
  */
8773
8806
 
8774
- export { AccountManagerService, AlertService, Auth365Component, AuthGuard, AuthPermissionService, AuthService, AwsService, BaseComponent, CanDeactivateGuard, CollapseTableComponent, CollapseTableModule, CoreComponent, CoreModule, CoreService, DatatableComponent, DatatableModule, DateShortcutComponent, DateShortcutModule, DialogService, DomSanitizorPipe, EnrollComponent, FileModule, FileUploadComponent, FilterEqualPipe, FilterNotEqualPipe, FocusDirective, ForgotPasswordComponent, FormButtonComponent, FormButtonModule, HomeComponent, JsonParsePipe, LoggerComponent, MinusCurrencyPipe, NavbarMainComponent, NavbarModuleComponent, OfflineManagerService, PhonePipe, PipeModule, ProviderService, ReportBuilderModulePermission, ResizeService, ResponsiveButtonGroupComponent, ResponsiveButtonGroupModule, ReversePipe, SchedulerComponent, SchedulerModule, ScrollDirective, SharedModule, SocketManagerService, SocketService, SortTableDirective, SortTableHeaderComponent, SortTableModule, SortTableNgForComponent, StorageDB, SuperAdminModulePermission, SupportTicketComponent, SupportTicketDetailComponent, SupportTicketEditComponent, SupportTicketListComponent, SupportTicketModule, SupportTicketNewComponent, SupportTicketRouting, SupportTicketService, TitleCaseAndUnderscorePipe, TokenManagerService, UserRoleComponent, UserRoleModule, ValidationService, WindowRefService, b64toBlobURL, blobToFile, dateReviver, deepCopy, generateCronStringFromDate, getDeepDiffDetails, isUpperCase, mergeDeep, pad, s2ab, toDataURL, toTitleCase, type };
8807
+ export { AccountManagerService, AlertService, Auth365Component, AuthGuard, AuthPermissionService, AuthService, AwsService, BaseComponent, CanDeactivateGuard, CollapseTableComponent, CollapseTableModule, CoreComponent, CoreModule, CoreService, DatatableComponent, DatatableModule, DateShortcutComponent, DateShortcutModule, DialogService, DomSanitizorPipe, EnrollComponent, FileModule, FileUploadComponent, FilterEqualPipe, FilterNotEqualPipe, FocusDirective, ForgotPasswordComponent, FormButtonComponent, FormButtonModule, HomeComponent, JsonParsePipe, LoggerComponent, MinusCurrencyPipe, NavbarMainComponent, NavbarModuleComponent, OfflineManagerService, PhonePipe, PipeModule, ProviderService, ReportBuilderModulePermission, ResizeService, ResponsiveButtonGroupComponent, ResponsiveButtonGroupModule, ReversePipe, SchedulerComponent, SchedulerModule, ScrollDirective, SharedModule, SocketManagerService, SocketService, SortTableDirective, SortTableHeaderComponent, SortTableModule, SortTableNgForComponent, StorageDB, SuperAdminModulePermission, SupportTicketComponent, SupportTicketDetailComponent, SupportTicketEditComponent, SupportTicketListComponent, SupportTicketModule, SupportTicketNewComponent, SupportTicketRouting, SupportTicketService, TitleCaseAndUnderscorePipe, TokenManagerService, UserRoleComponent, UserRoleModule, ValidationService, WindowRefService, b64toBlobURL, blobToFile, dateReviver, deepCopy, deepDiffDetails, generateCronStringFromDate, isUpperCase, mergeDeep, pad, s2ab, toDataURL, toTitleCase, type };
8775
8808
  //# sourceMappingURL=resolveio-client-lib-core.mjs.map